样本外测试
什么是样本外测试
样本外测试是一种评估步骤,用于检验一个策略或交易模型在构建、调整或优化过程中未使用的数据上的表现。其核心理念是“分离”:用于开发的称为“样本内”数据,而用于后续评估的则称为“样本外”数据。
在外汇回测与前向测试的背景下,样本外测试通常被视为纯回溯性测试与实盘评估之间的一种中间手段。它的目的是回答一个具体问题:当将该策略应用于未见过的市场数据时,它是否仍然有效?
在外汇回测与前向测试中如何运作
按时间划分数据
一种常见且合理的方法是按时间顺序划分历史数据。例如,使用较早时间段的数据来开发规则或参数(样本内),然后使用较晚时间段的数据来评估表现(样本外)。按时间顺序划分至关重要,因为外汇市场是不断演变的;若在开发中使用未来数据,会导致对准确性的错误认知。
在测试前冻结决策
只有在评估样本外数据之前将模型视为固定不变时,样本外测试才有意义。这意味着通常应避免根据样本外结果来更改参数或在多个变体中进行选择。
一个实用的理解方式是:样本外部分应像一次期末考试,而不是另一份练习题。如果你反复“偷看”样本外结果并据此修改模型,实际上就等于将评估数据重新引入了开发过程。
使用相同的指标和现实约束进行评估
为了在不同时间段之间比较表现,应使用相同的评估指标。在外汇交易中,相关指标可能包括盈利能力、回撤行为以及结果的一致性。具体指标集取决于策略类型,但原则是保持评估标准的一致性。
同样重要的是,样本外评估中使用的任何假设都应与策略实际执行方式一致。如果回测忽略了交易成本、使用了不现实的订单成交价格,或假设完美执行,那么评估结果可能过于乐观。
使用多个样本外数据切片
由于市场并非始终以相同方式运行,单一的样本外窗口可能无法充分测试策略。使用多个样本外切片(在开发过程中仍保持未见)有助于揭示策略表现是否依赖于特定的市场状态。
相关的局限性与风险
过拟合仍可能发生
样本外测试可以降低过拟合风险,但无法完全消除。如果你测试了多个候选模型,并选择在样本外数据上表现最佳的一个,实际上就等于将评估数据用于模型选择。这可能导致对性能的高估。
另一个相关问题是建模过程过于灵活:即使策略在一个未见时间段表现良好,也可能依赖于之后消失的市场模式。
市场状态变化会影响结果
外汇市场受宏观经济状况、波动率模式和流动性条件变化的影响。如果样本外时间段的市场环境与开发阶段相似,测试结果可能显得比在不同市场状态下更优。
这正是为何多个数据切片和基于时间的划分方式如此重要。然而,即使设计良好,未来条件仍可能与任何历史测试窗口不同。
回测与实盘执行的差异
回测只是对实盘交易的近似。微小的差异——如点差扩大、滑点、订单执行时机或特定交易品种的行为——都可能显著改变结果。样本外测试仅衡量你的模拟假设所产生的结果,而非真实执行下的实际结果。
统计不确定性依然存在
即使样本外表现为正,结果仍可能受随机性影响。不同时间段可能产生不同结果,尤其是当交易次数有限或收益方差较高时。因此,样本外测试应被视为一种证据,而非确定性结论。
如何独立验证理解
样本外测试的最佳理解方式是实施数据分离规则,然后检查结果在不同时间段和评估指标下是否保持稳定。如果你能一致地复现评估过程,并清晰展示哪些数据用于开发、哪些用于评估,那么该测试将更具独立性和信息价值。
将样本外结果与后续的前向测试进行比较也有助益,因为前向测试在历史数据模拟之外增加了更多现实性。然而,前向测试仍面临不确定性,也无法保证最终结果。
与前向测试的关系
样本外测试通常是一种回溯性验证步骤:它使用历史数据,同时尊重与开发阶段的分离。而前向测试则更靠后、更贴近实际,因为它在更真实的环境中评估策略行为。
实践中,许多交易者将样本外测试视为在进入后续评估前减少明显过拟合的一种方式。关键限制在于,即使严谨的样本外测试也无法消除不确定性——外汇市场条件可能变化,模拟结果也可能与实盘执行产生偏差。
如需了解更完整的流程,请参阅外汇回测与前向测试。