🚀 策略上线流程:审查、仿真、灰度与回滚

从「回测通过」到「实盘运行」的四道关卡:代码审查与回测复核、仿真盘验证、资金灰度放量、版本回滚预案——上线不是一次部署而是一条流水线。

「回测通过」与「可以上实盘」之间隔着四道关卡,每道都在过滤一类回测看不见的风险。跳关的个人量化者与跳关的机构一样多,后果也一样。

关卡一:代码审查与回测复核

审查的重点不是代码风格(那是 CI 的事),而是策略逻辑的三类高危错误:

  1. 前视与时序错误:信号时间协议逐行核(T 信号 → T+1 成交);财报数据的公告日对齐(见数据清洗 )——研究代码里「顺手」写的对齐,上线后就是前视偏差的实弹;
  2. 口径漂移:研究时的因子实现 vs 上线时的实现必须同一份代码(禁止重写,见架构 );参数从研究配置到生产配置的搬运要有 diff 审查(参数抄错是最经典的上线事故);
  3. 边界与异常路径:停牌/涨跌停/资金不足/数据缺失时策略的行为——研究回测里没触发的分支,实盘总会触发(Murphy 定律的量化版)。

回测复核(独立复现):由另一个人/另一套代码(至少另一份配置)从原始数据重跑该策略——结果与研究报告的偏差 > 阈值(如年化 ±2%)即打回。它防的是「研究不可复现」与「报告选择性展示」——这是机构投研流程里最值得个人借鉴的一道闸(个人版:一个月后自己换个环境盲重跑一次)。

关卡二:仿真盘(Paper Trading)

定义:用真实行情、真实信号逻辑生成交易,但不下单(或下单到模拟账户)——它是「策略在当下的真实世界里会怎么做」的实时预演。

仿真要验证的三件事:

  1. 工程正确性:数据管道、信号生成、目标组合的生成是否每日准点无误——回测里不存在的「运维正确性」只有仿真能测(见日志与监控 );
  2. 信号的当下有效性:策略逻辑在最近(未参与研究的)市场里是否仍然成立——防「回测过拟合 + 市场已变」的双重风险;
  3. 预测的实现路径:仿真记录「目标持仓 → 假设成交价」,与未来的真实执行对照,校准执行假设(见TCA )。

时长与通过标准要预注册(防「跑两周感觉不错就上」):常规建议 4–8 周(≥ 20 个调仓截面),通过标准含工程可用率(> 99%)与信号质量(滚动 IC 不低于历史 25 分位,见因子库 的监控口径)。

仿真的固有局限要心里有数:无真实冲击(你的仿真成交价不含自己的市场影响)、无成交失败(限价单仿真里常「理想成交」)、无资金交互(保证金、T+1 资金链)——这些缺口正是关卡三要补的。

关卡三:灰度与逐步放量

阶梯设计(以目标资金为 100%):

1
2
3
10%(2–4 周)→ 30%(2–4 周)→ 60% → 100%
每级升级条件:该级绩效 vs 预期偏差 < 阈值 && 执行指标(滑点、成交率)达标 && 无风控违规
每级降级条件:偏差超阈值 → 停在该级排查;触发熔断 → 退回上一级(见[事中风控](/quant/real-time-risk/))

灰度期重点观察的三组对照:

  • 实盘 vs 仿真:缺口应主要来自执行成本(可解释)——缺口不可解释 = 有东西在仿真里是假的;
  • 实盘 vs 回测同期:分年度式的小段对照,超额衰减在预期范围内(30%–50% 的衰减是常态,见回测偏差 );
  • 执行指标趋势:滑点随规模放大 vs 容量曲线的预测(见再平衡与容量 )——放量到某级滑点突增 = 摸到容量边界。

灰度的心理纪律:每一级的停留时间按预注册的日历执行,不因「跑得好」提前升级(好绩效可能是运气,灰度期本就不该按绩效决策)——这条被违反的概率超过 90%,违反的代价在下一轮回撤时结算。

关卡四:回滚预案

上线那天就要能回答:「如果下个月要撤下这个策略,需要几步、多久、会遗留什么?」

  • 版本回滚:策略代码/参数/因子版本的三位一体快照(git tag + 配置快照 + 因子库版本号),回滚 = 恢复快照 + 重建持仓对齐(见Git );
  • 持仓清算预案:下线时的清仓计划(分几天、按什么流动性约束、对市场的冲击预估)——大资金策略的「退出成本」必须在上线前算过(清仓冲击的估算同流动性分析 );
  • 依赖解耦:策略下线不能拖垮共享基础设施(数据管道、监控、其他策略的因子库)——下线清单里逐项核对共享依赖。

关联阅读:上线的架构前提系统架构 ;上线后的持续保障灾备与安全 ;灰度期的实验方法论实验设计与 A/B 。