Funkcja uint HowManyPositions() zwraca ilość otwartych pozycji. Ma następujące argumenty:
f_symbol - nazwa instrumentu finansowego. Wartość domyślna = "", tj. wszystkie instrumenty. W przypadku _Symbol funkcja obliczy ilość otwartych 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.
f_openTime - czas, po którym pozycje zostały otwarte. Wartość domyślna = 0, tj. wszystkie pozycje.
uint HowManyPositions(string f_symbol="", // instrument finansowy int f_cmd=-1, // typ pozycji int f_magic=-1, // identyfikator datetime f_openTime=0) // czas, po którym otwarto pozycje { uint f_total=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) && (f_openTime<=OrderOpenTime() || f_openTime==0)) f_total++; } //--- return f_total; }
1) Policzyć ilość wszystkich otwartych pozycji:
HowManyPositions();
2) Policzyć ilość wszystkich pozycji dla bieżącego instrumentu finansowego:
HowManyPositions(_Symbol);
3) Policzyć ilość pozycji dla wszystkich instrumentów finansowych na kupno:
HowManyPositions("", OP_BUY);
4) Policzyć ilość pozycji dla EURUSD, na sprzedaż i z identyfikatorem 12345:
HowManyPositions("EURUSD", OP_SELL, 12345);
5) Policzyć ilość wszystkich pozycji otwartych po 1 grudniu 2016 r. po 00:00:
HowManyPositions("", -1, -1, D'2016.12.01 00:00');