文章目录
写在前面
在配置好了vn.py的运行环境后,下一步需要做的根据交易品种配置交易接口,每种交易品种有不同的交易接口选择,有的门槛低、有的速度快,有的功能强大,下面将按照vn.py的官方教程进行国内期货产品的交易配置,接口以上海期货交易所的CTP接口为例。
CTP是上期技术推出的国内期货行情和交易的接口,各大券商均有CTP技术的接入。由于CTP的行情和交易两套接口是由C++制作的,所以一开始的自动化交易基本上是围绕C++展开的。vn.py中基于python将CTP接口进行了封装,所以省去了自己去做封装的麻烦,具体的封装方法在vn.py官网也有介绍。
申请模拟账号
CTP模拟账号可以去SimNow官网进行申请 www.simnow.com.cn,SimNow是上期技术官方运营的一套期货仿真交易环境,提供与实盘环境一致的行情和交易撮合规则。
注册完成后,在SimNow首页的“投资者登录”即可看到账号信息:
需要注意的是其中的investorId,这个是SimNow环境下的CTP用户名,CTP的密码就是注册时的密码。注意,在进行登陆CTP模拟环境之前需要修改一次密码才能进行交易。
关于SimNow的环境还有几点需要补充:
SimNow的撮合规则是这样的,也是按照对手价进行撮合成交,最后的成交价是在委托价,卖(买)一,最新价三价取中,具体如下:
1、期货交易按照交易所公布的买一卖一价对价成交;
2、买入时:如果委托价大于等于卖一价,则成交,成交价为委托价、卖一价、最新价三价取中,如果委托价小于卖一价,不能成交,等待更优的行情才能成交;
3、卖出时:如果委托价小于等于买一价,则成交,成交价为委托价、买一价、最新价三价取中,如果委托价大于买一价,不能成交,等待更优的行情才能成交。
SimNow的清算规则是每日结算的结算价取自真实市场的结算价,在最后交易日时现金交割(以合约当天结算价了结剩余仓位)。
SimNow的交易时间和真实市场环境一样:
日市:
交易所 | 集合竞价 | 连续交易 |
---|---|---|
上海期货交易所 大连商品交易所 郑州商品交易所 | 8:55-9:00 | 上午:09:00-10:15 10:30-11:30 下午:13:30-15:00 |
中国金融期货交易所 | 9:25-9:30 | 上午:09:30-11:30 下午:13:00-15:15 |
夜市:
交易所 | 品种类别 | 集合竞价 | 连续交易 |
---|---|---|---|
上海期货交易所 | 贵金属 | 20:55-21:00 | 21:00:-次日02:30 |
有色金属,黑色金属,沥青 | 21:00:-次日01:00 | ||
天然橡胶 | 21:00-23:00 | ||
郑州商品交易所 | 所有品种 | 20:55-21:00 | 21:00-23:30 |
大连商品交易所 |
CTP接口配置
启动VN Trader Pro,选择加载CTP接口(注意不要加载CTP测试接口),然后连接CTP。
上面各个字段的填写如下:
用户名:SimNow的investorId
密码:SimNow的登陆密码
经纪商代码:9999
交易服务器:180.168.146.187:10101
行情服务器:180.168.146.187:10111
产品名称:simnow_client_test
授权编码:0000000000000000(16个0)
产品信息:留空不用填
交易和行情服务器的地址有两套,第一套是标准CTP,交易时段与实际生产环境一致;第二套用与CTP的测试,是在非交易时段登陆,提供交易时段的行情回放:
第一套:
标准CTP:
第一组:Trade Front:180.168.146.187:10100,Market Front:180.168.146.187:10110;【电信】(非看穿式前置)
第二组:Trade Front:180.168.146.187:10101,Market Front:180.168.146.187:10111;【电信】(看穿式前置,使用监控中心生产秘钥)
第三组:Trade Front:218.202.237.33 :10102,Market Front:218.202.237.33 :10112;【移动】(看穿式前置,使用监控中心生产秘钥)
用户注册后,默认的APPID为simnow_client_test,认证码为0000000000000000(16个0),默认不开终端认证,程序化用户可以选择不开终端认证接入。
交易阶段(服务时间):与实际生产环境保持一致。
第二套:
交易前置:180.168.146.187:10130,行情前置:180.168.146.187:10131;【7x24】(看穿式前置,使用监控中心生产秘钥)
第二套环境仅服务于CTP API开发爱好者,仅为用户提供CTP API测试需求,不提供结算等其它服务。
新注册用户,需要等到第三个交易日才能使用第二套环境。
账户、钱、仓跟第一套环境上一个交易日保持一致。
交易阶段(服务时间):交易日,16:00~次日09:00;非交易日,16:00~次日15:00。
用户通过SimNow的账户(上一个交易日之前注册的账户都有效)接入环境,建议通过商业终端进行模拟交易的用户使用第一套环境。
在模拟盘交易时必须选看穿式前置,非看穿式只有SIMNOW有,其他期货公司都没有这环境的,所以不兼容。
基本操作
登陆成功后就可以进行基本操作了。
在查看合约时需要注意以下几个字段:
- 合约代码symbol:该合约在某家交易所的唯一标识
- 交易所代码exchanage:该交易所在VN Trader内的唯一标识
- 本地代码vt_symbol:由合约代码以及交易所代码共同组成,代表该合约在VN Trader内的唯一标识符,需要交易所代码是因为跨交易所的代码可能存在重复,比如000001在上交所代表的是上证指数,在深交所代表的则是平安银行;
- 价格跳动pricetick:意味着交易委托时价格的最小变动单位,如果精度不对则会造成委托失败
在订阅合约时需要注意每个交易所的合约命名规则有所区别:
- 中金所CFFEX:字母部分大写,年份数字为2位,举例IF1908
- 上期所SHFE:字母部分小写,年份数字为2位,举例rb1910
- 能源交易所INE:字母部分小写,年份数字为2位,举例sc1910
- 大商所DCE:字母部分小写,年份数字为2位,举例m1911
- 郑商所CZCE:字母部分大写,年份数字为1位,举例TA910
在获取最新价格之后,就可以进行下单了,步骤是:
- 选择交易方向:要买(多)还是要卖(空)
- 选择交易开平:要开仓还是平仓,对于上期所合约则需要具体选择是平今还是平昨(选错则无法平仓会被拒单)
- 选择价格类型:CTP接口支持限价、市价、FAK(Fill-and-Kill)、FOK(Fill-or-Kill)四种委托类型,注意SimNow环境不支持市价单!!!
- 输入价格和数量后,点击“委托”按钮即可发出交易请求
委托请求提交后,则会返回相应的委托回报信息,显示在委托组件中,显示当前这笔委托请求的最新状态,注意委托组件分为两个:
- “活动”:只显示当前处于可撤状态(提交中、未成交、部分成交)的委托信息
- “委托”:显示所有的委托信息(包括可撤委托)
两个组件中,对于处于可撤状态的委托,均可双击该笔委托的单元格来实现撤单的功能(鼠标放置其上时会有文字提示)。或者也可以通过交易组件上的单击“全撤”按钮,来实现一键全撤VN Trader内当前所有可撤委托。
实盘交易
对于CTP实盘交易时,需要获取下面的信息:
- 用户名和密码,就是你开户后直接拿到的信息
- 经纪商编号和交易行情服务器地址,可以联系你的客户经理获取
- 产品名称和授权编码,则需要完成穿透式认证获取了
关于证监所6月10日正式开启的看穿式监管模式,这种新的监管模式主要是明确了期货公司对于其客户交易行为的管理责任,因此需要对所有接入交易柜台系统的交易终端软件进行认证管理。
vn.py的穿透式认证方式已经在官方教程中推出,后期我也会进行整理和总结。