MT5APISummary.h 4.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. //+------------------------------------------------------------------+
  2. //| MetaTrader 5 API |
  3. //| Copyright 2000-2019, MetaQuotes Software Corp. |
  4. //| http://www.metaquotes.net |
  5. //+------------------------------------------------------------------+
  6. #pragma once
  7. //+------------------------------------------------------------------+
  8. //| Trade summary interface |
  9. //+------------------------------------------------------------------+
  10. class IMTSummary
  11. {
  12. public:
  13. //--- common methods
  14. virtual void Release(void)=0;
  15. virtual MTAPIRES Assign(const IMTSummary* summary)=0;
  16. virtual MTAPIRES Clear(void)=0;
  17. //--- summary symbol
  18. virtual LPCWSTR Symbol(void) const=0;
  19. virtual UINT Digits(void) const=0;
  20. //--- total positions
  21. virtual UINT PositionClients(void) const=0;
  22. virtual UINT PositionCoverage(void) const=0;
  23. //--- volumes
  24. virtual UINT64 VolumeBuyClients(void) const=0;
  25. virtual UINT64 VolumeBuyCoverage(void) const=0;
  26. virtual UINT64 VolumeSellClients(void) const=0;
  27. virtual UINT64 VolumeSellCoverage(void) const=0;
  28. virtual double VolumeNet(void) const=0;
  29. //--- average prices
  30. virtual double PriceBuyClients(void) const=0;
  31. virtual double PriceBuyCoverage(void) const=0;
  32. virtual double PriceSellClients(void) const=0;
  33. virtual double PriceSellCoverage(void) const=0;
  34. //--- profit
  35. virtual double ProfitClients(void) const=0;
  36. virtual double ProfitCoverage(void) const=0;
  37. virtual double ProfitFullClients(void) const=0;
  38. virtual double ProfitFullCoverage(void) const=0;
  39. virtual double ProfitUncovered(void) const=0;
  40. virtual double ProfitUncoveredFull(void) const=0;
  41. //--- volumes with extended accuracy
  42. virtual UINT64 VolumeBuyClientsExt(void) const=0;
  43. virtual UINT64 VolumeBuyCoverageExt(void) const=0;
  44. virtual UINT64 VolumeSellClientsExt(void) const=0;
  45. virtual UINT64 VolumeSellCoverageExt(void) const=0;
  46. };
  47. //+------------------------------------------------------------------+
  48. //| Trade summary array interface |
  49. //+------------------------------------------------------------------+
  50. class IMTSummaryArray
  51. {
  52. public:
  53. //--- common methods
  54. virtual void Release(void)=0;
  55. virtual MTAPIRES Assign(const IMTSummaryArray* array)=0;
  56. virtual MTAPIRES Clear(void)=0;
  57. //--- add
  58. virtual MTAPIRES Add(IMTSummary* summary)=0;
  59. virtual MTAPIRES AddCopy(const IMTSummary* summary)=0;
  60. virtual MTAPIRES Add(IMTSummaryArray* array)=0;
  61. virtual MTAPIRES AddCopy(const IMTSummaryArray* array)=0;
  62. //--- delete & detach
  63. virtual MTAPIRES Delete(const UINT pos)=0;
  64. virtual IMTSummary* Detach(const UINT pos)=0;
  65. //--- update
  66. virtual MTAPIRES Update(const UINT pos,IMTSummary* summary)=0;
  67. virtual MTAPIRES UpdateCopy(const UINT pos,const IMTSummary* summary)=0;
  68. virtual MTAPIRES Shift(const UINT pos,const int shift)=0;
  69. //--- data access
  70. virtual UINT Total(void) const=0;
  71. virtual IMTSummary* Next(const UINT index) const=0;
  72. //--- sorting and search
  73. virtual MTAPIRES Sort(MTSortFunctionPtr sort_function)=0;
  74. virtual int Search(const void *key,MTSortFunctionPtr sort_function) const=0;
  75. virtual int SearchGreatOrEq(const void *key,MTSortFunctionPtr sort_function) const=0;
  76. virtual int SearchGreater(const void *key,MTSortFunctionPtr sort_function) const=0;
  77. virtual int SearchLessOrEq(const void *key,MTSortFunctionPtr sort_function) const=0;
  78. virtual int SearchLess(const void *key,MTSortFunctionPtr sort_function) const=0;
  79. virtual int SearchLeft(const void *key,MTSortFunctionPtr sort_function) const=0;
  80. virtual int SearchRight(const void *key,MTSortFunctionPtr sort_function) const=0;
  81. };
  82. //+------------------------------------------------------------------+
  83. //| Trade summary events notification interface |
  84. //+------------------------------------------------------------------+
  85. class IMTSummarySink
  86. {
  87. public:
  88. virtual void OnSummaryUpdate(const IMTSummary* /*summary*/) { }
  89. };
  90. //+------------------------------------------------------------------+