⚗️ 实验设计与 A/B 测试(量化研究版)

互联网的 A/B 测试搬到量化为什么失效(无平行宇宙/环境漂移/样本极小)、改动评估的正确流程(配对比较+置换检验)、模拟盘与资金灰度的准实验、伪实验设计对照表。

互联网行业的 A/B 测试是黄金标准:把用户随机分成两组,同时跑新旧版本,比较转化率。量化研究者的处境要尴尬得多——市场不允许我们平行实验:2024 年 5 月只有一个,策略新版本跑在 5 月、旧版本也跑在 5 月,得到的却是同一段行情。本篇讨论在「样本不可复制、环境不可控制」的约束下,如何科学地评估一次策略改动。

为什么教科书 A/B 在金融里失灵

三个结构性差异:

  1. 没有平行宇宙。无法同时观察「有这个因子」和「没有这个因子」的两种市场——因果推断最干净的工具直接缺席;
  2. 环境漂移比用户行为快。A/B 假设两组环境一致,而市场 regime 数周就切换:新旧版本先后各跑三个月,绩效差异可能 80% 来自行情差异而非改动本身;
  3. 一次实现,样本极小。日频策略一年只有 252 个观测,且彼此不独立(波动聚集、自相关),有效样本量远小于名义值。

所以量化的「实验」必须绕道:用历史数据构造反事实,用统计检验处理单路径问题。

改动评估的正确流程

第一步:明确假设与「最不许动的部分」

改动前写下:改什么(如「止损从 5% 收紧到 3%」)、预期机制(「截断左尾,代价是被洗出频率上升」)、主要评价指标(夏普?MDD?换手?)、以及不许动的控制变量(回测区间、成本模型、其余参数冻结)。没有预先注册的假设,事后解释自由度无限大——这是 p-hacking 的温床(见避免 p-hacking )。

第二步:历史配对比较,而非「重跑一次回测」

新旧版本在同一段历史上运行,逐日(或逐笔)配对收益差 Δrₜ = rₜ(新) − rₜ(旧)。检验 H₀: mean(Δr) = 0 用配对 t 检验,并用 Newey-West 修正自相关下的标准误——因为 Δrₜ 几乎必然自相关。同时报告 Δr 的分布而非只有均值:收紧止损这类改动常常「大多数日子略差 + 少数灾难日大幅更好」,只看均值会误杀。

第三步:置换检验,绕开正态假设

Δr 的分布歪斜且有厚尾,t 检验的前提可疑时用置换检验:随机翻转 10000 次 Δrₜ 的正负号,构造「改动纯随机」下的均值分布,看真实均值落在分布的哪个分位。落在 95% 分位之外,才承认改动有真实效果。它对小样本、厚尾都稳健,是量化改动评估的默认推荐。

第四步:多维评价与稳健性

改动几乎总在「用一类风险换另一类」,评估矩阵至少包含:夏普、最大回撤、回撤持续时间、换手与成本、容量影响、分年度稳定性(是不是只有 2015 年牛市里更好)、以及参数邻域敏感性。任何单一指标的显著改善都不构成上线理由。

模拟盘与实盘的「准实验」

历史检验通过后,进入前向验证——这是量化里最接近真 A/B 的部分:

  • 模拟盘并行期:新版本在模拟环境跑实盘信号(不真实成交),与在跑版本同环境对照 4–8 周。虽然环境仍相同、无平行分组,但前向数据没有经过你的研究过程,能杀掉大部分历史过拟合(见仿真盘 );
  • 资金灰度:用 10% 资金跑新版本,观察「实盘 vs 模拟」与「实盘 vs 旧版本」两条差异序列,达标后逐步放量(10% → 30% → 100%)。灰度期同时是执行成本的实测(见灰度与放量 );
  • 执行算法的 A/B:同一调仓日的订单流一半走 VWAP、一半走 TWAP,比较实现差额(implementation shortfall)——这是量化里少数能真·随机分组的场景(见执行算法 )。

常见的伪实验设计

伪实验问题正确做法
新版本只回测近 3 年,旧版本历史全期区间不一致,差异混入行情效应同区间配对比较
改 5 个参数后绩效提升无法归因给谁单变量改动,或做正交设计
挑「表现最好」的 6 个月展示选择性汇报全区间 + 分年度
模拟盘跑 5 天就下结论噪声主导(t ≈ 0.3)预先注册的最小样本量(如 20 个交易日)
「这次改动很小,直接上实盘」小改动也有不可预期交互一切改动走同一流程

关联阅读:统计推断 提供本篇用到的全部检验工具;蒙特卡洛 的置换与 bootstrap 是反事实构造的机器;策略上线流程 把实验结论变成生产变更。