0%

引言

今天是2024年7月15日,上半年计划以失败而告终。新启一个。

目标

目标非常简单
77.5kg->65kg,一共12.5kg

记录

day1 2024-07-16 77.5kg

体重: 77.5kg
进度:0%
合计减重: 0kg
感想:跑路4公里,命快没了,跑完了炫了两个黄桃,两片西瓜,跑了等于没跑。。。。。

day2 2024-07-17 77.3kg

体重: 77.3kg
进度: 1.6%,合计减重: 0.2kg
感想:今日无运动,炫了两个黄桃,两片西瓜,罪过罪过。

day3 2024-07-18 77.5kg

体重: 77.5kg
进度: 0%,合计减重: 0kg
感想:今日跑步4公里,加油!晚上炫了两个桃子,一个梨,一瓶可乐,罪过。

day4 2024-07-19 77.7kg

体重: 77.7kg
进度: -1.6%,合计减重: -0.2kg
感想:吃了德克士,西瓜,无运动。。。。

day5 2024-07-20 77.7kg

体重: 77.7kg
进度: -1.6%,合计减重: -0.2kg
感想:无运动。。。。

day6 2024-07-21 77.7kg

体重: 77.7kg
进度: -1.6%,合计减重: -0.2kg
感想:无运动。。。。

day7 2024-07-22 77.7kg

体重: 77.7kg
进度: -1.6%,合计减重: -0.2kg
感想:无运动。。。。

day8 2024-07-23 78kg

体重: 78kg
进度: -4%,合计减重: -0.5kg
感想:体重新高了,跑步4公里,整体跑步还是不行,不知道是呼吸还是跑姿的问题,8公里配速心率直接180,6公里配置直接干到200.。。。。

day9 2024-07-24 77.3kg

体重: 77.3kg
进度: 1.6%,合计减重: 0.2kg
感想:跑步四公里,平均配速7-8,心率第一圈150,第二,三圈160,第四圈170,还是跑不快,不知道是呼吸还是姿势;
体重能不能下降,看吧,冲刺77瓶颈。

day10 2024-07-25 77.3kg

体重: 77.3kg
进度: 1.6%,合计减重: 0.2kg
感想:今日无运动,复制黏贴

day11 2024-07-26 77.3kg

体重: 77.3kg
进度: 1.6%,合计减重: 0.2kg
感想:今日无运动,复制黏贴

day12 2024-07-27 77.3kg

体重: 77.3kg
进度: 1.6%,合计减重: 0.2kg
感想:今日无运动,复制黏贴

day13 2024-07-28 77.3kg

体重: 77.3kg
进度: 1.6%,合计减重: 0.2kg
感想:今日无运动,复制黏贴

day14 2024-07-29 78.5kg

体重: 78.5kg
进度: -8%%,合计减重: -1kg
感想:跑步4公里

day15 2024-07-30 78.2kg

体重: 78.2kg
进度: -5.6%,合计减重: -0.7kg
感想:跑步4公里

day16 2024-07-31 77.5kg

体重: 77.5kg
进度: 0%,合计减重: 0kg
感想:今日休息

day17 2024-08-01 78.2kg

体重: 78.2kg
进度: -5.6%,合计减重: -0.7kg
感想:21天减肥计划day01

day18 2024-08-02 78.2kg

体重: 78.2kg
进度: -5.6%,合计减重: -0.7kg
感想:21天减肥计划day02

day19 2024-08-03 78.2kg

体重: 78.2kg
进度: -5.6%,合计减重: -0.7kg
感想:无运动

day20 2024-08-04 78.2kg

体重: 78.2kg
进度: -5.6%,合计减重: -0.7kg
感想:打篮球半小时

day21 2024-08-05 78.1kg

体重: 78.1kg
进度: -4.8%,合计减重: -0.6kg
感想:跑步5公里,心率控制在150~160之间。

day22 2024-08-06 78.1kg

体重: 78.1kg
进度: -4.8%,合计减重: -0.6kg
感想:体重无变化,跑步5公里,心率在155~165之间,配速8.

day23 2024-08-07 78.1kg

体重: 78.1kg
进度: -4.8%,合计减重: -0.6kg
感想:体重无变化,休息一天,吃西瓜,葡萄。

day24 2024-08-08 78.1kg

体重: 78.1kg
进度: -4.8%,合计减重: -0.6kg
感想:跑步5公里,心率155~160之间,配速8,跑完腿疼。

day25 2024-08-09 78.1kg

体重: 78.1kg
进度: -4.8%,合计减重: -0.6kg
感想:跑步5公里,心率155~160之间,配速8,累。

day26 2024-08-09 78.1kg

体重: 78.1kg
进度: -4.8%,合计减重: -0.6kg
感想:今日吃烧烤,休息,瓶颈期,体重是一动不动啊。

day27 2024-08-10 78.1kg

体重: 78.1kg
进度: -4.8%,合计减重: -0.6kg
感想:继续休息,无运动。

day28 2024-08-11 78.1kg

体重: 78.1kg
进度: -4.8%,合计减重: -0.6kg
感想:无运动。

day29 2024-08-12 78.1kg

体重: 78.1kg
进度: -4.8%,合计减重: -0.6kg
感想:21天减肥计划day03,体重继续无变化。

day30 2024-08-13 78.1kg

体重: 78.1kg
进度: -4.8%,合计减重: -0.6kg
感想:体重还是无变化,刚出去跑步天就下雨了,回家21天减肥计划day04,主要为腹部和拉伸,同时下午的时候非常饿,需要看下有没扛饿的零食。
措施:晚上不吃东西。

day31 2024-08-14 78.1kg

体重: 78.1kg
进度: -4.8%,合计减重: -0.6kg
感想:体重纹丝不动,昨晚回来晚了,没哟u运动。。

day32 2024-08-15 78.1kg

体重: 78.1kg
进度: -4.8%,合计减重: -0.6kg
感想:万年78.1,一周没动过了,今晚跑步5公里,配速7分30吧,心率控制的不错,一开始只有150多,后面到160多,步频163.回来后21天减肥计划day05,2轮hit。

day33 2024-08-16 78.1kg

体重: 78.1kg
进度: -4.8%,合计减重: -0.6kg
感想:无变化,今日无运动。

day34 2024-08-17 78.1kg

体重: 78.1kg
进度: -4.8%,合计减重: -0.6kg
感想:启动游,今日无运动。

day35 2024-08-18 78.1kg

体重: 78.1kg
进度: -4.8%,合计减重: -0.6kg
感想:启动游,今日无运动。

day36 2024-08-19 78.1kg

体重: 78.1kg
进度: -4.8%,合计减重: -0.6kg
感想:第19天体重无变化,跑步5公里,配速7.32,心率154,步频164

day37 2024-08-20 【0.8%】

体重: 77.4kg
进度: 0.8%,合计减重: 0.1kg
感想:哭死,体重终于变了,77.4,第20天了,减了0.1kg,21天减肥计划day06,tabeta,同一动作做7组,加油!。

day38 2024-08-21 【0.8%】

体重: 77.4kg
进度: 0.8%,合计减重: 0.1kg
感想:跑步5公里,配速7.14,心率159,步频167;21天减肥计划day07,拉升,加油!。

day39 2024-08-22 【5.6%】

体重: 76.8kg
进度: 5.6%,合计减重: 0.7kg
感想:本轮体重新低,加油!!
day21训练计划day08,今天hit,和儿子一起练的。
跑步5公里,心率160,步频163,配速7.49,比昨天差了非常多,不知道是连续跑步累了还是因为先做了hit累了。。

day40 2024-08-23 【0.8%】

体重: 77.4kg
进度: 0.8%,合计减重: 0.1kg
感想:无运动,今日疲劳,休息。

day41 2024-08-24 【0.8%】

体重: 77.4kg
进度: 0.8%,合计减重: 0.1kg
感想:无运动,今日疲劳,休息。

day42 2024-08-25 【0.8%】

体重: 77.4kg
进度: 0.8%,合计减重: 0.1kg
感想:无运动,今日疲劳,休息。

day43 2024-08-26【-2.4%】

