第四节:诊断工具1——回测绩效指标辨析(夏普比率、最大回撤、胜率)的陷阱
做量化策略,谁还没被几个漂亮数字骗过?
我刚开始做策略研究那会儿,看到夏普比率3.0、最大回撤5%、胜率70%的回测报告,眼睛都直了。心想:这不就是印钞机吗?结果实盘一跑,三个月亏掉一半。后来我才明白——回测指标本身没问题,问题出在我们太容易相信它们了。
今天咱们就来扒一扒,夏普比率、最大回撤、胜率这三个最常见的指标,到底藏着哪些坑。
1. 夏普比率:最容易被“美化”的指标
夏普比率衡量的是“每承担一单位风险,能获得多少超额收益”。公式很简单:
Sharpe Ratio = (Rp - Rf) / σp
其中Rp是策略年化收益,Rf是无风险利率,σp是收益率的年化标准差。
听起来很合理对吧?但陷阱藏在分母里。
真实市场的收益分布,尾部极厚。我见过一个策略,99%的时间都在赚小钱,1%的时间亏掉所有利润。它的标准差看起来不大,夏普比率能到2.5。但那个1%的尾部风险,才是真正的杀手。
同样的策略,用日收益率算夏普是1.2,换成周收益率算就变成1.8,用月收益率能到2.3。为什么?因为频率越低,波动率被平滑得越厉害。我个人习惯:永远用日频数据计算夏普比率,并且至少用3年以上的数据。
2. 最大回撤:最容易被“忽略”的指标
最大回撤,就是从最高点到最低点的跌幅。听起来很直观,但它的陷阱更隐蔽。
举个例子:
| 策略 | 年化收益 | 最大回撤 | 夏普比率 |
|---|---|---|---|
| 策略A | 25% | 8% | 1.8 |
| 策略B | 20% | 5% | 2.1 |
看起来策略B更好对吧?但你知道吗,策略A的最大回撤发生在第1年,之后3年稳步上涨。策略B的最大回撤发生在最后1个月——也就是说,你刚实盘就遇到了历史最大回撤。
我曾经见过一个策略,回测5年最大回撤只有3%。但仔细一看,最后6个月的回撤是2.9%——也就是说,策略在回测结束前刚刚经历了一次接近历史极值的回撤。这种策略你敢实盘吗?
3. 胜率:最容易被“误解”的指标
胜率,就是赚钱的交易次数占总交易次数的比例。很多人觉得胜率越高越好,其实不然。
咱们来算一笔账:
- 策略X: 胜率80%,平均盈利1%,平均亏损5%
- 策略Y: 胜率40%,平均盈利5%,平均亏损1%
哪个更好?
策略X的期望收益 = 80% × 1% - 20% × 5% = 0.8% - 1% = -0.2%
策略Y的期望收益 = 40% × 5% - 60% × 1% = 2% - 0.6% = +1.4%
看到了吗?胜率80%的策略居然是亏钱的!
很多新手喜欢追求高胜率,结果做出来的策略全是小赚大亏。我见过一个高频策略,胜率75%,但每次亏钱都是亏大的。回测曲线看起来很美,实盘一个月就爆仓了。
还有一个更隐蔽的陷阱:胜率可以被参数调整“伪造”。你把止损设得很小,止盈设得很大,胜率自然就高了——但盈亏比会变得极差。这种策略在回测里表现不错,实盘里遇到一次滑点就完蛋。
4. 三个指标的综合陷阱:相关性
单独看每个指标都有问题,那把它们放一起看总行了吧?
嗯,也不行。因为这三个指标之间是相互关联的。
举个例子:你调整了一个参数,让最大回撤从10%降到了5%。看起来是好事对吧?但你可能没注意到,为了降低回撤,你减少了仓位,导致夏普比率从1.8降到了1.2。更糟糕的是,你为了平滑曲线,增加了交易频率,结果胜率从55%降到了48%。
这就是典型的“按下葫芦浮起瓢”。
我习惯用一张图来综合评估:
这张图想表达什么?说白了,就是三个指标要同时满足合理区间,而不是某一个特别亮眼。如果一个策略夏普2.0、回撤3%、胜率75%,我反而会怀疑它是不是过拟合了。
5. 实战建议:如何正确使用这三个指标
说了这么多陷阱,那到底该怎么用?我分享几个自己的习惯:
- 夏普比率: 用日频数据计算,至少3年回测期。如果夏普超过2.0,做压力测试——把数据切分成两半,看前后半段的夏普是否稳定。
- 最大回撤: 不光看数值,还要看回撤的恢复时间。如果一个策略最大回撤10%,但花了2年才恢复,那这个策略的流动性风险很大。
- 胜率: 永远和盈亏比一起看。我习惯用期望收益(胜率×平均盈利 - 败率×平均亏损)作为核心指标,而不是单独看胜率。
- 综合判断: 把三个指标画成雷达图,看面积是否均匀。如果某个指标特别突出,其他两个很弱,那这个策略大概率有问题。
最后说一句: 回测指标只是工具,不是真理。我见过太多人在回测里追求完美指标,结果实盘一塌糊涂。记住一句话:回测的目的是发现策略的弱点,而不是证明策略的完美。
好了,这一节就到这里。指标本身没有错,错的是我们太容易相信它们。下一节咱们聊聊另一个诊断工具——参数敏感性分析,看看参数过拟合到底是怎么发生的。