MT5APIAccount.h 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136
  1. //+------------------------------------------------------------------+
  2. //| MetaTrader 5 API Server |
  3. //| Copyright 2000-2019, MetaQuotes Software Corp. |
  4. //| http://www.metaquotes.net |
  5. //+------------------------------------------------------------------+
  6. #pragma once
  7. //+------------------------------------------------------------------+
  8. //| Trade account interface |
  9. //+------------------------------------------------------------------+
  10. class IMTAccount
  11. {
  12. public:
  13. //--- activation mode
  14. enum EnSoActivation
  15. {
  16. ACTIVATION_NONE =0,
  17. ACTIVATION_MARGIN_CALL=1,
  18. ACTIVATION_STOP_OUT =2,
  19. //---
  20. ACTIVATION_FIRST =ACTIVATION_NONE,
  21. ACTIVATION_LAST =ACTIVATION_STOP_OUT,
  22. };
  23. //--- common methods
  24. virtual void Release(void)=0;
  25. virtual MTAPIRES Assign(const IMTAccount* user)=0;
  26. virtual MTAPIRES Clear(void)=0;
  27. //--- login
  28. virtual UINT64 Login(void) const=0;
  29. virtual MTAPIRES Login(const UINT64 login)=0;
  30. //--- currency digits
  31. virtual UINT CurrencyDigits(void) const=0;
  32. virtual MTAPIRES CurrencyDigits(const UINT digits)=0;
  33. //--- balance
  34. virtual double Balance(void) const=0;
  35. virtual MTAPIRES Balance(const double balance)=0;
  36. //--- credit
  37. virtual double Credit(void) const=0;
  38. virtual MTAPIRES Credit(const double credit)=0;
  39. //--- margin
  40. virtual double Margin(void) const=0;
  41. virtual MTAPIRES Margin(const double margin)=0;
  42. //--- free margin
  43. virtual double MarginFree(void) const=0;
  44. virtual MTAPIRES MarginFree(const double margin_free)=0;
  45. //--- margin level
  46. virtual double MarginLevel(void) const=0;
  47. virtual MTAPIRES MarginLevel(const double margin_level)=0;
  48. //--- margin leverage
  49. virtual UINT MarginLeverage(void) const=0;
  50. virtual MTAPIRES MarginLeverage(const UINT leverage)=0;
  51. //--- floating profit
  52. virtual double Profit(void) const=0;
  53. virtual MTAPIRES Profit(const double profit)=0;
  54. //--- storage
  55. virtual double Storage(void) const=0;
  56. virtual MTAPIRES Storage(const double storage)=0;
  57. //--- commission
  58. virtual double Commission(void) const=0;
  59. virtual MTAPIRES Commission(const double storage)=0;
  60. //--- cumulative floating
  61. virtual double Floating(void) const=0;
  62. virtual MTAPIRES Floating(const double floating)=0;
  63. //--- equity
  64. virtual double Equity(void) const=0;
  65. virtual MTAPIRES Equity(const double equity)=0;
  66. //--- stop-out activation mode
  67. virtual UINT SOActivation(void) const=0;
  68. virtual MTAPIRES SOActivation(const UINT activation)=0;
  69. //--- stop-out activation time
  70. virtual INT64 SOTime(void) const=0;
  71. virtual MTAPIRES SOTime(const INT64 datetime)=0;
  72. //--- margin level on stop-out
  73. virtual double SOLevel(void) const=0;
  74. virtual MTAPIRES SOLevel(const double level)=0;
  75. //--- equity on stop-out
  76. virtual double SOEquity(void) const=0;
  77. virtual MTAPIRES SOEquity(const double equity)=0;
  78. //--- margin on stop-out
  79. virtual double SOMargin(void) const=0;
  80. virtual MTAPIRES SOMargin(const double margin)=0;
  81. //--- blocked daily & monthly commission
  82. virtual double BlockedCommission(void) const=0;
  83. virtual MTAPIRES BlockedCommission(const double commission)=0;
  84. //--- blocked fixed profit
  85. virtual double BlockedProfit(void) const=0;
  86. virtual MTAPIRES BlockedProfit(const double profit)=0;
  87. //--- account initial margin
  88. virtual double MarginInitial(void) const=0;
  89. virtual MTAPIRES MarginInitial(const double margin)=0;
  90. //--- account maintenance margin
  91. virtual double MarginMaintenance(void) const=0;
  92. virtual MTAPIRES MarginMaintenance(const double margin)=0;
  93. //--- account assets
  94. virtual double Assets(void) const=0;
  95. virtual MTAPIRES Assets(const double assets)=0;
  96. //--- account liabilities
  97. virtual double Liabilities(void) const=0;
  98. virtual MTAPIRES Liabilities(const double liabilities)=0;
  99. };
  100. //+------------------------------------------------------------------+
  101. //| Account array interface |
  102. //+------------------------------------------------------------------+
  103. class IMTAccountArray
  104. {
  105. public:
  106. //--- common methods
  107. virtual void Release(void)=0;
  108. virtual MTAPIRES Assign(const IMTAccountArray* array)=0;
  109. virtual MTAPIRES Clear(void)=0;
  110. //--- add
  111. virtual MTAPIRES Add(IMTAccount* account)=0;
  112. virtual MTAPIRES AddCopy(const IMTAccount* account)=0;
  113. virtual MTAPIRES Add(IMTAccountArray* array)=0;
  114. virtual MTAPIRES AddCopy(const IMTAccountArray* array)=0;
  115. //--- delete & detach
  116. virtual MTAPIRES Delete(const UINT pos)=0;
  117. virtual IMTAccount* Detach(const UINT pos)=0;
  118. //--- update
  119. virtual MTAPIRES Update(const UINT pos,IMTAccount* account)=0;
  120. virtual MTAPIRES UpdateCopy(const UINT pos,const IMTAccount* account)=0;
  121. virtual MTAPIRES Shift(const UINT pos,const int shift)=0;
  122. //--- data access
  123. virtual UINT Total(void) const=0;
  124. virtual IMTAccount* Next(const UINT index) const=0;
  125. //--- sorting and search
  126. virtual MTAPIRES Sort(MTSortFunctionPtr sort_function)=0;
  127. virtual int Search(const void *key,MTSortFunctionPtr sort_function) const=0;
  128. virtual int SearchGreatOrEq(const void *key,MTSortFunctionPtr sort_function) const=0;
  129. virtual int SearchGreater(const void *key,MTSortFunctionPtr sort_function) const=0;
  130. virtual int SearchLessOrEq(const void *key,MTSortFunctionPtr sort_function) const=0;
  131. virtual int SearchLess(const void *key,MTSortFunctionPtr sort_function) const=0;
  132. virtual int SearchLeft(const void *key,MTSortFunctionPtr sort_function) const=0;
  133. virtual int SearchRight(const void *key,MTSortFunctionPtr sort_function) const=0;
  134. };
  135. //+------------------------------------------------------------------+