夏普比率计算

夏普比率的计算公式为:

s h a r p e    r a t i o = ( R _ p − R _ f ) σ _ p sharpe\;ratio= \frac{(R\_p - R\_f)}{σ\_p} sharperatio=σ_p(R_pR_f)

  • R _ p R\_p R_p : 回报率平均值
  • R _ f R\_f R_f : 无风险利率
  • σ _ p σ\_p σ_p : 回报率标准差

下面,开始实践计算。

首先,假设你 N N N 天的累计回报序列为 { R i ∣ i = 0 , 1 , 2 , . . . N − 1 } \{R_i|i=0,1,2,...N-1\} {Rii=0,1,2,...N1}

计算回报率:

r _ i = R _ i − R _ i − 1 R _ i − 1 r\_i=\frac{R\_i - R\_{i-1}}{R\_{i-1}} r_i=R_i1R_iR_i1

计算夏普比率:

S R _ d a i l y = E r _ i − r _ f σ r _ i SR\_{daily}=\frac{E{r\_i}-r\_f}{σ{r\_i}} SR_daily=σr_iEr_ir_f

S R _ y e a r l y = E r _ i − r _ f σ r _ i ∗ 252 SR\_{yearly}=\frac{E{r\_i}-r\_f}{σ{r\_i}} * \sqrt{252} SR_yearly=σr_iEr_ir_f252

无风险回报率 r _ f r\_f r_f一般取0。

示例代码:

import numpy as np
import pandas as pd

np.random.seed(0)

# Simulate cumulative returns of 100 days
N = 100
D = pd.DataFrame(np.random.normal(size=N))
R = D.cumsum()

# Calcute returns ratio
r = (R - R.shift(1))/R.shift(1)
sr = r.mean()/r.std() * np.sqrt(252)

print("sharpe ratio =", sr)

原文地址

你可能感兴趣的:(金融)