基于遗传规划的选股因子挖掘华泰人工智能系列之二十一
创建于 更新于
摘要
本文介绍了遗传规划(genetic programming)方法在股票选股因子挖掘中的应用,基于对gplearn项目的深度改进和定制,结合丰富的量价数据和函数库,实现选股因子的启发式公式演化。测试结果显示,遗传规划可挖掘出具有增量信息的股票因子,并通过包括行业和主流风格中性化的单因子回归、IC值及分层回测测评,6个因子表现稳健且大部分相关性较低,验证了该方法在A股市场的有效性和可操作性 [page::0][page::4][page::9][page::10][page::13][page::22]。
速读内容
遗传规划方法及其在选股因子挖掘中的应用 [page::4][page::5][page::6]
- 遗传规划通过公式树结构,模拟生物进化过程进行公式演化,包含核心进化操作如交叉、子树变异、点变异和Hoist变异,推动新的候选因子产生。
- 公式树由变量、函数和常数组成,适应度通过RankIC等指标评价,指导公式存活和演进。

- 交叉变异示意图、子树变异、点变异、Hoist变异示意图,展示遗传规划多样化搜索方式。




gplearn项目的关键参数与定制改进 [page::7][page::8][page::10]
- 使用成熟的Python遗传规划库gplearn作为基础,重点改进了函数集,增加时间序列运算、自定义行业中性化等适合选股因子的特定函数。
- 主要参数设置示意(代数、种群数量、函数集、交叉概率等)确保效率和因子表达能力的平衡。
- 使用Python并行运算技术提升计算效率,1000个公式进化3代耗时约14小时。
- 扩展的函数列表涵盖协方差、相关系数、秩、时序加权等高级计算,为选股因子公式构建提供丰富基础。
| 参数名称 | 定义和参数设置说明 | 参数设置 |
|----------------|--------------------------------------------------------|-----------------|
| generations | 公式进化的世代数量,越多消耗算力越大 | 3 |
| populationsize | 每代公式数量,越多组合空间越大 | 1000 |
| functionset | 构建公式时使用的函数集,自定义扩展多个时序计算函数 | 图表8中所示函数集 |
| initdepth | 公式树初始化深度范围 | (1,4) |
| tournamentsize | 选拔竞争规模,影响选择结果不确定性 | 20 |
| metric | 适应度指标,使用自定义RankIC | 自定义RankIC |
| pcrossover | 父代交叉概率,高概率实现多样化进化 | 0.4 |
| psubtreemutation | 子树变异概率,小概率避免过度随机 | 0.01 |
| phoistmutation | Hoist变异概率,本文未使用 | 0 |
| ppointmutation | 点变异概率,小概率 | 0.01 |
数据与测试流程简介 [page::9]
- 股票池覆盖全A股,剔除ST、PT及停牌股,回测区间2010年1月至2019年5月。
- 原始因子包括日度收益率、开盘收盘高低价、成交量及成交量加权价(VWAP)。
- 预测目标是个股未来20日收益率,因子经过中位数去极值、行业+市值及其他风格中性化处理后评价RankIC。
- 测试流程:数据预处理→遗传规划因子挖掘→单因子回归测试与RankIC评价→分层回测→IC衰减及因子相关性分析。
遗传规划挖掘出的6个主要选股因子及表现总结 [page::10][page::13][page::14]
| 因子名称 | 因子表达式 | 适应度(RankIC均值) |
|----------|-------------------------------------------------------------------------|-------------------|
| Alpha1 | correlation(div(vwap, high), high, 10) | 3.83% |
| Alpha2 | tssum(rank(correlation(high, low, 20)), 20) | 3.95% |
| Alpha3 | -tsstddev(volume, 5) | 3.67% |
| Alpha4 | -mul(rank(covariance(high, volume, 10)), rank(tsstddev(high, 10))) | 3.41% |
| Alpha5 | -mul(tssum(rank(covariance(high, volume, 5)), 5), rank(tsstddev(high,5))) | 2.94% |
| Alpha6 | tssum(div(add(high, low)), close), 5) | 2.45% |
- 因子均在去除行业、市值和四个常见风格中性后表现稳健,具备显著性和稳定的RankIC值。
- 回归测试、IC分析与分层回测均验证了这些因子对未来收益具有一定预测能力,Alpha1和Alpha2表现最佳,ICIR分别为0.94和0.78。


