【综合交易平台API技术开发指南】
综合交易平台API技术开发指南
第一章 CTP产品特性...................................................................................................................... 2
第二章 CTP-API技术基础 ............................................................................................................... 4 第三章 CTP-API证券交易 ............................................................................................................... 9
模拟交易系统 ........................................................................................................................... 9
证券交易实务 ........................................................................................................................... 9 行情接口函数 ......................................................................................................................... 10 交易接口函数 ......................................................................................................................... 10 第四章 CTP-API期货交易 ............................................................................................................. 10
模拟交易系统 ......................................................................................................................... 10
期货交易实务 ......................................................................................................................... 11 行情接口函数 ......................................................................................................................... 11 交易接口函数 ......................................................................................................................... 11
??上海期货信息技术有限公司,2012
第 1 页 共 18 页
【综合交易平台API技术开发指南】
第一章CTP产品特性
如何获取综合交易平台(Comprehensive Transaction Platform 以下简称CTP)证券(期
货)交易及行情API发布包、文档以及开发实例? 【答:
2群(102497247)群共享中发布,请及时获取最新版本。CTP_API开发技术群均遵守实 名制规则,
求的群成员将不定期予以清除。
CTP提供哪些证券(期货)投资者交易客户端软件?
【答: CTP向全市场免费开放投资者交易及行情API,并不提供任何投资者使用的交易 客户端产品。目前市场上使用的客户端产品都由第三方厂商提供(基于免费开放的API 接入CTP)
手工交易客户端(如快期:http://www.kuaiqi.net/)及程序化交易客户端(如盈佳: http://winnerfutures.com.cn/)
请问国内证券(期货)公司有哪些使用CTP系统? 【答:
一套或多套CTP次用系统) 家。
CTP期货公司主用系统用户:中国国际、华泰长城、海通期货、申银万国、上海中
期、广发期货、恒泰期货、美尔雅期货、中证期货、华元期货、瑞龙期货、天鸿期货。
CTP期货公司次用系统用户:华西期货、华鑫期货、兴业期货、渤海期货、金源期
货、宏源期货、新湖期货、国泰君安、东证期货、南华期货、浙商期货、银河期货、经
易期货、
国金期货、方正期货、鲁证期货(新增) 纪期货(新增)
??上海期货信息技术有限公司,2012
CTP证券公司次用系统用户:华宝证券。
第 2 页 共 18 页
【综合交易平台API技术开发指南】
CTP中的BrokerID是什么意思,在使用CTP-API时如何填写?
【答: CTP最初设计时考虑了一套CTP系统供多家经纪公司使用的情形,CTP则使用 BrokerID从业务层面完全隔离不同经纪公司的交易、风控及结算用户的接入。BrokerID 的具体取值请咨询开户的经纪公司。
CTP中UserID和InversterID的区别是什么?
【答:
代码;投资者自己下单时,两者同为投资者代码。
CTP-API中的OrderRef和OrderActionRef是什么意思,在客户端开发时如何填写?
【答: OrderRef是CTP后台提供给客户端标识一笔报单的字段,客户端可以通过关键 字组(FrontID 、SessionID 、OrderRef)唯一确定一笔报单,客户端在报单发出时未填 写OrderRef字段,CTP后台会自动为该报单的OrderRef字段赋值并返回给客户端。 OrderActionRef与OrderRef功能类似,它是提供给客户端来标识一笔撤单。OrderRef的 数据类型为字符数组,必须是阿拉伯数字字符。OrderRef(OrderActionRef)的取值必须 保证在同一会话内后发送的报(撤)单的OrderRef(OrderActionRef)值大于之前的最 大值,在开发多线程的客户端时需要特别注意。
CTP是否提供Level2行情?
【答: CTP期货交易系统仅提供各交易所发布的普通一阶行情。部分证券公司部署的 CTP证券交易系统提供level2行情,请联系证券公司获取CTP-level2-API发布包及level2 行情服务器配置参数。
CTP是否提供历史行情,实际交易时需要取历史数据做相应计算,比如atr(30)等,如
??上海期货信息技术有限公司,2012
第 3 页 共 18 页
何处理?是否只能客户端通过别的接口自己补数据? 【答:
CTP也不提供行情回补机制,因为行情的实时性对CTP的系统延时要求非常高,行情数 据的回补逻辑增加的系统延时以及网络资源的消耗限制了其在高速系统内部实现的空
【综合交易平台API技术开发指南】
间。
方式以提高到CTP连接的保障级别。
第二章CTP-API技术基础
CTP-API库包含哪些文件,分别包含什么内容?
【答: 错误定义文件 error.dtd、
交易接口类定义文件(ThostFtdcTraderApi.h)
件 (ThostFtdcUserApiStruct.h) 客 户 端 接 口 使 用 的 业 务 数 据 类 型 定 义 文 件 (ThostFtdcUserApiDataType.h) 行情接口库文件 thostmduserapi.lib, 交易接口库文件(thosttraderapi.lib,thosttraderapi.dll) 包含API和SPI类定义, 户端回传响应及回报。
CTP证券接口库文件基本类似,文件名中使用“SSE”标识为证券接口。
10. CTP-API与CTP后台才何种协议通讯,如何通讯?
【答: CTP-API使用建立在TCP协议之上FTD协议与CTP后台进行通讯,FTD 协议中
的所有通讯都基于某个通讯模式。通讯模式实际上就是通讯双方协同工作的方式。 CTP-API涉及的通讯模式共有三种:○对话通讯模式,是指由客户端主动发起的通讯请 求,该请求被CTP后台接收和处理,并给予响应,如报单、撤单及查询等,这种通讯模 式与普通的客户/服务器模式相同。○私有通讯模式,是指CTP后台主动向某个特定的 客户端发出的信息,如报单回报、成交回报等。○广播通讯模式,是指CTP后台主动向 有客户端都发出相同的信息,如合约交易状态通知等。
通讯模式和网络的连接不一定存在简单的一对一的关系。也就是说,一个网
络连接中可能传送多种不同通讯模式的报文,一种通讯模式的报文也可以在多个
不同的连接中传送。
CTP-API与CTP后台通讯,不同的通讯模式对应不同的通讯数据流,对话通讯模式
对应对话数据流(DialogRsp)和查询数据流(QueryRsp) CTP后台不维护对话数据流
??上海期货信息技术有限公司,2012
第 4 页 共 18 页
【综合交易平台API技术开发指南】
(查询数据流)的状态,通讯故障时,对话数据流(查询数据流)会重置,通讯途中的
数据可能会丢失。
私有通讯模式对应私有数据流(Private)
后台维护每个登录用户的私有流,在一个交易日内,CTP-API与CTP后台断线后恢复连
接时,
或断线期间(resume)的私有数据流。
广播通讯模式对应公共数据流(Public)
可靠的数据流。
11. CTP-API的实例会在客户端生成哪些流文件?如何指定流文件存放路径?
【答:
实例(DialogRsp.con,Private.con,Public.con,QueryRsp.con,TradingDay.con) 文件的存放路径都是通过接口实例创建函数(CreateFtdcTraderApi)参
数指定,如CreateFtdcTraderApi(\将会在当前目录的flow文件夹存放流文件。 客户端无法决定是否生成以上流文件,因此,在开发多CTP-API实例的客户端时需要注 意操作系统的文件句柄限制。
因此,多账号共用接口实例(或多实例共用流文件)将会造成数据紊乱或缺失。
12. 基于CTP-API的客户端交易软件在每个交易日开始之前需要执行哪些必要的步骤?
【答: 1创建API实例(CreateFtdcTraderApi)并为其注册对应的回调接口类的实例
??上海期货信息技术有限公司,2012
第 5 页 共 18 页
(RegisterSpi) → ○订 阅 私 有 流 (SubscribePrivateTopic) → ○订 阅 公 有 流 (SubscribePublicTopic)→○注册名字服务器网络地址(RegisterNameServer)或注册前 置机网络地址(RegisterFront)→○初始化API与CTP前置服务器连接(Init) 功后回调OnFrontConnected→○发起客户端认证请求(ReqAuthenticate)
结果由OnRspAuthenticate返回;在CTP后台开启强制客户端认证(或客户端在本次会 话主动发起认证)后,只有通过客户端认证才能接入CTP后台→○发起用户登录请求 (ReqUserLogin)
户端在当前交易日必须成功执行一次 后才能开始交易。