🕳️ 回测偏差大全:五大自欺与防线

五大偏差的机理、定量影响量级与工程防线(前视/幸存者/过拟合/成本低估/流动性忽略)——每条附「快速自检动作」,一张十项清单收尾。

每一个回测偏差都是一种「自欺」:它让你的策略在你看到的世界里完美运行。本篇按危害与出现频率列出五大偏差,每个都给出机理、定量影响的量级感、以及可落地的防线——最后合成一张自检清单(模板化版本见回测报告模板 )。

五大回测偏差卡片:症状与防线

偏差一:前视偏差(Look-ahead Bias)

机理:决策用到了决策时点不可能知道的信息。三种形态(数据/参数/流程,见数据清洗 )。

量级感:数据前视(财报用报告期对齐)对基本面因子的 IC 平均虚增 30%–80%——不是「略有高估」,是直接改写结论;用当日收盘价决策并成交的日频策略,年化收益虚增可达 10–20 个点(高频场景里「同步成交」等于永动机)。

防线:统一时间协议(T 信号 → T+1 成交)并写进引擎铁律(见回测框架设计 );PIT 数据接口;「前视注入测试」(故意加未来函数,结果必须改变)。

偏差二:幸存者偏差(Survivorship Bias)

机理:股票池只含「活到今天」的标的。退市股(往往跌得最惨)、长期 ST、被吸收合并者全部缺席。

量级感:对全市场策略影响中等(A 股早年退市少,2020 年后剧增);对小市值与低价股策略影响致命——不含退市股的小市值回测年化可虚增 5–10 个点,因为它恰好是「专买将死之股」的策略形态(见数据清洗 的定量讨论)。基金研究的同款:只统计现存基金高估行业均值 1–2 个点/年。

防线:动态「当时在市」股票池;退市股数据完整性作为数据商采购的验收项;自查方法——取一只知名退市股查历史数据可得性。

偏差三:过拟合与数据窥探(Overfitting & Data Snooping)

机理:参数与规则被调到「恰好适应历史噪声」。广义地包含:参数精修、规则挖掘(试了 30 个止损规则挑最好的)、样本选择(回测区间从策略表现好的年份开始)、以及研究流程层面的 p-hacking(见Alpha 研究流程 )。

量级感:经验法则——样本外绩效普遍衰减 30%–50%;7+ 个自由参数的策略在 10 年日频数据上几乎必然「回测出夏普 2」(白噪声也能)。数据窥探的隐蔽形态:「先看到 2019–2021 芯片大涨,再写一个『芯片动量策略』的回测」——假设从数据里来又回到同一批数据验证。

防线:样本外分层与封存(训练/验证/测试三区,见Walk-Forward );Walk-Forward 滚动验证;参数邻域平坦性检查(好策略的绩效面对参数是「高原」不是「尖峰」);尝试次数记账与多重检验校正(见统计推断 );以及最朴素的自由度预算——每 10 年数据最多容纳 2–3 个待估参数。

偏差四:交易成本低估

机理:成本模型残缺——只算佣金印花税、漏 half-spread、无冲击成本、或用「固定单边 0.1%」一刀切。

量级感:日频高换手策略,真实成本常在年化 5%–15% 区间——「不扣成本夏普 2.5、扣完成本夏普 0.3」的案例遍地都是。A 股的费用清单:佣金(万 1–万 3 双边)+ 印花税(卖出 0.05%)+ 过户费 + half-spread(流动性差的票 5–20bp)+ 冲击(资金越大越大,见交易成本分解 )。

防线:分项成本模型(而不是一个总百分比);冲击成本随成交量非线性(大单必须走执行算法,见执行算法 );成本 ×2 的压力测试作为上线门槛;以及把成本当作策略设计的输入——衰减快的信号在成本面前自动出局,这是好事。

偏差五:流动性忽略

机理:假设任何数量都能以收盘价成交。具体形态:小盘股策略按收盘价全额成交(现实中成交额的 10% 已是极限);回测里的「开盘瞬间换仓 200 只股票」;停牌/涨跌停照常成交。

量级感:对中大盘策略影响小(这就是很多回测「看起来没毛病」的原因);对小盘、高换手、大资金场景是决定性的——容量估算的本质就是流动性的另一面(见因子检验 的容量三层次)。

防线:成交额参与率上限(单票单日 ≤ ADV 的 5%–10%);不可成交状态显式建模(跌停/停牌,见回测框架设计 );实盘前用仿真盘校准「回测成交价 vs 实际成交价」的差距(TCA 的回测对照,见TCA )。

自检清单(回测报告必附)

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
□ 时间协议:信号数据时点 vs 成交时点,逐字段可追溯
□ 股票池:含退市/ST,按「当时在市」动态构建
□ 成本模型:佣金/印花税/价差/冲击 分项,参数有出处
□ 不可成交:停牌、涨跌停的处理有显式代码路径
□ 样本划分:训练/验证/测试三区,测试区封存
□ 参数自由度:参数个数 vs 样本量比,邻域敏感性已做
□ 尝试次数:本策略共迭代 N 版,最终版之外的尝试已记录
□ 成本压力:成本×2 后夏普仍 > 1(或明确说明衰减)
□ 容量声明:本回测结论有效的资金规模上限
□ 基准对照:与合理基准同口径对比(见[基准选择](/quant/benchmark-selection/))

一张冷静的对照表:偏差被清除后,「回测年化 30%」通常变成「回测年化 15% + 实盘预期 8%–10%」。这不是悲观,这是把预期校准到可实现区间——量化老兵与新手回测同一策略,老兵的数字永远更低,也永远更真。

关联阅读:偏差的工程对策回测框架设计 ;统计层的过拟合理论多重检验 ;上线前的最后一关样本内外与 Walk-Forward 。