回测框架常用的策略评估指标算法

一般回测系统是用不同粒度的历史K线数据喂给策略引擎,策略引擎产生交易信号交给订单系统处理,进而得出策略的收益率,回撤率等指标,那么如何评价一个策略是否良好呢,那就需要一些回测指标来评估了。

常见的回测指标

在量化投资领域,回测指标是评估策略表现的一种方法。以下是常见的回测指标:

  1. 收益率(Returns):回测期内策略的总收益率。
  2. 净值(NAV Net Assets Value):资产的净资产价值
  3. 年化收益率(Annualized Returns):以年为单位计算的收益率。
  4. 最大回撤(Max Drawdown):回测期内,从任意一天开始计算,之后任意一天的收益率高于该天的最大值时,最大亏损幅度的百分比。
  5. 胜率(Winning Rate):回测期内,策略盈利交易数占总交易数的比例。
  6. 夏普比率(Sharpe Ratio):回测期内,策略年化收益率与风险(以波动率衡量)之比。
  7. 信息比率(Information Ratio):回测期内,策略年化超额收益率与风险(以基准组合波动率衡量)之比。
  8. Beta (贝塔系数):回测期内,策略收益率与市场收益率之间的关系。
  9. Alpha(阿尔法因子):回测期内,策略相对于市场的超额收益率。
  10. Sortino Ratio(索提诺比率):回测期内,策略年化超额收益率与下行波动率之比。
  11. Calmar Ratio(卡尔玛比率):回测期内,策略年化收益率与最大回撤之比。

这些指标可以用来评估策略的风险和收益表现,以及与市场或基准组合的比较表现。接下来我们分别介绍一下这些指标都是怎么计算的。

收益率

收益率的计算很简单,它的计算公式如下

收益率 = (卖出价格 - 买入价格) / 卖出价格
或者
收益率 = (期末净值 - 期初净值) / 期初净值

这个非常好理解,没什么好说的

净值

净值代表资产的净资产价值也就是总资产中去掉负债后的价值,公式

净值 = 总资产 - 总负债

一般基金或者回测系统中,如果要显示净值,一般是计算单位净值,也就算每一份基金或者资产的净值

净值 = (基金总资产 - 基金总负债) / 基金总份额

这里大家可能有个疑问,基金的总负债是指什么呢?其实就是指基金的的运营成本消耗金额,包括基金管理费、托管费、销售服务费、运营费用等等。

净值和涨跌幅是紧密联系的,一般 净值 = 1 + 收益率,比如一个基金净值是 1.3,那么这个基金的收益率为 30%

年化收益率

年化收益率是指策略在一年内所获得的平均收益率。它可以通过以下公式计算:

年化收益率 = [(1 + 总收益率) ^ (365 / 回测天数)] - 1
# ^ 符号表示指数运算,在python中可以用 连乘号 ** 表示

其中,总收益率是指策略在回测期内的总收益率,回测天数是指策略回测的天数,365表示一年的天数。

举例说明,如果一个策略在回测期内的总收益率为20%,回测天数为180天,则年化收益率为[(1 + 20%) ^ (365/180)] – 1 = 72.82%。这意味着,如果这个策略在未来一整年内能够以与过去相同的方式表现,它将获得72.82%的收益率。请注意,年化收益率只是过去表现的估计,未来表现可能会有所不同。

最大回撤

最大回撤是衡量策略风险的重要指标,通常表现越好的策略其最大回撤越小。一般我们说一个策略的回撤很小,说明这个策略非常平稳优秀。反之则是这个策略存在巨大隐患,需要谨慎应对。

在投资领域中,回撤是指投资组合或资产净值从最高点到低点的跌幅。通俗的说,回撤就是当前净值相对于历史最高净值的下跌幅度。计算回撤的公式如下:

回撤率 = (净值最高点 - 净值最低点)/ 净值最高点

其中净值最低点则是指该净值最高点之后的最低净值

