跳到主要内容

CQdpFtdcTraderSpi接口

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

OnFrontConnected方法​

当客户端与QDP系统建立起通信连接时(还未登录前),该方法被调用。

函数原形:

void OnFrontConnected();

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

OnFrontDisconnected方法​

当客户端与QDP系统通信连接断开时,该方法被调用。当发生这个情况后,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 OnPackageStart(int nTopicID, int nSequenceNo);

参数:

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

nSequenceNo: 报文序号

OnRspError方法​

针对用户请求的出错通知。

函数原形:

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

参数:

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

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

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

nRequestID: 返回用户操作请求的ID,该ID 由用户在操作请求时指定。

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

OnRspUserLogin方法​

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

函数原形:

void OnRspUserLogin(CQdpFtdcRspUserLoginField *pRspUserLogin, CQdpFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast);

参数:

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

用户登录应答信息CQdpFtdcRspUserLoginField说明

字段名称字段类型返回字段是否有值字段说明
TradingDayChar(9)是交易日
BrokerIDChar(11)是经纪公司编号
UserIDChar(16)是登录账号
LoginTimeChar(9)是登录时间,格式hh:mm:ss
MaxOrderLocalIDChar(23)否用户最大本地报单号,登录成功时返回的都是空值
TradingSystemNameChar(61)否交易系统名称
DataCenterIDInt否保留字段,目前没什么用
PrivateFlowSizeInt有用户私有流当前长度
UserFlowSizeInt有保留字段,目前没什么用
DataCenterIDInt否保留字段,目前没什么用
SessionIDInt有当前连接的会话编号
FrontIDInt有当前连接的前置编号

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

响应信息CQdpFtdcRspInfoField说明,详见OnRspError方法。

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

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

OnRspUserLogout方法​

当客户端发出退出请求之后,QDP返回响应时,该方法会被调用,通知客户端退出是否成功。

函数原形:

void OnRspUserLogout(CQdpFtdcRspUserLogoutField *pRspUserLogout, CQdpFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast);

参数:

pRspUserLogout: 返回用户退出信息的地址。

用户登出应答信息CQdpFtdcRspUserLogoutField说明

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

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

响应信息CQdpFtdcRspInfoField说明,详见OnRspError方法。

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

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

OnRspUserPasswordUpdate方法​

用户密码修改应答。当客户端发出用户密码修改指令后,QDP返回响应时,该方法会被调用。

函数原形:

void OnRspUserPasswordUpdate(CQdpFtdcUserPasswordUpdateField *pUserPasswordUpdate, CQdpFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast);

参数:

pUserPasswordUpdate: 指向用户密码修改结构的地址,包含了用户密码修改请求的输入数据。

用户密码修改应答信息CQdpFtdcUserPasswordUpdateField说明

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

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

响应信息CQdpFtdcRspInfoField说明,详见OnRspError方法。

nRequestID: 返回用户密码修改请求的ID,该ID由用户在密码修改时指定。

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

OnRspOrderInsert方法​

报单录入应答。当客户端发出过报单录入指令后,QDP返回响应时,该方法会被调用。

函数原形:

void OnRspOrderInsert(CQdpFtdcInputOrderField *pInputOrder, CQdpFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast);

参数:

pInputOrder: 指向报单录入结构的地址,包含了提交报单录入时的输入数据,和后台返回的报单编号。

用户报单应答信息CQdpFtdcInputOrderField说明

字段名称字段类型返回字段是否有值字段说明
BrokerIDChar(11)是经纪公司编号
ExchangeIDChar(11)是交易所代码
OrderSysIDChar(31)是交易所报单号(报单成功交易所会返回)
InvestorIDChar(19)是投资者代码
UserIDChar(16)是登录账号
InstrumentIDChar(31)是合约代码
UserOrderLocalIDInt是用户本地报单号
OrderPriceTypeChar(1)是报单类型
DirectionChar(1)是买卖方向
OffsetFlagChar(1)是开平仓标识
HedgeFlagChar(1)是投机套保标志
LimitPriceDouble是价格
VolumeInt是数量
TimeConditionChar(1)是报单有效期类型
GTDDateChar(9)否GTD日期
VolumeConditionChar(1)是成交量类型
MinVolumeInt否最小成交量
StopPriceDouble否止损价
ForceCloseReasonChar(1)是强平原因
IsAutoSuspendInt否自动挂起标志
BusinessUnitChar(21)否业务单元
UserCustomChar(65)否用户自定义域
BranchIDChar(7)否营业部代码
RecNumInt否记录编号
BusinessTypeChar(1)否业务类别

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

响应信息CQdpFtdcRspInfoField说明,详见OnRspError方法。

nRequestID: 返回报单录入操作请求的ID,该ID由用户在报单录入时指定。

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

OnRspOrderAction方法​

报单操作应答。报单操作包括报单的撤销、报单的挂起(暂不支持)、报单的激活(暂不支持)、报单的修改(暂不支持)。当客户端发出过报单操作指令后,QDP返回响应时,该方法会被调用。

函数原形:

void OnRspOrderAction(CQdpFtdcOrderActionField *pOrderAction, CQdpFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast);

参数:

pOrderAction: 指向报单操作结构的地址,包含了提交报单操作的输入数据,和后台返回的报单编号。

用户撤单应答信息CQdpFtdcOrderActionField说明

字段名称字段类型返回字段是否有值字段说明
ExchangeIDChar(11)是交易所代码
OrderSysIDChar(31)是交易所报单号
BrokerIDChar(11)是经纪公司编号
InvestorIDChar(19)是投资者编号
UserIDChar(16)是登录账号
InstrumentIDChar(31)否合约代码
UserOrderActionLocalIDInt是此次撤单操作的用户本地报单号,和报单请求的UserOrderLocalID一样递增
UserOrderLocalIDInt是用户本地报单号(撤单操作是QDP的报单,否则该字段没有值)
ActionFlagChar(1)是报单操作标志,撤单正常填写QDP_FTDC_AF_Delete
LimitPriceDouble否价格
VolumeChangeInt否数量变化
RecNumInt否记录编号
FrontIDInt否前置编号
SessionIDInt否会话编号

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

响应信息CQdpFtdcRspInfoField说明,详见OnRspError方法。

nRequestID: 返回用户报单操作请求的ID,该ID由用户在报单操作时指定。

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

OnRtnFlowMessageCancel方法​

数据流回退通知(暂未启用)。

函数原形:

void OnRtnFlowMessageCancel(CQdpFtdcFlowMessageCancelField *pFlowMessageCancel);

参数:

pFlowMessageCancel: 数据流回退。

数据流回退通知信息CQdpFtdcFlowMessageCancelField说明

字段名称字段类型返回字段是否有值字段说明
SequenceSeriesInt是序列系列号
TradingDayChar(9)是交易日
DataCenterIDInt否数据中心代码
StartSequenceNoInt是回退起始序列号
EndSequenceNoInt是回退结束序列号

OnRtnTrade方法​

成交回报。当发生成交时QDP会通知客户端,该方法会被调用。

函数原形:

void OnRtnTrade(CQdpFtdcTradeField *pTrade);

参数:

pTrade: 指向成交信息结构的地址。

成交信息CQdpFtdcTradeField说明

字段名称字段类型返回字段是否有值字段说明
TradingDayChar(9)是委托日期,为交易日,不是当前的自然日
BrokerIDChar(11)是经纪公司编号
ExchangeIDChar(11)是交易所代码
ParticipantIDChar(11)是会员号
SeatIDChar(13)是席位号
InvestorIDChar(19)是投资者代码
UserIDChar(16)是登录账号
TradeIDChar(21)是成交编号
OrderSysIDChar(31)是交易所报单号
InstrumentIDChar(31)是合约代码
UserOrderLocalIDInt是用户本地报单号
DirectionChar(1)是买卖方向
OffsetFlagChar(1)是开平仓标识
HedgeFlagChar(1)是投机套保标志
TradePriceDouble是成交价格
TradeVolumeInt是成交数量
TradeTimeChar(9)是成交时间,该时间由交易所提供

OnRtnOrder方法​

报单回报。当客户端进行报单录入、报单操作及其它原因(如部分成交、成交、撤单)导致报单状态发生变化时,QDP会主动通知客户端,该方法会被调用。

函数原形:

void OnRtnOrder(CQdpFtdcOrderField *pOrder);

参数:

pOrder: 指向报单信息结构的地址。

用户报单请求信息CQdpFtdcOrderField说明

字段名称字段类型返回字段是否有值字段说明
BrokerIDChar(11)是经纪公司编号
ExchangeIDChar(11)是交易所代码
OrderSysIDChar(31)是交易所报单号
InvestorIDChar(19)是投资者代码
UserIDChar(16)是登录账号
InstrumentIDChar(31)是合约代码
UserOrderLocalIDInt是用户本地报单号
OrderPriceTypeChar(1)是报单类型
DirectionChar(1)是买卖方向
OffsetFlagChar(1)是开平仓标识
HedgeFlagChar(1)是投机套保标志
LimitPriceDouble是价格
VolumeInt是数量
TimeConditionChar(1)是报单有效期类型
VolumeConditionChar(1)是成交量类型
TradingDayChar(9)是委托日期,为交易日,不是当前的自然日
InsertTimeChar(9)是委托时间,该时间是交易所提供的
OrderStatusChar(1)是委托状态, QDP_FTDC_OS_AllTraded –全部成交 QDP_FTDC_OS_PartTradedQueueing –部分成交 QDP_FTDC_OS_NoTradeQueueing –未成交 QDP_FTDC_OS_Canceled –撤单
CancelTimeChar(9)否撤单时间,该时间由交易所提供
VolumeTradedInt是该笔委托的总成交数量
VolumeRemainInt是该笔委托剩余的未成交数量
FrontIDInt是前置编号
SessionIDInt是会话编号

OnErrRtnOrderInsert方法​

报单录入错误回报。由QDP主动通知客户端,该方法会被调用。

函数原形:

void OnErrRtnOrderInsert(CQdpFtdcInputOrderField *pInputOrder, CQdpFtdcRspInfoField *pRspInfo);

参数:

pInputOrder: 指向报单录入结构的地址,包含了提交报单录入时的输入数据,和后台返回的报单编号。

用户报单录入信息CQdpFtdcInputOrderField说明,详见OnRspOrderInsert方法。

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

响应信息CQdpFtdcRspInfoField说明,详见OnRspError方法。

OnErrRtnOrderAction方法​

报价操作错误回报。由QDP主动通知客户端,该方法会被调用。

函数原形:

void OnErrRtnOrderAction(CQdpFtdcOrderActionField *pOrderAction, CQdpFtdcRspInfoField *pRspInfo);

参数:

pOrderAction: 指向报单操作结构的地址,包含了报单操作请求的输入数据。

用户报单操作CQdpFtdcOrderActionField说明,详见OnRspOrderAction方法

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

响应信息CQdpFtdcRspInfoField说明,详见OnRspError方法。

OnRtnInstrumentStatus方法​

合约交易状态通知。由QDP主动通知客户端,该方法会被调用。

函数原形:

void OnRtnInstrumentStatus(CQdpFtdcInstrumentStatusField *pInstrumentStatus);

参数:

pInstrumentStatus: 指向合约交易状态的地址,包含了后台返回的合约状态数据。

合约交易状态信息CQdpFtdcInstrumentStatusField说明

字段名称字段类型返回字段是否有值字段说明
ExchangeIDChar(11)是交易所代码
ProductIDChar(13)是品种代码
ProductNameChar(41)是品种名称
InstrumentIDChar(31)是合约代码
InstrumentNameChar(21)是合约名称
DeliveryYearInt是交割年份
DeliveryMonthInt是交割月
MaxLimitOrderVolumeInt是限价单最大下单量
MinLimitOrderVolumeInt是限价单最小下单量
MaxMarketOrderVolumeInt是市价单最大下单量
MinMarketOrderVolumeInt是市价单最小下单量
VolumeMultipleInt是数量乘数
PriceTickDouble是报价单位
CurrencyChar是币种 ‘1’-人民币
LongPosLimitInt是多头限仓
ShortPosLimitInt是空头限仓
LowerLimitPriceDouble是跌停板价
UpperLimitPriceDouble是涨停板价
PreSettlementPriceDouble是昨结算
InstrumentStatusChar是合约交易状态 ‘0’-开盘前 ‘1’-非交易 ‘2’-连续交易 ‘3’-集合竞价报单 ‘4’-集合竞价价格平衡 ‘5’-集合竞价撮合 ‘6’-收盘 ‘b’-大商所自动转换报警
CreateDateChar(9)是创建日
OpenDateChar(9)是上市日
ExpireDateChar(9)是到期日
StartDelivDateChar(9)是开始交割日
EndDelivDateChar(9)是最后交割日
BasisPriceDouble是挂牌基准价
IsTradingInt是当前是否交易
UnderlyingInstrIDChar(31)是基础商品代码
UnderlyingMultipleInt是基础商品乘数
PositionTypeChar是持仓类型 ‘1’-净持仓(目前只有apex版本支持) ‘2’-综合持仓
StrikePriceDouble是执行价
OptionsTypeChar是期权类型 ‘0’-非期权 ‘1’-看涨 ‘2’-看跌
ProductClassChar是产品类型 ‘0’-未知类型 ‘1’-期货 ‘2’-期权 ‘3’-组合 ‘4’-即期 ‘8’-股票期权
OptionsModeChar是期权行权方式 ‘0’-不行权 ‘E’-欧式行权 ‘A’-美式行权

OnRtnInvestorAccountDeposit方法​

出入金结果回报。由QDP主动通知客户端,该方法会被调用。

函数原形:

void OnRtnInvestorAccountDeposit(CQdpFtdcInvestorAccountDepositResField *pInvestorAccountDepositRes);

参数:

pInvestorAccountDepositRes: 指向出入金结果回报结构的地址。

出入金结果回报信息CQdpFtdcInvestorAccountDepositResField说明

字段名称字段类型返回字段是否有值字段说明
BrokerIDChar(11)是经纪公司编号
InvestorIDChar(19)是投资者编号
AccountIDChar(13)是资金帐号
AccountSeqNoChar(21)是资金流水号
AccountInsideSeqNoChar(21)是连续递增的总资金流水号
AmountDouble是金额
AmountDirectionChar是出入金方向 ‘1’-入金 ‘2’-出金
AvailableDouble是可用资金
BalanceDouble是结算准备金
UserIDChar(16)是用户代码

OnRspQryOrder方法​

报单查询请求。当客户端发出报单查询指令后,QDP返回响应时,该方法会被调用。

函数原形:

void OnRspQryOrder(CQdpFtdcOrderField *pOrder, CQdpFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast);

参数:

pOrder: 指向报单查询的返回结构信息的地址。

委托单查询返回信息CQdpFtdcOrderField说明,详见OnRtnOrder方法。

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

响应信息CQdpFtdcRspInfoField说明,详见OnRspError方法。

nRequestID: 返回用户报单查询请求的ID,该ID由用户在报单查询时指定。

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

OnRspQryTrade方法​

成交单查询应答。当客户端发出成交单查询指令后,QDP返回响应时,该方法会被调用。

函数原形:

void OnRspQryTrade(CQdpFtdcTradeField *pTrade, CQdpFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast);

参数:

pTrade: 指向成交信息结构的地址。

成交单查询返回信息CQdpFtdcTradeField说明,详见OnRtnTrade方法。

pRspInfo: 指向响应信息结构的地址。

响应信息CQdpFtdcRspInfoField说明,详见OnRspError方法。

nRequestID: 返回用户成交单请求的ID,该ID 由用户在成交单查询时指定。

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

OnRspQryUserInvestor方法​

可用投资者账户查询应答。当客户端发出可用投资者账户查询指令后,QDP返回响应时,该方法会被调用。

函数原形:

void OnRspQryUserInvestor(CQdpFtdcRspUserInvestorField *pUserInvestor, CQdpFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast);

参数:

pUserInvestor: 指向用户可用投资者账户结构的地址。

投资者账户查询返回信息CQdpFtdcUserInvestorField说明

字段名称字段类型返回字段是否有值字段说明
BrokerIDChar(11)是经纪公司编号
UserIDChar(16)是交易用户代码
InvestorIDChar(19)是投资者编号

pRspInfo: 指向响应信息结构的地址。

响应信息CQdpFtdcRspInfoField说明,详见OnRspError方法。

nRequestID: 返回可用投资者账户请求的ID,该ID 由用户在可用投资者账户查询时指定。

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

OnRspQryInvestorAccount方法​

投资者资金账户查询。当客户端发出投资者资金账户查询指令后,QDP返回响应时,该方法会被调用。

函数原形:

void OnRspQryInvestorAccount(CQdpFtdcRspInvestorAccountField *pRspInvestorAccount, CQdpFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast);

参数:

pRspInvestorAccount: 指向投资者资金账户信息的地址。

投资者资金账户查询返回信息CQdpFtdcRspInvestorAccountField说明

字段名称字段类型返回字段是否有值字段说明
BrokerIDChar(11)是经纪公司编号
InvestorIDChar(19)是投资者编号
AccountIDChar(13)是资金帐号
PreBalanceDouble是上次结算准备金
PreAvailableDouble是上日可用资金
DepositDouble是入金金额
WithdrawDouble是出金金额
MarginDouble是占用保证金
PremiumDouble是期权权利金收支
FeeDouble是手续费
FrozenMarginDouble是冻结的保证金
FrozenPremiumDouble是冻结权利金
FrozenFeeDouble是冻结手续费
CloseProfitDouble否平仓盈亏
PositionProfitDouble是持仓盈亏
AvailableDouble是可用资金
BalanceDouble是结算准备金
LongMarginDouble是多头占用保证金
ShortMarginDouble是空头占用保证金
LongFrozenMarginDouble是多头冻结的保证金
ShortFrozenMarginDouble是空头冻结的保证金
DynamicRightsDouble是动态权益
RiskDouble是风险度
OtherFeeDouble是其他费用
MortgageDouble是质押金额
CurrencyDouble是币种

pRspInfo: 指向响应信息结构的地址。

响应信息CQdpFtdcRspInfoField说明,详见OnRspError方法。

nRequestID: 返回投资者资金账户查询请求的ID,该ID由用户在投资者资金账户查询时指定。

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

OnRspQryInstrument方法​

合约信息查询应答。当客户端发出合约信息查询指令后,QDP返回响应时,该方法会被调用。

函数原形:

void OnRspQryQdpInstrument(CQdpFtdcRspInstrumentField *pRspInstrument, CQdpFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast);

参数:

pRspInstrument: 指向合约信息结构的地址。

合约信息查询返回信息CQdpFtdcRspInstrumentField说明

字段名称字段类型返回字段是否有值字段说明
ExchangeIDChar(11)是交易所代码 SHFE表示上期所
ProductIDChar(13)是品种代码
ProductNameChar(41)是品种名称
InstrumentIDChar(31)是合约代码
InstrumentNameChar(21)是合约名称
DeliveryYearInt是交割年份
DeliveryMonthInt是交割月
MaxLimitOrderVolumeInt是限价单最大下单量
MinLimitOrderVolumeInt是限价单最小下单量
MaxMarketOrderVolumeInt是市价单最大下单量
MinMarketOrderVolumeInt是市价单最小下单量
VolumeMultipleInt是数量乘数
PriceTickDouble是报价单位
CurrencyChar是币种 ‘1’-人民币
LongPosLimitInt是多头限仓
ShortPosLimitInt是空头限仓
LowerLimitPriceDouble是跌停板价
UpperLimitPriceDouble是涨停板价
PreSettlementPriceDouble是昨结算
InstrumentStatusChar是合约交易状态 ‘0’-开盘前 ‘1’-非交易 ‘2’-连续交易 ‘3’-集合竞价报单 ‘4’-集合竞价价格平衡 ‘5’-集合竞价撮合 ‘6’-收盘 ‘b’-大商所自动转换报警
CreateDateChar(9)是创建日
OpenDateChar(9)是上市日
ExpireDateChar(9)是到期日
StartDelivDateChar(9)是开始交割日
EndDelivDateChar(9)是最后交割日
BasisPriceDouble是挂牌基准价
IsTradingInt是当前是否交易
UnderlyingInstrIDChar(31)是基础商品代码
UnderlyingMultipleInt是基础商品乘数
PositionTypeChar是持仓类型 ‘1’-净持仓(目前只有apex版本支持) ‘2’-综合持仓
StrikePriceDouble是执行价
OptionsTypeChar是期权类型 ‘0’-非期权 ‘1’-看涨 ‘2’-看跌
ProductClassChar是产品类型 ‘0’-未知类型 ‘1’-期货 ‘2’-期权 ‘3’-组合 ‘4’-即期 ‘8’-股票期权
OptionsModeChar是期权行权方式 ‘0’-不行权 ‘E’-欧式行权 ‘A’-美式行权

pRspInfo: 指向响应信息结构的地址。

响应信息CQdpFtdcRspInfoField说明,详见OnRspError方法。

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

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

OnRspQryMarketData方法​

实时行情查询应答。当客户端发出合约行情查询指令后,QDP返回响应时,该方法会被调用。

函数原形:

void OnRspQryMarketData(CQdpFtdcMarketDataField *pMarketData, CQdpFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast);

参数:

pMarketData: 指向合约行情结构的地址。

实时行情查询返回信息CQdpFtdcRspInstrumentField说明

字段名称字段类型返回字段是否有值字段说明
TradingDayChar(9)是交易日
ExchangeIDChar(11)是交易所代码
InstrumentIDChar(31)是合约代码
OpenPriceDouble是今开盘
HighestPriceDouble是最高价
LowestPriceDouble是最低价
LastPriceDouble是最新价
VolumeInt是数量
TurnoverDouble是成交金额
LowerLimitPriceDouble是跌停板价
UpperLimitPriceDouble是涨停板价
OpenInterestInt是持仓量
PreClosePriceDouble是昨收盘
PreOpenInterestInt是昨持仓量
PreSettlementPriceDouble是昨结算
SettlementPriceDouble是今结算
UpdateMillisecInt是最后修改毫秒
UpdateTimeChar(9)是最后修改时间

pRspInfo: 指向响应信息结构的地址。

响应信息CQdpFtdcRspInfoField说明,详见OnRspError方法。

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

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

OnRspQryExchange方法​

交易所查询。当客户端发出交易所查询指令后,QDP返回响应时,该方法会被调用。

函数原形:

void OnRspQryExchange(CQdpFtdcRspExchangeField *pExchange, CQdpFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast);

参数:

pExchange: 指向交易所结构的地址。

交易所查询返回信息CQdpFtdcRspExchangeField说明

字段名称字段类型返回字段是否有值字段说明
TradingDayChar(9)是交易日
ExchangeIDChar(11)是交易所代码
ExchangeNameChar(31)是交易所名称

pRspInfo: 指向响应信息结构的地址。

响应信息CQdpFtdcRspInfoField说明,详见OnRspError方法。

nRequestID: 返回交易所查询请求的ID,该ID 由用户在交易所查询时指定。

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

OnRspQryInvestorPosition方法​

投资者持仓查询应答。当客户端发出投资者持仓查询指令后,QDP返回响应时,该方法会被调用。

函数原形:

void OnRspQryInvestorPosition(CQdpFtdcRspInvestorPositionField *pInvestorPosition, CQdpFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast);

参数:

pInvestorPosition: 指向投资者持仓结构的地址。

投资者持仓查询应答信息CQdpFtdcRspInvestorPositionField说明

字段名称字段类型返回字段是否有值字段说明
BrokerIDChar(11)是经纪公司编号
ExchangeIDChar(11)是交易所代码
InvestorIDChar(19)是投资者代码
ParticipantIDChar(11)是会员编号
ClientIDChar(19)是客户代码
InstrumentIDChar(31)是合约代码
DirectionChar是买卖方向 '0'-买,1'-卖
HedgeFlagChar是投机套保标志 ‘1’-投机,2’-套利,’3’-套保
UsedMarginDouble是占用保证金
PositionInt是总持仓量
PositionCostDouble是今日持仓成本
YdPositionInt是昨持仓量(不变值)
YdPositionCostDouble是昨日持仓成本
FrozenMarginDouble是冻结的保证金
FrozenPositionInt否开仓冻结持仓
FrozenClosingInt否平仓冻结持仓
FrozenPremiumDouble是冻结的权利金
LastTradeIDChar(21)否最后一笔成交编号
LastOrderLocalIDChar(33)否最后一笔本地报单编号
CurrencyChar(4)是币种
PositionProfitDouble是持仓盈亏
TodayPositionInt是今持仓量
FrozenTodayClosingInt否今仓平仓冻结

pRspInfo: 指向响应信息结构的地址。

响应信息CQdpFtdcRspInfoField说明,详见OnRspError方法。

nRequestID: 返回投资者持仓查询请求的ID,该ID 由用户在投资者持仓查询查询时指定。

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

OnRspSubscribeTopic方法​

订阅主题应答。

函数原形:

void OnRspSubscribeTopic(CQdpFtdcDisseminationField *pDissemination, CQdpFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast);

参数:

pDissemination: 指向主题结构的地址。

订阅主题信息CQdpFtdcDisseminationField说明

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

pRspInfo: 指向响应信息结构的地址。

响应信息CQdpFtdcRspInfoField说明,详见OnRspError方法。

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

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

OnRspQryTopic方法​

主题查询应答。

函数原形:

void OnRspQryTopic(CQdpFtdcDisseminationField *pDissemination, CQdpFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast);

参数:

pDissemination: 指向主题结构的地址。

主题信息CQdpFtdcDisseminationField说明

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

pRspInfo: 指向响应信息结构的地址。

响应信息CQdpFtdcRspInfoField说明,详见OnRspError方法。

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

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

OnRspQryInvestorFee方法​

投资者手续费率查询应答。当客户端发出投资者手续费率查询指令后,QDP返回响应时,该方法会被调用。

函数原形:

void OnRspQryInvestorFee(CQdpFtdcInvestorFeeField *pInvestorFee, CQdpFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast);

参数:

pInvestorFee: 指向投资者手续费率结构的地址。

投资者手续费率查询应答信息CQdpFtdcInvestorFeeField说明

字段名称字段类型返回字段是否有值字段说明
BrokerIDChar(11)是经纪公司编号
ExchangeIDChar(11)是交易所代码
InvestorIDChar(19)是投资者代码
InstrumentIDChar(31)是合约代码
HedgeFlagChar是投机套保标志 ‘1’-投机,2’-套利,’3’-套保
OpenFeeRateDouble是开仓手续费按比例
OpenFeeAmtDouble是开仓手续费按手数
OffsetFeeRateDouble是平仓手续费按比例
OffsetFeeAmtDouble是平仓手续费按手数
OTFeeRateDouble是平今仓手续费按比例
OTFeeAmtDouble是平今仓手续费按手数

pRspInfo: 指向响应信息结构的地址。

响应信息CQdpFtdcRspInfoField说明,详见OnRspError方法。

nRequestID: 返回投资者手续费请求的ID,该ID 由用户在投资者手续费查询时指定。

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

OnRspQryInvestorOptionFee方法​

投资者期权手续费率查询应答。当客户端发出投资者期权手续费率查询指令后,QDP返回响应时,该方法会被调用。

函数原形:

void OnRspQryInvestorOptionFee(CQdpFtdcRspInvestorOptionFeeField *pRspInvestorOptionFee, CQdpFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast);

参数:

pRspInvestorOptionFee: 指向投资者期权手续费率结构的地址。

投资者期权手续费率查询应答信息CQdpFtdcRspInvestorOptionFeeField说明

字段名称字段类型返回字段是否有值字段说明
BrokerIDChar(11)是经纪公司编号
ExchangeIDChar(11)是交易所代码
InvestorIDChar(19)是投资者代码
InstrumentIDChar(31)是合约代码
OpenFeeRateDouble是开仓手续费按比例
OpenFeeAmtDouble是开仓手续费按手数
OffsetFeeRateDouble是平仓手续费按比例
OffsetFeeAmtDouble是平仓手续费按手数
OTFeeRateDouble是平今仓手续费按比例
OTFeeAmtDouble是平今仓手续费按手数
StrikeFeeRateDouble是执行手续费按比例
StrikeFeeAmtDouble是执行手续费按手数

pRspInfo: 指向响应信息结构的地址。

响应信息CQdpFtdcRspInfoField说明,详见OnRspError方法。

nRequestID: 返回投资者期权手续费率查询请求的ID,该ID由用户在投资者期权手续费率查询时指定。

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

OnRspQryInvestorMargin方法​

投资者保证金率查询应答。当客户端发出投资者保证金率查询指令后,QDP返回响应时,该方法会被调用。

函数原形:

void OnRspQryInvestorMargin(CQdpFtdcInvestorMarginField *pInvestorMargin, CQdpFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast);

参数:

pInvestorMargin: 指向投资者保证金率结构的地址。

投资者保证金率查询应答信息CQdpFtdcInvestorMarginField说明

字段名称字段类型返回字段是否有值字段说明
BrokerIDChar(11)是经纪公司编号
ExchangeIDChar(11)是交易所代码
InvestorIDChar(19)是投资者代码
InstrumentIDChar(31)是合约代码
HedgeFlagChar是投机套保标志 ‘1’-投机,2’-套利,’3’-套保
LongMarginRateDouble是多头占用保证金按比例
LongMarginAmtDouble是多头保证金按手数
ShortMarginRateDouble是空头占用保证金按比例
ShortMarginAmtDouble是空头保证金按手数

pRspInfo: 指向响应信息结构的地址。

响应信息CQdpFtdcRspInfoField说明,详见OnRspError方法。

nRequestID: 返回投资者保证金率查询请求的ID,该ID由用户在投资者保证金率查询时指定。

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

OnRtnForQuote方法​

询价回报。当交易所发生询价通知时QDP会通知客户端,该方法会被调用。

函数原形:

void OnRtnForQuote(CQdpFtdcForQuoteRspField *pForQuoteRsp);

参数:

pForQuoteRsp: 指向询价流通知结构的地址。

询价回报通知CQdpFtdcForQuoteRspField说明

字段名称字段类型返回字段是否有值字段说明
TradingDayChar(9)是交易日
InstrumentIDChar(31)是合约代码
OrderSysIDChar(31)是交易所报单号
ExchangeIDChar(11)是交易所代码
InsertTimeChar(9)是插入时间

OnRtnQuote方法​

报价回报。当发生报价回报时QDP会通知客户端,该方法会被调用。

函数原形:

void OnRtnQuote(CQdpFtdcQuoteField *pQuote);

参数:

pForQuoteRsp: 指向报价通知结构的地址。

报价回报信息CQdpFtdcQuoteField说明

字段名称字段类型返回字段是否有值字段说明
BrokerIDChar(11)是经纪公司编号
InvestorIDChar(19)是投资者代码
UserIDChar(16)是登录账号
UserOrderLocalIDInt是用户本地报单号
UserCustomChar(65)是用户自定义域
ExchangeIDChar(11)是交易所代码
InstrumentIDChar(31)是合约代码
OrderSysIDChar(31)是交易所报单号
ForQuoteSysIDChar(31)是应价编号
AskPriceDouble是卖价格
AskVolumeInt是卖数量
AskOffsetFlagChar(1)是卖开平标志
AskHedgeFlagChar(1)是卖投机套保标志
BidPriceDouble是买价格
BidVolumeInt是买数量
BidOffsetFlagChar(1)是买开平标志
BidHedgeFlagChar(1)是买投机套保标志
BusinessUnitChar(21)是业务单元
BranchIDInt是营业部代码
BidOrderRefInt买方本地报单编号
AskOrderRefInt卖方本地报单编号
TradingDayChar(9)是委托日期,为交易日,不是当前的自然日
ParticipantIDChar(11)是会员编号
ClientIDChar(19)是客户号
SeatIDChar(13)是下单席位号
InsertTimeChar(9)是委托时间,该时间是交易所提供的
OrderLocalIDChar(33)是本地报单编号
OrderSourceChar是报单来源
OrderStatusChar(1)是委托状态, QDP_FTDC_OS_AllTraded –全部成交 QDP_FTDC_OS_PartTradedQueueing –部分成交 QDP_FTDC_OS_NoTradeQueueing –未成交 QDP_FTDC_OS_Canceled –撤单
CancelTimeChar(9)否撤单时间,该时间由交易所提供
CancelUserIDChar(16)否撤单用户编号
VolumeTradedInt是今成交数量
VolumeRemainInt是剩余数量
FrontIDInt是前置编号
SessionIDInt是会话编号
FrozenFeeDouble是冻结手续费
FrozenMarginDouble是冻结的保证金
FrozenPremiumDouble是冻结的权利金
AccountIDChar(13)是资金帐号
OrderUserIDChar(16)否下单用户编号
TradeTypeChar是交易类型 ‘1’-普通成交 ‘2’-组合成交 ‘3’-场外成交
DealFlagChar否处理标志 ‘1’-已处理,’2’-等待处理
TradeCommisionDouble是已成交佣金
TradeAmntDouble是成交金额
CancleVolumeInt是撤单数量
RequestIDInt是请求编号
APIIDInt是通道对应的APIID
IPAddressChar(21)否下单IP地址
MacAddressChar(21)否下单MAC地址
BidOrderSysIDChar(31)是买方系统报单编号
AskOrderSysIDChar(31)是卖方系统报单编号

OnRspQryForQuote方法​

询价查询应答。当客户端发出询价查询指令后,QDP返回响应时,该方法会被调用。

函数原形:

void OnRspQryForQuote(CQdpFtdcForQuoteField *pForQuote, CQdpFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast);

参数:

pForQuote: 指向询价的地址。

询价查询应答消息CQdpFtdcForQuoteField说明

字段名称字段类型返回字段是否有值字段说明
BrokerIDChar(11)是经纪公司编号
InvestorIDChar(19)是投资者代码
UserIDChar(16)是登录账号
UserOrderLocalIDInt是用户本地报单号
UserCustomChar(65)是用户自定义域
ExchangeIDChar(11)是交易所代码
InstrumentIDChar(31)是合约代码
OrderLocalIDChar(33)是本地报单编号
ForQuoteStatusChar是询价状态 ‘a’-已经提交 ‘b’-已经接受 ‘c’-已经被拒绝
TradingDayChar(9)是交易日
InsertTimeChar(9)是插入时间

pRspInfo: 指向响应信息结构的地址。

响应信息CQdpFtdcRspInfoField说明,详见OnRspError方法。

nRequestID: 返回询价查询请求的ID,该ID 由用户在询价查询时指定。

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

OnRspForQuoteInsert方法​

询价录入应答。当客户端发出过询价录入指令后,QDP返回响应时,该方法会被调用。

函数原形:

void OnRspForQuoteInsert(CQdpFtdcInputForQuoteField *pInputForQuote, CQdpFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast);

参数:

pInputForQuote: 指向询价录入结构的地址,包含了提交询价录入时的输入数据,和后台返回的报单编号。

询价录入应答消息CQdpFtdcInputForQuoteField说明

字段名称字段类型返回字段是否有值字段说明
BrokerIDChar(11)是经纪公司编号
InvestorIDChar(19)是投资者代码
UserIDChar(16)是登录账号
UserOrderLocalIDInt是用户本地报单号
UserCustomChar(65)是用户自定义域
ExchangeIDChar(11)是交易所代码
InstrumentIDChar(31)是合约代码
OrderLocalIDChar(33)是本地报单编号

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

响应信息CQdpFtdcRspInfoField说明,详见OnRspError方法。

nRequestID: 返回询价录入操作请求的ID,该ID由用户在询价录入时指定。

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

OnRspQuoteInsert方法​

报价录入应答。当客户端发出过报价录入指令后,QDP返回响应时,该方法会被调用。

函数原形:

void OnRspQuoteInsert(CQdpFtdcInputQuoteField *pInputQuote, CQdpFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast);

参数:

pInputQuote: 指向报价录入结构的地址,包含了提交报价录入时的输入数据,和后台返回的报单编号。

报价录入应答信息CQdpFtdcInputQuoteField说明

字段名称字段类型返回字段是否有值字段说明
BrokerIDChar(11)是经纪公司编号
InvestorIDChar(19)是投资者代码
UserIDChar(16)是登录账号
UserOrderLocalIDInt是用户本地报单号
UserCustomChar(65)是用户自定义域
ExchangeIDChar(11)是交易所代码
InstrumentIDChar(31)是合约代码
OrderSysIDChar(31)是交易所报单号
ForQuoteSysIDChar(31)是应价编号
AskPriceDouble是卖价格
AskVolumeInt是卖数量
AskOffsetFlagChar(1)是卖开平标志
AskHedgeFlagChar(1)是卖投机套保标志
BidPriceDouble是买价格
BidVolumeInt是买数量
BidOffsetFlagChar(1)是买开平标志
BidHedgeFlagChar(1)是买投机套保标志
BusinessUnitChar(21)是业务单元
BranchIDInt是营业部代码
BidOrderRefInt是买方本地报单编号
AskOrderRefInt是卖方本地报单编号

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

响应信息CQdpFtdcRspInfoField说明,详见OnRspError方法。

nRequestID: 返回报价录入操作请求的ID,该ID由用户在报价录入时指定。

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

OnRspQuoteAction方法​

报价操作应答。报价操作包括报价的撤销。当客户端发出过报价操作指令后,QDP返回响应时,该方法会被调用。

函数原形:

void OnRspQuoteAction(CQdpFtdcQuoteActionField *pQuoteAction, CQdpFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast);

参数:

pQuoteAction: 指向报价操作结构的地址,包含了提交报价操作的输入数据,和后台返回的报价编号。

用户报价撤单应答信息CQdpFtdcQuoteActionField说明

字段名称字段类型返回字段是否有值字段说明
ExchangeIDChar(11)是交易所代码
OrderSysIDChar(31)是交易所报单号
BrokerIDChar(11)是经纪公司编号
InvestorIDChar(19)是投资者编号
UserIDChar(16)是登录账号
InstrumentIDChar(31)否合约代码
UserOrderActionLocalIDInt是此次撤单操作的用户本地报单号,和报单请求的UserOrderLocalID一样递增
UserOrderLocalIDInt是用户本地报单号(撤单操作是QDP的报单,否则该字段没有值)
ActionFlagChar(1)是报单操作标志,撤单正常填写QDP_FTDC_AF_Delete
LimitPriceDouble否价格
VolumeChangeInt否数量变化
RecNumInt否记录编号
FrontIDInt否前置编号
SessionIDInt否会话编号

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

响应信息CQdpFtdcRspInfoField说明,详见OnRspError方法。

nRequestID: 返回用户报单操作请求的ID,该ID由用户在报单操作时指定。

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

OnRspAuthenticate方法​

当客户端发出登录认证请求之后,QDP返回响应时,该方法会被调用,通知客户端登录认证是否成功。

函数原形:

void OnRspAuthenticate(CQdpFtdcRtnAuthenticateField *pRtnAuthenticate, CQdpFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast);

参数:

pRtnAuthenticate: 返回用户认证系统信息的地址。

用户认证系统应答信息CQdpFtdcRtnAuthenticateField说明

字段名称字段类型返回字段是否有值字段说明
BrokerIDChar(11)是经纪公司编号
UserIDChar(16)是登录账号
UserProductInfoChar(41)是接入版本信息
AppIDChar(33)是客户认证appid
SockIDInt否Socket编号
AppTypeChar是客户接入类型 ‘1’-直连的投资者 ‘2’-为每个投资者都创建连接的中继 ‘3’-所有投资者共享一个操作员连接的中继 ‘4’-未知

pRspInfo: 返回用户认证响应信息的地址。

响应信息CQdpFtdcRspInfoField说明,详见OnRspError方法。

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

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

OnRspSubPrdTradeFlow方法​

当客户端发出订阅品种交易流水请求之后,QDP返回响应时,该方法会被调用,通知客户端订阅品种交易流水是否成功。

函数原形:

void OnRspSubPrdTradeFlow(CQdpFtdcSpecificInstrumentField *pSpecificInstrument, CQdpFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast);

参数:

pSpecificInstrument: 返回用户订阅品种流水结构的地址。

订阅品种应答信息CQdpFtdcSpecificInstrumentField说明

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

pRspInfo: 返回订阅品种流水响应信息的地址。

响应信息CQdpFtdcRspInfoField说明,详见OnRspError方法。

nRequestID: 返回用户订阅品种流水请求的ID,该ID 由用户在订阅品种流水时指定。

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

OnRspUnSubPrdTradeFlow方法​

当客户端发出退订订阅品种交易流水请求之后,QDP返回响应时,该方法会被调用,通知客户端退订订阅品种交易流水是否成功。

函数原形:

void OnRspUnSubPrdTradeFlow(CQdpFtdcSpecificInstrumentField *pSpecificInstrument, CQdpFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast);

参数:

pSpecificInstrument: 返回用户退订订阅品种流水结构的地址。

退订订阅品种应答信息CQdpFtdcSpecificInstrumentField说明

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

pRspInfo: 返回退订订阅品种流水响应信息的地址。

响应信息CQdpFtdcRspInfoField说明,详见OnRspError方法。

nRequestID: 返回用户退订订阅品种流水请求的ID,该ID由用户在退订订阅品种流水时指定。

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