20. 绩效评估体系:年化收益率、夏普比率、卡玛比率、最大回撤

做量化交易,尤其是基差套利,最怕什么?

怕策略回测曲线漂亮得像假图,实盘一跑就崩。我见过太多人,回测年化50%,实盘三个月亏掉30%。为什么?因为绩效评估体系没搭好。

今天咱们就聊聊四个核心指标:年化收益率、夏普比率、卡玛比率、最大回撤。这四个指标,说白了就是给策略做「体检」——有没有病、病多重、能不能治。

20.1 年化收益率:别被数字骗了

年化收益率,大家都会算。但我要提醒你一点:基差套利的年化收益率,跟股票趋势策略完全不是一回事

股票策略的年化,往往靠的是「择时」——猜对方向就赚。基差套利呢?赚的是「价差回归」的钱。我习惯把年化收益率拆成两部分看:

  • 基础收益:来自价差均值回归的稳定部分
  • 超额收益:来自极端行情下的波动捕捉

举个例子。我做过一个螺纹钢期现套利策略,年化收益率18%。但仔细一拆,基础收益只有12%,剩下6%来自一次「交割月逼仓」行情。这种超额收益,明年还能不能复制?不好说。

核心公式

年化收益率 = (1 + 总收益率) ^ (252 / 交易天数) - 1

注意:基差套利通常用252个交易日,而不是365天。因为周末和节假日没有交易,算进去会稀释真实收益。

我的习惯:回测时至少看3年年化。1年以内的年化,我基本不信。为什么?因为基差套利可能一整年都在震荡,突然某个月爆发一次,年化就虚高了。

20.2 最大回撤:你的心理底线在哪

最大回撤,就是策略从最高点跌到最低点的幅度。听起来简单,但很多人理解错了。

我曾经犯过一个错:回测时最大回撤只有5%,觉得稳了。结果实盘遇到一次「黑天鹅」——某品种突然升水,价差拉大到历史极值,回撤直接干到12%。

为什么会这样?因为回测数据里没有包含这种极端情况。所以我现在看最大回撤,会额外关注两点:

  1. 回撤持续时间:跌了多久才涨回来?超过3个月的回撤,心理压力极大。
  2. 回撤发生频率:一年发生几次?如果每年都来一次10%的回撤,那这个策略的「稳定性」就有问题。

避坑指南:我曾经用「滚动窗口法」计算最大回撤,发现不同窗口期结果差异很大。建议用「全局最大回撤」+「最近12个月最大回撤」两个指标一起看。全局的告诉你历史最差情况,近期的告诉你当前风险水平。

20.3 夏普比率:收益与风险的平衡

夏普比率 = (策略收益率 - 无风险利率) / 策略波动率

说白了,就是每承担一单位风险,能换来多少超额收益。夏普比率大于1,算及格;大于2,算优秀;大于3,你要怀疑是不是数据出错了。

但基差套利的夏普比率,有个坑:波动率被低估

你想想看,基差套利大部分时间都在窄幅震荡,波动率很低。但一旦遇到极端行情,波动率会瞬间放大。如果用全样本计算波动率,会把这种「尖峰肥尾」特征平滑掉,导致夏普比率虚高。

我个人的做法是:

  • 用「半衰期加权波动率」替代简单波动率——给近期数据更高权重
  • 同时计算「滚动夏普比率」——看夏普比率随时间的变化趋势

代码示例:滚动夏普比率计算

import numpy as np
import pandas as pd

def rolling_sharpe(returns, window=252, risk_free=0.03):
    """
    计算滚动夏普比率
    returns: 日收益率序列
    window: 滚动窗口(默认252个交易日)
    risk_free: 无风险利率(年化)
    """
    # 计算滚动均值和标准差
    rolling_mean = returns.rolling(window).mean() * 252
    rolling_std = returns.rolling(window).std() * np.sqrt(252)
    
    # 计算夏普比率
    sharpe = (rolling_mean - risk_free) / rolling_std
    
    return sharpe

# 使用示例
daily_returns = pd.Series([...])  # 你的日收益率数据
sharpe_series = rolling_sharpe(daily_returns)
print(f"最新夏普比率: {sharpe_series.iloc[-1]:.2f}")
print(f"夏普比率波动范围: {sharpe_series.min():.2f} ~ {sharpe_series.max():.2f}")

20.4 卡玛比率:更「务实」的指标

卡玛比率 = 年化收益率 / 最大回撤

这个指标,我个人非常喜欢。为什么?因为它直接告诉你:每承受1%的回撤,能换来多少收益

举个例子:

策略 年化收益率 最大回撤 夏普比率 卡玛比率
策略A 15% 5% 1.5 3.0
策略B 20% 15% 1.8 1.33

策略B的夏普比率更高,但卡玛比率更低。你选哪个?

我选策略A。因为基差套利追求的是「稳健」,不是「刺激」。策略B虽然收益高,但15%的回撤,万一遇到连续亏损,心态很容易崩。而策略A的回撤只有5%,扛得住。

我的经验值:基差套利策略,卡玛比率大于2算合格,大于3算优秀。如果卡玛比率小于1,建议重新审视策略逻辑——可能风险控制没做好。

20.5 四个指标的综合运用

单独看任何一个指标,都有局限性。我习惯用「四维评分法」:

  1. 年化收益率:看绝对值,但更要看稳定性(逐年对比)
  2. 最大回撤:看绝对值,同时看回撤恢复时间
  3. 夏普比率:看相对值,但要用滚动方式计算
  4. 卡玛比率:看「收益/回撤」性价比

四个指标综合打分,才能判断一个策略到底行不行。

核心逻辑图:绩效评估体系

绩效评估体系 年化收益率 最大回撤 夏普比率 卡玛比率 综合评分 = 年化收益率 × 0.3 + 卡玛比率 × 0.3 + 夏普比率 × 0.2 + (1/最大回撤) × 0.2

20.6 实战中的注意事项

最后,分享几个实战中容易踩的坑:

  • 不要只看年化:年化20%但最大回撤30%,这种策略你敢用吗?
  • 夏普比率不是越高越好:我见过有人用「过拟合」把夏普做到5以上,实盘直接崩。夏普比率超过3,就要怀疑是不是数据窥探了。
  • 卡玛比率要结合资金规模看:小资金做基差套利,卡玛比率容易做高。资金大了,冲击成本一上来,卡玛比率会明显下降。
  • 回撤恢复时间比回撤幅度更重要:回撤10%但一个月就涨回来,和回撤8%但半年回不来,后者更可怕。

重要提醒:绩效评估不是「一次性」工作。我每周都会重新计算这四个指标,跟历史数据对比。如果发现某个指标突然恶化,比如夏普比率从2.0掉到1.2,我会立刻暂停策略,排查原因。别等到亏钱了再后悔。

嗯,这四个指标讲完了。记住一句话:没有完美的指标,只有合理的组合。年化收益率告诉你赚了多少,最大回撤告诉你亏了多少,夏普比率告诉你效率如何,卡玛比率告诉你性价比。四个指标一起看,才能看清策略的全貌。

公众号:蓝海资料掘金营,微信deep3321