体重: 77.8kg
进度: -2.4%,合计减重: -0.3kg
感想:周末胡吃海喝体重反弹了,day21运动day09,跑步5公里。。心率163,步频163,配速7.16

day44 2024-08-27【-2.4%】

体重: 77.8kg
进度: -2.4%,合计减重: -0.3kg
感想:体重无变化。day21运动day10,跑步5公里。。心率162,步频169,配速6.57,步频配速提升极大。

day45 2024-08-28【-2.4%】

体重: 77.8kg
进度: -2.4%,合计减重: -0.3kg
感想:休息

day46 2024-08-29【1.6%】

体重: 77.3kg
进度: 1.6%,合计减重: 0.2kg
感想:太累了,今日休息。

day47 2024-08-30【1.6%】

体重: 77.3kg
进度: 1.6%,合计减重: 0.2kg
感想:无运动。

day48 2024-08-31【1.6%】

体重: 77.3kg
进度: 1.6%,合计减重: 0.2kg
感想:无运动。

day49 2024-09-01【1.6%】

体重: 77.3kg
进度: 1.6%,合计减重: 0.2kg
感想:无运动。

day50 2024-09-02【1.6%】

体重: 77.3kg
进度: 1.6%,合计减重: 0.2kg
感想:体重5天没有变化了,跑步5公里。心率164,步频171,配速6.36,跑的不错。

day51 2024-09-03【1.6%】

体重: 77.3kg
进度: 1.6%,合计减重: 0.2kg
感想:加油。

day52 2024-09-04【1.6%】

体重: 77.3kg
进度: 1.6%,合计减重: 0.2kg
感想:加油。

day53 2024-09-04【1.6%】

体重: 77.3kg
进度: 1.6%,合计减重: 0.2kg
感想:加油。

day54 2024-09-05【2.4%】

体重: 77.2kg
进度: 2.4%,合计减重: 0.3kg
感想:跑步5公里,day21天减肥计划第14天。

day55 2024-09-06【5.6%】

体重: 76.8kg
进度: 5.6%,合计减重: 0.7kg
感想:加油。

day56 2024-09-07【5.6%】

体重: 76.8kg
进度: 5.6%,合计减重: 0.7kg
感想:南北湖森泊游玩,无运动,加油。

day57 2024-09-08【5.6%】

体重: 76.8kg
进度: 5.6%,合计减重: 0.7kg
感想:南北湖森泊游玩,无运动,加油。

day58 2024-09-09【3.2%】

体重: 77.1kg
进度: 3.2%,合计减重: 0.4kg
感想:21天减肥训练day16,hitx4,波比跳,高抬腿,后踢腿,俯身登山
跑步5公里,心率168,步频171,配速6.2,心率偏高

day59 2024-09-10【4.8%】

体重: 76.9kg
进度: 4.8%,合计减重: 0.6kg
感想:下雨,无运动,加油。

day60 2024-09-11【5.6%】

体重: 76.8kg
进度: 5.6%,合计减重: 0.7kg
感想:加班回到家有点晚。

day61 2024-09-12【8.8%】

体重: 76.4kg
进度: 8.8%,合计减重: 1.1kg
感想:加油。

day62 2024-09-13【6.4%】

体重: 76.7kg
进度: 6.4%,合计减重: 0.8kg
感想:加油。

day63 2024-09-14【6.4%】

体重: 76.7kg
进度: 6.4%,合计减重: 0.8kg
感想:中秋,今日无运动。

day64 2024-09-15【6.4%】

体重: 76.7kg
进度: 6.4%,合计减重: 0.8kg
感想:中秋,今日无运动。

day65 2024-09-16【6.4%】

体重: 76.7kg
进度: 6.4%,合计减重: 0.8kg
感想:中秋,今日无运动。

day66 2024-09-17【6.4%】

体重: 76.7kg
进度: 6.4%,合计减重: 0.8kg
感想:中秋,今日无运动。

day67 2024-09-18【1.6%】

体重: 77.3kg
进度: 1.6%,合计减重: 0.2kg
感想:中秋放纵了,加油,留给的时间不多了。

day68 2024-09-19【1.6%】

