每周研究笔记

回测过拟合:为什么历史上最好的策略经常在实盘失效

参数、变体和数据筛选越多,就越容易找到样本内很好看、样本外却失效的策略。

策略验证2026-04-1122 分钟阅读
回测过拟合样本外

回测的本质:假设生成器,不是证明

回测是一个计算实验,将一组交易规则应用于历史数据并报告会发生什么。这个过程生成关于策略行为的假设,但它不能也不会证明相同的行为会在未来持续。证据与证明之间的混淆是大多数回测在实盘中失效的根本原因。当投资者把回测结果当作优势确实存在的确认时,他们已经从研究跨入了投机。

回测最危险的方面不是实施中的技术缺陷;而是伴随成功回测的叙事谬误。一个产生平滑上升净值曲线的策略自然会引出一个关于它为什么有效的引人入胜的故事。研究者看着曲线并发明一个理由:信号捕捉动量、它利用行为偏误、它受益于市场微观结构。但曲线本身对因果关系保持沉默。同一条曲线可以由真正的优势、随机波动或数据挖掘产物生成,而回测本身无法区分这些解释。

Bailey 和 López de Prado 关于回测过拟合概率的工作为量化这种风险提供了形式化框架。他们的洞见是:对同一数据测试的策略越多,最佳表现结果是统计侥幸而非真正发现的概率就越高。这个概率可能高得惊人:仅对五年日度数据测试四十五个策略变体,最佳回测过拟合的概率就可能超过百分之五十。这些不是抽象担忧;它们是金融市场中数据挖掘的数学现实。

多重检验的数学:为什么搜索会摧毁有效性

每次研究者测试新的参数组合、新的信号变体或新的过滤规则时,他们都在进行一个独立的统计检验。每个检验都带有假阳性的概率,在标准置信阈值下通常为百分之五。当进行数百或数千个检验时,至少一个假阳性的概率趋近确定性。这就是多重检验问题,它是回测可信度的沉默杀手。

考虑一个具体例子。一个研究者对五年数据测试一百个不同的移动平均交叉策略,将短线和长线回溯期从五天变化到五十天。即使这些策略都没有任何真正的预测力,大约五个会纯粹因为机率在百分之五水平上产生统计显著结果。研究者然后选择最佳表现者并将其呈现为经验证的策略。但选择过程已经污染了结果:被选中的策略不是因为好才最好;它最好是因为在大量竞争者中运气好。

Bonferroni 校正和 False Discovery Rate 框架为多重检验提供了统计调整,但这些调整在实践中很少被应用。它们也是保守的:正确应用时,它们经常从考虑中消除大多数或所有表面上显著的策略。因此诚实的研究者必须记录的不只是获胜策略,而是整个搜索过程:测试了多少变体、哪些参数被变化、应用了什么选择标准。没有这种记录,回测不是研究;它是被包装成科学的彩票。

参数挖掘:当自由度变成虚构度

一个有五个可调参数、每个测试十个水平的策略,生成十万种组合。即使底层想法没有任何预测力,其中一些组合也会纯粹因为机率产生令人印象深刻的回测。研究者然后将最优组合作为策略呈现,往往不披露产生它的搜索空间。这种做法把研究从假设检验变成了数据挖掘,而产生的策略几乎总是在实盘中失败。

这个问题的严重程度取决于搜索空间与数据点的比率。对十年日度数据进行一百万种组合的搜索有极高的过拟合概率,因为测试的假设数量远远超过数据的信息含量。相比之下,对二十年月度数据进行十种组合的搜索过拟合风险低得多。因此研究者必须计算并报告这个比率,即多重检验负担,作为研究记录的标准部分。

对抗参数挖掘的实务防御是时间外验证:保留一部分在搜索过程中从未使用的数据,只在这个保留集上测试最终选中的策略。如果策略在保留数据上的表现显著下降,结果很可能是挖掘出来的而非发现的。保留集必须真正原始;任何偷看,即使是非正式的,都会使整个程序失效。

样本外设计:滚动前推、清除与隔离

滚动前推测试是样本外验证的最低可接受标准。该程序将数据分成顺序的训练和测试窗口,在训练数据上训练策略,在随后的测试数据上测试它,然后将两个窗口向前滚动。这迫使策略只使用当时会可用的信息做决策,消除了最常见的前视偏差形式。

但滚动前推测试有它自己的脆弱性。如果训练窗口太短,策略可能欠拟合,无法捕捉真正的模式。如果太长,策略可能过拟合于不再适用的遥远历史条件。测试窗口必须足够长以提供有意义的统计评估,但又足够短以反映当前市场条件。这些窗口大小没有普世规则;它们必须基于策略的持有期、资产的波动特征、以及研究者对市场状态稳定性的判断来选择。

清除和隔离技术解决了滚动前推测试单独无法防止的更微妙形式的泄漏。在金融时间序列中,观测不是独立的;某一天的大涨跌影响随后几天的分布。如果训练窗口在第100天结束而测试窗口从第101天开始,训练数据包含了直接影响第101天的市场状态信息。清除移除边界附近可能被这种重叠污染的观测,而隔离防止模型在时间上离测试期太近的数据上训练。这些技术计算昂贵但对严谨验证至关重要。

信息泄漏:回测完整性的沉默破坏者

信息泄漏发生在模型能够获取在交易决策时不会可用的信息时。这可以通过显式前视发生,即未来数据被意外包含在训练集中;或通过隐式泄漏发生,即重叠样本或相关观测在理应独立的分区之间传递信息。两种形式都是隐蔽的,因为它们可以产生在实盘中完全消失的戏剧性回测表现改善。

显式泄漏最常见的来源是时间戳不对齐。研究者使用日度收盘价生成信号,但用相同收盘价测试执行,隐式假设信号可以在生成它的价格变动之前执行。实际上,信号只能在下一个可用价格执行,这可能差异很大。这个单一错误可以在回测中把亏损策略变成盈利策略,而实盘表现保持不变。

隐式泄漏更难检测。在重叠窗口上训练的机器学习模型中,每个训练样本与其邻居共享数据,意味著有关目标变量的信息泄漏到特征中。在组合构建中,使用相同数据选择资产和估计协方差矩阵会创造泄漏,因为选中的资产是基于用于估计风险的相同历史收益选择的。检测隐式泄漏需要仔细审计整个数据管道,从原始数据摄取到特征工程再到模型评估。

成本现实主义:纸面与现实之间的鸿沟

忽视交易成本的回测不是回测;它是幻想。金融市场中的成本栈包括显性成本如佣金和费用、隐性成本如买卖价差和市场冲击、以及机会成本如延迟执行和漏成交。这些成本中的每一个都侵蚀策略的优势,它们的累积效应可以把盈利策略变成亏损策略。

成本的影响与换手不是线性关系。每月交易一次的策略可能在成本后 Sharpe ratio 降低百分之十到二十。每日交易一次的策略可能降低百分之五十到八十。高频策略可以看到它们的整个优势被成本消耗,尽管毛 Sharpe 为正却产生负的净 Sharpe。这就是为什么成本感知回测不是可选的改进;它是任何策略可行性声称的基本要求。

除了交易成本,资金成本和保证金要求也可以显著影响策略表现。杠杆策略必须为借入资本支付融资费用,这些费用无论策略是否盈利都会累积。在高利率时期,融资成本可以消耗数个百分点的年化收益,把边际策略变成明确的输家。因此回测必须纳入反映实际交易环境而非理想化条件的现实成本假设。

状态多样性:一个状态的优势是另一个状态的失败

在一个市场状态中表现良好的策略可能完全不适合另一个状态。动量策略在趋势市场中蓬勃发展但在区间震荡中流血。均值回归策略从震荡中获利但在持续方向性运动中受苦。做空波动率策略在平静期收取溢价但在飙升时面临灾难性亏损。没有策略在所有状态中都有效,而只跨越一个状态的回测不是稳健性的证据;它是专业化的证据。

问题因市场状态在实时中没有标签而更加严重。看着历史数据的研究者可以事后确定状态边界,但实时操作的交易者无法确切知道他们处于哪个状态。使用状态依赖参数的回测,例如基于波动水平在动量和均值回归之间切换,可能在历史测试中显得稳健,但在实盘中失败,因为状态识别本身是有噪声和滞后的。

最可信的回测跨越多个完整的市场周期,包括至少一个重大压力期。对于股票策略,这意味着包含 2008 年金融危机或 2020 年疫情崩盘。对于加密策略,这意味着包含 2018 年熊市、2022 年 Terra-Luna 崩溃、或 2024 年恢复。一个没有经受极端条件测试的策略根本没有被测试过;它只是被拟合到有利条件。

从回测到实盘:监控衰减与漂移

从回测到实盘交易的过渡是许多据称经验证的策略走向终结的地方。实盘市场引入了回测无法完全捕捉的摩擦:变化的流动性、演变的参与者行为、以及市场微观结构的结构性转变。在历史测试中表现良好的策略可能在部署后迅速看到其优势衰减,不是因为回测不诚实,而是因为市场已经改变。

衰减最可靠的早期预警是实盘与回测表现之间的分歧。如果实盘 Sharpe ratio 在前三个月内降至回测比率的百分之五十以下,这是一个强烈信号,表明优势不如研究表明的那样稳健。但仅仅表现分歧是不够的;研究者还必须监控策略的交易行为是否改变。交易频率、持有期和仓位大小是否与回测假设一致?如果实盘策略与回测版本交易不同,分歧可能表明适应问题而非市场变化。

系统化的实盘监控框架应该追踪多个维度:相对于回测预期的绩效指标、交易分布特征、执行质量指标、以及市场状态指标。当偏差超过预定阈值时,框架应该触发审查流程,确定策略是否应该修改、缩减或停止。这种监控不是研究失败的标志;它是承认所有策略都面临有限寿命,而研究者的工作是在策略过时变成灾难性之前检测到它。

回测评估可信度检查清单

  • 记录测试的策略变体总数,包括所有参数组合和规则变化。没有这个计数,研究就是不完整的。
  • 使用测试假设与数据点的比率计算回测过拟合概率。如果这个概率超过百分之二十,结果应该被当作推测性的。
  • 保留至少百分之二十的数据作为真正的保留集,在搜索过程中从未使用。只在这个集合上测试最终选中的策略。
  • 实施带清除和隔离的滚动前推测试,防止训练和测试窗口之间的信息泄漏。
  • 用包括佣金、价差、滑点和融资费用在内的现实成本假设重新运行回测。
  • 验证回测跨越至少两个不同的市场状态,包括一个与资产类别相关的重大压力期。
  • 审计整个数据管道的时间戳对齐、数据刷新规则、以及潜在的前视偏差来源。
  • 在前九十天内比较实盘表现与回测预期。如果实盘 Sharpe 降至回测 Sharpe 的百分之五十以下,触发全面审查。
  • 监控实盘交易中的交易分布、持有期和仓位大小,以验证与回测假设的一致性。
  • 基于实盘表现分歧建立策略修改、缩减或终止的预定阈值。
本文仅用于教育与研究交流,不构成投资建议。所有交易策略都可能在不同市场环境下失效。