先说结论:夏普比率衡量的是”平均收益 / 整体波动”,而 Rachev 比率衡量的是”最好的日子有多好 / 最坏的日子有多坏”。两个均值、方差完全相同的资产,夏普可以几乎一样,但如果一个是对称正态、另一个是负偏肥尾,Rachev 比率会把这个差异毫不留情地暴露出来——本文的模拟里,两者夏普同为 0.65 左右,Rachev 比率却是 1.05 对 0.72,相差近 50%。对于任何在乎”崩盘那几天到底亏多少”的投资者,这是一个比夏普更贴近痛感的指标。
夏普比率的盲区:方差对上下行一视同仁#
夏普比率的分母是标准差,而标准差有一个众所周知的问题:它对上行波动和下行波动一视同仁。一个经常大涨的策略和一个经常大跌的策略,只要波动幅度对称,标准差就相同。
更隐蔽的问题在尾部。金融收益普遍呈现负偏和超额峰度——卖波动率策略、信用套利、做市策略尤其如此,它们的日收益长期看是”稳定小赚”,但每隔一段时间来一次深度亏损。这类”捡钢镚”策略的方差被大量平静日子稀释,夏普比率可以做得很漂亮,直到那次尾部事件把几年的利润一次抹掉。
学界对这个问题的回应是把风险度量从”二阶矩”换成”尾部条件期望”。Sortino 比率用下行半方差替换标准差,走了半步;Rachev 比率(由 Svetlozar (Zari) Rachev 提出)走了完整的一步:分子和分母全部换成尾部条件期望。
定义:两端尾部的条件期望之比#
设 为资产的(超额)收益随机变量,给定两个尾部水平 (常取 5%),Rachev 比率定义为:
其中:
- ETL(Expected Tail Loss,期望尾部损失):收益分布左尾 分位以下部分的条件期望取负号,也就是常说的 CVaR / ES——“最坏的 比例日子里平均亏多少”;
- ETG(Expected Tail Gain,期望尾部收益):右尾 分位以上部分的条件期望——“最好的 比例日子里平均赚多少”。
直觉非常朴素:上行尾部的火力除以下行尾部的破坏力。Rachev 比率大于 1,意味着极端好日子的平均盈利超过极端坏日子的平均亏损;小于 1 则相反——策略的极端风险收益是不对称地对你不利的。
和夏普比率相比有三个结构性区别:
- 只看尾部,不看中间。分布中间 90% 的日子对 Rachev 比率没有任何贡献。它天生是一个”极端行情性价比”指标;
- 上下行分开计量。正偏(偶尔暴涨)会推高分子,负偏(偶尔暴跌)会推高分母,偏度直接进入指标而不是像夏普那样被方差混掉;
- 分子分母都是一致风险度量(CVaR 型),具有次可加性等良好性质,可以直接放进凸优化框架做组合优化。
实验一:同夏普、不同 Rachev#
构造两个日收益序列,均值和标准差完全对齐(日均 0.05%、日波动 1.2%):资产 A 是正态分布,资产 B 是负偏肥尾的非中心 t 分布(偏度约 -1.9、超额峰度约 26),各生成 20 万个样本。
import numpy as np
from scipy import stats
rng = np.random.default_rng(42)
n = 200_000
mu, sigma = 0.0005, 0.012
# 资产A:正态
A = rng.normal(mu, sigma, n)
# 资产B:负偏肥尾(非中心t,标准化后对齐均值方差)
raw = stats.nct(df=4, nc=-0.8).rvs(n, random_state=123)
B = (raw - raw.mean()) / raw.std() * sigma + mu
def rachev(x, alpha=0.05, beta=0.05):
"""Rachev 比率 = 右尾条件期望 / 左尾条件期望的绝对值"""
lo = np.quantile(x, alpha)
hi = np.quantile(x, 1 - beta)
etl = -x[x <= lo].mean() # 期望尾部损失(正数)
etg = x[x >= hi].mean() # 期望尾部收益
return etg / etl
for name, x in [("A 正态", A), ("B 负偏肥尾", B)]:
sh = x.mean() / x.std() * np.sqrt(252)
print(f"{name}: 夏普={sh:.2f} Rachev(5%,5%)={rachev(x):.2f}")python结果:
| 资产 | 年化夏普 | Rachev(5%, 5%) | Rachev(1%, 1%) |
|---|---|---|---|
| A 正态 | 0.65 | 1.05 | 1.04 |
| B 负偏肥尾 | 0.66 | 0.72 | 0.62 |

