问答卡 · 回测与验证

过拟合是什么?怎样评估一份回测是否过拟合?

过拟合就是策略把某一段历史行情里的“偶然噪声”当成长期规律。结果常常是历史回测很漂亮,换一个时期或进入实盘便失效。

问答卡草稿公开内容
关键结论:过拟合就是策略把某一段历史行情里的“偶然噪声”当成长期规律。结果常常是历史回测很漂亮,换一个时期或进入实盘便失效。

核心结论: 过拟合就是策略把某一段历史行情里的“偶然噪声”当成长期规律。结果常常是历史回测很漂亮,换一个时期或进入实盘便失效。

一个简单例子

你把快均线从2日试到50日、慢均线从20日试到300日,再组合不同止损、止盈和仓位,共测试20,000套参数,最后挑出“19日+63日”且夏普率2.5。

这不一定说明19和63存在真正规律。试验次数足够多时,即使所有策略都没有预测能力,也可能碰巧选出一个历史冠军。若18/63、19/62都很差,换到下一年也亏损,19/63很可能只是“记住了历史答案”。

先区分三个问题

问题 含义
过拟合 策略学到了历史噪声,换数据后失效
未来数据泄漏 决策时使用了当时不可能知道的数据
回测假设过于乐观 忽略滑点、成交困难、手续费和延迟

例如,用明天收盘价决定今天买入是未来数据泄漏。通过未来数据检查,只能说明没有发现某类“偷看答案”,不能证明策略没有过拟合。

七步过拟合体检

1. 做真正的样本外测试

训练期             验证期           最终测试期
研究和调整参数  →  选择方案     →   只测试一次
2018—2021          2022             2023—2024

最终测试期应提前封存。一旦看过结果并据此修改策略,这段数据就不再是真正的样本外数据。时间序列也不能随意随机打乱。

2. 做滚动前向验证 Walk-forward

2018—2020训练 → 2021测试
2019—2021训练 → 2022测试
2020—2022训练 → 2023测试
2021—2023训练 → 2024测试

观察多数测试段是否仍有正期望,夏普是否全面崩塌,回撤是否突然放大,以及是否只能在单一牛市、年份或品种赚钱。

3. 检查参数附近是否存在“稳定平台”

稳健策略通常不是只有一个精确参数有效,而是附近一片区域仍然可用。理想结果不是尖锐的最高峰,而是一块较宽、较平稳的高地。

4. 记录一共试过多少方案

保存所有逻辑、参数、品种、周期、过滤条件和被淘汰结果。测试10,000个方案后只展示最好一个,普通夏普率会高估可信度。进阶可用缩水夏普率和PBO修正多重测试问题。

5. 做成本和成交压力测试

测试正常、1.5倍和2倍手续费与滑点;下一根K线成交;更差成交价;限价单未成交;资金费率、借贷成本和容量限制。成本稍增就从暴赚变亏损,说明优势很脆弱。

6. 检查利润是否过度集中

删除盈利最大的5笔、删除表现最好的一个月,按牛熊震荡、年份、品种、做多做空拆分。如果删掉少量交易就转亏,不能单独证明过拟合,但说明结果不稳健。

7. 做模拟盘前向测试

历史回测

样本外 / Walk-forward

模拟盘 Dry-run

对比信号、成交和收益差异

才考虑极小资金验证

常见过拟合警报

  • 回测收益异常高、曲线异常平滑,经济逻辑却说不清。
  • 测试大量方案,但只报告最后一个。
  • 样本内夏普很高,样本外接近0或变负。
  • 参数稍改,结果立即崩溃。
  • 主要利润来自少数交易、单一年份或单一品种。
  • 扣除真实成本后不再盈利。
  • 不断查看样本外数据并继续修改。
  • 回测与模拟盘的信号或成交差异明显。

核心结论: 不能用一个指标证明“绝对没有过拟合”。样本外测试的目的不是证明策略一定赚钱,而是努力推翻它;在没有未来数据、记录全部试验、通过多轮Walk-forward、参数附近稳定、扣除压力成本且模拟盘没有明显背离时,只能说过拟合风险得到了一定控制。

参考与来源状态:

KNOWLEDGE RELATIONS

研究关系