参数敏感性与过度优化

理解海龟交易法回测中为什么 20/55 不是魔法数字,以及如何用参数敏感性、样本外验证和策略版本记录避免过度优化。

参数优化最容易让交易系统看起来更聪明,也最容易让系统变脆弱。

海龟交易法里常见的 20 日突破、55 日突破、10 日退出、20 日退出、2N 止损等数字,不应被理解成永远有效的魔法参数。它们更像一组规则样本:用不同周期定义突破、用波动单位定义风险、用规则化退出让系统参与趋势。

回测真正要回答的不是“哪组参数收益最高”,而是“这一类规则在合理参数范围内是否仍然稳定”。

什么是参数敏感性

参数敏感性指的是:当参数轻微变化时,系统表现是否剧烈改变。

如果 20 日突破表现很好,21 日突破完全失效,19 日突破也很差,那么这套结果可能只是贴合了历史噪音。相反,如果 18、20、22、25 等相近窗口都呈现类似特征,说明规则族可能更稳健。

需要观察的不只是收益,还包括:

参数敏感性不是为了找到最漂亮的数字,而是为了避免被最漂亮的数字骗到。

过度优化的常见表现

过度优化通常有这些特征:

过度优化不是“做了很多回测”本身,而是让历史数据替你编故事。

样本内与样本外

一个基本流程是:

  1. 用样本内数据设计规则。
  2. 固定规则和参数。
  3. 在样本外数据中验证。
  4. 再观察不同市场、不同年份、不同波动环境。

如果规则只在样本内漂亮,样本外立刻失效,就不能直接发布为实盘规则。样本外验证不能保证未来有效,但能降低“只适合过去”的风险。

参数不是孤立的

突破周期、退出周期、止损距离、加仓间距和 Unit 上限是成套系统。只优化一个参数,很容易破坏其他模块。

例如:

所以参数测试要按系统组合看,而不是只看单项。

一个参数敏感性检查表

每次回测可以记录:

字段 说明
策略版本 当前规则编号
参数组 入场、退出、止损、加仓、风险比例
样本内区间 用于设计规则的数据
样本外区间 未参与优化的数据
交易次数 样本是否足够
最大回撤 风险是否可承受
成本假设 手续费、滑点、资金费率
参数邻域 相近参数是否表现类似
市场组贡献 是否过度依赖少数品种
修改原因 为什么要改这一版

这些字段应和 交易日志与复盘模板 保持一致,避免回测和执行使用两套语言。

修改参数的边界

可以修改参数,但应遵守几个边界:

系统可以进化,但进化应该有证据链。

与其他页面的关系

参数优化不是为了找到最会讲过去故事的数字,而是为了确认规则族是否足够稳定,可以承受真实市场的噪音、成本和执行偏差。