样本外检验:别被回测骗了 Walk-Forward Testing
在历史数据上挑出最好的参数很容易,难的是它在没见过的数据上还灵不灵。滚动前进检验模拟真实的“先选参数、再上场”。
还在犹豫?先免费体验第一课「用规则积木搭策略」。
文字版讲解 · 量化入门 第 5 课「样本外检验:别被回测骗了」
在历史数据上挑出最好的参数很容易,难的是它在没见过的数据上还灵不灵。滚动前进检验模拟真实的“先选参数、再上场”。
先选参数,再上场
真实交易里你只能用过去的数据选参数。滚动前进检验模拟这个过程:在样本内里挑最优参数,在紧接着的样本外里检验,然后整体往前滚。
回测里的水分
用全部数据挑出的“最优参数”等于看着答案做题。样本外表现和它的差距,就是回测里的水分;在纯噪声里也能挑出好看的参数,是过拟合最直接的证据。
本课要点
- 样本内挑参数、样本外检验,样本外的表现才接近真实水平。
- 滚动前进:每次用过去一段数据选参数,在接下来一段数据上检验,再整体往前滚。
- 样本内很好、样本外很差,说明策略多半是在拟合噪声。
动手试试
下面这些练习可以在本课的互动模拟里完成:
- 在“风格切换”行情里:全样本最优收益是多少?样本外合计呢?
- 切到“纯噪声”:样本内收益平均多少?样本外呢?
- 把训练窗口从 120 根改成 200 根:参数更换次数变少了吗?样本外结果怎么变?
- 切到“长期趋势”:样本外是否依然有效?
小测与解析
- 1. 一个参数在样本内年化 40%、样本外年化 −5%,最可能说明?
- 答案:过度拟合了历史噪声。只在“见过的数据”上表现好,是过拟合的典型特征。
- 2. 滚动前进检验的做法是?
- 答案:用过去数据选参数、在下一段数据上检验,然后往前滚动。模拟真实交易中“只能用过去信息做决定”的处境。