如何负责任地回测 Schaff 趋势周期指标?

通过偏差控制和成本考量,负责任地回测 Schaff 趋势周期指标。

如何负责任地回测 Schaff 趋势周期指标?

在衡量前先定义指标概念

Schaff 趋势周期(常简称为 STC)是一种趋势跟踪指标,它将价格变动转化为有界的、类似振荡器的序列。负责任的回测始于将稳定机制可变条件区分开来:

  • 稳定机制:指标如何根据其输入(移动平均线、平滑处理以及任何振荡器映射)进行计算。
  • 可变条件:市场周期、价格来源、执行方式以及交易环境。

即使你只关注该指标本身,回测仍需明确定义什么是“结果”。例如,你可以评估某个特定的 STC 水平或方向变化是否与后续价格走势一致。这一选择必须提前声明,因为不同的评估规则可能导致不同的结果。

明确设定数据假设和成本假设

严谨的回测依赖于数据流程。在进行任何计算之前,应明确以下假设:

  • 价格数据:你使用的价格序列(例如,买价/卖价 vs 中间价/最新价),以及如何处理缺失的时间戳。
  • 时间对齐:在时间 t 的指标值是否仅使用 t 时刻及之前可用的信息计算得出。
  • 重采样:你是使用原始时间周期,还是进行了重采样,以及边界如何对齐。

成本至关重要,因为忽略成本时,基于指标的评估可能显得盈利。应明确设定以下假设:

  • 交易成本:佣金、点差,或两者皆有(需与所选价格序列保持一致)。
  • 滑点:实际成交价与回测参考价之间的偏差。
  • 延迟:是否假设在下一周期开盘、收盘或其他规则下成交。

为了控制不确定性,应在多种合理的成本情景下运行相同的回测(例如,低/中/高滑点)。如果结论发生显著变化,则说明结果的稳健性值得警惕。

使用样本外测试和参数稳定性检查控制偏差

指标回测中的常见失败模式是过拟合:通过调整参数和选择规则,使历史表现看起来良好,但无法保证在其他时期的表现。可通过分阶段的工作流程减少此类问题:

  1. 一次性定义:在查看结果前,确定评估规则(什么事件触发指标)和参数范围。
  2. 使用训练窗口调优:若需调整参数,仅在训练段内进行。
  3. 样本外验证:将选定配置应用于未用于调优的后续数据进行测试。
  4. 多次分割重复:使用多个滚动或前向滚动段,降低结果仅来自某个幸运时期的可能性。

一种实用的偏差控制方法是参数稳定性:验证小幅度参数变化不会导致结论反转。例如,若结果依赖于狭窄的参数范围,则该关系可能不稳定。

至少评估一个实质性限制或失效模式

历史回测的成功并不能保证未来结果。应将绩效指标视为依赖于市场机制和执行假设的条件性结果。至少应测试一种实质性失效模式,例如:

  • 机制转换:趋势指标在横盘整理期的表现通常与持续趋势期不同。
  • 指标延迟:平滑处理可能导致响应滞后;需评估评估规则是否在指标信息滞后之后测量结果。
  • 对成本/执行的敏感性:如果该指标仅在去除点差或假设不现实成交时才“有效”,则结论是脆弱的。

还需检查数据泄露:确保你的指标值仅使用决策时刻之前可用的数据计算。数据泄露可能使振荡器回测看起来准确,而实际上在实盘中并不可行。

验证及你应提出的下一个问题

负责任的验证过程需独立回答两个问题:

  1. 可复现性:你能否使用相同的数据定义重新运行回测并获得相同结果?
  2. 外部有效性:结论是否在不同的样本外窗口和成本情景下持续成立?

下一步,明确你的评估规则和指标。例如,确定你是衡量方向一致性、基于事件的时机准确性,还是某个假设规则的盈利能力。然后每次只改变一个要素,重复样本外测试过程。如果结果仅在一种狭窄设置下成立,则你的结论应表述为“依赖于假设”,而非普遍承诺。

链接相关概念页面也有助于保持计算与测试规则的一致性。

外汇和差价合约交易具有重大风险。FoxiForex的信息仅用于教育,不构成个人财务建议。赞助内容会被清楚标注。