| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202 |
- //+------------------------------------------------------------------+
- //| MetaTrader 5 API |
- //| Copyright 2000-2019, MetaQuotes Software Corp. |
- //| http://www.metaquotes.net |
- //+------------------------------------------------------------------+
- #pragma once
- #include "MT5APIConfigParam.h"
- //+------------------------------------------------------------------+
- //| Datafeed module description |
- //+------------------------------------------------------------------+
- class IMTConFeederModule
- {
- public:
- //--- necessary fields flags
- enum EnFeedersFieldFlags
- {
- FEED_FIELD_SERVER=1, // server field
- FEED_FIELD_LOGIN =2, // login field
- FEED_FIELD_PASS =4, // password field
- FEED_FIELD_PARAM =8, // parameters
- //--- enumeration borders
- FEED_FIELD_NONE =0,
- FEED_FIELD_ALL =FEED_FIELD_SERVER|FEED_FIELD_LOGIN|FEED_FIELD_PASS|FEED_FIELD_PARAM
- };
- //--- common methods
- virtual void Release(void)=0;
- virtual MTAPIRES Assign(const IMTConFeederModule* param)=0;
- virtual MTAPIRES Clear(void)=0;
- //--- default datafeed name
- virtual LPCWSTR Name(void) const=0;
- //--- vendor name
- virtual LPCWSTR Vendor(void) const=0;
- //--- datafeed description
- virtual LPCWSTR Description(void) const=0;
- //--- datafeed file name
- virtual LPCWSTR Module(void) const=0;
- //--- default feed server address
- virtual LPCWSTR FeedServer(void) const=0;
- //--- default feed server login
- virtual LPCWSTR FeedLogin(void) const=0;
- //--- default feed server password
- virtual LPCWSTR FeedPassword(void) const=0;
- //--- datafeed version
- virtual UINT Version(void) const=0;
- //--- datafeed available modes (IMTConFeeder::EnFeedersFlags)
- virtual UINT Modes(void) const=0;
- //--- changeable EnFeedersFieldFlags
- virtual UINT Fields(void) const=0;
- //--- default datafeed parameters
- virtual UINT ParameterTotal(void) const=0;
- virtual MTAPIRES ParameterNext(const UINT pos,IMTConParam* param) const=0;
- virtual MTAPIRES ParameterGet(LPCWSTR name,IMTConParam* param) const=0;
- };
- //+------------------------------------------------------------------+
- //| Symbols name and price translation config |
- //+------------------------------------------------------------------+
- class IMTConFeederTranslate
- {
- public:
- //--- common methods
- virtual void Release(void)=0;
- virtual MTAPIRES Assign(const IMTConFeederTranslate* param)=0;
- virtual MTAPIRES Clear(void)=0;
- //--- symbol name in datafeed
- virtual LPCWSTR Source(void) const=0;
- virtual MTAPIRES Source(LPCWSTR source)=0;
- //--- symbol name in MT5
- virtual LPCWSTR Symbol(void) const=0;
- virtual MTAPIRES Symbol(LPCWSTR symbol)=0;
- //--- bid markup in points
- virtual INT BidMarkup(void) const=0;
- virtual MTAPIRES BidMarkup(const INT markup)=0;
- //--- ask markup in points
- virtual INT AskMarkup(void) const=0;
- virtual MTAPIRES AskMarkup(const INT markup)=0;
- //--- digits
- virtual UINT Digits(void) const=0;
- };
- //+------------------------------------------------------------------+
- //| Datafeed config interface |
- //+------------------------------------------------------------------+
- class IMTConFeeder
- {
- public:
- //--- datafeed working flags
- enum EnFeedersFlags
- {
- FEED_FLAG_QUOTES =1, // feeder should send quotes
- FEED_FLAG_NEWS =2, // feeder should send news
- FEED_FLAG_REMOTE =8, // feeder works as remote service
- //--- flags borders
- FEED_FLAG_NONE =0,
- FEED_FLAG_ALL =FEED_FLAG_QUOTES|FEED_FLAG_NEWS|FEED_FLAG_REMOTE
- };
- //--- datafeed working modes
- enum EnFeedersMode
- {
- FEEDER_DISABLED =0,
- FEEDER_ENABLED =1,
- //--- enumeration borders
- FEEDER_FIRST =FEEDER_DISABLED,
- FEEDER_LAST =FEEDER_ENABLED
- };
- //--- common methods
- virtual void Release(void)=0;
- virtual MTAPIRES Assign(const IMTConFeeder* param)=0;
- virtual MTAPIRES Clear(void)=0;
- //--- datafeed name
- virtual LPCWSTR Name(void) const=0;
- virtual MTAPIRES Name(LPCWSTR name)=0;
- //--- datafeed module filename
- virtual LPCWSTR Module(void) const=0;
- virtual MTAPIRES Module(LPCWSTR name)=0;
- //--- feed server address
- virtual LPCWSTR FeedServer(void) const=0;
- virtual MTAPIRES FeedServer(LPCWSTR server)=0;
- //--- feed server login
- virtual LPCWSTR FeedLogin(void) const=0;
- virtual MTAPIRES FeedLogin(LPCWSTR login)=0;
- //--- feed server password
- virtual LPCWSTR FeedPassword(void) const=0;
- virtual MTAPIRES FeedPassword(LPCWSTR password)=0;
- //--- EnFeedersMode
- virtual UINT Mode(void) const=0;
- virtual MTAPIRES Mode(const UINT mode)=0;
- //--- EnFeedersFlags
- virtual UINT Flags(void) const=0;
- virtual MTAPIRES Flags(const UINT flags)=0;
- //--- comma separated news keywords
- virtual LPCWSTR Keywords(void) const=0;
- virtual MTAPIRES Keywords(LPCWSTR keywords)=0;
- //--- news category
- virtual LPCWSTR Categories(void) const=0;
- virtual MTAPIRES Categories(LPCWSTR categories)=0;
- //--- obsolete value
- virtual UINT ObsoleteValue(void) const=0;
- virtual MTAPIRES ObsoleteValue(const UINT value)=0;
- //--- datafeed reconnect timeout
- virtual UINT TimeoutReconnect(void) const=0;
- virtual MTAPIRES TimeoutReconnect(const UINT timeout)=0;
- //--- datafeed sleep timeout
- virtual UINT TimeoutSleep(void) const=0;
- virtual MTAPIRES TimeoutSleep(const UINT timeout)=0;
- //--- reconnect attempts before timeout
- virtual UINT TimeoutAttempts(void) const=0;
- virtual MTAPIRES TimeoutAttempts(const UINT attempts)=0;
- //--- datafeed additional parameters access
- virtual MTAPIRES ParameterAdd(IMTConParam* param)=0;
- virtual MTAPIRES ParameterUpdate(const UINT pos,const IMTConParam* param)=0;
- virtual MTAPIRES ParameterDelete(const UINT pos)=0;
- virtual MTAPIRES ParameterClear(void)=0;
- virtual MTAPIRES ParameterShift(const UINT pos,const int shift)=0;
- virtual UINT ParameterTotal(void) const=0;
- virtual MTAPIRES ParameterNext(const UINT pos,IMTConParam* param) const=0;
- virtual MTAPIRES ParameterGet(LPCWSTR name,IMTConParam* param) const=0;
- //--- list of symbols for translating quotes
- virtual MTAPIRES SymbolAdd(LPCWSTR path)=0;
- virtual MTAPIRES SymbolUpdate(const UINT pos,LPCWSTR path)=0;
- virtual MTAPIRES SymbolDelete(const UINT pos)=0;
- virtual MTAPIRES SymbolClear(void)=0;
- virtual MTAPIRES SymbolShift(const UINT pos,const int shift)=0;
- virtual UINT SymbolTotal(void) const=0;
- virtual LPCWSTR SymbolNext(const UINT pos) const=0;
- //--- list of symbols translations
- virtual MTAPIRES TranslateAdd(IMTConFeederTranslate* param)=0;
- virtual MTAPIRES TranslateUpdate(const UINT pos,const IMTConFeederTranslate* param)=0;
- virtual MTAPIRES TranslateDelete(const UINT pos)=0;
- virtual MTAPIRES TranslateClear(void)=0;
- virtual MTAPIRES TranslateShift(const UINT pos,const int shift)=0;
- virtual UINT TranslateTotal(void) const=0;
- virtual MTAPIRES TranslateNext(const UINT pos,IMTConFeederTranslate* param) const=0;
- virtual MTAPIRES TranslateGet(LPCWSTR symbol,IMTConFeederTranslate* param) const=0;
- //--- gateway server address
- virtual LPCWSTR GatewayServer(void) const=0;
- virtual MTAPIRES GatewayServer(LPCWSTR server)=0;
- //--- gateway server login
- virtual UINT64 GatewayLogin(void) const=0;
- virtual MTAPIRES GatewayLogin(UINT64 login)=0;
- //--- gateway server password
- virtual LPCWSTR GatewayPassword(void) const=0;
- virtual MTAPIRES GatewayPassword(LPCWSTR password)=0;
- //--- feeder state information
- virtual bool StateConnected(void) const=0;
- virtual UINT StateReceivedTicks(void) const=0;
- virtual UINT StateReceivedBooks(void) const=0;
- virtual UINT StateReceivedNews(void) const=0;
- virtual UINT StateTrafficIn(void) const=0;
- virtual UINT StateTrafficOut(void) const=0;
- };
- //+------------------------------------------------------------------+
- //| Datafeed config events notification interface |
- //+------------------------------------------------------------------+
- class IMTConFeederSink
- {
- public:
- virtual void OnFeederAdd(const IMTConFeeder* /*feeder*/) { }
- virtual void OnFeederUpdate(const IMTConFeeder* /*feeder*/) { }
- virtual void OnFeederDelete(const IMTConFeeder* /*feeder*/) { }
- virtual void OnFeederSync(void) { }
- };
- //+------------------------------------------------------------------+
|