之前写了一篇《基于 VN.PY 的 CTA 策略入门心得》,主要还是侧重于 VN.PY 的入门介绍。本文在前一篇的基础上,侧重介绍期货穿透式 CTP API 的接入过程。由于我自己的期货账户开在申银万国,所以本文以申银万国期货为例。其大致的流程和下图基本一致,但有一些细微的差别。
一,申请穿透式接入#
这一步和自己的客户经理联系即可。客户经理会发一些资料让你填写。该过程要注意不要申请错了,比如不要误申请成期权账号。一般来说,申银万国的仿真账号目前是 800 开头的,而个股期权的仿真账号是 0000 开头的,一眼就可分别。另外有些老客户的仿真账号在开通后,可能会遇到能源中心或者上期所的仿真交易无法进行的情况(报错信息:投资者未在交易所开户),这种情况一般是由于你的账号开得比较早,那个时候能源中心还没有,所以没有权限造成的(和你实盘账号是否有该权限,没有关系。实盘权限归实盘权限)。此时盯着你的客户经理,让他再帮你开通即可。
在获取自己的仿真账号之前,可以用公用的测试账号先进行测试(对应的 VNTrader:CTP 测试),其目的主要是测试自己 VNPY 是否可以正常工作(而非交易策略的测试)。该测试账号及 IP 信息在《CTP 系统看穿式监管测试指引》(由申银万国提供,我这里就不胡乱公开申银的资料了)。测试成功的页面参考如下,并没有显示过多的日志信息。具体成功与否,最好与申银万国的客户经理做一确认,原则上能报单则表示测试成功。
二,AppID 申请#
拿到仿真实盘账号及密码后,还需要获得产品名称和授权编码。在申银万国对应的名称中,产品名称对应 AppID,授权编码对应 AuthCode 或者称终端认证码,都是同一概念。AppID 是一个由用户提供的交易程序代码,以个人身份申请时,一般大家会写成:client_xxxx_yyyy,其中 xxxx 是你的软件名称,yyyy 是版本号,这两个字段都是客户自己填的信息,没有什么固定规则。注意:AppID 代表的是接入的系统,同一个 AppID 表示同一个接入系统,和账号是不挂钩的,也就是说你的 AppID 可以给别人的账号使用。确定你的 AppID,并给客户经理,让他帮你申请 AuthCode。
三,获得 AuthCode#
理论上,仿真实盘的 AuthCode 的申请应该很快(我的是差不多申请后没一个小时就拿到了。)现在可连接 CTP 进行策略的测试(申银万国这边对应的 VNTrader 要选择:CTP,而非 CTP 测试)。首次 CTP 连接后,显示:CTP:首次登陆需要修改密码。在申银官网上下载一个快期交易终端(仿真),输入账号及初始密码,会被要求修改密码,完成修改后,再在 VN.PY 这边进行连接。连接并查看一条合约信息,成功后的信息可参考如下,可以看到在日志部分,各种登录信息及合约查询确认成功。
四,仿真测试#
在仿真实盘环境下,执行 CTA 策略,即可进行仿真测试。不过,申银的仿真实盘的行情缺乏实时性,价格要好一会才会有变动。据申银的客服人员解释,仿真实盘也是撮合交易的,因为参与的人少,所以价格变动不大。这对策略的验证,尤其是高频策略的验证来说,还是缺乏参考意义,甚至还不如 SimNow 的参考意义大。但是该步骤又是不得不做的。
完成以上步骤后就可以去类似地去完成期货公司校验、最终接入实盘测试了。