多因子量化选股系列之六:遗传规划的研究与应用-20230925-湘财证券-25页_1mb
报告摘要
多因子量化选股系列之六:遗传规划的研究与应用总结
核心内容
本报告是湘财证券多因子量化选股系列的第六篇,主要探讨遗传规划算法在量价因子挖掘中的应用。通过扩展gplearn程序的函数集并引入时间序列相关函数,结合中证500股票池进行因子训练,最终生成15个有效遗传规划因子,并通过因子合成方法构建中证500指数增强策略。
主要观点
- 遗传规划概述:遗传规划是一种基于生物进化原理的自动编程方法,通过繁殖、交叉、突变等操作优化因子表达式,适用于复杂因子挖掘任务。
- 因子挖掘与检验:使用遗传规划算法挖掘量价因子,输入变量包括高开、低收、成交量等,预测目标为20日后收益率,最终筛选出15个因子。
- 因子合成:对相关性较高的因子进行合成,提升因子整体表现,合成因子的IC均值为0.07,ICIR为0.77,多空组合年化收益达17.84%。
- 策略构建:基于合成因子构建中证500指数增强策略,回测时间为2016.12.30至2023.08.30,超额年化收益为6.06%,信息比率为1.29,Calmar比率为0.78。
- 风险提示:模型基于历史数据,未来可能存在因子失效或模型失效的风险。
关键信息
遗传规划因子挖掘
- 输入变量:股票高开、低收、成交量等。
- 预测目标:股票20日后收益率。
- 因子数量:共生成15个有效因子。
- 筛选标准:适应度(IC均值)大于0.02的表达式。
- 最佳因子表现:
- IC均值:0.04
- ICIR:0.45
- 年化收益:11.88%
- Sharpe比率:1.31
- Calmar比率:0.89
遗传规划因子合成
- 合成方法:对相关性较高的因子进行合成,再与相关性低的因子组合。
- 合成因子表现:
- IC均值:0.07
- ICIR:0.77
- 年化收益:17.84%
- 波动率:8.94%
- 最大回撤:-12.68%
- Sharpe比率:2
- Calmar比率:1.41
策略构建与回测
- 策略类型:中证500指数增强策略。
- 回测时间:2016.12.30至2023.08.30。
- 调仓频率:每月最后一个交易日调仓,持仓期为一个月。
- 策略表现:
- 超额年化收益:6.06%
- 波动率:4.70%
- 最大回撤:-7.77%
- 信息比率:1.29
- Calmar比率:0.78
- 2023年超额收益:2.74%
因子列表与表现
| 因子名称 | 表达式 | IC均值 | ICIR | 年化收益(%) | 波动率(%) | 最大回撤(%) | Sharpe | Calmar |
|---|---|---|---|---|---|---|---|---|
| Factor1 | add(ts_cov(turn, amt, 20), ts_chg(turn, 20)) | 0.03 | 0.37 | 6.08 | 9.21 | -16.95 | 0.66 | 0.36 |
| Factor2 | ts_ms(amt, 20) | 0.03 | 0.34 | 5.23 | 6.96 | -13.83 | 0.75 | 0.38 |
| Factor3 | ts_std(ts_corr(turn, amt, 10), 5) | 0.01 | 0.16 | 7.3 | 8.41 | -11.88 | 0.87 | 0.61 |
| Factor4 | mul(turn, amt) | 0.04 | 0.45 | 11.88 | 9.06 | -13.39 | 1.31 | 0.89 |
| Factor5 | rank_sub(open, amt) | 0.03 | 0.46 | 2.16 | 7.49 | -20.09 | 0.29 | 0.11 |
| Factor6 | ts_mean(ts_corr(high, turn, 10), 20) | 0.04 | 0.39 | 5.59 | 8.83 | -19.35 | 0.63 | 0.29 |
| Factor7 | mul(log(turn), ts_std(amt, 10)) | 0.04 | 0.49 | 6.66 | 9.51 | -12.1 | 0.7 | 0.55 |
| Factor8 | ts_mean(rank(ts_corr(high, low, 20)), 20) | 0.01 | 0.15 | 6.72 | 7.75 | -11.58 | 0.87 | 0.58 |
| Factor9 | rank_sub(rank_sub(ret, close), ts_chg(ret, 10)) | 0.02 | 0.24 | 1.54 | 6.85 | -14.88 | 0.22 | 0.1 |
| Factor10 | ts_mean(ts_delay(ts_chg(open, 60), 10), 60) | 0.02 | 0.16 | 9.33 | 11.52 | -19.17 | 0.81 | 0.49 |
| Factor11 | ts_cov(turn, ret, 60) | 0.04 | 0.45 | 5.08 | 8.91 | -11.23 | 0.57 | 0.45 |
| Factor12 | ts_mean(div(open, low), 60) | 0.04 | 0.29 | 1.86 | 12.35 | -29.99 | 0.15 | 0.06 |
| Factor13 | rank_add(ts_ms(low, 20), ts_ms(ret, 20)) | 0.02 | 0.17 | 3.89 | 9.85 | -16.44 | 0.39 | 0.24 |
| Factor14 | ts_skew(open, 60) | 0.02 | 0.32 | 6.11 | 6.8 | -10.15 | 0.9 | 0.6 |
| Factor15 | ts_skew(high, 20) | 0.03 | 0.32 | 2.82 | 7.33 | -16.02 | 0.38 | 0.18 |
因子相关性矩阵
| 因子 | Factor1 | Factor2 | Factor3 | Factor4 | Factor5 | Factor6 | Factor7 | Factor8 | Factor9 | Factor10 | Factor11 | Factor12 | Factor13 | Factor14 | Factor15 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Factor1 | 1.00 | 0.31 | -0.18 | 0.69 | 0.22 | 0.23 | 0.70 | -0.07 | -0.03 | -0.09 | 0.43 | 0.28 | 0.19 | 0.12 | 0.09 |
| Factor2 | 0.31 | 1.00 | 0.10 | 0.10 | 0.12 | 0.36 | 0.11 | 0.13 | 0.01 | 0.07 | 0.09 | 0.03 | 0.07 | 0.08 | 0.29 |
| Factor3 | -0.18 | 0.10 | 1.00 | -0.23 | -0.07 | 0.11 | -0.20 | 0.12 | 0.01 | 0.09 | -0.14 | -0.26 | -0.29 | 0.00 | 0.09 |
| Factor4 | 0.69 | 0.10 | -0.23 | 1.00 | 0.25 | 0.12 | 0.81 | -0.08 | 0.00 | -0.09 | 0.36 | 0.23 | 0.10 | 0.08 | 0.05 |
| Factor5 | 0.22 | 0.12 | -0.07 | 0.25 | 1.00 | 0.12 | 0.31 | -0.06 | 0.37 | -0.02 | 0.18 | 0.14 | 0.07 | 0.08 | 0.04 |
| Factor6 | 0.23 | 0.36 | 0.11 | 0.12 | 0.12 | 1.00 | 0.13 | 0.24 | 0.02 | 0.03 | 0.21 | -0.04 | -0.15 | 0.09 | 0.18 |
| Factor7 | 0.70 | 0.11 | -0.20 | 0.81 | 0.31 | 0.13 | 1.00 | -0.09 | 0.00 | -0.12 | 0.40 | 0.31 | 0.12 | 0.09 | 0.05 |
| Factor8 | -0.07 | 0.13 | 0.12 | -0.08 | -0.06 | 0.24 | -0.09 | 1.00 | 0.01 | 0.00 | -0.02 | -0.10 | -0.23 | 0.02 | 0.03 |
| Factor9 | -0.03 | 0.01 | 0.01 | 0.00 | 0.37 | 0.02 | 0.00 | 0.01 | 1.00 | 0.03 | 0.00 | -0.06 | -0.08 | 0.00 | 0.02 |
| Factor10 | -0.09 | 0.07 | 0.09 | -0.09 | -0.02 | 0.03 | -0.12 | 0.00 | 0.03 | 1.00 | -0.13 | -0.29 | -0.07 | 0.03 | 0.01 |
| Factor11 | 0.43 | 0.14 | -0.14 | 0.36 | 0.18 | 0.21 | 0.40 | -0.02 | 0.00 | -0.13 | 1.00 | 0.28 | 0.11 | 0.08 | 0.03 |
| Factor12 | 0.28 | 0.03 | -0.26 | 0.23 | 0.14 | -0.04 | 0.31 | -0.10 | -0.06 | -0.29 | 0.28 | 1.00 | 0.42 | 0.06 | 0.00 |
| Factor13 | 0.19 | 0.07 | -0.29 | 0.10 | 0.07 | -0.15 | 0.12 | -0.23 | -0.08 | -0.07 | 0.11 | 0.42 | 1.00 | -0.12 | -0.03 |
| Factor14 | 0.12 | 0.09 | 0.00 | 0.08 | 0.08 | 0.19 | 0.09 | 0.02 | 0.00 | 0.03 | 0.08 | 0.06 | -0.12 | 1.00 | 0.09 |
| Factor15 | 0.09 | 0.29 | 0.09 | 0.05 | 0.04 | 0.18 | 0.05 | 0.03 | 0.02 | 0.01 | 0.03 | 0.00 | -0.03 | 0.09 | 1.00 |
策略表现
- 回测时间:2016.12.30至2023.08.30
- 调仓频率:每月最后一个交易日调仓
- 持仓期:一个月
- 持股数量:约90只
- 策略表现:
- 超额年化收益:6.06%
- 波动率:4.70%
- 最大回撤:-7.77%
- 信息比率:1.29
- Calmar比率:0.78
- 2023年超额收益:2.74%
风险提示
- 模型基于历史数据,未来可能出现因子或模型失效的风险。
- 投资者需自行承担投资风险,不得依赖本报告进行决策。
总结
本报告通过遗传规划算法,从量价数据中挖掘出15个有效因子,并对因子进行合成以提升策略表现。合成因子在多空组合中表现出色,年化收益达17.84%,波动率和最大回撤较低,且Sharpe比率和Calmar比率较高。基于合成因子构建的中证500指数增强策略在回测中表现稳健,超额年化收益为6.06%,信息比率为1.29,Calmar比率为0.78。未来将持续研究机器学习算法在多因子策略中的应用。
展开完整摘要
试读结束,高清完整版pdf/doc/ppt,请点下载