跳到主要内容

CQdFtdcMduserApi接口

CQdFtdcMduserApi接口提供给客户登陆、登出行情查询服务器,进行行情查询等功能。

CreateFtdcMduserApi方法

产生一个CQdFtdcMduserApi的一个实例,不能通过new来产生。

函数原型:

static CQdFtdcMduserApi *CreateFtdcMduserApi(const char *pszFlowPath = "");

参数:

pszFlowPath常量字符指针,用于指定一个文件目录来存贮行情服务发布消息的状态,默认值代表当前目录

返回值:

返回一个指向CQdFtdcMduserApi实例的指针

GetVersion方法

获取系统版本号。

函数原型:

static const char *GetVersion(int &nMajorVersion, int &nMinorVersion);

参数:

nMajorVersion 主版本号

nMinorVersion 子版本号

返回值:

系统标识字符串返回值

Release 方法

释放一个CQdFtdcMduserApi实例。

函数原型:

void Release();

SetMultiCast方法

多播设置开关。

函数原型:

void SetMultiCast(bool bMultiCast=false);

参数:

bMultiCast 开关控制

RegTopicMultiAddr方法

注册多播地址。

函数原型:

void RegTopicMultiAddr(char *pMultiAddr);

参数:

pMultiAddr 组播地址

多播网络地址的格式为:“topic,multi://本地ip@组播地址:组播端口#组播发送源ip”

Init 方法

使客户端开始与行情发布服务器建立连接,连接成功后可以进行登陆。

函数原型:

void Init();

Join 方法

客户端等待一个接口实例线程的结束。

函数原型:

void Join();

GetTradingDay方法

获得当前交易日。只有当与服务器连接建立后才会取到正确的值。

函数原型:

const char *GetTradingDay();

返回值:

返回一个指向日期信息字符串的常量指针

RegisterFront 方法

注册前置机网络地址。

函数原型:

void RegisterFront(char *pszFrontAddress);

参数:

pszFrontAddress 前置机网络地址

网络地址的格式为:“protocol://ipaddress:port”,如:”tcp://127.0.0.1:17001”

tcp代表传输协议,“127.0.0.1”代表服务器地址。”17001”代表服务器端口号

RegisterNameServer 方法

注册名字服务器网络地址。

函数原型:

void RegisterNameServer(char *pszNsAddress);

参数:

pszNsAddress 名字服务器网络地址

网络地址的格式为:“protocol://ipaddress:port”,如:”tcp://127.0.0.1:17001”

tcp代表传输协议,“127.0.0.1”代表服务器地址。”17001”代表服务器端口号

RegisterSpi 方法

注册一个派生自CQdFtdcMduserSpi接口类的实例,该实例将完成事件处理。

函数原型:

void RegisterSpi(CQdFtdcMduserSpi *pSpi) ;

参数:

pSpi实现了CQdFtdcMduserSpi接口的实例指针

SubscribeMarketDataTopic方法

客户端订阅自己需要的行情。订阅后行情服务器会自动发出行情通知给客户端(目前该接口调用后,仍需要调用SubMarketData,否则不会收到行情的推送)。

函数原型:

void SubscribeMarketDataTopic (int nTopicID, TE_RESUME_TYPE nResumeType);

参数:

nTopicID:代表深度行情的主题,由中金所公布,量投采用其主题。

nResumeType:市场行情重传方式

QD_TERT_RESTART 从本交易日开始重传(目前不支持)

QD_TERT_RESUME 从上次收到的续传(目前不支持)

QD_TERT_QUICK 先传送当前行情快照,再传送登录后市场行情的内容

SubMarketData方法

订阅合约行情。

函数原型:

int SubMarketData(char *ppInstrumentID[], int nCount);

参数:

ppInstrumentID 合约ID

nCount 要订阅行情的合约个数

返回值:

0代表成功,其它值代表失败

UnSubMarketData方法

退订合约行情。

函数原型:

int UnSubMarketData(char *ppInstrumentID[], int nCount);

参数:

ppInstrumentID 合约ID

nCount 要退订行情的合约个数

返回值:

0代表成功,其它值代表失败

SetHeartbeatTimeout方法

设置心跳超时时间。

函数原型:

void SetHeartbeatTimeout(unsigned int timeout);

参数:

timeout心跳超时时间(秒)

ReqUserLogin 方法

用户发出登陆请求。

函数原型:

int ReqUserLogin(CQdFtdcReqUserLoginField *pReqUserLoginField, int nRequestID);

参数:

pReqUserLoginField 指向用户登录请求结构的地址

用户登录请求CQdFtdcReqUserLoginField结构

字段名称字段类型是否必填字段说明
TradingDayChar(9)交易日
BrokerIDChar(11)经纪公司编号
UserIDChar(19)交易用户代码
PasswordChar(41)密码
UserProductInfoChar(51)用户端产品信息
InterfaceProductInfoChar(51)接口端产品信息
ProtocolInfoChar(41)协议信息
IPAddressChar(21)IP地址
MacAddressChar(21)Mac地址
DataCenterIDInt数据中心代码
OneTimePasswordChar(41)动态密码
ClientIPAddressChar(21)终端IP地址
AuthCodeChar(129)授权编码

