Funkcja int PositionLastOpenedBarIndex() zwraca indeks świecy, na której została otwarta ostatnia pozycja i która jest obecna na rynku. Ma następujące argumenty:
f_symbol - nazwa instrumentu finansowego. Wartość domyślna = "", tj. wszystkie instrumenty. W przypadku _Symbol funkcja zwróci indeks świecy 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.
f_tf - przedział czasowy. Wartość domyślna = PERIOD_CURRENT , tj. przedział czasowy tego wykresu notowań, gdzie program MQL4 zostanie uruchomiony.
Jeśli żądana pozycja nie istnieje, funkcja zwróci -1.
int PositionLastOpenedBarIndex(string f_symbol="", // instrument finansowy int f_cmd=-1, // typ pozycji int f_magic=-1, // identyfikator ENUM_TIMEFRAMES f_tf=PERIOD_CURRENT) // przedział czasowy { if(f_cmd==OP_BUYLIMIT || f_cmd==OP_SELLLIMIT || f_cmd==OP_BUYSTOP || f_cmd==OP_SELLSTOP) return -1; //--- datetime f_timeOpen=0; 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)) if(OrderOpenTime()>f_timeOpen) f_timeOpen=OrderOpenTime(); //--- if(f_timeOpen==0) return -1; else return iBarShift(f_symbol,f_tf,f_timeOpen,true); }
1) Znaleźć indeks świecy, na której została otwarta ostatnia pozycja dla EURUSD, na sprzedaż, z identyfikatorem 12345 i dla przedziału czasowego H1:
PositionLastOpenedBarIndex("EURUSD", OP_SELL, 12345, PERIOD_H1);
2) Znaleźć indeks świecy, na której została otwarta ostatnia pozycja dla EURUSD, dowolnego typu, z identyfikatorem 12345 i dla przedziału czasowego M15:
PositionLastOpenedBarIndex("EURUSD", -1, 12345, PERIOD_M15);
3) Znaleźć indeks świecy, na której została otwarta ostatnia pozycja dla EURUSD, dowolnego typu, z dowolnym identyfikatorem i dla bieżącego przedziału czasowego:
PositionLastOpenedBarIndex("EURUSD");
4) Znaleźć indeks świecy, na której została otwarta ostatnia pozycja wśród wszystkich instrumentów finansowych, dowolnego typu, z identyfikatorem 12345 i dla bieżącego przedziału czasowego:
PositionLastOpenedBarIndex("", -1, 12345);
5) Znaleźć indeks świecy, na której została otwarta ostatnia pozycja wśród wszystkich instrumentów finansowych, dowolnego typu, z dowolnym identyfikatorem i dla bieżącego przedziału czasowego:
PositionLastOpenedBarIndex();