操作流程
不多废话先上结论:
下面是步骤说明,只要照着做100%可以搞定!!!
第一步:申请穿透式接入
电话联系你的客户经理,向期货公司申请进行穿透式接入测试。如果期货公司服务质量较好,可能已经主动联系你邀请测试了。
第二步:填表提交AppID
填写申请表,每家期货公司有所区别,但整体上需要提供的信息可能包括:
CPU序列号硬盘序列号硬盘主分区盘符和大小网卡MAC地址内网IP和外网IP交易程序的AppID
以上多条信息的获取,就需要用到cmd中的系统命令工具了。
输入以下命令获取CPU序列号:
wmic cpu get processorid
逐条输入以下命令,获取硬盘序列号、主分区盘符和大小:
diskpart
select disk 0
detail disk
输入以下命令,“以太网适配器”下的“物理地址”就是MAC地址,“IPv4地址”就是内网IP:
ipconfig /all
访问www.ip13com获取你的外网IP,或者直接百度搜索“IP”也行。
最后的AppID,是一个由用户提供的交易程序代码,以个人身份申请时,格式为:
其中xxxx是你的软件名称,yyyy是版本号,这两个字段都是客户自己填的信息,以vn.py的v0版本为例,AppID可能为:
其中888的部分,是自定义的一个字符串,主要为了避免你的AppID和其他人重复,你可以选择随意选择:姓名拼音缩写、某个数字、幸运词......
第三步:拿到AuthCode
提交申请表后,一般当天或者第二天就能拿到期货公司针对你的这个AppID提供的测试账号信息,包括:
用户名、密码经纪商代码、仿真测试服务器地址产品名称、授权编码
第四步:仿真测试
我们这里测试环节以最新版的VNStudio为例,如果没有的话请点击下载:VNStudio-0.同样你也可以选择使用任何其他的软件程序来操作,如果不幸掉坑后爬不出来的话再回到VNStation好了。
双击桌面的VNStation标,启动后会弹出登录框。如果是第一次使用,请点击“微信登录”按钮,扫描二维码后注册VNStation账号,如果已经有账号了可以直接输入后点击“登录”。
随后会弹出配置VNTreader的对话框,注意此时请一定只勾选加载CTPTEST接口,千万不要同时勾选加载CTP接口,会因为dll冲突导致后续测试失败!!!!
在VNTrader主界面上,点击左上角的“系统”->“连接CTPTEST”,在弹出的登录配置对话框中输入期货公司提供的测试账号信息,点击连接按钮后登录CTP穿透式测试用服务器:
当VNTrader左下角的日志监控组件中,刷新出熟悉的日志信息,看到“合约信息获取成功”的时候,就意味着我们已经完成测试了!
第五步:期货公司校验
搞定上面的测试服务器连接登录后,就可以联系期货公司进行校验工作了,通常可以一次性直接通过,如果遇到不通过的情况请查看本文最后的常见问题来解决。
第六步:实盘接入
期货公司校验通过后,会将客户申请的AppID和AuthCode添加到实盘CTP的服务器上,此时只要把启动VNTraderPro时,加载的接口由CTPTEST改为CTP,就可以连接上实盘交易环境,和以往一样进行量化交易了。
名词解释
穿透式监管
新的监管模式主要是明确了期货公司对于其客户交易行为的管理责任,因此需要对所有接入交易柜台系统的交易终端软件进行认证管理,防止坏人耍流氓后一走了之,难以追查。
穿透式API
穿透式监管的主要实现工具,支持对交易终端机器的信息采集功能,并在加密后直接上传期货市场监控中心。除了本文中用到的CTP穿透式API外,其他的柜台也都提供了对应的穿透式API版本:恒生、易盛、飞创等,操作方法基本类似。
执行日期
在6月14日当天,所有期货公司的柜台系统全部强制升级为穿透式监管版本,老的非穿透式柜台会全部下线,没有所谓的“过渡期”,现在就已经是“过渡期”了!!!还有不到两周的时间,所有通过API接入交易的用户请赶紧吧,不要到了那天没法交易才着急,而且普遍的拖拉习惯,目前在申请接入测试的客户与日俱增,也对期货公司每天繁忙的后台IT部门表示感谢。
CTP穿透式柜台的仿真测试版本,也是CTPTEST接口中使用的API版本,所有客户的仿真接入认证测试都必须使用该版本!主要因为该版API采集客户的信息是没有加密的,期货公司可以在后台查看来进行认证工作。
CTP穿透式柜台的实盘交易版本,也是CTP接口中使用的API版本,完成仿真接入测试后,必须使用该版本才能连接实盘交易的CTP柜台。该版本的采集信息是安全加密的,期货公司的IT用后台系统也看不到。
直连模式
指的是所有用交易程序直接使用CTP的API连接CTP柜台,进行行情获取和委托交易的情况,几乎所有自主开发或者使用开源框架的量化交易客户都属于这种情况,直接使用穿透式监管版本的API进行开发就行。
中继模式
指的是:交易客户端->中继服务器->CTP柜台,采用这种连接模式主要包括商业量化交易软件以及机构量化资管系统,只有中继模式才需要用到那个DataCollect.dll文件。
API内部工作流程
同样以CTP为例:
调用Init,开始连接收到OnFrontConnected,确认连接成功调用ReqAuthenticate,这一步填入AppID和AuthCode,进行认证收到OnRspAuthenticate,确认认证成功调用ReqUserLogin,这一步同样需要填入AppID,进行登录收到OnRspUserLogin,确认登录成功
只有交易接口TD需要进行认证,MD直接登录就行。每一步出错的话都会有相应的报错输出提示,查看错误信息内容后照着修改就行。
常见问题
哪个版本的vn.py目前支持穿透式API?
最新的v0.3发布版本,和v2-LTS版本,都支持了穿透式API,推荐使用Windows进行相关测试工作。
更新后SimNow环境连不上了!
截止目前的2019年6月1日,SimNow上的交易测试环境依旧为非穿透式的老版本,因此用穿透式版本的API都是连不上的。
SimNow的终端厂商测试环境连上后没有行情!
SimNow所提供的13测试环境,目前仅仅为了满足用户的穿透式版本测试需求,尚未提供第一套或者第二套环境中的仿真行情以及仿真交易功能,所以:就是没有行情的~
这是因为你的API版本和服务器的版本不一致导致的,请按照以下流程排查:
是否同时import了CTP和CTPTEST接口,如有请移除另一个确保使用CtptestGateway来连接13穿透式测试环境,用CtpGateway来连接15穿透式实盘环境v0.3以及v2-LTS都已升级到穿透式API,因此无法用于连接SimNow的老版本环境
UserProductInfo字段是用来干嘛的?
该字段是之前非穿透式API时,用来进行客户认证的产品名称字段。穿透式版本接入的方案文档并没有对该字段的强制要求,目前我们这边已经对接了的5家期货公司也均未要求使用,但听说某些公司需要:如中信建投等,如果有了解其他公司情况的请在评论中分享。
能否使用云服务器或者虚拟机进行测试认证?
虚拟机和云服务器,对于本文开头部分提到的CPU序列号、硬盘序列号等信息,有可能获取不全或者部分字段不符合规定。目前有些期货公司要求严格,必须全部能正确获取到,且和第二部申请表中填写的内容一致,才能算认证测试成功;另一些公司则是十分宽松,表也不用填,采集信息也不看,只要登录上来就算测试通过。
能否使用云服务器和虚拟机,完全取决于你开户的这家期货公司了。
如果使用v2之前老版本的vn.py怎么办?
并采用上文提到的方式去做认证。
15的穿透式实盘API,想进行下测试怎么办?
目前只发现中信期货提供了15的仿真测试环境,但最近估计申请人数过多,新的申请处理非常缓慢,如果大家发现别家提供15的测试环境也欢迎在评论里告知。
为什么期货公司一定要用13和15两个版本,接下来是否会合并都使用15?
为了满足穿透式监管认证要求,期货公司认证时要看到客户机器采集的信息,就只能通过13版本的CTPAPI。而实盘交易的环境中,期货监控中心要求直接上报采集信息,禁止期货公司查看和修改,就必须通过15版本。
所以目前来看仿真和实盘使用两个版本的API,是监管中心比较放心得过的方案吧,也就意味着交易客户端必须要两套API都对接准备好了。
文章为作者独立观点,不代表 股票程序化软件自动交易接口观点