CTP 程序化交易基础之一

CTP 介绍

CTP 简介

综合交易平台(Comprehensive Transaction Platform,CTP)是专门为期货公司开发的一套期货经纪业务管理系统,由交易、风险控制和结算三大系统组成。其中,交易系统主要负责订单处理、行情转发及银期转账业务,结算系统负责交易管理、帐户管理、经纪人管理、资金管理、费率设置、日终结算、信息查询以及报表管理等,风控系统则主要在盘中进行高速的实时试算,以及时揭示并控制风险。系统能够同时连通国内四家期货交易所,支持国内商品期货和股指期货的交易结算业务,并能自动生成、报送保证金监控文件和反洗钱监控文件。

CTP 架构

综合交易平台是基于全内存的交易系统,采用创新的完全精确重演的分布式体系架构,支持 7x24 小时连续交易,运维人员不必每日启停系统,可以做到 “一键运维”,该特性使得综合交易平台新增交易中心以扩展业务规模时不用增加运维人力的成本。支持 FENS 机制的 “一键切换” 多活交易中心也是目前市场上只有 CTP 系统实现了的特性。该机制使得交易系统可在某个交易中心宕机的情况下立即切换到另一个备用交易中心,得以实现真真正正的连续交易。综合交易平台公开并对外开放交易系统接口,使用该接口可以接收交易所的行情数据和执行交易指令。该接口采用开放接口(API)的方式接入,早已在期货界已经形成事实上的行业标准。

CTP API

CTP 官网(非交易时段禁止访问)可以了解到,CTP API 从 v6.3.15 版开始引入强制看穿式认证规则,CTP 不再兼容之前的 API 版本。目前,CTP API 最新版是 v6.6.1,与 v6.3.15 相比较最大的改动是,InstrumentID 由最长 30 个字节增加到 80 个字节。CTP 生产系统兼容 v6.3.15 及以上版本。但是,大部分期货公司做看穿式认证的仿真系统要求使用新版 API 才能接入。所以,新用户做看穿式认证时首先要确认 API 的版本号。

CTP 仿真系统

SimNow 仿真系统

SimNow 是上期技术为广大投资者打造的一个最接近真实市场环境的仿真平台,主要面向期货经纪公司和投资者服务,提供整套期货交易的信息化技术平台。SimNow 官网(非交易时段禁止访问),交易者注册 SimNow 仿真账户后,可以使用从 CTP 官网下载 API 接入这套仿真交易系统。开发、测试完成之后,只需要更换用户名、密码、前置地址等信息就可以接入期货公司生产系统进行实盘交易。SimNow 要求 CTP API 的版本是 v6.3.15 及以上才能够接入。

认证信息

1
2
3
BrokerID = "9999"
AppID = "SimNow_client_test"
AuthCode = "0000000000000000"

值得一提的是,默认的 BrokerID9999AppIDSimNow_client_testAuthCode0000000000000000(16个0),默认不会开终端认证,程序化用户可以选择不开终端认证接入。

生产仿真环境

以下的前置地址,交易时段与真实生产环境(实盘)一致。

  • 电信
1
2
FrontAddr=tcp://180.168.146.187:10201
FrontMdAddr=tcp://180.168.146.187:10211
  • 电信
1
2
FrontAddr=tcp://180.168.146.187:10202
FrontMdAddr=tcp://180.168.146.187:10212
  • 移动
1
2
FrontAddr=tcp://218.202.237.33:10203
FrontMdAddr=tcp://218.202.237.33:10213

测试仿真环境

  • 支持全天交易(7x24),不间断轮播某天行情
  • SimNow 新注册用户,需要等到第三个交易日才能使用
  • 交易时段:交易日 16:00 ~ 次日 09:00;非交易日 16:00 ~ 次日 15:00
  • 仅服务于 CTP API 开发爱好者,仅为用户提供 CTP API 测试需求,不提供结算等其它服务
1
2
FrontAddr=tcp://180.168.146.187:10130
FrontMdAddr=tcp://180.168.146.187:10131

仿真成交规则

  • 期货交易按照交易所公布的买一卖一价对价成交
  • 买入时:如果委托价大于等于卖一价,则成交,成交价为委托价、卖一价、最新价三价取中,如果委托价小于卖一价,不能成交,等待更优的行情才能成交
  • 卖出时:如果委托价小于等于买一价,则成交,成交价为委托价、买一价、最新价三价取中,如果委托价大于买一价,不能成交,等待更优的行情才能成交

仿真交易时间

NSight 仿真系统

交易者在 NSight 官网 注册仿真账户后,可以使用从 CTP 官网下载的 API v6.3.15 接入这套仿真交易系统。开发、测试完成之后,只需要更换用户名、密码、前置地址等信息就可以接入期货公司生产系统进行实盘交易。

认证信息

1
2
3
BrokerID = "10010"
AppID = ""
AuthCode = ""

值得一提的是,默认的 BrokerID10010AppIDAuthCode 均为空字符串。

生产仿真环境

以下的前置地址,交易时段与真实生产环境(实盘)一致。

1
2
FrontAddr=tcp://210.14.72.12:4600
FrontMdAddr=tcp://210.14.72.12:4602

期货交易终端

市面上主流的期货交易终端可以在 SimNow 官网(非交易时段禁止访问)下载。

快期期货交易终端

对于量化交易者,在没有自主开发监控客户端之前,快期是一个很不错的选择。这里以 快期 v2 版本举例,若使用快期登录 SimNow 的模拟账户,则只需要在快期的登录界面选择服务器 上期技术-xx 即可,下拉列表里不同的服务器分别使用了不同的前置地址,而 用户代码 直接填写 InvestorID

CTP 开放平台

参考博客