
常见回测偏差与陷阱
回测常常通过隐蔽的偏差高估收益。本文讲主要陷阱——幸存者偏差、前视偏差、数据挖掘等——给新手举例说明。
交互工具在翻译视图中可能无法使用。
常见回测偏差与陷阱
回测是历史数据讲的故事。偏差就是这故事和实际会发生的事之间的差距。
偏差为啥要紧
每个零售回测都高估收益。问题是高估多少。专业选手默认回测期望值和实盘期望值之间要打 30–50% 折扣。认识这些偏差,你就能提前预判折扣,而不是被吓到。
1. 幸存者偏差
如果你的历史股票池只包含今天还活着的公司,你就把破产和退市的都过滤掉了。"买超跌股"这种策略看起来神乎其神,因为那些没爬起来的失败者根本不在数据里。
例子:用现在的沪深 300 成分股回测"买一年跌 50% 的股票",会显示奇迹般的恢复率——因为没恢复的早被踢出指数了。
修法:用包含退市和合并公司的"时间点"成分股数据。外汇和期货这个偏差小(品种很少消失),但合约换月还是要注意。
2. 前视偏差
用了交易当时还没出现的信息。常见形式:
- 用当前 bar 的收盘价"按收盘价入场"
- 算用了未来数据的指标(比如居中均线)
- 用包含未来拆分的复权价
- 用一只股票全年年报的盈利数据,而那是 Q4 才发布的
修法:在下一 bar 开盘入场。审计每个公式,确认输入只用决策时能拿到的数据。
3. 数据挖掘偏差(过拟合)
在同一份数据上测一堆参数组合直到有能跑的。试 100 个随机策略,光靠运气大概有 5 个在 5% 显著性水平上看起来赚钱。
例子:EMA 周期 5–50 步长 1,止损 5–30,目标 5–50——几千种组合。最好的几乎肯定是噪声。
修法:样本外测试前锁死参数。用 walk-forward 分析。用 White's Reality Check 或 Hansen's SPA 测试做数据挖掘修正。接受一组参数前先要求有经济学逻辑。
4. 选择偏差
只挑样本里表现好的交易或品种。常见形式:
- 看完哪些是高波动日后,只回测"高波动日"
- 只选表现最好的期货合约
- 用一个在同一份数据上调过的指标过滤交易
修法:测试前定好所有过滤器。别看完结果再加过滤。
5. 优化偏差
每个参数都微调到资金曲线完美。调的参数越多,系统越是在拟合噪声。
经验法则:可调参数控制在 3 个以内。每多一个都乘上过拟合风险。
6. 新闻过滤里的幸存者偏差
如果你把"高影响力新闻"时段的交易过滤掉,你正好删掉了产生最大波动的时段。被过滤的亏损永远不出现,期望值被吹大。
修法:用预先固定的经济日历,不是事后改过的。
7. 交易成本偏差
忽略点差、佣金、滑点、隔夜利息。EURUSD 每笔 10 pip 利润,扣掉一来一回 1.5 pip 点差和 1 pip 滑点变 7 pip——少了 30%。
修法:回测里永远算现实成本。高频策略尤其要小心,成本会主导。
8. 状态过滤器里的前视
用整个区间的 VIX 均值做状态过滤是前视。用全样本 ATR 设止损距离也是。
修法:用滚动或扩展统计量。系统必须只用每个交易决策点能拿到的数据来跑。
9. 起始日期偏差
挑讨喜的起始日期。从 2009 年开始回测趋势跟踪策略,会藏掉 2011–2013 那段痛苦的震荡。
修法:测多个起始日期。报告测试前就定好的固定起始日期的结果。
10. 止损目标的曲线拟合
优化止损距离和目标倍数让利润因子最大化,几乎肯定产出脆弱系统。
修法:用基于结构或波动率的止损,从市场逻辑推出来,不是从优化扫出来的。
11. 样本内污染
开发期间"就看一眼"样本外区间,它就不再是样本外了。每偷看一眼都污染测试。
修法:把样本外数据文件锁在单独文件夹。最终规则写好代码前连看都别看。
12. 流动性幻觉
回测假设任何规模都能按打印价成交。实际大单会推动市场。
修法:仓位按平均日成交量设上限。用成交量加权滑点模型。
13. Tick 数据粒度偏差
用 1 分钟 bar 回测会漏掉 bar 内的影线。bar 内触发的止损可能成交在离打印低点很远的地方。
修法:止损和限价用 tick 数据。没有的话,显式建模滑点。
实操审计清单
- 标的池包含退市品种
- 任何指标都没用未来数据
- 样本外测试前锁死参数
- 开发期间样本外数据没碰过
- 包含现实成本
- 测过多个起始日期
- 做过 walk-forward 分析
- 可调参数不超过 3 个
- 止损目标有经济学逻辑,不只是最优拟合数字
经验法则
如果一个回测利润因子超过 1.5、回撤又低,而你是个新手,就怀疑有偏差。真正的优势是有限的。真正的优势扛得住偏差修正。幻影优势扛不住。
下一篇:walk-forward 分析——区分优势和过拟合的金标准。
实时行情
打开完整图表 →相关市场数据由 TradingView 提供。
我的笔记
登录后可在本文保存笔记并与社区分享。
相关内容
相关术语
Trading Plan
trading-psychologyA written set of rules covering what you trade, when you enter, when you exit, how much you risk, and how you review trades. It removes decisions from the heat of the moment.
Edge
trading-psychologyA repeatable reason your trades should make money over a large sample, paired with risk management. A few lucky wins are not an edge.
Journaling
trading-psychologyWriting down every trade's setup, entry, exit, size, emotion, and the result, so you can review patterns and improve over time.
下一篇推荐
Trading System Development Lifecycle: Hypothesis to Deployment
A complete development lifecycle from hypothesis through testing, optimization, and live deployment with concrete gates and kill criteria at each stage.
阅读更多 →Smart Recommendations