Hello 大家好,我是一名新来的金融领域打工人,日常分享一些python知识,都是自己在学习生活中遇到的一些问题,分享给大家,希望对大家有一定的帮助!
大家好呀 好久不见!最近忙的事情太多了 没来得及给大家更新新的知识,今天就给大家讲讲在进行量化策略回测结果分析的时候最最最常见的指标——年化收益率的计算。
总的来说 年化收益率的简单理解就是你的策略一般不会只运行一年,一般策略都会运行多年,那么我们可以得到策略多年的一个累计收益率,年化收益率就是把多年的累计收益率"化为"一年的收益率。
下面我们介绍一下计算年化收益率简单的公式:
这个式子中P0代表期初的净值,Pt代表期末的净值,n代表年化收益率,T代表策略运行了多少年。
我们对这个式子采取一些变化如下:
而对于**(Pt-P0) / P0 其实就是策略的累计收益率R**:
于是我们得到了年化收益率n的计算公式如上所示,所以我们只需要知道策略的累计收益率以及策略运行了多少年(一般我们采用策略总的运行天数 / 252天 来进行多少年的计算也就是T值)。
2022-07-03更新:
最近看书在书上又发现了一种年化收益率的计算方法:
年化收益率 = 累计收益率 / (策略总的运行天数 / 252)
其实上面这个公式就是用累计收益率 **除以 **策略总的运行天数然后 再乘以 一年252天:
如果你使用的是对数收益率,由于对数收益率的可加性,累计收益率 = data['return'].sum() ,而用累计收益率 **除以 **策略总的运行天数就相当于如下:
data['return'].sum() / len(data) = data['return'].mean()
所以上述公式在使用对数收益率的情况下可以变为:年化收益率 = 对数收益率列.mean() * 252
这里我做了一个比较,我们假设两种方法的累计收益都是50%,策略运行天数都是504天,那么采用两种方法的计算结果如下:
第一种:
n = (1+R)^(1/T) -1 = (1+0.5)^(1/2) - 1 = 22.5%
第二种:
n = R / (504 / 252) = 25%
从以上的结果可以看出两者的计算结果是有一定的差异的,第二种更像是一种将累计收益进行平均的计算方法。
2022-07-05更新: 增加年化波动率的计算
年化波动率用来衡量投资标的的波动风险,年化波动率计算公式:年化波动率=收益率标准差*(n^0.5)。
年化波动率 = (收益率序列).std() * np.sqrt(252)
2022-07-06更新: 夏普比率的计算
首先讲讲夏普比率的定义:夏普比率是计算投资组合每承受一单位总风险,会产生多少的超额报酬。计算公式如下:
那么结合上面的年化收益率以及年化波动率的计算我们可以得到夏普比率的计算公式如下:
夏普比率 = (策略年化收益率 - 无风险年化收益率 ) / 策略年化波动率
好啦 今天的文章就分享到这里啦!
版权归原作者 君子以自强不息python 所有, 如有侵权,请联系我们删除。