72lab
登录免费注册
量化入门· 第 5 / 6 课· 6 分钟

样本外检验:别被回测骗了 Walk-Forward Testing

在历史数据上挑出最好的参数很容易,难的是它在没见过的数据上还灵不灵。滚动前进检验模拟真实的“先选参数、再上场”。

注册免费账号,解锁本课的互动模拟

每节课都有可以拖动、播放的互动模拟和随堂小测,注册后免费使用,并自动保存学习进度。下面先附上本课的文字版讲解。

还在犹豫?先免费体验第一课「用规则积木搭策略」。

文字版讲解 · 量化入门 第 5 课「样本外检验:别被回测骗了」

在历史数据上挑出最好的参数很容易,难的是它在没见过的数据上还灵不灵。滚动前进检验模拟真实的“先选参数、再上场”。

先选参数,再上场

真实交易里你只能用过去的数据选参数。滚动前进检验模拟这个过程:在样本内里挑最优参数,在紧接着的样本外里检验,然后整体往前滚。

回测里的水分

用全部数据挑出的“最优参数”等于看着答案做题。样本外表现和它的差距,就是回测里的水分;在纯噪声里也能挑出好看的参数,是过拟合最直接的证据。

本课要点

  • 样本内挑参数、样本外检验,样本外的表现才接近真实水平。
  • 滚动前进:每次用过去一段数据选参数,在接下来一段数据上检验,再整体往前滚。
  • 样本内很好、样本外很差,说明策略多半是在拟合噪声。

动手试试

下面这些练习可以在本课的互动模拟里完成:

  1. 在“风格切换”行情里:全样本最优收益是多少?样本外合计呢?
  2. 切到“纯噪声”:样本内收益平均多少?样本外呢?
  3. 把训练窗口从 120 根改成 200 根:参数更换次数变少了吗?样本外结果怎么变?
  4. 切到“长期趋势”:样本外是否依然有效?

小测与解析

1. 一个参数在样本内年化 40%、样本外年化 −5%,最可能说明?
答案:过度拟合了历史噪声。只在“见过的数据”上表现好,是过拟合的典型特征。
2. 滚动前进检验的做法是?
答案:用过去数据选参数、在下一段数据上检验,然后往前滚动。模拟真实交易中“只能用过去信息做决定”的处境。

本课术语

  • 样本内(In-Sample):用于优化参数的那段历史数据。
  • 样本外(Out-of-Sample):没有参与优化、专门用来检验策略的那段数据。
  • 过拟合(Overfitting):参数被调得过度贴合历史数据,在新数据上表现很差。
  • 滚动前进检验(Walk-Forward Analysis):反复用过去一段数据选参数、在紧接着的一段数据上检验,再整体往前滚动,模拟真实交易。
样本外检验:别被回测骗了(量化入门) · 72lab