量化投资策略:常见的几种Python回测框架(库)

原文地址:http://blog.csdn.net/lawme/article/details/51454237

本文章为转载文章。这段时间在研究量化策略方向,研究了Zipline一段时间,但是后续发现他仅支持美国股票,收集量化策略文章,转载到博客中。

在实盘交易之前,必须对量化交易策略进行回测。在此,我们评价一下常用的Python回测框架(库)。评价的尺度包括用途范围(回测、虚盘交易、实盘交易),易用程度(结构良好、文档完整)和扩展性(速度快、用法简单、与其他框架库的兼容)。

  • Zipline: 事件驱动的回测框架。Quantopian 正在使用它。

    • Zipline 拥有大型社区,文档完整,对著名经纪公司Interactive Broker (IB)有大力支持;整合了Pandas,语法清晰,易于学习掌握。
    • 有大量例程examples。你若主要是为了交易美国证券,它是最好的选择。Quantopian 允许回测、分享并在其社区讨论交易策略。
    • 不过,据我们的经验,Zipline 速度极慢。这是它最大的短板。Quantopian 有些对策,如在云端作并行运行。若有兴趣,你可看看这篇博文 。
    • Zipline 似乎很难使用本地数据文件和非美数据。
    • 它很难用于不同种类的金融资产。
  • PyAlgoTrade: 也是事件驱动的回测框架,支持虚盘和实盘两种交易。文档完整,整合了TA-Lib(技术分析库)。在速度和灵活方面,它比Zipline 强。不过,它的一大硬伤是不支持 Pandas 的模块和对象。
  • pybacktest: 它以处理向量数据的方式进行回测,非常简单轻便。2015年5月21日,这个项目有复活的迹象。
  • TradingWithPython: 这位Jev Kuznetsov 扩展 pybacktest 形成自己的回测程序。这个库似乎在2015年2月更新了。不过,相关的文档和课程售价 $395。
  Zipline PyAlgoTrade TradingWithPython pybacktest
类型 事件驱动 事件驱动 向量处理 向量处理
社区 较大 一般
云计算 Quantopian
支持 IB
数据源 Yahoo, Google, NinjaTrader Yahoo, Google, NinjaTrader, Xignite, Bitstamp 实时提供数据    
文档 完整 完整 $395 很少
事件可定制    
速度    
支持Pandas
交易日历
支持TA-Lib  
适用于

仅用于美国证券交易

实盘交易
虚盘交易
虚盘测试交易 虚盘测试交易

Zipline 与 PyAlgoTrade 的对比评分

  Zipline PyAlgoTrade 说明
虚盘交易

♦ ♦ ♦

Zipline 似乎不能用非美数据和本地数据工作,而 PyAlgoTrade 可以使用任何类型的数据
实盘交易

♦ ♦

♦ ♦

二者都不错,但 Quantpian 的云计算编程很好
灵活性

♦ ♦

♦ ♦ ♦

PyAlgoTrade 支持各种高级定单,并有更多的业务事件。 Zipline 提供了简单的滑点模式
速度

♦ ♦ ♦

Zipline 比 PyAlgoTrade 慢
易用性

♦ ♦ ♦

♦ ♦

PyAlgoTrade 不支持 pandas

