为什么组合夏普的稳定性要高于单个高夏普?
==引言:想通过一招擒龙大法就梦想长期盈利的人,我只能说,你想多了。==
一、为什么私募不喜欢高夏普单策略?
1. 高夏普意味着显著的优势
比如夏普比率=3 或更高,这通常意味着策略非常赚钱又不怎么波动。
然而这种策略容易被别人发现,因为信号太明显、回测曲线太好看、某些因子一眼就能看出来,还没有等你赚钱就很快被别人反向收割了。
2. 卷来卷去会快速失效
一旦市场上的人都用这个策略,阿尔法就被榨干,比如套利空间越来越小、滑点越来越大。
所以为了不愿“跟别人卷”——高级的量化私募不是不想赚这个钱,而是知道这个钱赚不长久。
二、他们为什么喜欢“夏普为1,相关性为0(理想状态下)”的多个策略?
因为:
一个稳定但不惊艳的策略,比如夏普 = 1,是相对可靠、不容易被别人抄走的。
如果你有多个彼此互不相关的策略(相关性接近0),那组合后可以显著提升整体夏普!
三、组合夏普比率原理
假设你有 n 个策略,每个策略的:
夏普比率为: S=1
两两之间相关性为: ρ=0
等权配置,每个策略权重为 $\frac{1}{n}$
组合夏普比率公式:
$S_{\text{组合}} = \sqrt{n} \cdot S \quad \text{(当相关性为0,等权重时)}$
比如:
1个策略,夏普 = 1
4个策略,每个夏普 = 1,组合夏普 = √4 × 1 = 2
25个策略,每个夏普 = 1,组合夏普 = √25 × 1 = 5
这就是“多个中等质量策略 + 低相关性 = 极强组合策略”的原理。
推导过程
给定随机变量 $X_i$ 和 Xj,它们的协方差 Cov(Xi,Xj) 与相关性系数 ρij 的关系为:
$Cov(Xi,Xj)=ρij⋅σi⋅σj$
其中:
- ρij 是 Xi 和 Xj 的皮尔逊相关系数(取值范围为 [−1,1]);
- σi 和 σj 分别是 Xi 和 Xj 的标准差(σi=Var(Xi))。
假设:
有 n 个策略,每个策略:
年化收益率为 $\mu$
年化波动率为 $\sigma$
所以夏普比率:$S = \frac{\mu}{\sigma}$
策略之间相关性为 $\rho$,等权重配置
一、组合收益:
组合收益是各策略收益的加权和(等权重):
$\mu_{\text{组合}} = \sum_{i=1}^n \frac{1}{n} \mu = \mu$
二、组合波动率(方差):
组合方差公式为:
$\sigma^2_{\text{组合}} = \frac{1}{n^2} \left( n\sigma^2 + n(n-1)\rho\sigma^2 \right)$
解释:
n 个对角线项:$\sigma^2$
n(n-1) 个非对角线项:$\rho\sigma^2$
整理一下:
$\sigma_{\text{组合}} = \sigma \cdot \sqrt{ \frac{1 + (n-1)\rho }{n} }$
三、组合夏普比率:
$S_{\text{组合}} = \frac{\mu_{\text{组合}}}{\sigma_{\text{组合}}} = \frac{\mu}{\sigma} \cdot \sqrt{ \frac{n}{1 + (n-1)\rho} }$
如果每个策略夏普为 1(即 $\mu = \sigma$),就得到:
$S_{\text{组合}} = \sqrt{ \frac{n}{1 + (n-1)\rho} }$
特别情况:策略之间完全不相关 $\rho = 0$
$S_{\text{组合}} = \sqrt{n}$
四、直观理解
假设你是一个打篮球的人,你投篮水平中等,但你还有中等水平的传球、防守、篮板、抢断能力 —— 每项都不是最顶尖,但互相不重叠。
你组成一个团队时:
如果你找5个“投篮特别强”的人,他们很可能抢位置、重复劳动,甚至互相影响。
如果你找5个各自擅长不同技能的人,你的团队就会非常稳健又全面。
这就像:
高夏普单策略 = 明星球员,但容易被对手盯死;
夏普为1但低相关 = 多个角色球员组合,打出冠军战力。
五、现实中的好处
组合更稳定:不同策略在不同市场阶段表现好坏互补,波动更小。
更抗风险:一个策略失效时,其他策略仍能发挥作用。
更耐久:不会因为一个策略“被市场榨干”而全面崩盘。
六、程序
import numpy as np
def compute_combined_sharpe(n, rho):
"""
n: 策略个数
rho: 策略间相关系数(假设两两相等)
"""
# 每个策略的年化收益 = 1,方差 = 1,标准差 = 1
mu = np.ones(n) # 收益率向量
sigma = np.ones(n) # 标准差向量
# 协方差矩阵
cov_matrix = np.full((n, n), rho)
np.fill_diagonal(cov_matrix, 1.0)
# 等权重向量
w = np.full(n, 1/n)
# 组合预期收益
portfolio_return = np.dot(w, mu)
# 组合波动率
portfolio_vol = np.sqrt(np.dot(w, np.dot(cov_matrix, w)))
# 组合夏普比率
portfolio_sharpe = portfolio_return / portfolio_vol
return portfolio_sharpe
# 不同策略数量下组合夏普比率(相关性为0)
sharpe_values = [compute_combined_sharpe(n, rho=0) for n in range(1, 21)]
sharpe_values
结果:
[1.0,
1.414213562373095,
1.7320508075688774,
2.0,
2.2360679774997894,
2.4494897427831783,
2.6457513110645903,
2.82842712474619,
3.0,
3.162277660168379,
3.3166247903554,
3.464101615137754,
3.605551275463989,
3.7416573867739404,
3.872983346207417,
4.0,
4.123105625617661,
4.2426406871192865,
4.358898943540672,
4.472135954999578]


评论