NGES交易系统.doc
《NGES交易系统.doc》由会员分享,可在线阅读,更多相关《NGES交易系统.doc(177页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、 NGES交易系统交易API和行情API接口规范Version:1.20发布日期:2009年6月20日2I 修订记录、核准记录和审核记录修订记录版本编号修订日期主要修订摘要1.20-R0022009/5/4技术中心和技术公司:根据会员接入规范和流程测试结果修改文档。1.20-R0012008/12/4技术公司:增加灾备接口;增加主题查询接口说明。1.12-R0032008/01/28技术公司:增加RESTART、RESUME和QUICK三种数据流恢复模式。1.12-R0022007/12/17技术部:合并TraderAPI和MduserAPI文档,调整部分章节内容。1.12-R0012007/
2、12/11技术公司:增加了错误代码处理;增加了私有流序列号设置功能;增加了前置机NameServer内容,但暂时不开放。1.08-R0012007/8/31上海期货交易所技术部:根据NGES V1.08交易系统修改部分接口;提高压缩效率;增加交易员私有流。1.002006/8/11上海期货信息技术有限公司制定初稿。核准记录核准人员属于部门(单位)核准日期严少辉技术中心2009/6/20审核记录审核人员属于部门(单位)审核日期邹文军技术中心2009/5/20文件制作和维护:上海期货交易所技术部;上海期货信息技术有限公司。目 录第一部分、NGES交易系统接口介绍41.介绍41.1.背景41.2.T
3、raderAPI简介41.3.MduserAPI简介41.4.TraderAPI/MduserAPI发行的平台41.5.修改历史41.5.1.版本1.2042.FTD体系结构42.1.通讯模式42.2.数据流43.接口模式43.1.TraderAPI接口43.1.1.对话流和查询流编程接口43.1.2.私有流编程接口43.1.3.公共流编程接口43.2.MduserAPI接口43.2.1.对话流编程接口43.2.2.行情流编程接口44.运行模式44.1.工作流程44.1.1.初始化阶段44.1.2.功能调用阶段44.2.工作线程44.3.会员系统使用TraderAPI与交易系统的交互44.4.
4、与交易所前置系统的连接44.5.本地文件44.6.请求/应答日志文件44.7.可靠数据流的订阅方式44.7.1.API维护重传报文的序号44.7.2.会员系统维护重传报文的序号44.8.心跳机制(Heartbeat)44.9.前置机列表44.10.灾备接口4第二部分、TRADERAPI参考手册41.TRADERAPI接口分类41.1.管理接口41.2.业务接口41.3.当前版本不开放的业务42.TRADERAPI参考手册42.1.CShfeFtdcTraderSpi接口42.1.1.OnFrontConnected 方法42.1.2.OnFrontDisconnected 方法42.1.3.O
5、nHeartBeatWarning方法42.1.4.OnPackageStart方法42.1.5.OnPackageEnd方法42.1.6.OnRspUserLogin方法42.1.7.OnRspUserLogout 方法42.1.8.OnRspUserPasswordUpdate 方法42.1.9.OnRspSubscribeTopic方法42.1.10.OnRspQryTopic方法42.1.11.OnRspError 方法42.1.12.OnRspOrderInsert 方法42.1.13.OnRspOrderAction 方法42.1.14.OnRspQuoteInsert 方法42.
6、1.15.OnRspQuoteAction 方法42.1.16.OnRspExecOrderInsert 方法42.1.17.OnRspExecOrderAction 方法42.1.18.OnRspQryPartAccount 方法42.1.19.OnRspQryOrder 方法42.1.20.OnRspQryQuote 方法42.1.21.OnRspQryTrade 方法42.1.22.OnRspQryClient 方法42.1.23.OnRspQryPartPosition 方法42.1.24.OnRspQryClientPosition 方法42.1.25.OnRspQryInstrum
7、ent 方法42.1.26.OnRspQryInstrumentStatus 方法42.1.27.OnRspQryBulletin 方法42.1.28.OnRspQryMarketData 方法42.1.29.OnRspQryMBLMarketData 方法42.1.30.OnRspQryHedgeVolume 方法42.1.31.OnRtnTrade 方法42.1.32.OnRtnOrder 方法42.1.33.OnRtnQuote 方法42.1.34.OnRtnExecOrder 方法42.1.35.OnRtnInstrumentStatus 方法42.1.36.OnRtnInsInstr
8、ument 方法42.1.37.OnRtnDelInstrument 方法42.1.38.OnRtnInsCombinationLeg 方法42.1.39.OnRtnDelCombinationLeg 方法42.1.40.OnRtnBulletin 方法42.1.41.OnRtnAliasDefine 方法42.1.42.OnRtnFlowMessageCancel方法42.1.43.OnErrRtnOrderInsert方法42.1.44.OnErrRtnOrderAction方法42.1.45.OnErrRtnQuoteInsert方法42.1.46.OnErrRtnQuoteAction
9、方法42.1.47.OnErrRtnExecOrderInsert方法42.1.48.OnErrRtnExecOrderAction方法42.1.49.OnRspCombOrderInsert方法42.1.50.OnRspQryCombOrder方法42.1.51.OnRtnCombOrder方法42.1.52.OnErrRtnCombOrderInsert方法42.2.CShfeFtdcTraderApi接口42.2.1.CreateFtdcTraderApi方法42.2.2.GetVersion方法42.2.3.Release 方法42.2.4.Init 方法42.2.5.Join 方法4
10、2.2.6.GetTradingDay方法42.2.7.RegisterSpi 方法42.2.8.RegisterFront 方法42.2.9.RegisterNameServer 方法42.2.10.SetHeartbeatTimeout方法42.2.11.OpenRequestLog方法42.2.12.OpenResponseLog方法42.2.13.SubscribePrivateTopic方法42.2.14.SubscribePublicTopic方法42.2.15.SubscribeUserTopic方法42.2.16.ReqUserLogin 方法42.2.17.ReqUserLo
11、gout 方法42.2.18.ReqUserPasswordUpdate 方法42.2.19.ReqSubscribeTopic方法42.2.20.ReqQryTopic方法42.2.21.ReqOrderInsert 方法42.2.22.ReqOrderAction 方法42.2.23.ReqQuoteInsert 方法42.2.24.ReqQuoteAction 方法42.2.25.ReqExecOrderInsert 方法42.2.26.ReqExecOrderAction 方法42.2.27.ReqQryPartAccount 方法42.2.28.ReqQryOrder 方法42.2.
12、29.ReqQryQuote 方法42.2.30.ReqQryTrade 方法42.2.31.ReqQryClient 方法42.2.32.ReqQryPartPosition 方法42.2.33.ReqQryClientPosition 方法42.2.34.ReqQryInstrument 方法42.2.35.ReqQryInstrumentStatus 方法42.2.36.ReqQryMarketData 方法42.2.37.ReqQryBulletin 方法42.2.38.ReqQryMBLMarketData 方法42.2.39.ReqQryHedgeVolume 方法42.2.40.
13、ReqCombOrderInsert方法42.2.41.ReqQryCombOrder方法43.TRADERAPI开发示例4第三部分、MDUSERAPI参考手册41.MDUSERAPI接口分类41.1.管理接口41.2.业务接口42.MDUSERAPI参考手册42.1.CShfeFtdcMduserSpi接口42.1.1.OnFrontConnected 方法42.1.2.OnFrontDisconnected 方法42.1.3.OnHeartBeatWarning方法42.1.4.OnPackageStart方法42.1.5.OnPackageEnd方法42.1.6.OnRspUserLog
14、in方法42.1.7.OnRspUserLogout 方法42.1.8.OnRspSubscribeTopic方法42.1.9.OnRspQryTopic方法42.1.10.OnRspError 方法42.1.11.OnRtnDepthMarketData 方法42.2.CShfeFtdcMduserApi接口42.2.1.CreateFtdcMduserApi方法43.1.1.GetVersion方法42.2.2.Release 方法42.2.3.Init 方法42.2.4.Join 方法42.2.5.GetTradingDay方法42.2.6.RegisterSpi 方法42.2.7.Re
15、gisterFront 方法43.1.2.RegisterNameServer 方法42.2.8.SetHeartbeatTimeout方法42.2.9.SubscribeMarketDataTopic方法42.2.10.ReqUserLogin 方法42.2.11.ReqUserLogout 方法42.2.12.ReqSubscribeTopic方法42.2.13.ReqQryTopic方法43.MDUSERAPI开发示例4第四部分 附录41.错误编码列表42.枚举值列表43.数据类型列表4IV第一部分、NGES交易系统接口介绍本部分主要介绍NGES交易系统的接口,包括:第一章引入NGES交
16、易系统的两个接口,TraderAPI用于会员系统下达交易、控制和查询指令,接收私有流(含报单插入、报单操作响应和成交回报)、公共流(市场控制提示)、响应流和查询流(查询结果);MduserAPI用于会员系统和行情转发商系统接收行情流。第二章介绍了两个API之后使用的通信协议FTD(Futures Trading Data Exchange Protocol),重点说明了数据流。第三章介绍了两个API对应于不同类型应用的编程接口。第四章介绍了API的工作模式,包括线程之间的通信、心跳机制和私有流信息传输的可靠性实现。作为NGES交易系统的接口基础,TraderAPI和MduserAPI的用户应该
17、仔细阅读第一部分内容。第161页1. 介绍1.1. 背景上海期货交易所于2006年11月3日成功上线了“新一代交易所系统”(简称NGES)的第一阶段项目,其中包括交易系统(简称NGES交易系统)。NGES交易系统使用了开放的主流平台,可以运行在Unix和Windows操作系统上。在中国证监会信息中心的统一领导下,上海期货交易所(简称SHFE或者交易所)、郑州商品交易所(简称CZCE)和大连商品交易所(简称DCE)联合研究了期货交易数据交换标准(Futures Trading Data Exchange Protocol,简称FTD或者FTD协议)。中国证监会于2005年3月25日发布了FTD(
18、JR/T 0016-2004),并于同日作为行业标准实施。NGES交易系统本质上使用FTD作为会员远程交易的主接入协议;同时为保持兼容和会员远程交易系统平稳切换,NGES交易系统支持原有基于Stratus交易主机的V1和V2版本的接口(分别简称为OFPV1和OFPV2);OFPV1和V2在NGES交易系统内部通过前置机实现了到FTD的翻译和转换。和OFPV1和V2不同,FTD协议体系较为复杂,为简化会员端远程交易系统的开发难度,同时也为提高交易系统运行的可靠性,SHFE不建议会员的远程交易系统(简称会员系统或者会员端)直接使用FTD协议接入NGES交易系统。为此,上海期货交易所发布了NGES交
19、易系统的交易API接口(简称NGES TraderAPI或者TraderAPI)和行情API接口(简称NGES MduserAPI或者MduserAPI)。会员系统调用TraderAPI即可完成与NGES交易系统的对接,接收到交易所的报单和成交回报后TraderAPI将回调(Callback)会员系统;会员系统或者行情转发商(简称行情商)(会员和行情转发商接收交易所行情的系统统称为行情接收端程序)系统调用MduserAPI即可完成与NGES交易系统的对接,接收到交易所的行情后MduserAPI将回调(Callback)行情接收端程序(又称为行情接收系统)。TraderAPI把与NGES交易系统
20、之间复杂的协议转换、数据同步和网络通信进行了封装。TraderAPI通过建立一个基于TCP的虚链路通道与NGES交易系统交易前置机的连接,实现会员系统的报单等交易行为。通过TraderAPI建立的连接通道具有多地址注册、断线自动重连和交易数据自动重传等特点。MduserAPI与TraderAPI类似,建立一个基于TCP的虚链路通道与NGES交易系统行情前置机的连接,实现行情的订阅和接收。1.2. TraderAPI简介TraderAPI是一个基于C+的类库,通过使用和扩展类库提供的接口来实现全部的交易功能,包括报单与报价的录入、报单与报价的撤销、报单与报价的挂起、报单与报价的激活、报单与报价的
21、修改、报单与报价的查询、成交单查询、会员客户查询、会员持仓查询、客户持仓查询、合约查询、合约交易状态查询、交易所公告查询。该类库包含以下5个文件:文件名版本文件大小文件描述FtdcTraderApi.hV1.20交易接口头文件FtdcUserApiStruct.hV1.20定义了UserAPI所需的一系列数据类型的头文件FtdcUserApiDataType.hV1.20定义了一系列业务相关的数据结构的头文件traderapi.dllV1.20动态链接库二进制文件traderapi.libV1.20导入库文件支持MS VC 6.0,MS VC.NET 2003编译器。需要打开多线程编译选项/M
22、T。注意:NGES交易系统支持许多新的报单指令(比如市价、最优价、组合交易等),还支持新的交易品种(比如期权及其报价),但受现有交易规则限制,NGES交易系统并没有开放上述功能。会员系统在开发过程中需注意“当前版本不开放的业务”,同时在每个功能描述中的具体描述。1.3. MduserAPI简介MduserAPI也是一个基于C+的类库,通过使用和扩展类库提供的接口来实现全部的行情订阅和接收功能。该类库包含以下5个文件:文件名版本文件大小文件描述FtdcMduserApi.hV1.20行情接口头文件FtdcUserApiStruct.hV1.20定义了UserAPI所需的一系列数据类型的头文件Ft
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- NGES 交易系统
限制150内