简介

Backtrader 是一个基于 Python 的回测交易开发框架,使用它可以方便的编写策略和技术指标。

主要功能:

  • 支持以下平台的实时价格数据和实时交易
    • 盈透证券 (需要安装 IbPypytz)
    • Visual Chart (需要安装 comtypespytzcomtypes 需要在官方的基础上做一些修改)
    • Oanda (需要安装 oandapy)
  • 来自 csv 文件的数据、网络数据或来自 pandasblaze 的数据
  • 数据处理器(可以将日线数据拆分,模拟日内数据)
  • 多数据源和多策略
  • 多时间窗口
  • 重采样和重放
  • 分步回测或一次性回测 (策略调优除外)
  • 大量技术指标
  • 支持嵌入 TA-Lib 组件
  • 自定义技术指标开发
  • 回报评价指标(如:时间周期收益、夏普比率、SQN),输出可用于 pyfolio 的结果
  • 自定义手续费逻辑
  • 支持 市价单周期结束单 (如以一分钟、一小时结束后价格成交)、限价单止损单止损现价单 ,还支持交易滑点和期货复权
  • 结果绘图 (需要安装 matplotlib)

本框架主要有两个设计目标:

  1. 易于使用
  2. 第1点

大致基于*宫城健介*的*空手道*规则。

运行框架的大致步骤(译者注:原版结构就是这样,终于原版):

  • 创建一个策略
    • 决定好技术指标的参数(如均线周期数)
    • 添加框架自带的 Indicators 技术指标
    • 编写好买入和卖出的代码

或者:

  • 编写你自己的 做多 / 做空 逻辑

然后:

  • 实例化 Cerebro 回测引擎

    • 首先:
      • 加入刚才编写的策略

    • 加入信号 Signals (简化版的策略)

    然后:

    • 加载价格数据
    • 执行 cerebro.run() 进行回测
    • 执行 cerebro.plot() 绘制结果

框架可以高度自定义

希望框架能帮上忙并且用的顺手。