4、过拟合的量化指标:夏普比率衰减、最大回撤异常、收益分布偏态、策略稳定性系数
说实话,判断一个策略是不是过拟合了,不能光靠感觉。我见过太多人拿着回测曲线兴高采烈,结果实盘一个月就崩了。为什么?因为回测里的漂亮数字,很多都是过拟合的假象。
那怎么量化地判断呢?我个人习惯用四个核心指标来诊断。它们就像体检报告里的四项关键指标,任何一个亮红灯,都得警惕。
4.1 夏普比率衰减
夏普比率大家都不陌生,衡量的是风险调整后的收益。但过拟合的策略有个典型特征:样本内夏普极高,样本外迅速跳水。
我在项目中遇到过这样一个案例:一个策略在回测期夏普高达3.5,看起来完美无瑕。结果上线后,夏普直接掉到0.6。这就是典型的过拟合——模型把历史数据里的噪声当成了规律。
怎么量化这个衰减?我建议用这个公式:
衰减率 = (样本内夏普 - 样本外夏普) / 样本内夏普
我个人习惯把衰减率超过50%的策略直接打入冷宫。你想想看,如果样本外表现只有样本内的一半不到,那这个策略的稳定性就太差了。
- 衰减率 < 30%:可接受
- 衰减率 30% - 50%:需要谨慎
- 衰减率 > 50%:大概率过拟合
嗯,这里要注意一点:夏普比率本身对样本长度敏感。如果样本外时间太短,算出来的衰减率可能不准确。我一般要求样本外至少要有200个交易日的数据。
4.2 最大回撤异常
最大回撤这个指标,过拟合的策略往往有两个极端:要么回撤小得离谱,要么回撤集中在某个特定时间段。
正常的策略,回撤应该是相对均匀分布的。但过拟合的策略,它的回撤往往集中在样本外的某个极端行情里。为什么会这样?因为模型在回测时把各种极端情况都"拟合"进去了,但实际遇到没见过的行情时,就原形毕露了。
我常用的一个诊断方法是:比较样本内和样本外的最大回撤比值。
| 诊断指标 | 正常范围 | 过拟合警示 |
|---|---|---|
| 样本内最大回撤 | 5% - 15% | < 3%(过于完美) |
| 样本外/样本内回撤比 | 1.0 - 2.0 | > 3.0 |
| 回撤集中度 | 分散在多个时段 | 集中在1-2个时段 |
我曾经见过一个策略,样本内最大回撤只有1.2%,我当时就觉得不对劲。果然,样本外回撤直接干到了8.5%。说白了,回撤太小有时候反而是坏事,说明策略可能过度优化了。
4.3 收益分布偏态
这个指标可能很多人不太关注,但我觉得它特别能反映问题。过拟合的策略,收益分布往往呈现严重的正偏态或负偏态。
正常策略的收益分布应该接近正态分布,或者至少是对称的。但过拟合的策略呢?它可能大部分时间小赚,偶尔大亏(负偏态);或者大部分时间小亏,偶尔大赚(正偏态)。
我一般用偏度系数(Skewness)来量化:
偏度系数 = 0:对称分布(理想)
偏度系数 > 0.5:正偏态(警惕)
偏度系数 < -0.5:负偏态(警惕)
你想想看,如果一个策略90%的交易都是赚钱的,但偶尔一次亏损就把之前所有利润都吐回去了,这能叫好策略吗?这就是典型的负偏态过拟合。
4.4 策略稳定性系数
这个指标是我自己比较看重的。它衡量的是策略在不同市场环境下的表现一致性。
具体怎么算?我习惯把样本数据分成多个子区间(比如按年份分),然后计算每个子区间的夏普比率,再算这些夏普比率的标准差。标准差越小,说明策略越稳定。
稳定性系数 = 1 - (各子区间夏普比率的标准差 / 平均夏普比率)
这个系数的范围在0到1之间。越接近1,说明策略越稳定;越接近0,说明策略在不同时间段的表现差异越大。
我个人习惯把稳定性系数低于0.6的策略直接淘汰。你想想看,如果一个策略在不同年份的表现天差地别,那你怎么能相信它未来还能赚钱?
4.5 综合诊断框架
这四个指标不是孤立的,我建议把它们放在一起看。下面是我常用的一个诊断框架:
我的判断逻辑是这样的:如果四个指标中有两个以上亮红灯,那这个策略基本可以判定为过拟合。如果只有一个指标异常,我会再观察一下,可能是数据问题或者市场环境特殊。
- 夏普比率衰减:看样本内外的差距
- 最大回撤异常:看回撤的幅度和集中度
- 收益分布偏态:看收益是否对称
- 策略稳定性系数:看不同时间段的表现一致性
这四个指标配合使用,基本能覆盖过拟合的各个维度。我个人建议,每次做完回测,都把这四个指标算一遍,形成习惯。嗯,虽然麻烦点,但能帮你避开很多坑。