海龟交易法回测入门

用规则、数据、手续费、滑点和样本外验证检查海龟交易法是否具备可执行性。

回测不是为了证明某个规则一定赚钱,而是为了回答一个更实际的问题:如果把同一套规则机械执行很多次,它在历史样本中会经历什么样的盈利、亏损、回撤、连续失败和交易成本。

对海龟交易法来说,回测尤其重要。因为趋势跟踪系统往往依赖少数大趋势贡献主要收益,中间会夹杂大量小亏损、假突破和盈利回吐。只看几笔交易,很容易误判系统质量。

回测前先写清规则

回测之前,不能只写“突破就买”。规则必须具体到可以被别人复现:

如果规则写不清,回测结果再漂亮也没有意义。它可能只是把主观判断藏进了历史数据里。

数据质量比参数更重要

海龟交易法依赖高价、低价、收盘价、突破边界和 TR、ATR 与 N 值。数据有问题,所有后续计算都会变形。

需要检查:

尤其在加密货币中,不同交易所价格、标记价格和指数价格可能不同。如果回测用一个交易所的数据,实盘却在另一个交易所执行,滑点和触发条件都会发生偏差。

成本必须提前计入

趋势系统的短周期信号较多,成本会显著影响结果。常见成本包括:

不要只用理想价格回测。真实交易中,突破发生时价格可能跳过触发价,止损触发时也可能出现更差成交。一个在无成本回测中可用的短周期系统,加入成本后可能完全失效。

避免前视偏差

前视偏差是回测中最危险的问题之一。它指的是在历史回测中使用了当时不可能知道的信息。

常见例子包括:

海龟交易法的信号必须按照时间顺序触发。每一步只能使用当时已经出现的数据。

不要只看收益曲线

收益曲线向上并不代表系统可靠。至少还要看:

趋势系统可能胜率不高,但依靠少数大趋势覆盖多次小亏损。因此,单独追求高胜率可能会误伤系统本身。

样本内与样本外

如果只在一段历史上反复调整参数,最终得到的可能是“适合过去”的规则,而不是稳定规则。

更稳妥的验证方式是:

  1. 先用一段样本设计规则。
  2. 固定规则后,在另一段未参与优化的数据上测试。
  3. 再看不同市场、不同年份、不同波动环境下是否仍然能解释。
  4. 如果规则只在少数品种或少数年份有效,要谨慎对待。

样本外验证不能保证未来有效,但能减少过度贴合历史的风险。

参数敏感性

20 日、55 日、10 日、2N 等数字不应被当成魔法。回测要关注的是一组相近规则是否表现出类似特征。

如果某个参数从 20 改成 21 就完全失效,说明系统可能过度依赖历史噪音。相反,如果一组合理参数都呈现类似的收益/回撤结构,说明规则族可能更稳健。

参数敏感性测试不是为了找到最漂亮的数字,而是为了确认规则有没有脆弱到无法实盘执行。

实盘和回测的差异

即使回测严格,实盘仍然会不同:

因此,回测结果应被视为风险地图,而不是收益承诺。它告诉你可能会遇到什么,不保证你一定能按计划执行。

一个最小回测清单

开始回测前,可以先完成这份清单:

  1. 写清市场池。
  2. 写清 K 线周期和数据源。
  3. 写清入场规则。
  4. 写清止损规则。
  5. 写清 Unit 计算方式。
  6. 写清加仓规则。
  7. 写清退出规则。
  8. 写清手续费、滑点和资金费率假设。
  9. 写清组合风险上限。
  10. 保留样本外验证区间。
  11. 输出回撤、连续亏损、交易次数和成本敏感性。
  12. 记录每次修改规则的版本。

如果这些内容无法写成文档,说明还不适合开始认真比较回测结果。

回测完成后,最好把同样的字段延伸到 交易日志与复盘模板 中。这样实盘记录才能和回测假设对照,避免“回测是一套规则,执行又是另一套规则”。

回测记录模板

每次回测至少记录:

这些记录可以避免一个常见问题:回测越做越多,但最后没人说得清当前规则为什么存在。

与其他页面的关系

回测需要把多个模块连起来:

本文用于解释验证流程,不构成投资建议。真实交易前,还需要结合账户规模、交易成本、市场流动性、交易所规则和个人执行能力。