warer

Guide 04 / 研究

因子遗传:从数据到因子池

这篇用大白话解释因子挖掘在做什么,带你把一个任务从新建跑到因子池,并判断结果是不是过拟合。

适合:已了解回测 前置:登录 + 数据 + 权限 最后更新:2026-10-25

因子是“把价格、成交量等原始数据加工成一个可排序的分数”。因子遗传让算法在历史数据里自动尝试大量公式,再把有效的公式组合起来。

适用版本:2026.10 读完用时:约 6 分钟 下一步:因子仓库

它到底在做什么

假设你每天都给一篮子的币打分,分数高的多买、分数低的少买。因子就是打分公式,例如“5 日均线减 20 日均线”。

人工想公式很慢,因子遗传让算法自动组合加减乘除、均值、相关性、波动率等操作,评估每个公式对未来收益的预测能力,把表现好的留下来继续变异。

一句话

算法负责“发明公式”,你负责“判断它是不是在自欺欺人”。

前置数据

准备项怎么选
标的池建议至少 10 个流动性较好的标的。因子比较的是同一批标的之间的相对强弱。
训练区间用来搜索公式的历史区间,应该足够长。
测试区间必须晚于训练区间,且不参与搜索。
预测周期预测未来多少根 K 线的收益。周期越长,噪声越少,但样本也越少。
数据先到数据仓库确认交易对、周期和覆盖范围。

新建任务

  1. 打开因子遗传

    进入量化center → 因子挖掘 → 因子遗传,点击“新建任务”。

  2. 填写标的池

    每行一个标的。输入后系统会检查数据是否可用;无效标的会被标出。

  3. 划出训练段和测试段

    训练段用来搜索,测试段用来检验。两者不要重叠,测试段尽量晚于训练段。

    你应该看到:页面显示训练天数、测试天数和数据覆盖范围。

  4. 设置预测周期和搜索规模

    第一次先用较小步数,确认流程和耗时;不要一上来就跑很大的任务。

  5. 选择挖掘方式

    界面会提供强化学习、遗传算法、LLM 辅助等不同方式。第一次建议先用默认方式,熟悉后再比较差异。

因子挖掘任务表单中的训练区间和测试区间设置
训练 / 测试区间:测试段必须在训练段之后,且不要参与调参。
因子挖掘任务列表和任务、监控、因子池、回测、研究标签
任务列表:顶部切换任务、监控、因子池、回测和研究;每一行显示状态和 IC。页面内容为示意。

监控与过拟合

任务启动后,监控页会同时画训练曲线和测试曲线。两条线的关系比单条曲线的高低更重要。

形态含义建议
训练涨,测试也涨相对健康继续观察,别急着扩大规模
训练涨,测试走平开始过拟合停止或提前导出快照
训练涨,测试下降明显过拟合停止,回看较早的快照
两条线都不动搜索没有进展检查数据、标的池和参数
不要只挑最好看的一段

反复根据测试段调参,会让测试段也变成训练集。真正的样本外验证需要留出一段从未看过的数据。

因子池

因子池是当前被选中的公式组合。它有几个常用视图:

权重反映相对贡献,不要求加起来等于 100%。相似度高的因子即使权重不低,也可能没有提供新增信息。

单因子详情

指标怎么看
IC / Rank IC预测力。绝对值长期稳定比单次高低更重要。
日度 IC 序列看方向是否稳定,避免只看平均值。
分位数收益把标的按因子值分组,收益是否单调递增或递减。
相关性与池内其它因子是否高度相似。

判断一个因子,至少同时满足:测试段方向稳定、分位数大致单调、与现有因子不雷同。

回测与生成策略

满意的组合可以直接提交回测,或生成策略包。回测前确认:

生成的策略仍然要在工作台里构建、在实验室里回测,并通过模拟盘验证。

常见错误

现象可能原因处理
任务跑太久标的、步数或数据量太大先用小规模任务熟悉流程
IC 很低标的池太小、预测周期不合适增加标的、调整周期或换数据
测试集明显变差过拟合停止,导出较早快照,保留样本外数据
因子高度相似搜索空间重复保留一个,删除冗余因子
提示资源不足并发任务或机器负载高减少并发,错峰运行

常见问题

打开因子遗传

先建一个小任务,重点观察训练曲线和测试曲线是否同向。

打开终端