样本外测试是指用没有参与构建策略的数据来评估策略。它是对抗 过拟合 最简单、最有效的防线之一。
样本内与样本外
- 样本内 数据是你在构建和调整规则时看过的数据。
- 样本外(保留)数据被留在一边,只用来检查最终规则。
如果表现在样本外崩溃,样本内的结果很可能描述的是噪声。
未见期间检验如何运作
在 Backte.st 中,未见期间 检验按时间切分每个市场的历史:前 70% 和后 30%。它单独评估后 30%,就像你从没见过它一样,并报告切分日期之后的收益和已平仓交易数。
按时间而不是随机切分很重要。市场有趋势和状态,相邻日期的价格彼此相关。随机切分会把未来的信息泄漏到过去。
陷阱:保留期间只“未见”一次
如果你跑一次测试,看到后 30% 表现差,调整规则后再跑,直到它看起来不错,那么保留期间就成了你设计过程的一部分。它变成了样本内数据。报告的局限说明中也明确写了这一点。
保持诚实的实用方法:
- 先确定规则;如果想探索,只用历史的前一部分。
- 只看一次未见结果,并把看到的记下来。
- 如果需要迭代,就用新数据:另一个市场、之后的期间或不同的 K 线周期。
如何解读结果
- 样本内外结果相近:令人鼓舞,但一次切分仍然是小样本。
- 样本外差很多:曲线拟合或市场状态变化的典型信号。
- 未见期间交易太少:检验无法判断。使用更长的历史或更小的 K 线。
不止一次切分
专业人士常用 滚动前推分析(walk-forward),在窗口向前移动时反复切分。单一保留期间是同一思路的简化版,依然能发现很多问题。
在 实验室 中试试任意策略,比较未见期间那一行与整个期间的收益。