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

一个好的测试系统应该具有如下特点:
代码、项目仍然在维护,测试充分代码组织好,组件灵活,方便拓展,最好开源社区健全,可以讨论相关问题文档完整、全面

下面我介绍6款开源社区贡献的会测框架,看看那一款是你的菜?排名不分先后,各有千秋,我的观点后再最后说明。

1.VNPY仿真柜台
VNPY官网​http://www.vnpy.cn

推荐指数:5 星
回测类型:仿真柜台,支持所有第三方框架
回测速度:慢
实盘模拟:好
实盘支持:是社
区建设:非常好
组件灵活:好
文档:好
语言:Python2,Python3,C++,JAVA,C#,GO,JULIA 等所有语言框架

是这里唯一一个国产框架,做的非常成功。我大概是几年前开始关注这个框架的,看着他一点点重构,发展到现在的规模。社区也在欣欣向荣的发展。

这个框架,最开始的时候主要以连接多个交易平台为目的,是实盘交易导向的,回测功能是后面慢慢发展起来的,功能比较有限。但是由于代码量不大,如果有时间自己拓展也是一个不错的选择。客观的说,从代码和架构看,还有待加强。

2.Virtualapi
VirtualApi 期货CTP TICK级本地量化交易仿真回测首页​
http://www.virtualapi.cn

VirtualApi仿真API的回测技术,它是模拟原生API来实现的。例如通过模拟原生交易API和行情API,例如通过模拟原生API的库方法的定义、头文件的定义等,使得回测和实盘交易代码,简单的将实盘代码替换为仿真API,对底层代码可不作改动或改动较少即可实现回测和参数优化。

推荐指数:5 星
回测类型:仿真柜台,支持所有第三方框架
回测速度:慢
实盘模拟:好
实盘支持:是
社区建设:非常好
组件灵活:好
文档:好
语言:Python2,Python3,C++,JAVA,C#,GO,JULIA 等所有语言框架

3.QuantConnect

QuantConnect, 与Quantopian的模式非常类似,但是除了提供Web接口以外,还提供本地的SDK进行测试,代码已经开源:QuantConnect/Lean,核心的代码是C#完成的,但是提供F#和Python 的API。

Lean Engine是一个开源算法交易引擎,专为简单的策略研究,回溯测试和实时交易而构建。我们与通用数据提供商和经纪商集成,因此您可以快速部署算法交易策略。
LEAN引擎的核心是用C#编写的;但它可以在Linux,Mac和Windows操作系统上无缝运行。它支持用Python 3.6,C#或F#编写的算法。QuantConnect的社区建设也很不错,结合相关的Web前端,交流比较方便。

由于开放了本地SDK,你可以不必上传自己的策略,隐私保护方便比较完善。同时定制方便也更加优秀。

推荐指数:3 星
回测类型:Event driven
回测速度:快
实盘模拟:好
实盘支持:是
社区建设:好
组件灵活:好
是否开源:是
文档:非常好
语言:C#,F#, Python

4. Zipline

Zipline是一个Pythonic算法交易库。它是一个事件驱动的回溯测试系统。 Zipline目前在生产中用作为Quantopian提供动力的回测和实时交易引擎 - 一个免费的,以社区为中心的托管平台,用于构建和执行交易策略。

这个框架由于是Python 构建的,已经集成了许多机器学习相关的应用,可以方便的将机器学习模型结合进自己的策略中。

推荐指数:3 星
回测类型:Event driven
回测速度:慢
实盘模拟:好
实盘支持:是
社区建设:非常好
组件灵活:中
是否开源:是
文档:非常好
语言:Python3

5.Backtrader
是一款纯Python的回测+实盘框架。从软件工程的角度,这个项目非常值得学习。这个框架的代码风格非常Pythonic,也值得借鉴和学习。作者是一个很严谨的德国人,从他的代码审查和社区管理可见一斑。

backtrader允许您专注于编写可重复使用的交易策略,指标和分析器,而不必花时间构建基础架构。

我仔细研究过这个框架的源代码,作者软件工程功力不错,代码干净、架构合理,特别容易拓展。代码量并不大,元测试相对比较完善。得益与清晰的源代码,二次开发非常容易。

社区相对比较完整,参与度较高。作为一款没有任何商业支持的开源框架,我认为他做的非常成功。

推荐指数:5 星
回测类型:Event driven 和 Vectorized
回测速度:中
实盘模拟:好
实盘支持:是
社区建设:好
组件灵活:非常好
是否开源:是
文档:非常好
语言:Python 3

6.Pyalgotrade
也是一个纯Python回测框架,同样没有任何商业支持,完全开源。从代码风格看,作者应该具有很强的Java背景,无论是代码风格,还是代码架构,非常Old School!在功能性方便,框架的提供的功能少与Backtrader。

PyAlgoTrade是一个Python算法交易库,专注于回溯测试和对纸张交易和实时交易的支持。假设您对交易策略有所了解,并且您希望使用历史数据对其进行评估,并了解其行为方式。

