几乎每个做策略的人都会经历这一幕:回测跑出来曲线漂亮得不行,一上实盘就开始缩水。这不是玄学,也不是运气差,而是回测和实盘之间本来就有几个固定的口子在漏。
最主要的四个:过拟合、前瞻偏差、被忽略的交易成本、以及历史图表里看不出来的成交差异。每一个都能在动用真钱之前查清楚。
回测和实盘差,主要因为四个口子:过拟合(策略拟合了测试那段时间的噪声)、前瞻偏差(测试用到了当时还不可用的信息)、交易成本(干净测试没算手续费和滑点)、执行差异(历史图表看不出真实的成交和时机)。每一项都可以在实盘前检查,查清楚了差距就被理解了,而不是实盘里才被吓一跳。
口子一:过拟合
一套策略被反复调校到某一段特定历史区间上,最终可能拟合的是这段区间的噪声,而不是一个可重复的模式。回测在被调过的数据上当然好看,换个时段就原形毕露。
这是「好回测让人失望」最常见的原因:结果描述的是测试期本身,不是市场。
口子二:前瞻偏差
测试可能悄悄用到被测试那一刻还不可用的信息:后来修订的财务数字、后来才变化的成分,甚至未来才有的价格。
这让策略好像拥有了实盘交易者从没有过的先见之明,结果被抬高了你却没察觉。
| 原因 | 它做了什么 | 怎么检查 |
|---|---|---|
| 过拟合 | 拟合了测试的噪声 | 在没调校过的时段上重测 |
| 前瞻偏差 | 用了未来的信息 | 核对每个输入当时的可用时间 |
| 交易成本 | 没算手续费和滑点 | 给测试加上现实成本 |
| 执行差异 | 假设完美成交 | 为真实成交和时机留出空间 |
口子三:交易成本
一份「干净」的回测可以完全不考虑手续费、点差和滑点,于是每笔交易看起来都比实盘便宜。
暴露最狠的是高频换手的策略:每笔只差一点点成本,攒成几百上千笔,就是一个大数字。
| 项目 | 干净回测(不含成本) | 加上真实成本后 |
|---|---|---|
| 胜率 | 55%(55 / 100 笔) | 55%(不受成本影响) |
| 平均盈利 | 300 元 / 笔 | 300 元 / 笔 |
| 平均亏损 | 200 元 / 笔 | 200 元 / 笔 |
| 每笔手续费 + 滑点 | 0 元 | 80 元 |
| 期望值(每笔) | +75 元 | -5 元 |
同一套 100 笔的交易记录,唯一变化的只是有没有算上真实成本,期望值就从正转负。
干净回测里,这套策略每笔平均能赚 75 元,胜率 55% 看着也不差。但只要把每笔 80 元的手续费和滑点算进去,净期望值就从正转负——这正是“口子三”在数字上的样子。
口子四:执行差异
历史图表显示的是价格,不是真实成交的体验:跳空、薄盘口、下单时机,这些在干净测试里全都看不见。
一个假设每个信号都完美成交的策略,自然会高估实盘真正能拿到手的成绩。
回测和实盘有差距,是因为几个具体、可检查的原因。纪律就是用现实成本、用没调校过的时段来测,并把回测当成证据,而不是承诺。
怎么把这几个口子堵上
在策略从没被调校过的时段上跑回测,把真实的交易成本加进去,再核对每个输入在测试那天是不是真的可用。
差距不会消失,但一个测法正确的策略,会让你知道差距大概在哪、为什么在,而不是等上了实盘才被现实教育。
常见问题
实盘比回测差,是正常的吗?
如果成本、执行和测试偏差都没算进去,那很正常。差距本身正常,但大小取决于具体原因。
哪个原因影响最大?
看策略。高换手策略被成本吃掉最多;被调校过的策略栽在过拟合;基本面策略容易被前瞻偏差坑。
这差距能完全消除吗?
不能,但用现实成本、样本外测试和严格的数据可用性检查,能把它压到很小。


