本项目使用gplearn模型进行因子生成,具体由以下两个文档构成
timing_factor.py
通过收益与回撤的比值生成时序因子stock_selection_factor.py
通过5日IC生成选股因子
本文档将说明各文件作用,如何使用本项目以及成果展示。如果希望进一步了解遗传算法的理论内容,可以参考遗传算法实证思路梳理.pdf
关于如何回测,新增了factor_test.py
,可以快速进行多因子回测。对于主流回测框架的梳理,我目前发布在https://wjsbjl.github.io/simple-backtest/,欢迎交流讨论
gplearn
functions.py
加了自己的函数- 其他py文件改了一些细节,使得可以输入ndarray
toolkit
backtest.py
向量化回测框架DataProcess.py
数据处理setupGPlearn.py
设定gplearnIC.py
计算ICmy_plot.py
画图的类factor_test.py
向量化执行多因子回测,可以结合demo放到stock_selection_factor.py
里
遗传算法实证思路梳理.pdf
梳理遗传算法实证思路和本项目基本设定timing_factor.py
生成时序因子。这里通过收益/回撤的比值来刻画因子好坏,没考虑手续费,生成的因子结果还不错stock_selection_factor.py
生成截面因子。这里通过fadj_close
计算收益,可以换成vwap
下载本文档 (Unix)
cd /path/to/your/directory
git clone [email protected]:wjsbjl/use-gplearn-to-generate-CTA-factor.git
cd ./use-gplearn-to-generate-CTA-factor
生成时序因子
python timing_factor.py
生成截面因子
python stock_selection_factor.py
生成的截面因子形式如下(这里可能因为输入的数据已经是处理后的因子)
IC如下(5日IC -5.76%,10日IC -7.69%)
生成的时序因子形式如下