回测的 7 个致命陷阱:为什么回测好的策略实盘亏钱
本文属于专题 《系统验证:怎么知道它真的有效》 ,按顺序读效果更好。
本文目录(35 节)
- 一、为什么”回测好但实盘亏”是常态
- 散户的典型经历
- 二、陷阱 1:过拟合(Overfitting)
- 什么是过拟合
- 为什么会过拟合
- 检测方法:样本外测试
- 三、陷阱 2:生存偏差(Survivorship Bias)
- 什么是生存偏差
- 检测方法
- 四、陷阱 3:前视偏差(Look-ahead Bias)
- 什么是前视偏差
- 散户最常犯的 3 个前视错误
- 检测方法
- 五、陷阱 4:数据窥探(Data Snooping)
- 什么是数据窥探
- 为什么这是陷阱
- 检测方法
- 六、陷阱 5:不真实的执行假设
- 什么是不真实执行
- 检测方法
- 七、陷阱 6:忽略交易成本
- 散户最容易忽略的 3 个成本
- 检测方法
- 八、陷阱 7:样本不足(Sample Size)
- 什么是样本不足
- 最低样本要求
- 检测方法
- 九、检测回测可信度的”5 步清单”
- 步骤 1:样本量
- 步骤 2:样本外测试
- 步骤 3:参数稳健性
- 步骤 4:交易成本
- 步骤 5:执行假设
- 写在最后
- 完整量化系列回顾
回测是量化交易最重要的环节,也是最容易被自己骗的环节。90% 的散户量化策略”回测亮眼实盘亏损”,原因都在这 7 个回测陷阱里:过拟合、生存偏差、前视偏差、数据窥探、不真实的执行、忽略成本、样本不足。今天逐一拆透每个陷阱的本质 + 散户能用的检测方法。读完你会成为”会看回测”的少数人。
一、为什么”回测好但实盘亏”是常态
如果你已经读过 量化交易入门,应该理解了量化的基本框架。
今天聚焦最关键的一环:回测。
散户的典型经历
第 1 步:研究一个量化策略 第 2 步:回测,看到漂亮曲线(年化 50%!) 第 3 步:兴奋,立即实盘 第 4 步:3 个月内开始亏损 第 5 步:6 个月后账户腰斩
为什么会这样:
- 回测美化了实际表现
- 实盘揭示了所有”骗自己”的细节
理解这 7 个陷阱 = 80% 不再被回测骗。
二、陷阱 1:过拟合(Overfitting)