单因子回归测试与IC分析方法概要 [page::11][page::12][page::13]
- 使用加权最小二乘法回归,控制行业、市值影响,重点关注回归系数的t统计量及其显著性。
- RankIC计算采用Spearman秩相关,稳定性以IC标准差和IC_IR评判。
- 分层回测通过构造多空组合,验证不同因子层的超额收益及风险指标。
- 特别强调多层组合年化收益率、夏普比率与最大回撤等多维指标。
因子IC衰减分析及相关性测试 [page::20][page::21]
- 因子Alpha1~Alpha6的IC值随着滞后期数递减,但均保持一定的预测有效期,半衰期在5到35个交易日之间,Alpha3的半衰期最长达35天。
- 因子之间相关性整体较低,仅Alpha4与Alpha5高度相关(相关系数0.81),显示遗传规划挖掘出的因子大多提供独立增量信息。
| 因子名称 | 半衰期(天) |
|----------|------------|
| Alpha1 | 9 |
| Alpha2 | 15 |
| Alpha3 | 35 |
| Alpha4 | 19 |
| Alpha5 | 21 |
| Alpha6 | 5 |
结论与思考总结 [page::22]
- 遗传规划为因子挖掘提供了全新的工具与方法,超越传统人工设计因子的限制,能够发现高效且可解释的新型选股因子。
- 通过对gplearn系统的扩展与优化,大幅提升灵活性和计算效率。
- 6个遗传规划挖掘出的选股因子均具有稳健性和增量信息,部分因子与传统因子相关性较低,增强组合多样性。
- 本文所示流程和框架具备高度可调节性,适合不同用户和市场需求的定制化因子挖掘。
深度阅读
一、元数据与概览
- 报告标题:基于遗传规划的选股因子挖掘华泰人工智能系列之二十一
- 作者:林晓明(执业证书编号:S0570516010001)、陈烨(执业证书编号:S0570518080004)、李子钰、何康
- 发布机构:华泰证券研究所
- 发布日期:2019年6月10日
- 研究主题:应用遗传规划(genetic programming, GP)方法在A股市场基于量价数据挖掘选股因子,深入探讨遗传规划的原理、改进及其选股因子表现。
核心论点:
本文提出将遗传规划这一模拟自然进化过程的启发式公式演化技术应用于选股因子的挖掘,突破人脑设计因子的思维限制,通过深度定制的gplearn程序包,对A股全样本进行因子挖掘并验证其有效性。结果显示,遗传规划可以从有限的量价数据中挖掘出增量信息因子,为选股因子研究提供新的思路。本文提供了完整的遗传规划流程介绍、程序包改进、测试流程与结果,以及详细的因子解释和风险提示。
评级与目标价:无明确股票买卖评级或目标价,本报告为方法论与因子研发性质的深度研究报告。[page::0,3]
---
二、逐节深度解读
1. 本文研究导读(第3页)
阐述研究背景与问题,提出三个核心研究问题:
- 遗传规划基本原理和参数;
- 在选股因子挖掘中的定制化改进;
- 挖掘因子的性能及含义解读。
定位本文旨在普及与展示GP的股票因子挖掘技术细节。[page::3]
2. 遗传规划简介与总体流程(第4-6页)
- 遗传规划作为演化算法的一种,模拟自然选择——“适者生存”,由随机公式群体起步,通过迭代计算适应度(匹配目标函数,本文以RankIC作为因子适应度指标),经过选择、交叉、变异进化,逐步找到更优公式。
- 力图实现“先有公式、后有逻辑”即通过演化生成有效因子,再解释其内涵,区别于传统“先有逻辑、后有公式”的因子设计方式。
- 公式采用二叉树结构表示(图表2),节点为函数,叶子为变量或常数。
- 交叉(图表3)、子树变异(图表4)、点变异(图表5)、Hoist变异(图表6)等机制详细介绍,说明如何通过操作子树提升公式多样性、避免过拟合、复杂度管理。
逻辑清晰,图示丰富,帮助理解遗传规划如何在因子挖掘中演化公式结构,强调适应度函数设定的关键性和复杂度控制。[page::4-6]
3. gplearn项目简介与改进(第7-8页)
- gplearn是Python遗传规划开源项目,提供参数丰富的工具支持公式生成,参数包括进化代数、群体大小、函数集、变异概率和树深度等(图表7)。
- 华泰证券研究所对gplearn进行了深度定制:
- 扩充函数集,引入多种时序运算函数(图表8),如延迟、相关系数、协方差、加权滑动平均等,这些函数是传统gplearn所不具备的,极大拓展了计算量价因子的能力;
- 将单因子测试过程嵌入gplearn,使挖掘出的因子经过行业和风格因子中性化;
- 利用Python并行运算技术优化计算速度。
此章节凸显技术改造以适应金融因子挖掘的现实需求,同时增强了因子测试的科学性和效率。[page::7-8]
4. 遗传规划选股因子挖掘测试流程(第9页)
- 股票池使用剔除ST、PT及停牌个股的全A股;回测区间2010年初至2019年5月底。
- 因子输入为未经过工程化处理的原始量价数据如开盘、收盘、最高、最低、成交量、VWAP等(图表9)。
- 目标为预测未来20交易日收益率。
- 测试流程包括数据预处理(中位数截断去极值、多因子中性化、标准化),遗传规划公式进化计算适应度,选出的因子进行IC分析、回归和分层回测等多角度验证。
- 强调通过标准化和中性化剔除行业、市值等常见影响因子的掩盖,力求得到真正增量因子。
体系完整,预处理严谨,适应度设计合理,考虑了量化实践中常见数据问题。[page::9]
5. 遗传规划主要参数设置与测试结果(第10页)
- 进化3代,群体规模1000,树深度1至4层。
- 主要变异概率设置了交叉40%、子树变异和点变异1%,无Hoist变异。
- 测试中观察公式长度和适应度随代数变化,平均适应度从0.81%提升到2.43%。
- 计算耗时约14小时。
- 挖掘出6个因子(图表12)主要表现为基于量价的相关性、波动率、协方差等组合指标,适应度在2.45%~3.95%。
- 因子均经过行业、市值及常见风格因子中性化考量。
参数设计考虑了拟合复杂度和计算资源限制,挖掘因子基本符合财务和量价逻辑,适度且多样化。[page::10]
6. 遗传规划因子单因子测试方法与结果(第11-13页)
- 单因子测试采用回归法(对T期因子暴露度预测T+1期收益,WLS回归,控制行业和市值效应,统计因子收益率及显著性t值)、IC值法(计算RankIC均值、波动等)、分层回测法(构建N层等权多空组合,观测超额收益率及风险指标)。
- 详细介绍加权回归、极值处理、中性化和标准化方法。
- 图表13汇总了六因子在不同中性处理下的回归t值均值、IC均值、ICIR、正向比例等指标,均显示因子具有稳定且显著的预测能力,且经行业+4风格因子中性化后仍保留较好的效用。
测试体系科学全面,结果显示遗传规划挖掘因子对应资产收益存在统计显著正向关系,稳健性较好。[page::11-13]
7. 六大因子详细测试与解读(第14-19页)
对每个因子给出表达式、经济学含义、分层测试表现,配以净值走势及RankIC累积图:
- Alpha1:10日内vwap与high价的除法值相关性,表现为分层组合收益单调,ICIR最高0.94,说明有较强可预测力和稳定性。
- Alpha2:20日内high与low的相关排序sum,表现稍逊,但仍有效,ICIR=0.78。
- Alpha3:负成交量5日波动率,表现为中间组最好,两头差,IC
- Alpha4:高价与成交量10日协方差乘以高价10日波动率的负rank,表现较为稳定,ICIR=0.59。
- Alpha5:类似Alpha4,但5日窗口,表现接近Alpha4,IC
- Alpha6:5日内high+low之和与close的比值的sum,表现偏弱,ICIR=0.46。
图表净值表现显示食品组合净值相较基准明显超额增长,分层收益清晰分层,说明因子定价能力有效。
因子含义皆基于量价时序特征,易于解释,且大部分因子与市值、行业中性化后仍有良好表现,验证了因子的增量价值。[page::14-19]
8. 因子IC衰减与相关性分析(第20-21页)
- IC衰减测试通过计算因子在截面K时刻与K+i至K+20+i收益的Rank IC,分析信息滞留时间。
- 半衰期(IC衰减至一半所需滞后期数)从5日至35日不等,Alpha3的35日最长,Alpha6的5日最短,体现策略应用中需考虑因子持有期限匹配。
- 因子两两相关系数普遍较低(大多低于0.2),仅Alpha4和Alpha5相关度较高(0.81)因构造逻辑近似。相关性低说明挖掘的因子信息丰富、互补性强。
深度分析了因子信号持续性和信息冗余问题,有助于多因子模型的构建与参数调优。[page::20-21]
9. 总结与思考(第22页)
- 遗传规划适用于选股因子挖掘,能突破人脑设计局限,发掘具有增量信息的隐藏因子。
- 本文贡献在于详细介绍遗传规划原理及参数、对gplearn进行定制化增强、加入单因子测试流程及加速技术。
- 测试出六个基于量价数据、剔除多种风格因子影响,且具稳定Rank IC的有效因子。
- 遗传规划框架灵活,用户可根据自身需求调整参数和计算流程,实现“先有公式、后有逻辑”的因子研究范式。
- 风险提示明确指出因子仅基于历史测试且可能复杂难解,且结果仅适用于全A股股票池的回测,谨防过拟合与迁移失效。
整体评价理性,既强调技术优势也警示实际投资可能风险。[page::22,23]
---
三、图表深度解读
- 图表1(遗传规划总体流程,页4):展示公式群体的生成、适应度计算、父代选择、交叉变异及迭代步骤,直观表现遗传规划的核心流程。红色横向箭头与箭头指示流程循环,整体传递进化过程逐步逼近最优公式。
- 图表2(公式树示例,页5):用具体公式构造二叉树结构,节点标明基本运算符,叶子为变量和常数。展示公式树可方便进行子树替换,实现变异和交叉。
- 图表3~6(交叉和各种变异操作,页5-6):具体图形示范公式树操作细节,如选中子树替换、节点随机变更等,形象展示了如何实现遗传操作保持多样性与收敛性。
- 图表7(gplearn主要参数,页7):详细表格列出各参数功能及意义,便于用户理解调参对进化搜索的影响,如世代数、种群规模、函数集、变异概率等。
- 图表8(函数列表,页8):涵盖基础算术运算与自定义时序函数,强调本文针对金融量价数据的扩展,多层次捕捉时间序列特征。例如corr、covariance、ts
- 图表9(原始因子列表,页9):列举所使用的基础量价数据,包括开盘、收盘、最高、最低价,成交量、加权价格,为遗传规划提供原材料。
- 图表10(主要参数设置,页10):具体数值显示遗传规划配置,如3代、1000个公式,树深度(1-4)等,体现试验开销与计算资源权衡。
- 图表11(测试过程统计信息,页10):平均公式长度及适应度随代数变化,平均长度从7.86减至5.35,适应度由0.81%升至2.43%,说明复杂度适度控制且进化有效。
- 图表12(挖掘出的6个因子,页10):表达式简洁、具备经济学含义的量价特征,适应度最高近4%,均具统计显著性。
- 图表13(回归及IC测试结果汇总,页13):详尽数列反映t值均值、IC均值和显著性,多种中性化方式下稳健表现。
- 图表14-31(六因子分层表现及RankIC累积,页14-19):每个因子的投资组合绩效多层级展示,和基准对比存在普遍超额表现,累积RankIC曲线稳定向上,数字指标显示出因子有效性和相对风险调整收益。
- 图表32(因子IC衰减曲线,页20):反映因子信号持续期的时间趋势,与对照因子形成对比,显示遗传规划因子多具有合理信号持续期。
- 图表33(因子半衰期,页20):具体数字9-35天,指导因子参数调优和持仓周期选择。
- 图表34(因子间相关系数,页21):因子间关联度低,体现因子具有独立增量信息,利于多因子策略组合构建。
所有图表与正文紧密结合,提供了理论、演示、参数与实际业绩的全面视角,科学支持文本论断。图片均配有清晰说明,利于读者快速抓取要点。[page::4-21]
---
四、估值分析
本文不涉及具体股票估值方法及目标价,聚焦于因子挖掘技术和因子有效性验证,无直接估值分析内容。[page::无]
---
五、风险因素评估
- 历史经验总结易失效,过于复杂的公式导致因子解释性弱,投资时需谨慎。
- 遗传规划过程存在随机性,因子稳定性存在限制。
- 已测试因子有效性基于全市场A股,不能直接外推至其他股票池或市场。
- 用于交易的因子可能因为市场环境变化、策略拥挤等原因表现异于回测,存模型风险。
- 报告未提供具体缓释措施,仅提醒用户注意风险。
风险提示体现谨慎态度,符合量化策略研究惯例。[page::23]
---
六、批判性视角与细微差别
- 报告较好说明遗传规划参数设置,体现对算力与模型复杂度平衡的重视,但世代数3代相对较少,可能导致未充分探索所有优质公式,未来可扩展进一步推演。
- 因子适应度多仅在2%-4%左右,虽显著,但整体绝对水平不高,表明单因子信息有限,实际策略构建可能需多因子组合及整合。
- 部分因子(如Alpha3、Alpha6)IC_IR较低,波动大,潜在稳定性风险较大。
- 在优化时未使用Hoist变异,可能限制了公式简化潜力,未来考虑引入该机制可能提升因子可解释性。
- 报告仅测试单因子,不涉及多因子联合优化及动态调整,实际应用空间需扩展。
- 虽强调因子解释性,但未深入阐述每个公式背后具体经济学逻辑,解释偏弱。
- 风险提示提及仅限全市场A股,显示研究的外推性受限。
总的来看,报告理性客观,但需注意理论方法和实际应用之间的差距限定。[page::10,22,23]
---
七、结论性综合
本文系统展示了遗传规划在选股因子挖掘中的完整应用流程,从理论原理、公式表征、遗传操作、程序包改造、到回测及多指标评价,体现了通过人工智能技术突破传统因子设计的创新思路。其主要亮点包括:
- 利用进化算法的启发式搜索能力,从海量基本量价数据中自动构造复杂的、具经济意义的因子表达式,绕开人工设计瓶颈。
- 深度改造了成熟的gplearn工具包,扩展了函数集,引入了金融专用时序函数,支持单因子中性化测试操作,同时通过并行计算提升性能,适合金融量价数据特征。
- 测试中选股因子均以20日后收益率为预测目标,体现因子对中短期趋势捕捉效果。
- 六个代表性因子经行业+市值+常见风格因子中性后,仍展现良好的Rank IC平均值(均在2.45%-3.95%区间)、IC IR指标和显著性t值,且分层回测展现稳定超额收益和风险调整表现,有效验证了因子的实用价值。
- 因子之间相关性普遍较低,彰显挖掘结果存在信息多样性,有助于多因子组合构建。
- IC衰减分析提供因子信息时效性的定量指标,指导实际策略的持仓周期设计。
- 报告强调“先有公式、后有逻辑”的模式开放因子构建的新方法论,同时指出因子复杂性、稳定性和过拟合风险,提醒使用谨慎且局限于A股市场的实证结果。
总体而言,本文贡献体现为推动人工智能算法特别是遗传规划在中国市场的因子挖掘研究中的落地实践,展示了GP在多因子选股领域的新可能与潜力,也为研究者和投资人提供了应用框架和代码工具的改进思路。遗传规划因子的实证表现和独立性较强,具有一定的策略价值,但仍需进一步结合多因子模型优化及动态适应机制的研究。
---
八、溯源标注
本分析全文内容均来自华泰证券研究所2019年6月10日发布的《基于遗传规划的选股因子挖掘华泰人工智能系列之二十一》,具体页码已在对应段落后标注,例如:[page::0] [page::13]等。
---
九、附录:关键图表示例(部分展示)
- 图1 遗传规划总体流程示意图

- 图2 公式树表示示例

- 图3 交叉操作示例

- 图14 Alpha1分层测试表现

- 图16 Alpha1累积RankIC和累计收益

完整图片参见报告对应页码[page::4,5,14]
---
总结
本文作为华泰证券“华泰人工智能系列”中的选股因子研发篇章,系统、详尽地介绍了基于遗传规划的因子自动挖掘方法论及其实证验证,体现了“授人以渔”的理念,为金融机器学习型因子研究提供了有价值的范式。其严谨的实验设计和多角度测试,结合图表数据和代码改进,展现了这一新兴技术在提升量化选股模型表现方面的可行性和潜力,具有重要的研究参考价值和应用前景。[page::0-23]