本次场外篇来介绍下传说中的backtrader

backtrader属于功能相对完善的本地版Python量化回测框架。既然业界好评如云,我们作为量化交易者理应集所有好用的工具于一身,就让我们来体验一下这个框架。

backtrader的使用方法在官方文档上介绍的挺详细的。大体分为两步:

创建一个策略,创建一个策略类,这个类要继承自backtrader.Strategy,然后就可以自定义里面的方法。策略类中有一个类属性params,用于定义一些在策略中可调参数值backtrader.indicators内置了许多指标的计算方法,比如移动平均线、MACD、RSI等等,使用时只需要实例化策略中会使用到的技术指标即可next函数中编写交易策略,也就是进入市场和退出市场的逻辑

创建一个策略决策引擎(原文是Cerebro,这里我用决策这个词)把定义的策略注入到决策引擎之中把行情数据注入到决策引擎之中可视化方式反馈回测结果

以上是框架中核心的部分,当然了,其他还有很多可扩展的功能。

backtrader的数据加载非常灵活,此处我们使用DataFrame格式数据,如下所示:

"""

High Low Open Close Volume OpenInterest

trade_date

2017-01-03 8.12 8.07 8.07 8.12 179801.01 0

2017-01-04 8.16 8.09 8.13 8.15 166242.35 0

2017-01-05 8.23 8.13 8.15 8.17 222902.53 0

2017-01-06 8.19 8.12 8.18 8.13 128549.96 0

2017-01-09 8.15 8.08 8.13 8.13 136700.04 0

"""

构建策略的类是继承backtrader.Strategy,然后根据自己的需要重写其中的方法即可。比如__init__、log、notify_order、notify_trade、next等等。

关于策略中的指标,backtrader内置了很多类型,直接调用即可。比如移动平均线:

self.sma = bt.indicators.SimpleMovingAverage(

self.datas[0], period=self.params.maperiod)

由于内置了talib模块,也可以这么调用:

# 内置了talib模块

self.sma = bt.talib.SMA(self.data,

timeperiod=self.params.maperiod)

next方法中,我们实现一个简单的双均线策略作为交易的逻辑。比如买入条件是MA5上穿MA10;卖出条件是MA10下穿MA5。

关于策略回测,把数据和策略添加到Cerebro中之外,还有设置一些参数。比如broker的设置,像初始资金、交易佣金。也可以用addsizer设定每次交易买入的股数。

回测结束后返回得到执行交易策略时积累的总资金。此处我们回测的是新希望 2017年1月1日到2020年1月1日期间的策略执行效果,最终资金从10000变成了15941.95。

由于backtrader内置了Matplotlib,因此我们也可以可视化回测的效果,如下所示:

总的来说,对于刚进阶的朋友来说是足够使用了,那么无法满足高阶玩家的需求怎么办呢?可以继承框架自己扩展。

