基于股票日频 K 线的自动因子挖掘实践

该页面提供文章标题与基础发布信息(作者/日期)区域。

Source: https://dolphindb.cn/blogs/132

What this page covers

技能认证特训营第二期报名信息

页面顶部包含技能认证特训营第二期开启及限时报名链接与福利优惠提示。

基于股票日频 K 线的自动因子挖掘实践

文章标题与基础发布信息(作者/日期)区域。

遗传算法与 gplearn 背景及局限

介绍遗传算法来源与应用,并以 python gplearn 为例说明其用途与在量化投研场景中的性能与数据维度限制。

Shark GPLearn 产品引入与能力概述

提出 DolphinDB Shark GPLearn 并描述其相对 gplearn 的性能提升、算子库、GPU版本、多卡与三维数据分组语义支持等特性。

案例入口与白皮书指引

说明将以股票日频K线因子挖掘为例展示使用方法,并指向官网开发者中心白皮书获取完整案例与代码;配有导航截图说明。

基于股票日频 K 线数据进行因子挖掘流程

按步骤描述使用 Shark GPLearn 进行因子挖掘:数据导入预处理、模型训练、因子评价与模型优化。

第一步:导入数据并进行预处理

给出样本时间范围与预处理要点,包括筛选A股代码前缀、计算收益率与52周高低、删空与筛选全量交易日股票等。

第二步:训练模型

描述训练/测试拆分、算子库配置、引擎创建、自定义适应度函数与挖掘因子的流程,并给出训练规模与耗时及产出因子公式示例图。

第三步:因子评价

说明需对挖掘因子做单因子评价与回测,介绍 DolphinDB Alphalens 模块与IC分析流程、实现细节及有效因子筛选阈值,并附IC结果图说明。

第四步:模型优化

展示对进化轮次、节俭系数、初始化公式等参数的对比实验与结论,并说明通过增加初始化公式数量与混合随机公式提升种群多样性及结果示例。

结尾与白皮书下载试用引导

总结为 Shark GPLearn 自动因子挖掘示例,并引导访问官网获取高性能因子挖掘白皮书与下载试用 DolphinDB。

Facts Index

Entity Attribute Value Confidence
文章发布日期2024-12-19high
遗传算法提出者与机构由美国密歇根大学的 J. Holland 提出medium
遗传算法应用场景示例量子计算、电子设计、游戏比赛等low
python gplearn工具定位基于遗传算法开发的数据分析工具high
python gplearn能力可自动生成计算公式、优化特征选择和因子的非线性表达式medium
python gplearn性能问题存在性能瓶颈,导致因子挖掘效率偏低(适应度需计算大量复杂公式)medium
python gplearn数据维度支持只支持从二维数据中提取特征,不适用于时间×标的×特征的三维数据挖掘场景high
DolphinDB Shark GPLearn推出方由 DolphinDB 推出high
DolphinDB Shark GPLearn vs gplearn性能提升幅度性能上可实现近百倍提升medium
DolphinDB Shark GPLearn算子库具有更丰富的算子库medium
DolphinDB Shark GPLearnGPU实现提供高效的 GPU 版本实现medium
DolphinDB Shark GPLearn分组语义引入分组语义,可在训练中分组计算medium
DolphinDB Shark GPLearn三维数据支持支持在三维数据中挖掘因子high
DolphinDB Shark GPLearn多GPU支持支持单机多卡进行遗传因子挖掘medium
案例数据类型股票日频 K 线数据因子挖掘high
完整案例与代码获取方式可前往 DolphinDB 官网【开发者中心】-【白皮书】获取medium
示例数据集时间范围2020-08-12 至 2023-06-19high
示例数据预处理标的筛选选取“0”“3”“6”开头的 A 股数据high
示例数据预处理指标处理获取基础指标;计算收益率和 52 周最高价/最低价;删除空值;选取每天都有数据的股票medium
训练/测试拆分比例前 80% 日期数据为训练集,后 20% 为测试集high
模型输入数据获取方式通过 sql 函数查询指定列(xCols)作为输入数据medium
createGPLearnEngine用途与设置创建引擎初始化遗传算法模型,设置种群大小、进化代数等参数,并指定算子库(如滑动窗口函数)medium
自定义适应度函数实现逻辑通过 spearmanr、groupby、mean 三个函数实现因子 rankIC 的计算逻辑medium
训练调用函数与目标调用 gpFit(50) 进行训练,挑选最优的 50 个因子high
测试数据集规模约 166W 行medium
训练性能耗时训练 50 个因子耗时约 9 秒medium
挖掘产出结果形式挖掘出因子公式(program),示例图中展示函数嵌套并使用 mul、msum、mmax 等算子组合日频字段low
自动挖掘因子有效性问题并非所有挖掘出的因子都有效,正式使用前需要单因子评价、多因子回测等步骤high
DolphinDB Alphalens 模块开发与对标DolphinDB 自主开发,开发逻辑与 Quantopian 用 Python 开发的 Alphalens 相同medium
DolphinDB Alphalens 模块用途可计算不同持仓周期下的因子 IC 值序列medium
本例因子评价方法方法使用 IC 值分析法进行简单因子评价high
calFactor/parseExpr/sql/eval 工作流计算方式calFactor + parseExpr 将公式字符串转为元代码;sql 动态生成语句;eval 执行元代码得到因子值medium
Alphalens 单因子分析关键函数get_clean_factor_and_forward_returns 进行数据处理;create_information_tear_sheet 计算因子 IC 值medium
批量因子处理并行/批量方式可调用 peach 函数将 single_factor_analysis 应用到所有因子公式上以快速处理大量因子medium
有效单因子筛选阈值IC 值 > 0.03 且 IR 值 > 0.5 视为有效,并对其进行多因子回测high
模型优化参数对比实验参数针对进化轮次、节俭系数、初始化公式等参数进行对比实验high
进化轮次影响趋势结论迭代次数越多适应度越高但增长幅度有限;迭代次数越多因子长度越长、复杂度增高、可解释性降低medium
节俭系数实验设置测试范围仅测试 generations=6 且 parsimonyCoefficient ≤ 0 的情况high
节俭系数影响趋势结论节俭系数绝对值越大,对公式长度控制越严格,产生因子越简洁;但过大时长度影响可能超过 fitness 函数影响,不利于挖掘有效因子medium
Shark GPLearn初始化公式能力支持设置初始化公式,可基于已知有效因子进化变异以减少初始公式随机性、更有目标挖掘因子medium
初始化公式来源选择从国泰君安 191 因子库中选取 70 号因子作为初始公式进行优化medium
单一初始化公式优化结果观察结论样本内 IC 值有所提升,但因初始公式只有一个,生成因子组成单一medium
初始化种群丰富方法方法增加初始化公式数量;调节 size(initProgram) / populationSize 比例并让初始种群加入随机生成公式medium
初始化种群设置(改进实验)数量配置初始化公式由 1 个增加到 8 个;初代种群 1000 个个体中 500 个由指定初始化公式生成,其余随机生成high
改进初始化种群结果结果描述经过筛选,得到表现较好的因子列表(图示对比多因子在1D/5D/20D等周期的指标)low
白皮书与试用获取行动引导访问官网获取 Shark GPLearn 高性能因子挖掘白皮书,并下载试用 DolphinDBmedium
技能认证特训营第二期报名链接https://www.qingsuyun.com/h5/e/217471/5/high