QuantSkills 把量化因子做成了 Agent Skill

最近看了 QuantSkills,我觉得它值得注意的地方,并不是又收集了几百个量化因子。因子公式本来就不稀缺,论文、研报和开源仓库里到处都是;真正麻烦的是,如何让 AI 知道该在什么条件下调用哪一个因子,怎样检查输入,怎样验证计算结果,以及失败之后该留下什么记录。QuantSkills 所做的,正是把这些容易被 Prompt 含混带过的工程细节,固化为 Agent 可以执行的 Skill。

QuantSkills 因子 Skill 库

直接让模型通过对话生成量化策略,结果往往不稳定。同一个问题换一次上下文,模型可能就会给出另一套公式;即使公式看起来像模像样,也未必处理了停牌、缺失值、复权、未来函数和样本边界。QuantSkills 的办法颇为朴素:让模型少即兴发挥,把已经验证过的步骤写进 SKILL.md 和脚本,模型负责选择与调度,确定性的程序负责计算。这种分工未尝不比不断润色 Prompt 可靠。

#因子如何成为 Skill

一个典型因子目录不只放一段公式,它还包括 Agent 的发现入口、因子计算脚本、自检脚本、真实行情验证结果、供人阅读的报告、公式说明以及跨框架配置。大致结构如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
factors/
└── R020-5d-z-scored-volume-expansion/
├── SKILL.md
├── scripts/
│ ├── factor.py
│ └── validate.py
├── validation_real/
│ ├── result.json
│ └── report.md
├── references/
│ └── formula.md
└── agents/
└── openai.yaml

因子 Skill 的目录结构

项目资料称,三个核心因子库合计约有 800 个 Skill,其中方向类 296 个,风险与形态类 288 个,量能与统计类 216 个;对外使用“500+”的说法,可能采用了去重后的口径。验证样本覆盖 98 个 A 股标的和 50 个美股标的,时间范围从 2021 年延伸到 2026 年 6 月,检查项包括 5 日 Rank IC、ICIR、五分组收益差、换手率与未来函数。

这里必须把边界说清楚。验证通过,说明因子代码能够按预定方式计算,并在指定样本中呈现某些统计特征;它不等于未来能够盈利,更不等于可以原样搬进实盘。把计算正确性写成收益承诺,是量化项目常见而又危险的偷换,QuantSkills 至少留下了可供复核的报告。

真实行情验证报告

#我更看重研发流程

QuantSkills 真正有价值的部分,在我看来是围绕因子研发建立的约束。每轮实验只改变一种操作,记录改了什么、为何修改、采用什么办法以及预期效果;新因子若与现有因子的相关系数绝对值达到 0.85,便触发门控,避免把旧因子换个名字重新收录;因子族决策树和反模式清单,则用来阻止重复堆叠与未来函数混入。

这些规定看上去很琐碎,却正是研究能否复现的关键。模型擅长快速提出假设,也很容易同时改动多个变量,最后得到一个无法归因的“好结果”。将单点假设、实验日志、相关性检查和回滚写成协议,Agent 才可能参加严肃的量化研究,而不只是生成几段颇像研究报告的文字。

因子挖掘与验证流程

项目还提供 IC 诊断、因子评价、回测协议和论文复现等工具,并把一些常见研究任务封装为可直接调用的 Skill。收盘复盘会串联指数估值、市场宽度、行业热点、龙虎榜、两融等数据;个股体检调用二十多个接口,分阶段给出风险提示;期货席位分析则汇总净持仓、建仓过程和盈亏排行。报告中的数字保留接口出处,措辞也限定在研究与风险提示范围内,不替使用者下买卖指令。

量化研究报告示例

QuantSkills 完整信息图

#工具比 Prompt 更耐用

大模型会更新,Prompt 也会随着模型行为改变而失效;经过测试的计算脚本、验证协议和数据接口,却能在模型更换之后继续使用。QuantSkills 给我的启发正在这里:Agent 应当调用可靠工具,而不该冒充工具本身。把知识写成一段提示词,模型大概“知道”怎么做;把知识做成带脚本、约束和验证结果的 Skill,它才有机会稳定地做完。

这套方法仍有明显限制。环境搭建并不轻松,因子质量不可能整齐划一,历史 IC 会衰减,数据源也可能形成新的依赖。准备把某个因子用于真实资金之前,仍应使用自己的数据、标的池、交易成本和时间窗口重新验证。开源 Skill 可以省去许多重复劳动,却不能替任何人承担市场风险。