| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136 |
- //+------------------------------------------------------------------+
- //| MetaTrader 5 API Server |
- //| Copyright 2000-2019, MetaQuotes Software Corp. |
- //| http://www.metaquotes.net |
- //+------------------------------------------------------------------+
- #pragma once
- //+------------------------------------------------------------------+
- //| Trade account interface |
- //+------------------------------------------------------------------+
- class IMTAccount
- {
- public:
- //--- activation mode
- enum EnSoActivation
- {
- ACTIVATION_NONE =0,
- ACTIVATION_MARGIN_CALL=1,
- ACTIVATION_STOP_OUT =2,
- //---
- ACTIVATION_FIRST =ACTIVATION_NONE,
- ACTIVATION_LAST =ACTIVATION_STOP_OUT,
- };
- //--- common methods
- virtual void Release(void)=0;
- virtual MTAPIRES Assign(const IMTAccount* user)=0;
- virtual MTAPIRES Clear(void)=0;
- //--- login
- virtual UINT64 Login(void) const=0;
- virtual MTAPIRES Login(const UINT64 login)=0;
- //--- currency digits
- virtual UINT CurrencyDigits(void) const=0;
- virtual MTAPIRES CurrencyDigits(const UINT digits)=0;
- //--- balance
- virtual double Balance(void) const=0;
- virtual MTAPIRES Balance(const double balance)=0;
- //--- credit
- virtual double Credit(void) const=0;
- virtual MTAPIRES Credit(const double credit)=0;
- //--- margin
- virtual double Margin(void) const=0;
- virtual MTAPIRES Margin(const double margin)=0;
- //--- free margin
- virtual double MarginFree(void) const=0;
- virtual MTAPIRES MarginFree(const double margin_free)=0;
- //--- margin level
- virtual double MarginLevel(void) const=0;
- virtual MTAPIRES MarginLevel(const double margin_level)=0;
- //--- margin leverage
- virtual UINT MarginLeverage(void) const=0;
- virtual MTAPIRES MarginLeverage(const UINT leverage)=0;
- //--- floating profit
- virtual double Profit(void) const=0;
- virtual MTAPIRES Profit(const double profit)=0;
- //--- storage
- virtual double Storage(void) const=0;
- virtual MTAPIRES Storage(const double storage)=0;
- //--- commission
- virtual double Commission(void) const=0;
- virtual MTAPIRES Commission(const double storage)=0;
- //--- cumulative floating
- virtual double Floating(void) const=0;
- virtual MTAPIRES Floating(const double floating)=0;
- //--- equity
- virtual double Equity(void) const=0;
- virtual MTAPIRES Equity(const double equity)=0;
- //--- stop-out activation mode
- virtual UINT SOActivation(void) const=0;
- virtual MTAPIRES SOActivation(const UINT activation)=0;
- //--- stop-out activation time
- virtual INT64 SOTime(void) const=0;
- virtual MTAPIRES SOTime(const INT64 datetime)=0;
- //--- margin level on stop-out
- virtual double SOLevel(void) const=0;
- virtual MTAPIRES SOLevel(const double level)=0;
- //--- equity on stop-out
- virtual double SOEquity(void) const=0;
- virtual MTAPIRES SOEquity(const double equity)=0;
- //--- margin on stop-out
- virtual double SOMargin(void) const=0;
- virtual MTAPIRES SOMargin(const double margin)=0;
- //--- blocked daily & monthly commission
- virtual double BlockedCommission(void) const=0;
- virtual MTAPIRES BlockedCommission(const double commission)=0;
- //--- blocked fixed profit
- virtual double BlockedProfit(void) const=0;
- virtual MTAPIRES BlockedProfit(const double profit)=0;
- //--- account initial margin
- virtual double MarginInitial(void) const=0;
- virtual MTAPIRES MarginInitial(const double margin)=0;
- //--- account maintenance margin
- virtual double MarginMaintenance(void) const=0;
- virtual MTAPIRES MarginMaintenance(const double margin)=0;
- //--- account assets
- virtual double Assets(void) const=0;
- virtual MTAPIRES Assets(const double assets)=0;
- //--- account liabilities
- virtual double Liabilities(void) const=0;
- virtual MTAPIRES Liabilities(const double liabilities)=0;
- };
- //+------------------------------------------------------------------+
- //| Account array interface |
- //+------------------------------------------------------------------+
- class IMTAccountArray
- {
- public:
- //--- common methods
- virtual void Release(void)=0;
- virtual MTAPIRES Assign(const IMTAccountArray* array)=0;
- virtual MTAPIRES Clear(void)=0;
- //--- add
- virtual MTAPIRES Add(IMTAccount* account)=0;
- virtual MTAPIRES AddCopy(const IMTAccount* account)=0;
- virtual MTAPIRES Add(IMTAccountArray* array)=0;
- virtual MTAPIRES AddCopy(const IMTAccountArray* array)=0;
- //--- delete & detach
- virtual MTAPIRES Delete(const UINT pos)=0;
- virtual IMTAccount* Detach(const UINT pos)=0;
- //--- update
- virtual MTAPIRES Update(const UINT pos,IMTAccount* account)=0;
- virtual MTAPIRES UpdateCopy(const UINT pos,const IMTAccount* account)=0;
- virtual MTAPIRES Shift(const UINT pos,const int shift)=0;
- //--- data access
- virtual UINT Total(void) const=0;
- virtual IMTAccount* Next(const UINT index) const=0;
- //--- sorting and search
- virtual MTAPIRES Sort(MTSortFunctionPtr sort_function)=0;
- virtual int Search(const void *key,MTSortFunctionPtr sort_function) const=0;
- virtual int SearchGreatOrEq(const void *key,MTSortFunctionPtr sort_function) const=0;
- virtual int SearchGreater(const void *key,MTSortFunctionPtr sort_function) const=0;
- virtual int SearchLessOrEq(const void *key,MTSortFunctionPtr sort_function) const=0;
- virtual int SearchLess(const void *key,MTSortFunctionPtr sort_function) const=0;
- virtual int SearchLeft(const void *key,MTSortFunctionPtr sort_function) const=0;
- virtual int SearchRight(const void *key,MTSortFunctionPtr sort_function) const=0;
- };
- //+------------------------------------------------------------------+
-
|