过度拟合:如何区分高原与运气好的尖峰

作者 chwoo · 加密货币交易7年。自2026年春起运行自动交易机器人。 · · 更新

一个令人不适的事实:只要测试足够多的参数组合,你 总会 找到一个回测惊艳的。不是因为存在隐藏的宝石,而是因为随机性保证了这一点。有了成百上千种周期、阈值与出场的 组合,某个配置就会恰好躲过每一次暴跌、抓住每一次拉升,纯属巧合。

这就是 过度拟合(曲线拟合) :把历史噪音里的模式当成市场的性质。麻烦在于,那个配置在屏幕上和真货长得一模一样。收益率+400%,无论来自 优势还是来自偶然,都显示为+400%。区分二者只有一个办法,就是 看它的邻居。

尖点与高原

找到一个看起来不错的设置后,把这个值往两边各挪一格再跑一次。如果RSI周期是14,就查12和16;如果阈值是30, 就查25和35。结果只有两种。

  • 邻近设置表现相似,那是 高原(plateau) ,策略很可能抓住了市场行为中某种真实的东西,因为真实的效应不会薄如刀刃。
  • 往旁边挪一格成绩就崩塌或翻负,那是 尖点(peak) ,你找到的是一次巧合。市场并不在乎你的RSI周期恰好是13。
高原宽而平缓,尖点窄而尖锐。实盘不会把你放在尖点的正顶上。

不要断言,直接跑一遍

我们用本站的引擎做了扫描。对象是新手最先学到的规则:RSI上穿30就做多 。BTC一小时周期,止盈3% / 止损2%,单边手续费0.06%与滑点0.02%计入,杠杆1倍,仓位90%,数据为截至2026年8月31日 的币安K线。先只改RSI周期。

RSI周期ROIMDD交易数夏普
8-80.9%87.6%1,246-0.64
10-86.6%91.0%1,031-0.92
12-85.9%90.4%849-1.01
14-80.9%85.2%695-0.94
16-83.6%85.2%569-1.16
18-75.8%78.5%472-0.99
20-68.0%70.5%400-0.86
阈值固定为30,RSI周期从8到20。七个设置全部亏损。

在回测器里打开本文测量的那个策略 →

这里要得到的结论不是「周期20最好」,而是 这既不是高原也不是尖点,整片地形都在水面之下 。无论选哪个值,都会亏掉三分之二以上的本金。如果从这张表里挑出一格宣布「RSI 20最优」,那不是优化,只是 挑了一个没那么糟的亏损。

我们又确认改阈值是否有别。这次把周期固定为14,只动阈值。

阈值ROIMDD交易数夏普
20-59.3%60.7%157-1.13
25-69.9%72.3%394-0.92
30-80.9%85.2%695-0.94
35-76.6%84.9%1,014-0.64
40-80.1%85.8%1,246-0.62
45-64.6%73.4%1,339-0.32
RSI周期固定为14,阈值从20到45。六个设置全部亏损。

两张表合起来跑了十三个设置,没有一个盈利。走到这一步常见的反应是把格子分得更细:加上周期13、15、17, 加上阈值28、32。这样做下去,最终总会有一格返回正数。而那一刻,正是过度拟合发生的地方。

多重比较的陷阱

把一千枚公平硬币各抛十次,其中总有几枚会出现八次以上正面。指着那几枚说「这枚硬币偏正面」是错的。你不是 找到了一枚特殊的硬币,你只是硬币很多。

参数搜索正是这件事。你不是在检验一个配置,而是同时检验几百个并留下最好的那个。最好配置的成绩按定义是 实力加运气 ,尝试次数越多,运气那一项就越大。所以记录你试过什么、试了几次很重要:第四十次找到的+50%,和第一次就出现 的+50%,不是同一个数字。

改结构,而不是改参数

这些表真正教的不是怎样挑更好的数字,而是要问这条规则为什么会输。RSI上穿30在下跌趋势中也会不断触发, 每次都在接飞刀。那么与其摇参数,不如加一个条件:只在价格位于200 EMA之上时买入。

设置ROIMDD交易数胜率
无过滤-80.9%85.2%69538.0%
200EMA之上-17.3%22.0%7938.0%
RSI周期14与阈值30完全相同。一个过滤器把亏损从-80.9%降到-17.3%,回撤从85%降到22%。

同一个指标、同一组数值,结果却完全不同。而且请注意没有变的东西:两行的胜率都是38.0%。 过滤器并没有提高取胜的概率,它只是让策略不去做那些注定会亏的交易。交易从695笔降到79笔,亏损也随之下降。 调参数不会带来这种性质的变化。

不能停在这里。加了过滤器的版本也可能是尖点,所以要用同样的方式检查它的邻居。

RSI周期ROIMDD交易数
10-26.4%34.5%198
12-21.2%25.9%123
14-17.3%22.0%79
16-23.7%24.9%37
18-5.4%10.0%19
加入200EMA过滤后的周期扫描。亏损集中在一个很窄的区间里,这就是高原的形状。

现在地形平缓了。所有结果落在-5%到-26%之间,往旁边挪一格既不翻负也不崩塌。虽然仍然全部亏损,但亏损保持一致本身就是信息 :它说明这条规则不是运气不好,而是结构上跨不过自己的成本。

警惕样本消失

最后一张表里看起来最好的一格是周期18的-5.4%。但那一格建立在 19笔交易 之上。用十九笔交易算出的收益率是故事,不是统计;前后只要有几笔不同,符号就可能改变。

每加一个条件,入场机会就减少。695笔变成79笔,再拉长周期就变成19笔。所以过滤器不是免费的,它用样本换来 更小的亏损;而样本一薄,剩下的数字就朝偶然靠回去。这也是当策略条件超过四个时,本工具的结果页面会提醒你 的原因。

一个黄金周期并不够

只在2021年上调优的策略只会学到一个教训:逢跌就买。这个教训会在下一个熊市里死去。稳健意味着跨越不同市场 状态生存:上涨的年份、下跌的年份、横盘震荡。这也是本站把结果拆成7年、5年、3年、2年、1年和6个月窗口, 而不是只给一个总数的原因。

上面那个加了过滤器的版本,在覆盖到的8个周期里也只有1个盈利。总亏损收窄到-17%,并不意味着出现了优势。

旋钮越少,越可信

两个参数的策略比六个参数的策略更难过度拟合,因为搜索空间更小。成绩相当时,优先选旋钮更少的那个。并且要求 一个关于 为什么 这个优势应该存在的解释:交易的对手方是谁,他们为什么会持续把钱送出来。没有这个,你手上只剩一条曲线。

实用检查清单

  • 检查参数的邻居:要高原,不要尖点。
  • 检查每一个周期窗口,而不只是总和。一致性胜过幅度。
  • 检查交易数。少于约30笔时,胜率和盈亏比连作为估计值都不可用。
  • 在开启手续费和滑点的状态下检查。只在零成本下有效的策略不是策略。
  • 在摇参数之前先怀疑结构。一个过滤器带来的改变超过二十个数值。
  • 把你测试过的东西写下来。未来的你不会记得那40次失败。
本站结果页上的过度拟合警告不是套话。反复调整设置直到表格变绿,是世上最自然的事,而曲线拟合策略正是这样 诞生的。当你找到不错的东西时,第一步应该是试图 把它打破,而不是给它加杠杆。

参考资料

阅读很好,实测更好。用币安7年数据免费运行一次真实回测。

试用回测器