不可信。你挑的参数越多,那个夏普比率就越不能按它字面的意思来读。它很可能是从几十次、几百次尝试里挑出来的"最幸运者",而不是策略真实盈利能力的估计。学术上把这个问题叫回测过拟合,而夏普比率恰恰是对这个问题最敏感的指标之一。
挑参数为什么会让夏普比率失真
回测挑参数的本质,是在同一段历史数据上反复搜索,直到找到一个让历史收益曲线最好看的组合。问题在于,历史数据里既有真实的信号,也有大量随机噪声。当你试的参数足够多,总有一组参数能恰好拟合住那些噪声,让回测曲线看起来很漂亮,但这组参数在未来大概率失效。
一项基于 Quantopian 平台 888 个算法策略的研究给出了很直接的证据:回测夏普比率对样本外表现的预测力极弱,R² 小于 0.025。也就是说,你看到的回测夏普,几乎不能告诉你这个策略在实盘里会怎样。更关键的是,同一研究发现,一个策略被回测的次数越多,回测与样本外表现的差距就越大。你挑的参数越多,这个差距就越可能被放大。
多少参数算"太多"
没有一个绝对的数字,因为它取决于你的数据长度和交易笔数。但有一个可以参考的经验法则:样本量-参数比法则。一份中文量化材料提出的标准是,交易笔数除以参数数量应不低于 10,即每 10 笔交易最多优化 1 个参数。如果你只有几百笔交易,却调了五六个参数,过拟合的风险就已经很高了。
另一个来自业界的粗略共识是:回测夏普大于 2,很大概率是过拟合的产物;大于 3 则几乎可以确定是过度优化了收益曲线的结果。这个说法不是学术定理,但它反映了一个实际观察:真正稳健的策略,夏普通常不会高得离谱。
修正夏普比率:给"挑参数"打个折
既然直接看夏普会高估,就需要一个修正方法。Bailey 和 López de Prado 提出的修正夏普比率(Deflated Sharpe Ratio, DSR) 就是干这个的。它的逻辑是:当你尝试了 N 组参数,并报告其中最好的那个夏普时,这个数字的期望值本身就会因为"取最大值"而偏高。DSR 根据你的尝试次数,把这个偏高的夏普"折"回去,告诉你修正后的数字是否还显著大于零。
你不需要自己去算 DSR,但你需要知道它的存在。如果你用的回测工具或平台没有提供类似的多重检验修正,那么你看到的夏普就是一个未打折的、偏乐观的数字。一个实际的例子:某比特币交叉策略从 72 组参数中选出最佳组合,原始夏普是 1.41,但经过 72 次尝试的修正后,夏普降到 0.995,修正后的置信度只有 99.5%——勉强超过"可能是运气"的门槛。
比夏普更值得看的信号
如果你已经挑了很多参数,与其纠结那个夏普数字,不如看下面几个更能暴露问题的东西。
参数敏感性。 把你选中的"最佳参数"稍微动一下,比如窗口期从 20 改成 22,如果夏普从 1.5 直接掉到 0.6,说明你找到的是一个孤立的峰值,大概率是拟合噪声的结果。稳健的策略应该在一个参数区间内表现接近,而不是只有一个点好看。
样本外表现。 如果你在挑参数时用了全部数据,那你就没有样本外数据可看。正确的做法是留出一段数据完全不参与参数选择,最后只用来检验。但要注意,如果你反复用样本外数据来决定"要不要换一组参数",样本外也就变成了样本内。
策略的合理性。 一份来自 CFM 的实务报告提到,他们应对过拟合的方式是在看到数据之前就想好策略逻辑,然后用标准工具构建回测,不做参数微调。如果策略不赚钱就放弃,而不是想办法"修"到赚钱。如果你的策略逻辑在你调参数之前并不成立,调完之后成立的,很可能只是历史数据里的巧合。
我的判断
如果你已经在回测里挑了很多参数,那个夏普比率应该被当作一个上限,而不是一个预期。它告诉你"历史上最好能好到什么程度",但真实可实现的水平通常明显更低。一项对 215 个商业推广策略的研究发现,回测与实盘夏普比率的中位数衰减幅度是 73%。也就是说,一个回测夏普 2.0 的策略,实盘夏普中位数可能不到 0.6。
更实际的做法是:少挑参数,多留样本外数据,把注意力放在策略逻辑是否说得通上。如果逻辑本身不成立,再高的夏普也只是历史噪声的倒影。如果你已经挑完了,至少用参数敏感性检查一下,看看你找到的是一个稳定的平台,还是一根孤立的针尖。



