跳转至

夏普比率

定义

超额收益的均值除以它的波动。频率决定用哪一个平方根,两套不能叠在同一个数上。

公式

\[ \mathrm{SR}=\frac{\mathbb{E}[R-r_f]}{\sigma(R-r_f)} \]

日频研究与 metrics.py 一致:先减 \(r_f/252\),用样本标准差,再乘 \(\sqrt{252}\)。月频研究乘 \(\sqrt{12}\)。\(t=\mathrm{SR}\times\sqrt{Y}\) 是均值的 t,不是 Lo (2002) 给夏普比率本身的标准误。

直觉

同样多赚 1 个百分点,路径越颠,这个比越低。它不区分「慢慢跌」和「突然崩」。

实务要点 / 常见误区

  • 日频夏普和月频夏普不要再互相乘 \(\sqrt{21}\) 或 \(\sqrt{12}\)。
  • 无风险利率为 0 的教学例子,和 metrics.py 里减去 \(r_f/252\) 不是同一次计算。
  • 夏普大于 1 不是本仓库流程文件的通用门槛。

相关概念

代码

import math

def sharpe_daily(excess: list[float]) -> float:
    # 超额已经减去 rf/252。分母用样本标准差,和 metrics.py 同一选择。
    n = len(excess)
    mean = sum(excess) / n
    var = sum((x - mean) ** 2 for x in excess) / (n - 1)
    return mean / math.sqrt(var) * math.sqrt(252.0)

教材:M01 数理统计工具箱