当前位置:文档之家› 综合交易平台API技术开发指南

综合交易平台API技术开发指南

【综合交易平台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://winnerfutures../)请问国证券(期货)公司有哪些使用CTP系统?【答:一套或多套CTP次用系统)家。

CTP期货公司主用系统用户:中国国际、华泰长城、海通期货、申银万国、上海中期、广发期货、恒泰期货、美尔雅期货、中证期货、华元期货、瑞龙期货、天鸿期货。

CTP期货公司次用系统用户:华西期货、华鑫期货、兴业期货、渤海期货、金源期货、宏源期货、新湖期货、国泰君安、东证期货、南华期货、浙商期货、银河期货、经易期货、国金期货、方正期货、鲁证期货(新增)纪期货(新增)CTP证券公司次用系统用户:华宝证券。

上海期货信息技术有限公司,2012 第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)等,如何处理?是否只能客户端通过别的接口自己补数据?【答:CTP也不提供行情回补机制,因为行情的实时性对CTP的系统延时要求非常高,行情数据的回补逻辑增加的系统延时以及网络资源的消耗限制了其在高速系统部实现的空上海期货信息技术有限公司,2012 第3 页共18 页【综合交易平台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\")将会在当前目录的flow文件夹存放流文件。

客户端无法决定是否生成以上流文件,因此,在开发多CTP-API实例的客户端时需要注意操作系统的文件句柄限制。

因此,多账号共用接口实例(或多实例共用流文件)将会造成数据紊乱或缺失。

12. 基于CTP-API的客户端交易软件在每个交易日开始之前需要执行哪些必要的步骤?【答:1创建API实例(CreateFtdcTraderApi)并为其注册对应的回调接口类的实例(RegisterSpi)→○订阅私有流(SubscribePrivateTopic)→○订阅公有流(SubscribePublicTopic)→○注册名字服务器网络地址(RegisterNameServer)或注册前置机网络地址(RegisterFront)→○初始化API与CTP前置服务器连接(Init)功后回调OnFrontConnected→○发起客户端认证请求(ReqAuthenticate)结果由OnRspAuthenticate返回;在CTP后台开启强制客户端认证(或客户端在本次会话主动发起认证)后,只有通过客户端认证才能接入CTP后台→○发起用户登录请求(ReqUserLogin)户端在当前交易日必须成功执行一次后才能开始交易。

上海期货信息技术有限公司,2012 第5 页共18 页【综合交易平台API技术开发指南】13. CTP的客户端怎样实现对代理服务器的支持?【答:CTP的API提供了对代理服务器的支持,包括socks4、socks4a及socks5,客户端开发时只需通过传递给API不同的连接字符串就可实现,例如:RegisterFront("socks5:// IP地址或域名:端口号/user:pass@127.0.0.1:10001");14. 什么是动态密码(OneTimePassword)【答:易使用的一种更强的身份验证工具,为CTP供应动态令牌的厂商有坚石诚信和飞天诚信。

证券(期货)公司购买动态令牌后将随附的种子文件导入CTP后台,令牌的投资者在登录CTP时需要将动态令牌当时显示的字符填写到OneTimePassword字段,通过用户名/密码以及动态密码校验后方可登录成功。

15. 什么是客户端认证,怎样获取认证码(AuthCode)?【答:端产品接入CTP后台进行交易。

入指定的证券(期货)公司CTP交易系统之前,必须向该公司提交用户端产品信息(UserProductInfo)并获得认证码(AuthCode)之后在发起客户端认证请求时(ReqAuthenticate)填写正确的用户端产品信息及对应的认证码即可完成客户端认证。

16. CTP的名字服务器是做什么用的,如何使用?【答:名字服务器(RegisterNameServer)自动选择CTP后台分配的前置机地址接入CTP交易系统,不再需要客户端直接注册CTP前置地址(RegisterFront)17. CTP是否提供加密手段以保护通过互联网传送的交易数据的安全?【答:方式接入CTP交易系统。

客户端选择接入ssl前置时使用如下方式注册ssl前置地址:上海期货信息技术有限公司,2012 第6 页共18 页【综合交易平台API技术开发指南】RegisterFront("ssl:// ssl前置IP地址或域名:端口号");18. 如何接入CTP提供的UDP行情?【答:bIsUsingUdp=false) 中,参数bIsUsingUdp:为行情模式,该参数缺省或置为false时使用TCP行情,否则为UDP行情。

无论使用TCP或是UDP行情,都必须注册相对应的TCP或UDP行情服务器地址。

一般来说,CTP的普通行情前置都为TCP行情服务器,使用UDP行情服务器需要向证券(期货)公司申请,且仅限专线或网接入的投资者使用。

相关主题