EMT API ver: 2.15.1
emt_quote_api.h
浏览该文件的文档.
1#pragma once
2
8#ifdef _WIN32
9#define QUOTE_API_ _declspec(dllexport)
10#else
11#define QUOTE_API_ _declspec(dllimport)
12#endif // _WIN32
13
14#include "emt_quote_struct.h"
23namespace EMT {
24 namespace API {
29 {
30 public:
31 virtual ~QuoteSpi()
32 {
33
34 };
35
42 virtual void OnDisconnected(int reason) {};
43
50 virtual void OnError(EMTRspInfoStruct* error_info) {};
51
57 virtual void OnIndexData(EMTIndexDataStruct* index_data) {};
58
70 virtual void OnDepthMarketData(EMTMarketDataStruct* market_data, int64_t bid1_qty[], int32_t bid1_count, int32_t max_bid1_count, int64_t ask1_qty[], int32_t ask1_count, int32_t max_ask1_count) {};
71
77 virtual void OnTickByTick(EMTTickByTickStruct* tbt_data) {};
78
83 virtual void OnOrderBook(EMTOrderBookStruct* order_book) {};
84
89 virtual void OnMinuteInfo(EMTMinuteInfo* minute_info) {};
90
97 virtual void OnSubscribeAllIndexData(EMT_EXCHANGE_TYPE exchange_id, EMTRspInfoStruct* error_info) {};
98
105 virtual void OnUnSubscribeAllIndexData(EMT_EXCHANGE_TYPE exchange_id, EMTRspInfoStruct* error_info) {};
106
114 virtual void OnSubIndexData(EMTSpecificTickerStruct* ticker, EMTRspInfoStruct* error_info, bool is_last) {};
115
123 virtual void OnUnSubIndexData(EMTSpecificTickerStruct* ticker, EMTRspInfoStruct* error_info, bool is_last) {};
124
131 virtual void OnSubscribeAllMarketData(EMT_EXCHANGE_TYPE exchange_id, EMTRspInfoStruct* error_info) {};
132
139 virtual void OnUnSubscribeAllMarketData(EMT_EXCHANGE_TYPE exchange_id, EMTRspInfoStruct* error_info) {};
140
148 virtual void OnSubMarketData(EMTSpecificTickerStruct* ticker, EMTRspInfoStruct* error_info, bool is_last) {};
149
157 virtual void OnUnSubMarketData(EMTSpecificTickerStruct* ticker, EMTRspInfoStruct* error_info, bool is_last) {};
158
165 virtual void OnSubscribeAllTickByTick(EMT_EXCHANGE_TYPE exchange_id, EMTRspInfoStruct* error_info) {};
166
173 virtual void OnUnSubscribeAllTickByTick(EMT_EXCHANGE_TYPE exchange_id, EMTRspInfoStruct* error_info) {};
174
182 virtual void OnSubTickByTick(EMTSpecificTickerStruct* ticker, EMTRspInfoStruct* error_info, bool is_last) {};
183
191 virtual void OnUnSubTickByTick(EMTSpecificTickerStruct* ticker, EMTRspInfoStruct* error_info, bool is_last) {};
192
198 virtual void OnSubscribeAllOrderBook(EMT_EXCHANGE_TYPE exchange_id, EMTRspInfoStruct* error_info) {};
199
206 virtual void OnUnSubscribeAllOrderBook(EMT_EXCHANGE_TYPE exchange_id, EMTRspInfoStruct* error_info) {};
207
215 virtual void OnSubOrderBook(EMTSpecificTickerStruct* ticker, EMTRspInfoStruct* error_info, bool is_last) {};
216
224 virtual void OnUnSubOrderBook(EMTSpecificTickerStruct* ticker, EMTRspInfoStruct* error_info, bool is_last) {};
225
232 virtual void OnSubscribeAllMinuteInfo(EMT_EXCHANGE_TYPE exchange_id, EMTRspInfoStruct* error_info) {};
233
240 virtual void OnUnSubscribeAllMinuteInfo(EMT_EXCHANGE_TYPE exchange_id, EMTRspInfoStruct* error_info) {};
241
249 virtual void OnSubMinuteInfo(EMTSpecificTickerStruct* ticker, EMTRspInfoStruct* error_info, bool is_last) {};
250
258 virtual void OnUnSubMinuteInfo(EMTSpecificTickerStruct* ticker, EMTRspInfoStruct* error_info, bool is_last) {};
259
267 virtual void OnQueryAllTickers(EMTQuoteStaticInfo* qsi, EMTRspInfoStruct* error_info, bool is_last) {};
268
276 virtual void OnQueryAllTickersFullInfo(EMTQuoteFullInfo* qfi, EMTRspInfoStruct* error_info, bool is_last) {};
277
285 virtual void OnQueryLatestIndexData(EMTIndexDataStruct* index_data, EMTRspInfoStruct* error_info, bool is_last) {};
286
294 virtual void OnQueryLatestMarketData(EMTMarketDataStruct* market_data, EMTRspInfoStruct* error_info, bool is_last) {};
295
303 virtual void OnQueryMinuteInfo(EMTMinuteInfo* minute_info, EMTRspInfoStruct* error_info, bool is_last) {};
304
312 virtual void OnQueryMinHistoryInfo(EMTMinuteInfo* minute_info, EMTRspInfoStruct* error_info, bool is_last) {};
313
314 /*
315 * 查询最新价
316 * @attention 需要使用最新价结构体EMTTickerPriceInfo
317 * @param price_info 最新价格数据
318 * @param error_info 订阅合约发生错误时的错误信息,当error_info为空,或者error_info.error_id为0时,表明没有错误
319 * @param is_last 是否此次退订的最后一个应答,当为最后一个的时候为true,如果为false,表示还有其他后续消息响应
320 */
321 virtual void OnQueryTickersPriceInfo(EMTTickerPriceInfo* price_info, EMTRspInfoStruct* error_info, bool is_last) {};
322
323 private:
324
325 };
326 }
327}
328
337namespace EMT {
338 namespace API {
339
343#ifdef _WIN32
344 class QUOTE_API_ QuoteApi
345#else
347#endif // _WIN32
348 {
349
350 public:
359 static QuoteApi* CreateQuoteApi(uint8_t client_id, const char* save_file_path, uint8_t data_type, EMT_LOG_LEVEL log_level = EMT_LOG_LEVEL_DEBUG);
360
365 virtual void Release() = 0;
366
371 virtual const char* GetApiVersion() = 0;
372
384 virtual int Login(const char* ip, int port, const char* user, const char* pwd, EMT_PROTOCOL_TYPE sock_type, const char* local_ip = nullptr) = 0;
385
391 virtual int Logout() = 0;
392
397 virtual void RegisterSpi(QuoteSpi* spi) = 0;
398
399
405 virtual void SetUDPBufferSize(uint32_t buff_size) = 0;
406
412 virtual void SetUDPRecvThreadAffinity(int32_t cpu_no) = 0;
413
419 virtual void SetUDPParseThreadAffinity(int32_t cpu_no) = 0;
425 virtual void SetUDPSeqLogOutPutFlag(bool flag = true) = 0;
426
432 virtual void SetHeartBeatInterval(uint32_t interval = 5) = 0;
433
441
449
458 virtual int SubscribeIndexData(char* tickers[], int count, EMT_EXCHANGE_TYPE exchange_id = EMT_EXCHANGE_UNKNOWN) = 0;
467 virtual int UnSubscribeIndexData(char* tickers[], int count, EMT_EXCHANGE_TYPE exchange_id = EMT_EXCHANGE_UNKNOWN) = 0;
468
476
484
493 virtual int SubscribeMarketData(char* tickers[], int count, EMT_EXCHANGE_TYPE exchange_id = EMT_EXCHANGE_UNKNOWN) = 0;
494
503 virtual int UnSubscribeMarketData(char* tickers[], int count, EMT_EXCHANGE_TYPE exchange_id = EMT_EXCHANGE_UNKNOWN) = 0;
504
512
520
529 virtual int SubscribeTickByTick(char* tickers[], int count, EMT_EXCHANGE_TYPE exchange_id = EMT_EXCHANGE_UNKNOWN) = 0;
530
539 virtual int UnSubscribeTickByTick(char* tickers[], int count, EMT_EXCHANGE_TYPE exchange_id = EMT_EXCHANGE_UNKNOWN) = 0;
540
548
556
565 virtual int SubscribeOrderBook(char* tickers[], int count, EMT_EXCHANGE_TYPE exchange_id) = 0;
566
575 virtual int UnSubscribeOrderBook(char* tickers[], int count, EMT_EXCHANGE_TYPE exchange_id) = 0;
576
584
592
601 virtual int SubscribeMinuteInfo(char* tickers[], int count, EMT_EXCHANGE_TYPE exchange_id = EMT_EXCHANGE_UNKNOWN) = 0;
602
611 virtual int UnSubscribeMinuteInfo(char* tickers[], int count, EMT_EXCHANGE_TYPE exchange_id = EMT_EXCHANGE_UNKNOWN) = 0;
612
619
626
635 virtual int QueryLatestInfo(char* tickers[], int count, EMT_TICKER_TYPE ticker_type, EMT_EXCHANGE_TYPE exchange_id) = 0;
636
645 virtual int QueryMinuteInfo(char* tickers[], int count, EMT_TICKER_TYPE ticker_type, EMT_EXCHANGE_TYPE exchange_id) = 0;
646
656 virtual int QueryMinHistoryInfo(char* tickers[], int count,int datetime, EMT_TICKER_TYPE ticker_type, EMT_EXCHANGE_TYPE exchange_id) = 0;
657
658
659 /*
660 * 获取最新价
661 * @param tickers 合约ID数组,注意合约代码必须以'\0'结尾,不包含空格
662 * @param count 合约个数,为0表示查询交易所所有合约
663 * @param exchange_id 交易所代码,EMT_EXCHANGE_SH表示为上海全市场,EMT_EXCHANGE_SZ表示为深圳全市场
664 * @return 发送查询请求是否成功,"0"表示发送查询请求成功,非"0"表示发送查询请求不成功
665 */
666 virtual int QueryTickersPriceInfo(char* tickers[], int count, EMT_EXCHANGE_TYPE exchange_id) = 0;
667
674
675 protected:
677
678 };
679 }
680}
行情接口类
Definition: emt_quote_api.h:348
virtual int UnSubscribeAllMarketData(EMT_EXCHANGE_TYPE exchange_id=EMT_EXCHANGE_UNKNOWN)=0
virtual int SubscribeAllIndexData(EMT_EXCHANGE_TYPE exchange_id=EMT_EXCHANGE_UNKNOWN)=0
virtual int QueryTickersPriceInfo(char *tickers[], int count, EMT_EXCHANGE_TYPE exchange_id)=0
virtual void SetUDPRecvThreadAffinity(int32_t cpu_no)=0
static QuoteApi * CreateQuoteApi(uint8_t client_id, const char *save_file_path, uint8_t data_type, EMT_LOG_LEVEL log_level=EMT_LOG_LEVEL_DEBUG)
virtual int UnSubscribeOrderBook(char *tickers[], int count, EMT_EXCHANGE_TYPE exchange_id)=0
virtual int SubscribeMarketData(char *tickers[], int count, EMT_EXCHANGE_TYPE exchange_id=EMT_EXCHANGE_UNKNOWN)=0
virtual int QueryMinHistoryInfo(char *tickers[], int count, int datetime, EMT_TICKER_TYPE ticker_type, EMT_EXCHANGE_TYPE exchange_id)=0
virtual int SubscribeTickByTick(char *tickers[], int count, EMT_EXCHANGE_TYPE exchange_id=EMT_EXCHANGE_UNKNOWN)=0
virtual void Release()=0
virtual int SubscribeAllOrderBook(EMT_EXCHANGE_TYPE exchange_id=EMT_EXCHANGE_UNKNOWN)=0
virtual int QueryAllTickersFullInfo(EMT_EXCHANGE_TYPE exchange_id=EMT_EXCHANGE_UNKNOWN)=0
virtual int SubscribeAllMinuteInfo(EMT_EXCHANGE_TYPE exchange_id=EMT_EXCHANGE_UNKNOWN)=0
virtual int UnSubscribeAllMinuteInfo(EMT_EXCHANGE_TYPE exchange_id=EMT_EXCHANGE_UNKNOWN)=0
virtual int SubscribeIndexData(char *tickers[], int count, EMT_EXCHANGE_TYPE exchange_id=EMT_EXCHANGE_UNKNOWN)=0
virtual void SetUDPSeqLogOutPutFlag(bool flag=true)=0
virtual int UnSubscribeAllIndexData(EMT_EXCHANGE_TYPE exchange_id=EMT_EXCHANGE_UNKNOWN)=0
virtual int QueryAllTickers(EMT_EXCHANGE_TYPE exchange_id=EMT_EXCHANGE_UNKNOWN)=0
virtual int SubscribeOrderBook(char *tickers[], int count, EMT_EXCHANGE_TYPE exchange_id)=0
virtual int UnSubscribeMinuteInfo(char *tickers[], int count, EMT_EXCHANGE_TYPE exchange_id=EMT_EXCHANGE_UNKNOWN)=0
virtual void RegisterSpi(QuoteSpi *spi)=0
virtual int Login(const char *ip, int port, const char *user, const char *pwd, EMT_PROTOCOL_TYPE sock_type, const char *local_ip=nullptr)=0
virtual int SubscribeAllMarketData(EMT_EXCHANGE_TYPE exchange_id=EMT_EXCHANGE_UNKNOWN)=0
virtual int UnSubscribeTickByTick(char *tickers[], int count, EMT_EXCHANGE_TYPE exchange_id=EMT_EXCHANGE_UNKNOWN)=0
virtual int UnSubscribeIndexData(char *tickers[], int count, EMT_EXCHANGE_TYPE exchange_id=EMT_EXCHANGE_UNKNOWN)=0
~QuoteApi()
Definition: emt_quote_api.h:676
virtual int UnSubscribeMarketData(char *tickers[], int count, EMT_EXCHANGE_TYPE exchange_id=EMT_EXCHANGE_UNKNOWN)=0
virtual EMTRspInfoStruct * GetApiLastError()=0
virtual void SetUDPParseThreadAffinity(int32_t cpu_no)=0
virtual int QueryMinuteInfo(char *tickers[], int count, EMT_TICKER_TYPE ticker_type, EMT_EXCHANGE_TYPE exchange_id)=0
virtual void SetUDPBufferSize(uint32_t buff_size)=0
virtual void SetHeartBeatInterval(uint32_t interval=5)=0
virtual int UnSubscribeAllOrderBook(EMT_EXCHANGE_TYPE exchange_id=EMT_EXCHANGE_UNKNOWN)=0
virtual int UnSubscribeAllTickByTick(EMT_EXCHANGE_TYPE exchange_id=EMT_EXCHANGE_UNKNOWN)=0
virtual int QueryLatestInfo(char *tickers[], int count, EMT_TICKER_TYPE ticker_type, EMT_EXCHANGE_TYPE exchange_id)=0
virtual int SubscribeAllTickByTick(EMT_EXCHANGE_TYPE exchange_id=EMT_EXCHANGE_UNKNOWN)=0
virtual int Logout()=0
virtual const char * GetApiVersion()=0
virtual int SubscribeMinuteInfo(char *tickers[], int count, EMT_EXCHANGE_TYPE exchange_id=EMT_EXCHANGE_UNKNOWN)=0
行情接口响应类
Definition: emt_quote_api.h:29
virtual void OnUnSubTickByTick(EMTSpecificTickerStruct *ticker, EMTRspInfoStruct *error_info, bool is_last)
Definition: emt_quote_api.h:191
virtual ~QuoteSpi()
Definition: emt_quote_api.h:31
virtual void OnUnSubMinuteInfo(EMTSpecificTickerStruct *ticker, EMTRspInfoStruct *error_info, bool is_last)
Definition: emt_quote_api.h:258
virtual void OnSubMinuteInfo(EMTSpecificTickerStruct *ticker, EMTRspInfoStruct *error_info, bool is_last)
Definition: emt_quote_api.h:249
virtual void OnUnSubscribeAllTickByTick(EMT_EXCHANGE_TYPE exchange_id, EMTRspInfoStruct *error_info)
Definition: emt_quote_api.h:173
virtual void OnSubMarketData(EMTSpecificTickerStruct *ticker, EMTRspInfoStruct *error_info, bool is_last)
Definition: emt_quote_api.h:148
virtual void OnDisconnected(int reason)
Definition: emt_quote_api.h:42
virtual void OnTickByTick(EMTTickByTickStruct *tbt_data)
Definition: emt_quote_api.h:77
virtual void OnUnSubMarketData(EMTSpecificTickerStruct *ticker, EMTRspInfoStruct *error_info, bool is_last)
Definition: emt_quote_api.h:157
virtual void OnSubscribeAllTickByTick(EMT_EXCHANGE_TYPE exchange_id, EMTRspInfoStruct *error_info)
Definition: emt_quote_api.h:165
virtual void OnQueryAllTickersFullInfo(EMTQuoteFullInfo *qfi, EMTRspInfoStruct *error_info, bool is_last)
Definition: emt_quote_api.h:276
virtual void OnSubTickByTick(EMTSpecificTickerStruct *ticker, EMTRspInfoStruct *error_info, bool is_last)
Definition: emt_quote_api.h:182
virtual void OnUnSubscribeAllMinuteInfo(EMT_EXCHANGE_TYPE exchange_id, EMTRspInfoStruct *error_info)
Definition: emt_quote_api.h:240
virtual void OnQueryAllTickers(EMTQuoteStaticInfo *qsi, EMTRspInfoStruct *error_info, bool is_last)
Definition: emt_quote_api.h:267
virtual void OnMinuteInfo(EMTMinuteInfo *minute_info)
Definition: emt_quote_api.h:89
virtual void OnSubIndexData(EMTSpecificTickerStruct *ticker, EMTRspInfoStruct *error_info, bool is_last)
Definition: emt_quote_api.h:114
virtual void OnDepthMarketData(EMTMarketDataStruct *market_data, int64_t bid1_qty[], int32_t bid1_count, int32_t max_bid1_count, int64_t ask1_qty[], int32_t ask1_count, int32_t max_ask1_count)
Definition: emt_quote_api.h:70
virtual void OnSubscribeAllIndexData(EMT_EXCHANGE_TYPE exchange_id, EMTRspInfoStruct *error_info)
Definition: emt_quote_api.h:97
virtual void OnQueryMinuteInfo(EMTMinuteInfo *minute_info, EMTRspInfoStruct *error_info, bool is_last)
Definition: emt_quote_api.h:303
virtual void OnSubOrderBook(EMTSpecificTickerStruct *ticker, EMTRspInfoStruct *error_info, bool is_last)
Definition: emt_quote_api.h:215
virtual void OnQueryLatestMarketData(EMTMarketDataStruct *market_data, EMTRspInfoStruct *error_info, bool is_last)
Definition: emt_quote_api.h:294
virtual void OnError(EMTRspInfoStruct *error_info)
Definition: emt_quote_api.h:50
virtual void OnQueryLatestIndexData(EMTIndexDataStruct *index_data, EMTRspInfoStruct *error_info, bool is_last)
Definition: emt_quote_api.h:285
virtual void OnUnSubOrderBook(EMTSpecificTickerStruct *ticker, EMTRspInfoStruct *error_info, bool is_last)
Definition: emt_quote_api.h:224
virtual void OnUnSubscribeAllOrderBook(EMT_EXCHANGE_TYPE exchange_id, EMTRspInfoStruct *error_info)
Definition: emt_quote_api.h:206
virtual void OnUnSubscribeAllMarketData(EMT_EXCHANGE_TYPE exchange_id, EMTRspInfoStruct *error_info)
Definition: emt_quote_api.h:139
virtual void OnQueryMinHistoryInfo(EMTMinuteInfo *minute_info, EMTRspInfoStruct *error_info, bool is_last)
Definition: emt_quote_api.h:312
virtual void OnUnSubscribeAllIndexData(EMT_EXCHANGE_TYPE exchange_id, EMTRspInfoStruct *error_info)
Definition: emt_quote_api.h:105
virtual void OnUnSubIndexData(EMTSpecificTickerStruct *ticker, EMTRspInfoStruct *error_info, bool is_last)
Definition: emt_quote_api.h:123
virtual void OnSubscribeAllMinuteInfo(EMT_EXCHANGE_TYPE exchange_id, EMTRspInfoStruct *error_info)
Definition: emt_quote_api.h:232
virtual void OnSubscribeAllOrderBook(EMT_EXCHANGE_TYPE exchange_id, EMTRspInfoStruct *error_info)
Definition: emt_quote_api.h:198
virtual void OnSubscribeAllMarketData(EMT_EXCHANGE_TYPE exchange_id, EMTRspInfoStruct *error_info)
Definition: emt_quote_api.h:131
virtual void OnIndexData(EMTIndexDataStruct *index_data)
Definition: emt_quote_api.h:57
virtual void OnQueryTickersPriceInfo(EMTTickerPriceInfo *price_info, EMTRspInfoStruct *error_info, bool is_last)
Definition: emt_quote_api.h:321
virtual void OnOrderBook(EMTOrderBookStruct *order_book)
Definition: emt_quote_api.h:83
EMT_PROTOCOL_TYPE
EMT_PROTOCOL_TYPE是通讯传输协议方式
Definition: emt_api_data_type.h:73
EMT_TICKER_TYPE
EMT_TICKER_TYPE证券类型
Definition: emt_api_data_type.h:282
EMT_LOG_LEVEL
EMT_LOG_LEVEL是日志输出级别类型
Definition: emt_api_data_type.h:60
@ EMT_LOG_LEVEL_DEBUG
debug级别
Definition: emt_api_data_type.h:65
EMT_EXCHANGE_TYPE
EMT_EXCHANGE_TYPE是交易所类型,行情里使用
Definition: emt_api_data_type.h:83
@ EMT_EXCHANGE_UNKNOWN
不存在的交易所类型
Definition: emt_api_data_type.h:86
#define QUOTE_API_
Definition: emt_quote_api.h:11
定义行情业务数据结构
Definition: emt_quote_api.h:23
指数行情结构体
Definition: emt_quote_struct.h:40
快照行情结构体
Definition: emt_quote_struct.h:131
现货(股票、基金、债券)和期权分时快照
Definition: emt_quote_struct.h:408
订单簿
Definition: emt_quote_struct.h:379
股票行情全量静态信息
Definition: emt_quote_struct.h:321
股票行情静态信息
Definition: emt_quote_struct.h:297
响应信息
Definition: emt_quote_struct.h:31
指定的合约
Definition: emt_quote_struct.h:22
逐笔数据信息
Definition: emt_quote_struct.h:276
最新价
Definition: emt_quote_struct.h:429