Funkcja double GetSumProfitOpenedPositions() zwraca sumaryczny bieżący zysk/stratę wybranych otwartych pozycji. Ma następujące argumenty:
f_symbol - nazwa instrumentu finansowego. Wartość domyślna = "", tj. wszystkie instrumenty. W przypadku _Symbol funkcja zwróci sumaryczny bieżący zysk/stratę 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 otwarte pozycje.
Jeśli nie ma żadnej pozycji, funkcja zwróci wartość stałej DBL_MAX , tj. 1.7976931348623158e+308.
double GetSumProfitOpenedPositions(string f_symbol="", // instrument finansowy int f_cmd=-1, // typ pozycji int f_magic=-1) // identyfikator { if(f_cmd==OP_BUYLIMIT || f_cmd==OP_SELLLIMIT || f_cmd==OP_BUYSTOP || f_cmd==OP_SELLSTOP) return DBL_MAX; //--- double f_sumProfit=0; bool f_isPositionExist=false; for(int i=OrdersTotal()-1; i>=0; i--) if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) if((f_symbol==OrderSymbol() || f_symbol=="") && (f_cmd ==OrderType() || f_cmd==-1) && (f_magic ==OrderMagicNumber() || f_magic==-1)) { f_sumProfit+=OrderProfit(); f_isPositionExist=true; } //--- if(f_isPositionExist) return f_sumProfit; else return DBL_MAX; }
1) Znaleźć sumaryczny zysk/stratę otwartych pozycji dla EURUSD, na sprzedaż i z identyfikatorem 12345:
GetSumProfitOpenedPositions("EURUSD", OP_SELL, 12345);
2) Znaleźć sumaryczny zysk/stratę otwartych pozycji dla EURUSD, dowolnego typu i identyfikatorem 12345:
GetSumProfitOpenedPositions("EURUSD", -1, 12345);
3) Znaleźć sumaryczny zysk/stratę otwartych pozycji dla EURUSD, dowolnego typu i z dowolnym identyfikatorem:
GetSumProfitOpenedPositions("EURUSD");
4) Znaleźć sumaryczny zysk/stratę otwartych pozycji wśród wszystkich instrumentów finansowych, dowolnego typu i identyfikatorem 12345:
GetSumProfitOpenedPositions("", -1, 12345);
5) Znaleźć sumaryczny zysk/stratę otwartych pozycji wśród wszystkich instrumentów finansowych, dowolnego typu i z dowolnym identyfikatorem:
GetSumProfitOpenedPositions();