模拟期货交易软件(基金460001)

2022-06-06 14:26:56 证券 xialuotejs

VirtualApi目前支持上海期货交易所的CTP回测,

可以看做本地计算机架设了一套SIMNOW仿真环境,可用于CTP程序化交易,量化交易回测。

VirtualApi2.52版本说明:当前版本的Virtualapi是对上期CTP接口 6.3.15的仿真(包括上期SIMNOW和各期货公司实盘都采用6.3.15版本)

支持的编程语言

VirtualApi Api支持多种编程语言,包括C 、Python、Java、C#、Golang、易语言等 进行量化交易回测。

支持的操作系统

VirtualApi Api支持Windows操作系统,版本要求Windows7、Windows2008及以上。

支持的量化交易框架

VirtualApi 支持各种基于CTP接口的自编程序和框架,例如vn.py、Quicklib、海风等。

CTP Demo和Virtualapi For CTP Demo 代码是一样的,不同的采用了2套DLL。

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

升级说明:Virtualapi V2.5.2 解决了上一个版本在某些环境中查询持仓回调不反回数据的问题。

CTP可以改为自己账户接实盘,Virtualapi用户回测。

问题1:SIMNOW和Virtualapi(VirtualApi 期货CTP TICK级本地量化交易仿真回测首页)所有什么不同?

Virtualapi2.52

SINNOW是上期的CTP接口仿真环境,可以注册期货模拟账户,用CTP api进行交易,SIMNO的功能主要是用于功能测试。

而Virtualapi相当于你可以在本地计算机架设一套SIMNOW的仿真结算系统,并且可以快速回访TICK数据文件,主要用于CTP接口的量化交易回测。

问题2:支持Virtualapi的数据文件从哪里下载?

我们维护了一套支持Virtualapi字段顺序格式的数据采集服务器,一般每半个月到1个月会打包压缩到网盘。

mdshare和quicklib量化交易行情数据共享中心不仅提供了网盘下载链接,还提供了可以自己部署的数据采集服务DataCollect.exe。

问题3:Virtualapi支持哪些编程语言?

Virtualapi是对CTP底层仿真,并不是编程语言框架。所以不管是你自己开发的CTP程序还是用了任何编程语言的CTP框架,都可以使用Virtualapi进行回测,只要通过替换原生DLL的方式,并指定数据文件路径list.csv和指定手续费设置setting.ini,就可以在3分钟内将你之前开发的CTP策略程序转换为回测程序,在代码上可以不做任何修改。

问题4:使用Virtualapi需要注意哪些问题?

CTP是2Tick/秒, Tick之间有0.5秒的延迟,如果你做CTP在行情接收TICK后放入缓冲区,采用另一个线程进行计算,也就是说采用的是生产者消费者模式的话,是不能用于Virtualapi的。

因为Virutlapi是快速回放TICK,如果线程之间价格不一致的话,会导致很大的随机误差,也许计算策略的时候已经是5分钟之前的TICK的价格了,底层结算就会出现误差。

您可以做一个策略,如果同一个程序用同一组数据文件进行回测,资金曲线不完全一致的话就是这种随机误差导致的。

为了避免这个问题的发生,请在使用Virtualapi进行回测的时候,需要在行情回调函数中直接进行策略逻辑的计算,切记不要将Tick放到另一个线程里进行策略逻辑的计算。

行情回调函数是指以下函数:

///深度行情通知

virtual void OnRtnDepthMarketData(CThostFtdcDepthMarketDataField *pDepthMarketData) {};

问题5 :Virtualapi是免费的吗?

Virtualapi承诺提供对所有人*免费的版本。

问题6:Virtualapi支持的数据格式是怎样的?

CSV数据文件字段顺序:

localtime (本机写入TICK的时间),

InstrumentID (合约名),

TradingDay (交易日),

ActionDay (业务日期),

UpdateTime (时间),

UpdateMillisec(时间毫秒),

LastPrice (*价),

Volume(成交量) ,

HighestPrice (*价),

LowestPrice(*价) ,

OpenPrice(开盘价) ,

ClosePrice(收盘价),

AveragePrice(均价),

AskPrice1(申卖价一),

AskVolume1(申卖量一),

BidPrice1(申买价一),

BidVolume1(申买量一),

UpperLimitPrice(涨停板价)

LowerLimitPrice(跌停板价)

OpenInterest(持仓量),

Turnover(成交金额),

PreClosePrice (昨收盘),

PreOpenInterest (昨持仓),

PreSettlementPrice (上次结算价),

VirtualApi诞生的技术背景

现在的量化回测软件和方法有三类,一类是通过文华、TB、MC等商业软件,在商业软件中通过编写交易指标和交易公式,或通过加载用户自己开发的第三方策略库进行交易策略的开发和回测;第二类是直接使用交易所、券商、API软件服务商提供的API或券商等机构提供的行情和交易API直接开发交易策略,或通过一些回测框架调用这些原生API进行回测;第三类是利用聚宽、优矿的网站在线平台进行回测。

若采用第一类商业软件开发量化交易回测系统,虽然对从事量化交易的人来说,开发策略需要的工作量较少,对开发者编程能力要求不高。但缺点也是显而易见的,除了商业软件本身需要收费提高了交易成本以外,采用商业软件开发交易策略不够灵活,使得很多交易策略无法实现。

若采用第二类直接使用API开发策略或采用针对API的回测框架,例如python的各种回测框架、matlaba的各种回测框架、R语言的各种回测框架,PyAlgoTrade、Zipline等、虽然开发策略较为灵活,但缺点是开发交易策略的实盘代码并不能直接进行回测,必须要采用引入回测框架进行回测,待回测完毕,再将回测完成的参数接入实盘策略代码中或删除回测框架部分的代码接入实盘交易的API,使得量化交易回测代码和实盘的代码有较大的改动,增加了策略开发者的工作,也增加了量化交易爱好者时间成本,甚至对很多编程能力有限的量化爱好者来说提搞了研究难度的门槛。

若采用第三类在线回测平台进行回测,由于需要将编写的策略在网站指定的服务器上运行,由于是多用户共享一台服务器,所以回测性能无法得到保证、网站更倾向于采用精度不高的数据进行回测。还由于对策略开发者来说不是使用原生API进行开发策略,所以策略开发的自由度也不够,很多想法也无法实现。更重要的是,选择网站在线平台的方式来开发量化交易策略,就等于默认了网站管理员可随时查看自己辛辛苦苦开发的策略代码,保密性让人担忧,从事量化交易的专业机构几乎不会采用在线网站的回测方式。

近年来,量化交易在金融领域应用的越来越广发,回测系统的设计是量化交易中不可缺失的一部分,但同时也暴露出一些问题,例如商业软件成本高、自己搭建会测框架时间成本高,难度大、采用第三方回测框架难度大、回测到实盘交易的代码改动较大、量化策略保密性不高等等。

Virtualapi可以作为期货CTP TICK级回测的本地仿真环境,实现CTP量化交易。

VN.PY回测可以使用Virtualapi

免责声明
           本站所有信息均来自互联网搜集
1.与产品相关信息的真实性准确性均由发布单位及个人负责,
2.拒绝任何人以任何形式在本站发表与中华人民共和国法律相抵触的言论
3.请大家仔细辨认!并不代表本站观点,本站对此不承担任何相关法律责任!
4.如果发现本网站有任何文章侵犯你的权益,请立刻联系本站站长[QQ:775191930],通知给予删除
网站分类
标签列表
*留言