VNPY以国内合规市场为蓝图,构建一套高性能完整的量化交易产品。
VNPY官网:
被量化交易资源大全收录
目前提供了CTP仿真回测柜台环境,该环境和编程语言市无关的,可以支持市场上所有的CTP第三方框架和自编CTP程序,甚至可以用于快期人工下单进行复盘。
换句话说,VNPY真正把仿真柜台放到了本地硬盘,可自行部署。
CTP接口目前支持:
支持交易所:上海期货交易所、大连期货交易所、郑州期货交易所、中金所、能源所
支持期货公司:宏源期货、华安期货、光大期货、广发期货等所有145家期货公司
VNPY支持: 期货CTP实盘接口、仿真回测接口、历史Tick数据、实时数据采集工具(支持商品期货、股指期货)
为大家提供了全系列的行情数据采集工具,并将历史采集数据发布到百度网盘免费共享,以后给位做量化的小朋友不用再为找不到历史数据发愁了。
百度网盘免费共享
期货行情TICK采集工具免费共享
VNPY For CTP仿真柜台
您是摄影师,本来用普通镜头拍照再PS中合成大广角,这次送您一个广角镜头,还需要什么后期处理?!
通过替换API方式实现TICK级仿真回测,源代码一行都不用修改。当然也支持原来陈旧架构的VNPY开源框架实现回测,也支持海风,支持Pyctp,支持JAVA ctp,支持易语言CTP,支持C++ 自编,还支持文华呢,支持快期也没问题,支持金字塔,支持TB....
总之一句话,支持一切CTP自编程序和直连客户端,无需修改代码,无第三方方法,有史以来最强兼容性的回测方式。
只需要替换2个DLL文件,即可实现回测,获得国家发明专利。
CTP原生API
并提供免费CTP穿透监管服务
商品、股指\期货、期权CTP接口资源
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个文件,而对于thostmduserapi.dll、thosttraderapi.dll、thostmduserapi.lib、thosttraderapi.dll这4个文件是VNPY仿真回测提供模拟CTP的实现,而ThostFtdcMdApi.h、ThostFtdcTraderApi.h、ThostFtdcUserApiDataType.h、ThostFtdcUserApiStruct.h 这4个头文件则保持和CTP对应版本一模一样。
list.csv作用:该程序放到回测程序的目录下,用于指定csv格式的数据文件的存放路径,并非自己存放Tick数据,在回测时VNPY For CTP会从上至下依次读取list.csv种这些文件的Tick数据,并触发CTP方法里的深度行情通知回调函数 virtual void OnRtnDepthMarketData(CThostFtdcDepthMarketDataField *pDepthMarketData),使得和CTP的OnRtnDepthMarketData回调方法一致。 值得注意的是,list.csv指定的数据文件库的字段顺序目前不能更改,将来可能提供字段顺序的自定义设置功能。
VNPY CTP仿真回测.使用说明
本节以CTP接口为例,讲述如何完成实盘量化交易程序转实盘的步骤。
CTP C++实盘代码转回测:
步骤一: 您已经实现了CTP实盘接入的代码;
步骤二: 将VNPY仿真回测库文件、绘图程序、配置文件复制粘贴到您已经编译好的程序的根目录下,如果是同名的问题,可以直接替换。对C++ 实盘程序转回测,虽然您可以替换.lib文件重新编译一次,但实际上无需重新编译您原有的程序;
步骤三: 修改回测数据配置文件,指定数据文件目路径;
步骤四: 运行您自己的程序,进行TICK级回测。
由于VNPY仿真回测是与编程语言无关的,所以支持所有的CTP自编程序实现TICK级回测。对各种框架而言,也只需要替换thostmduserapi.dll、thosttraderapi.dll文件即可。 另外需要把2个配置文件list.csv和2个绘图程序Price.exe,Graph.exe 复制到主程序目录下。