跳到主要内容

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的最后一次返回