但是,该框架目前还没有社区,只能在Github上面提交Issues。

推荐指数:4 星
回测类型:Event driven
回测速度:中
实盘模拟:好
实盘支持:是
社区建设:差
组件灵活:中
是否开源:是
文档:非常好
语言:Python 2&3

6款优秀的量化交易回测框架!VNPY位居第一相关推荐

  1. Pyalgotrade量化交易回测框架

    现在就开始干活了.先要测试一下pyalgotrade回测数据对不对.我找了个参照标准:在聚宽上开通了个账号,按入门教程写了个策略:2016-2018年每个交易日买入100股平安银行(000001),回 ...

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

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

  3. python外汇交易回测系统_StarQuant - 综合量化交易回测系统/平台

    Welcome to StarQuant StarQuant(中文名:易数交易系统)是一个轻量的.面向个人( 普通)用户的综合量化交易回测系统,目前主要用于期货期权程序化交易(CTP接口,在实盘测试中 ...

  4. 量化交易-回测调参-神龙摆尾

    系列文章目录 第一章 神龙摆尾 文章目录 目录 系列文章目录 文章目录 前言 一.所涉结构模型简介 二.策略实现 1.策略源代码 2.初步参数调优-选股参数 3.进一步参数调优-卖出参数 总结 前言 ...

  5. 【思考14】量化交易回测中,关于涨跌停的处理方式

    这篇文章免费,可以在知乎看到 有好多人在量化交易的回测过程中,对股票.期货之类的涨跌停比较在意,害怕涨跌停了之后交易不了,本文就尝试梳理下我对涨跌停的看法以及我在回测中的应对方式. 在开始本文对涨跌停 ...

  6. 基于强化学习的期权量化交易回测系统1

    概述 量化交易平台很重要的一个环节就是回测系统,可以通过对历史行情的回放,验证量化交易策略的性能表现.量化交易强化学习环境,则是向Agent提供一个交互的环境,Agent(即量化策略)根据市场环境(强 ...

  7. python股票回测_Python量化交易-回测简单的交易策略

    这篇文章主要介绍如何使用Python对一些简单的交易策略进行回测,对这块比较感兴趣的朋友可以看一看. 1.获取证券数据 本文以A股市场为例,先获取A股近10年的数据并保存到数据库. 1.1.安装数据库 ...

  8. 基于强化学习的期权量化交易回测系统5

    我们现在已经可以在主循环中获取行情数据,并且传给了Agent类.接下来Agent类会调用策略类,由于决定采取的行动.在策略类做决策时,需要参考用户仓位Position信息,还有就是权利金.保证金.手续 ...

  9. 5、Python量化交易-回测收益计算

    目录 前言 一.回测的主方法 二.回测实现 1 - 获取回测数据ticks 2 - 运行回测 3 - 为回测数据添加生成方法 4 - sell中添加订单的pnl收益计算 5 - 策略执行中调整买卖ma ...

最新文章

  1. b站弹幕 xml php 乱码,B站弹幕Python爬行XML响应中的代码转换问题,python,之,取,b,xml,时,转码...
  2. 2015年的ResNet潜力都挖掘出来了吗?新研究:不用蒸馏、无额外数据,性能还能涨一波...
  3. 模拟一个连接来自搜索引擎
  4. 输入参数_MyBatis中的输入/输出参数
  5. 整数中1出现的次数(从1到n整数中1出现的次数)
  6. Windows7 beta1 微软官方下载
  7. Taro+react开发(79):taro生命周期setstate异步
  8. iis php网站500错误原因_如何解决iis php 500错误问题
  9. STM32 不小心被锁住,解开方法
  10. Python fullstack系列【2】Python数据类型
  11. 农历日期用html怎么显示,怎么显示阴历(农历)日期的js代码?
  12. 国民生产总值饼状图_预期寿命和国内生产总值
  13. 用UltraISO制作镜像以RAW格式写入到U盘后,无法识别的解决办法
  14. mysql 自动备份_windows下mysql定时自动备份
  15. 基于vivado DDS ip核的DDS信号发生器(可调频调相)
  16. nacos使用mysql8作为存储媒介时报Caused by: com.mysql.cj.exceptions.CJException: Public Key Retrieval is not all
  17. ​治理 V20 领导应如何支持
  18. 项目奖金要不要与合同额直接相关?
  19. IBM实习工作(一)
  20. 程序员客栈统计:2021年中国程序员薪资和生活现状调查报告

热门文章

  1. http内容安全策略Content Security Policy(CSP)
  2. PowerDesigner 画类图
  3. Linux驱动开发1:驱动开发与裸机开发的区别
  4. ArcGIS处理多维栅格NC格式的全球土壤数据集
  5. 盘点那些令人惊艳的黑科技
  6. Linux shell:free命令的使用说明
  7. 基于容器特点和传统网络安全能力进行容器云安全规划设计
  8. HeidiSQL 简单使用流程
  9. 【流行学习】拉普拉斯映射(Laplacian Eigenmaps)
  10. 计算机二级课程论文摘要,摘要、论文格式概念.doc