| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091 |
- //+------------------------------------------------------------------+
- //| MetaTrader 5 API |
- //| Copyright 2000-2019, MetaQuotes Software Corp. |
- //| http://www.metaquotes.net |
- //+------------------------------------------------------------------+
- #pragma once
- //+------------------------------------------------------------------+
- //| Trade summary interface |
- //+------------------------------------------------------------------+
- class IMTSummary
- {
- public:
- //--- common methods
- virtual void Release(void)=0;
- virtual MTAPIRES Assign(const IMTSummary* summary)=0;
- virtual MTAPIRES Clear(void)=0;
- //--- summary symbol
- virtual LPCWSTR Symbol(void) const=0;
- virtual UINT Digits(void) const=0;
- //--- total positions
- virtual UINT PositionClients(void) const=0;
- virtual UINT PositionCoverage(void) const=0;
- //--- volumes
- virtual UINT64 VolumeBuyClients(void) const=0;
- virtual UINT64 VolumeBuyCoverage(void) const=0;
- virtual UINT64 VolumeSellClients(void) const=0;
- virtual UINT64 VolumeSellCoverage(void) const=0;
- virtual double VolumeNet(void) const=0;
- //--- average prices
- virtual double PriceBuyClients(void) const=0;
- virtual double PriceBuyCoverage(void) const=0;
- virtual double PriceSellClients(void) const=0;
- virtual double PriceSellCoverage(void) const=0;
- //--- profit
- virtual double ProfitClients(void) const=0;
- virtual double ProfitCoverage(void) const=0;
- virtual double ProfitFullClients(void) const=0;
- virtual double ProfitFullCoverage(void) const=0;
- virtual double ProfitUncovered(void) const=0;
- virtual double ProfitUncoveredFull(void) const=0;
- //--- volumes with extended accuracy
- virtual UINT64 VolumeBuyClientsExt(void) const=0;
- virtual UINT64 VolumeBuyCoverageExt(void) const=0;
- virtual UINT64 VolumeSellClientsExt(void) const=0;
- virtual UINT64 VolumeSellCoverageExt(void) const=0;
- };
- //+------------------------------------------------------------------+
- //| Trade summary array interface |
- //+------------------------------------------------------------------+
- class IMTSummaryArray
- {
- public:
- //--- common methods
- virtual void Release(void)=0;
- virtual MTAPIRES Assign(const IMTSummaryArray* array)=0;
- virtual MTAPIRES Clear(void)=0;
- //--- add
- virtual MTAPIRES Add(IMTSummary* summary)=0;
- virtual MTAPIRES AddCopy(const IMTSummary* summary)=0;
- virtual MTAPIRES Add(IMTSummaryArray* array)=0;
- virtual MTAPIRES AddCopy(const IMTSummaryArray* array)=0;
- //--- delete & detach
- virtual MTAPIRES Delete(const UINT pos)=0;
- virtual IMTSummary* Detach(const UINT pos)=0;
- //--- update
- virtual MTAPIRES Update(const UINT pos,IMTSummary* summary)=0;
- virtual MTAPIRES UpdateCopy(const UINT pos,const IMTSummary* summary)=0;
- virtual MTAPIRES Shift(const UINT pos,const int shift)=0;
- //--- data access
- virtual UINT Total(void) const=0;
- virtual IMTSummary* 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;
- };
- //+------------------------------------------------------------------+
- //| Trade summary events notification interface |
- //+------------------------------------------------------------------+
- class IMTSummarySink
- {
- public:
- virtual void OnSummaryUpdate(const IMTSummary* /*summary*/) { }
- };
- //+------------------------------------------------------------------+
-
|