47 lines
1.4 KiB
MQL5
47 lines
1.4 KiB
MQL5
//+------------------------------------------------------------------+
|
|
//| PositionFilter.mqh |
|
|
//| Copyright 2022, MetaQuotes Ltd. |
|
|
//| https://www.mql5.com |
|
|
//+------------------------------------------------------------------+
|
|
#include "PositionMonitor.mqh"
|
|
#include "TradeFilter.mqh"
|
|
|
|
class PositionFilter: public TradeFilter<PositionMonitor,
|
|
ENUM_POSITION_PROPERTY_INTEGER,
|
|
ENUM_POSITION_PROPERTY_DOUBLE,
|
|
ENUM_POSITION_PROPERTY_STRING>
|
|
{
|
|
protected:
|
|
virtual int total() const override
|
|
{
|
|
return PositionsTotal();
|
|
}
|
|
virtual ulong get(const int i) const override
|
|
{
|
|
return PositionGetTicket(i);
|
|
}
|
|
};
|
|
//+------------------------------------------------------------------+
|
|
/*
|
|
input ulong Magic;
|
|
|
|
void OnStart()
|
|
{
|
|
PositionFilter filter;
|
|
|
|
ENUM_POSITION_PROPERTY_DOUBLE properties[] =
|
|
{POSITION_PROFIT, POSITION_VOLUME};
|
|
|
|
double profits[][2];
|
|
ulong tickets[];
|
|
string symbols[];
|
|
|
|
filter.let(POSITION_MAGIC, Magic).select(properties, tickets, profits);
|
|
filter.select(POSITION_SYMBOL, tickets, symbols);
|
|
|
|
ArrayPrint(profits);
|
|
ArrayPrint(tickets);
|
|
ArrayPrint(symbols);
|
|
}
|
|
*/
|
|
//+------------------------------------------------------------------+
|