什么是过拟合
过拟合 = 策略对历史数据完美匹配,但对未来数据完全失效。
典型表现:
- 回测胜率 80%
- 实盘胜率 45%
为什么会过拟合
散户的标准操作:
- 写一个策略,回测,胜率 60%
- “再调一下参数”
- 调整 ATR 周期:胜率 65%
- 调整止盈倍数:胜率 70%
- 调整时间过滤:胜率 75%
- “完美!”
问题:
- 你在用历史数据”训练”参数
- 训练越深,对历史越完美
- 但对未来完全没用
检测方法:样本外测试
正确做法:
- 把数据分两段
- 70% 用来调参数(in-sample)
- 30% 用来验证(out-of-sample)
判断:
- 样本外表现接近样本内 → 策略稳健
- 样本外表现差很多 → 严重过拟合
铁律:没做样本外测试的回测都是骗子。
三、陷阱 2:生存偏差(Survivorship Bias)
什么是生存偏差
生存偏差 = 历史数据只包含”还活着”的品种,已退市的没了。
典型例子:
- 你回测美股 10 年策略
- 但 10 年里有几百个公司退市
- 历史数据只剩活着的
- 你的策略其实是”专门在赢家身上做”
这是免费数据源的最大问题。
检测方法
- 用付费数据(包含退市股票)
- 看你的策略是否选了”明显的赢家”
- 用未在训练期的品种验证
实战:
- 散户做 A 股 / 美股个股策略要小心
- 做指数 / 主要外汇 / 主要期货影响小
四、陷阱 3:前视偏差(Look-ahead Bias)
什么是前视偏差
前视偏差 = 代码里”偷看”了未来数据。
典型例子:
- 用今天的收盘价判断今天的入场点
- 用次日数据计算今日信号
- 用周末公布的数据判断周五的交易
看似无害,实际灾难。
散户最常犯的 3 个前视错误
错误 1:用收盘价做决策
错误代码:if (today.close > sma20) buy at today.close
正确代码:if (yesterday.close > yesterday.sma20) buy at today.open
错误 2:用财报后数据回测
- 用财报公布前的价格
- 但用财报公布后才知道的数据
- 完全作弊
错误 3:参数优化用了未来数据
- 在 2024 年优化参数
- 用 2024 年数据
- 然后说”2024 年回测胜率 80%”
- 这是骗自己
检测方法
- 严格的”信息边界”
- 决策时只能用”过去”数据
- 入场必须用”下一根 K 线”开盘价
五、陷阱 4:数据窥探(Data Snooping)
什么是数据窥探
数据窥探 = 同时测试很多策略,挑出最好的。
典型例子:
- 你测试了 100 个策略
- 其中 5 个回测特别好
- 你以为找到了”圣杯”
- 但 5/100 = 5% 完全是统计巧合
这是伪科学。
为什么这是陷阱
统计学事实:
- 测试 100 个随机策略
- 5% 概率有”显著表现”
- 但这 5% 只是噪音
散户的典型场景:
- 在 TradingView 试 50 种策略
- 留下表现最好的 3 个
- 实盘 → 都失效
检测方法
- 不要测试很多变体
- 选定 1-2 个有逻辑的策略
- 用同样数据反复测试 = 数据窥探
铁律:先有逻辑,再有回测。不是反过来。
六、陷阱 5:不真实的执行假设
什么是不真实执行
回测假设你能完美执行。实盘做不到。
典型差距:
1. 滑点(Slippage)
- 回测:按显示价格成交
- 实盘:实际成交价比显示价格差 1-3 点
2. 流动性
- 回测:你的订单立刻成交
- 实盘:大单可能部分成交或不成交
3. 网络延迟
- 回测:信号 = 立即下单
- 实盘:信号 → 网络延迟 50-200ms → 价格已变
4. 经纪商对手方
- 回测:理论价格
- 实盘:经纪商可能”做对手方”
检测方法
保守假设:
- 滑点:每笔 1-2 点
- 佣金:实际值 + 50%
- 假设你的订单不一定全部成交
实战:
- 回测 + 现实成本 → 净利润减半
- 减半后还盈利 → 真正的好策略
- 减半后亏损 → 实盘大概率亏
七、陷阱 6:忽略交易成本
散户最容易忽略的 3 个成本
成本 1:佣金
- 期货 1-5 元/手
- 外汇隐藏在点差里
- 频繁交易者每月 1000+ 元成本
成本 2:点差
- EUR/USD 平均 0.5 点
- 黄金平均 0.3 美元
- 每笔交易”无形损失”
成本 3:隔夜利息
- 持仓过夜的融资费
- 加密货币的资金费率
- 长期累积可怕
检测方法
计算真实成本:
真实净利润 = 总盈利 - 佣金 - 点差 - 利息
很多策略表面盈利 + 100%,扣成本后是 -10%。
实战:
- 回测时强制加入成本
- MT4 默认会算
- TradingView 需手动设
- Python 代码必须明确加
八、陷阱 7:样本不足(Sample Size)
什么是样本不足
样本不足 = 回测笔数太少,统计不可信。
典型场景:
- 回测 1 年
- 总笔数 30 笔
- 胜率 60%
- “这是个好策略!”
问题:
- 30 笔 = 统计不显著
- 60% 胜率可能完全是运气
- 改变测试时间 → 胜率可能变 40%
最低样本要求
理想样本:
- 至少 100 笔交易
- 跨 3-5 年
- 覆盖牛市 + 熊市 + 震荡市
低于此 = 不可信。
检测方法
- 总笔数 < 100 → 警惕
- 测试期 < 3 年 → 警惕
- 只覆盖单一市场环境 → 警惕
九、检测回测可信度的”5 步清单”

