Backtrader快速入门——2. 策略表现评估

一开始接触backtrader可能就是因为知道这是个回测框架,对于回测这个概念可能还比较模糊,可以去看看国内一些中文网站关于回测框架这方面的文档,例如:

常见的收益和风险指标

策略的风险指标能够让您对策略在各个维度有客观、全面的评估。常见的风险指标如下:

年化收益率(Annualized Returns):

表示投资期限为一年的预期收益率。
在这里插入图片描述

基准年化收益率(Benchmark Returns)

表示参考标准年化收益率。
在这里插入图片描述

阿尔法(Alpha)

表示投资中面临着系统性风险(即Beta)和非系统性风险(即Alpha)。

Alpha是投资者获得与市场波动无关的回报,一般用来度量投资者的投资技艺。比如投资者获得了12%的回报,其基准获得了10%的回报,那么Alpha或者价值增值的部分就是2%。
在这里插入图片描述

Alpha值 释义
α>0 策略相对于风险,获得了超额收益
α=0 策略相对于风险,获得了适当收益
α<0 策略相对于风险,获得了较少收益

贝塔(Beta)

表示投资的系统性风险,反映了策略对大盘变化的敏感性。

例如一个策略的Beta为1.3,则大盘涨1%的时候,策略可能涨1.3%,反之亦然;如果一个策略的Beta为-1.3,说明大盘涨1%的时候,策略可能跌1.3%,反之亦然。
Beta

夏普比率(Sharpe Ratio)

表示每承受一单位总风险,会产生多少的超额报酬,可以同时对策略的收益与风险进行综合考虑。
在这里插入图片描述

收益波动率(Volatility)

用来测量资产的风险性,波动越大代表策略风险越高。
Volatility

信息比率(Information Ratio)

衡量单位超额风险带来的超额收益。

扫描二维码关注公众号,回复: 12892282 查看本文章

信息比率越大,说明该策略单位跟踪误差所获得的超额收益越高,因此,信息比率较大的策略的表现要优于信息比率较低的基金。合理的投资目标应该是在承担适度风险下,尽可能追求高信息比率。
在这里插入图片描述

最大回撤(Max Drawdown)

描述策略可能出现的最糟糕的情况。
Max

换手率(Turnover Rate)

描述策略变化的频率以及持有某只股票平均时间的长短。
Turnover

backtrader中的量化策略指标模块Analyzers

Analyzers模块涵盖了评价一个量化策略的完整指标,如常见的夏普比率年化收益率最大回撤Calmar比率(Calmar Ratio 卡玛比率)等等。Analyzers模块原生代码能获取的评价指标如下图所示,其中TradeAnalyzer和PeriodStats又包含了不少指标。由于采用元编程,Analyzers的扩展性较强,可以根据需要添加自己的分析指标,如获取回测期间每一时刻对应的总资金。
在这里插入图片描述

示例demo

数据在backtrader的github中可以找到

import datetime

import backtrader as bt
import backtrader.analyzers as btanalyzers
import backtrader.feeds as btfeeds
import backtrader.strategies as btstrats

cerebro = bt.Cerebro()

dataname = './2005-2006-day-001.txt'
data = btfeeds.BacktraderCSVData(dataname=dataname)
cerebro.adddata(data)
cerebro.addstrategy(btstrats.SMA_CrossOver)

cerebro.addanalyzer(btanalyzers.SharpeRatio, _name='mysharpe')

thestrats = cerebro.run()
thestrat = thestrats[0]

print('夏普比率:', thestrat.analyzers.mysharpe.get_analysis())

参考链接

参考知乎专栏文章:

猜你喜欢

转载自blog.csdn.net/Castlehe/article/details/113772133