体重: 77.3kg
进度: 1.6%,合计减重: 0.2kg
感想:加油。

day69 2024-09-20【1.6%】

体重: 77.3kg
进度: 1.6%,合计减重: 0.2kg
感想:加油。

day70 2024-09-21【1.6%】

体重: 77.3kg
进度: 1.6%,合计减重: 0.2kg
感想:加油。

day71 2024-09-22【1.6%】

体重: 77.3kg
进度: 1.6%,合计减重: 0.2kg
感想:加油。

day72 2024-09-23【-1.6%】

体重: 77.7kg
进度: -1.6%,合计减重: -0.2kg
感想:加油。

day73 2024-09-24【-1.6%】

体重: 77.7kg
进度: -1.6%,合计减重: -0.2kg
感想:加油。

day74 2024-09-25【6.4%】

体重: 76.7kg
进度: 6.4%,合计减重: 0.8kg
感想:加油。

day75 2024-09-26【-2.4%】

体重: 77.3kg
进度: 1.6%,合计减重: 0.2kg
感想:加油。

day76 2024-09-27【-2.4%】

体重: 77.3kg
进度: 1.6%,合计减重: 0.2kg
感想:加油。

day77 2024-09-28【-2.4%】

体重: 77.3kg
进度: 1.6%,合计减重: 0.2kg
感想:加油。

day78 2024-09-29【-2.4%】

体重: 77.3kg
进度: 1.6%,合计减重: 0.2kg
感想:加油。

day79 2024-09-30【-2.4%】

体重: 77.3kg
进度: 1.6%,合计减重: 0.2kg
感想:加油。

day80 2024-10-01【-2.4%】

体重: 77.3kg
进度: 1.6%,合计减重: 0.2kg
感想:加油。

day81 2024-10-02【-2.4%】

体重: 77.3kg
进度: 1.6%,合计减重: 0.2kg
感想:加油。

day82 2024-10-03【-2.4%】

体重: 77.3kg
进度: 1.6%,合计减重: 0.2kg
感想:加油。

day83 2024-10-04【-2.4%】

体重: 77.3kg
进度: 1.6%,合计减重: 0.2kg
感想:加油。

day84 2024-10-05【-2.4%】

体重: 77.3kg
进度: 1.6%,合计减重: 0.2kg
感想:加油。

day85 2024-10-06【-2.4%】

体重: 77.3kg
进度: 1.6%,合计减重: 0.2kg
感想:加油。

day86 2024-10-07【-2.4%】

体重: 77.3kg
进度: 1.6%,合计减重: 0.2kg
感想:加油。

day87 2024-10-08【-2.4%】

体重: 77.3kg
进度: 1.6%,合计减重: 0.2kg
感想:加油。

day88 2024-10-09【-2.4%】

体重: 77.3kg
进度: 1.6%,合计减重: 0.2kg
感想:加油。

结论

失败!!!

场景描述

最近有个需求,序号获取excel文件的作者,最后一次保存者,文件创建时间,文件修改时间,用于投标的文件审计。

如下图所示,通过右键excel文件,详细信息里有相关文件的作者,最后一次保存者信息,创建内容时间,最后一次保存的日期。

整个实现过程的话,xlsx格式比较好找,xls的还是费了一番功夫,以此文章记录。

调研过程

一开始一无所知,直接google搜索,搜到一篇利用python读取EXCEL文档中的创建者信息,里面提到了使用python读取xlsx的信息。

经过测试,确实可以获取xlsx格式的信息,但是对于xls的格式会报错。

经过一番搜索,在stackover flow How to retrieve the author of an office file in python?这篇文章中找到了答案,通过hachoir可以获取。

参考demo文章:利用hachoir获取媒体文件元数据
经过测试,可行!

最终代码

