4、优化目标:夏普比率、最大回撤、年化收益率、收益风险比、多目标权衡

做套利策略优化,最怕什么?

怕你只盯着一个指标看。

我见过太多人,把年化收益率调到最高,结果回撤大得吓人。也见过有人死磕夏普比率,策略稳得像银行存款,但收益连手续费都覆盖不了。说白了,优化目标这件事,就是个多目标权衡的艺术。

4.1 四个核心指标,一个都不能少

我们先过一遍这四个指标。每个我都踩过坑,你听听看。

4.1.1 夏普比率

夏普比率衡量的是「每承担一单位风险,能换来多少超额收益」。公式不复杂:

Sharpe = (策略年化收益率 - 无风险利率) / 策略年化波动率

我个人习惯把无风险利率设成2%左右,用十年期国债收益率做参考。夏普比率大于1,算及格;大于2,算优秀;大于3,嗯,你要小心过拟合了。

我的经验: 夏普比率高不代表策略好。我在一个欧元兑美元套利策略里,夏普做到了3.8,结果实盘跑了一个月就崩了——因为样本外波动率突然放大,夏普瞬间腰斩。

4.1.2 最大回撤

最大回撤,就是你账户从最高点到最低点,亏了多少百分比。这个指标,我建议你重点关注。

为什么?因为回撤直接影响你的心态。我曾经有个策略,年化收益25%,最大回撤只有8%,我觉得稳了。结果实盘遇到一次黑天鹅,回撤瞬间拉到18%,我整晚没睡着。后来我学乖了,最大回撤必须控制在心理承受范围内。

注意: 最大回撤是「过去发生的」,不代表未来不会更大。我建议你用蒙特卡洛模拟,看看极端情况下的回撤分布。

4.1.3 年化收益率

这个不用多解释,就是你一年赚多少百分比。但我要提醒你:别只看绝对值。

举个例子,一个策略年化30%,最大回撤25%,另一个年化15%,最大回撤5%。你选哪个?我选第二个。因为回撤25%意味着你本金可能亏掉四分之一,很多人扛不住。

4.1.4 收益风险比

收益风险比 = 年化收益率 / 最大回撤。这个指标很直观,它告诉你「每亏一块钱,能赚几块钱」。

我个人觉得,收益风险比大于2才算合格。大于3,说明策略比较稳健。我做过一个英镑兑日元的套利策略,收益风险比做到了4.5,但样本外只有2.1——嗯,又是过拟合的锅。

4.2 多目标权衡:你不可能什么都想要

好了,四个指标都讲完了。现在问题来了:怎么同时优化它们?

答案是:你做不到。

你想想看,提高年化收益率,往往意味着要承担更大风险,最大回撤就会变大。压低最大回撤,又可能牺牲收益。夏普比率和收益风险比之间,也存在类似矛盾。

那怎么办?我分享三个方法:

  1. 加权打分法:给每个指标设一个权重,然后算综合得分。比如夏普比率占30%,最大回撤占30%,年化收益率占20%,收益风险比占20%。权重怎么设?看你的风险偏好。
  2. 帕累托前沿法:画出所有参数组合的帕累托前沿,然后选一个你「最舒服」的点。说白了,就是先排除那些明显差的组合,再在剩下的里面挑。
  3. 分层优化法:先保证最大回撤不超过某个阈值,再在这个约束下最大化夏普比率或年化收益率。我比较喜欢这个方法,因为它更贴近实战。
核心思路: 不要追求「最优解」,要追求「满意解」。在量化交易里,完美是敌人,够用是朋友。

4.3 实战:用Python做多目标优化

光说不练假把式。我们写一段代码,演示怎么用加权打分法做多目标优化。

import numpy as np
import pandas as pd

def multi_objective_score(sharpe, max_drawdown, annual_return, risk_return_ratio,
                          weights=[0.3, 0.3, 0.2, 0.2]):
    """
    多目标加权打分
    weights: [夏普权重, 最大回撤权重, 年化收益权重, 收益风险比权重]
    """
    # 最大回撤是越小越好,所以取倒数或取负值
    max_dd_score = -max_drawdown  # 回撤越小,得分越高
    
    # 归一化(这里假设输入已经是合理范围)
    scores = np.array([sharpe, max_dd_score, annual_return, risk_return_ratio])
    
    # 加权求和
    total_score = np.dot(scores, weights)
    return total_score

# 示例:两个策略对比
strategy_a = multi_objective_score(1.8, -0.12, 0.20, 1.67)
strategy_b = multi_objective_score(2.2, -0.18, 0.28, 1.56)

print(f"策略A综合得分: {strategy_a:.2f}")
print(f"策略B综合得分: {strategy_b:.2f}")

你看,策略A夏普低一点,但回撤小;策略B收益高,但回撤大。加权打分后,你就能直观比较了。

避坑指南: 我曾经把权重设成[0.4, 0.1, 0.4, 0.1],结果优化出来的策略回撤巨大。后来我才意识到,最大回撤的权重不能太低,否则你就是在「赌」。

4.4 知识体系图

下面这张图,帮你理清多目标优化的核心逻辑:

多目标优化知识体系 夏普比率 最大回撤 年化收益率 收益风险比 加权打分法 帕累托前沿法 满意解

4.5 我的建议

最后,给你三个实操建议:

  • 先定回撤底线:不管其他指标多漂亮,最大回撤超过你的承受范围,直接淘汰。我个人的底线是15%。
  • 夏普和收益风险比二选一:这两个指标高度相关,没必要同时优化。我习惯用收益风险比,因为它更直观。
  • 年化收益率别贪:超过30%的年化收益,往往伴随着过拟合风险。我见过太多人追高收益,最后亏得底裤都不剩。
记住: 优化目标不是数学题,是选择题。你选什么,决定了你的策略能走多远。

专注资料整理