【量化】Backtrader量化回测平台入门1——环境配置快速上手

搭建本地量化平台

近几年国内的在线量化平台逐渐增加,比如常见的Ricequant、Joinquant等等,但是个人认为这些平台适合跑一些简单的策略,在实现一些复杂的或者需要计算资源的策略时回测时间较长。一些开源的框架,比如Backtrader以及Quantopian自家用的Zipline框架,在使用之后发现Backtrader具有较为完善的文档,方便编写本地量化策略(Zipline的部分较老的版本存在数据接口失效等问题)。所以打算记录下关于Backtrader的学习过程。

安装

推荐采用虚拟环境pip安装

pip3 install backtrader

在这里插入图片描述

快速上手

参考Backtrader官网的文档,熟悉Backtrader的框架。
Cerebro是Backtrader提供的一个类,用于传递数据、运行策略的核心回测引擎。

import backtrader as bt
cerebro = bt.Cerebro()
print('Start Value: {}'.format(cerebro.broker.getvalue()))
cerebro.run()
print('Final Value: {}'.format(cerebro.broker.getvalue()))
cerebro.plot()
策略框架

Backtrader使用类继承的方式构建策略。下面介绍如何导入数据和构建策略。导入数据采用backtrader.feeds加载数据,数据为单个标的ohlc格式。(这里使用orcl-1995-2014.txt数据)。
策略中核心的部分是next函数,当策略运行时,next函数在每个条状交易区间(bar)中运行一次。采用cerebro.plot()可以将回测结果绘制出来。

import backtrader as bt
import datetime
class mystrategy(bt.Strategy):
    def __init__(self):
        self.dataclose = self.datas[0].close

    def next(self):
        print(self.datas[0].datetime.date(0),self.dataclose[0])

cerebro = bt.Cerebro()
datapath="orcl-1995-2014.txt"
data = bt.feeds.YahooFinanceCSVData(dataname=datapath,fromdate=datetime.datetime(2000, 1, 1),todate=datetime.datetime(2000, 12, 31),reverse=False)
cerebro.adddata(data)
cerebro.addstrategy(mystrategy)
print('Start Value: {}'.format(cerebro.broker.getvalue()))
cerebro.run()
print('Final Value: {}'.format(cerebro.broker.getvalue()))
cerebro.plot()

在这里插入图片描述

在这里插入图片描述

下期预告

下期将介绍如何使用Backtrader构建一个简单的策略,欢迎关注!

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值