xlsx

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
def get_xlsx_creater_name(self,file_path):
"""获取文件创建者姓名"""
try:
zf = zipfile.ZipFile(file_path)
# use lxml to parse the xml file we are interested in
doc = lxml.etree.fromstring(zf.read('docProps/core.xml'))
attr_nodes = doc.getchildren()
creator='unkown'
editor='unkown'
create_time='unkown'
edit_time='unkown'
for attr_node in attr_nodes:
node_str=str(etree.tostring(attr_node))
if "dc:creator" in node_str:
creator=attr_node.text
elif "cp:lastModifiedBy" in node_str:
editor=attr_node.text
elif "dcterms:created" in node_str:
create_time=attr_node.text
elif "dcterms:modified" in node_str:
edit_time=attr_node.text
# return (attr_nodes[0].text,attr_nodes[1].text,attr_nodes[3].text)
return {'作者':creator,'创建时间':create_time,'修改人':editor,
'最后修改时间':edit_time}
except:
traceback.print_exc()
return {'作者':'unkown','创建时间':'unkown','修改人':'unkown',
'最后修改时间':'unkown'}

xls

1
2
3
4
5
6
7
8
9
10
def get_xls_creater_name(self,file_path):
"""获取xls文件创建者姓名"""
try:
metadata = extractMetadata(createParser(file_path))
return {'作者':metadata.get('author',index=0),'创建时间':metadata.get('creation_date').strftime("%Y-%m-%d %H:%M:%S"),'修改人':metadata.get('author',index=1),
'最后修改时间':metadata.get('last_modification').strftime("%Y-%m-%d %H:%M:%S")}
except:
traceback.print_exc()
return {'作者':'unkown','创建时间':'unkown','修改人':'unkown',
'最后修改时间':'unkown'}

技术总结

xls 和 xlsx 的区别

XLS(Excel97-2003工作表)和XLSX(Excel2007及更高版本工作表)是Excel中两种不同的文件格式。XLS是旧的文件格式,而XLSX是新的文件格式。在Excel2003及更早的版本中,使用的是XLS格式。从Excel2007开始,微软推出了XLSX格式。

在文件格式上,xls和xlsx具有实际的不同,这也导致了获取作者的实现方式不同。

xls 是一个特有的二进制格式,其核心结构是复合文档类型的结构,而 xlsx 的核心结构是 XML 类型的结构,采用的是基于 XML 的压缩方式,使其占用的空间更小。xlsx 中最后一个 x 的意义就在于此。

基于文件格式,xlsx可以基于压缩包zip获取文件的额外信息,而xls是特有二进制,属于媒体文件,需要使用媒体解析库hachoir-metadata。

置于doc格式,则有专门的python-docx库。

hachoir-metadata

如下图官网所示,hachoir-metadata 程序是一个从多媒体文件中提取元数据的工具:视频、图片、声音、档案等,它试图提供尽可能多的信息。

中间的一些错误

pywin32: GetFileVersionInfo returns 1812

在搜索的时候,gpt会提示可以使用pywin32获取属性,其中核心方法为GetFileVersionInfo,但是使用的时候会提示

1
pywin32: GetFileVersionInfo returns 1812

错误,该错误的原因是GetFileVersionInfo只支持 exe及dll文件,并不支持其他格式。

相关文章

投资 2023年 总结

引言

时光飞快,2023已经是过去时,惯例总结。

基准

2023年,各大指数情况如下

指数 收益
上证 -3.7%
深证 -13.54%
创业板 -19.14%
沪深300 -11.38%
中证1000 -6.28%
国证2000 -1.16%
万德微盘指数 23.5%
可转债 1.34%

2023年全年行情惨淡,主流指数基本全数下跌。
行情较好的板块为煤炭、电力、小市值。

个人

2023度收益率 75.67%,同期跑赢沪深300 87.05%。

全年最大回测只有12%。

收益完全超出预期,个人打分100分。

累计

年份 个人收益率 上证 上证超额 沪深300 沪深300超额
2021 7.44% 4.8% 2.64% -5.2% 12.64%
2022 -2.4% -15.13% 12.73% -21.63% 19.23%
2023 75.67% -3.7% 79.37% -11.38% 87.05%
复合年华 22.59% -5.03% 27.56% -13% 35.94%

个人总结

个人全年收益75.67%,完全超出预期,打分100分。

从收益贡献角度上看,新股贡献约20%收益,小市值策略贡献约50%收益,剩下约5%收益则有煤炭电力股票贡献。

