量化交易 XtradingTime

回测的 7 个致命陷阱:为什么回测好的策略实盘亏钱

回测的 7 个致命陷阱:为什么回测好的策略实盘亏钱

本文属于专题 《系统验证:怎么知道它真的有效》 ,按顺序读效果更好。

本文目录(35 节)

回测是量化交易最重要的环节,也是最容易被自己骗的环节。90% 的散户量化策略”回测亮眼实盘亏损”,原因都在这 7 个回测陷阱里:过拟合、生存偏差、前视偏差、数据窥探、不真实的执行、忽略成本、样本不足。今天逐一拆透每个陷阱的本质 + 散户能用的检测方法。读完你会成为”会看回测”的少数人。


一、为什么”回测好但实盘亏”是常态

如果你已经读过 量化交易入门,应该理解了量化的基本框架。

今天聚焦最关键的一环:回测。

散户的典型经历

第 1 步:研究一个量化策略 第 2 步:回测,看到漂亮曲线(年化 50%!) 第 3 步:兴奋,立即实盘 第 4 步:3 个月内开始亏损 第 5 步:6 个月后账户腰斩

为什么会这样:

  • 回测美化了实际表现
  • 实盘揭示了所有”骗自己”的细节

理解这 7 个陷阱 = 80% 不再被回测骗。


二、陷阱 1:过拟合(Overfitting)

回测过拟合的 5 个典型表现

什么是过拟合

过拟合 = 策略对历史数据完美匹配,但对未来数据完全失效。

典型表现:

  • 回测胜率 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 步清单

最后整理成可执行的”5 步检测清单”:

步骤 1:样本量

  • 总笔数 ≥ 100
  • 测试期 ≥ 3 年
  • 覆盖牛/熊/震荡市

步骤 2:样本外测试

  • 70% 数据训练,30% 数据验证
  • 样本外胜率 / 盈亏比 接近样本内
  • 偏差 < 20%

步骤 3:参数稳健性

  • 主要参数 ±20% 调整后
  • 表现仍可接受
  • 不依赖某个”完美参数”

步骤 4:交易成本

  • 包含真实佣金
  • 包含真实点差
  • 包含隔夜利息

步骤 5:执行假设

  • 滑点 1-2 点
  • 不假设”立即成交”
  • 用下一根 K 线开盘价入场

5 步全过 → 这个回测可信度 80%+。


写在最后

回测是量化的双刃剑:

  • 用对了 → 验证好策略
  • 用错了 → 骗自己很久

核心要点:

  • 7 大陷阱(过拟合/生存偏差/前视/数据窥探/执行/成本/样本)
  • 每个陷阱都有具体检测方法
  • 5 步清单可以直接套用

铁律:任何回测漂亮但没做样本外测试的策略,不要实盘。


完整量化系列回顾

到此 C040 量化系列 4 篇全部完成:

  1. 量化交易入门
  2. AI 辅助交易工具
  3. EA 策略开发完整指南
  4. 回测的 7 个致命陷阱(本篇)

把这 4 篇按顺序读完,你会拥有完整的”散户量化交易”框架。

微信搜一搜 Tom讲交易

在微信里搜「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讲交易」,每周更新交易教学文章

扫码关注 Tom讲交易,或微信搜一搜 Tom讲交易

配套免费工具

随机漫步模拟

打开