前言
上一小节中,介绍了期货多因子的大类分类,同时给出了一部分因子公式。
本节将展示完整的单因子分析流程,用于筛选后期构建多因子模型的素材。
流程
- 因子预处理
- 极值处理
- 标准化
- 中性化
-
IC分析
-
分组收益分析
-
因子收益率分析
案例展示
以系列一中提到的corr_vp_5m_d21为例
分析品种
选取黑色系期货品种(使用后复权主连数据) ==》 hei_se = ["RB889","HC889","J889","JM889","I889","FG889","SA889"]
计算因子矩阵与收益矩阵
因子矩阵
# 回测时间
s = '20180101'
e = '20230801'
factor_data = execute_factor(corr_vp_5m_d21_v2, hei_se , s, e)
假设每天T日收盘计算因子,在下一交易日T+1开盘买入,T+2日开盘卖出,则收益矩阵计算如下
RET_O2O = (OPEN - REF(OPEN,1))/ REF(OPEN,1)
label = execute_factor(RET_O2O, hei_se , s, e).shift(-1)
因子分析
对因子数据执行异常值处理以及标准化,由于在同一板块(黑色)做测试,未进行中性化处理,
在换仓周期为1,5,20日下,观察因子的IC变化,分层效果以及因子收益率变化。
engine = FactorAnalysisEngine()
engine.append(('winzorization-mad', Winzorization(method='mad')))
engine.append(('normalization', Normalization()))
engine.append(('rank_ic_analysis', ICAnalysis(rank_ic=True)))
engine.append(('quantile', QuantileReturnAnalysis(quantile=5, benchmark=None)))
engine.append(('return',FactorReturnAnalysis()))
result = engine.analysis(factor_data, label, ascending=False, periods=[1,5,20], keep_preprocess_result=False)
- IC分析
-
多空收益
-
分层
- 因子收益