上篇文章里用pyalgotrade框架计算了策略收益率、夏普值、最大回测等回测指标,但是貌似没有直接计算α值,β值,信息比率等回测指标的方法。看来要自己实现了。
参照《Python量化策略风险指标》( https://zhuanlan.zhihu.com/p/55425806) 这篇文章里的定义实现吧。
先来计算beta值。beta值相当于业绩评价基准收益的总体波动性。常被用于衡量某一策略的系统性风险。如果beta值大于1,策略波动大于市场,否则,策略波动小于市场。
还有Alpha值,代表实际收益和按照beta系数计算的期望收益之间的差额,代表策略多大程度上跑赢了预期的收益率。可以理解为超额收益率。
计算这两个值要选一个基准,一般是沪深300指数,但是指数的值是3000多,跟个股的价格差别很大,如果直接用指数作为基准,需要进行数据调整。我就用300ETF(510300)来做基准了,聚宽上也进行同样的调整。
计算代码就照那篇文章上给的代码了。
先用300ETF的数据建立一个feeds并以此建立策略,计算收益率,用累积收益率计算alpha和beta值。
# 计算一些回测指标
def calculater(ret, retbase):
# 计算α β值
X = ret.getCumulativeReturns()
Y = retbase.getCumulativeReturns()
n1 = X.__len__()
n2 = Y.__len__()
x =