ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

【量化投资从入门到精通 #04】别被回测曲线骗了:前视偏差幸存者偏差过拟合

2026/8/13 21:27:27 拓冰建站 浏览量
【量化投资从入门到精通 #04】别被回测曲线骗了:前视偏差幸存者偏差过拟合

📚 本系列进度:#01 ✅ #02 ✅ #03 ✅ #04 ✅ #05–#48 ⏳
上篇 #02 你跑通了第一个回测。这篇先给你打三剂"防骗疫苗"——回测赚钱 ≠ 实盘能赚。

一、这个方法解决什么投资问题

新手最容易犯的错:回测曲线漂亮,实盘亏成狗。原因往往不是策略差,而是回测本身"作弊"了。这三种陷阱,是回测失真的最大来源。

二、三条红线

1. 前视偏差(Look-ahead Bias)——用了"当时不可能知道"的信息

最典型的:用明天的收盘价去决定今天的买卖。回测里你"知道"未来,实盘里你不知道。

我们用一段合成动量序列演示(机制演示,非真实标的):

策略累计收益
诚实(只用昨日信息)76.92%
偷看未来(用今日信息决定今日)295.91%

偷看的版本凭空多赚近 4 倍——因为它在决策时用了当时收盘才知道的信息。真实有效基线(000001 双均线 5/20,仅用 t≤i 数据)累计 -1.18%,这才是你能复现的数字。

口诀:任何信号,必须只用"决策时刻已经存在"的数据。当日收盘价算出的信号,最早只能在下一时点成交。

2. 幸存者偏差(Survivorship Bias)——只测"活下来"的票

如果你只拿"今天还在上市"的股票做回测,等于自动剔除了那些已经退市、暴雷消失的票。它们的惨烈下跌被悄悄抹掉,回测自然更好看。

举个具体例子:2015 年那批牛股,回测时若只保留现存公司,会系统性高估"买小市值"策略的收益——因为跌没的那批正好是小市值。

口诀:回测要用"当时时点全部股票"(含后来退市的),不能事后挑幸存者。

3. 过拟合(Overfitting)——把噪声当规律

你调了 20 个参数让回测曲线最漂亮,本质上是在拟合历史噪声,不是发现规律。参数越多、样本越短,越容易过拟合(#28 会专门用数据演示)。

口诀:样本内漂亮 ≠ 样本外赚钱。留一部分数据"压根没见过",专门用来验成色。

三、实操:怎么写出"干净"的回测

延续 #02 的内核,关键纪律就两条,写进代码习惯里:

# 1) 信号只用历史:均线用 close[:i+1],绝不含 close[i+1]ma_fast=sma(closes[:i+1],FAST)# 2) 成交滞后一拍:用 i 日信号,在 i+1 日(或之后)成交position[i+1]=1ifma_fast[-1]>ma_slow[-1]else0

backtest_core.backtest_ma_cross就是这么写的:金叉判定用第 i 日及之前的均线,持仓从第 i 日之后才生效。

四、结果解读

回测的意义不是证明能赚钱,而是证伪——一个经得起三条红线检验、样本外依然不崩的策略,才值得你多用真金白银去小仓试。漂亮的回测曲线,先假设它"作弊了",再去证伪它没作弊。

五、常见陷阱

  • 除权不复权:用不复权价回测,分红除权那天会出现"假暴跌"(#10 细讲)。
  • 流动性假设:假设你能以收盘价全量成交,实际大单会冲击价格(#31 讲成本)。
  • 只看收益不看回撤:一年翻倍但中途腰斩,你早割肉了。

六、小结 + 下篇预告

三剂疫苗打完了:前视偏差(不用未来)、幸存者偏差(不挑幸存者)、过拟合(不留样本内)。下篇 #05 我们聊量化投资的优势与边界——它能赢在哪、又会栽在哪。

七、合规收尾

本文为量化方法教学,合成序列仅为演示机制,不构成投资建议,不承诺收益。投资有风险,入市需谨慎。