量化投资策略:常见的几种Python回测框架(库)的更多相关文章

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

    手把手教你用Python搭建自己的量化回测框架[均值回归策略] 引言 大部分量化策略都可以归类为均值回归与动量策略.事实上,只有当股票价格是均值回归或趋势的,交易策略才能盈利.否则,价格是随机游走的, ...

  2. OnePy--构建属于自己的量化回测框架

    本文主要记录我构建量化回测系统的学习历程. 被遗弃的项目:Chandlercjy/OnePy_Old 新更新中的项目:Chandlercjy/OnePy 目录 1. 那究竟应该学习哪种编程语言比较好呢 ...

  3. 量化投资学习笔记01——初识Pyalgotrade量化交易回测框架

    年初学习量化投资,一开始想自己从头写,还是受了C/C++的影响.结果困在了计算回测数据那里,结果老也不对,就暂时放下了.最近试了一下python的各个量化投资框架,发现一个能用的——pyalgotra ...

  4. 回测框架pybacktest简介(一)

    pybacktest 教程 本教程让你快速了解 pybacktest's 的功能.为此,我们回测精典交易策略移动平均线MA交叉. MA快线上穿慢线时,买进做多 MA快线下穿慢线时,卖出做空 进场规则, ...

  5. 回测框架pybacktest简介(二)

    pybacktest 的疑点 第(一)节“教程”原文,是用 ipython notebook 写成,程序代码是一些片段组成. 为了阅读方便,合并在一起. 本文转载于:http://blog.csdn. ...

  6. FMZ发明者量化平台回测机制说明

    原文连接:https://www.fmz.com/digest-topic/4009 大部分策略在实盘之前都需要回测进行验证,FMZ支持部分品种数字货币现货.期货和永续合约,以及商品期货所有品种.但发 ...

  7. 一个采用python获取股票数据的开源库,相当全,及一些量化投资策略库

    tushare: http://tushare.waditu.com/index.html 为什么是Python? 就跟javascript在web领域无可撼动的地位一样,Python也已经在金融量化 ...

  8. Python中执行系统命令常见的几种方法--转载

    Python中执行系统命令常见的几种方法 Python中执行系统命令常见的几种方法有: (1)os.system # 仅仅在一个子终端运行系统命令,而不能获取命令执行后的返回信息 # 如果再命令行下执 ...

  9. python三大web框架Django,Flask,Flask,Python几种主流框架,13个Python web框架比较,2018年Python web五大主流框架

    Python几种主流框架 从GitHub中整理出的15个最受欢迎的Python开源框架.这些框架包括事件I/O,OLAP,Web开发,高性能网络通信,测试,爬虫等. Django: Python We ...

随机推荐

  1. PHP对象转数组

    Solution json_decode( json_encode( $obj ), true ): But why?You should have a look at the function na ...

  2. C# 使用BackgroundWorker实现WinForm异步

    写了一个基于BackgorundWorker演示异步操作的例子.由于这个理基本上实现了BackgorundWorker的大部分功能:异步操作的启动.操作结束后的回调.异步操作的撤销和进度报告等等.尽管 ...

  3. 文件上传—SSH框架文件上传

    1.准备上传的api组件 <dependency> <groupId>commons-io</groupId> <artifactId>commons- ...

  4. hdu 5068 线段树加+dp

    这题说的是 有n 层每层 有两个门 每个门 可以到达上一层的两个门,然后求从a 层到达b 层的方案总数, 不能后退, 在同一层中不能从第一个门到达另一层 我们只要我们可以对于每个 区间内 有dp[o] ...

  5. Android SurfaceView入门学习

    学习资料: Android 开发群英传 搜索学习资料时,搜到了罗升阳老师的Android视图SurfaceView的实现原理分析,老罗老师写的一系列博客,一年前开始学习Android时看不懂,现在依然 ...

  6. bzoj1623 / P2909 [USACO08OPEN]牛的车Cow Cars

    P2909 [USACO08OPEN]牛的车Cow Cars 显然的贪心. 按速度从小到大排序.然后找车最少的车道,查询是否能填充进去. #include<iostream> #inclu ...

  7. # 20145118 《Java程序设计》第4周学习总结 ## 教材学习内容总结

    20145118 <Java程序设计>第4周学习总结 教材学习内容总结 本周内容为教材第六.七两张内容. 重点概念: 1.面向对象中,子类继承父类,避免重复的行为定义,是一种简化操作. 2 ...

  8. Linux硬盘扩容(非LVM)

    环境说明: 虚拟机:Centos6 [root@elements ~]# cat /etc/redhat-release CentOS release 6.10 (Final) [root@eleme ...

  9. 【Java----统计字符串匹配个数】

    org.apache.commons.lang3.StringUtils包带的工具类 StringUtils.countMatches(context, keyword);

  10. 【日志过滤】Nginx日志过滤 使用ngx_log_if不记录特定日志

    ngx_log_if是Nginx的一个第三方模块.它在Github上的描述是这样介绍的:ngx_log_if是一个独立的模块,允许您控制不要写的访问日志,类似于Apache的"CustomL ...