跳到主要内容

接口模式

交易员API 提供了二种编程接口,分别为CQdpFtdcTraderApi和CQdpFtdcTraderSpi。这两种接口对FTD协议进行了封装,方便客户端应用程序的开发。

客户端应用程序可以通过CQdpFtdcTraderApi发出操作请求,通过继承QdpFtdcTraderSpi并重载回调函数来处理后台服务的响应。

对话流和查询流编程接口

通过对话流进行通讯的编程接口通常如下:

请求:

int CQdpFtdcTraderApi::ReqXXX(CQdpFtdcXXXField *pReqXXX, int nRequestID)

响应:

void CQdpFtdcTraderSpi::OnRspXXX(CQdpFtdcXXXField *pRspXXX, CQdpFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast)

其中请求接口第一个参数为请求的内容,不能为空。

第一个参数为请求号。请求号由客户端应用程序负责维护,正常情况下每个请求的请求号不要重复。在接收QDP后台系统的响应时,可以得到当时发出请求时填写的请求号,从而可以将响应与请求对应起来。

当收到后台服务应答时,CQdpFtdcTraderSpi的回调函数会被调用。如果响应数据不止一个,则回调函数会被多次调用。

回调函数的第一个参数为响应的具体数据,如果出错或没有结果有可能为NULL。

第二个参数为处理结果,表明本次请求的处理结果是成功还是失败。在发生多次回调时,除了第一次回调,其它的回调该参数都可能为NULL。

第三个参数为请求号,即原来发出请求时填写的请求号。

第四个参数为响应结束标志,表明是否是本次响应的最后一次回调。

私有流编程接口

私有流中的数据中用户的私有信息,包括报单回报、成交回报等。

通过私有流接收回报的编程接口通常如下:

void CQdpFtdcTraderSpi::OnRtnXXX(CQdpFtdcXXXField *pXXX)

void CQdpFtdcTraderSpi::OnErrRtnXXX(CQdpFtdcXXXField *pXXX, CQdpFtdcRspInfoField *pRspInfo)

当收到QDP交易系统通过私有流发布的回报数据时,CQdpFtdcTraderSpi的回调函数会被调用。回调函数的参数为回报的具体内容。