每日的夏普转换为年,乘于根号252为一年的夏普,分母是(每日的标准差)如何推导?

来源:3-10 计算风险收益指标:夏普比率

探寻神性的汪星人

2021-07-13

如题,学渣求解`

def calculate_sharpe(code):
    '''
    计算股票的夏普比率
    :param code:
    :return:
    '''
    data = ds.get_csv_price(code, 'price') # 打开file
    daily_return = data['close'].pct_change() # 计算daily涨幅
    avg_return = daily_return.mean() # daily平均
    
    sharpe = avg_return/daily_return.std()
    sharpe_year = sharpe*np.sqrt((252)) # 转换年夏普
    
写回答

2回答

慕粉17780521093

2021-07-14

不知道这个是不是金融分析里用来做近似计算的通用方法,但是这个计算个人认为及其不严谨,并且非常容易把人搞晕,特别是数学基础不好的。

按年计算的平均收益等于按日平均收益的252倍是没有错的。但是计算标准差时,公式里所需要的每年的收益数据,只有在每天收益完全相等的情况下,才能也按照252来乘,这种情况下根号内分母累加的每一组年收益-年平均收益,都可以换算成252p-252p(平均),把相同系数252提出去,乘以公式中有的平方,在和分母换算成年需要提出的一个252系数抵消一半,就是252开平方,不过这种情况,标准差本来就是0,算来也没有意义。只要不是每天收益相同,严格推到公式就一定不是这样简单乘以一个系数的结果。

想不明白为什么不能直接按年获取多年的价格数据,再来计算按年的夏普值呢。而要用这种数学推到明显有问题的方式来算。

如果我的理解有错,向老师道歉,但如果我理解没有错,这种似是而非的推到,会浪费大家很多时间,希望老师能够更加严谨一点。


2
2
奉化奔腾JAVA
同感!
2022-03-29
共2条回复

探寻神性的汪星人

提问者

2021-07-16

谢了,大概是懂了。

0
0

程序员理财课 Python量化交易系统实战

打造一个自动交易平台,新手也能提升理财收益

1986 学习 · 405 问题

查看课程