返回 FEED
AGENT2026-05-14

AI 量化系统:每周测试 1000 个策略的工程手册

50 倍的变化,但不是 50 倍的生产力

2018 年,一个严肃的量化策略从想法到验证回测,需要 PhD 研究员花 2-6 个月。2026 年,同一个人用 LLM stack 一个晚上就能完成。

50 倍的工作单元变化。 这改变了一切下游:什么边缘是可发现的、它们 decay 多快、什么技能重要。

但更快生成没有更快验证,不是 50 倍生产力增益。它是 50 倍统计垃圾放大器。这篇文章是那个新世界的工程师手册。

架构:六 Agent + 一 Orchestrator

每个 Agent 是一个 Claude API 调用,带严格角色提示、狭窄工具范围和清晰验收标准。Orchestrator 运行循环:

假设 → 数据 → 代码 → 回测 → 批判 → 风险检查 → 记忆 → 下一个假设
Agent角色工具
Hypothesis生成带命名机制的经济故事网页搜索、过去失败记忆
Data获取、对齐、时点修正、工程特征数据加载器、FeaturePipeline
Code写向量化回测,正确 shift(1) 和成本代码执行沙盒
Critic对抗性审查泄漏、过拟合、p-hacking代码阅读器、指标分析器
Risk仓位大小、检查与现有组合的相关性组合状态
Memory追踪每次尝试,多重检验负担可知尝试数据库

三个硬门槛,任何策略上线前必须通过:

  1. Critic 通过结构审查
  2. Deflated Sharpe 清除多重检验门槛
  3. Risk agent 确认组合级适配

核心工程组件

向量化回测引擎

最关键的一行:position = signal.shift(1)。在 bar t 的收盘决策,在 bar t+1 的开盘交易。没有这个 shift = lookahead bias。

回测配置包括:初始资金、往返费用(basis points)、滑点、最大杠杆、年化因子。

性能指标

标准指标:Sharpe、Sortino、Calmar、年化收益/波动、最大回撤、偏度、超额峰度、胜率、平均盈亏、profit factor。

三个大多数人忽略但不该忽略的指标:

  • 超额峰度 > 3:肥尾(你的 Sharpe 2 策略在隐藏崩盘风险)
  • Calmar:LP 关心的(恢复心理学)
  • Profit factor:区分稳健的趋势跟踪和脆弱的均值回归

事件驱动回测

逐 bar:策略看到 bar t,发出订单,订单在 bar t+1 开盘以滑点填充。结构上无 lookahead。

两个引擎应该在成本容忍范围内对同一策略达成一致。如果不一致,向量化引擎有 bug(通常是忘记 shift 或重复计算成本)。

真实成本模型

恒定 fee_bps 是谎言。真实成本取决于规模、波动性和场所:

成本 = 价差/2 + 平方根冲击 + 场所费用

用订单规模 sweep 这个模型。你的 "100kSharpe2"100k 时 Sharpe 2" 在 10M 时变成 Sharpe 0.4。这就是策略的容量。

特征工程:从结构上消除泄漏

每个测试过的 LLM 在生成特征代码时都引入了 lookahead bias。防御是结构性的:让泄漏在机械上不可能。

五种常见泄漏类型:

#类型示例修复
1居中窗口rolling(20, center=True)绝不 center=True
2忘记 shift(1)特征用 bar t 的收盘交易 bar tsignal.shift(1) 在 PnL 前
3全样本标准化训练/测试分割前对整个数据集 Z-score每 fold 重新拟合 scaler
4幸存者偏差用今天的标普 500 回测 10 年历史时点正确的指数成员
5重述基本面用 2013 年重述的 FY2010 收益时点正确的数据供应商

FeaturePipeline 设计:每个特征只从严格过去的数据计算。

fn(window) -> scalar. window = data.iloc[t-lookback : t](仅过去)

Triple Barrier 标签

比"5 天后价格涨了吗?"更好,尊重路径、止损和止盈:

  • +1 = 利润目标先命中
  • -1 = 止损先命中
  • 0 = 时间退出

交叉验证:时间序列的特殊处理

随机 k-fold 在时间序列上 = 未来数据训练预测过去的模型 = 膨胀的 Sharpe = 垃圾。

Walk-Forward 分割

训练 → 清除期 → 测试。清除期防止信息泄漏。

Degradation ratio = 样本外 Sharpe / 样本内 Sharpe。健康:0.6-0.8。低于 0.3 = 过拟合。高于 1.0 = 可疑(数据错误或幸运区间)。

组合净化交叉验证

45 条路径而非 5-10 fold。报告分布,不是均值。

Deflated Sharpe:多重检验校正

测试 10,000 个零边缘策略 → 纯运气下最佳样本内 Sharpe > 3.5。Deflated Sharpe 校正这一点:

硬门槛:dsr_pvalue < 0.95 = 策略不上线。无人可覆盖。

研究记忆

追踪每次尝试,让多重检验负担可知。随着尝试次数增加,deflated threshold 自动上升,越来越难以"偶然"通过。

核心洞察

这篇文章的价值不在代码(虽然代码很扎实),而在框架:

  1. 更快生成 ≠ 更快验证。LLM 可以一晚上生成 100 个策略,但如果验证基础设施没跟上,你只是更快地生产统计垃圾。

  2. 三个硬门槛是护城河。不是可选的优化,是不可协商的防线。

  3. 结构性防御 > 人工检查。FeaturePipeline 强制所有特征只用过去数据,不是依赖人记住检查 shift(1)。

  4. 成本模型决定容量。一个策略在 100kSharpe2,在100k 时 Sharpe 2,在 10M 时可能 Sharpe 0.4。不看容量谈 Sharpe 是耍流氓。

  5. Deflated Sharpe 是生命线。在 AI 可以无限生成策略的世界里,多重检验校正从"高级技巧"变成"生存必需"。

完整代码仓库:https://github.com/zostaff/ai-quant-system