【量化】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构建一个简单的策略,欢迎关注!

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
backtrader是一个功能强大的量化回测框架,可以用于多股票的回测。文献提到了如何加载多只股票数据并构建交易组合进行量化回测。通过backtrader,你可以将多只股票的数据加载到回测系统中,并使用自定义的交易策略对这些股票进行回测。在回测过程中,你可以根据自己的需求设置参数阈值、优化策略,以及评估交易的业绩指标。同时,backtrader也可以进行股票组合的优化和回测,通过合理的选股范围和交易周期等参数设置,可以对股票组合的回报率、回撤、夏普比率等指标进行评估。然而,文献指出,回测实例的结果只是供参考,并不构成任何交易建议。因此,在使用backtrader进行多股票回测时,需要根据具体的情况进行参数设置和策略优化,以达到更好的回测效果。另外,文献也提到了一些建议,如如何正确实现滚动回测的算法和处理多股场景的问题等。总之,backtrader是一款非常强大的量化回测框架,可以满足多股票回测的需求,但在使用过程中需要根据具体情况进行参数设置和策略优化,才能得到更好的回测结果。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [如何用backtrader对股票组合进行量化回测?](https://blog.csdn.net/ndhtou222/article/details/106416802)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *3* [backtrader高级walk forward多股滚动回测](https://blog.csdn.net/qtbgo/article/details/125225612)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值