验证策略真实有效性的黄金标准——避免过拟合,让回测成绩经得起实盘考验
样本外测试(Out-of-Sample Testing)是指将历史数据划分为两部分:一部分用于开发策略(样本内数据),另一部分用于验证策略(样本外数据)。策略在样本内数据上优化完成后,再在样本外数据上运行,检验其表现是否依然优秀。
简单说:用过去的数据写作业,用没看过的数据考试。如果考试成绩依然优秀,说明你真的学会了;如果只是作业做得好,考试一塌糊涂,那就是"背答案"——过拟合了。
样本外测试的核心是模拟真实交易环境——你无法预知未来,所以策略必须在从未"见过"的数据上证明自己。这是区分"真正有效的策略"和"运气好/过拟合的策略"的最有效手段。
很多新手量化交易者都会犯同一个错误:在完整的历史数据上反复优化参数,直到回测曲线完美向上。然后信心满满地投入实盘,结果亏损惨重。
原因很简单——过拟合。当你给了策略太多自由度、太多参数调整空间,它就会"记住"历史数据中的噪声而非规律。样本外测试正是对抗过拟合的最强武器。
将数据按时间顺序分为样本内(如70%)和样本外(如30%)。样本内用于策略开发和参数优化,样本外用于最终验证。这是最简单、最常用的方法。缺点是只做一次测试,结果可能受分割点影响。
不断向前滚动训练窗口和测试窗口。比如用第1-12个月的数据训练,测试第13个月;然后用第2-13个月的数据训练,测试第14个月……如此反复。这种方法能更充分地利用数据,也能检验策略在不同市场环境下的稳定性。
量化交易中最推荐的验证方法。将数据分成多个时间段,在每个时间段内进行样本内优化和样本外测试,然后汇总所有样本外测试的结果。这种方法既保证了测试的充分性,又能检验策略参数的时间稳定性。
假设我们开发了一个简单的双均线策略:当5日均线上穿20日均线时买入,下穿时卖出。我们使用沪深300指数2015-2024年的日线数据进行测试。
| 测试阶段 | 时间区间 | 年化收益率 | 最大回撤 | 夏普比率 | 判定 |
|---|---|---|---|---|---|
| 样本内(训练) | 2015-2020 | 12.3% | -18.5% | 0.85 | 合理 |
| 样本外(验证) | 2021-2024 | 10.8% | -16.2% | 0.79 | 通过 |
| 样本内(过拟合版) | 2015-2020 | 35.6% | -8.2% | 2.45 | 可疑 |
| 样本外(过拟合版) | 2021-2024 | -5.2% | -32.1% | -0.45 | 失败 |
从上表可以清楚看到:简单策略在样本内外表现一致,说明策略抓住了真实的市场规律;而过拟合版在样本内表现"完美",样本外却亏损严重,这就是典型的"回测骗子"。
一个值得实盘的量化策略,样本外测试的表现不应该比样本内差太多(比如夏普比率下降不超过20%)。如果样本外表现大幅下滑,请先怀疑过拟合,而不是怀疑市场错了。建议将数据按6:2:2的比例分为训练集、验证集和测试集——训练集用于策略开发,验证集用于参数调优,测试集用于最终评估(仅使用一次)。
样本外测试是量化交易的核心环节,建议你结合以下内容系统学习: