📊 样本外测试

验证策略真实有效性的黄金标准——避免过拟合,让回测成绩经得起实盘考验

什么是样本外测试?

样本外测试(Out-of-Sample Testing)是指将历史数据划分为两部分:一部分用于开发策略(样本内数据),另一部分用于验证策略(样本外数据)。策略在样本内数据上优化完成后,再在样本外数据上运行,检验其表现是否依然优秀。

简单说:用过去的数据写作业,用没看过的数据考试。如果考试成绩依然优秀,说明你真的学会了;如果只是作业做得好,考试一塌糊涂,那就是"背答案"——过拟合了。

💡 核心思想

样本外测试的核心是模拟真实交易环境——你无法预知未来,所以策略必须在从未"见过"的数据上证明自己。这是区分"真正有效的策略"和"运气好/过拟合的策略"的最有效手段。

为什么要做样本外测试?

很多新手量化交易者都会犯同一个错误:在完整的历史数据上反复优化参数,直到回测曲线完美向上。然后信心满满地投入实盘,结果亏损惨重。

原因很简单——过拟合。当你给了策略太多自由度、太多参数调整空间,它就会"记住"历史数据中的噪声而非规律。样本外测试正是对抗过拟合的最强武器。

过拟合的典型症状

样本外测试的三种方法

方法一

固定分割法(Hold-out)

将数据按时间顺序分为样本内(如70%)和样本外(如30%)。样本内用于策略开发和参数优化,样本外用于最终验证。这是最简单、最常用的方法。缺点是只做一次测试,结果可能受分割点影响。

方法二

滚动窗口法(Rolling Window)

不断向前滚动训练窗口和测试窗口。比如用第1-12个月的数据训练,测试第13个月;然后用第2-13个月的数据训练,测试第14个月……如此反复。这种方法能更充分地利用数据,也能检验策略在不同市场环境下的稳定性。

方法三

交叉验证法(Walk-Forward Analysis)

量化交易中最推荐的验证方法。将数据分成多个时间段,在每个时间段内进行样本内优化和样本外测试,然后汇总所有样本外测试的结果。这种方法既保证了测试的充分性,又能检验策略参数的时间稳定性。

实战案例:移动平均线策略的样本外测试

假设我们开发了一个简单的双均线策略:当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的比例分为训练集、验证集和测试集——训练集用于策略开发,验证集用于参数调优,测试集用于最终评估(仅使用一次)。

相关学习资源

样本外测试是量化交易的核心环节,建议你结合以下内容系统学习: