ImageVerifierCode 换一换
格式:DOCX , 页数:91 ,大小:762.35KB ,
资源ID:8496179      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/8496179.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(CTP交易报告.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

CTP交易报告.docx

1、CTP交易报告CTP交易报告应用编程手册1、历年版本版本:v4.2 时间:2009-11-6备注:英文版2、索引 第一章 简介1.1 背景1.2 API文件介绍第二章 结构 2.1 通讯模式 2.2 数据流第三章 编程接口类型 3.1 对话模式的编程接口 3.2 私有模式的编程接口 3.3 广播模式的编程接口第一章 介绍综合交易平台(Comprehensive Transaction Platform),是专门为期货公司开发的一套期货经纪业务管理系统,由交易、风险控制和结算三大系统组成。API,实现了客户端和综合交易平台之间的通讯。通过API,投资者可以接收来自上交所,大商所和郑商所的行情数据

2、,发送交易指令,接收相应的反馈和交易状态等信息。1.1 背景2006年,上海金融期货交易所完成了新一代交易系统的开发,我们借助其成功经验,开发了CTP。2007年4月,我们获得了来自中国期货公司交易的第一笔订单。通过近三年的不懈努力, 使用CTP的投资者遍布全球,国内使用CTP的期货公司已到达30家。1.2 API文件CTP上使用的API是基于C+程序库,来实现客户端和CTP服务器之间的数据传输。客户端包括,所有投资者都可以使用的CTP标准客户端(比如,Q7,popo,weisoft等第三方开发的客户端),以及个性化交易工具(由投资者个人或其合作者开发)。通过API,客户端可以发出或撤销普通单

3、、条件单、查询委托或交易状态、查询账户实时信息和交易头寸。API程序库包括: 注:使用MS VC 6.0,MS VC.NET 2003等编程工具的,需要在编程设置中打开“multi-thread”选项。第二章 结构CTP的API和CTP服务器之间使用的通讯协议是期货交易数据协议(futures TradingData Exchange protocol ,FTD),它基于TCP协议。2.1 通讯模式在FTD协议中,通讯模式包括以下三种模式:对话模式,客户端给CTP发送请求,CTP将会相应返回结果。私有模式,CTP把特定的私人信息发送给对应的客户端,包括持仓信息、交易确认信息等。广播模式,CTP

4、将把公告等信息发送给所有的注册用户。每种模式并不限于一种连接状态。也就是说,建立一种连接之后,客户端可以同时使用三种通讯模式 ,或者建立集中不同的连接之后,客户端也可以使用同样的通讯模式。比如,客户可以使用广播模式来接收合约状态的变动信息,同时也可接收私人信息(如下单确认等)。下图描绘了三种通讯模式的工作流程:2.2 数据流CTP提供了对话、私有、广播等三种通讯模式。在对话模式中,传输的是对话数据流和查询数据流。对话和查询数据流是双向数据流,客户端发出请求,CTP服务器返回结果。CTP服务器并不保存对话和查询数据流。当故障发生时,比如连接中断后又重新连接,对话和查询数据流将回复原值,之间传输的

5、数据将丢失。在私人通讯模式中,传输的是私人数据流。私人数据流是单向数据流,CTP服务器就是利用它来把相应的私人信息发给提出申请的客户端。私人信息包括,风险提示、指令状态、指令确认、交易确认等。私人数据流是可靠的。当客户端和CTP服务器失去连接后,在同一交易日的任何时间,客户端都可重新连上CTP服务器,获取一系列指定的私人信息而不用担心这些数据会丢失。在广播通讯模式中,传输的是公共数据流。和私人数据流一样,它是单向数据流,而且可靠。区别在于,广播通讯数据会发送到所有连接的客户端上。它的主要用途就是发布公共合约的状态信息或重要的公共信息。第三章 编程接口类型CTP的交易API提供了两种编程接口:C

6、ThostFtdcTraderApi 与CThostFtdcTraderSpi。行情API提供的是CThostFtdcMdApi 与 CThostFtdcMdSpi等两种编程接口。这四种接口遵循FTD协议。客户端可使用CThostFtdcXXXApi来发送请求,并通过CThostFtdcXXXSpi来接收CTP返回的数据。3.1 对话模式的编程接口对话模式的通讯函数常常这样定义: Request函数的第一个参数是请求的内容,不能为空。第二个参数是请求的ID,由client trade application保管,并且最好独一无二,这样,当客户端从CTP服务器接收到数据时,客户端可以用同一个ID

7、重新建立请求并获得反馈。当客户端收到CTP服务器发出的反馈时,callback函数CThostFtdcXXXSpi被激活。如果反馈多于一条,callback函数CThostFtdcXXXSpi会反复被激活,直到数据全部接收完毕。Response函数的第一个参数是反馈的数据,它一般包括最初的请求数据。如果故障发生或CTP不能找到请求的记录,那么这个参数就是空值。第二个参数是CTP用来判断反馈是否成功的一个标识。当callback函数被激活的次数超过一次,除第一次被激活外,其他callback过程发生时第二个参数的值均为空。第三个参数是反馈的ID,作用和Request函数中的一样。最后一个参数是结

8、束标识,其值为“true”时表示进行的是该请求的最后一个反馈。3.2 私有模式的编程接口下面的例子为私有模式的常用接口:在私有模式里并没有连接API与CTP服务器的行情函数。当CTP服务器发出私有数据流时, CThostFtdcTradeSpi的callback函数将被激活。所有callback函数的第一个参数都是CTP服务器返回的内容。OnErrRtnCThostFtdcTradeSpi 函数的第二个参数是报错时详细的错误信息。3.3 广播模式的编程接口使用广播模式时,客户端可以用以下两种方式与CTP服务器进行通讯:callback函数OnRtnInstrumentStatus 用于通知客户

9、端合约状态的变化。callback函数OnRtnDepthMarketData用于公布最新的交易所行情数据。第四章 运作模式4.1 工作线程CTP客户端进程需要两种线程,一是应用程序线程,另一种是交易API工作线程。如果客户端想要接收行情数据,那么也需要行情API工作线程。API工作线程连接了客户端和CTP服务器。交易API和行情API是安全线程,客户端的应用程序可以同时使用两种或多种的工作线程,而无须担心线程冲突。客户单的应用程序要能尽快的处理callback信息,这样才能避免未处理的callback信息堵塞工作线程。要避免通讯堵塞,客户端的应用程序需要使用缓冲层来储存从CTP接收的数据,当

10、然缓冲层也可以用来保护客户端自有数据,以便使之与CTP API的数据区分开。4.2 文件CTP API 的动态链接数据库会产生一些文件来储存运行过程中的数据,这些文件的后缀名为“.con”。交易客户端的应用程序通过CreateFtdcTraderApi() 或CreateFtdcMdApi() 函数的第一个参数来判断这些文件的本地路径。4.3 商业术语与接口函数对比第五章 CTP API 特别说明5.1 一般规则客户端应用程序需要经过两步才能连接到CTP服务器:初始化与功能启用。使用交易API,客户端交易应用程序需要编写:(1)创建一个“CThostFtdcTraderApi”实例。(2)创建

11、一个处理来自“CThostFtdcTraderSpi”接口的事件处理器,然后使用“CThostFtdcTraderApi”的“RegisterSpi”函数记录下这些事件。(3)使用“CThostFtdcTraderApi”的“SubscribePrivateTopic”函数处理私有数据流。(4)使用“CThostFtdcTraderApi”的“SubscribePublicTopic” 函数处理公共数据流。(5)使用“CThostFtdcTraderApi”的“RegisterFront” 函数记录CTP服务器的前端地址。客户端多运行几次这种函数,以便与服务器建立更可靠的联系。强烈建议。(6)

12、使用“CThostFtdcTraderApi”的“Init“函数来连接CTP服务器。(7)服务器连上之后,“CThostFtdcTraderSpi”接口的callback函数“OnFrontConnected”将被激活。函数运行过程中,客户端的应用程序需要使用“CThostFtdcTraderApi”的“ReqUserLogin” 函数来提交“login”请求。(8)当CTP服务器确认登陆成功后,“CThostFtdcTraderSpi”接口的callback 函数“OnRspUserLogin” 将被激活。(9)这样,客户端与CTP服务器的通讯就建立起来了。客户端交易应用程序可以使用其他CT

13、P API来与CTP服务器进行通讯。如果客户端应用程序需要使用行情API,客户端需要采取以下步骤来描述先前的数据流,不包括私有数据流和公共信息流。具体如下:(1)所有request函数的参数都不能为空值;(2)如果函数返回的数值为“int”,数值0意味着函数运行良好,其他数值则表示返回错误,具体的错误信息在“error.xml”文件里面。5.2 CThostFtdcTraderSpi CTP用CThostFtdcTraderSpi表示事件接口。客户端应用程序可以通过CThostFtdcTraderSpi 函数获得CTP服务器发出的通知。5.2.1 OnFrontConnected当客户端与CT

14、P服务器连接上后,此函数被激活,进而,客户端可以使用“ReqUserLogin”来发送登陆请求。定义:void OnFrontConnected();5.2.2 OnFrontDisconnected当连接终止或中断时,此函数被激活。如果该信息没有被处理,那么API会使用登陆地址列表上的一个前端地址,自动重新连接CTP服务器。定义:void OnFrontDisconnected (int nReason);参数:nReason:the reason of disconnecion0x1001 network reading failed0x1002 network writing faile

15、d0x2001 heartbeat receiving timeout0x2002 heartbeat sending timeout0x2003 received an error message5.2.3 OnHeartBeatWarning此函数用来表示与服务器长时间连接的接口是否可用。定义:void OnHeartBeatWarning(int nTimeLapse);参数: nTimeLapse:Length of time elapsed since the last received message5.2.4 OnRspUserLoginCTP服务器使用次callback 函数O

16、nRspUserLogin 来通知客户端登陆函数OnRspUserLogin是否被服务器接受。定义:void OnRspUserLogin(CThostFtdcRspUserLoginField *pRspUserLogin,CThostFtdcRspInfoField *pRspInfo,int nRequestID,bool bIsLast);参数:pRspUserLogin:The pointer of the structure for users login response. Thefollowing is definition of the structure:struct CT

17、hostFtdcRspUserLoginField/trading dayTThostFtdcDateType TradingDay;/time of loginTThostFtdcTimeType LoginTime;/broker idTThostFtdcBrokerIDType BrokerID;/user idTThostFtdcUserIDType UserID;/trade system nameTThostFtdcSystemNameType SystemName;pRspInfo:Pointer of the structure for system response. The

18、 following isdefinition of the structure:struct CThostFtdcRspInfoField/error idTThostFtdcErrorIDType ErrorID;/error informationTThostFtdcErrorMsgType ErrorMsg;5.2.5 OnRspUserLogoutCTP服务器利用此callback函数来通知客户端“RspUserLogout”是否运行成功。定义:void OnRspUserLogout(CThostFtdcUserLogoutField *pUserLogout,CThostFtdc

19、RspInfoField *pRspInfo,int nRequestID,bool bIsLast);参数:pRspUserLogout:Pointerof the structure for users logout response. Thefollowing is definition of the structure:struct CThostFtdcUserLogoutField/broker idTThostFtdcBrokerIDType BrokerID;/user idTThostFtdcUserIDType UserID;5.2.6 OnRspUserPasswordUp

20、dateCTP服务器使用此callback函数来通知客户端函数“RspUserPasswordUpdate”是否运行成功。定义:void OnRspUserPasswordUpdate(CThostFtdcUserPasswordUpdateField*pUserPasswordUpdate,CThostFtdcRspInfoField *pRspInfo,int nRequestID,bool bIsLast); 参数:pUserPasswordUpdate:Pointer of the structure for the response of userspassword modifica

21、tion. The following is definition of the structure:struct CThostFtdcUserPasswordUpdateField/broker idTThostFtdcBrokerIDType BrokerID;/user idTThostFtdcUserIDType UserID;/old passwordTThostFtdcPasswordTypeOldPassword;/new passwordTThostFtdcPasswordTypeNewPassword; 5.2.7 OnRspTradingAccountPasswordUpd

22、ateCTP服务器使用此callback函数来通知客户端是否函数“RspTradingAccountPasswordUpdate”运行成功。定义:void OnRspTradingAccountPasswordUpdate(CThostFtdcTradingAccountPasswordUpdateField *pTradingAccountPasswordUpdate,CThostFtdcRspInfoField *pRspInfo,int nRequestID,bool bIsLast);参数:parameters:pTradingAccountPasswordUpdate:Pointer

23、 of the structure for the response oftrading account password modification. The following is definition of the structure,struct CThostFtdcTradingAccountPasswordUpdateField/broker idTThostFtdcBrokerIDType BrokerID;/account idTThostFtdcAccountIDType AccountID;/old passwordTThostFtdcPasswordTypeOldPass

24、word;/new passwordTThostFtdcPasswordTypeNewPassword;5.2.8 OnRspErrorCTP服务器利用此callback函数来通知客户端,其应用程序请求出现错误。定义:void OnRspError(CThostFtdcRspInfoField *pRspInfo,int nRequestID,bool bIsLast) 参数:pRspInfo:Pointer of the structure for the response information. The following isdefinition of the structure,st

25、ruct CThostFtdcRspInfoField/error idTThostFtdcErrorIDType ErrorID;/error informationTThostFtdcErrorMsgType ErrorMsg;5.2.9 OnRspOrderInsertCTP服务器使用此callback函数来反馈客户端“RspOrderInsert”的请求。定义:void OnRspOrderInsert(CThostFtdcInputOrderField *pInputOrder,CThostFtdcRspInfoField *pRspInfo,int nRequestID,bool

26、bIsLast);参数:pInputOrder:Pointer of the structure for the response of order inserting. Thefollowing is definition of the structure,struct CThostFtdcInputOrderField/broker idTThostFtdcBrokerIDType BrokerID;/investor IDTThostFtdcInvestorIDType InvestorID;/instrument IDTThostFtdcInstrumentIDType Instrum

27、entID;/order referenceTThostFtdcOrderRefType OrderRef;/user idTThostFtdcUserIDType UserID;/ price type of condition orderTThostFtdcOrderPriceTypeType OrderPriceType;/order directionTThostFtdcDirectionType Direction;/combination orders offset flagTThostFtdcCombOffsetFlagType CombOffsetFlag;/combinati

28、on or hedge flagTThostFtdcCombHedgeFlagType CombHedgeFlag;/priceTThostFtdcPriceType LimitPrice;/volumeTThostFtdcVolumeType VolumeTotalOriginal;/valid dateTThostFtdcTimeConditionType TimeCondition;21/GTD DATETThostFtdcDateType GTDDate;/volume typeTThostFtdcVolumeConditionType VolumeCondition;/min vol

29、umeTThostFtdcVolumeType MinVolume;/trigger conditionTThostFtdcContingentConditionType ContingentCondition;/stop priceTThostFtdcPriceType StopPrice;/force close reasonTThostFtdcForceCloseReasonType ForceCloseReason;/ auto suspend flagTThostFtdcBoolType IsAutoSuspend;/business unitTThostFtdcBusinessUn

30、itType BusinessUnit;/request IDTThostFtdcRequestIDType RequestID;5.2.10 OnRspOrderActionCTP服务器使用此callback函数来反馈客户端“RspOrderAction”的请求。定义:void OnRspOrderAction(CThostFtdcOrderActionField *pOrderAction,CThostFtdcRspInfoField *pRspInfo,int nRequestID,bool bIsLast); 参数: pOrderAction:Pointer of the structure for the response of order action. Thefollowing is definition of the structure,struct CThostFtdcOrderActionField/broker idTThostFtdcBrokerIDType BrokerID;/investor IDTThostFtdcInvestorIDType InvestorID;TThostFtdcRequestIDType RequestID;/front IDTThostFtdcFrontIDType FrontID;/sessi

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1