要做的事情:
1 测试剩下的三个因子:coppock 潮汐因子 云开雾散
2 整理需要时间序列的因子 以及截面因子
3 灾后重建多了一列,'灾后重建’所有值都是nan,这里不仅是灾后重建,所有的都要改
4 coppock 潮汐因子 云开雾散在回测的时候,需要考虑因子构建,一会再做
5 hurst再明确一下
6 适度冒险是截面因子,先搁置一下
7 看一下脚本8 在看共享内存 read_coin这部分
8 看一下strategy_高频因子
9 评估一下所有因子的表现,整理成文档
首先画出每个因子的参数平原 然后挑出表现好的画资金曲线
10 反思一下,整个过程什么样的,如何才能改出那种结果
时间序列
rolling(20)
1 灾后重建
2 潮汐因子
3 云开雾散
4 勇攀高峰
衰减加权
截面因子
1 适度冒险
脚本8
- 脚本8干了什么
- 脚本8如何完成这项任务的
- if_use_spots = [True, False]
这里应该是遍历了两种情况 - for i in range(1):
这里什么情况,什么意思 - _factor_list = factor_list[i * 50: (i + 1) * 50]
遍历所有的因子 - for _hold_period in hold_periods:
这里的hold_periods是list,可以对小时和天的数据做遍历 params = [3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377] #将选币因子和参数组合一起 select_factor_list = [] for _factor in _factor_list: for _param in params: select_factor = _factor + '_' + str(_param) select_factor_list.append(select_factor)
这里的select_factor是factor+param
比如说:did_7
每个因子都有一个参数- 这个脚本对所有的参数都进行了遍历
分别是:因子数量 数据周期(小时天) 所有因子 参数 过滤条件 现货合约 offset 选币数量 排序方式 - 为什么一直在玩共享内存,意义在哪里?
稍后再议 - 最经典的是2号脚本里面传入的参数:info
稍后钻到二号脚本再看看
总的来说,八号脚本就是通过一系列的for循环,把所有能想到的不能想到的参数都运行了一遍。而且八号脚本没图,只有数据
共享内存
import pickle
# 保存对象到文件
with open('example.pkl', 'wb') as file:
pickle.dump(my_object, file)
# 从文件中读取对象
with open('example.pkl', 'rb') as file:
my_object = pickle.load(file)
dump是将my_object放到file中,load是从file读取内容到my_object
df = read_coin(root_path, _hold_period, all_factor_list, _if_use_spot, n_jobs, _offset)
dump(df, tmp_path)
这段代码,将df放到tmp_path,然后在脚本2中使用,为什么捏?
数据整理文件夹包含现货和合约数据,下面是所有币种,每个因子下面是两个文件夹 factors和periods,factors里面是这个币种的所有因子的文件。periods
read_coin函数的作用就是把