Backtrader

一、简介

  最近开始做量化交易,发现了一个很好的开源回测框架——Backtrader。这是一款基于Python功能强大的开源回测框架,并且支持实盘交易。Backtrader有以下一些特性:

  • 灵活:可以用Backtrader内置的功能,也可以自己开发
  • 支持多种证券:股票、期货、数字货币等等
  • 支持多种周期:tick级、秒级、分钟级、天、周、月、年

二、安装

  Backtrader支持python2.7,python3.x。安装命令:

pip install backtrader

  如果要用到backtrader的画图功能,安装命令:

pip install backtrader[plotting]

三、组成模块

  Backtrader包含若干个模块,如下图所示,其中Cerebro是Backtrader的基石,是回测的“大脑”,负责收集数据、策略等等与回测相关的模块,并按一定的逻辑运行这些模块,最后得到回测结果。
在这里插入图片描述

四、构建回测

  用Backtrader构建回测的流程如下:

  • 第一步:创建策略类
    • 确定可调整的参数
    • 计算策略需要的指标
    • 写买卖的逻辑
  • 第二步:创建Cerebro的实例对象
    • 添加策略
    • 添加数据
    • 添加其他需要的功能
    • 执行cerebro.run()
    • 可视化

  可用如下的图来表示以上的步骤:
在这里插入图片描述
  红色是可选的。
  用双均线策略实现一个最简的回测程序:

import backtrader as bt 
import pandas as pd
# 创建策略类:双均线
class TwoSmaStrategy(bt.Strategy):
    params = (('short', 5), ('long', 10))   #可调整的参数
    def __init__(self):
        self.order = None           #初始化订单
        self.sma_s = bt.indicators.MovingAverageSimple(self.datas[0].lines.close, period=self.params.short) #短期均线指标
        self.sma_l = bt.indicators.MovingAverageSimple(self.datas[0].lines.close, period=self.params.long) #长期均线指标
    
    # 策略方法
    def next(self):
        # 检查是否已经买入
        if not self.position:
            # 如果没有买入,并且短期均线 > 长期均线,说明涨势,买入
            if self.sma_s[0] > self.sma_l[0]:
                self.order = self.buy()
        else:
            # 已经买了,并且短期均线 < 长期均线,说明跌势,卖出
            if self.sma_s[0] < self.sma_l[0]:
                self.order = self.sell()

if __name__ == '__main__':
    cerebro = bt.Cerebro() #实例化cerebro对象
    
    #获取数据
    data_path = './data/sz.000961.csv'
    df = pd.read_csv(data_path)
    df['date'] = pd.to_datetime(df['date'])
    data = bt.feeds.PandasData(dataname=df, datetime='date')
    
    cerebro.addstrategy(TwoSmaStrategy) #加载策略类到cerebro对象中
    cerebro.adddata(data) #加载数据对象到cerebro对象中    
    ret = cerebro.run() #进行回测
    cerebro.plot() #可视化
  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Backtrader是一个开源的Python框架,用于快速设计、测试和部署交易策略。它基于向量化的计算方法,提供了丰富的工具和数据结构,可以方便地进行回测和交易策略的开发。使用Backtrader,你可以轻松地获取、处理和分析金融市场数据,编写和优化交易策略,并进行可视化和回测。它提供了许多内置的交易指标和模拟交易器,可以帮助快速测试和评估不同的策略。你可以通过官方网站(https://www.backtrader.com/)获取Backtrader的API文档进行学习。\[1\] Backtrader的主要组成部分包括框架(Cerebro)、数据加载(Data Feed)、交易策略(Strategies)、技术指标(Indicators)、订单(Orders)、观察者(Observers)、测量评估(Analyzers)、经纪人(Broker)、实盘交易(Live Trading)和结果可视化(Plotting)等。你可以使用框架来构建和管理交易策略,使用数据加载模块来获取和处理金融市场数据,使用交易策略模块来编写和优化交易策略,使用技术指标模块来计算和使用各种技术指标,使用订单模块来生成和执行交易订单,使用观察者模块来监控和记录交易行为,使用测量评估模块来评估和分析交易结果,使用经纪人模块来模拟和执行交易操作,使用实盘交易模块来连接实际交易所进行实时交易,使用结果可视化模块来可视化和展示交易结果。\[2\]\[3\] #### 引用[.reference_title] - *1* *2* [【python量化】基于backtrader的深度学习模型量化回测框架](https://blog.csdn.net/FrankieHello/article/details/130453151)[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^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [backtrader回测框架实例](https://blog.csdn.net/halps/article/details/127170996)[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^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值