EMT API  ver: 2.6.2
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"
23 namespace EMT {
24  namespace API {
28  class QuoteSpi
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 
268  virtual void OnQueryAllTickers(EMTQuoteStaticInfo* qsi, EMTRspInfoStruct* error_info, bool is_last) {};
269 
278  virtual void OnQueryAllTickersFullInfo(EMTQuoteFullInfo* qfi, EMTRspInfoStruct* error_info, bool is_last) {};
279 
288  virtual void OnQueryLatestIndexData(EMTIndexDataStruct* index_data, EMTRspInfoStruct* error_info, bool is_last) {};
289 
298  virtual void OnQueryLatestMarketData(EMTMarketDataStruct* market_data, EMTRspInfoStruct* error_info, bool is_last) {};
299 
308  virtual void OnQueryMinuteInfo(EMTMinuteInfo* minute_info, EMTRspInfoStruct* error_info, bool is_last) {};
309 
318  virtual void OnQueryMinHistoryInfo(EMTMinuteInfo* minute_info, EMTRspInfoStruct* error_info, bool is_last) {};
319 
320  /*
321  * 查询最新价
322  * @attention
323  * @param price_info 价格信息
324  * @param error_info
325  * @param is_last
326  * @return 该函数返回为void
327  */
328  virtual void OnQueryTickersPriceInfo(EMTTickerPriceInfo* price_info, EMTRspInfoStruct* error_info, bool is_last) {};
329 
330  private:
331 
332  };
333  }
334 }
335 
344 namespace EMT {
345  namespace API {
346 
350 #ifdef _WIN32
351  class QUOTE_API_ QuoteApi
352 #else
353  class QuoteApi
354 #endif // _WIN32
355  {
356 
357  public:
358  static QuoteApi* CreateQuoteApi(uint8_t client_id, const char* save_file_path, EMT_LOG_LEVEL log_level = EMT_LOG_LEVEL_DEBUG);
359 
364  virtual void Release() = 0;
365 
370  virtual const char* GetApiVersion() = 0;
371 
383  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;
384 
390  virtual int Logout() = 0;
391 
396  virtual void RegisterSpi(QuoteSpi* spi) = 0;
397 
398 
404  virtual void SetUDPBufferSize(uint32_t buff_size) = 0;
405 
411  virtual void SetUDPRecvThreadAffinity(int32_t cpu_no) = 0;
412 
418  virtual void SetUDPParseThreadAffinity(int32_t cpu_no) = 0;
424  virtual void SetUDPSeqLogOutPutFlag(bool flag = true) = 0;
425 
431  virtual void SetHeartBeatInterval(uint32_t interval = 5) = 0;
432 
440 
448 
457  virtual int SubscribeIndexData(char* tickers[], int count, EMT_EXCHANGE_TYPE exchange_id = EMT_EXCHANGE_UNKNOWN) = 0;
466  virtual int UnSubscribeIndexData(char* tickers[], int count, EMT_EXCHANGE_TYPE exchange_id = EMT_EXCHANGE_UNKNOWN) = 0;
467 
475 
483 
492  virtual int SubscribeMarketData(char* tickers[], int count, EMT_EXCHANGE_TYPE exchange_id = EMT_EXCHANGE_UNKNOWN) = 0;
493 
502  virtual int UnSubscribeMarketData(char* tickers[], int count, EMT_EXCHANGE_TYPE exchange_id = EMT_EXCHANGE_UNKNOWN) = 0;
503 
511 
519 
528  virtual int SubscribeTickByTick(char* tickers[], int count, EMT_EXCHANGE_TYPE exchange_id = EMT_EXCHANGE_UNKNOWN) = 0;
529 
538  virtual int UnSubscribeTickByTick(char* tickers[], int count, EMT_EXCHANGE_TYPE exchange_id = EMT_EXCHANGE_UNKNOWN) = 0;
539 
547 
555 
564  virtual int SubscribeOrderBook(char* tickers[], int count, EMT_EXCHANGE_TYPE exchange_id) = 0;
565 
574  virtual int UnSubscribeOrderBook(char* tickers[], int count, EMT_EXCHANGE_TYPE exchange_id) = 0;
575 
583 
591 
600  virtual int SubscribeMinuteInfo(char* tickers[], int count, EMT_EXCHANGE_TYPE exchange_id = EMT_EXCHANGE_UNKNOWN) = 0;
601 
610  virtual int UnSubscribeMinuteInfo(char* tickers[], int count, EMT_EXCHANGE_TYPE exchange_id = EMT_EXCHANGE_UNKNOWN) = 0;
611 
618 
625 
634  virtual int QueryLatestInfo(char* tickers[], int count, EMT_TICKER_TYPE ticker_type, EMT_EXCHANGE_TYPE exchange_id) = 0;
635 
644  virtual int QueryMinuteInfo(char* tickers[], int count, EMT_TICKER_TYPE ticker_type, EMT_EXCHANGE_TYPE exchange_id) = 0;
645 
655  virtual int QueryMinHistoryInfo(char* tickers[], int count,int datetime, EMT_TICKER_TYPE ticker_type, EMT_EXCHANGE_TYPE exchange_id) = 0;
656 
657 
658  /*
659  * 获取最新价
660  * @param tickers 合约ID数组,注意合约代码必须以'\0'结尾,不包含空格
661  * @param count 合约个数,为0表示查询交易所所有合约
662  * @param exchange_id 交易所代码,必须提供1-上海 2-深证
663  * @return 发送查询请求是否成功,"0"表示发送查询请求成功,非"0"表示发送查询请求不成功
664  */
665  virtual int QueryTickersPriceInfo(char* tickers[], int count, EMT_EXCHANGE_TYPE exchange_id) = 0;
666 
673 
674  protected:
675  ~QuoteApi() {};
676 
677  };
678  }
679 }
行情接口类
Definition: emt_quote_api.h:355
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
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
static QuoteApi * CreateQuoteApi(uint8_t client_id, const char *save_file_path, EMT_LOG_LEVEL log_level=EMT_LOG_LEVEL_DEBUG)
virtual const char * GetApiVersion()=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 EMTRspInfoStruct * GetApiLastError()=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:675
virtual int UnSubscribeMarketData(char *tickers[], int count, EMT_EXCHANGE_TYPE exchange_id=EMT_EXCHANGE_UNKNOWN)=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 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:278
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:268
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:308
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:298
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:288
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:318
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:328
virtual void OnOrderBook(EMTOrderBookStruct *order_book)
Definition: emt_quote_api.h:83
EMT_PROTOCOL_TYPE
EMT_PROTOCOL_TYPE是通讯传输协议方式
Definition: emt_api_data_type.h:74
EMT_TICKER_TYPE
EMT_TICKER_TYPE证券类型
Definition: emt_api_data_type.h:288
EMT_LOG_LEVEL
EMT_LOG_LEVEL是日志输出级别类型
Definition: emt_api_data_type.h:61
@ EMT_LOG_LEVEL_DEBUG
debug级别
Definition: emt_api_data_type.h:66
EMT_EXCHANGE_TYPE
EMT_EXCHANGE_TYPE是交易所类型,行情里使用
Definition: emt_api_data_type.h:85
@ EMT_EXCHANGE_UNKNOWN
不存在的交易所类型
Definition: emt_api_data_type.h:88
#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