backte.st

样本外测试:如何诚实地使用保留期间

为什么单独评估历史的最后一段能发现过拟合、未见期间检验如何运作,以及如何避免浪费保留期间。

样本外测试是指用没有参与构建策略的数据来评估策略。它是对抗 过拟合 最简单、最有效的防线之一。

样本内与样本外

如果表现在样本外崩溃,样本内的结果很可能描述的是噪声。

未见期间检验如何运作

在 Backte.st 中,未见期间 检验按时间切分每个市场的历史:前 70% 和后 30%。它单独评估后 30%,就像你从没见过它一样,并报告切分日期之后的收益和已平仓交易数。

按时间而不是随机切分很重要。市场有趋势和状态,相邻日期的价格彼此相关。随机切分会把未来的信息泄漏到过去。

陷阱:保留期间只“未见”一次

如果你跑一次测试,看到后 30% 表现差,调整规则后再跑,直到它看起来不错,那么保留期间就成了你设计过程的一部分。它变成了样本内数据。报告的局限说明中也明确写了这一点。

保持诚实的实用方法:

  1. 先确定规则;如果想探索,只用历史的前一部分。
  2. 只看一次未见结果,并把看到的记下来。
  3. 如果需要迭代,就用新数据:另一个市场、之后的期间或不同的 K 线周期。

如何解读结果

不止一次切分

专业人士常用 滚动前推分析(walk-forward),在窗口向前移动时反复切分。单一保留期间是同一思路的简化版,依然能发现很多问题。

在 实验室 中试试任意策略,比较未见期间那一行与整个期间的收益。

在实验室中试试

无需代码,用指标搭建策略,在几个市场上运行,用你自己的规则查看这项检验。免费,并在你的浏览器中运行。

打开实验室