Backtrader 简概

Backtracder 简概

Backtracder 简介

Backtrader 是 2015 年开源 Python 量化回测框架,功能丰富,使用非常灵活。

Backtrader 是基于 Python 编写,使用 pandas 矢量运算,速度快。而且支持金融指标库 Ta-lib ,支持可视化,社区活跃,文档齐全,所以这轮子很不错,基于这轮子,只需要专注编写策略,可大大节省开发时间。

官方文档[1],按模块来介绍,非常详细。

源码地址[2],开源,随便修改。

安装

命令

pip install backtrader
pip install backtrader[plotting]
python setup.py install

模块划分

Backtrader 简概_第1张图片

流程

Backtrader 简概_第2张图片

流程代码

import backtrader as bt # 导入 Backtrader
import backtrader.indicators as btind # 导入策略分析模块
import backtrader.feeds as btfeeds # 导入数据模块

# 创建策略
class TestStrategy(bt.Strategy):
    # 可选,设置回测的可变参数:如移动均线的周期
    params = (
        (...,...), # 最后一个“,”最好别删!
    )
    def log(self, txt, dt=None):
        '''可选,构建策略打印日志的函数:可用于打印订单记录或交易记录等'''
        dt = dt or self.datas[0].datetime.date(0)
        print('%s, %s' % (dt.isoformat(), txt))

    def __init__(self):
        '''必选,初始化属性、计算指标等'''
        pass

    def notify_order(self, order):
        '''可选,打印订单信息'''
        pass

    def notify_trade(self, trade):
        '''可选,打印交易信息'''
        pass

    def next(self):
        '''必选,编写交易策略逻辑'''
        sma = btind.SimpleMovingAverage(...) # 计算均线
        pass

# 实例化 cerebro
cerebro = bt.Cerebro()
# 通过 feeds 读取数据
data = btfeeds.BacktraderCSVData(...)
# 将数据传递给 “大脑”
cerebro.adddata(data)
# 通过经纪商设置初始资金
cerebro.broker.setcash(...)
# 设置单笔交易的数量
cerebro.addsizer(...)
# 设置交易佣金
cerebro.broker.setcommission(...)
# 添加策略
cerebro.addstrategy(TestStrategy)
# 添加策略分析指标
cerebro.addanalyzer(...)
# 添加观测器
cerebro.addobserver(...)
# 启动回测
cerebro.run()
# 可视化回测结果
cerebro.plot()

以上只是开源库 Backtrader 简单的介绍,后面会陆续按模块学习,慢慢玩转回测神器 Backtrader

引用链接

[1] Backtracker 文档链接:https://www.backtrader.com/do...;br/>
[2] Backtrader github: https://github.com/mementum/b...

写于 2022 年 09 月 25 日 22:45:37

本文由mdnice多平台发布

你可能感兴趣的:(程序员)