跳到主要内容

CQdFtdcMduserSpi 接口​

CQdFtdcMduserSpi实现了事件通知接口。用户必需派生CQdFtdcMduserSpi接口,编写事件处理方法来处理感兴趣的事件。

OnFrontConnected 方法​

当客户端与行情发布服务器建立起通信连接时(还未登录前),该方法被调用。

函数原型:

void OnFrontConnected();

本方法在完成初始化后调用,可以在其中完成用户登录任务。

OnFrontDisconnected 方法​

当客户端与交易后台通信连接断开时,该方法被调用。当发生这个情况后,API会自动重新连接,客户端可不做处理。

函数原型:

void OnFrontDisconnected (int nReason);

参数:

nReason 连接断开原因

0x1001 网络读失败

0x1002 网络写失败

0x2001 接收心跳超时

0x2002 发送心跳失败

0x2003 收到错误报文

OnHeartBeatWarning方法​

心跳超时警告。当长时间未收到报文时,该方法被调用。

函数原型:

void OnHeartBeatWarning(int nTimeLapse);

参数:

nTimeLapse 距离上次接收报文的时间

OnPackageStart方法​

报文回调开始通知。当API收到一个报文后,首先调用本方法,然后是各数据域的回调,最后是报文回调结束通知。

函数原型:

void OnPackageStart(int nTopicID, int nSequenceNo);

参数:

nTopicID 主题代码(如私有流、公共流、行情流等)

nSequenceNo 报文序号

OnPackageEnd方法​

当API收到一个报文后,首先调用报文回调开始通知,然后是各数据域的回调,最后调用本方法。

函数原型:

void OnPackageEnd(int nTopicID, int nSequenceNo);

参数:

nTopicID 主题代码(如私有流、公共流、行情流等)

nSequenceNo 报文序号

OnMultiHeartbeat方法​

多播心跳接口。

函数原型:

void OnMultiHeartbeat(char *CurrTime, char *MultiCastIP);

参数:

CurrTime 当前时间戳

MultiCastIP 对应组播地址

OnMutiData方法​

接收交易所原始组播行情(客户可以继承此接口接收上期所或者大商所的原始报文)。

函数原型:

void OnMutiData (char *data, int len);

参数:

data 原始报文数据

len 原始报文长度

OnRtnShfeMultiMarketData方法​

API解析后的组播数据(包含上期所和大商所组播行情)

函数原型:

void OnRtnShfeMultiMarketData(CQdFtdcDepthMarketDataField *pMarketData);

参数:

pMarketData 深度行情

深度行情CqdFtdcDepthMarketDataField结构说明

字段名称字段类型返回字段是否有值字段说明
TradingDayChar(9)是交易日
PreSettlementPriceDouble是昨结算
PreClosePriceDouble是昨收盘
PreOpenInterestDouble是昨持仓量
PreDeltaDouble是昨虚实度
OpenPriceDouble是今开盘价
HighestPriceDouble是最高价
LowestPriceDouble是最低价
ClosePriceDouble是今收盘价
UpperLimitPriceDouble是涨停板价
LowerLimitPriceDouble是跌停板价
SettlementPriceDouble是今结算价
CurrDeltaDouble是今虚实度
LastPriceDouble是最新价
VolumeInt是成交量
TurnoverDouble是成交金额
OpenInterestDouble是持仓量
BidPrice1Double是申买价一
BidVolume1Int是申买量一
AskPrice1Double是申卖价一
AskVolume1Int是申卖量一
BidPrice2Double是申买价二
BidVolume2Int是申买量二
BidPrice3Double是申买价三
BidVolume3Int是申买量三
AskPrice2Double是申卖价二
AskVolume2Int是申卖量二
AskPrice3Double是申卖价三
AskVolume3Int是申卖量三
BidPrice4Double是申买价四
BidVolume4Int是申买量四
BidPrice5Double是申买价五
BidVolume5Int是申买量五
AskPrice4Double是申卖价四
AskVolume4Int是申卖量四
AskPrice5Double是申卖价五
AskVolume5Int是申卖量五
InstrumentIDChar(31)是合约代码
UpdateTimeChar(9)是最后修改时间
UpdateMillisecInt是最后修改毫秒
ExchangeIDChar(11)是交易所代码
VolumeAskLotInt是总卖出数量
VolumeBidLotInt是总买入数量
InstrumentStatusChar(1)是合约状态
CalendarDateChar(9)是当前日期
PacketNoInt是组播增量序号
InstrumentNoInt是合约序号
DataCenterIDInt是数据中心代码

OnRspError方法​

错误应答

函数原型:

void OnRspError(CQdFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast);

参数:

pRspInfo 返回消息

响应信息CQdpFtdcRspInfoField说明,下面的OnRsp响应消息与此相同。

字段名称字段类型返回字段是否有值字段说明
ErrorIDInt是错误代码
ErrorMsgChar(81)是错误信息

nRequestID 对应错误的请求ID号

bIsLast 是否为最后一条消息

OnRspUserLogin方法​

当客户端发出登录请求之后,该方法会被调用,通知客户端登录是否成功。

函数原型:

void OnRspUserLogin(CQdFtdcRspUserLoginField *pRspUserLogin, CQdFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast);

参数:

pRspUserLogin 返回用户登录信息的地址

用户登录信息CQdFtdcRspUserLoginField结构

字段名称字段类型返回字段是否有值字段说明
TradingDayChar(9)是交易日
BrokerIDChar(11)是经纪公司编号
UserIDChar(19)是交易用户代码
LoginTimeChar(9)是登录成功时间
MaxOrderLocalIDChar(23)是用户最大本地报单号
TradingSystemNameChar(61)是交易系统名称
DataCenterIDInt是数据中心代码
PrivateFlowSizeInt是会员私有流当前长度
UserFlowSizeInt是交易员私有流当前长度
LoginInfoChar(257)是登录附加信息
SessionIDInt是会话编号
FrontIDInt是前置编号

pRspInfo 返回用户响应信息的地址。特别注意在有连续的成功的响应数据时,中间有可能返回NULL,但第一次不会,以下同。错误代码为0时,表示操作成功,以下同

响应信息CQdFtdcRspInfoField结构说明,详见OnRspError方法

nRequestID 返回用户登录请求的ID,该ID由用户在登录时指定

bIsLast指示该次返回是否为针对nRequestID的最后一次返回

OnRspUserLogout 方法​

当客户端发出登出请求之后,该方法会被调用,通知客户端登出是否成功。

函数原型:

void OnRspUserLogout(CQdFtdcRspUserLogoutField *pRspUserLogout, CQdFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast);

参数:

pRspUserLogout 返回用户登出信息的地址

用户登出信息CQdFtdcRspUserLogoutField结构

字段名称字段类型返回字段是否有值字段说明
BrokerIDChar(11)是经纪公司编号
UserIDChar(16)是登录账号

pRspInfo 返回用户响应信息的地址

响应信息CQdFtdcRspInfoField结构说明,详见OnRspError方法

nRequestID 返回用户登出请求的ID,该ID由用户在登出时指定

bIsLast 指示该次返回是否为针对nRequestID的最后一次返回

OnRtnDepthMarketData方法​

行情通知,行情服务器会主动通知客户端。

函数原型:

void OnRtnDepthMarketData(CQdFtdcDepthMarketDataField *pDepthMarketData);

参数:

pDepthMarketData 返回市场行情信息的地址

深度市场行情信息CQdFtdcDepthMarketDataField结构,详见OnRtnShfeMultiMarketData方法。

OnRtnMultiDepthMarketData方法​

Qmarket自己组播的深度行情通知。

函数原型:

void OnRtnMultiDepthMarketData (CQdFtdcDepthMarketDataField *pDepthMarketData);

参数:

pDepthMarketData深度行情

深度行情CqdFtdcDepthMarketDataField结构说明,详见OnRtnShfeMultiMarketData方法

OnRspSubMarketData方法​

针对用户请求的订阅的合约返回已经订阅的合约结果。

函数原型:

void OnRspSubMarketData(CQdFtdcSpecificInstrumentField *pSpecificInstrument, CQdFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast);

参数:

pSpecificInstrument 返回用户成功订阅的合约

订阅合约CQdFtdcSpecificInstrumentField结构说明

字段名称字段类型返回字段是否有值字段说明
InstrumentIDChar(31)是合约代码

pRspInfo 返回用户响应信息的地址

响应信息CQdFtdcRspInfoField结构说明,详见OnRspError方法

nRequestID 返回用户登出请求的ID,该ID由用户在登出时指定。这里无效