最后整理成可执行的”5 步检测清单”:
步骤 1:样本量
- 总笔数 ≥ 100
- 测试期 ≥ 3 年
- 覆盖牛/熊/震荡市
步骤 2:样本外测试
- 70% 数据训练,30% 数据验证
- 样本外胜率 / 盈亏比 接近样本内
- 偏差 < 20%
步骤 3:参数稳健性
- 主要参数 ±20% 调整后
- 表现仍可接受
- 不依赖某个”完美参数”
步骤 4:交易成本
- 包含真实佣金
- 包含真实点差
- 包含隔夜利息
步骤 5:执行假设
- 滑点 1-2 点
- 不假设”立即成交”
- 用下一根 K 线开盘价入场
5 步全过 → 这个回测可信度 80%+。
写在最后
回测是量化的双刃剑:
- 用对了 → 验证好策略
- 用错了 → 骗自己很久
核心要点:
- 7 大陷阱(过拟合/生存偏差/前视/数据窥探/执行/成本/样本)
- 每个陷阱都有具体检测方法
- 5 步清单可以直接套用
铁律:任何回测漂亮但没做样本外测试的策略,不要实盘。
完整量化系列回顾
到此 C040 量化系列 4 篇全部完成:
- 量化交易入门
- AI 辅助交易工具
- EA 策略开发完整指南
- 回测的 7 个致命陷阱(本篇)
把这 4 篇按顺序读完,你会拥有完整的”散户量化交易”框架。
在微信里搜「Tom讲交易」即可关注,每周更新交易教学
推荐课程
合约陪跑实战训练营
不只教方法,更带你实盘执行。从仓位管理到止损止盈,手把手纠正你的交易习惯,建立可复制的盈利系统。
相关文章
回测要用多长时间的数据:先算笔数不算年数,日线策略一年只有 25 笔
「回测一年还是五年」这个问题问错了对象。真正决定回测有没有说服力的是两个数:样本笔数和覆盖的市场状态数。日线策略一年约 250 根 K 线,若平均每 10 根出一个信号,一年只有 25 笔,离 208 笔的显著性门槛差 8.3 年。这篇给出信号密度与所需年数的换算表、五档周期的年信号数对照、市场状态覆盖的三条硬要求,以及数据不够时的三条替代路径。
量化交易年化 300% 的策略靠不靠谱:五个能在十分钟内做完的检验,过拟合通常倒在第二个
年化 300% 这个数字本身就带着一个可以当场验证的矛盾:连续跑五年就是 1024 倍,十万块变一亿。这篇先用复利算一遍它的容量边界,再给五个不需要拿到源码就能做的检验:样本外切分、参数敏感性、成本代入、收益回撤比、资金容量。每个检验有明确的判死标准,其中参数敏感性这一关能刷掉大部分过拟合出来的曲线。附三种最常见的美化手法。
量化交易别人递给你一套策略时,先问这五个问题:夏普比率大于5基本就是过拟合
面对越来越多的AI交易架构、量化带单、策略产品,这是一份可以直接照着问的尽调清单:要长期实盘曲线而不是短期妖币战绩、夏普比率大于5基本能确定是过拟合或前视偏差、看交易标的集中度、看资金进出记录是否干净、看最大回撤是自己量出来的还是平台给的。五条硬标准,附一个可以打印的检查表,站在被推销方的角度,教你怎么不被一份好看的成绩单骗。
量化交易不写代码能不能做回测:四条路径的能力边界,加六个选型维度
新手不写代码也能做回测,四条路径各有各的天花板:手工翻图样本上不去、表格法卡在盘中触发顺序、平台内置测试器要写几行脚本、无代码平台上手最快但黑盒最大。这篇给出四条路径的能力对照、六个选型维度(数据与复权、成本设置、出场表达力、能不能导出逐笔明细、样本外支持、可复现性),以及一条和写不写代码无关的硬边界。
量化交易用 Excel 做最简回测:十二列公式跑通一套系统,以及它做不到的三件事
Excel 能做回测,前提是你接受它的边界。这篇给出一个十二列的完整框架,信号、持仓状态、入场价、出场价、R 倍数、累计 R 全部用公式自动算,可以直接粘贴,没有循环引用也不需要宏。同时说清楚 Excel 回测做不到的三件事:盘中触发顺序、滑点与流动性建模、多品种共享资金,以及出现哪四个信号时必须换工具。
量化交易Pine Script 入门:三行出一条均线,四条执行规则决定你写的对不对
写一个能在图上画出均线的指标,Pine Script 只需要三行,本文第一段就能直接粘贴运行。但真正决定你写出来的东西准不准的,是四条执行规则:脚本按每根 K 线执行一遍、所有变量都是序列、未收盘的那根 K 线会被反复重算、脚本跑在 TradingView 服务器上而不是你的电脑上。这篇给出三段可直接粘贴的完整代码(均线、放量金叉信号、策略骨架),讲透四条执行规则,并列出 Pine 做不到的五件事。
觉得有用?关注公众号
扫码或在微信里搜「Tom讲交易」,每周更新交易教学文章