python量化回测框架_搭建量化系统|听说有个回测框架叫backtrader

backtrader属于功能相对完善的本地版Python量化回测框架。既然业界好评如云,我们作为量化交易者理应集所有好用的工具于一身,就让我们来体验一下这个框架。

backtrader的使用方法在官方文档上介绍的挺详细的。大体分为两步:

创建一个策略,创建一个策略类,这个类要继承自backtrader.Strategy,然后就可以自定义里面的方法。

策略类中有一个类属性params,用于定义一些在策略中可调参数值

backtrader.indicators内置了许多指标的计算方法,比如移动平均线、MACD、RSI等等,使用时只需要实例化策略中会使用到的技术指标即可

next函数中编写交易策略,也就是进入市场和退出市场的逻辑

创建一个策略决策引擎(原文是Cerebro,这里我用决策这个词)

把定义的策略注入到决策引擎之中

把行情数据注入到决策引擎之中

可视化方式反馈回测结果

以上是框架中核心的部分,当然了,其他还有很多可扩展的功能。

backtrader的数据加载非常灵活,此处我们使用DataFrame格式数据,如下所示:

"""

High Low Open Close Volume OpenInterest

trade_date

2017-01-03 8.12 8.07 8.07 8.12 179801.01 0

2017-01-04 8.16 8.09 8.13 8.15 166242.35 0

2017-01-05 8.23 8.13 8.15 8.17 222902.53 0

2017-01-06 8.19 8.12 8.18 8.13 128549.96 0

2017-01-09 8.15 8.08 8.13 8.13 136700.04 0

"""

构建策略的类是继承backtrader.Strategy,然后根据自己的需要重写其中的方法即可。比如__init__、log、notify_order、notify_trade、next等等。

关于策略中的指标,backtrader内置了很多类型,直接调用即可。比如移动平均线:

self.sma = bt.indicators.SimpleMovingAverage(

self.datas[0], period=self.params.maperiod)

由于内置了talib模块,也可以这么调用:

# 内置了talib模块

self.sma = bt.talib.SMA(self.data,

timeperiod=self.params.maperiod)

next方法中,我们实现一个简单的双均线策略作为交易的逻辑。比如买入条件是MA5上穿MA10;卖出条件是MA10下穿MA5。

关于策略回测,把数据和策略添加到Cerebro中之外,还有设置一些参数。比如broker的设置,像初始资金、交易佣金。也可以用addsizer设定每次交易买入的股数。

回测结束后返回得到执行交易策略时积累的总资金。此处我们回测的是新希望 2017年1月1日到2020年1月1日期间的策略执行效果,最终资金从10000变成了15941.95。

由于backtrader内置了Matplotlib,因此我们也可以可视化回测的效果,如下所示:

总的来说,对于刚进阶的朋友来说是足够使用了,那么无法满足高阶玩家的需求怎么办呢?可以继承框架自己扩展。

关于以上内容更多的探讨欢迎大家关注【元宵大师带你用Python量化交易】!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值