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:当日均价
标签:EESQuotePriceType,CTP,行情,void,API,EQS,合约,Hello 来源: https://blog.51cto.com/u_9291927/3033643