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结构说明
字段名称 | 字段类型 | 返回字段是否有值 | 字段说明 |
---|---|---|---|
TradingDay | Char(9) | 是 | 交易日 |
PreSettlementPrice | Double | 是 | 昨结算 |
PreClosePrice | Double | 是 | 昨收盘 |
PreOpenInterest | Double | 是 | 昨持仓量 |
PreDelta | Double | 是 | 昨虚实度 |
OpenPrice | Double | 是 | 今开盘价 |
HighestPrice | Double | 是 | 最高价 |
LowestPrice | Double | 是 | 最低价 |
ClosePrice | Double | 是 | 今收盘价 |
UpperLimitPrice | Double | 是 | 涨停板价 |
LowerLimitPrice | Double | 是 | 跌停板价 |
SettlementPrice | Double | 是 | 今结算价 |
CurrDelta | Double | 是 | 今虚实度 |
LastPrice | Double | 是 | 最新价 |
Volume | Int | 是 | 成交量 |
Turnover | Double | 是 | 成交金额 |
OpenInterest | Double | 是 | 持仓量 |
BidPrice1 | Double | 是 | 申买价一 |
BidVolume1 | Int | 是 | 申买量一 |
AskPrice1 | Double | 是 | 申卖价一 |
AskVolume1 | Int | 是 | 申卖量一 |
BidPrice2 | Double | 是 | 申买价二 |
BidVolume2 | Int | 是 | 申买量二 |
BidPrice3 | Double | 是 | 申买价三 |
BidVolume3 | Int | 是 | 申买量三 |
AskPrice2 | Double | 是 | 申卖价二 |
AskVolume2 | Int | 是 | 申卖量二 |
AskPrice3 | Double | 是 | 申卖价三 |
AskVolume3 | Int | 是 | 申卖量三 |
BidPrice4 | Double | 是 | 申买价四 |
BidVolume4 | Int | 是 | 申买量四 |
BidPrice5 | Double | 是 | 申买价五 |
BidVolume5 | Int | 是 | 申买量五 |
AskPrice4 | Double | 是 | 申卖价四 |
AskVolume4 | Int | 是 | 申卖量四 |
AskPrice5 | Double | 是 | 申卖价五 |
AskVolume5 | Int | 是 | 申卖量五 |
InstrumentID | Char(31) | 是 | 合约代码 |
UpdateTime | Char(9) | 是 | 最后修改时间 |
UpdateMillisec | Int | 是 | 最后修改毫秒 |
ExchangeID | Char(11) | 是 | 交易所代码 |
VolumeAskLot | Int | 是 | 总卖出数量 |
VolumeBidLot | Int | 是 | 总买入数量 |
InstrumentStatus | Char(1) | 是 | 合约状态 |
CalendarDate | Char(9) | 是 | 当前日期 |
PacketNo | Int | 是 | 组播增量序号 |
InstrumentNo | Int | 是 | 合约序号 |
DataCenterID | Int | 是 | 数据中心代码 |
OnRspError方法
错误应答
函数原型:
void OnRspError(CQdFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast);
参数:
pRspInfo 返回消息
响应信息CQdpFtdcRspInfoField说明,下面的OnRsp响应消息与此相同。
字段名称 | 字段类型 | 返回字段是否有值 | 字段说明 |
---|---|---|---|
ErrorID | Int | 是 | 错误代码 |
ErrorMsg | Char(81) | 是 | 错误信息 |
nRequestID 对应错误的请求ID号
bIsLast 是否为最后一条消息
OnRspUserLogin方法
当客户端发出登录请求之后,该方法会被调用,通知客户端登录是否成功。
函数原型:
void OnRspUserLogin(CQdFtdcRspUserLoginField *pRspUserLogin, CQdFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast);
参数:
pRspUserLogin 返回用户登录信息的地址
用户登录信息CQdFtdcRspUserLoginField结构
字段名称 | 字段类型 | 返回字段是否有值 | 字段说明 |
---|---|---|---|
TradingDay | Char(9) | 是 | 交易日 |
BrokerID | Char(11) | 是 | 经纪公司编号 |
UserID | Char(19) | 是 | 交易用户代码 |
LoginTime | Char(9) | 是 | 登录成功时间 |
MaxOrderLocalID | Char(23) | 是 | 用户最大本地报单号 |
TradingSystemName | Char(61) | 是 | 交易系统名称 |
DataCenterID | Int | 是 | 数据中心代码 |
PrivateFlowSize | Int | 是 | 会员私有流当前长度 |
UserFlowSize | Int | 是 | 交易员私有流当前长度 |
LoginInfo | Char(257) | 是 | 登录附加信息 |
SessionID | Int | 是 | 会话编号 |
FrontID | Int | 是 | 前置编号 |
pRspInfo 返回用户响应信息的地址。特别注意在有连续的成功的响应数据时,中间有可能返回NULL,但第一次不会,以下同。错误代码为0时,表示操作成功,以下同
响应信息CQdFtdcRspInfoField结构说明,详见OnRspError方法
nRequestID 返回用户登录请求的ID,该ID由用户在登录时指定
bIsLast指示该次返回是否为针对nRequestID的最后一次返回
OnRspUserLogout 方法
当客户端发出登出请求之后,该方法会被调用,通知客户端登出是否成功。
函数原型:
void OnRspUserLogout(CQdFtdcRspUserLogoutField *pRspUserLogout, CQdFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast);
参数:
pRspUserLogout 返回用户登出信息的地址
用户登出信息CQdFtdcRspUserLogoutField结构
字段名称 | 字段类型 | 返回字段是否有值 | 字段说明 |
---|---|---|---|
BrokerID | Char(11) | 是 | 经纪公司编号 |
UserID | Char(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结构说明
字段名称 | 字段类型 | 返回字段是否有值 | 字段说明 |
---|---|---|---|
InstrumentID | Char(31) | 是 | 合约代码 |
pRspInfo 返回用户响应信息的地址
响应信息CQdFtdcRspInfoField结构说明,详见OnRspError方法
nRequestID 返回用户登出请求的ID,该ID由用户在登出时指定。这里无效
bIsLast 指示该次返回是否为针对nRequestID的最后一次返回
OnRspUnSubMarketData方法
针对用户请求的退订的合约返回已经退订的合约结果。
函数原型:
void OnRspUnSubMarketData(CQdFtdcSpecificInstrumentField *pSpecificInstrument, CQdFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast);
参数:
pSpecificInstrument 返回用户成功退订的合约
退订合约CQdFtdcSpecificInstrumentField结构说明
字段名称 | 字段类型 | 返回字段是否有值 | 字段说明 |
---|---|---|---|
InstrumentID | Char(31) | 是 | 合约代码 |
pRspInfo 返回用户响应信息的地址
响应信息CQdFtdcRspInfoField结构说明,详见OnRspError方法
nRequestID 返回用户登出请求的ID,该ID由用户在登出时指定。这里无效
bIsLast 指示该次返回是否为针对nRequestID的最后一次返回
OnRtnMBLMarketData方法
分价行情通知。
函数原型:
void OnRtnMBLMarketData(CQdFtdcMBLMarketDataField *pMBLMarketData);
参数:
pMBLMarketData分价行情
分价行情CQdFtdcMBLMarketDataField结构说明
字段名称 | 字段类型 | 返回字段是否有值 | 字段说明 |
---|---|---|---|
InstrumentID | Char(31) | 是 | 合约代码 |
Direction | Char(1) | 是 | 买卖方向 |
Price | Double | 是 | 价格 |
Volume | Int | 是 | 数量 |
UpdateTime | Char(9) | 是 | 最后修改时间 |
UpdateMillisec | Int | 是 | 最后修改毫秒 |
OnRtnQmdInstrumentStatu方法
郑州合约状态通知。
函数原型:
void OnRtnQmdInstrumentStatu(CQdFtdcQmdInstrumentStateField *pQmdInstrumentState);
参数:
pQmdInstrumentState合约状态
合约状态CQdFtdcQmdInstrumentStateField结构说明
字段名称 | 字段类型 | 返回字段是否有值 | 字段说明 |
---|---|---|---|
ExchangeID | Char(11) | 是 | 交易所代码 |
InstrumentID | Char(31) | 是 | 合约代码 |
InstrumentStatus | Char | 是 | 合约交易状态 ‘0’-开盘前 ‘1’-非交易 ‘2’-连续交易 ‘3’-集合竞价报单 ‘4’-集合竞价价格平衡 ‘5’-集合竞价撮合 ‘6’-收盘 |
OnRspSubscribeTopic方法
订阅主题应答。
函数原型:
void OnRspSubscribleTopic(CQdFtdcDisseminationField *pDissemination, CQdFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast);
参数:
pDissemination 信息分发
订阅主题信息CQdpFtdcDisseminationField说明
字段名称 | 字段类型 | 返回字段是否有值 | 字段说明 |
---|---|---|---|
SequenceSeries | Int | 是 | 序列系列号 |
SequenceNo | Int | 是 | 序列号 |
pRspInfo 返回用户响应信息的地址
响应信息CQdFtdcRspInfoField结构说明,详见OnRspError方法
nRequestID 返回订阅主题请求的ID,该ID由用户在订阅主题时指定
bIsLast 指示该次返回是否为针对nRequestID的最后一次返回
OnRspQryTopic方法
主题查询应答。
函数原型:
void OnRspQryTopic (CQdFtdcDisseminationField *pDissemination, CQdFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast);
参数:
pDissemination 信息分发
主题查询信息CQdpFtdcDisseminationField说明
字段名称 | 字段类型 | 返回字段是否有值 | 字段说明 |
---|---|---|---|
SequenceSeries | Int | 是 | 序列系列号 |
SequenceNo | Int | 是 | 序列号 |
pRspInfo 返回用户响应信息的地址
响应信息CQdFtdcRspInfoField结构说明,详见OnRspError方法
nRequestID 返回主题查询请求的ID,该ID由用户在查询主题时指定
bIsLast 指示该次返回是否为针对nRequestID的最后一次返回
OnRspQryMarketData方法
合约行情查询应答。
函数原型:
void OnRspQryMarketData(CQdFtdcRspMarketDataField *pRspMarketData, CQdFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast);
参数:
pRspMarketData 行情查询应答的地址
深度市场行情信息CQdFtdcDepthMarketDataField结构说明
字段名称 | 字段类型 | 返回字段是否有值 | 字段说明 |
---|---|---|---|
ExchangeID | Char(11) | 是 | 交易所代码 |
TradingDay | Char(9) | 是 | 交易日 |
PreSettlementPrice | Double | 是 | 昨结算价 |
PreClosePrice | Double | 是 | 昨收盘价 |
PreOpenInterest | Double | 是 | 昨持仓量 |
PreDelta | Double | 是 | 昨虚实度 |
OpenPrice | Double | 是 | 今开盘价 |
HighestPrice | Double | 是 | 最高价 |
LowestPrice | Double | 是 | 最低价 |
ClosePrice | Double | 是 | 今收盘价 |
UpperLimitPrice | Double | 是 | 涨停板价 |
LowerLimitPrice | Double | 是 | 跌停板价 |
SettlementPrice | Double | 是 | 今结算价 |
CurrDelta | Double | 是 | 今虚实度 |
LastPrice | Double | 是 | 最新价 |
Volume | Int | 是 | 数量 |
Turnover | Double | 是 | 成交金额 |
OpenInterest | Double | 是 | 持仓量 |
BidPrice1 | Double | 是 | 申买价一 |
BidVolume1 | Int | 是 | 申买量一 |
AskPrice1 | Double | 是 | 申卖价一 |
AskVolume1 | Int | 是 | 申卖量一 |
InstrumentID | Char(31) | 是 | 合约代码 |
UpdateTime | Char(9) | 是 | 最后修改时间 |
UpdateMillisec | Int |