Hello CTP(九)——REM行情API

一、REM行情API

1、创建行情API实例

EQS_QUOTE_API EESQuoteApi* CreateEESQuoteApi(void)

创建行情API实例,多个用户可以创多个API实例。

2、销毁行情API实例

void EESQuoteApi:: DisConnServer()
EQS_QUOTE_API void DestroyEESQuoteApi(EESQuoteApi* pEESQuoteApi)

如需要销毁行情API实例,用户需要先调用DisConnServer接口,显式关闭与行情服务器的连接,然后再调用DestroyEESQuoteApi以销毁CreateEESQuoteApi创建的API实例。

3、TCP连接行情服务器

virtual bool ConnServer(vector<EqsTcpInfo>& vecEti, EESQuoteEvent* pQuoteEventHandler) = 0;
virtual bool ConnServer(EqsTcpInfo& svrInfo, EESQuoteEvent* pQuoteEventHandler) = 0;
void EESQuoteEvent::OnEqsConnected();
virtual void OnEqsDisconnected();

用户需要设置行情服务器的配置信息以及用户实现的继承于EESQuoteEvent的回调事件类,

以建立客户端与行情服务器建立TCP连接。如果连接失败,则直接返回false;

如果连接成功,调用用户设置的回调事件中的连接事件OnEqsConnected,并返回true。

连接断开时会回调OnEqsDisconnected函数。

4、登录行情服务器

void EESQuoteApi::LoginToEqs(EqsLoginParam& loginParam)
void EESQuoteEvent:: OnLoginResponse(bool bSuccess, const char* pReason)

当客户端与行情服务器成功建立TCP连接,用户需要登录行情服务器。登录是否成功,用户在回调事件中的登录响应事件OnLoginResponse中来判断,当bSuccess为true时,表示登陆成功,当bSuccess为false时,表示登陆失败,此时pReason携带登陆失败原因。

5、查询合约列表

void EESQuoteApi::QuerySymbolList()
void EESQuoteEvent::OnSymbolListResponse(EesEqsIntrumentType chInstrumentType, const char* pSymbol, bool bLast) 

当客户端登录行情服务器成功后,用户可以使用QuerySymbolList查询合约列表,用户在回调事件中的合约列表响应事件OnSymbolListResponse中获取行情服务器的信息,chInstrumentType表示EES合约类型,pSymbol表示合约信息。多个合约信息分批推送,bLast表示是否为最后一条,如果bLast为true,则表示合约已经返回完毕,数据无效不用处理。

6、注册合约

void EESQuoteApi:: RegisterSymbol(EesEqsIntrumentType chInstrumentType, const char* pSymbol)
void EESQuoteEvent::OnSymbolRegisterResponse(EesEqsIntrumentType chInstrumentType, const char* pSymbol, bool bSuccess) 

当客户端登录行情服务器成功后,用户可以使用RegisterSymbol注册合约以获取合约的行情信息,注册时需要输入EES行情类型,以及合约名称,用户在回调事件中的注册合约响应事件OnSymbolRegisterResponse中获取相应信息,其中bSuccess为true表示注册成功;bSuccess为false表示注册失败。

7、注销合约

void EESQuoteApi:: UnregisterSymbol(EesEqsIntrumentType chInstrumentType, const char* pSymbol)
void EESQuoteEvent:: OnSymbolUnregisterResponse(EesEqsIntrumentType chInstrumentType, const char* pSymbol, bool bSuccess)

当客户端登录行情服务器成功后,用户如果不想再次接收某个合约的行情信息,可以使用UnregisterSymbol注销该合约,注销时需要输入EES行情类型,以及合约名称,用户在回调事件中的注销合约响应事件OnSymbolUnregisterResponse中获取相应信息,其中bSuccess为true表示注销成功;bSuccess为false表示注销失败。

8、UDP组播模式

bool InitMulticast(vector<EqsMulticastInfo>& vecEmi, EESQuoteEvent* pQuoteEventHandler)

API初始化时,使用InitMulticast接口替代原ConnServer接口,即可使用组播模式。

行情API实例要么使用ConnServer(TCP模式),要么使用InitMulticast(组播模式),不能同时使用两种模式。

组播模式初始化成功后,直接可以在OnQuoteUpdated事件收到行情数据,无需登录、注册等各种步骤。

二、行情数据收取

virtual void OnQuoteUpdated(EesEqsIntrumentType chInstrumentType, EESMarketDepthQuoteData* pDepthQuoteData);

EesEqsIntrumentType字段用于确定合约类型,可选值如下:

EQS_INVALID_TYPE:无效类型('0')

EQS_SH_STOCK:上海股票('1')

EQS_SZ_STOCK:深圳股票('2')

EQS_STOCK_OPTION:股票期权('3')

EQS_FUTURE_OPTION:期货期权('4')

EQS_INDEX_OPTION:股指期权('5')

EQS_FUTURE:期货('6')

EQS_SGE:黄金('7')

EESMarketDepthQuoteData字段如下:

EESQuoteDateType TradingDay:交易日

EESQuoteInstrumentIDType InstrumentID:合约代码

EESQuoteExchangeIDType  ExchangeID:交易所代码

EESQuoteExchangeInstIDType  ExchangeInstID:合约在交易所的代码

EESQuotePriceType LastPrice:最新价

EESQuotePriceType PreSettlementPrice:上次结算价

EESQuotePriceType PreClosePrice:昨收盘

EESQuoteLargeVolumeType PreOpenInterest:昨持仓量

EESQuotePriceType OpenPrice:开盘价

EESQuotePriceType HighestPrice:最高价

EESQuotePriceType LowestPrice:最低价

EESQuoteVolumeType Volume:数量

EESQuoteMoneyType  Turnover:成交金额

EESQuoteLargeVolumeType OpenInterest:持仓量

EESQuotePriceType ClosePrice:今收盘价

EESQuotePriceType SettlementPrice:本次结算价

EESQuotePriceType UpperLimitPrice:涨停板价

EESQuotePriceType LowerLimitPrice:跌停板价

EESQuoteRatioType PreDelta:昨虚实度

EESQuoteRatioType CurrDelta:今虚实度

EESQuoteTimeType UpdateTime:最后修改时间

EESQuoteMillisecType UpdateMillisec:最后修改毫秒

EESQuotePriceType BidPrice1:申买价一

EESQuoteVolumeType BidVolume1:申买量一

EESQuotePriceType AskPrice1:申卖价一

EESQuoteVolumeType AskVolume1:申卖量一

EESQuotePriceType AveragePrice:当日均价