MT5APIExposure.h 3.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. //+------------------------------------------------------------------+
  2. //| MetaTrader 5 API |
  3. //| Copyright 2000-2019, MetaQuotes Software Corp. |
  4. //| http://www.metaquotes.net |
  5. //+------------------------------------------------------------------+
  6. #pragma once
  7. //+------------------------------------------------------------------+
  8. //| Exposure interface |
  9. //+------------------------------------------------------------------+
  10. class IMTExposure
  11. {
  12. public:
  13. //--- common methods
  14. virtual void Release(void)=0;
  15. virtual MTAPIRES Assign(const IMTExposure* exposure)=0;
  16. virtual MTAPIRES Clear(void)=0;
  17. //--- exposure currency or symbol
  18. virtual LPCWSTR Symbol(void) const=0;
  19. virtual UINT Digits(void) const=0;
  20. //--- volumes
  21. virtual double VolumeClients(void) const=0;
  22. virtual double VolumeCoverage(void) const=0;
  23. //--- conversation rate from symbol volume
  24. //--- to net volume in exposure currency
  25. virtual double PriceRate(void) const=0;
  26. //--- net volume in exposure currency
  27. virtual double VolumeNet(void) const=0;
  28. };
  29. //+------------------------------------------------------------------+
  30. //| Exposure array interface |
  31. //+------------------------------------------------------------------+
  32. class IMTExposureArray
  33. {
  34. public:
  35. //--- common methods
  36. virtual void Release(void)=0;
  37. virtual MTAPIRES Assign(const IMTExposureArray* array)=0;
  38. virtual MTAPIRES Clear(void)=0;
  39. //--- add
  40. virtual MTAPIRES Add(IMTExposure* exposure)=0;
  41. virtual MTAPIRES AddCopy(const IMTExposure* exposure)=0;
  42. virtual MTAPIRES Add(IMTExposureArray* array)=0;
  43. virtual MTAPIRES AddCopy(const IMTExposureArray* array)=0;
  44. //--- delete & detach
  45. virtual MTAPIRES Delete(const UINT pos)=0;
  46. virtual IMTExposure* Detach(const UINT pos)=0;
  47. //--- update
  48. virtual MTAPIRES Update(const UINT pos,IMTExposure* exposure)=0;
  49. virtual MTAPIRES UpdateCopy(const UINT pos,const IMTExposure* exposure)=0;
  50. virtual MTAPIRES Shift(const UINT pos,const int shift)=0;
  51. //--- data access
  52. virtual UINT Total(void) const=0;
  53. virtual IMTExposure* Next(const UINT index) const=0;
  54. //--- sorting and search
  55. virtual MTAPIRES Sort(MTSortFunctionPtr sort_function)=0;
  56. virtual int Search(const void *key,MTSortFunctionPtr sort_function) const=0;
  57. virtual int SearchGreatOrEq(const void *key,MTSortFunctionPtr sort_function) const=0;
  58. virtual int SearchGreater(const void *key,MTSortFunctionPtr sort_function) const=0;
  59. virtual int SearchLessOrEq(const void *key,MTSortFunctionPtr sort_function) const=0;
  60. virtual int SearchLess(const void *key,MTSortFunctionPtr sort_function) const=0;
  61. virtual int SearchLeft(const void *key,MTSortFunctionPtr sort_function) const=0;
  62. virtual int SearchRight(const void *key,MTSortFunctionPtr sort_function) const=0;
  63. };
  64. //+------------------------------------------------------------------+
  65. //| Exposure events notification interface |
  66. //+------------------------------------------------------------------+
  67. class IMTExposureSink
  68. {
  69. public:
  70. virtual void OnExposureUpdate(const IMTExposure* /*exposure*/) { }
  71. };
  72. //+------------------------------------------------------------------+