Skip to content

本文通过gplearn模型,结合遗传算法中的遗传规划方法生成因子。这里因子生成基于simple-backtest中的简单回测系统,主要针对股指期货操作。

Notifications You must be signed in to change notification settings

daydayup789/use-gplearn-to-generate-CTA-factor

 
 

Repository files navigation

use-gplearn-to-generate-CTA-factor

本项目使用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 设定gplearn
    • IC.py 计算IC
    • my_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%) IC

生成的时序因子形式如下

测试集内,回测效果如下 回测效果

About

本文通过gplearn模型,结合遗传算法中的遗传规划方法生成因子。这里因子生成基于simple-backtest中的简单回测系统,主要针对股指期货操作。

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%