python量化交易策略实例_Python进阶量化交易:听说有个回测框架叫backtrader相关推荐

  1. python量化交易策略实例_Python进阶量化交易场外篇3——最大回撤评价策略风险...

    新年伊始,很荣幸笔者的<教你用 Python 进阶量化交易>专栏在慕课专栏板块上线了,欢迎大家订阅!为了能够提供给大家更轻松的学习过程,笔者在专栏内容之外会陆续推出一些手记来辅助同学们学习 ...

  2. python量化交易策略实例_python量化交易策略入门(一):MACD的威力

    最近刚开始学习量化交易,在聚宽网上看了几篇教程,对操作流程有了大致的了解,接下来打算好好研究一下交易策略. 据大奖章基金的Simons透露,他那个每年收益率20%以上的系统,一点都不费解(compli ...

  3. python量化交易策略实例_Python量化实例 – 基于股票的金融数据量化分析

    说明:本文只是通过自己的已学知识对 一.分析目的 利用预先设定的策略,通过对股票交易的历史数据进行回测,验证该策略是否能指导股票交易. 二.数据处理 1.数据集描述 数据集简介:此数据集来源于Nasd ...

  4. 量化策略——准备3 数据、Backtrader回测框架与quantstats评价指标

    我们一般使用AKShare这个库来获取股票数据或策略中用得到的数据: AKShare github主页:https://github.com/akfamily/akshare 使用Backtrader ...

  5. python量化策略源码_Python量化交易进阶讲堂-创建自定义量化回测框架

    欢迎大家订阅<Python实战-构建基于股票的量化交易系统>小册子,小册子会陆续推出与小册内容相关的专栏文章,对涉及到的知识点进行更全面的扩展介绍,并且会有选择地收录至小册中,更便于广大读 ...

  6. python量化回测框架_股票量化交易回测框架pyalgotrade源码阅读(一)

    PyAlgoTrade是什么呢? 一个股票量化交易的策略回测框架. 而作者的说明如下. To make it easy to backtest stock trading strategies. 简单 ...

  7. 《Python股票量化交易从入门到实践》随书赠送“回测框架”的使用帮助

    点击:QTYX最新版本使用指南[文字版] 点击:QTYX最新版本使用指南[视频版] 点击: QTYX历史版本更新说明 赠送"回测框架"的目的 为了帮助读者再建立一座从书本知识到实战 ...

  8. 手把手教你用Python搭建自己的量化回测框架【均值回归策略】

    1 引言 大部分量化策略都可以归类为均值回归与动量策略.事实上,只有当股票价格是均值回归或趋势的,交易策略才能盈利.否则,价格是随机游走的,交易将无利可图.均值回归是金融学的一个重要概念,指股票价格无 ...

  9. 【python量化】国内外基于python开发的量化回测框架

    文章目录 写在前面 Zipline PyAlgoTrade BackTrader Catalyst Vn.py 总结 写在前面 在进行量化策略开发时,必不可少的就是策略回测,虽然有很多量化回测平台如三 ...

  10. 6款优秀的量化交易回测框架!VNPY位居第一

    一个策略从想法,到测试,在到实盘,然后改进,进入另一个循环,需要很多的时间和精力.这时候选择一款高效.灵活的测试系统就是当务之急了.即使最后你可能需要写自己的系统,但是这些框架的软工架构还是很值得借鉴 ...

最新文章

  1. dueros模拟测试没有请求后台_实战 | 用手写一个骚气的请求合并,演绎底层的真实...
  2. mysql having
  3. 计算几何 -- 旋转坐标系
  4. [Angularjs]ng-select和ng-options(转载)
  5. 量子纠缠,如何理解不确定性
  6. 安装SQL 2016的时候 Microsoft R Open 和 Microsoft R Server 安装文件的位置
  7. c语言软件下载与配置
  8. 155款安卓开源项目源码整理,总有你要找的(精心收集)
  9. 启动计算机管理服务,win10系统打开服务管理器的五种方法
  10. OpenGL纹理叠加基础知识
  11. Android蓝牙配对
  12. 英语preciouscorals贵珊瑚PreciousCorals红珊瑚
  13. JPA之SQL修改语句
  14. 打造自己的专属Linux(一):快速建立一个小型Linux
  15. 浅论信息流广告与DSP营销推广的区别有哪些
  16. 如何解决 bin log 与 redo log 的一致性问题
  17. MySQL自动更新当前时间戳
  18. python 解方程 sympy_SymPy解方程的实现
  19. 唯一摩尔斯密码词 leetcode Java篇
  20. 手机APP开发之MIT Appinventor详细实战教程(十一),地图API的调用与学习,第一部分

热门文章

  1. qq邮箱foxmail imap服务器,开通IMAP服务 用Foxmail远程遥控QQ邮箱
  2. 超强文本编辑器SciTE配置方法详细实例
  3. 鸿蒙三千法则排名,三千法则名称大全_十大最强法则
  4. 抖音实战~手机号一键注册登录流程(验证码)
  5. 《羊了个羊》谁还在玩我笑他两年半
  6. 计算机win10搜不到wifi,Windows10笔记本找不到无线网络如何处理
  7. ESP32使用I2C数字电阻AD5254做PT100仿真
  8. 产品读书《用户力:需求驱动的产品、运营与商业模式》
  9. “无法访问 您可能没有权限使用网络资源”解决办法
  10. 阿里云服务器配置好了,为什么访问不了?阿里云安全组放行1433端口设置您知道吗?