博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【python量化】国内外基于python开发的量化回测框架
阅读量:2051 次
发布时间:2019-04-28

本文共 1351 字,大约阅读时间需要 4 分钟。

文章目录

写在前面

在进行量化策略开发时,必不可少的就是策略回测,虽然有很多量化回测平台如三大矿可以帮助我们进行策略的开发和回测。但是借助别人的平台也有一些弊端,如无法了解回测过程从而无法进行策略执行细节的研究,无法利用本地数据进行测试,或者策略的安全性等等。除了自己搭建回测框架之外,还可以选择利用一些现有的回测框架进行本地化开发。本文介绍了几种国内外比较有名的量化回测框架,并且它们都是基于python进行开发的。

在这里插入图片描述

zipline是美国著名的量化策略平台quantopian开发和维护的量化交易库,并且quantopian量化平台的回测引擎也是基于zipline的,除此之外,像国内比较有名的三大矿聚宽(JointQuant)、米筐(RiceQuant)、优矿的回测引擎也是基于此。另外,由于quantopian平台多年的使用,zipline的专业性是可以保证的,并且zipline在github中的代码也在保持不断更新和改进。

zipline是一种事件驱动(event-driven)的回测框架,有完整的文档和社区,如果你是对国外美股交易感兴趣,那么zipline将比较合适;但是对于国内像A股的数据则无法支持,只能通过本地化的数据进行回测。

zipline的tutorial可以参考它的官方教程:或者Gitbook出品的中文教程:

在这里插入图片描述pyalgotrade同样也是一个事件驱动的回测框架,虽然不如zipline的名气大,但是同样也具有完善的社区和详细的文档。据说pyalgotrade的运行速度和灵活度要比zipline强,但是缺点是不支持pandas。pyalgotrade的tutoral可以参考它的官方教程:

backtrader是一个功能强大的量化策略回测平台,近些年来也一直在保持着github上代码的更新。关于backtrader的学习可以参考backtrader的官方文档:

近些年由于虚拟货币的交易需求,所以也有很多针对于虚拟货币交易的量化回测平台。Catalyst是一个底层基于zipline的算法交易框架,目前比较成熟,并且可以支持策略的回测与实盘( 目前支持四家交易所 Binance, Bitfinex, Bittrex, Poloniex) 。它的官方教程是:

vn.py是国内由陈晓优大佬团队开发量化交易框架,它目前在github上star和fork的数量已经超过了zipline,目前是全球开源量化框架的首位,这确实也是一件值得骄傲的事情。另外,vn.py主要侧重于实盘交易,同样支持通过历史数据进行回测,包括数据的可视化、收益结果、参数调优等,除此之外,它还具备一些常用的CTA策略、SpreadTrading价差交易、行情录制等功能,并且它还具备完善的社区以及教程。新手在使用时,可以通过它的GUI环境VN Station进行使用,同时也可以基于它的策略模版进行自定义的策略开发。关于vnpy的学习可以参考它的官方教程:

总结

最后,关于回测框架之间如果问到哪个最好哪个最坏其实没有什么意义,回测框架不需要都去学习和使用(当然,如果说自己需要开发回测框架的话,借鉴一下他们开发的一些细节和逻辑也未尝不可),如果仅是用于本地测试,选择一种最适合自己需求的框架即可。

转载地址:http://xwklf.baihongyu.com/

你可能感兴趣的文章
《redis设计与实现》 第二部分(第9-11章):单机数据库的实现
查看>>
算法工程师 面经2019年5月
查看>>
搜索架构师 一面面经2019年6月
查看>>
稻草人手记
查看>>
第一次kaggle比赛 回顾篇
查看>>
leetcode 50. Pow(x, n)
查看>>
leetcode 130. Surrounded Regions
查看>>
【托业】【全真题库】TEST2-语法题
查看>>
博客文格式优化
查看>>
【托业】【新托业全真模拟】疑难语法题知识点总结(01~05)
查看>>
【SQL】group by 和order by 的区别。
查看>>
【F12】谷歌浏览器--前台效果可以在不访问服务器的前提下直接改样式看效果是否是预期值。...
查看>>
【Python】详解Python多线程Selenium跨浏览器测试
查看>>
Jmeter之参数化
查看>>
Shell 和Python的区别。
查看>>
Python 列表(list)、字典(dict)、字符串(string)常用基本操作小结
查看>>
Loadrunner之https协议录制回放报错如何解决?(九)
查看>>
python中xrange和range的异同
查看>>
列表、元组、集合、字典
查看>>
【Python】easygui小甲鱼
查看>>