分析:索提诺(Sortino)比率
定义:
索蒂诺比率是Frank Sortino开发的夏普(Sharpe)比率的改良版。与夏普比率不同,索蒂诺比率忽略了正向波动率,仅关注对投资者构成危险的回撤。
解释:
它显示了收益与风险的补偿效果。最终值直接表明了1%的下行偏差对应多少百分比的收益。
该指标的普遍接受目标值为≥2,但应始终考虑其与基准和市场情况的比率。
例子:
投资组合:
- 无风险利率 (RFR) = 2%
- 2025年1月1日 存入1000
- 2025年3月3日 购买纳斯达克股票代码:AAPL(数量:1,价格:190,佣金:0)
- 2025年4月11日 索提诺比率计算日期。AAPL最新价格 = 198.15
索提诺比率投资组合 0.047%:
- 下行风险无法通过收益得到有效补偿
- 每1%可接受的下行偏差仅带来0.047%的超额收益
索提诺比率基准 -0.817%:
- 每下降一个单位百分比,投资组合相对于无风险利率就会损失 0.817% 的回报
注意:为简化计算,应考虑观察期的短期性质。
计算:
索蒂诺比率 = (Rp − RFR) / DD
- Rp(投资组合回报率)—— 投资组合业绩百分比,使用TWR方法按月计算,以百分比表示。
- RFR(无风险利率)—— 取自投资组合设置。由于设置中设定的是年利率,因此在计算之前必须将其转换为当期利率。
- DD(下行偏差)—— 当期业绩负值之间的标准差
索提诺比率计算解释示例:
- 每月 RFR 计算: 2 / 12 = 0.167%
- Rp计算: Performance by periods:
- 1月: 0
- 2月: 0
- 3月: 3.2% (obtained: pv on March 31 → ((1032.13 − 1000) / 1000) * 100 )
- 4月: −2.3% (obtained: ((1008.15 − 1032.13) / 1032.13) * 100 )
Rp = (0 + 0 + 3.2 − 2.3) / 4 = 0.225
- DD计算:
- 1月: min(0, 0 − 0.167)² = 0.0279
- 2月: min(0, 0 − 0.167)² = 0.0279
- 3月: min(0, 3.2 − 0.167)² = 0
- 4月: min(0, −2.3 − 0.167)² = 6.1009
DD = ((0.0279 + 0.0279 + 0 + 6.1009) / 4)^(1/2) = 1.24%
- 索提诺比率计算: SR = (Rp − RFR) / DD = (0.225% − 0.167%) / 1.24% ≈ 0.047%
Pine参考:
//@version=6 indicator("Sortino ratio example") method downsideDeviation(array<float> returns, series float targetReturn) => float sum = 0.0 for r in returns if r >= targetReturn continue sum += math.pow(r - targetReturn, 2) sum /= returns.size() float result = math.sqrt(sum) method sortinoRatio(array<float> returnsArray, series float annualBenchmark) => var int numberOfperiods = 12 if barstate.islast float fixedPeriodReturn = annualBenchmark / numberOfperiods float downsideDev = returnsArray.downsideDeviation(fixedPeriodReturn) float avgReturn = returnsArray.avg() float result = (avgReturn - fixedPeriodReturn) / downsideDev array<float> arr = array.from(0, 0, 3.2, -2.3) float sortino = sortinoRatio(arr, 2) plot(sortino, precision = 3)
Generic注意:
如果所有交易都是在相对于指标计算日期的当前月份进行的,则不会计算该指标,因为没有一个完整的日历月。
另请阅读: