- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
[CTP综合交易平台教程
CTP综合交易平台教程
基本介绍
一、系统简介
API 是一个基于 C++的类库, 通过使用和扩展类库提供的接口来实现相关交易功能,包括报单与报价的录入、报单与报价的撤销、报单与报价的挂起、报单与报价的激活、报单与报价的修改、报单与报价的查询、成交单查询、投资者查询、投资者持仓查询、合约查询、交易日获取等。
MS VC 6.0,MS VC.NET 2003 编译器。需要打开多线程编译选项/MT。
构
API 使用建立在 TCP 协议之上 FTD 协议与交易托管系统进行通讯,交易托管系统负责投资者的交易业务处理。
2.1. 通讯模式
FTD FTD 涉及的通讯模式共有三种:l 对话通讯模式l 私有通讯模式l 广播通讯模式对话通讯模式是指由会员端主动发起的通讯请求。该请求被交易所端接收和处理,并给予响应。例如报单、查询等。这种通讯模式与普通的客户/服务器模式相同。私有通讯模式是指交易所端主动,向某个特定的会员发出的信息。例如成交回报等。广播通讯模式是指交易所端主动,向市场中的所有会员都发出相同的信息。例如公告、市场公共信息等。通讯模式和网络的连接不一定存在简单的一对一的关系。也就是说,一个网络连接中可能传送多种不同通讯模式的报文,一种通讯模式的报文也可以在多个不同的连接中传送。无论哪种通讯模式,其通讯过程都如图 1 所示
。
2.2. 流
。
。
。
交易 员 API 提供 了二 个接口, 分别为 CThostFtdcTraderApi 和CThostFtdcTraderSpi。这两个接口对 FTD 协议进行了封装,方便客户端应用程序的开发。客户端应用程 序可以通过 CThostFtdcTraderApi 发出操作请求,通继承CThostFtdcTraderSpi 并重载回调函数来处理后台服务的响应。
1. 对话流和查询流编程接口通过对话流进行通讯的编程接口通常如下:
请求:int CThostFtdcTraderApi::ReqXXX(CThostFtdcXXXField *pReqXXX,int nRequestID)响应:void CThostFtdcTraderSpi::OnRspXXX(CThostFtdcXXXField *pRspXXX,CThostFtdcRspInfoField *pRspInfo,int nRequestID,bool bIsLast)其中请求接口第一个参数为请求的内容,不能为空。第二个参数为请求号。请求号由客户端应用程序负责维护,正常情况下每个请求的请求号不要重复。在接收交易托管系统的响应时,可以得到当时发出请求时填写的请求号,从而可以将响应与请求对应起来。当收到后台服务应答时,CThostFtdcTraderSpi 的回调函数会被调用。如果响应数据不止一个,则回调函数会被多次调用。回调函数的第一个参数为响应的具体数据,如果出错或没有结果有可能为NULL。第二个参数为处理结果,表明本次请求的处理结果是成功还是失败。在发生多次回调时,除了第一次回调,其它的回调该参数都可能为 NULL。第三个参数为请求号,即原来发出请求时填写的请求号。第四个参数为响应结束标志,表明是否是本次响应的最后一次回调。
2. 私有流编程接口私有流中的数据中会员的私有信息,包括报单回报、成交回报等。通过私有流接收回报的编程接口通常如下:
void CThostFtdcTraderSpi::OnRtnXXX(CThostFtdcXXXField *pXXX)或void CThostFtdcTraderSpi::OnErrRtnXXX(CThostFtdcXXXField *pXXX,CThostFtdcRspInfoField *pRspInfo)当收到交易托管系统通过私有流发布的回报数据时,CThostFtdcTraderSpi的回调函数会被调用。回调函数的参数为回报的具体内容。
运行模式
工作线程交易员客户端应用程序至少由两个线程组成,一个是应用程序主线程,一个是交易员 API 工作线程。应用程序与交易系统的通讯是由 API 工作线程驱动的。CThostFtdcTraderApi 提供的接口是线程安全的,可以有多个应用程序线程同时发出请求。CThostFtdcTraderSpi 提供的接口回调是由 API 工作线程驱动,通过实现 SPI中的接口方法,可以从交易托管系统收取所需数据。如果重载的某个回调函数阻塞,则等于阻塞了 API 工作线程,API 与交易系统的通讯会停止。因此,在 CThostFtdcTraderSpi 派生类的回调函数中,通常应迅速返回,可以利用将数据放入缓冲区或通过 Windows 的消息机制来实现。
文档评论(0)