总的来说,运气不错。

2024 年 目标

2024年目标暂定10%及格,剩下没涨5%加20分。

对于2024年的走势,大概率还是延续2023年,可能会有中等的一波反弹。
操作计划的话,还是煤炭、电力、小市值三者轮动。
希望轮动的择时可以做的更好。

引言

今年是小市值的大年,截止2023-11-13日,万得的微盘指数今年已经上涨了45.97%,本人也运气好,持仓大涨。

虽然上涨总是开心的,但是对小市值下跌的担心却一直存在,主要是两个原因:

一、小市值的上涨逻辑一直不够硬,即没法解释为什么能涨这么多(波动轮动大概能贡献10%~20%的收益率,其他的似乎只能理解成炒作了),因此拿着心慌。

二、股市没有一直上涨的,涨多了必然下跌,只是什么时候下跌的问题。

所以最近一直在想有没什么好的方法可以择时,避免下跌。碰巧最近在雪球上看到持有封基的小市值月份分析,
Alt text
写到小市值4月,12月,1月表现不好,刚好今年已经涨了这么多了,就打算自己也分析下。

数据来源

数据来源来自wind指数的微盘指数

“微盘股”主要包含全部A股中市值居于后400的个股,剔除ST、*ST、退市整理股、首发连板未打开的标的,每日更新成份。

这里面有指数每天的数据,从2000年到2023年。

月份分析

近24年分析

拉取近24年数据数据,得出以下结论
Alt text
Alt text

  1. 10月、4月、1月、12月为行情相对较差月份,胜率都低于50%
  2. 2月、5月、11月为超给力月份,胜率超过了75%,且平均涨幅达到了4%以上。
    这里会发现有意思的事情,
    1月不给力,2月超给力
    4月不给力,5月超给力
    10月不给力,11月超给力

都是一个不给力月份过后来了给超给力月份,调整后报复性上涨。

近10年分析

拉取近10年数据数据,得出以下结论
Alt text

  1. 4月、1月、12月为行情相对较差月份,胜率都低于33%
  2. 2月、5月、6月、11月为超给力月份,胜率超过了80%,除了6月,平均涨幅达到了4%以上。
    这里会发现有意思的事情,
    1月不给力,2月超给力
    4月不给力,5月超给力
    都是调整后上涨
    而到年底择时11月先涨,12月,1月两月连续暴跌,似乎是5~11月连续6个月的上涨,顺势调整,然后资金调整方向去做年末行情了。

近10年和24年区别

对比会发现,近10年不给力月份少了10月,胜率由41.67%增加到了50%。
而6月则延续了近24年的走势,大部分年份都是上涨的,但是小部分年份会有超过10个点的大跌,造成方差大。

将月份分为月初,月中和月末


可以看到,胜率,赔率在不同时期有较大差别

以最近的11月和12月为例


11月的行情,不论是近10年还是近24年,都是月初、月中开始涨,但是月末就开始为12月的下跌准备了。

而12月的行情,近24年为月初、月末下跌,月中微涨,近10年择时月初、月中下跌,月末上涨。

结合月份,总的来说,从11月末开始,到12月底,基本都为下跌行情,不值得参与。

操作计划

关于小市值,本人有一个假设:参与小市值的存在大量的量化,量化会强化规律因子,形成正反馈,导致因子更加明显。

因此,寻找规律择时应该能显著提高收益。

今天是11月16日,当月本人上涨4.78%,符合历史规律:11月初、月中上涨。

因此,本人认为今年后续的走势将继续符合近10年规律:

  • 11月底下跌
  • 12月初下跌
  • 12月中下跌
  • 12月底反弹上涨
  • 1月整月继续下跌
  • 知道2月迎来反弹暴涨

结合计划操作如下

  1. 11.20前完成清仓
  2. 12月底视情况看是否博下反弹,大概率不参与
  3. 2月初回到小市值。

xpath 中 svg 定位

如果定位时遇到了svg标签,使用一般的定位会无法获取到,同时也无法获取到对应的孙元素
如 //svg[@id=’iconadd-people’] //use[@xlink:href=’#iconadd-people’] 等

想要定位svg元素,需要使用name属性定位,写法是://*[name()=’svg’]。

能定位到svg标签后,再添加svg标签附件的元素的其他属性,来确保想要定位元素的唯一性即可。

选取第一个元素

不要使用 //div[1]
表示的是选择作为其父级的第一个子级的a元素

正确的为 (//div)[1]

选取相邻节点

选取上一个节点
比如有如下html,想要点击button,那么写法为 //div[@class="test"]/preceding-sibling::div

1
2
<button></button>
<div class="test"><div>

选取下一个节点同理,为following-sibling

引言

在用easytrader调用同花顺客户端时,报错:There is no active desktop required for moving mouse cursor

分析步骤

1. bing 搜索,pyauto git issue

通过bing搜索 ,找到git的讨论方案

1
pyauto windows 远程桌面 There is no active desktop required for moving mouse cursor

alt text

https://github.com/pywinauto/pywinauto/issues/1096
是pyauto这个开源项目的git地址,上面的这个issue和我个人碰到的问题一样,下面有人回答了,windows 相关的都在 Remote Execution Guide. 中。

pyauto doc

打开remote execution guid,是pyauto的官方文档,关于远程运行的说明文档,正式我们需要的。
alt text
如标红里说的,要使用windows远程,有两个需要注意的事项

1
2
如果RDP(远程桌面协议)窗口被最小化,默认情况下远程PC上将没有活动的桌面环境。 
如果RDP被断开连接,桌面会被锁定无法访问。

而本人正好踩了第一点的坑,窗口最小化了。
远程桌面的时候,最小化被连接的窗口是常规窗口,不然我远程干嘛,那么就没有办法了吗,有点,文档里提供了官方的解决方案。

Running Tests in Minimized Remote Desktop Windows

Running Tests in Minimized Remote Desktop Windows

继续跟着文档,说明了失败的原因

If you minimize the Remote Desktop window (the window that displays the remote computer’s desktop), Windows switches the remote session to the GUI-less mode and does not display windows and controls. As a result, TestComplete (or TestExecute) will be unable to interact with the tested application’s GUI, as it does not exist and your automated GUI test will fail.

如果你最小化了远程桌面窗口(显示远程计算机桌面的窗口),Windows会将远程会话切换到无GUI模式,此时不会显示窗口和控件。因此,TestComplete(或TestExecute)将无法与被测应用的GUI进行交互,因为此时GUI并不存在,从而导致你的自动化GUI测试失败。

同时文档里也写了解决方案,这个后面里说。

至此,问题解决。

原因

最小化了远程桌面窗口(显示远程计算机桌面的窗口)时,Windows会将远程会话切换到无GUI模式,此时不会显示窗口和控件。因此,pyauto将无法与被测应用的GUI进行交互,因为此时GUI并不存在,从而导致你的自动化GUI测试失败。

解决方法

修改注册列表,官方文档有些了,就不具体了
alt text

总结

  1. 多看官方文档,官方文档很详细,远程相关的操作在 remote execution guid中。
  2. windows RDP 无GUI模式
    1
    2
    3
    Windows RDP(Remote Desktop Protocol,远程桌面协议)的无GUI(Graphical User Interface,图形用户界面)模式是指在远程会话中不完全加载图形界面的一种工作模式。在正常情况下,当你通过RDP连接到另一台Windows计算机时,你会看到一个完整的桌面环境,包括桌面图标、任务栏、开始菜单和其他图形元素。

    然而,在无GUI模式下,远程会话不会渲染这些图形元素。这意味着远程桌面上的应用程序窗口、菜单和对话框不会显示出来。这种模式通常是为了节省资源,提高性能,尤其是在网络带宽有限的情况下,因为传输图形界面需要更多的数据量。

参考

前言

量化交易中,经常听到因子选股,因子分析,之前本人只是凭借的sql靠着粗暴的统计进行因子选择(条件过滤,本人对于因子选择的简陋理解),也是运气好,今年策略的收益率不错。借着不错的行情,觉得系统科学的学习下因子分析。

因子策略在量化中的地位

参考知乎上的常见量化交易策略分类一文,量化策略可以按照交易产品、盈利模式、策略信号、交易速度进行分类,具体分类如下:

参考上文分类,可以看到因子策略属于策略信号中的一种。
受限于A股只能做多,技术有限及高频难度系数太高,本人圈定的因子策略属于股票策略、单边做多策略、多因子策略、中频策略。

因子和单因子分析的概念

因子就是我们常说的过滤条件字段,而因子分析就是对这些属性的分析。。。
说回正式定义

因子就是以投资对象(例如一只股票)、和交易日期为自变量的二元函数。即给定交易对象和交易日期,我们能通过一种因子算法得到唯一确定的一个实数,这个实数就叫做交易对象在这个交易日的因子值。例如,股票的每日收盘价、市盈率、涨幅都可以看做股票在该日的不同因子。

所谓单因子分析就是要从众多因子中找出能有效预测投资对象未来价格变化情况的因子。

如何进行因子分析?

那么,如何进行因子分析?还是像之前那样通过sql或excel进行分组统计,查看涨跌情况?
这样既繁琐、低效,也确认科学有效的数据来支持因子之前的效果比较。

其实github上有挺多开源的因子分析框架,而聚宽也在github上开源了因子分析框架jqfactor_analyzer,使得因子分析工作大大减少。

工欲善其事,必先利其器,分析相关工具准备&介绍

jqfactor_analyzer


此网页为聚宽单因子分析工具开源版是提供给用户进行因子分析的工具,提供了包括计算因子IC值,因子收益,因子换手率等各种详细指标,用户可以按照自己的需求查看因子详情。github上有详细的使用说明。

因子定义和计算


此网页为聚宽官网提供的因子分析文档,里面详细介绍了因子分析如何使用。

因子看板


此网页为聚宽提供的因子看板,提供了聚宽支持的因子,以及聚宽提前计算好的因子结果,可以通过查询即可知道因子的效果。

以上图为例,如果我们采用5日移动均线,即5日移动均线/收盘价,取最大分位进行交易,那么年华收益率为-15.76%。

如何判断因子好坏?因子分析结果简介。

收益分析

评判因子好坏最直观的因素就是股票的收益。

在聚宽分析框架中,分位数的平均收益, 各分位数的累积收益, 以及分位数的多空组合收益三方面观察因子的表现。 第一分位数的因子值最小, 第五分位数的因子值最大。

1.分位数收益: 表示持仓1、5、10天后,各分位数可以获得的平均收益。
2.分位数的累积收益: 表示各分位数持仓收益的累计值。
3.多空组合收益: 做多五分位(因子值最大), 做空一分位(因子值最小)的投资组合的收益。

IC分析

IC 是 information coefficient 的缩写。IC 代表了预测值和实现值之间的相关性, 通常用以评价预测能力。 取值在-1到1之间, 绝对值越大, 表示预测能力越好。

IC 的计算, 一般有两种方法, normal IC 与 rank IC。 聚宽计算的是rank IC.

  • normal IC: 因子载荷与因子收益之间的相关系数
  • rank IC: 因子载荷的排序值与收益的排序值之间的相关系数
  • 详情:normal IC 与 rank IC 的区别

同时考虑到单日 IC 的波动较大, 聚宽提供了 IC 的月度移动平均线作为参考。

换手率分析

因子的换手率是在不同的时间周期下, 观察因子个分位中个股的进出情况,因子分位数换手率的价值体现在两个方面:

  • 因子稳定性的体现:换手率低的因子,因子值在时间序列层面的持续性更好
  • 衡量交易成本:在实际的交易过程中, 假设我们要维护投资组合的因子暴露恒定, 对于高换手率因子, 则需要进行更多的交易。 交易中的税费和滑点, 也会吞噬掉我们的部分利润。

计算方法举例: 某因子第一分位持有的股票数量为30支, 一天后有一只发生变动, 换手率为: 1/30 *100% = 3.33% 对于5日、10日的换手率,在每日都会对比当日1、5分位数的成分股与5日、10日前该分位数的成分股的变化进行计算。

聚宽分析因子分析框架使用

参考文章