夏普比率完全无法区分这两个资产(0.65 vs 0.66),甚至 B 还略高一点。但 Rachev 比率给出了清晰的判决:A 的极端好日子和极端坏日子基本对称(1.05),而 B 每承受 1 元的尾部亏损,只能换来 0.72 元的尾部盈利——这是一个尾部性价比为负的交易。对数纵轴的直方图上可以直接看到原因:B 的左尾比 A 深出去一大截。
实验二:尾部水平扫描——越极端,差距越大#
Rachev 比率有两个自由参数 和 ,把它们从 1% 扫到 20%:
alphas = np.linspace(0.01, 0.20, 40)
rA = [rachev(A, a, a) for a in alphas]
rB = [rachev(B, a, a) for a in alphas]python
正态资产 A 的 Rachev 比率在所有尾部水平上都稳定在 1.04 附近——对称分布的两端尾部天然对称。负偏资产 B 则随着 收窄单调恶化:20% 尾部时约 0.85,5% 时 0.72,1% 时只剩 0.62。负偏肥尾的破坏力集中在最极端的部分,尾部水平选得越严格,Rachev 比率对它的惩罚越重。
这也给出参数选择的实操建议: 是文献常用默认值;如果你的持仓周期长、更在乎黑天鹅,可以压到 1%,但要意识到样本量问题——5 年日频数据在 1% 尾部只有约 12-13 个观测,估计噪声很大。
实验三:组合优化——最大夏普 vs 最大 Rachev 选出完全不同的组合#
构造三个资产:稳健低波资产、高收益但强负偏资产、中等收益正偏资产,网格搜索权重分别最大化夏普和 Rachev:
# R: (T, 3) 收益矩阵,三列分别为 稳健/负偏高收益/正偏 资产
best_sharpe, best_rachev = None, None
results = []
for w1 in np.linspace(0, 1, 21):
for w2 in np.linspace(0, 1 - w1, 21):
w = np.array([w1, w2, 1 - w1 - w2])
p = R @ w
sh = p.mean() / p.std() * np.sqrt(252)
results.append((w, sh, rachev(p)))
best_sharpe = max(results, key=lambda x: x[1])
best_rachev = max(results, key=lambda x: x[2])python结果对比鲜明:
| 目标函数 | 稳健资产 | 负偏高收益 | 正偏资产 | 夏普 | Rachev |
|---|---|---|---|---|---|
| 最大夏普 | 40% | 30% | 30% | 1.16 | 0.94 |
| 最大 Rachev | 10% | 4.5% | 85.5% | 0.71 | 1.30 |

