Funkcja int PositionTicketMaxProfit() zwraca ticket otwartej pozycji z maksymalnym bieżącym zyskiem. Uwzględnia się zysk, prowizja i swap. Ma następujące argumenty:
f_symbol - nazwa instrumentu finansowego. Wartość domyślna = "", tj. wszystkie instrumenty. W przypadku _Symbol funkcja zwróci ticket pozycji dla instrumentu finansowego tego wykresu notowań, gdzie program MQL4 zostanie uruchomiony.
f_cmd - typ pozycji. Wartość domyślna = -1, tj. wszystkie otwarte pozycje typu OP_BUY i OP_SELL .
f_magic - identyfikator (magic number). Wartość domyślna = -1, tj. wszystkie pozycje.
Jeśli żądana pozycja nie istnieje, funkcja zwróci -1.
int PositionTicketMaxProfit(string f_symbol="", // instrument finansowy int f_cmd=-1, // typ pozycji int f_magic=-1) // identyfikator { int f_ticket=-1; double f_min=0; //--- for(int i=OrdersTotal()-1; i>=0; i--) if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) { int f_type=OrderType(); if(f_type==OP_BUYLIMIT || f_type==OP_SELLLIMIT || f_type==OP_BUYSTOP || f_type==OP_SELLSTOP) continue; //--- if((f_symbol==OrderSymbol() || f_symbol=="") && (f_cmd==OrderType() || f_cmd==-1) && (f_magic==OrderMagicNumber() || f_magic==-1)) { double f_profit=OrderProfit()+OrderCommission()+OrderSwap(); if(f_profit>f_min) { f_min=f_profit; f_ticket=OrderTicket(); } } } return f_ticket; }
1) Znaleźć ticket otwartej pozycji z maksymalnym bieżącym zyskiem dla EURUSD, na sprzedaż i identyfikatorem 12345:
PositionTicketMaxProfit("EURUSD", OP_SELL, 12345);
2) Znaleźć ticket otwartej pozycji z maksymalnym bieżącym zyskiem dla EURUSD, dowolnego typu i identyfikatorem 12345:
PositionTicketMaxProfit("EURUSD", -1, 12345);
3) Znaleźć ticket otwartej pozycji z maksymalnym bieżącym zyskiem dla EURUSD, dowolnego typu i dowolnym identyfikatorem:
PositionTicketMaxProfit("EURUSD");
4) Znaleźć ticket otwartej pozycji z maksymalnym bieżącym zyskiem wśród wszystkich instrumentów finansowych, dowolnego typu i identyfikatorem 12345:
PositionTicketMaxProfit("", -1, 12345);
5) Znaleźć ticket otwartej pozycji z maksymalnym bieżącym zyskiem wśród wszystkich instrumentów finansowych, dowolnego typu i dowolnym identyfikatorem:
PositionTicketMaxProfit();