胜率

胜率就是每次交易盈利的概率,公式是

胜率 = 盈利次数 / 总交易次数

夏普比率

回测系统里经常提到夏普比率,英文叫sharpe,计算公式

sharpe = (平均收益率 - 无风险收益率) / 收益率标准差
# 平均收益率就是每笔交易的收益平均值
# 无风险收益率通常去某个政府债券的的收益率
# 收益标准差就是回测里面每笔交易的收益的标准差

夏普比率代表策略每多承担一分风险,可以拿到几分超额报酬;若大于1,代表策略报酬率高过波动风险;若为小于1,代表策略操作风险大过于报酬率。这样一来,投资回报与多冒风险的这个比例越高,投资组合越佳。风险报酬比越高越值得投资,策略越优秀。

信息比率

这个指标似乎用的不多,信息比率是用于衡量一个策略相对于其基准指数的超额收益与风险之比。其计算公式为:

信息比率 = (超额收益率 - 基准指数超额收益率) / 超额收益率标准差
# 超额收益率 = 收益率 - 基准收益率
# 基准收益率通常是某个指数的收益率
# 基准指数通常用 沪深300,恒生指数,标普500等

A股通常用沪深300做基准指数,港股是恒生指数,美股用标普五百,就是说你的策略收益必须大于这些指数的基准收益,否则你的策略还不如不做。

Beta 贝塔系数

Beta指标是用来衡量策略收益相对于整个市场的波动性的风险指标,它的计算方法如下:

Beta = Cov(策略收益率,市场收益率) / Var(市场收益率)

其中Cov表示协方差,Var表示方差。

市场收益率就是基准指数如沪深300指数的收益率。

Beta值大于1,表示策略的波动率高于市场平均水平,而Beta小于1则表示其波动率低于市场平均水平。如果Beta等于1,则表示该股票或投资组合与市场的波动率一致。

波动率就是你的策略的资产收益率振幅大小,Beta越大表明资产变动幅度越大,那么风险肯定越大,策略最重要的还是稳定,优秀的策略应该Beta小于1,并且回撤也小。

Alpha 因子

Alpha是衡量策略相对于其基准指数的超额收益的指标,可以用以下公式进行计算:

Alpha = 策略年化收益率 - [无风险收益率 + Beta * (基准指数年化收益率 - 无风险收益率)]

如果没看过上面的一些指标还真看不懂,看过后也就知道了,就是加减乘除运算而已

通过公式可以看出Alpha通常用于评估策略的超额收益能力,也就是相对于市场基准指数(如沪深300、标普500等)能够实现的额外收益。一般来说,Alpha值越高,代表策略的超额收益越高,投资表现越好。

Sortino Ratio(索提诺比率)

是用于评估策略风险收益特征的指标之一,它相比于夏普比率更加关注下行风险。下行风险是指低于一定目标水平的风险,比如基准收益率、无风险收益率等。Sortino Ratio以基准收益率以下的波动性来衡量投资组合的风险,它的公式如下:​​

SortinoRatio = (平均收益率-无风险收益率) / sqrt(下行标准差)
# 下行标准差意思就是收益率比无风险收益小的收益率计算的标准差
# sqrt 开根号

Sortino Ratio 越高,说明策略相对于下行风险的承担更有价值,也就是说,策略的表现相对于无风险收益率和下行风险来说更为优秀。

Calmar Ratio 卡尔玛比率

卡尔玛比率是用于评估策略长期表现的风险调整收益率指标。它是年化累计收益率与最大回撤比率之间的比率。

具体计算方法如下:

Calmar Ratio = 年化累计收益率 / 最大回撤率

其中,年化累计收益率可以用复合收益率计算得出,最大回撤率指的是策略净值走到最高点之后,到达最低点时的最大跌幅比率,前面篇幅都介绍有。

一般而言,Calmar Ratio的 值越高,表明策略的收益相对于承担的风险更为优秀。