量化研究 Agent:因子实验与模拟验证
AI 负责找思路,计算交给引擎,用不用我说了算 · 约 4 分钟读完
想试试 AI 能不能帮忙做因子研究,就搭了这么个东西:AI 负责理解问题、找证据、想新因子,统计和记账交给传统的量化引擎,最后用不用由我拍板。它只在模拟盘上跑过,没碰过真钱。
分工
统计、结算、边界检查全交给确定性的引擎。Agent 负责弄明白你想研究什么、去查哪些数据、把证据综合起来写成说明,账本它是碰不到的。
LangGraph 里四个节点:
| 节点 | 干什么 |
|---|---|
| 主管 | 先用规则解析出你想干嘛 |
| 研究员 | 从四个来源找证据,按学出来的权重综合 |
| 策略 | 网格调参、稳健性检查,写策略说明 |
| 风控 | 对着约束做硬检查 |
每个节点的说明都会显示在页面上:为什么这么理解意图、证据怎么看、约束对得上对不上。
结果
AI 生成的因子,赢了我挑的 11 个经典因子。 对照组是 Alpha158 里的 11 个量价因子,用同一个引擎重新实现,看的是时序 Spearman IC。注意这不是 Qlib 原版的横截面 RankIC,也不是和 Alpha158 全集比。
两条选股路子挑出来的股票几乎不重合。 机器学习打分和规则选股的 Top500 只重合了 5% 左右,说明两边看的东西很不一样。本来想把两条路融合起来,但后面的数据撑不起来,就没上。
不让 AI 乱来
模型的输出先过字段检查、把同义词统一,再往下游走;哪个节点挂了就降级,并记下原因。同一个问题在缓存有效期里可以直接回放,不用再花钱调一次模型。
自主研究模式能查行情、因子库、历史洞察、文本信号和热门榜,但这些工具都只能查,没有一个能下单或改配置。
AI 写的因子表达式是个字符串,交给 AST 白名单去算,只认规定好的字段、函数和运算符,不执行任意 Python。测试里塞了个 __import__('os'),直接被拒。
嘴上说的和手上做的要对得上
决策和风控共用一个检查器,盯三种情况:
- 说明里自己承认证据不够,却还给了买卖建议:改成观望。
- 说趋势向上,动作却是卖:拦下来。
- 论证挺乐观,却一直观望:记一笔「偏保守」,回头看看。
有一次风控说基本面背离、样本太少,系统就把模拟信号从买入改成了观望,并记下了原因。
因子怎么来、怎么走
AI 先写候选表达式,从全市场随机抽 120 只股票逐只评估(固定随机种子,方便复现),再按指标自动分级:
- 「可用」:IC 绝对值的均值够高,方向一致。
- 「精选」:再过一遍回测,和基准比。
- 精选的进待加入区,我看过才转正;已经转正的,自动流程不能自己撤。
转正之后也盯着:近 60 天 IC 掉得厉害、近一年回测变差,就标成待取消,再让 AI 写一份为什么失效的分析。负向因子可以反过来再测一次。
调教 Agent
每个 Agent 的职责和输出格式不变,调的是附加的「打法倾向」,一开始每个配两条。
流程是:训练账本 → 固定规则算出建议 → 带数字依据的建议 → 我手动应用 → 再训练看效果。怎么改规则不让模型自己决定,所以每条建议都能追到出处。
还没做的
原计划要连续跑一两个月模拟盘,还没跑完。组合优化、风险模型、行业市值中性化这些都还没做,数据也只有 A 股日线量价。说到底它是个研究玩具,别拿它炒股。