bIsLast 指示该次返回是否为针对nRequestID的最后一次返回

OnRspUnSubMarketData方法​

针对用户请求的退订的合约返回已经退订的合约结果。

函数原型:

void OnRspUnSubMarketData(CQdFtdcSpecificInstrumentField *pSpecificInstrument, CQdFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast);

参数:

pSpecificInstrument 返回用户成功退订的合约

退订合约CQdFtdcSpecificInstrumentField结构说明

字段名称字段类型返回字段是否有值字段说明
InstrumentIDChar(31)是合约代码

pRspInfo 返回用户响应信息的地址

响应信息CQdFtdcRspInfoField结构说明,详见OnRspError方法

nRequestID 返回用户登出请求的ID,该ID由用户在登出时指定。这里无效

bIsLast 指示该次返回是否为针对nRequestID的最后一次返回

OnRtnMBLMarketData方法​

分价行情通知。

函数原型:

void OnRtnMBLMarketData(CQdFtdcMBLMarketDataField *pMBLMarketData);

参数:

pMBLMarketData分价行情

分价行情CQdFtdcMBLMarketDataField结构说明

字段名称字段类型返回字段是否有值字段说明
InstrumentIDChar(31)是合约代码
DirectionChar(1)是买卖方向
PriceDouble是价格
VolumeInt是数量
UpdateTimeChar(9)是最后修改时间
UpdateMillisecInt是最后修改毫秒

OnRtnQmdInstrumentStatu方法​

郑州合约状态通知。

函数原型:

void OnRtnQmdInstrumentStatu(CQdFtdcQmdInstrumentStateField *pQmdInstrumentState);

参数:

pQmdInstrumentState合约状态

合约状态CQdFtdcQmdInstrumentStateField结构说明

字段名称字段类型返回字段是否有值字段说明
ExchangeIDChar(11)是交易所代码
InstrumentIDChar(31)是合约代码
InstrumentStatusChar是合约交易状态 ‘0’-开盘前 ‘1’-非交易 ‘2’-连续交易 ‘3’-集合竞价报单 ‘4’-集合竞价价格平衡 ‘5’-集合竞价撮合 ‘6’-收盘

OnRspSubscribeTopic方法​

订阅主题应答。

函数原型:

void OnRspSubscribleTopic(CQdFtdcDisseminationField *pDissemination, CQdFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast);

参数:

pDissemination 信息分发

订阅主题信息CQdpFtdcDisseminationField说明

字段名称字段类型返回字段是否有值字段说明
SequenceSeriesInt是序列系列号
SequenceNoInt是序列号

pRspInfo 返回用户响应信息的地址

响应信息CQdFtdcRspInfoField结构说明,详见OnRspError方法

nRequestID 返回订阅主题请求的ID,该ID由用户在订阅主题时指定

bIsLast 指示该次返回是否为针对nRequestID的最后一次返回

OnRspQryTopic方法​

主题查询应答。

函数原型:

void OnRspQryTopic (CQdFtdcDisseminationField *pDissemination, CQdFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast);

参数:

pDissemination 信息分发

主题查询信息CQdpFtdcDisseminationField说明

字段名称字段类型返回字段是否有值字段说明
SequenceSeriesInt是序列系列号
SequenceNoInt是序列号

pRspInfo 返回用户响应信息的地址

响应信息CQdFtdcRspInfoField结构说明,详见OnRspError方法

nRequestID 返回主题查询请求的ID,该ID由用户在查询主题时指定

bIsLast 指示该次返回是否为针对nRequestID的最后一次返回

OnRspQryMarketData方法​

合约行情查询应答。

函数原型:

void OnRspQryMarketData(CQdFtdcRspMarketDataField *pRspMarketData, CQdFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast);

参数:

pRspMarketData 行情查询应答的地址

深度市场行情信息CQdFtdcDepthMarketDataField结构说明

字段名称字段类型返回字段是否有值字段说明
ExchangeIDChar(11)是交易所代码
TradingDayChar(9)是交易日
PreSettlementPriceDouble是昨结算价
PreClosePriceDouble是昨收盘价
PreOpenInterestDouble是昨持仓量
PreDeltaDouble是昨虚实度
OpenPriceDouble是今开盘价
HighestPriceDouble是最高价
LowestPriceDouble是最低价
ClosePriceDouble是今收盘价
UpperLimitPriceDouble是涨停板价
LowerLimitPriceDouble是跌停板价
SettlementPriceDouble是今结算价
CurrDeltaDouble是今虚实度
LastPriceDouble是最新价
VolumeInt是数量
TurnoverDouble是成交金额
OpenInterestDouble是持仓量
BidPrice1Double是申买价一
BidVolume1Int是申买量一
AskPrice1Double是申卖价一
AskVolume1Int是申卖量一
InstrumentIDChar(31)是合约代码
UpdateTimeChar(9)是最后修改时间
UpdateMillisecInt是最后修改毫秒
InstrumentStatusChar(1)是合约交易状态 ‘0’-开盘前 ‘1’-非交易 ‘2’-连续交易 ‘3’-集合竞价报单 ‘4’-集合竞价价格平衡 ‘5’-集合竞价撮合 ‘6’-收盘

pRspInfo 返回用户响应信息的地址

响应信息CQdFtdcRspInfoField结构说明,详见OnRspError方法

nRequestID 返回行情查询请求的ID,该ID由用户在查询行情时指定

bIsLast 指示该次返回是否为针对nRequestID的最后一次返回

OnRspQryInstrumentList方法​

市场合约列表查询应答。

函数原型:

void OnRspQryInstrumentList(CQdFtdcSpecificInstrumentField *pSpecificInstrument, CQdFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast);

参数:

pSpecificInstrument 返回用户成功订阅的合约

订阅合约CQdFtdcSpecificInstrumentField结构说明

字段名称字段类型返回字段是否有值字段说明
InstrumentIDChar(31)是合约代码

pRspInfo 返回用户响应信息的地址

响应信息CQdFtdcRspInfoField结构说明,详见OnRspError方法

nRequestID 返回用户查询合约列表请求的ID,该ID由用户在查询合约列表时指定。

bIsLast 指示该次返回是否为针对nRequestID的最后一次返回

OnRtnShfeMultiLevel方法​

组播深度行情信息通知(包含上期所和大商所)。

函数原型:

void OnRtnShfeMultiLevel(CQdFtdcShfeMultiLevelField *pShfeMultiLevel);

参数:

pShfeMultiLevel返回组播深度信息

订阅合约CQdFtdcShfeMultiLevelField结构说明

字段名称字段类型返回字段是否有值字段说明
TopicIDInt是订阅号
LevelInt是深度

OnRtnShfeMultiParameters方法​

组播参数通知(包含上期所和大商所)。

函数原型:

void OnRtnShfeMultiParameters(CQdFtdcShfeMultiParametersField *pShfeMultiParameters);

参数:

pShfeMultiParameters返回组播解析参数

订阅合约CQdFtdcShfeMultiParametersField结构说明

字段名称字段类型返回字段是否有值字段说明
InstrumentIDChar(31)是合约代码
TradingDayChar(9)是交易日
PreSettlementPriceDouble是昨结算
PreClosePriceDouble是昨收盘
PreOpenInterestDouble是昨持仓量
PreDeltaDouble是昨虚实度
OpenPriceDouble是今开盘
HighestPriceDouble是最高价
LowestPriceDouble是最低价
ClosePriceDouble是今收盘
UpperLimitPriceDouble是涨停板价
LowerLimitPriceDouble是跌停板价
SettlementPriceDouble是今结算
CurrDeltaDouble是今虚实度
ProductClassInt是品种
StrikePriceDouble是执行价格
VolumeMultipleInt是合约乘数
PriceTickDouble是最小变动价格
CodecPriceDouble是编解码价格
InstrumentNoInt是合约序号
ExchangeIDChar(11)是交易所代码

OnRspQryDepthMarketData方法​

全量快照行情查询应答。

函数原型:

void OnRspQryDepthMarketData (CQdFtdcDepthMarketDataField *pDepthMarketData, CQdFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast);

参数:

pDepthMarketData返回深度行情

深度行情CQdFtdcDepthMarketDataField结构说明,详见OnRtnShfeMultiMarketData方法

pRspInfo 返回用户响应信息的地址

响应信息CQdFtdcRspInfoField结构说明,详见OnRspError方法

nRequestID 返回用户查询行情快照请求的ID,该ID由用户在查询行情快照时指定。

bIsLast 指示该次返回是否为针对nRequestID的最后一次返回