第27章 绩效归因分析:收益来源分解、夏普比率、最大回撤

各位,波动率曲面套利策略跑起来了,回测曲线也挺漂亮。但问题来了——这钱到底是怎么赚的?

我见过太多团队,策略赚钱时兴高采烈,一亏钱就抓瞎。说白了,就是没做绩效归因。今天咱们就把这块硬骨头啃下来。

27.1 收益来源分解:拆开黑箱看本质

我个人习惯,做任何策略都要先问三个问题:

  • 赚的是方向的钱,还是波动的钱?
  • 是曲面形态的钱,还是时间价值的钱?
  • 有没有隐含的尾部风险在替你买单?

对于跨品种套利,收益来源可以拆成四块:

收益来源 驱动因素 典型特征
曲面斜率收益 不同期限隐含波动率差异 均值回复,周期性强
曲面曲度收益 虚值/实值期权定价偏差 尾部事件时爆发
跨品种价差收益 相关性结构变化 趋势性,但回撤大
时间衰减收益 Theta 收割 稳定但容量有限

具体怎么拆? 我一般用回归法:

# 收益分解示例(Python伪代码)
import statsmodels.api as sm

# 假设我们有每日收益序列
daily_returns = strategy.pnl.diff()

# 构造因子暴露矩阵
factors = pd.DataFrame({
    'slope_delta': slope_changes,      # 曲面斜率变化
    'curvature_delta': curv_changes,   # 曲度变化
    'spread_delta': spread_changes,    # 品种价差变化
    'theta_decay': theta_values        # 时间衰减
})

# 多元线性回归
model = sm.OLS(daily_returns, sm.add_constant(factors))
results = model.fit()

print(results.summary())
# 看每个因子的系数和显著性
关键点: 如果回归的 R² 低于 0.7,说明你的收益还有大量无法解释的部分。这时候要小心——可能是运气,也可能是你没发现的隐性风险。

27.2 夏普比率:别被数字骗了

夏普比率,量化圈最常用的指标。但说实话,很多人用错了

标准公式大家都懂:

Sharpe = (Rp - Rf) / σp

但这里有几个坑,我一个个说:

  1. 计算频率问题:日频夏普和年化夏普差很多。我习惯用日频数据算,再年化。年化因子 = sqrt(252)。
  2. 收益率分布假设:夏普比率假设收益是正态分布。但期权策略的收益分布,你想想看——有偏、厚尾,夏普比率会失真。
  3. 无风险利率选择:用国债收益率?还是用 Libor?我个人建议用隔夜拆借利率,更贴近实际资金成本。
避坑指南: 我曾经见过一个策略,夏普比率高达 3.5,但最大回撤只有 2%。后来一查,是因为用了月度数据计算,而且没考虑交易成本。换成日频数据后,夏普直接掉到 1.2。所以——永远用最高频的数据算夏普

另外,我建议同时看 Sortino 比率(只考虑下行波动)和 Calmar 比率(收益/最大回撤)。这三个指标放一起,才能看清策略的真实风险收益特征。

27.3 最大回撤:最诚实的风险指标

最大回撤,说白了就是你最多亏过多少钱。这个数字很残酷,但很诚实。

计算方式不复杂:

# 最大回撤计算
def max_drawdown(equity_curve):
    rolling_max = equity_curve.cummax()
    drawdown = (equity_curve - rolling_max) / rolling_max
    return drawdown.min()

# 回撤持续时间
def drawdown_duration(equity_curve):
    # 记录从峰值到恢复的天数
    peak = equity_curve[0]
    duration = 0
    max_duration = 0
    for val in equity_curve:
        if val >= peak:
            peak = val
            duration = 0
        else:
            duration += 1
            max_duration = max(max_duration, duration)
    return max_duration

但光看最大回撤还不够。我一般会看三个维度:

  • 回撤深度:最大亏损比例
  • 回撤时长:从峰值到恢复需要多久
  • 回撤频率:一年发生几次超过 5% 的回撤

举个例子,两个策略:

  • 策略 A:最大回撤 15%,但 3 天就恢复
  • 策略 B:最大回撤 10%,但需要 6 个月恢复

你选哪个?我个人选 A。因为回撤时长直接影响资金利用率,也影响你的心理承受能力。

27.4 知识体系框架

下面这张图,是我做绩效归因的核心逻辑:

绩效归因分析框架 收益来源分解 风险调整收益 回撤分析 曲面斜率贡献 曲度贡献 价差贡献 时间衰减贡献 夏普比率 Sortino 比率 Calmar 比率 信息比率 最大回撤深度 回撤持续时间 回撤频率 恢复时间 综合绩效评估 收益可持续性 + 风险可控性 + 资金容量

27.5 实战中的几个要点

最后,分享几个我在实战中总结的经验:

我的习惯: 每周做一次绩效归因报告。不是等亏钱了才去查,而是持续监控。如果连续两周收益来源从「曲面斜率」变成「时间衰减」,说明市场结构变了,策略可能需要调整。

关于夏普比率的陷阱——我记得有一次,一个策略夏普 2.8,但仔细一看,是因为它在大部分时间空仓,只有少数几天有收益。这种策略的夏普没有意义。我建议同时看交易频率持仓时间

关于最大回撤的认知——嗯,这里要注意:最大回撤是历史数据,不代表未来。但如果你发现策略的回撤集中在某个特定市场环境下(比如波动率飙升时),那就要考虑加对冲了。

好了,绩效归因这块就聊到这儿。记住一句话:不能解释的收益,就是隐藏的风险


公众号:蓝海数据掘金营,微信 deep3321