夏普率是衡量股票组合的一个指标之一:
·
实际举例:
如果某个投资组合第一天收益率为5%、第二天收益为9%、第三天的收益为-10%(这里的收益率是相对于前一天的数据或者前一个周期的数据),同时假设国债的收益率为4%,计算夏普率:
shaper ration=average(5%+9%-10%)-国债收益率日数据/收益率的标准差
·
·
·
备注:tushare需要注册获取数据;
pro = ts.pro_api("xxxxxxxxxxxxxxxxxxxxxxxxxx")
df = pro.daily(ts_code='601318.SH',start_date='20190101', end_date='20200101')
#中国平安
数据展示:
注释:pct_chg获取的数据是不含百分数单位的,在后面换算的时候注意单位的统一;
注释:pct_chg获取的数据是不含百分数单位的,在后面换算的时候注意单位的统一;
注释:pct_chg获取的数据是不含百分数单位的,在后面换算的时候注意单位的统一;
(1)计算日收益率的均值:
mm=np.mean(df['pct_chg'])
(2)无风险收益率的日数据
注意:
sharp-ratio里一定要注意分子分母周期的一致性。比如基金产品很多净值是一周进行一次更新,所以很多无风险利率,收益率的要使用周的。
收益率的计算比较简单为: 周盈利/周初始资金 。 一般国内无风年利率普遍习采用一年期存款利率,约为3%,一年有52周,则周化无风险利率为 (1+3%)^(1/52)-1 为0.0569%。标准差也用当周收益率跟历史周收益均值进行计算。
【(1+4%)的1/365次方 】-1=0.0001059015326852
(3)计算收益率的标准差
nn=df['pct_chg'].std()
(4)计算夏普率结果
import math
日夏普率:
ss=mm-0.01059015326852
SR=ss/nn
年夏普率:
SR1=(mm-0.01059015326852)/nn*math.sqrt(252)
输出结果:
(日)夏普比率=0.11034304470125009
(年)夏普比率1.7516415311111468
以上是原始的夏普比率的计算方法,实际上对于固定时间内的夏普比率还得乘上一个k值。
对于不同采样频率的k值情况:
Daily=sqrt(252)(最小粒度是按天计)
Weekly=sqrt(52)(最小粒度是按星期计)
Monthly=sqrt(12)(最小粒度是按月计)
参考链接:https://www.jianshu.com/p/40c160ddc616
·
df1 = df['pct_chg'] - (4/252)
print((df1.mean() * math.sqrt(252))/df1.std())
参考这个方法输出结果是:
(年)夏普比率=1.7017083586393216
结果不一致原因:方法一和方法二计算无风险收益率的日数据不同;
结果不一致原因:方法一和方法二计算无风险收益率的日数据不同;
结果不一致原因:方法一和方法二计算无风险收益率的日数据不同;
如果SR为2表示投资者风险每增加1%个单位的时候换来的是2%的多余收益;
夏普比率为负,就是收益低于无风险收益率,可以根据绩效考核的需要和实际情况,选择詹森指数,或者把无风险利率换成最低可接受收益(MAR),等等