ctp综合交易平台教程Word文档下载推荐.docx
- 文档编号:17438497
- 上传时间:2022-12-01
- 格式:DOCX
- 页数:11
- 大小:46.87KB
ctp综合交易平台教程Word文档下载推荐.docx
《ctp综合交易平台教程Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《ctp综合交易平台教程Word文档下载推荐.docx(11页珍藏版)》请在冰豆网上搜索。
系统故障时,对话数据流会重置,通讯途中的数据可能会丢失。
查询数据流是一个双向数据流,交易托管系统发送查询请求,交易系统反馈应答。
交易系统不维护查询流的状态。
系统故障时,查询数据流会重置,通讯途中的数据可能会丢失。
私有通讯模式下支持私有数据流:
私有流是一个单向数据流,由交易系统发向交易托管系统,用于传送交易员私有的通知和回报信息。
私有流是一个可靠的数据流,交易系统维护每个交易托管系统的私有流,在一个交易日内,交易托管系统断线后恢复连接时,可以请求交易系统发送指定序号之后的私有流数据。
私有数据流向交易托管系统提供报单状态报告、成交回报更等信息。
广播通讯模式下支持公共数据流:
公共数据流是一个单向数据流,由交易系统发向交易托管系统,用于发送市场公共信息;
公共数据流也是一个可靠的数据流,交易系统维护整个系统的公共数据流,在一个交易日内,交易托管系统断线恢复连接时,可以请求交易系统发送指定序号之后的公共数据流数据。
接口模式
交易员API提供了二个接口,分别为CThostFtdcTraderApi和CThostFtdcTraderSpi。
这两个接口对FTD协议进行了封装,方便客户端应用程序的开发。
客户端应用程序可以通过CThostFtdcTraderApi发出操作请求,通继承CThostFtdcTraderSpi并重载回调函数来处理后台服务的响应。
1.对话流和查询流编程接口通过对话流进行通讯的编程接口通常如下:
请求:
intCThostFtdcTraderApi:
:
ReqXXX(CThostFtdcXXXField*pReqXXX,intnRequestID)
响应:
voidCThostFtdcTraderSpi:
OnRspXXX(CThostFtdcXXXField*pRspXXX,CThostFtdcRspInfoField*pRspInfo,intnRequestID,boolbIsLast)
其中请求接口第一个参数为请求的内容,不能为空。
第二个参数为请求号。
请求号由客户端应用程序负责维护,正常情况下每个请求的请求号不要重复。
在接收交易托管系统的响应时,可以得到当时发出请求时填写的请求号,从而可以将响应与请求对应起来。
当收到后台服务应答时,CThostFtdcTraderSpi的回调函数会被调用。
如果响应数据不止一个,则回调函数会被多次调用。
回调函数的第一个参数为响应的具体数据,如果出错或没有结果有可能为NULL。
第二个参数为处理结果,表明本次请求的处理结果是成功还是失败。
在发生多次回调时,除了第一次回调,其它的回调该参数都可能为NULL。
第三个参数为请求号,即原来发出请求时填写的请求号。
第四个参数为响应结束标志,表明是否是本次响应的最后一次回调。
2.私有流编程接口私有流中的数据中会员的私有信息,包括报单回报、成交回报等。
通过私有流接收回报的编程接口通常如下:
OnRtnXXX(CThostFtdcXXXField*pXXX)
或voidCThostFtdcTraderSpi:
OnErrRtnXXX(CThostFtdcXXXField*pXXX,CThostFtdcRspInfoField*pRspInfo)
当收到交易托管系统通过私有流发布的回报数据时,CThostFtdcTraderSpi的回调函数会被调用。
回调函数的参数为回报的具体内容。
运行模式
工作线程交易员客户端应用程序至少由两个线程组成,一个是应用程序主线程,一个是交易员API工作线程。
应用程序与交易系统的通讯是由API工作线程驱动的。
CThostFtdcTraderApi提供的接口是线程安全的,可以有多个应用程序线程同时发出请求。
CThostFtdcTraderSpi提供的接口回调是由API工作线程驱动,通过实现SPI中的接口方法,可以从交易托管系统收取所需数据。
如果重载的某个回调函数阻塞,则等于阻塞了API工作线程,API与交易系统的通讯会停止。
因此,在CThostFtdcTraderSpi派生类的回调函数中,通常应迅速返回,可以利用将数据放入缓冲区或通过Windows的消息机制来实现。
本地文件交易员API在运行过程中,会将一些数据写入本地文件中。
调用CreateFtdcTraderApi函数,可以传递一个参数,指明存贮本地文件的路径。
该路径必须在运行前已创建好。
本地文件的扩展名都是"
.con"
。
开发接口通用规则
客户端和交易托管系统的通讯过程分为2个阶段:
初始化阶段和功能调用阶段。
在初始化阶段,程序必须完成如下步骤(具体代码请参考开发实例):
1,产生一个CThostFtdcTraderApi实例
2,产生一个事件处理的实例
3,注册一个事件处理的实例
4,订阅私有流
5,订阅公共流
6,设置交易托管服务的地址
在功能调用阶段,程序可以任意调用交易接口中的请求方法,如ReqOrderInsert等。
同时按照需要响应回调接口中的。
其他注意事项:
1,API请求的输入参数不能为NULL。
2,API请求的返回参数,0表示正确,其他表示错误,详细错误编码请查表。
CThostFtdcTraderSpi接口
CThostFtdcTraderSpi实现了事件通知接口。
用户必需派生CThostFtdcTraderSpi接口,编写事件处理方法来处理感兴趣的事件。
由于回调函数众多,在此不一一举例,只说明几个经典函数的功能与用法,其它函数可举一反三。
1.OnFrontConnected
方法当客户端与交易托管系统建立起通信连接时(还未登录前),该方法被调用。
函数原形:
voidOnFrontConnected();
本方法在完成初始化后调用,可以在其中完成用户登录任务。
2.OnFrontDisconnected方法
当客户端与交易托管系统通信连接断开时,该方法被调用。
当发生这个情况后,API会自动重新连接,客户端可不做处理。
自动重连地址,可能是原来注册的地址,也可能是系统支持的其它可用的通信地址,它由程序自动选择。
voidOnFrontDisconnected(intnReason);
参数:
nReason:
连接断开原因
0x1001网络读失败
0x1002网络写失败
0x2001接收心跳超时
0x2002发送心跳失败
0x2003收到错误报文
3.OnRspUserLogin方法
当客户端发出登录请求之后,交易托管系统返回响应时,该方法会被调用,通知客户端登录是否成功。
voidOnRspUserLogin(
CThostFtdcRspUserLoginField*pRspUserLogin,
CThostFtdcRspInfoField*pRspInfo,
intnRequestID,
boolbIsLast);
pRspUserLogin:
返回用户登录信息的地址。
用户登录信息结构:
structCThostFtdcRspUserLoginField
{///交易日
TThostFtdcDateTypeTradingDay;
///登录成功时间
TThostFtdcTimeTypeLoginTime;
///经纪公司代码
TThostFtdcBrokerIDTypeBrokerID;
///用户代码TThostFtdcUserIDTypeUserID;
///交易系统名称TThostFtdcSystemNameTypeSystemName;
};
pRspInfo:
返回用户响应信息的地址。
特别注意在有连续的成功的响应数据时,中间有可能返回NULL,但第一次不会,以下同。
错误代码为0时,表示操作成功,以下同。
响应信息结构:
structCThostFtdcRspInfoField
{///错误代码
TThostFtdcErrorIDTypeErrorID;
///错误信息TThostFtdcErrorMsgTypeErrorMsg;
nRequestID:
返回用户登录请求的ID,该ID由用户在登录时指定。
bIsLast:
指示该次返回是否为针对nRequestID的最后一次返回。
4.OnRspOrderInsert方法
报单录入应答。
当客户端发出过报单录入指令后,交易托管系统返回响应时,该方法会被调用。
voidOnRspOrderInsert(
CThostFtdcInputOrderField*pInputOrder,
pInputOrder:
指向报单录入结构的地址,包含了提交报单录入时的输入数据,和后台返回的报单编号。
输入报单结构:
structCThostFtdcInputOrderField
{
///投资者代码
TThostFtdcInvestorIDTypeInvestorID;
///合约代码
TThostFtdcInstrumentIDTypeInstrumentID;
///报单引用
TThostFtdcOrderRefTypeOrderRef;
///用户代码
TThostFtdcUserIDTypeUserID;
///报单价格条件
TThostFtdcOrderPriceTypeTypeOrderPriceType;
///买卖方向
TThostFtdcDirectionTypeDirection;
///组合开平标志
TThostFtdcCombOffsetFlagTypeCombOffsetFlag;
///组合投机套保标志
TThostFtdcCombHedgeFlagTypeCombHedgeFlag;
///价格
TThostFtdcPriceTypeLimitPrice;
///数量
TThostFtdcVolumeTypeVolumeTotalOriginal;
///有效期类型
TThostFtdcTimeConditionTypeTimeCondition;
///GTD日期
TThostFtdcDateTypeGTDDate;
///成交量类型
TThostFtdcVolumeConditionTypeVolumeCondition;
///最小成交量
TThostFtdcVolumeTypeMinVolume;
///触发条件
TThostFtdcContingentConditionTypeContingentCondition;
///止损价
TThostFtdcPriceTypeStopPrice;
///强平原因
TThostFtdcForceCloseReasonTypeForceCloseReason;
///自动挂起标志
TThostFtdcBoolTypeIsAutoSuspend;
///业务单元TThostFtdcBusinessUnitTypeBusinessUnit;
///请求编号TThostFtdcRequestIDTypeRequestID;
指向响应信息结构的地址。
structCThostFtdcRspInfoField{
///错误代码
///错误信息TThostFtdcErrorMsgTypeErrorMsg;
返回报单录入操作请求的ID,该ID由用户在报单录入时指定。
5.OnRspOrderAction方法
///报单操作请求响应
virtualvoidOnRspOrderAction(CThostFtdcInputOrderActionField*pInputOrderAction,CThostFtdcRspInfoField*pRspInfo,intnRequestID,boolbIsLast){};
6.///请求查询交易通知响应
virtualvoidOnRspQryTradingNotice(CThostFtdcTradingNoticeField*pTradingNotice,CThostFtdcRspInfoField*pRspInfo,intnRequestID,boolbIsLast){};
7.///请求查询交易通知响应
CThostFtdcTraderApi接口
CThostFtdcTraderApi接口提供给用户的功能包括,报单与报价的录入、报单与报价的撤销、报单与报价的挂起、报单与报价的激活、报单与报价的修改、报单与报价的查询、成交单查询、会员客户查询、会员持仓查询、客户持仓查询、合约查询、合约交易状态查询、交易所公告查询等功能。
以下简单举些例子说明函数的用法,其它函数可举一反三。
1.CreateFtdcTraderApi方法
产生一个CThostFtdcTradeApi的一个实例,不能通过new来产生。
staticCThostFtdcTradeApi*CreateFtdcTradeApi(constchar*pszFlowPath="
"
);
pszFlowPath:
常量字符指针,用于指定一个文件目录来存贮交易托管系统发布消息的状态。
默认值代表当前目录。
返回值:
返回一个指向CThostFtdcTradeApi实例的指针。
2.ReqUserLogin方法
用户发出登陆请求。
intReqUserLogin(CThostFtdcReqUserLoginField*pReqUserLoginField,intnRequestID);
pReqUserLoginField:
指向用户登录请求结构的地址。
用户登录请求结构:
structCThostFtdcReqUserLoginField
///交易日
///密码
TThostFtdcPasswordTypePassword;
///用户端产品信息
TThostFtdcProductInfoTypeUserProductInfo;
///接口端产品信息
TThostFtdcProductInfoTypeInterfaceProductInfo;
///协议信息
TThostFtdcProtocolInfoTypeProtocolInfo;
用户登录请求的ID,该ID由用户指定,管理。
用户需要填写UserProductInfo字段,即客户端的产品信息,如软件开发商、版本号等,例如:
SFITTraderV100。
InterfaceProductInfo和ProtocolInfo只须占位,不必有效赋值。
0,代表成功。
-1,表示网络连接失败;
-2,表示未处理请求超过许可数;
-3,表示每秒发送请求数超过许可数。
3.ReqOrderAction方法
客户端发出报单操作请求,包括报单的撤销、报单的挂起、报单的激活、报单的修改。
intReqOrderAction(CThostFtdcOrderActionField*pOrderAction,intnRequestID);
pOrderAction:
指向报单操作结构的地址。
报单操作结构:
///报单操作
structCThostFtdcOrderActionField
TThostFtdcBrokerIDTypeBrokerID;
TThostFtdcInvestorIDTypeInvestorID;
///报单操作引用
TThostFtdcOrderActionRefTypeOrderActionRef;
TThostFtdcOrderRefTypeOrderRef;
///请求编号
TThostFtdcRequestIDTypeRequestID;
///前置编号
TThostFtdcFrontIDTypeFrontID;
///会话编号
TThostFtdcSessionIDTypeSessionID;
///交易所代码
TThostFtdcExchangeIDTypeExchangeID;
///报单编号
TThostFtdcOrderSysIDTypeOrderSysID;
///操作标志
TThostFtdcActionFlagTypeActionFlag;
TThostFtdcPriceTypeLimitPrice;
///数量变化
TThostFtdcVolumeTypeVolumeChange;
///操作日期
TThostFtdcDateTypeActionDate;
///操作时间
TThostFtdcTimeTypeActionTime;
///交易所交易员代码
TThostFtdcTraderIDTypeTraderID;
///安装编号
TThostFtdcInstallIDTypeInstallID;
///本地报单编号
TThostFtdcOrderLocalIDTypeOrderLocalID;
///操作本地编号
TThostFtdcOrderLocalIDTypeActionLocalID;
///会员代码
TThostFtdcParticipantIDTypeParticipantID;
///客户代码
TThostFtdcClientIDTypeClientID;
///业务单元
TThostFtdcBusinessUnitTypeBusinessUnit;
///报单操作状态
TThostFtdcOrderActionStatusTypeOrderActionStatus;
///状态信息
TThostFtdcErrorMsgTypeStatusMsg;
TThostFtdcInstrumentIDTypeInstrumentID;
用户报单操作请求的ID,该ID由用户指定,管理。
4.ReqQryInstrument方法
请求查询合约。
intReqQryInstrument(CThostFtdcQryInstrumentField*pQryInstrument,intnRequestID);
pQryInstrument:
指向查询查询合约结构的地址。
查询合约结构:
structCThostFtdcQryInstrumentField
///合约在交易所的代码
TThostFtdcExchangeInstIDTypeExchangeInstID;
///产品代码
TThostFtdcInstrumentIDTypeProductID;
合约查询请求的ID,该ID由用户指定,管理。
-3,表示每秒发送请求数超过许可数
CTP平台的特点
综合交易平台(ComprehensiveTransactionPlatform)是专门为期货公司开发的一套期货经纪业务管理系统,由交易、风险控制和结算三大系统组成,交易系统主要负责订单处理、行情转发及银期转账业务,结算系统负责交易管理、帐户管理、经纪人管理、资金管理、费率设置、日终结算、信息查询以及报表管理等,风控系统则主要在盘中进行高速的实时试算,以及时揭示并控制风险。
系统能够同时连通国内四家期货交易所,支持国内商品期货和股指期货的交易结算业务,并能自动生成、报送保证金监控文件和反洗钱监控文件。
综合交易平台借鉴代表了目前国际衍生品领域交易系统先进水平的上期所“新一
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- ctp 综合 交易平台 教程