| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980 |
- //+------------------------------------------------------------------+
- //| MetaTrader 5 API |
- //| Copyright 2000-2019, MetaQuotes Software Corp. |
- //| http://www.metaquotes.net |
- //+------------------------------------------------------------------+
- #pragma once
- #include "MT5APIConstants.h"
- #include "MT5APILogger.h"
- #include "MT5APITools.h"
- #include "Config\MT5APIConfigPlugin.h"
- #include "Config\MT5APIConfigCommon.h"
- #include "Config\MT5APIConfigTime.h"
- #include "Config\MT5APIConfigFirewall.h"
- #include "Config\MT5APIConfigSymbol.h"
- #include "Config\MT5APIConfigSpread.h"
- #include "Config\MT5APIConfigGroup.h"
- #include "Config\MT5APIConfigHoliday.h"
- #include "Config\MT5APIConfigFeeder.h"
- #include "Config\MT5APIConfigGateway.h"
- #include "Config\MT5APIConfigReport.h"
- #include "Config\MT5APIConfigManager.h"
- #include "Config\MT5APIConfigHistory.h"
- #include "Config\MT5APIConfigNetwork.h"
- #include "Config\MT5APIConfigRoute.h"
- #include "Config\MT5APIConfigEmail.h"
- #include "Config\MT5APIConfigMessenger.h"
- #include "Bases\MT5APIUser.h"
- #include "Bases\MT5APIAccount.h"
- #include "Bases\MT5APIBook.h"
- #include "Bases\MT5APIChart.h"
- #include "Bases\MT5APIDeal.h"
- #include "Bases\MT5APIOrder.h"
- #include "Bases\MT5APIPosition.h"
- #include "Bases\MT5APITick.h"
- #include "Bases\MT5APIMail.h"
- #include "Bases\MT5APINews.h"
- #include "Bases\MT5APIDaily.h"
- #include "Bases\MT5APIRequest.h"
- #include "Bases\MT5APIConfirm.h"
- #include "Bases\MT5APIByteStream.h"
- #include "Bases\MT5APICertificate.h"
- #include "Bases\MT5APIExecution.h"
- #include "Bases\MT5APIOnline.h"
- #include "Bases\MT5APIDataset.h"
- #include "Bases\MT5APIClient.h"
- #include "Bases\MT5APIDocument.h"
- #include "Bases\MT5APIComment.h"
- #include "Bases\MT5APIAttachment.h"
- //+------------------------------------------------------------------+
- //| Server API version |
- //+------------------------------------------------------------------+
- #define MTServerAPIVersion 2190
- #define MTServerAPIDate L"18 Oct 2019"
- //+------------------------------------------------------------------+
- //| Structures |
- //+------------------------------------------------------------------+
- //+------------------------------------------------------------------+
- //| Plugin parameter structure |
- //+------------------------------------------------------------------+
- #pragma pack(push,1)
- struct MTPluginParam
- {
- //--- parameter types
- enum EnParamType
- {
- TYPE_STRING =0, // string
- TYPE_INT =1, // integer
- TYPE_FLOAT =2, // floating
- TYPE_TIME =3, // time only
- TYPE_DATE =4, // date only
- TYPE_DATETIME =5, // date & time
- TYPE_GROUPS =6, // groups list
- TYPE_SYMBOLS =7, // symbols list
- //---
- TYPE_FIRST =TYPE_STRING,
- TYPE_LAST =TYPE_SYMBOLS
- };
- //---
- UINT type; // parameter type (EnParamType)
- wchar_t name[64]; // parameter name
- wchar_t value[256]; // parameter value
- UINT reserved[16]; // reserved
- };
- #pragma pack(pop)
- //+------------------------------------------------------------------+
- //| Plugin about structure |
- //+------------------------------------------------------------------+
- #pragma pack(push,1)
- struct MTPluginInfo
- {
- UINT version; // plugin version
- UINT version_api; // server API version
- wchar_t name[64]; // plugin Name
- wchar_t copyright[128]; // copyright
- wchar_t description[256]; // description
- MTPluginParam defaults[128]; // default parameters
- UINT defaults_total; // default parameters total
- UINT reserved[128]; // reserved
- };
- #pragma pack(pop)
- //+------------------------------------------------------------------+
- //| Server description structure |
- //+------------------------------------------------------------------+
- #pragma pack(push,1)
- struct MTServerInfo
- {
- wchar_t platform_name[64]; // platform name
- wchar_t platform_owner[128]; // platform owner
- UINT server_version; // server version
- UINT server_build; // server build
- UINT server_type; // server type
- UINT64 server_id; // server id
- UINT reserved[32]; // reserved
- };
- #pragma pack(pop)
- //+------------------------------------------------------------------+
- //| Custom commands notification interface |
- //+------------------------------------------------------------------+
- class IMTCustomSink
- {
- public:
- //--- manager API command
- virtual MTAPIRES HookManagerCommand(LPCWSTR /*ip*/,
- const IMTConManager* /*manager*/,
- LPCVOID /*indata*/,
- const UINT /*indata_len*/,
- LPVOID& /*outdata*/,
- UINT& /*outdata_len*/) { return(MT_RET_OK_NONE); }
- //--- manager API command
- virtual MTAPIRES HookManagerCommand(const UINT64 /*session*/,
- LPCWSTR /*ip*/,
- const IMTConManager* /*manager*/,
- IMTByteStream* /*indata*/,
- IMTByteStream* /*outdata*/) { return(MT_RET_OK_NONE); }
- //--- Web API command
- virtual MTAPIRES HookWebAPICommand(const UINT64 /*session*/,
- LPCWSTR /*ip*/,
- const IMTConManager* /*manager*/,
- LPCWSTR /*command*/,
- IMTByteStream* /*indata*/,
- IMTByteStream* /*outdata*/) { return(MT_RET_OK_NONE); }
- };
- //+------------------------------------------------------------------+
- //| Trades notification interface |
- //+------------------------------------------------------------------+
- class IMTTradeSink
- {
- public:
- //--- trade request event
- virtual void OnTradeRequestAdd(const IMTRequest* /*request*/,
- const IMTConGroup* /*group*/,
- const IMTConSymbol* /*symbol*/,
- const IMTPosition* /*position*/,
- const IMTOrder* /*order*/) { }
- //--- trade request process event
- virtual void OnTradeRequestUpdate(const IMTRequest* /*request*/) { }
- //--- trade request process event
- virtual void OnTradeRequestDelete(const IMTRequest* /*request*/) { }
- //--- trade request process event
- virtual void OnTradeRequestProcess(const IMTRequest* /*request*/,
- const IMTConfirm* /*confirm*/,
- const IMTConGroup* /*group*/,
- const IMTConSymbol* /*symbol*/,
- const IMTPosition* /*position*/,
- const IMTOrder* /*order*/,
- const IMTDeal* /*deal*/) { }
- //--- trade request add hook
- virtual MTAPIRES HookTradeRequestAdd(IMTRequest* /*request*/,
- const IMTConGroup* /*group*/,
- const IMTConSymbol* /*symbol*/,
- const IMTPosition* /*position*/,
- const IMTOrder* /*order*/,
- IMTOrder* /*order_new*/) { return(MT_RET_OK); }
- //--- trade request route hook
- virtual MTAPIRES HookTradeRequestRoute(IMTRequest* /*request*/,
- IMTConfirm* /*confirm*/,
- const IMTConGroup* /*group*/,
- const IMTConSymbol* /*symbol*/,
- const IMTPosition* /*position*/,
- const IMTOrder* /*order*/) { return(MT_RET_OK); }
- //--- trade request deal hook
- virtual MTAPIRES HookTradeRequestProcess(const IMTRequest* /*request*/,
- const IMTConfirm* /*confirm*/,
- const IMTConGroup* /*group*/,
- const IMTConSymbol* /*symbol*/,
- IMTPosition* /*position*/,
- IMTOrder* /*order*/,
- IMTDeal* /*deal*/) { return(MT_RET_OK); }
- //--- rollover calculation hook
- virtual MTAPIRES HookTradeRollover(const INT64 /*datetime*/,
- const IMTConGroup* /*group*/,
- const IMTConSymbol* /*symbol*/,
- const IMTPosition* /*position*/,
- const double /*original_value*/,
- double& /*new_value*/) { return(MT_RET_OK); }
- //--- interest calculation hook
- virtual MTAPIRES HookTradeInterest(const INT64 /*datetime*/,
- const IMTConGroup* /*group*/,
- const IMTAccount* /*account*/,
- const double /*original_value*/,
- double& /*new_value*/) { return(MT_RET_OK); }
- //--- interest charge hook
- virtual MTAPIRES HookTradeInterestCharge(const INT64 /*datetime*/,
- const IMTConGroup* /*group*/,
- const IMTUser* /*user*/,
- const double /*original_value*/,
- double& /*new_value*/) { return(MT_RET_OK); }
- //--- order commission calculation
- virtual MTAPIRES HookTradeCommissionOrder(const IMTConCommission* /*commission*/,
- const IMTConGroup* /*group*/,
- const IMTConSymbol* /*symbol*/,
- const IMTOrder* /*order*/,
- const double /*original_value*/,
- double& /*new_value*/) { return(MT_RET_OK); }
- //--- final commission calculation
- virtual MTAPIRES HookTradeCommissionCharge(const INT64 /*period_start*/,
- const INT64 /*period_end*/,
- const IMTConCommission* /*commission*/,
- const IMTConGroup* /*group*/,
- const IMTUser* /*user*/,
- const double /*original_value*/,
- double& /*new_value*/) { return(MT_RET_OK); }
- //--- order commission calculation
- virtual MTAPIRES HookTradeCommissionDeal(const IMTConCommission* /*commission*/,
- const IMTConGroup* /*group*/,
- const IMTConSymbol* /*symbol*/,
- const IMTDeal* /*deal*/,
- const double /*original_value*/,
- double& /*new_value*/) { return(MT_RET_OK); }
- //--- trade execution event
- virtual void OnTradeExecution(const IMTConGateway* /*gateway*/,
- const IMTExecution* /*execution*/,
- const IMTConGroup* /*group*/,
- const IMTConSymbol* /*symbol*/,
- const IMTPosition* /*position*/,
- const IMTOrder* /*order*/,
- const IMTDeal* /*deal*/) { }
- //--- trade execution hook
- virtual MTAPIRES HookTradeExecution(const IMTConGateway* /*gateway*/,
- const IMTExecution* /*execution*/,
- const IMTConGroup* /*group*/,
- const IMTConSymbol* /*symbol*/,
- IMTPosition* /*position*/,
- IMTOrder* /*order*/,
- IMTDeal* /*deal*/) { return(MT_RET_OK); }
- //--- trade request refused on pre-trade control event
- virtual void OnTradeRequestRefuse(const IMTRequest* /*request*/) { }
- //--- trade request process event
- virtual void OnTradeRequestProcessCloseBy(const IMTRequest* /*request*/,
- const IMTConfirm* /*confirm*/,
- const IMTConGroup* /*group*/,
- const IMTConSymbol* /*symbol*/,
- const IMTPosition* /*position*/,
- const IMTOrder* /*order*/,
- const IMTDeal* /*deal*/,
- const IMTDeal* /*deal_by*/) { }
- //--- trade request deal hook
- virtual MTAPIRES HookTradeRequestProcessCloseBy(const IMTRequest* /*request*/,
- const IMTConfirm* /*confirm*/,
- const IMTConGroup* /*group*/,
- const IMTConSymbol* /*symbol*/,
- IMTPosition* /*position*/,
- IMTOrder* /*order*/,
- IMTDeal* /*deal*/,
- IMTDeal* /*deal_by*/) { return(MT_RET_OK); }
- //--- interest charge hook
- virtual MTAPIRES HookTradeInterestChargeDeal(const INT64 /*datetime*/,
- const IMTConGroup* /*group*/,
- const IMTUser* /*user*/,
- IMTDeal* /*deal*/) { return(MT_RET_OK); }
- //--- trade request route hook
- virtual MTAPIRES HookTradeRequestRuleFilter(IMTRequest* /*request*/,
- IMTConRoute* /*rule*/,
- const IMTConGroup* /*group*/) { return(MT_RET_OK_NONE); }
- //--- trade request route hook
- virtual MTAPIRES HookTradeRequestRuleApply(IMTRequest* /*request*/,
- IMTConRoute* /*rule*/,
- const IMTConGroup* /*group*/) { return(MT_RET_OK_NONE); }
- //--- trade execution event for close by
- virtual void OnTradeExecutionCloseBy(const IMTExecution* /*execution*/,
- const IMTConGroup* /*group*/,
- const IMTConSymbol* /*symbol*/,
- const IMTPosition* /*position*/,
- const IMTOrder* /*order*/,
- const IMTDeal* /*deal*/,
- const IMTDeal* /*deal_by*/) { }
- //--- trade execution hook for close by
- virtual MTAPIRES HookTradeExecutionCloseBy(const IMTExecution* /*execution*/,
- const IMTConGroup* /*group*/,
- const IMTConSymbol* /*symbol*/,
- IMTPosition* /*position*/,
- IMTOrder* /*order*/,
- IMTDeal* /*deal*/,
- IMTDeal* /*deal_by*/) { return(MT_RET_OK); }
- };
- //+------------------------------------------------------------------+
- //| End of day notification interface |
- //+------------------------------------------------------------------+
- class IMTEndOfDaySink
- {
- public:
- //--- end of day events
- virtual void OnEODStart(const INT64 /*datetime*/,const INT64 /*prev_datetime*/) { }
- virtual void OnEODGroupStart(const INT64 /*datetime*/,const INT64 /*prev_datetime*/,const IMTConGroup* /*group*/) { }
- virtual void OnEODGroupCommissions(const INT64 /*datetime*/,const INT64 /*prev_datetime*/,const IMTConGroup* /*group*/){ }
- virtual void OnEODGroupInterest(const INT64 /*datetime*/,const INT64 /*prev_datetime*/,const IMTConGroup* /*group*/) { }
- virtual void OnEODGroupStatements(const INT64 /*datetime*/,const INT64 /*prev_datetime*/,const IMTConGroup* /*group*/) { }
- virtual void OnEODGroupRollovers(const INT64 /*datetime*/,const INT64 /*prev_datetime*/,const IMTConGroup* /*group*/) { }
- virtual void OnEODGroupFinish(const INT64 /*datetime*/,const INT64 /*prev_datetime*/,const IMTConGroup* /*group*/) { }
- virtual void OnEODFinish(const INT64 /*datetime*/,const INT64 /*prev_datetime*/) { }
- //--- end of month events
- virtual void OnEOMStart(const INT64 /*datetime*/,const INT64 /*prev_datetime*/) { }
- virtual void OnEOMGroupStart(const INT64 /*datetime*/,const INT64 /*prev_datetime*/,const IMTConGroup* /*group*/) { }
- virtual void OnEOMGroupCommissions(const INT64 /*datetime*/,const INT64 /*prev_datetime*/,const IMTConGroup* /*group*/){ }
- virtual void OnEOMGroupInterest(const INT64 /*datetime*/,const INT64 /*prev_datetime*/,const IMTConGroup* /*group*/) { }
- virtual void OnEOMGroupStatements(const INT64 /*datetime*/,const INT64 /*prev_datetime*/,const IMTConGroup* /*group*/) { }
- virtual void OnEOMGroupFinish(const INT64 /*datetime*/,const INT64 /*prev_datetime*/,const IMTConGroup* /*group*/) { }
- virtual void OnEOMFinish(const INT64 /*datetime*/,const INT64 /*prev_datetime*/) { }
- };
- //+------------------------------------------------------------------+
- //| Server events notification interface |
- //+------------------------------------------------------------------+
- class IMTServerSink
- {
- public:
- virtual void OnServerLog(const INT /*code*/,const UINT /*type*/,const INT64 /*datetime_msc*/,LPCWSTR /*source*/,LPCWSTR /*message*/){}
- };
- //+------------------------------------------------------------------+
- //| Server API interface |
- //+------------------------------------------------------------------+
- class IMTServerAPI
- {
- public:
- //--- server description
- virtual MTAPIRES About(MTServerInfo& info)=0;
- //--- license check
- virtual MTAPIRES LicenseCheck(LPCWSTR license_name)=0;
- //--- memory management
- virtual void* Allocate(const UINT bytes)=0;
- virtual void Free(void* ptr)=0;
- //--- server management functions
- virtual MTAPIRES ServerRestart(void)=0;
- virtual MTAPIRES ServerSubscribe(IMTServerSink* sink)=0;
- virtual MTAPIRES ServerUnsubscribe(IMTServerSink* sink)=0;
- virtual MTAPIRES ServerReserved3(void)=0;
- virtual MTAPIRES ServerReserved4(void)=0;
- //--- server log functions
- virtual MTAPIRES LoggerOut(const UINT code,LPCWSTR msg,...)=0;
- virtual MTAPIRES LoggerRequest(const UINT mode,const UINT type,const INT64 from,const INT64 to,LPCWSTR filter,MTLogRecord*& records,UINT& records_total)=0;
- virtual void LoggerFlush(void)=0;
- virtual MTAPIRES LoggerReserved1(void)=0;
- virtual MTAPIRES LoggerReserved2(void)=0;
- virtual MTAPIRES LoggerReserved3(void)=0;
- virtual MTAPIRES LoggerReserved4(void)=0;
- //--- plugins configs
- virtual IMTConPlugin* PluginCreate(void)=0;
- virtual IMTConPluginModule* PluginModuleCreate(void)=0;
- virtual IMTConParam* PluginParamCreate(void)=0;
- virtual MTAPIRES PluginSubscribe(IMTConPluginSink* sink)=0;
- virtual MTAPIRES PluginUnsubscribe(IMTConPluginSink* sink)=0;
- virtual MTAPIRES PluginCurrent(IMTConPlugin* plugin)=0;
- virtual MTAPIRES PluginAdd(IMTConPlugin* plugin)=0;
- virtual MTAPIRES PluginDelete(LPCWSTR name)=0;
- virtual MTAPIRES PluginDelete(const UINT pos)=0;
- virtual MTAPIRES PluginShift(const UINT pos,const int shift)=0;
- virtual UINT PluginTotal(void)=0;
- virtual MTAPIRES PluginNext(const UINT pos,IMTConPlugin* plugin)=0;
- virtual MTAPIRES PluginGet(LPCWSTR name,IMTConPlugin* plugin)=0;
- virtual UINT PluginModuleTotal(void)=0;
- virtual MTAPIRES PluginModuleNext(const UINT pos,IMTConPluginModule* module)=0;
- virtual MTAPIRES PluginModuleGet(LPCWSTR name,IMTConPluginModule* module)=0;
- virtual MTAPIRES PluginDelete(const UINT64 server,LPCWSTR name)=0;
- virtual MTAPIRES PluginGet(const UINT64 server,LPCWSTR name,IMTConPlugin* plugin)=0;
- virtual MTAPIRES PluginModuleGet(const UINT64 server,LPCWSTR name,IMTConPluginModule* module)=0;
- virtual MTAPIRES PluginReserved4(void)=0;
- //--- common config
- virtual IMTConCommon* CommonCreate(void)=0;
- virtual MTAPIRES CommonSubscribe(IMTConCommonSink* sink)=0;
- virtual MTAPIRES CommonUnsubscribe(IMTConCommonSink* sink)=0;
- virtual MTAPIRES CommonGet(IMTConCommon* common)=0;
- virtual MTAPIRES CommonSet(const IMTConCommon* common)=0;
- virtual MTAPIRES CommonReserved1(void)=0;
- virtual MTAPIRES CommonReserved2(void)=0;
- virtual MTAPIRES CommonReserved3(void)=0;
- virtual MTAPIRES CommonReserved4(void)=0;
- //--- platform server config
- virtual IMTConServer* NetServerCreate(void)=0;
- virtual IMTConServerRange* NetServerRangeCreate(void)=0;
- virtual MTAPIRES NetServerSubscribe(IMTConServerSink* sink)=0;
- virtual MTAPIRES NetServerUnsubscribe(IMTConServerSink* sink)=0;
- virtual MTAPIRES NetServerAdd(IMTConServer* config)=0;
- virtual MTAPIRES NetServerDelete(const UINT pos)=0;
- virtual MTAPIRES NetServerShift(const UINT pos,const int shift)=0;
- virtual UINT NetServerTotal(void)=0;
- virtual MTAPIRES NetServerNext(const UINT pos,IMTConServer* config)=0;
- virtual MTAPIRES NetServerGet(const UINT64 id,IMTConServer* config)=0;
- virtual IMTConAddressRange* NetServerAddressRangeCreate(void)=0;
- virtual IMTConClusterState* NetServerClusterStateCreate(void)=0;
- virtual MTAPIRES NetServerReserved3(void)=0;
- virtual MTAPIRES NetServerReserved4(void)=0;
- //--- time config
- virtual IMTConTime* TimeCreate(void)=0;
- virtual MTAPIRES TimeSubscribe(IMTConTimeSink* sink)=0;
- virtual MTAPIRES TimeUnsubscribe(IMTConTimeSink* sink)=0;
- virtual INT64 TimeCurrent(void)=0;
- virtual MTAPIRES TimeGet(IMTConTime* common)=0;
- virtual MTAPIRES TimeSet(const IMTConTime* time)=0;
- virtual INT64 TimeCurrentMsc(void)=0;
- virtual MTAPIRES TimeReserved2(void)=0;
- virtual MTAPIRES TimeReserved3(void)=0;
- virtual MTAPIRES TimeReserved4(void)=0;
- //--- holidays configuration
- virtual IMTConHoliday* HolidayCreate()=0;
- virtual MTAPIRES HolidaySubscribe(IMTConHolidaySink* sink)=0;
- virtual MTAPIRES HolidayUnsubscribe(IMTConHolidaySink* sink)=0;
- virtual MTAPIRES HolidayAdd(IMTConHoliday* config)=0;
- virtual MTAPIRES HolidayDelete(const UINT pos)=0;
- virtual MTAPIRES HolidayShift(const UINT pos,const int shift)=0;
- virtual UINT HolidayTotal(void)=0;
- virtual MTAPIRES HolidayNext(const UINT pos,IMTConHoliday* config)=0;
- virtual MTAPIRES HolidayReserved1(void)=0;
- virtual MTAPIRES HolidayReserved2(void)=0;
- virtual MTAPIRES HolidayReserved3(void)=0;
- virtual MTAPIRES HolidayReserved4(void)=0;
- //--- server firewall configuration
- virtual IMTConFirewall* FirewallCreate()=0;
- virtual MTAPIRES FirewallSubscribe(IMTConFirewallSink* sink)=0;
- virtual MTAPIRES FirewallUnsubscribe(IMTConFirewallSink* sink)=0;
- virtual MTAPIRES FirewallAdd(IMTConFirewall* config)=0;
- virtual MTAPIRES FirewallDelete(const UINT pos)=0;
- virtual MTAPIRES FirewallShift(const UINT pos,const int shift)=0;
- virtual UINT FirewallTotal(void)=0;
- virtual MTAPIRES FirewallNext(const UINT pos,IMTConFirewall* config)=0;
- virtual MTAPIRES FirewallReserved1(void)=0;
- virtual MTAPIRES FirewallReserved2(void)=0;
- virtual MTAPIRES FirewallReserved3(void)=0;
- virtual MTAPIRES FirewallReserved4(void)=0;
- //--- symbols configuration
- virtual IMTConSymbol* SymbolCreate(void)=0;
- virtual IMTConSymbolSession* SymbolSessionCreate(void)=0;
- virtual MTAPIRES SymbolSubscribe(IMTConSymbolSink* sink)=0;
- virtual MTAPIRES SymbolUnsubscribe(IMTConSymbolSink* sink)=0;
- virtual MTAPIRES SymbolAdd(IMTConSymbol* symbol)=0;
- virtual MTAPIRES SymbolDelete(LPCWSTR name)=0;
- virtual MTAPIRES SymbolDelete(const UINT pos)=0;
- virtual MTAPIRES SymbolShift(const UINT pos,const int shift)=0;
- virtual UINT SymbolTotal(void)=0;
- virtual MTAPIRES SymbolNext(const UINT pos,IMTConSymbol* symbol)=0;
- virtual MTAPIRES SymbolGet(LPCWSTR name,IMTConSymbol* symbol)=0;
- virtual MTAPIRES SymbolGet(LPCWSTR name,const IMTConGroup* group,IMTConSymbol* symbol)=0;
- virtual MTAPIRES SymbolExist(const IMTConSymbol* symbol,const IMTConGroup* group)=0;
- virtual MTAPIRES SymbolReserved1(void)=0;
- virtual MTAPIRES SymbolReserved2(void)=0;
- virtual MTAPIRES SymbolReserved3(void)=0;
- virtual MTAPIRES SymbolReserved4(void)=0;
- //--- clients group configuration
- virtual IMTConGroup* GroupCreate(void)=0;
- virtual IMTConGroupSymbol* GroupSymbolCreate(void)=0;
- virtual IMTConCommission* GroupCommissionCreate(void)=0;
- virtual IMTConCommTier* GroupTierCreate(void)=0;
- virtual MTAPIRES GroupSubscribe(IMTConGroupSink* sink)=0;
- virtual MTAPIRES GroupUnsubscribe(IMTConGroupSink* sink)=0;
- virtual MTAPIRES GroupAdd(IMTConGroup* group)=0;
- virtual MTAPIRES GroupDelete(LPCWSTR name)=0;
- virtual MTAPIRES GroupDelete(const UINT pos)=0;
- virtual MTAPIRES GroupShift(const UINT pos,const int shift)=0;
- virtual UINT GroupTotal(void)=0;
- virtual MTAPIRES GroupNext(const UINT pos,IMTConGroup* group)=0;
- virtual MTAPIRES GroupGet(LPCWSTR name,IMTConGroup* group)=0;
- virtual MTAPIRES GroupReserved1(void)=0;
- virtual MTAPIRES GroupReserved2(void)=0;
- virtual MTAPIRES GroupReserved3(void)=0;
- virtual MTAPIRES GroupReserved4(void)=0;
- //--- managers configuration
- virtual IMTConManager* ManagerCreate(void)=0;
- virtual IMTConManagerAccess* ManagerAccessCreate(void)=0;
- virtual MTAPIRES ManagerSubscribe(IMTConManagerSink* sink)=0;
- virtual MTAPIRES ManagerUnsubscribe(IMTConManagerSink* sink)=0;
- virtual MTAPIRES ManagerAdd(IMTConManager* manager)=0;
- virtual MTAPIRES ManagerDelete(const UINT pos)=0;
- virtual MTAPIRES ManagerShift(const UINT pos,const int shift)=0;
- virtual UINT ManagerTotal(void)=0;
- virtual MTAPIRES ManagerNext(const UINT pos,IMTConManager* manager)=0;
- virtual MTAPIRES ManagerGet(const UINT64 login,IMTConManager* manager)=0;
- virtual MTAPIRES ManagerReserved1(void)=0;
- virtual MTAPIRES ManagerReserved2(void)=0;
- virtual MTAPIRES ManagerReserved3(void)=0;
- virtual MTAPIRES ManagerReserved4(void)=0;
- //--- history synchronization configuration
- virtual IMTConHistorySync* HistorySyncCreate(void)=0;
- virtual MTAPIRES HistorySyncSubscribe(IMTConHistorySyncSink* sink)=0;
- virtual MTAPIRES HistorySyncUnsubscribe(IMTConHistorySyncSink* sink)=0;
- virtual MTAPIRES HistorySyncAdd(IMTConHistorySync* config)=0;
- virtual MTAPIRES HistorySyncDelete(const UINT pos)=0;
- virtual MTAPIRES HistorySyncShift(const UINT pos,const int shift)=0;
- virtual UINT HistorySyncTotal(void)=0;
- virtual MTAPIRES HistorySyncNext(const UINT pos,IMTConHistorySync* config)=0;
- virtual MTAPIRES HistorySyncReserved1(void)=0;
- virtual MTAPIRES HistorySyncReserved2(void)=0;
- virtual MTAPIRES HistorySyncReserved3(void)=0;
- virtual MTAPIRES HistorySyncReserved4(void)=0;
- //--- datafeeds configuration
- virtual IMTConFeeder* FeederCreate(void)=0;
- virtual IMTConFeederModule* FeederModuleCreate(void)=0;
- virtual IMTConParam* FeederParamCreate(void)=0;
- virtual IMTConFeederTranslate* FeederTranslateCreate(void)=0;
- virtual MTAPIRES FeederSubscribe(IMTConFeederSink* sink)=0;
- virtual MTAPIRES FeederUnsubscribe(IMTConFeederSink* sink)=0;
- virtual MTAPIRES FeederAdd(IMTConFeeder* feeder)=0;
- virtual MTAPIRES FeederDelete(LPCWSTR name)=0;
- virtual MTAPIRES FeederDelete(const UINT pos)=0;
- virtual MTAPIRES FeederShift(const UINT pos,const int shift)=0;
- virtual UINT FeederTotal(void)=0;
- virtual MTAPIRES FeederNext(const UINT pos,IMTConFeeder* feeder)=0;
- virtual MTAPIRES FeederGet(LPCWSTR name,IMTConFeeder* feeder)=0;
- virtual UINT FeederModuleTotal(void)=0;
- virtual MTAPIRES FeederModuleNext(const UINT pos,IMTConFeederModule* module)=0;
- virtual MTAPIRES FeederModuleGet(LPCWSTR name,IMTConFeederModule* module)=0;
- virtual MTAPIRES FeederReserved1(void)=0;
- virtual MTAPIRES FeederReserved2(void)=0;
- virtual MTAPIRES FeederReserved3(void)=0;
- virtual MTAPIRES FeederReserved4(void)=0;
- //--- gateways configuration
- virtual IMTConGateway* GatewayCreate(void)=0;
- virtual IMTConGatewayModule* GatewayModuleCreate(void)=0;
- virtual IMTConParam* GatewayParamCreate(void)=0;
- virtual IMTConGatewayTranslate* GatewayTranslateCreate(void)=0;
- virtual MTAPIRES GatewaySubscribe(IMTConGatewaySink* sink)=0;
- virtual MTAPIRES GatewayUnsubscribe(IMTConGatewaySink* sink)=0;
- virtual MTAPIRES GatewayAdd(IMTConGateway* gateway)=0;
- virtual MTAPIRES GatewayDelete(LPCWSTR name)=0;
- virtual MTAPIRES GatewayDelete(const UINT pos)=0;
- virtual MTAPIRES GatewayShift(const UINT pos,const int shift)=0;
- virtual UINT GatewayTotal(void)=0;
- virtual MTAPIRES GatewayNext(const UINT pos,IMTConGateway* gateway)=0;
- virtual MTAPIRES GatewayGet(LPCWSTR name,IMTConGateway* gateway)=0;
- virtual UINT GatewayModuleTotal(void)=0;
- virtual MTAPIRES GatewayModuleNext(const UINT pos,IMTConGatewayModule* module)=0;
- virtual MTAPIRES GatewayModuleGet(LPCWSTR name,IMTConGatewayModule* module)=0;
- virtual MTAPIRES GatewayReserved1(void)=0;
- virtual MTAPIRES GatewayReserved2(void)=0;
- virtual MTAPIRES GatewayReserved3(void)=0;
- virtual MTAPIRES GatewayReserved4(void)=0;
- //--- report configuration
- virtual IMTConReport* ReportCreate(void)=0;
- virtual IMTConReportModule* ReportModuleCreate(void)=0;
- virtual IMTConParam* ReportParamCreate(void)=0;
- virtual MTAPIRES ReportSubscribe(IMTConReportSink* sink)=0;
- virtual MTAPIRES ReportUnsubscribe(IMTConReportSink* sink)=0;
- virtual MTAPIRES ReportAdd(IMTConReport* report)=0;
- virtual MTAPIRES ReportDelete(LPCWSTR name)=0;
- virtual MTAPIRES ReportDelete(const UINT pos)=0;
- virtual MTAPIRES ReportShift(const UINT pos,const int shift)=0;
- virtual UINT ReportTotal(void)=0;
- virtual MTAPIRES ReportNext(const UINT pos,IMTConReport* report)=0;
- virtual MTAPIRES ReportGet(LPCWSTR name,IMTConReport* report)=0;
- virtual UINT ReportModuleTotal(void)=0;
- virtual MTAPIRES ReportModuleNext(const UINT pos,IMTConReportModule* module)=0;
- virtual MTAPIRES ReportModuleGet(LPCWSTR name,IMTConReportModule* module)=0;
- virtual MTAPIRES ReportDelete(const UINT64 server,LPCWSTR name)=0;
- virtual MTAPIRES ReportGet(const UINT64 server,LPCWSTR name,IMTConReport* report)=0;
- virtual MTAPIRES ReportModuleGet(const UINT64 server,LPCWSTR name,IMTConReportModule* module)=0;
- virtual MTAPIRES ReportReserved4(void)=0;
- //--- routing configuration
- virtual IMTConRoute* RouteCreate(void)=0;
- virtual IMTConCondition* RouteConditionCreate(void)=0;
- virtual IMTConRouteDealer* RouteDealerCreate(void)=0;
- virtual MTAPIRES RouteSubscribe(IMTConRouteSink* sink)=0;
- virtual MTAPIRES RouteUnsubscribe(IMTConRouteSink* sink)=0;
- virtual MTAPIRES RouteAdd(IMTConRoute* route)=0;
- virtual MTAPIRES RouteDelete(LPCWSTR name)=0;
- virtual MTAPIRES RouteDelete(const UINT pos)=0;
- virtual MTAPIRES RouteShift(const UINT pos,const int shift)=0;
- virtual UINT RouteTotal(void)=0;
- virtual MTAPIRES RouteNext(const UINT pos,IMTConRoute* route)=0;
- virtual MTAPIRES RouteGet(LPCWSTR name,IMTConRoute* route)=0;
- virtual MTAPIRES RouteReserved1(void)=0;
- virtual MTAPIRES RouteReserved2(void)=0;
- virtual MTAPIRES RouteReserved3(void)=0;
- virtual MTAPIRES RouteReserved4(void)=0;
- //--- clients database
- virtual IMTUser* UserCreate(void)=0;
- virtual IMTAccount* UserCreateAccount(void)=0;
- virtual MTAPIRES UserSubscribe(IMTUserSink* sink)=0;
- virtual MTAPIRES UserUnsubscribe(IMTUserSink* sink)=0;
- virtual MTAPIRES UserAdd(IMTUser* user,LPCWSTR master_pass,LPCWSTR investor_pass)=0;
- virtual MTAPIRES UserDelete(const UINT64 login)=0;
- virtual MTAPIRES UserUpdate(IMTUser* user)=0;
- virtual UINT UserTotal(void)=0;
- virtual MTAPIRES UserGet(const UINT64 login,IMTUser* user)=0;
- virtual MTAPIRES UserGroup(const UINT64 login,MTAPISTR& group)=0;
- virtual MTAPIRES UserLogins(LPCWSTR group,UINT64*& logins,UINT& logins_total)=0;
- virtual MTAPIRES UserPasswordCheck(const UINT type,const UINT64 login,LPCWSTR password)=0;
- virtual MTAPIRES UserPasswordChange(const UINT type,const UINT64 login,LPCWSTR password)=0;
- virtual MTAPIRES UserCertDelete(const UINT64 login)=0;
- virtual MTAPIRES UserCertConfirm(const UINT64 login)=0;
- virtual MTAPIRES UserDepositChangeRaw(const UINT64 login,const double value,const UINT type,LPCWSTR comment,UINT64& deal_id)=0;
- virtual MTAPIRES UserDepositChange(const UINT64 login,const double value,const UINT action,LPCWSTR comment,UINT64& deal_id)=0;
- virtual MTAPIRES UserAccountGet(const UINT64 login,IMTAccount* account)=0;
- virtual MTAPIRES UserArchive(const UINT64 login)=0;
- virtual MTAPIRES UserArchiveGet(const UINT64 login,IMTUser* user)=0;
- virtual MTAPIRES UserRestore(IMTUser* user)=0;
- virtual MTAPIRES UserArchiveLogins(LPCWSTR group,UINT64*& logins,UINT& logins_total)=0;
- //--- deals database
- virtual IMTDeal* DealCreate(void)=0;
- virtual IMTDealArray* DealCreateArray(void)=0;
- virtual MTAPIRES DealSubscribe(IMTDealSink* sink)=0;
- virtual MTAPIRES DealUnsubscribe(IMTDealSink* sink)=0;
- virtual MTAPIRES DealDelete(const UINT64 ticket)=0;
- virtual MTAPIRES DealUpdate(IMTDeal* deal)=0;
- virtual MTAPIRES DealGet(const UINT64 ticket,IMTDeal* deal)=0;
- virtual MTAPIRES DealGet(const INT64 from,const INT64 to,const UINT64 login,IMTDealArray* deals)=0;
- virtual MTAPIRES DealAdd(IMTDeal* deal)=0;
- virtual MTAPIRES DealPerform(IMTDeal* deal)=0;
- virtual MTAPIRES DealPerformCloseBy(IMTDeal* deal,IMTDeal* dealby)=0;
- virtual MTAPIRES DealDeleteBatch(const UINT64* tickets,const UINT tickets_total,MTAPIRES* results)=0;
- //--- trade positions database
- virtual IMTPosition* PositionCreate(void)=0;
- virtual IMTPositionArray* PositionCreateArray(void)=0;
- virtual MTAPIRES PositionSubscribe(IMTPositionSink* sink)=0;
- virtual MTAPIRES PositionUnsubscribe(IMTPositionSink* sink)=0;
- virtual MTAPIRES PositionDelete(const UINT64 login,LPCWSTR symbol)=0;
- virtual MTAPIRES PositionUpdate(IMTPosition* position)=0;
- virtual MTAPIRES PositionGet(const UINT64 login,LPCWSTR symbol,IMTPosition* position)=0;
- virtual MTAPIRES PositionGet(const UINT64 login,IMTPositionArray* position)=0;
- virtual MTAPIRES PositionDeleteByTicket(const UINT64 ticket)=0;
- virtual MTAPIRES PositionGetByTicket(const UINT64 ticket,IMTPosition* position)=0;
- virtual MTAPIRES PositionCheck(const UINT64 login,IMTPositionArray* current,IMTPositionArray* invalid,IMTPositionArray* missed,IMTPositionArray* nonexist)=0;
- virtual MTAPIRES PositionFix(const UINT64 login,IMTPositionArray* current)=0;
- //--- open orders database
- virtual IMTOrder* OrderCreate(void)=0;
- virtual IMTOrderArray* OrderCreateArray(void)=0;
- virtual MTAPIRES OrderSubscribe(IMTOrderSink* sink)=0;
- virtual MTAPIRES OrderUnsubscribe(IMTOrderSink* sink)=0;
- virtual MTAPIRES OrderDelete(const UINT64 ticket)=0;
- virtual MTAPIRES OrderUpdate(IMTOrder* order)=0;
- virtual MTAPIRES OrderGet(const UINT64 ticket,IMTOrder* order)=0;
- virtual MTAPIRES OrderGet(const UINT64 login,IMTOrderArray* orders)=0;
- virtual MTAPIRES OrderAdd(IMTOrder* order)=0;
- virtual MTAPIRES OrderDeleteBatch(const UINT64* tickets,const UINT tickets_total,MTAPIRES* results)=0;
- virtual MTAPIRES OrderUpdateBatch(IMTOrderArray* orders,MTAPIRES* results)=0;
- virtual MTAPIRES OrderUpdateBatchArray(IMTOrder** orders,const UINT orders_total,MTAPIRES* results)=0;
- //--- orders history database
- virtual MTAPIRES HistorySubscribe(IMTHistorySink* sink)=0;
- virtual MTAPIRES HistoryUnsubscribe(IMTHistorySink* sink)=0;
- virtual MTAPIRES HistoryDelete(const UINT64 ticket)=0;
- virtual MTAPIRES HistoryUpdate(IMTOrder* order)=0;
- virtual MTAPIRES HistoryGet(const UINT64 ticket,IMTOrder* order)=0;
- virtual MTAPIRES HistoryGet(const INT64 from,const INT64 to,const UINT64 login,IMTOrderArray* orders)=0;
- virtual MTAPIRES HistoryReopen(const UINT64 ticket)=0;
- virtual MTAPIRES HistoryAdd(IMTOrder* order)=0;
- virtual MTAPIRES HistoryDeleteBatch(const UINT64* tickets,const UINT tickets_total,MTAPIRES* results)=0;
- virtual MTAPIRES HistoryUpdateBatch(IMTOrderArray* orders,MTAPIRES* results)=0;
- //--- daily reports database
- virtual IMTDaily* DailyCreate(void)=0;
- virtual IMTDailyArray* DailyCreateArray(void)=0;
- virtual MTAPIRES DailySubscribe(IMTDailySink* sink)=0;
- virtual MTAPIRES DailyUnsubscribe(IMTDailySink* sink)=0;
- virtual MTAPIRES DailyGet(const INT64 from,const INT64 to,const UINT64 login,IMTDailyArray* daily)=0;
- virtual MTAPIRES DailyGetLight(const INT64 from,const INT64 to,const UINT64 login,IMTDailyArray* daily)=0;
- virtual MTAPIRES DailySelectByGroup(LPCWSTR group,INT64 from,INT64 to,const IMTDatasetRequest *request,IMTDataset *dataset)=0;
- virtual MTAPIRES DailySelectByLogins(const UINT64 *logins,UINT logins_total,INT64 from,INT64 to,const IMTDatasetRequest *request,IMTDataset *dataset)=0;
- virtual MTAPIRES DailyReserved4(void)=0;
- //--- ticks data
- virtual MTAPIRES TickSubscribe(IMTTickSink* sink)=0;
- virtual MTAPIRES TickUnsubscribe(IMTTickSink* sink)=0;
- virtual MTAPIRES TickAdd(MTTick& tick)=0;
- virtual MTAPIRES TickAddStat(MTTick& tick,MTTickStat& stat)=0;
- virtual MTAPIRES TickLast(LPCWSTR symbol,MTTickShort& tick)=0;
- virtual MTAPIRES TickLast(const IMTConSymbol* symbol,MTTickShort& tick)=0;
- virtual MTAPIRES TickStat(LPCWSTR symbol,MTTickStat& stat)=0;
- virtual MTAPIRES TickGet(LPCWSTR symbol,const INT64 from,const INT64 to,MTTickShort*& ticks,UINT& ticks_total)=0;
- virtual MTAPIRES TickGet(const IMTConSymbol* symbol,const INT64 from,const INT64 to,MTTickShort*& ticks,UINT& ticks_total)=0;
- virtual MTAPIRES TickHistoryGetRaw(LPCWSTR symbol,const INT64 from,const INT64 to,MTTickShort*& ticks,UINT& ticks_total)=0;
- virtual MTAPIRES TickHistoryGet(LPCWSTR symbol,const INT64 from,const INT64 to,MTTickShort*& ticks,UINT& ticks_total)=0;
- virtual MTAPIRES TickReserved2(void)=0;
- virtual MTAPIRES TickReserved3(void)=0;
- virtual MTAPIRES TickReserved4(void)=0;
- //--- internal mail
- virtual IMTMail* MailCreate(void)=0;
- virtual MTAPIRES MailSubscribe(IMTMailSink* sink)=0;
- virtual MTAPIRES MailUnsubscribe(IMTMailSink* sink)=0;
- virtual MTAPIRES MailSend(IMTMail* mail)=0;
- virtual MTAPIRES MailReserved1(void)=0;
- virtual MTAPIRES MailReserved2(void)=0;
- virtual MTAPIRES MailReserved3(void)=0;
- virtual MTAPIRES MailReserved4(void)=0;
- //--- internal news
- virtual IMTNews* NewsCreate(void)=0;
- virtual MTAPIRES NewsSubscribe(IMTNewsSink* sink)=0;
- virtual MTAPIRES NewsUnsubscribe(IMTNewsSink* sink)=0;
- virtual MTAPIRES NewsSend(IMTNews* news)=0;
- virtual MTAPIRES NewsReserved1(void)=0;
- virtual MTAPIRES NewsReserved2(void)=0;
- virtual MTAPIRES NewsReserved3(void)=0;
- virtual MTAPIRES NewsReserved4(void)=0;
- //--- custom commands processing
- virtual MTAPIRES CustomSubscribe(IMTCustomSink* sink)=0;
- virtual MTAPIRES CustomUnsubscribe(IMTCustomSink* sink)=0;
- virtual IMTByteStream* CustomCreateStream(void)=0;
- virtual MTAPIRES CustomReserved2(void)=0;
- virtual MTAPIRES CustomReserved3(void)=0;
- virtual MTAPIRES CustomReserved4(void)=0;
- //--- trade methods
- virtual IMTRequest* TradeRequestCreate(void)=0;
- virtual MTAPIRES TradeSubscribe(IMTTradeSink* sink)=0;
- virtual MTAPIRES TradeUnsubscribe(IMTTradeSink* sink)=0;
- virtual MTAPIRES TradeRequest(IMTRequest* request)=0;
- virtual MTAPIRES TradeProfit(LPCWSTR group,LPCWSTR symbol,const UINT type,const UINT64 volume,const double price_open,const double price_close,double& profit,double& profit_rate)=0;
- virtual MTAPIRES TradeRateBuy(LPCWSTR base,LPCWSTR currency,double& rate,LPCWSTR group=NULL,LPCWSTR symbol=NULL,const double price=0)=0;
- virtual MTAPIRES TradeRateSell(LPCWSTR base,LPCWSTR currency,double& rate,LPCWSTR group=NULL,LPCWSTR symbol=NULL,const double price=0)=0;
- virtual MTAPIRES TradeMarginCheck(const UINT64 login,LPCWSTR symbol,const UINT type,const UINT64 volume,const double price,IMTAccount* account_new=NULL,IMTAccount* account_current=NULL)=0;
- virtual MTAPIRES TradeMarginCheck(const IMTOrder* order,IMTAccount* account_new=NULL,IMTAccount* account_current=NULL)=0;
- virtual MTAPIRES TradeBalanceCheckObsolete(const UINT64 login,const UINT fixflag,double& balance_user,double& balance_history)=0;
- virtual MTAPIRES TradeSubscribeEOD(IMTEndOfDaySink* sink)=0;
- virtual MTAPIRES TradeUnsubscribeEOD(IMTEndOfDaySink* sink)=0;
- virtual MTAPIRES TradeBalanceCheck(const UINT64 login,const UINT fixflag,double& balance_user,double& balance_history,double& credit_user,double& credit_history)=0;
- virtual MTAPIRES TradeAccountSet(const IMTUser *user,const IMTAccount *account,const IMTOrderArray *orders,const IMTPositionArray *positions)=0;
- virtual IMTConfirm* TradeConfirmCreate(void)=0;
- virtual IMTExecution* TradeExecutionCreate(void)=0;
- virtual IMTRequestArray* TradeRequestCreateArray(void)=0;
- virtual MTAPIRES TradeProfitExt(LPCWSTR group,LPCWSTR symbol,const UINT type,const UINT64 volume,const double price_open,const double price_close,double& profit,double& profit_rate)=0;
- //--- books access
- virtual MTAPIRES BookSubscribe(IMTBookSink* sink)=0;
- virtual MTAPIRES BookUnsubscribe(IMTBookSink* sink)=0;
- virtual MTAPIRES BookGet(LPCWSTR symbol,MTBook& book)=0;
- virtual MTAPIRES BookReserved1(void)=0;
- virtual MTAPIRES BookReserved2(void)=0;
- virtual MTAPIRES BookReserved3(void)=0;
- virtual MTAPIRES BookReserved4(void)=0;
- //--- chart methods
- virtual MTAPIRES ChartGet(LPCWSTR symbol,const INT64 from,const INT64 to,MTChartBar*& bars,UINT& bars_total)=0;
- virtual MTAPIRES ChartDelete(LPCWSTR symbol,const INT64* bars_dates,const UINT bars_dates_total)=0;
- virtual MTAPIRES ChartUpdate(LPCWSTR symbol,const MTChartBar* bars,const UINT bars_total)=0;
- virtual MTAPIRES ChartSplit(LPCWSTR symbol,const UINT new_shares,const UINT old_shares,const UINT rounding_rule,const INT64 datetime_from,const INT64 datetime_to)=0;
- virtual MTAPIRES ChartReserved2(void)=0;
- virtual MTAPIRES ChartReserved3(void)=0;
- virtual MTAPIRES ChartReserved4(void)=0;
- //--- clients database
- virtual IMTCertificate *UserCertCreate(void)=0;
- virtual MTAPIRES UserCertUpdate(const UINT64 login,const IMTCertificate *certificate)=0;
- virtual MTAPIRES UserCertGet(const UINT64 login,IMTCertificate *certificate)=0;
- virtual MTAPIRES UserCertReserved1(void)=0;
- virtual MTAPIRES UserCertReserved2(void)=0;
- virtual MTAPIRES UserCertReserved3(void)=0;
- virtual MTAPIRES UserCertReserved4(void)=0;
- //--- spreads configuration
- virtual IMTConSpread* SpreadCreate(void)=0;
- virtual IMTConSpreadLeg* SpreadLegCreate(void)=0;
- virtual MTAPIRES SpreadSubscribe(IMTConSpreadSink* sink)=0;
- virtual MTAPIRES SpreadUnsubscribe(IMTConSpreadSink* sink)=0;
- virtual MTAPIRES SpreadAdd(IMTConSpread* spread)=0;
- virtual MTAPIRES SpreadDelete(const UINT pos)=0;
- virtual MTAPIRES SpreadShift(const UINT pos,const int shift)=0;
- virtual UINT SpreadTotal(void)=0;
- virtual MTAPIRES SpreadNext(const UINT pos,IMTConSpread* spread)=0;
- virtual MTAPIRES SpreadGet(const UINT id,IMTConSpread* spread)=0;
- virtual MTAPIRES SpreadReserved1(void)=0;
- virtual MTAPIRES SpreadReserved2(void)=0;
- virtual MTAPIRES SpreadReserved3(void)=0;
- virtual MTAPIRES SpreadReserved4(void)=0;
- //--- online connection data
- virtual IMTOnline* OnlineCreate(void)=0;
- virtual IMTOnlineArray* OnlineCreateArray(void)=0;
- virtual UINT OnlineTotal(void)=0;
- virtual MTAPIRES OnlineNext(const UINT pos,IMTOnline* online)=0;
- virtual MTAPIRES OnlineGet(const UINT64 login,IMTOnlineArray* online)=0;
- virtual MTAPIRES OnlineReserved1(void)=0;
- virtual MTAPIRES OnlineReserved2(void)=0;
- virtual MTAPIRES OnlineReserved3(void)=0;
- virtual MTAPIRES OnlineReserved4(void)=0;
- //--- notifications
- virtual MTAPIRES NotificationsSend(LPCWSTR metaquotes_ids,LPCWSTR message)=0;
- virtual MTAPIRES NotificationsSend(const UINT64* logins,const UINT logins_total,LPCWSTR message)=0;
- virtual MTAPIRES NotificationsReserved1(void)=0;
- virtual MTAPIRES NotificationsReserved2(void)=0;
- virtual MTAPIRES NotificationsReserved3(void)=0;
- virtual MTAPIRES NotificationsReserved4(void)=0;
- //--- deals
- virtual MTAPIRES DealUpdateBatch(IMTDealArray* deals,MTAPIRES* results)=0;
- virtual MTAPIRES DealUpdateBatchArray(IMTDeal** deals,const UINT deals_total,MTAPIRES* results)=0;
- virtual MTAPIRES DealAddBatch(IMTDealArray* deals,MTAPIRES* results)=0;
- virtual MTAPIRES DealAddBatchArray(IMTDeal** deals,const UINT deals_total,MTAPIRES* results)=0;
- virtual MTAPIRES DealPerformBatch(IMTDealArray* deals,MTAPIRES* results)=0;
- virtual MTAPIRES DealPerformBatchArray(IMTDeal** deals,const UINT deals_total,MTAPIRES* results)=0;
- virtual MTAPIRES DealSelectByGroup(LPCWSTR group,INT64 from,INT64 to,const IMTDatasetRequest *request,IMTDataset *dataset)=0;
- virtual MTAPIRES DealSelectByLogins(const UINT64 *logins,UINT logins_total,INT64 from,INT64 to,const IMTDatasetRequest *request,IMTDataset *dataset)=0;
- virtual MTAPIRES DealGetByGroup(LPCWSTR group,INT64 from,INT64 to,IMTDealArray *deals)=0;
- virtual MTAPIRES DealGetByLogins(const UINT64 *logins,UINT logins_total,INT64 from,INT64 to,IMTDealArray *deals)=0;
- //--- orders
- virtual MTAPIRES OrderAddBatch(IMTOrderArray* orders,MTAPIRES* results)=0;
- virtual MTAPIRES OrderAddBatchArray(IMTOrder** orders,const UINT orders_total,MTAPIRES* results)=0;
- virtual MTAPIRES OrderSelectByGroup(LPCWSTR group,const IMTDatasetRequest *request,IMTDataset *dataset)=0;
- virtual MTAPIRES OrderSelectByLogins(const UINT64 *logins,UINT logins_total,const IMTDatasetRequest *request,IMTDataset *dataset)=0;
- virtual MTAPIRES OrderGetByGroup(LPCWSTR group,IMTOrderArray *orders)=0;
- virtual MTAPIRES OrderGetByLogins(const UINT64 *logins,UINT logins_total,IMTOrderArray *orders)=0;
- //--- history
- virtual MTAPIRES HistoryUpdateBatchArray(IMTOrder** orders,const UINT orders_total,MTAPIRES* results)=0;
- virtual MTAPIRES HistoryAddBatch(IMTOrderArray* orders,MTAPIRES* results)=0;
- virtual MTAPIRES HistoryAddBatchArray(IMTOrder** orders,const UINT orders_total,MTAPIRES* results)=0;
- virtual MTAPIRES HistorySelectByGroup(LPCWSTR group,INT64 from,INT64 to,const IMTDatasetRequest *request,IMTDataset *dataset)=0;
- virtual MTAPIRES HistorySelectByLogins(const UINT64 *logins,UINT logins_total,INT64 from,INT64 to,const IMTDatasetRequest *request,IMTDataset *dataset)=0;
- virtual MTAPIRES HistoryGetByGroup(LPCWSTR group,INT64 from,INT64 to,IMTOrderArray *orders)=0;
- virtual MTAPIRES HistoryGetByLogins(const UINT64 *logins,UINT logins_total,INT64 from,INT64 to,IMTOrderArray *orders)=0;
- //--- dealing
- virtual MTAPIRES DealerStart(const UINT64 dealer,IMTRequestSink* sink)=0;
- virtual MTAPIRES DealerStop(const UINT64 dealer,IMTRequestSink* sink)=0;
- virtual MTAPIRES DealerGet(const UINT64 dealer,IMTRequest* request)=0;
- virtual MTAPIRES DealerLock(const UINT64 dealer,const UINT id,IMTRequest* request)=0;
- virtual MTAPIRES DealerAnswer(const UINT64 dealer,IMTConfirm* confirm)=0;
- virtual UINT DealerRequestTotal(const UINT64 dealer)=0;
- virtual MTAPIRES DealerRequestNext(const UINT64 dealer,const UINT pos,IMTRequest* request)=0;
- virtual MTAPIRES DealerRequestGet(const UINT64 dealer,const UINT id,IMTRequest* request)=0;
- virtual MTAPIRES DealerRequestGetAll(const UINT64 dealer,IMTRequestArray* requests)=0;
- virtual MTAPIRES DealerReserved1(void)=0;
- virtual MTAPIRES DealerReserved2(void)=0;
- virtual MTAPIRES DealerReserved3(void)=0;
- virtual MTAPIRES DealerReserved4(void)=0;
- //--- trade methods
- virtual MTAPIRES TradeMarginCheckExt(const UINT64 login,LPCWSTR symbol,const UINT type,const UINT64 volume,const double price,IMTAccount* account_new=NULL,IMTAccount* account_current=NULL)=0;
- virtual MTAPIRES TradeReserved1(void)=0;
- virtual MTAPIRES TradeReserved2(void)=0;
- virtual MTAPIRES TradeReserved3(void)=0;
- virtual MTAPIRES TradeReserved4(void)=0;
- virtual MTAPIRES TradeReserved5(void)=0;
- virtual MTAPIRES TradeReserved6(void)=0;
- //--- email servers configuration
- virtual IMTConEmail* EmailCreate()=0;
- virtual MTAPIRES EmailSubscribe(IMTConEmailSink* sink)=0;
- virtual MTAPIRES EmailUnsubscribe(IMTConEmailSink* sink)=0;
- virtual MTAPIRES EmailAdd(IMTConEmail* config)=0;
- virtual MTAPIRES EmailDelete(LPCWSTR name)=0;
- virtual MTAPIRES EmailDelete(const UINT pos)=0;
- virtual MTAPIRES EmailShift(const UINT pos,const int shift)=0;
- virtual UINT EmailTotal(void)=0;
- virtual MTAPIRES EmailNext(const UINT pos,IMTConEmail* email)=0;
- virtual MTAPIRES EmailGet(LPCWSTR name,IMTConEmail* email)=0;
- virtual MTAPIRES EmailSend(LPCWSTR account,LPCWSTR to,LPCWSTR to_name,LPCWSTR subject,LPCWSTR body)=0;
- virtual MTAPIRES EmailReserved2(void)=0;
- virtual MTAPIRES EmailReserved3(void)=0;
- virtual MTAPIRES EmailReserved4(void)=0;
- //--- messengers configuration
- virtual IMTConMessenger* MessengerCreate()=0;
- virtual MTAPIRES MessengerSubscribe(IMTConMessengerSink* sink)=0;
- virtual MTAPIRES MessengerUnsubscribe(IMTConMessengerSink* sink)=0;
- virtual MTAPIRES MessengerAdd(IMTConMessenger* config)=0;
- virtual MTAPIRES MessengerDelete(LPCWSTR name)=0;
- virtual MTAPIRES MessengerDelete(const UINT pos)=0;
- virtual MTAPIRES MessengerShift(const UINT pos,const int shift)=0;
- virtual UINT MessengerTotal(void)=0;
- virtual MTAPIRES MessengerNext(const UINT pos,IMTConMessenger* messenger)=0;
- virtual MTAPIRES MessengerGet(LPCWSTR name,IMTConMessenger* messenger)=0;
- virtual MTAPIRES MessengerSend(LPCWSTR destination,LPCWSTR group,LPCWSTR sender,LPCWSTR text)=0;
- virtual MTAPIRES MessengerReserved2(void)=0;
- virtual MTAPIRES MessengerReserved3(void)=0;
- virtual MTAPIRES MessengerReserved4(void)=0;
- //--- trade positions database
- virtual MTAPIRES PositionSelectByGroup(LPCWSTR group,INT64 from,INT64 to,const IMTDatasetRequest *request,IMTDataset *dataset)=0;
- virtual MTAPIRES PositionSelectByLogins(const UINT64 *logins,UINT logins_total,INT64 from,INT64 to,const IMTDatasetRequest *request,IMTDataset *dataset)=0;
- virtual MTAPIRES PositionGetByGroup(LPCWSTR group,IMTPositionArray *positions)=0;
- virtual MTAPIRES PositionGetByLogins(const UINT64 *logins,UINT logins_total,IMTPositionArray *positions)=0;
- virtual MTAPIRES PositionGetByTickets(const UINT64 *tickets,UINT tickets_total,IMTPositionArray *positions)=0;
- virtual MTAPIRES PositionReserved1(void)=0;
- virtual MTAPIRES PositionReserved2(void)=0;
- virtual MTAPIRES PositionReserved3(void)=0;
- virtual MTAPIRES PositionReserved4(void)=0;
- //--- dataset management
- virtual IMTDatasetRequest* DatasetRequestCreate(void)=0;
- virtual IMTDataset* DatasetCreate(void)=0;
- virtual MTAPIRES DatasetReserved1(void)=0;
- virtual MTAPIRES DatasetReserved2(void)=0;
- virtual MTAPIRES DatasetReserved3(void)=0;
- virtual MTAPIRES DatasetReserved4(void)=0;
- //--- orders
- virtual MTAPIRES OrderGetByTickets(const UINT64 *tickets,UINT tickets_total,IMTOrderArray *orders)=0;
- virtual MTAPIRES OrderReserved1(void)=0;
- virtual MTAPIRES OrderReserved2(void)=0;
- virtual MTAPIRES OrderReserved3(void)=0;
- virtual MTAPIRES OrderReserved4(void)=0;
- //--- history
- virtual MTAPIRES HistoryGetByTickets(const UINT64 *tickets,UINT tickets_total,IMTOrderArray *orders)=0;
- virtual MTAPIRES HistoryReserved1(void)=0;
- virtual MTAPIRES HistoryReserved2(void)=0;
- virtual MTAPIRES HistoryReserved3(void)=0;
- virtual MTAPIRES HistoryReserved4(void)=0;
- //--- dealing
- virtual MTAPIRES DealGetByTickets(const UINT64 *tickets,UINT tickets_total,IMTDealArray *deals)=0;
- virtual MTAPIRES DealReserved1(void)=0;
- virtual MTAPIRES DealReserved2(void)=0;
- virtual MTAPIRES DealReserved3(void)=0;
- virtual MTAPIRES DealReserved4(void)=0;
- //--- client management
- virtual IMTClient *ClientCreate(void)=0;
- virtual IMTClientArray *ClientCreateArray(void)=0;
- virtual MTAPIRES ClientSubscribe(IMTClientSink* sink)=0;
- virtual MTAPIRES ClientUnsubscribe(IMTClientSink* sink)=0;
- virtual MTAPIRES ClientAdd(IMTClient *client,const UINT64 author)=0;
- virtual MTAPIRES ClientUpdate(IMTClient *client,const UINT64 author)=0;
- virtual MTAPIRES ClientDelete(const UINT64 client_id,const UINT64 author)=0;
- virtual MTAPIRES ClientGet(const UINT64 client_id,IMTClient *client)=0;
- virtual MTAPIRES ClientGetHistory(const UINT64 client_id,const UINT64 author,const INT64 from,const INT64 to,IMTClientArray *history)=0;
- virtual MTAPIRES ClientIdsAll(UINT64*& ids,UINT& ids_total)=0;
- virtual MTAPIRES ClientIdsByGroup(const LPCWSTR groups,UINT64*& ids,UINT& ids_total)=0;
- virtual MTAPIRES ClientIdsByManager(const UINT64 manager,UINT64*& ids,UINT& ids_total)=0;
- virtual MTAPIRES ClientUserAdd(const UINT64 client_id,const UINT64 login)=0;
- virtual MTAPIRES ClientUserDelete(const UINT64 client_id,const UINT64 login)=0;
- virtual MTAPIRES ClientUserLogins(const UINT64 client_id,UINT64*& logins,UINT& logins_total)=0;
- virtual MTAPIRES ClientReserved1(void)=0;
- virtual MTAPIRES ClientReserved2(void)=0;
- virtual MTAPIRES ClientReserved3(void)=0;
- virtual MTAPIRES ClientReserved4(void)=0;
- //--- document management
- virtual IMTDocument *DocumentCreate(void)=0;
- virtual IMTDocumentArray *DocumentCreateArray(void)=0;
- virtual MTAPIRES DocumentSubscribe(IMTDocumentSink* sink)=0;
- virtual MTAPIRES DocumentUnsubscribe(IMTDocumentSink* sink)=0;
- virtual MTAPIRES DocumentAdd(IMTDocument *document,const UINT64 author)=0;
- virtual MTAPIRES DocumentUpdate(IMTDocument *document,const UINT64 author)=0;
- virtual MTAPIRES DocumentDelete(const UINT64 document_id,const UINT64 author)=0;
- virtual MTAPIRES DocumentGet(const UINT64 document_id,IMTDocument *document)=0;
- virtual MTAPIRES DocumentGetByClient(const UINT64 client_id,const UINT position,const UINT total,IMTDocumentArray *documents)=0;
- virtual MTAPIRES DocumentGetHistory(const UINT64 document_id,const UINT64 author,const INT64 from,const INT64 to,IMTDocumentArray *history)=0;
- virtual MTAPIRES DocumentReserved1(void)=0;
- virtual MTAPIRES DocumentReserved2(void)=0;
- virtual MTAPIRES DocumentReserved3(void)=0;
- virtual MTAPIRES DocumentReserved4(void)=0;
- //--- comment management
- virtual IMTComment *CommentCreate(void)=0;
- virtual IMTCommentArray *CommentCreateArray(void)=0;
- virtual MTAPIRES CommentSubscribe(IMTCommentSink* sink)=0;
- virtual MTAPIRES CommentUnsubscribe(IMTCommentSink* sink)=0;
- virtual MTAPIRES CommentAdd(IMTComment *comment,const UINT64 author)=0;
- virtual MTAPIRES CommentUpdate(IMTComment *comment,const UINT64 author)=0;
- virtual MTAPIRES CommentDelete(const UINT64 comment_id,const UINT64 author)=0;
- virtual MTAPIRES CommentGet(const UINT64 comment_id,IMTComment *comment)=0;
- virtual MTAPIRES CommentGetByClient(const UINT64 client_id,const UINT position,const UINT total,IMTCommentArray *comments)=0;
- virtual MTAPIRES CommentGetByDocument(const UINT64 document_id,const UINT position,const UINT total,IMTCommentArray *comments)=0;
- virtual MTAPIRES CommentReserved1(void)=0;
- virtual MTAPIRES CommentReserved2(void)=0;
- virtual MTAPIRES CommentReserved3(void)=0;
- virtual MTAPIRES CommentReserved4(void)=0;
- //--- attachment management
- virtual IMTAttachment* AttachmentCreate(void)=0;
- virtual MTAPIRES AttachmentAdd(IMTAttachment *attachment,const UINT64 author)=0;
- virtual MTAPIRES AttachmentGet(const UINT64 attachment_id,IMTAttachment *attachment)=0;
- virtual MTAPIRES AttachmentReserved1(void)=0;
- virtual MTAPIRES AttachmentReserved2(void)=0;
- virtual MTAPIRES AttachmentReserved3(void)=0;
- virtual MTAPIRES AttachmentReserved4(void)=0;
- //--- TLS Certificates
- virtual MTAPIRES TLSCertificateUpdate(const void* pfx_certificate,const UINT pfx_certificate_size,LPCWSTR password)=0;
- virtual MTAPIRES TLSCertificateDelete(const UINT pos)=0;
- virtual MTAPIRES TLSCertificateShift(const UINT pos,const int shift)=0;
- virtual UINT TLSCertificateTotal(void)=0;
- virtual MTAPIRES TLSCertificateNext(const UINT pos,MTAPISTR& name,MTAPISTR& thumbprint)=0;
- virtual void* TLSCertificatePfx(const UINT pos,UINT& pfx_certificate_size)=0;
- virtual MTAPIRES TLSCertificateReserved1(void)=0;
- virtual MTAPIRES TLSCertificateReserved2(void)=0;
- virtual MTAPIRES TLSCertificateReserved3(void)=0;
- virtual MTAPIRES TLSCertificateReserved4(void)=0;
- };
- //+------------------------------------------------------------------+
- //| Server plugin interface |
- //+------------------------------------------------------------------+
- class IMTServerPlugin
- {
- public:
- virtual void Release(void)=0;
- //--- plugin start & stop notification
- virtual MTAPIRES Start(IMTServerAPI* server)=0;
- virtual MTAPIRES Stop(void)=0;
- };
- //+------------------------------------------------------------------+
- //| Plugin DLL entry points |
- //+------------------------------------------------------------------+
- MTAPIENTRY MTAPIRES MTServerAbout(MTPluginInfo& info);
- MTAPIENTRY MTAPIRES MTServerCreate(UINT apiversion,IMTServerPlugin** plugin);
- //+------------------------------------------------------------------+
|