《交易业务接口使用手册.doc-中国金融期货交易所》由会员分享,可在线阅读,更多相关《交易业务接口使用手册.doc-中国金融期货交易所(115页珍藏版)》请在金锄头文库上搜索。
1、交易员应用程序接口2007年11月14日文件版本号修正日期备 注V1.012007-03-28首次发布V1.022007-11-141.添加对OnRspAdminOrderInsert、OnRspQryCreditLimit、ReqAdminOrderInsert、ReqQryCreditLimit、GetVersion等函数的说明。2. 说明OnRspOrderAction、OnRtnTrade、OnRtnOrder等回调函数中交易所返回数据中未使用的保留字段。3. 增加ReqAdminOrderInsert方法中对信用额度设置的说明目 录第1章介绍1第2章体系结构12.1通讯模式12.2数
2、据流2第3章接口模式13.1对话流和查询流编程接口13.2私有流编程接口23.3公共流编程接口2第4章运行模式14.1工作线程14.2本地文件2第5章业务与接口对照3第6章开发接口56.1通用规则56.2CFfexFtdcTraderSpi接口56.2.1OnFrontConnected 方法56.2.2OnFrontDisconnected 方法56.2.3OnHeartBeatWarning方法66.2.4OnRspUserLogin方法66.2.5OnRspUserLogout 方法76.2.6OnRspUserPasswordUpdate 方法86.2.7OnRspError 方法96
3、.2.8OnRspOrderInsert 方法96.2.9OnRspOrderAction 方法116.2.10OnRspQuoteInsert 方法126.2.11OnRspQuoteAction 方法136.2.12OnRspExecOrderInsert 方法146.2.13OnRspExecOrderAction 方法156.2.14OnRspQryPartAccount 方法166.2.15OnRspQryOrder 方法176.2.16OnRspQryQuote 方法196.2.17OnRspQryTrade 方法216.2.18OnRspQryClient 方法226.2.19O
4、nRspQryPartPosition 方法236.2.20OnRspQryClientPosition 方法256.2.21OnRspQryInstrument 方法266.2.22OnRspQryInstrumentStatus 方法286.2.23OnRspQryBulletin 方法296.2.24OnRspQryMarketData 方法306.2.25OnRspQryMBLMarketData 方法316.2.26OnRspQryHedgeVolume 方法326.2.27OnRtnTrade 方法336.2.28OnRtnOrder 方法356.2.29OnRtnQuote 方法
5、366.2.30OnRtnExecOrder 方法386.2.31OnRtnInstrumentStatus 方法386.2.32OnRtnInsInstrument 方法396.2.33OnRtnDelInstrument 方法406.2.34OnRtnInsCombinationLeg 方法416.2.35OnRtnDelCombinationLeg 方法426.2.36OnRtnBulletin 方法426.2.37OnRtnAliasDefine 方法436.2.38OnErrRtnOrderInsert方法436.2.39OnErrRtnOrderAction方法456.2.40On
6、ErrRtnQuoteInsert方法466.2.41OnErrRtnQuoteAction方法476.2.42OnErrRtnExecOrderInsert方法476.2.43OnErrRtnExecOrderAction方法486.2.44OnRspAdminOrderInsert方法496.2.45OnRspQryCreditLimit方法506.3CFfexFtdcTraderApi接口516.3.1CreateFtdcTraderApi方法516.3.2Release 方法526.3.3Init 方法526.3.4Join 方法526.3.5GetTradingDay方法526.3.
7、6RegisterSpi 方法526.3.7RegisterFront 方法536.3.8SubscribePrivateTopic方法536.3.9SubscribePublicTopic方法536.3.10ReqUserLogin 方法546.3.11ReqUserLogout 方法556.3.12ReqUserPasswordUpdate 方法556.3.13ReqOrderInsert 方法566.3.14ReqOrderAction 方法576.3.15ReqQuoteInsert 方法586.3.16ReqQuoteAction 方法596.3.17ReqExecOrderInse
8、rt 方法606.3.18ReqExecOrderAction 方法616.3.19ReqQryPartAccount 方法626.3.20ReqQryOrder 方法626.3.21ReqQryQuote 方法636.3.22ReqQryTrade 方法646.3.23ReqQryClient 方法656.3.24ReqQryPartPosition 方法666.3.25ReqQryClientPosition 方法666.3.26ReqQryInstrument 方法676.3.27ReqQryInstrumentStatus 方法686.3.28ReqQryMarketData 方法68
9、6.3.29ReqQryBulletin 方法696.3.30ReqQryMBLMarketData 方法706.3.31ReqQryHedgeVolume 方法706.3.32ReqAdminOrderInsert方法716.3.33ReqQryCreditLimit方法726.3.34GetVersion方法73第7章开发示例74第8章附录838.1错误编码列表838.2枚举编码列表898.3数据类型列表100第1章 介绍交易系统API是一个基于C+的类库, 通过使用和扩展类库提供的接口来实现全部的交易功能,包括报单与报价的录入、报单与报价的撤销、报单与报价的挂起、报单与报价的激活、报单与
10、报价的修改、报单与报价的查询、成交单查询、会员客户查询、会员持仓查询、客户持仓查询、合约查询、合约交易状态查询、交易所公告查询。该类库包含以下5个文件:文件名版本文件大小文件描述CFfexFtdcTraderApi.hV1.1 L30012,765 字节交易接口头文件CFfexFtdcUserApiStruct.hV1.1 L30047,208字节定义了UserAPI所需的一系列数据类型的头文件CFfexFtdcUserApiDataType.hV1.1 L300159,236 字节定义了一系列业务相关的数据结构的头文件CFfextraderapi.dllV1.1 L300806,912 字节
11、动态链接库二进制文件CFfextraderapi.libV1.1 L3003,994 字节导入库文件支持MS VC 6.0,MS VC.NET 2003编译器。需要打开多线程编译选项/MT。第2章 体系结构交易员API使用建立在TCP协议之上FTD协议与交易所的交易前置系统进行通讯。交易前置系统负责会员系统的交易业务,而不会发出行情。接收行情需要使用另外的“行情API”。2.1 通讯模式FTD协议中的所有通讯都基于某个通讯模式。通讯模式实际上就是通讯双方协同工作的方式。FTD涉及的通讯模式共有三种:l 对话通讯模式l 私有通讯模式l 广播通讯模式对话通讯模式是指由会员端主动发起的通讯请求。该请
12、求被交易所端接收和处理,并给予响应。例如报单、查询等。这种通讯模式与普通的客户/服务器模式相同。私有通讯模式是指交易所端主动,向某个特定的会员发出的信息。例如成交回报等。广播通讯模式是指交易所端主动,向市场中的所有会员都发出相同的信息。例如公告、市场公共信息等。通讯模式和网络的连接不一定存在简单的一对一的关系。也就是说,一个网络连接中可能传送多种不同通讯模式的报文,一种通讯模式的报文也可以在多个不同的连接中传送。无论哪种通讯模式,其通讯过程都如图1所示:图1) 各通讯模式的工作过程2.2 数据流交易前置支持对话通讯模式、私有通讯模式、广播通讯模式:对话通讯模式下支持对话数据流和查询数据流:对话
13、数据流是一个双向数据流,会员系统发送交易请求,交易系统反馈应答。交易系统不维护对话流的状态。系统故障时,对话数据流会重置,通讯途中的数据可能会丢失。查询数据流是一个双向数据流,会员系统发送查询请求,交易系统反馈应答。交易系统不维护查询流的状态。系统故障时,查询数据流会重置,通讯途中的数据可能会丢失。私有通讯模式下支持私有数据流:私有流是一个单向数据流,由交易系统发向会员系统,用于传送交易员私有的通知和回报信息。私有流是一个可靠的数据流,交易系统维护每个会员系统的私有流,在一个交易日内,会员系统断线后恢复连接时,可以请求交易系统发送指定序号之后的私有流数据。私有数据流向会员系统提供报单状态报告、
14、成交回报更等信息。广播通讯模式下支持公共数据流:公共数据流是一个单向数据流,由交易系统发向会员系统,用于发送市场公共信息;公共数据流也是一个可靠的数据流,交易系统维护整个系统的公共数据流,在一个交易日内,会员系统断线恢复连接时,可以请求交易系统发送指定序号之后的公共数据流数据。第3章 接口模式交易员API提供了二个接口,分别为CFfexFtdcTraderApi和CFfexFtdcTraderSpi。这两个接口对FTD协议进行了封装,方便客户端应用程序的开发。客户端应用程序可以通过CFfexFtdcTraderApi发出操作请求,通继承CFfexFtdcTraderSpi并重载回调函数来处理后台服务的响应。3.1 对话流和查询流编程接口通过对话流进行通讯的编程接口通常如下:请求:int CFfexFtdcTraderApi:ReqXXX(CFfexFtdcXXXField *pReqXXX, int nRequestID)响应:void CFfexFtdcTraderSpi: