CQdpFtdcTraderApi 接口
CQdpFtdcTraderApi接口提供给用户的功能包括,报单的录入、报单的撤销、报单的查询、成交单查询、客户持仓查询、合约查询、合约交易状态查询、交易所公告查询等功能。
CreateFtdcTraderApi方法
产生一个CQdpFtdcTradeApi的一个实例,不能通过new来产生。
函数原形:
static CQdpFtdcTradeApi *CreateFtdcTradeApi(const char *pszFlowPath = "");
参数:
pszFlowPath: 常量字符指针,用于指定一个文件目录来存贮QDP发布消息的状态。默认值代表当前目录。
返回值:
返回一个指向CQdpFtdcTradeApi实例的指针。
GetVersion方法
获取系统版本号。
函数原型:
static const char *GetVersion(int &nMajorVersion, int &nMinorVersion);
参数:
nMajorVersion: 主版本号
nMinorVersion: 子版本号
返回值:
系统标识字符串返回值。
Release 方法
释放一个CQdpFtdcTradeApi 实例。不能使用delete方法。
函数原形:
void Release();
Init 方法
使客户端开始与QDP建立连接,连接成功后可以进行登陆。
函数原形:
void Init();
Join 方法
客户端等待一个接口实例线程的结束。
函数原形:
void Join();
GetTradingDay方法
获得当前交易日。只有当与QDP连接建立后才会取到正确的交易日。
函数原形:
const char *GetTradingDay();
返回值:
返回一个指向日期信息字符串的常量指针。
RegisterFront 方法
设置QDP的网络通讯地址,QDP拥有多个通信地址,但用户只需要选择一个通信地址。
函数原形:
void RegisterFront(char *pszFrontAddress);
参数:
pszFrontAddress: 指向QDP后台服务器地址的指针。
服务器地址的格式为:"protocol://ipaddress:port",如:"tcp://127.0.0.1:17001"。“tcp”代表传输协议,“127.0.0.1”代表服务器地址。”17001”代表服务器端口号。
RegisterSpi 方法
注册一个派生自CQdpFtdcTraderSpi 接口类的实例,该实例将完成事件处理。
函数原形:
void RegisterSpi(CQdpFtdcTraderSpi *pSpi);
参数:
pSpi: 实现了CQdpFtdcTraderSpi接口的实例指针。
SubscribePrivateTopic方法
订阅私有流。该方法要在Init 方法前调用。若不调用则不会收到私有流的数据。
函数原形:
void SubscribePrivateTopic(QDP_TE_RESUME_TYPE nResumeType);
参数:
nResumeType: 私有流重传方式
QDP_TERT_RESTART 从本交易日开始重传
QDP_TERT_RESUME 从上次收到的续传
QDP_TERT_QUICK 只传送登录后私有流的内容
SubscribePublicTopic方法
订阅公共流。该方法要在Init 方法前调用。若不调用则不会收到公共流的数据。
函数原形:
void SubscribePublicTopic(QDP_TE_RESUME_TYPE nResumeType);
参数:
nResumeType: 公共流重传方式
QDP_TERT_RESTART 从本交易日开始重传
QDP_TERT_RESUME 从上次收到的续传
QDP_TERT_QUICK 只传送登录后公共流的内容
SubscribeUserTopic方法
订阅交易员流。该方法要在Init 方法前调用。若不调用则不会收到交易员流的数据(UserAPI可使用)。
函数原形:
void SubscribeUserTopic(QDP_TE_RESUME_TYPE nResumeType);
参数:
nResumeType: 交易员重传方式
QDP_TERT_RESTART 从本交易日开始重传
QDP_TERT_RESUME 从上次收到的续传
QDP_TERT_QUICK 只传送登录后公共流的内容
SetHeartbeatTimeout方法
设置心跳超时时间。
函数原形:
void SetHeartbeatTimeout(unsigned int timeout);
参数:
timeout: 心跳超时时间(秒)
OpenRequestLog方法
打开请求日志文件。
函数原形:
int OpenRequestLog(const char *pszReqLogFileName);
参数:
pszReqLogFileName: 请求日志文件名
返回值:
0 操作成功
-1 打开日志文件失败
OpenResponseLog方法
打开应答日志文件。
函数原形:
int OpenResponseLog(const char *pszRspLogFileName);
参数:
pszRspLogFileName: 应答日志文件名
返回值:
0 操作成功
-1 打开日志文件失败
ReqUserLogin方法
用户发出登陆请求。
函数原形:
int ReqUserLogin (CQdpFtdcReqUserLoginField *pReqUserLogin, int nRequestID);
参数:
pReqUserLogin: 指向用户登录请求结构的地址。
用户登录请求信息CQdpFtdcReqUserLoginField说明
字段名称 | 字段类型 | 是否必填 | 字段说明 |
---|---|---|---|
TradingDay | Char(9) | 否 | 交易日 |
UserID | Char(16) | 是 | 登录账号 |
BrokerID | Char(11) | 是 | 经纪公司编号 |
Password | Char(41) | 是 | 账号密码 |
UserProductInfo | Char(41) | 否 | 用户端产品信息,建议客户填写使用API程序的名称如InfinyTraderV8 |
InterfaceProductInfo | Char(41) | 否 | 保留字段,目前没什么用 |
ProtocolInfo | Char(41) | 否 | 保留字段,目前没什么用 |
IPAddress | Char(21) | 否 | IP地址,建议客户填写 |
MacAddress | Char(21) | 否 | Mac地址,建议客户填写 |
DataCenterID | Int | 否 | 保留字段,目前没什么用 |
OneTimePassword | Char(41) | 否 | 保留字段,目前没什么用 |
ClientIPAddress | Char(21) | 否 | 保留字段,目前没什么用 |
nRequestID: 用户登录请求的ID,该ID由用户指定, 管理。
注:用户需要填写UserProductInfo字段,即客户端的产品信息,如软件开发商、版本号等。InterfaceProductInfo和ProtocolInfo 只须占位,不必有效赋值。
返回值:
0 表示成功。
-1 表示与柜台还未建立连接;
4 表示设备名获取失败(直连客户信息采集);
5 表示操作系统版本获取失败(直连客户信息采集);
6 表示硬盘序列号获取失败(直连客户信息采集);
7 表示CPU ID获取失败(直连客户信息采集);
8 表示BIOS ID获取失败(直连客户信息采集);
10 表示采集数据加密失败(直连客户信息采集)。
ReqUserLogout方法
用户发出登出请求。
函数原形:
int ReqUserLogout (CQdpFtdcReqUserLogoutField *pReqUserLogout, int nRequestID);
参数:
pReqUserLogout: 指向用户登出请求结构的地址。
用户登出请求信息CQdpFtdcReqUserLogoutField说明
字段名称 | 字段类型 | 是否必填 | 字段说明 |
---|---|---|---|
BrokerID | Char(11) | 是 | 经纪公司编号 |
UserID | Char(16) | 是 | 登录账号 |
LogoutReason | Int | 否 | Session退出原因 |
ReqUserPasswordUpdate方法
用户密码修改请求。
函数原形:
int ReqUserPasswordUpdate (CQdpFtdcUserPasswordUpdateField *pUserPasswordUpdate, int nRequestID);
参数:
pUserPasswordUpdate: 指向用户口令修改结构的地址。
用户密码修改请求信息CQdpFtdcUserPasswordUpdateField说明
字段名称 | 字段类型 | 是否必填 | 字段说明 |
---|---|---|---|
BrokerID | Char(11) | 是 | 经纪公司编号 |
UserID | Char(16) | 是 | 登录账号 |
OldPassword | Char(41) | 是 | 旧密码 |
NewPassword | Char(41) | 是 | 新密码 |
ReqOrderInsert 方法
客户端发出报单录入请求。
函数原形:
int ReqOrderInsert(CQdpFtdcInputOrderField *pInputOrder, int nRequestID);
参数:
pInputOrder: 指向输入报单结构的地址。
报单录入请求信息CQdpFtdcInputOrderField说明
字段名称 | 字段类型 | 是否必填 | 字段说明 |
---|---|---|---|
BrokerID | Char(11) | 是 | 经纪公司编号 |
ExchangeID | Char(11) | 是 | 交易所代码, 具体数值见QdpFtdcUserApiDataType.h |
OrderSysID | Char(31) | 否 | 交易所报单号 |
InvestorID | Char(19) | 是 | 投资者代码 |
UserID | Char(16) | 是 | 登录账号 |
InstrumentID | Char(31) | 是 | 合约代码 |
UserOrderLocalID | Int | 是 | 用户本地报单号 |
OrderPriceType | Char(1) | 是 | 报单类型 |
Direction | Char(1) | 是 | 买卖方向 |
OffsetFlag | Char(1) | 是 | 开平仓标识 |
HedgeFlag | Char(1) | 是 | 投机套保标志 |
LimitPrice | Double | 是 | 价格 |
Volume | Int | 是 | 数量 |
TimeCondition | Char(1) | 是 | 报单有效期类型 |
GTDDate | Char(9) | 否 | GTD日期 |
VolumeCondition | Char(1) | 是 | 成交量类型 |
MinVolume | Int | 否 | 最小成交量 |
StopPrice | Double | 否 | 止损价 |
ForceCloseReason | Char(1) | 是 | 强平原因,必填,一般填为QDP_FTDC_FCR_NotForceClose |
IsAutoSuspend | Int | 否 | 自动挂起标志 |
BusinessUnit | Char(21) | 否 | 业务单元 |
UserCustom | Char(65) | 否 | 用户自定义域 |
BranchID | Char(7) | 否 | 营业部代码 |
RecNum | Int | 否 | 记录编号 |
BusinessType | Char(1) | 否 | 业务类别 |
注意: 用户本地报单号UserOrderLocalID是一个整型,每一个Session需要保证递增。
限价单 必须填充的字段包括:
- BrokerID,会员号,形如“2008”;
- ExchangeID,交易所代码,支持“CFFEX”、“SHFE”、“CZCE”、“DCE”等
- InvestorID,投资者编号,形如“10000029”;
- UserID,用户代码,形如“test1”;
- InstrumentID,合约代码,形如“IF1109”;
- OrderPriceType,报单价格条件,为QDP_FTDC_OPT_LimitPrice;
- Direction,买卖方向,QDP_FTDC_D_Buy表示买,QDP_FTDC_D_Sell表示卖;
- OffsetFlag,开平标志,“0”表示开仓,“1”表示平仓;
- HedgeFlag,投机套保标志,“1”为投机,“2”为套利,“3”为套保;
- LimitPrice,价格,形如3500.00;
- Volume,数量, 例如5,表示5手;
- TimeCondition,有效期类型,为QDP_FTDC_TC_IOC(“立即成交,否则撤销”)或QDP_FTDC_TC_GFD(“当日有效”);
- VolumeCondition,成交量类型,为QDP_FTDC_VC_AV(“任意数量”)或QDP_FTDC_VC_(“全部数量”);
- ForceCloseReason,强平原因,只能为QDP_FTDC_FCR_NotForceClose(“非强平”);
- UserOrderLocalID,用户本地报单编号,形如 10。
市价单 必须填充的字段包括:
- BrokerID,会员号,形如“2008”;
- ExchangeID,交易所代码,支持“CFFEX”、“SHFE”、“CZCE”、“DCE”等
- InvestorID,客户号,形如“10000029”;
- UserID,交易用户代码,形如“test1”;
- InstrumentID,合约代码,形如“IF1109”;
- OrderPriceType,报单价格条件,为QDP_FTDC_OPT_AnyPrice;
- Direction,买卖方向,QDP_FTDC_D_Buy表示买,QDP_FTDC_D_Sell表示卖;
- OffsetFlag,开平标志,“0”表示开仓,“1”表示平仓;
- HedgeFlag,投机套保标志,“1”为投机,“2”为套利,“3”为套保;
- Volume,数量,例如5,表示5手;
- TimeCondition,有效期类型,为QDP_FTDC_TC_IOC(“立即成交,否则撤销”);
- VolumeCondition,成交量类型,为QDP_FTDC_VC_AV(“任意数量”)或QDP_FTDC_VC_(“全部数量”);
- ForceCloseReason,强平原因,只能为QDP_FTDC_FCR_NotForceClose(“非强平”);
- UserOrderLocalID,本地报单编号,形如 10。
各种订单类型,详细说明如下:
订单类型 | OrderPriceType | TimeCondition | VolumeCondition | 备注 |
---|---|---|---|---|
限价FOK | QDP_FTDC_OPT_LimitPrice | QDP_FTDC_TC_IOC | QDP_FTDC_VC_CV | 立即全部成交否则全部撤单 |
市价FOK | QDP_FTDC_OPT_AnyPrice | QDP_FTDC_TC_IOC | QDP_FTDC_VC_CV | 立即全部成交否则全部撤单,无需填写LimitPrice字段 |
限价FAK | QDP_FTDC_OPT_LimitPrice | QDP_FTDC_TC_IOC | QDP_FTDC_VC_AV | 立即成交, 剩余撤单 |
市价FAK | QDP_FTDC_OPT_AnyPrice | QDP_FTDC_TC_IOC | QDP_FTDC_VC_AV | 立即成交, 剩余撤单,无需填写LimitPrice字段 |
市价转限价 | QDP_FTDC_OPT_AnyPrice | QDP_FTDC_TC_GFD | QDP_FTDC_VC_AV | 市价单未成交部分转为最新价限价单 |
五档市价 | QDP_FTDC_OPT_FiveLevelPrice | QDP_FTDC_TC_IOC | QDP_FTDC_VC_AV | 市价单与对手方五档价格报单尝试成交,剩余未成交部分撤销 |
五档市价转限价 | QDP_FTDC_OPT_FiveLevelPrice | QDP_FTDC_TC_GFD | QDP_FTDC_VC_AV | 市价单与对手方五档价格报单尝试成交,剩余未成交部分转为最新价限价单 |
最优价 | QDP_FTDC_OPT_BestPrice | QDP_FTDC_TC_IOC | QDP_FTDC_VC_AV | 市价单与对手方最优一档价格报单尝试成交,剩余未成交部分撤销 |
最优价转限价 | QDP_FTDC_OPT_BestPrice | QDP_FTDC_TC_GFD | QDP_FTDC_VC_AV | 市价单与对手方最优一档价格报单尝试成交,剩余未成交部分转为最新价限价单 |
大商所GIS | QDP_FTDC_OPT_LimitPrice | QDP_FTDC_TC_GFS | QDP_FTDC_VC_AV | 小节有效, 未成交则撤单 |
止损定单 | QDP_FTDC_OPT_SO_LOSS | QDP_FTDC_TC_GFD | QDP_FTDC_VC_AV | |
止盈定单 | QDP_FTDC_OPT_SO_PROFIT | QDP_FTDC_TC_GFD | QDP_FTDC_VC_AV | |
限价止损定单 | QDP_FTDC_OPT_SLO_LOSS | QDP_FTDC_TC_GFD | QDP_FTDC_VC_AV | |
限价止盈定单 | QDP_FTDC_OPT_SLO_PROFIT | QDP_FTDC_TC_GFD | QDP_FTDC_VC_AV |
nRequestID: 用户报单录入请求的ID,该ID 由用户指定管理。
返回值:
0 表示成功。
888 表示投资者未登录;
999 表示本地报单编号小于等于QDP柜台最大本地报单编号;
-1 表示对话流水未创建;
-3 表示FTD协议请求发送失败;
-4 表示Session未连接。
ReqOrderAction 方法
客户端发出报单操作请求,包括报单的撤销、报单的挂起(暂不支持)、报单的激活(暂不支持)、报单的修改(暂不支持)。
函数原形:
int ReqOrderAction(CQdpFtdcOrderActionField *pOrderAction, int nRequestID);
参数:
pOrderAction: 指向报单操作结构的地址。
用户撤单请求信息CQdpFtdcOrderActionField说明
字段名称 | 字段类型 | 是否必填 | 字段说明 |
---|---|---|---|
ExchangeID | Char(11) | 是 | 交易所代码 |
OrderSysID | Char(31) | 否 | 交易所报单号(不填则必须填UserOrderLocalID) |
BrokerID | Char(11) | 是 | 经纪公司编号 |
InvestorID | Char(19) | 是 | 投资者编号 |
UserID | Char(16) | 是 | 登录账号 |
InstrumentID | Char(31) | 否 | 合约代码 |
UserOrderActionLocalID | Int | 是 | 此次撤单操作的用户本地报单号,和报单请求的UserOrderLocalID一样递增 |
UserOrderLocalID | Int | 否 | 用户本地报单号 |
ActionFlag | Char(1) | 是 | 报单操作标志,撤单正常填写QDP_FTDC_AF_Delete |
LimitPrice | Double | 否 | 价格 |
VolumeChange | Int | 否 | 数量变化 |
RecNum | Int | 否 | 记录编号 |
FrontID | Int | 否 | 前置编号 |
SessionID | Int | 否 | 会话编号 |
nRequestID: 用户报单操作请求的ID,该ID 由用户指定,管理。
返回值:
0 表示成功。
-1 表示对话流水未创建;
-3 表示FTD协议请求发送失败;
-4 表示Session未连接。
ReqQryOrder方法
报单查询请求。
函数原形:
int ReqQryQdpOrder (CQdpFtdcQryOrderField *pQryOrder, int nRequestID);
参数:
pQryOrder: 指向报单查询结构的地址。
用户委托查询请求信息CQdpFtdcQryOrderField说明
字段名称 | 字段类型 | 是否必填 | 字段说明 |
---|---|---|---|
BrokerID | Char(11) | 是 | 经纪公司编号 |
UserID | Char(16) | 是 | 登录账号 |
ExchangeID | Char(11) | 否 | 交易所代码 |
InvestorID | Char(19) | 否 | 投资者编号 |
OrderSysID | Char(31) | 否 | 交易所报单号(不填则必须填UserOrderLocalID) |
InstrumentID | Char(31) | 否 | 合约代码 |
ReqQryTrade方法
成交单查询请求。
函数原形:
int ReqQryQdpTrade (CQdpFtdcQryTradeField *pQryTrade, int nRequestID);
参数:
pQryTrade: 指向成交查询结构的地址。
用户成交查询请求信息CQdpFtdcQryTradeField说明
字段名称 | 字段类型 | 是否必填 | 字段说明 |
---|---|---|---|
BrokerID | Char(11) | 是 | 经纪公司编号 |
UserID | Char(16) | 是 | 登录账号 |
ExchangeID | Char(11) | 否 | 交易所代码 |
InvestorID | Char(19) | 否 | 投资者编号 |
TradeID | Char(21) | 否 | 交易所报单号(不填则必须填UserOrderLocalID) |
InstrumentID | Char(31) | 否 | 合约代码 |
ReqQryUserInvestor方法
可用投资者账户查询。
函数原形:
int ReqQryUserInvestor(CQdpFtdcQryUserInvestorField *pQryUserInvestor, int nRequestID);
参数:
pQryUserInvestor: 指向可用投资者账户查询结构的地址。
可用投资者查询请求信息CQdpFtdcQryUserInvestorField说明
字段名称 | 字段类型 | 是否必填 | 字段说明 |
---|---|---|---|
BrokerID | Char(11) | 是 | 经纪公司编号 |
UserID | Char(16) | 是 | 登录账号 |
ReqQryInvestorAccount方法
投资者资金账户查询。
函数原形:
int ReqQryInvestorAccount(CQdpFtdcQryInvestorAccountField *pQryInvestorAccount, int nRequestID);
参数:
pQryInvestorAccount: 指向投资者账户查询结构的地址。
投资者资金账户查询请求信息CQdpFtdcQryInvestorAccountField说明
字段名称 | 字段类型 | 是否必填 | 字段说明 |
---|---|---|---|
BrokerID | Char(11) | 是 | 经纪公司编号 |
UserID | Char(16) | 是 | 登录账号 |
InvestorID | Char(19) | 否 | 投资者编号 |
ReqQryInstrument方法
合约信息查询。
函数原形:
int ReqQryInstrument (CQdpFtdcQryInstrumentField *pQryInstrument, int nRequestID);
参数:
pQryInstrument: 指向合约信息查询结构的地址。
合约查询请求信息CQdpFtdcQryInstrumentField说明
字段名称 | 字段类型 | 是否必填 | 字段说明 |
---|---|---|---|
BrokerID | Char(11) | 是 | 经纪 公司编号 |
ProductID | Char(13) | 是 | 品种代码 |
InstrumentID | Char(31) | 否 | 合约代码 |
ReqQryMarketData方法
合约行情查询。
函数原形:
int ReqQryMarketData (CQdpFtdcQryMarketDataField *pQryMarketData, int nRequestID);
参数:
pQryMarketData: 指向合约行情查询结构的地址。
实时行情查询请求信息CQdpFtdcQryMarketDataField说明
字段名称 | 字段类型 | 是否必填 | 字段说明 |
---|---|---|---|
BrokerID | Char(11) | 是 | 经纪公司编号 |
InstrumentID | Char(31) | 否 | 合约代码 |
ReqQryExchange方法
交易所查询。
函数原形:
int ReqQryExchange(CQdpFtdcQryExchangeField *pQryExchange, int nRequestID);
参数:
pQryExchange: 指向交易所查询结构的地址。
交易所查询请求信息CQdpFtdcQryExchangeField说明
字段名称 | 字段类型 | 是否必填 | 字段说明 |
---|---|---|---|
ExchangeID | Char(11) | 否 | 交易所代码 |
ReqQryInvestorPosition方法
投资者持仓查询。
函数原形:
int ReqQryInvestorPosition (CQdpFtdcQryInvestorPositionField *pQryUserInvestorPosition, int nRequestID);
参数:
pQryUserInvestorPosition: 指向投资者持仓查询结构的地址。
投资者持仓查询请求信息CQdpFtdcQryInvestorAccountField说明
字段名称 | 字段类型 | 是否必填 | 字段说明 |
---|---|---|---|
BrokerID | Char(11) | 是 | 经纪公司编号 |
UserID | Char(16) | 是 | 登录账号 |
ExchangeID | Char(11) | 否 | 交易所代码 |
InvestorID | Char(19) | 否 | 投资者编号 |
InstrumentID | Char(31) | 否 | 合约代码 |
ReqSubscribeTopic方法
订阅主题请求。
函数原形:
int ReqSubscribeTopic(CQdpFtdcDisseminationField *pDissemination, int nRequestID);
参数:
pDissemination: 信息分发。
订阅主题请求信息CQdpFtdcDisseminationField说明
字段名称 | 字段类型 | 是否必填 | 字段说明 |
---|---|---|---|
SequenceSeries | Int | 是 | 序列系列号 |
SequenceNo | Int | 是 | 序列号 |
ReqQryTopic方法
主题查询请求。
函数原形:
int ReqQryTopic(CQdpFtdcDisseminationField *pDissemination, int nRequestID);
参数:
pDissemination: 信息分发。
主题查询请求信息CQdpFtdcDisseminationField说明
字段名称 | 字段类型 | 是否必填 | 字段说明 |
---|---|---|---|
SequenceSeries | Int | 是 | 序列系列号 |
SequenceNo | Int | 是 | 序列号 |
ReqQryInvestorFee方法
投资者手续费率查询。
函数原形:
int ReqQryInvestorFee(CQdpFtdcQryInvestorFeeField *pQryInvestorFee, int nRequestID);
参数:
pQryInvestorFee: 指向投资者手续费率查询结构的地址。
投资者手续费率查询请求信息CQdpFtdcQryInvestorFeeField说明
字段名称 | 字段类型 | 是否必填 | 字段说明 |
---|---|---|---|
BrokerID | Char(11) | 是 | 经纪公司编号 |
UserID | Char(16) | 是 | 登录账号 |
InvestorID | Char(19) | 否 | 投资者编号 |
ExchangeID | Char(11) | 否 | 交易所代码 |
InstrumentID | Char(31) | 否 | 合约代码 |
HedgeFlag | Char(1) | 否 | 投机套保标志 |
ReqQryInvestorOptionFee方法
投资者期权手续费率查询。
函数原形:
int ReqQryInvestorOptionFee(CQdpFtdcQryInvestorOptionFeeField *pQryInvestorOptionFee, int nRequestID);
参数:
pQryInvestorOptionFee: 指向投资者期权手续费率查询结构的地址。
投资者期权手续费率查询请求信息CQdpFtdcQryInvestorOptionFeeField说明
字段名称 | 字段类型 | 是否必填 | 字段说明 |
---|---|---|---|
BrokerID | Char(11) | 是 | 经纪公司编号 |
UserID | Char(16) | 是 | 登录账号 |
InvestorID | Char(19) | 否 | 投资者编号 |
ExchangeID | Char(11) | 否 | 交易所代码 |
InstrumentID | Char(31) | 否 | 合约代码 |
ReqQryInvestorMargin方法
投资者保证金率查询。
函数原形:
int ReqQryInvestorMargin(CQdpFtdcQryInvestorMarginField *pQryInvestorMargin, int nRequestID);
参数:
pQryInvestorMargin: 指向投资者保证金率查询结构的地址。
投资者保证金率查询请求信息CQdpFtdcQryInvestorMarginField说明
字段名称 | 字段类型 | 是否必填 | 字段说明 |
---|---|---|---|
BrokerID | Char(11) | 是 | 经纪公司编号 |
UserID | Char(16) | 是 | 登录账号 |
InvestorID | Char(19) | 否 | 投资者编号 |
ExchangeID | Char(11) | 否 | 交易所代码 |
InstrumentID | Char(31) | 否 | 合约代码 |
HedgeFlag | Char(1) | 否 | 投机套保标志 |
ReqQryForQuote方法
询价查询(暂未启用)。
函数原形:
int ReqQryForQuote(CQdpFtdcQryForQuoteField *pQryForQuote, int nRequestID);
参数:
pQryForQuote: 指向询价查询结构的地址。
询价查询请求信息CQdpFtdcQryForQuoteField说明
字段名称 | 字段类型 | 是否必填 | 字段说明 |
---|---|---|---|
BrokerID | Char(11) | 是 | 经纪公司编号 |
InvestorID | Char(19) | 否 | 投资者编号 |
InstrumentID | Char(31) | 否 | 合约代码 |
ExchangeID | Char(11) | 否 | 交易所代码 |
ReqForQuoteInsert方法
询价录入请求。
函数原形:
int ReqForQuoteInsert(CQdpFtdcInputForQuoteField *pInputForQuote, int nRequestID);
参数:
pInputForQuote: 指向询价录入结构的地址。
询价录入请求信息CQdpFtdcInputForQuoteField说明
字段名称 | 字段类型 | 是否必填 | 字段说明 |
---|---|---|---|
BrokerID | Char(11) | 是 | 经纪公司编号 |
InvestorID | Char(19) | 是 | 投资者代码 |
UserID | Char(16) | 是 | 登录账号 |
UserOrderLocalID | Int | 是 | 用户本地报单号 |
UserCustom | Char(65) | 否 | 用户自定义域 |
ExchangeID | Char(11) | 是 | 交易所代码 |
InstrumentID | Char(31) | 是 | 合约代码 |
OrderLocalID | Char(33) | 否 | 本地报单编号 |
ReqQuoteInsert方法
客户端发出报价录入请求。
函数原形:
int ReqQuoteInsert(CQdpFtdcInputQuoteField *pInputQuote, int nRequestID);
参数:
pInputQuote: 指向输入报价结构的地址。
报价录入请求信息CQdpFtdcInputQuoteField说明
字段名称 | 字段类型 | 是否必填 | 字段说明 |
---|---|---|---|
BrokerID | Char(11) | 是 | 经纪公司编号 |
InvestorID | Char(19) | 是 | 投资者代码 |
UserID | Char(16) | 是 | 登录账号 |
UserOrderLocalID | Int | 是 | 用户本地报单号 |
UserCustom | Char(65) | 否 | 用户自定义域 |
ExchangeID | Char(11) | 是 | 交易所代码 |
InstrumentID | Char(31) | 是 | 合约代码 |
OrderSysID | Char(31) | 否 | 交易所报单号 |
ForQuoteSysID | Char(31) | 否 | 应价编号 |
AskPrice | Double | 是 | 卖价格 |
AskVolume | Int | 是 | 卖数量 |
AskOffsetFlag | Char(1) | 是 | 卖开平标志 |
AskHedgeFlag | Char(1) | 是 | 卖投机套保标志 |
BidPrice | Double | 是 | 买价格 |
BidVolume | Int | 是 | 买数量 |
BidOffsetFlag | Char(1) | 是 | 买开平标志 |
BidHedgeFlag | Char(1) | 是 | 买投机套保标志 |
BusinessUnit | Char(21) | 否 | 业务单元 |
BranchID | Int | 否 | 营业部代码 |
BidOrderRef | Int | 否 | 买方本地报单编号 |
AskOrderRef | Int | 否 | 卖方本地报单编号 |
注意:
- 用户本地报单号UserOrderLocalID是一个整型,每一个Session需要保证递增。
- GIS报单,需要联系期货公司打开柜台的双边报价GIS开关
nRequestID: 用户报价录入请求的ID,该ID由用户指定,管理。
返回值:
0 表示成功。
888 表示投资者未登录;
999 表示本地报单编号小于等于QDP柜台最大本地报单编号;
-1 表示对话流水未创建;
-3 表示FTD协议请求发送失败;
-4 表示Session未连接。
ReqQuoteAction方法
客户端发出报价操作请求,包括报价的撤销、报价的挂起(暂不支持)、报价的激活(暂不支持)、报价的修改(暂不支持)。
函数原形:
int ReqQuoteAction(CQdpFtdcQuoteActionField *pQuoteAction, int nRequestID);
参数:
pQuoteAction: 指向报价操作结构的地址。
用户报价操作请求信息CQdpFtdcQuoteActionField说明
字段名称 | 字段类型 | 是否必填 | 字段说明 |
---|---|---|---|
ExchangeID | Char(11) | 是 | 交易所代码 |
OrderSysID | Char(31) | 否 | 交易所报单号(不填则必须填UserOrderLocalID) |
BrokerID | Char(11) | 是 | 经纪公司编号 |
InvestorID | Char(19) | 是 | 投资者编号 |
UserID | Char(16) | 是 | 登录账号 |
InstrumentID | Char(31) | 否 | 合约代码 |
UserOrderActionLocalID | Int | 是 | 此次撤单操作的用户本地报单号,和报单请求的UserOrderLocalID一样递增 |
UserOrderLocalID | Int | 否 | 用户本地报单号 |
ActionFlag | Char(1) | 是 | 报单操作标志,撤单正常填写QDP_FTDC_AF_Delete |
LimitPrice | Double | 否 | 价格 |
VolumeChange | Int | 否 | 数量变化 |
RecNum | Int | 否 | 记录编号 |
FrontID | Int | 否 | 前置编号 |
SessionID | Int | 否 | 会话编号 |
nRequestID: 用户报价操作请求的ID,该ID 由用户指定,管理。
返回值:
0 表示成功。
-1 表示对话流水未创建;
-3 表示FTD协议请求发送失败;
-4 表示Session未连接。
ReqAuthenticate方法
客户端发出登录认证请求(柜台开启认证后,该方法需要再登录前调用)。
函数原形:
int ReqAuthenticate(CQdpFtdcAuthenticateField *pAuthenticate, int nRequestID);
参数:
pAuthenticate: 指向认证系统信息结构的地址。
用户登录认证请求信息CQdpFtdcAuthenticateField说明
字段名称 | 字段类型 | 是否必填 | 字段说明 |
---|---|---|---|
BrokerID | Char(11) | 是 | 经纪公司编号 |
UserID | Char(16) | 是 | 登录账号 |
UserProductInfo | Char(41) | 否 | 用户端产品信息,建议客户填写API程序的名称如InfinyTraderV8 |
AppID | Char(33) | 是 | 客户认证appid(客户需要从期货公司的QDP柜台获取) |
AuthCode | Char(41) | 是 | 接入认证id(客户需要从期货公司的QDP柜台获取) |
nRequestID: 用户认证请求的ID,该ID 由用户指定,管理。
返回值:
0 表示成功。
-1 表示 对话流水未创建;
-3 表示FTD协议请求发送失败;
-4 表示Session未连接。
ReqSubmitUserSystemInfo方法
客户端发出采集信息请求。
函数原形:
int ReqSubmitUserSystemInfo(CQdpFtdcUserSystemInfoField *pUserSystemInfo, int nRequestID);
参数:
pUserSystemInfo 指向用户采集信息结构的地址。
用户信息采集请求信息CQdpFtdcUserSystemInfoField说明
字段名称 | 字段类型 | 是否必填 | 字段说明 |
---|---|---|---|
BrokerID | Char(11) | 是 | 经纪公司编号 |
UserID | Char(16) | 是 | 登录账号 |
ClientSystemInfoLen | Int | 是 | 信息长度 |
ClientSystemInfo | Char(353) | 是 | 信息内容 |
ClientPublicIP | Char(21) | 是 | 客户ip |
ClientIPPort | Int | 是 | 客户端口 |
ClientLoginTime | Char(25) | 是 | 登录时间 |
ClientAppID | Char(33) | 是 | 客户认证appid |
nRequestID: 用户采集信息请求的ID,该ID 由用户指定,管理。
返回值:
0 表示成功。
-1 表示对话流水未创建;
-3 表示FTD协议请求发送失败;
-4 表示Session未连接。
ReqSubPrdTradeFlow方法
订阅品种交易流水请求(做市商客户可以使用该方法,防止流水过多的情况)。
函数原形:
int ReqSubPrdTradeFlow(CQdpFtdcSpecificInstrumentField *pSpecificInstrument, int nRequestID);
参数:
pSpecificInstrument: 指向订阅品种交易流水结构的地址。
订阅品种交易流水请求信息CQdpFtdcSpecificInstrumentField说明
字段名称 | 字段类型 | 是否必填 | 字段说明 |
---|---|---|---|
InstrumentID | Char(31) | 是 | 合约代码 |
nRequestID: 用户订阅品种交易流水请求的ID,该ID 由用户指定,管理。
返回值:
0 表示成功。
-1 表示对话流水未创建;
-3 表示FTD协议请求发送失败;
-4 表示Session未连接。
ReqUnSubPrdTradeFlow方法
退订订阅品种交易流水请求。
函数原形:
int ReqUnSubPrdTradeFlow(CQdpFtdcSpecificInstrumentField *pSpecificInstrument, int nRequestID);
参数:
pSpecificInstrument 指向退订订阅品种交易流水结构的地址。
退订订阅品种交易流水请求信息CQdpFtdcSpecificInstrumentField说明
字段名称 | 字段类型 | 是否必填 | 字段说明 |
---|---|---|---|
InstrumentID | Char(31) | 是 | 合约代码 |
nRequestID: 用户退订品种交易流水请求的ID,该ID 由用户指定,管理。
返回值:
0 表示成功。
-1 表示对话流水未创建;
-3 表示FTD协议请求发送失败;
-4 表示Session未连接。
ReqReady方法
准备就绪请求(通常需要在登录成功后对私有流和公有流分别请求,否则收不到对应OnRtn消息)。
函数原形:
int ReqReady(CQdpFtdcFlowStatusField *pFlowStatus, int nRequestID);
参数:
pFlowStatus: 指向流水状态结构的地址。
准备就绪请求信息CQdpFtdcFlowStatusField说明
字段名称 | 字段类型 | 是否必填 | 字段说明 |
---|---|---|---|
SequenceSeries | Int | 是 | 序列系列号: QDP_TERT_PRIVATE 私有流 QDP_TERT_PUBLIC 公有流 |
bReady | Int | 是 | 是否就绪 |
nRequestID: 用户退订品种交易流水请求的ID,该ID 由用户指定,管理。
返回值:
0 表示成功。
-1 表示对话流水未创建;
-3 表示FTD协议请求发送失败;
-4 表示Session未连接。