策略·术语表

什么是曲线拟合?如何识别过度拟合的策略

曲线拟合就是把策略反复优化,直到它把过去的数据描述得完美无缺,却什么也预测不了。有哪些警示信号,为什么只有实盘结果才能下定论。

曲线拟合也叫过度拟合(overfitting),指的是反复调整策略参数,直到它贴合测试用的历史数据,连其中的噪音也一并贴合。这样得出的结果把过去描述得分毫不差,对未来却毫无预测力。测试时看起来很出色的系统,一上实盘当月就亏钱,最常见的原因就是它。

工作原理

每一个可调的输入都是一个自由度。在一张取值网格里搜索,测的就不是一个策略,而是每种组合各做一次实验:

实验次数 = v1 × v2 × ... × vk

4 个参数 × 每个 15 个取值 = 50,625 次回测
50,625 次中的最优者被选中,一部分是因为它的优势,
一部分是因为它恰好碰上的那些噪音

在同一段固定的历史上,实验做得越多,就越可以肯定:赢家的排名是运气给的。测试器不会提这一点,它只把赢家当成唯一的候选报告出来。

四个信号,大致按可靠程度排列:

  • 参数悬崖。某个设置往任一方向挪一格,表现就一落千丈。真实的优势会慢慢减弱,拟合出来的优势则是直接掉下悬崖。只在周期 47 时才管用的移动平均线,就是教科书式的例子。
  • 参数太多,样本太少。一套有六个输入的规则只在 150 笔交易上验证过,就是欠定的。参数和样本之间没有固定比例,但方向毫无争议。
  • 净值曲线平滑得可疑。真实的收益是参差不齐的。回测里一条近乎笔直的斜线,通常说明要么参数组是拟合出来的,要么系统是靠死扛亏损单活下来的。
  • 样本外崩溃。在拟合窗口里成立,一出窗口就消失。这是决定性的检验,但只在您第一次看样本外数据时才算数。

为什么重要

曲线拟合的系统会以一种特定而又昂贵的方式失败:它不会一开始就慢慢亏。只要市场和拟合期相似,它就表现得还过得去;一旦市场状态变了,它就崩了,而且往往正是在重仓的时候。交易者会归咎于运气不好,殊不知模型只是在做它被造出来要做的事。

解药不是更聪明的测试,而是一份实盘记录:真实承担点差、佣金和滑点,而且时间够长,经历过开发者从没见过的行情。

数据显示了什么

以 ShowMyTrades 上有交易历史的公开账户为样本(2026 年 8 月):盈利因子中位数 1.28,历史最深回撤中位数 9.7%,每个账户已平仓交易数中位数 171 笔。

这三个数字构成了一个真实可信的参照分布。38.2% 的账户回撤曾超过 20%,17.6% 超过 50%。如果一个策略宣传盈利因子高于 3.0、最大回撤只有 4%,它宣称的不是本事,而是自己站在一个由 1,540 万笔已同步交易构成的分布之外。这种说法可能成立,但需要证据,而证据要看实盘。

171 笔已平仓交易这个中位数,值得单独记一下:要验证任何东西,这都是一个很小的样本,而大多数实盘账户恰恰就是凭这么大的样本被评判的。

在 ShowMyTrades 上的位置

图表模块里的逐笔交易增长图按交易序号而不是日期来画曲线,长期闲置带来的美化效果就此去掉,账户是还在运作,还是只是还开着,一目了然。月度收益表会列出每一个亏损月和每一段“无交易活动”空档:策略在糟糕的月份之后被悄悄重新优化,通常会在那里留下一段明显的停顿。

在高级统计模块中,把盈利因子和标准差、Z 值(概率) 放在一起看:盈利因子很高,单笔收益却异常均匀,说明账户平滑得不像经历过各种行情,而围绕某一段时期调出来的参数组,往往就是这种表现。自定义分析面板里的魔术号和注释筛选,可以把多策略账户上的某一个 EA(智能交易系统)单独拎出来,只看它的统计数据。业绩记录已验证徽章目前有 65 个账户持有,它证明数据来自经纪商,而不是来自某份报告文件。

常见误解

  • “它通过了样本外测试。”只要您看过样本外结果、又据此改动过任何东西,这些数据就变成了样本内数据。机会只有一次。
  • “历史越长,越不会过度拟合。”关键在于观察数量和自由参数的比例,而不是时间跨度。一边加年份一边加过滤条件,反而可能更糟。
  • “滚动前向优化(walk-forward)能解决这个问题。”它能减轻问题,也可能重演问题:在同一个品种上逐个窗口重新优化,搜索的仍然是同一段历史。
  • “已经是实盘了,不可能是曲线拟合。”一出问题就重新调参的系统,是在实盘中被拟合。账户是真的,优势却还在被倒推着编出来。

什么样的记录能回答这个问题,什么样的不能,请阅读经验证与未经验证的业绩记录。