最大夏普组合毫不犹豫地给负偏高收益资产分了 30% 权重——它的均值高、方差被平静期稀释,夏普视角下是优质资产。最大 Rachev 组合几乎清仓了它(4.5%),转而重仓正偏资产。代价是夏普从 1.16 降到 0.71,换来的是尾部性价比从 0.94 升到 1.30:从”极端行情净亏”翻转为”极端行情净赚”。
这不是孰优孰劣的问题,而是目标函数的选择本身就是风险偏好的陈述。如果你的策略容量大、可以扛住回撤等均值回归,夏普合理;如果你带杠杆、有清盘线、或者管理的是”一次大亏就出局”的资金,Rachev 视角可能更接近你的真实效用函数。
与其他比率的关系#
把常见的收益风险比放在一个谱系里看:
- 夏普:均值 / 标准差——全分布、对称计量;
- Sortino:均值 / 下行半标准差——全分布上行 + 下行波动;
- STARR 比率(Stable Tail Adjusted Return Ratio):均值 / ETL——全分布上行 + 尾部下行,是 Rachev 的”半成品”;
- Rachev:ETG / ETL——两端都只看尾部。
Rachev 比率是这个谱系里唯一”分子也换成尾部度量”的指标。这带来一个独特性质:它对分布中间部分的平移完全不敏感——策略在平静日子多赚 1bp 还是少赚 1bp 不影响 Rachev。这既是特性也是缺陷:Rachev 不能单独使用,一个每天亏一点、偶尔暴涨的彩票型策略可以有极高的 Rachev 但均值为负。实务上标准搭配是”夏普/STARR 管中枢收益,Rachev 管尾部形状”。
A. 实现细节#
- 尾部条件期望用样本分位数 + 切片均值直接估计(历史模拟法),不做参数化分布假设;
np.quantile默认线性插值,20 万样本下插值方式的影响可忽略,但小样本(<1000)时建议改用method='lower'保守处理; - ETL 定义为左尾条件期望的相反数,保证分母为正;若策略左尾条件期望为正(几乎不亏钱),Rachev 比率无意义,需回退到其他指标;
- 组合优化用 2% 步长的单纯形网格搜索(231 个组合),目的是展示两种目标函数的结构性差异;生产环境中 Rachev 最大化可写成 CVaR 差分的线性规划(Rockafellar-Uryasev 线性化分别作用于分子分母,再用 Dinkelbach 迭代处理分式目标);
- 三资产模拟中负偏/正偏资产用非中心 t 分布(
scipy.stats.nct)标准化后重新缩放构造,保持均值方差可控、偏度峰度显著。
B. 已知偏差#
- 尾部估计的样本饥渴:5% 尾部用了 1 万个样本(20 万总量),估计很稳;但真实场景 5 年日频只有约 63 个尾部观测,Rachev 比率的抽样标准误不小,两个策略 Rachev 差 0.1 以内不构成可靠排序,应配 bootstrap 置信区间;
- i.i.d. 假设:模拟数据独立同分布,真实收益有波动聚集——危机日成串出现,历史模拟法的尾部条件期望会低估”连续尾部日”的复合破坏力,严谨做法是先用 GARCH 过滤再对标准化残差估计;
- 参数自由度: 的选择直接影响数值和排序,报告 Rachev 比率必须同时报告尾部水平,且不应在多组 里挑最好看的那组——那是另一种形式的数据窥探。
C. 结果解读#
- 夏普的盲区是结构性的,不是精度问题:实验一中两资产夏普差 0.01、Rachev 差 0.33,加长样本不会改变这个结论,因为方差在数学上就不区分上下行;
- 负偏惩罚随尾部水平收窄而放大:从 20% 到 1%,负偏资产的 Rachev 从 0.85 恶化到 0.62,说明它的风险藏在”最坏的 1%“里——这正是卖尾部风险类策略的典型指纹,用 Rachev(1%,1%) 筛这类策略特别有效;
- 组合层面的权衡是实打实的:最大 Rachev 组合放弃了 0.45 的夏普换取尾部性价比转正,这个交换比例本身就是有用的信息——如果某组合只需牺牲 0.1 夏普就能把 Rachev 从 0.9 拉到 1.2,说明尾部风险的定价很便宜,值得做;反之若代价巨大,说明高夏普本质上就是尾部风险的补偿;
- 适用边界:Rachev 比率不适合作为唯一目标(彩票型策略陷阱),不适合小样本直接比较(尾部估计噪声),最适合的场景是:策略池中筛除隐性卖尾部风险的策略、带杠杆约束的组合构建、以及对”危机 alpha”类策略(尾部对冲、CTA)做常规指标之外的公平评价——这类策略夏普平庸但 Rachev 优秀,恰是夏普视角系统性低估的品种。