2021年7月 VNPY官方推出全新架构VNTrader,性能比老版本的性能大幅提升,得益于C++多线程驱动模式,而在Python和PyQT层面,体验更顺手。
并计划植入了强大的TICK级仿真回测系统。
VNTrader是针对CTP接口的专属版本,适合国内商品期货,股指期货、商品期权、股指期权实现程序化交易。
开源地址:
VNPY推出了仿真回测柜台后,改变了早期产品回测速度慢的问题VNPY/VNPYVNPY推出了仿真回测柜台后,改变了早期产品回测速度慢的问题
VNPY CTP仿真回测.产品简介
VNPY仿真回测是一项底层仿真回测技术,是基于底层而不是应用层,所以是和编程语言无关的,并且没有第3方平台提供的方法,可以在不修改原有代码的前提下实现回测。VNPY仿真回测目前主要提供了上海期货交易所的CTP接口(支持商品期货、股指期货),未来还将提供对券商、服务商、交易所的各种API进行仿真的版本。 本节以CTP接口为例,讲述如何完成实盘量化交易程序转实盘的步骤。
VNPY底层仿真回测是免费软件,任何人和公司均可免费下载使用。
现在的量化回测软件和方法有三类,一类是通过文华、TB、MC等商业软件,在商业软件中通过编写交易指标和交易公式,或通过加载用户自己开发的第三方策略库进行交易策略的开发和回测;第二类是直接使用交易所、券商、API软件服务商提供的API或券商等机构提供的行情和交易API直接开发交易策略,或通过一些回测框架调用这些原生API进行回测;第三类是利用聚宽、优矿的网站在线平台进行回测。 若采用第一类商业软件开发量化交易回测系统,虽然对从事量化交易的人来说,开发策略需要的工作量较少,对开发者编程能力要求不高。但缺点也是显而易见的,除了商业软件本身需要收费提高了交易成本以外,采用商业软件开发交易策略不够灵活,使得很多交易策略无法实现。 若采用第二类直接使用API开发策略或采用针对API的回测框架,例如python的各种回测框架、matlaba的各种回测框架、R语言的各种回测框架,PyAlgoTrade、Zipline等、虽然开发策略较为灵活,但缺点是开发交易策略的实盘代码并不能直接进行回测,必须要采用引入回测框架进行回测,待回测完毕,再将回测完成的参数接入实盘策略代码中或删除回测框架部分的代码接入实盘交易的API,使得量化交易回测代码和实盘的代码有较大的改动,增加了策略开发者的工作,也增加了量化交易爱好者时间成本,甚至对很多编程能力有限的量化爱好者来说提搞了研究难度的门槛。
若采用第三类在线回测平台进行回测,由于需要将编写的策略在网站指定的服务器上运行,由于是多用户共享一台服务器,所以回测性能无法得到保证、网站更倾向于采用精度不高的数据进行回测。还由于对策略开发者来说不是使用原生API进行开发策略,所以策略开发的自由度也不够,很多想法也无法实现。更重要的是,选择网站在线平台的方式来开发量化交易策略,就等于默认了网站管理员可随时查看自己辛辛苦苦开发的策略代码,保密性让人担忧,从事量化交易的专业机构几乎不会采用在线网站的回测方式。 近年来,量化交易在金融领域应用的越来越广发,回测系统的设计是量化交易中不可缺失的一部分,但同时也暴露出一些问题,例如商业软件成本高、自己搭建会测框架时间成本高,难度大、采用第三方回测框架难度大、回测到实盘交易的代码改动较大、量化策略保密性不高等等。 为了克服现有技术存在的上述不足,VirtualApi仿真API的回测技术应运而生,它是模拟原生API来实现的。例如通过模拟原生交易API和行情API,例如通过模拟原生API的库方法的定义、头文件的定义等,使得回测和实盘交易代码,简单的将实盘代码替换为仿真API,对底层代码可不作改动或改动较少即可实现回测和参数优化。
VNPY CTP仿真回测.支持编程语言
支持多种编程语言,包括C++、Python、Java、C#、Golang、易语言等 。
VNPY CTP仿真回测.支持的操作系统
VNPY底层仿真回测系统支持Windows操作系统,版本要求Windows7、Windows2008及以上。
VNPY CTP仿真回测.支持语言框架
支持各种自编CTP程序和各种编程语言框架,例如C++、Python、JAVA、C#等。
支持海风、VNPY、PyCTP等所有框架和自编程序。
VNPY CTP仿真回测.实盘回测C++流程图对比
标准CTP C++实盘程序化交易程序流程图
标准CTP C++通过VNPY仿真回测程序流程图
VNPY CTP仿真回测.库文件
CTP Api是C++库,理论上可以用于包括C++、Python、Java、C#、等在内的多种编程语言的调用。
VNPY For CTP一样是采用C++开发,目前只支持Windows操作系统,运行采用VNPY For CTP的计算机和TradeAgent.exe的计算机采用要求Windows7、Windows2008及以上系统,对于Windwo7和Windows Server2008这些较为陈旧的Windows系统安装微软运行时库redist2015补丁。 以最常用的CTP无中继代理模式为例(于2019.6.14实施的穿透式和老的非穿透式),CTP API Windows版本含以下文件:
其中ThostFtdcMdApi.h、ThostFtdcTraderApi.h、ThostFtdcUserApiDataType.h、ThostFtdcUserApiStruct.h 是头文件,thostmduserapi.dll、thosttraderapi.dll、thostmduserapi.lib、thosttraderapi.dll。
可以看到VNPY仿真回测库在原CTP库基础上增加了list.csv,Price.exe,Graph.exe这3个文件,而对于thostmduser