一个策略从想法,到测试,在到实盘,然后改进,进入另一个循环,需要很多的时间和精力。这时候选择一款高效、灵活的测试系统就是当务之急了。即使最后你可能需要写自己的系统,但是这些框架的软工架构还是很值得借鉴的。
一个好的测试系统应该具有如下特点:
代码、项目仍然在维护,测试充分代码组织好,组件灵活,方便拓展,最好开源社区健全,可以讨论相关问题文档完整、全面
下面我介绍6款开源社区贡献的会测框架,看看那一款是你的菜?排名不分先后,各有千秋,我的观点后再最后说明。
1.VNPY开源量化交易软件
VNPY官网
开源链接 VNPY: VNPY3.0客户端开源代码VNPY3.0是VNPY官方提供的CTP开源项目客户端源代码,支持国内149家期货公司的CTP接入,支持股指期货,股指期权、商品期货、商品期权的程序化交易和量化交易的仿真回测。
VNPY: VNPY3.0客户端开源代码VNPY3.0是VNPY官方提供的CTP开源项目客户端源代码,支持国内149家期货公司的CTP接入,支持股指期货,股指期权、商品期货、商品期权的程序化交易和量化交易的仿真回测。/vnpycn/vnpy
VNPY 属于 上海量贝信息科技有限公司是国内运用全面的开源量化交易框架。 我司上海量贝信息科技有限公司是中国大陆从事量化相关软件的信息和软件服务企业,公司位于上海,在国内市场,我们的客户定位包括个人量化交易爱好者、高校、证券公司、基金管理公司、银行和投资公司等金融企业。 精于量化,以回测为起点,我司紧密跟随金融市场日新月异的发展,不断向新的领域发展,新的产品和服务战略不断在延伸,在金融领域,我司已建成完整的产品系列 。
推荐指数:5 星
回测类型:仿真柜台,支持所有第三方框架
回测速度:慢
实盘模拟:好
实盘支持:是社
区建设:非常好
组件灵活:好
文档:好
语言:Python2,Python3,C++,JAVA,C#,GO,JULIA 等所有语言框架
是这里唯一一个国产框架,做的非常成功。我大概是几年前开始关注这个框架的,看着他一点点重构,发展到现在的规模。社区也在欣欣向荣的发展。
这个框架,最开始的时候主要以连接多个交易平台为目的,是实盘交易导向的,回测功能是后面慢慢发展起来的,功能比较有限。但是由于代码量不大,如果有时间自己拓展也是一个不错的选择。客观的说,从代码和架构看,还有待加强。
2.Virtualapi
VirtualApi 期货CTP TICK级本地量化交易仿真回测首页
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
————————————————
版权声明:本文为CSDN博主「weixin_49537459」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:/weixin_49537459/article/details/107487661