股票的年收益率(年化率)很好理解,等于一年赚的钱除以这一年的本金,代表你的本金在这一年的回报水平。银行存一年的利率大概是1.5%。当然,在股票投资的时候,时间不太可能就是整整一年,所以需要用上公式计算你的年化率。
年收益率=【投资内收益/本金/投资天数】*365×100%。
股票不是365,而是252天。
标准差代表着这个股票的波动水平,标准差越大,意味着股票波动越大,风险越大。
夏普率比较难理解,它的计算公式是年收益率除以标准差,从计算公式上的理解就是,每次波动下产生的年化率。年化率越大,夏普率越大;标准差越大(波动越大,风险越大),夏普率越小。
夏普率代表每多承担一分风险,可以拿到几分报酬,该指标用于比较哪只股票更好。我们更希望承担更小的风险来获得更大的报酬,所以,该指标自然是越大越好。
我们来计算投资股票一个月的夏普率。
x = [x1,x2,x3....,x30] (x为30天每一天的收益) B为本金,u为x的平均数,1.5%为银行利率,可以作为无风险下的利率。
sharpe = (return-1.5)/std
公式可以简化为: sharpe = sum(x)* /(std(x)*30)
以上是股票的夏普率计算方法。
案例:
import numpy as np
#30天股票
x = [1,2,4,5,-2,-5,3,4,-1,-3,1,2,4,5,-2,-5,3,4,-1,-3,1,2,4,5,-2,-5,3,4,-1,-3]
allx = sum(x)
B = 200
returnsx = allx/B/30*365
std = np.std(x)*np.sqrt(365)/B
sharpe = (returnsx-1.5)/std
print(returnsx) #1.46
print(sharpe) #-0.13
如果当天的仓位在第二天才能平掉。例如,12/7建仓,12/8平仓,那该段收益应该算于12/8。得到每一天的收益率后,依旧套用上述方法,就能算出夏普率了。