nRequestID 用户登录请求的ID,该ID由用户指定,管理

返回值:

0代表成功,其它值代表失败

ReqUserLogout 方法

用户发出登出请求。

函数原型:

int ReqUserLogout(CQdFtdcReqUserLogoutField *pReqUserLogout, int nRequestID);

参数:

pReqUserLogout 指向用户登出请求结构的地址

用户登出信息CQdFtdcReqUserLogoutField结构

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

nRequestID 用户登出请求的ID,该ID由用户指定,管理。

返回值:

0代表成功,其它值代表失败

ReqSubMarketData方法

订阅合约的相关信息(该接口已启用,由SubMarketData代替)。

函数原型:

int ReqSubMarketData(CQdFtdcSpecificInstrumentField *pSpecificInstrument, int nRequestID);

参数:

pSpecificInstrument 订阅合约

订阅合约CQdFtdcSpecificInstrumentField结构说明

字段名称字段类型是否必填字段说明
InstrumentIDChar(31)合约代码

nRequestID 订阅合约请求的序列号

ReqUnSubMarketData方法

退订合约的相关信息(该接口已启用,由UnSubMarketData代替)。

函数原型:

int ReqUnSubMarketData(CQdFtdcSpecificInstrumentField *pSpecificInstrument, int nRequestID);

参数:

pSpecificInstrument 退订合约

退订合约CQdFtdcSpecificInstrumentField结构说明

字段名称字段类型是否必填字段说明
InstrumentIDChar(31)合约代码

nRequestID 退订合约请求的序列号

ReqSubscribeTopic方法

订阅主题请求。

函数原型:

int ReqSubscribeTopic(CQdFtdcDisseminationField *pDissemination, int nRequestID);

参数:

pDissemination 信息分发

订阅主题信息CQdpFtdcDisseminationField说明

字段名称字段类型是否必填字段说明
SequenceSeriesInt序列系列号
SequenceNoInt序列号

nRequestID 订阅主题请求的序列号

返回值:

0代表成功,其它值代表失败

ReqQryTopic方法

主题查询请求。

函数原型:

int ReqQryTopic(CQdFtdcDisseminationField *pDissemination, int nRequestID);

参数:

pDissemination 信息分发

订阅主题信息CQdpFtdcDisseminationField说明

字段名称字段类型是否必填字段说明
SequenceSeriesInt序列系列号
SequenceNoInt序列号

nRequestID主题查询请求的序列号

ReqQryMarketData方法

合约行情查询请求。

函数原型:

int ReqQryMarketData(CQdFtdcQryMarketDataField *pQryMarketData, int nRequestID);

参数:

pQryMarketData指向用户行情查询结构的地址

用户行情查询CQdFtdcQryMarketDataField结构

字段名称字段类型是否必填字段说明
ExchangeIDChar(11)交易所代码
InstrumentIDChar(31)合约代码
TopicIDInt订阅号

nRequestID 用户行情查询请求的ID,该ID由用户指定,管理。

返回值:

0代表成功,其它值代表失败

ReqQryInstrumentList方法

市场合约列表查询请求。

函数原型:

int ReqQryInstrumentList (CQdFtdcMarketDataExchangeIDField *pMarketDataExchangeID, int nRequestID);

参数:

pMarketDataExchangeID指向合约列表查询结构的地址

用户合约列表查询CQdFtdcMarketDataExchangeIDField结构

字段名称字段类型是否必填字段说明
ExchangeIDChar(11)交易所代码

nRequestID 用户合约列表查询请求的ID,该ID由用户指定,管理。

返回值:

0代表成功,其它值代表失败

ReqQrySHFEMultiInfo方法

组播信息查询请求。

函数原型:

int ReqQrySHFEMultiInfo (CQdFtdcQryShfeMultiInfoField *pQryShfeMultiInfo, int nRequestID);

参数:

pQryShfeMultiInfo指向组播信息查询结构的地址

用户组播信息查询CQdFtdcQryShfeMultiInfoField结构

字段名称字段类型是否必填字段说明
ExchangeIDChar(11)交易所代码
InstrumentIDChar(31)合约代码

nRequestID 用户组播信息查询请求的ID,该ID由用户指定,管理。

返回值:

0代表成功,其它值代表失败

ReqQryDepthMarketData方法

快照行情查询请求。

函数原型:

int ReqQryDepthMarketData (CQdFtdcQryMarketDataField *pQryMarketData, int nRequestID);

参数:

pQryMarketData指向快照行情查询结构的地址

用户快照行情查询CQdFtdcQryMarketDataField结构

字段名称字段类型是否必填字段说明
ExchangeIDChar(11)交易所代码
InstrumentIDChar(31)合约代码
TopicIDInt订阅号

nRequestID 用户组播信息查询请求的ID,该ID由用户指定,管理。

返回值:

0代表成功,其它值代表失败

ActiveMultiMarketData方法

启动多播。

注意:在无法登录qmarket服务器的情况下,调用此接口可以接收组播行情,在可以登录的情况下无需调用此接口

函数原型:

void ActiveMultiMarketData(char *TradingDay);

参数:

TradingDay组播地址

交易日,在没有登录的情况下,可以是自然日,但是要注意交易所的交易日