9.19工作笔记
怎么做多空对冲
脚本2怎么实现多空对冲的
- 首先读取factors和periods中的文件,然后read_coin得到结果
- strategy里面的cal_factor的作用是将所有的因子排名加权得到一个新的因子,这个就是多因子的做法。其中因子权重为factor_list里面的因子的最后一个元素,这里涉及到strategy里面的两个变量long_factor 和short_factor,如果其值为factors则表示,做复合因子
- backtest_df为得到的复合因子
- before_filter如果没有条件,则df_long 和df_short得到的就是df的copy
- select_long_and_short_coin进行的是多空选币,这里需要注意:多空分别采用了什么因子,这里出现了long_factor和short_factor做为多空因子,但实际上这两个值都为factors,我怀疑这里做的多空是十分组,第一组多,第n组空
- 如果想做多因子多空,需要改代码
- select_long_and_short
如果是多空不同的单因子
- Strategy.calc_factor得到的是和read_coin相同的back_test_df
- 只需要修改strategy里面的long_factor和short_factor为想要的因子
任务
将PSY因子多头资金曲线和其他资金曲线组成对冲的多空资金曲线
多空资金曲线可以观察什么时期PSY因子有超额,什么时期没有,超额稳定不稳定
其他的资金曲线包括:BN现货全市场在资金曲线、流动性多头资金曲线、反转策略多头资金曲线、BTC资金曲线
这里用到的办法是涨跌幅 = (a - b)/ 2
- 全市场资金曲线怎么算
- 在得到factors和periods之后,如何计算资金曲线
ret_next
periods的文件如图:
df[‘ret_next’] = df[‘下个周期_avg_price’] / df[‘avg_price’] - 1
其中avg_price是一小时的avg_price在12h的区间里去第一个值
这里的ret_next是下个周期价格的涨跌幅
计算资金曲线的流程
- read_coin读数据,得到12h的开高收低 涨跌幅以及因子值
这里的因子 涨跌幅怎么从1h到12h
avg_price是从1h到12h取first
df[‘ret_next’] = df[‘下个周期_avg_price’] / df[‘avg_price’] - 1
这里可能存在问题,avg_price从1h到12h需要做mean
因子值怎么得到???????
- 然后通过因子排名得到多空选币的币
- 每个时间点,知道下个周期选中的每个币的下周期涨跌幅,分别计算资金曲线,然后mean得到总体资金曲线,然后回推得到总体涨跌幅
- 这样就能得到每个周期的涨跌幅
- 计算的到资金曲线
怎么计算新涨跌幅
- 在上面得到每个周期涨跌幅之后
- (a - b) / 2得到新的涨跌幅度
怎么计算全市场涨跌幅
- 12h的周期上,计算每个时间点的 净流动资金 = 流入资金 - 流出资金
- 然后计算涨跌幅为全市场涨跌幅
- merge一下