Funkcje własne:   GetOrderTicket()

Funkcja int GetOrderTicket() zwraca ticket orderu (oczekującego zlecenia/otwartej pozycji) na podstawie symbolu, typu orderu i identyfikatora (magic number). Ma następujące argumenty:

f_symbol - nazwa instrumentu finansowego. Wartość domyślna = "", tj. wszystkie instrumenty. W przypadku _Symbol funkcja zwróci ticket orderu dla instrumentu finansowego tego wykresu notowań, gdzie program MQL4 zostanie uruchomiony.
f_cmd - typ orderu. Wartość domyślna = -1, tj. wszystkie typy .
f_magic - identyfikator (magic number). Wartość domyślna = -1, tj. wszystkie ordery.

f_symbol - nazwa instrumentu finansowego. Wartość domyślna = "", tj. wszystkie instrumenty. W przypadku _Symbol funkcja zwróci ticket orderu dla instrumentu finansowego tego wykresu notowań, gdzie program MQL4 zostanie uruchomiony.

f_cmd - typ orderu. Wartość domyślna = -1, tj. wszystkie typy .

f_magic - identyfikator (magic number). Wartość domyślna = -1, tj. wszystkie ordery.

Jeśli kryteriom odpowiada więcej niż jeden order, funkcja zwróci ticket tego, który został wystawiony najpóźniej. Jeśli poszukiwany order nie istnieje, funkcja zwróci -1.

int GetOrderTicket(string f_symbol="", // instrument finansowy
                   int    f_cmd=-1,    // typ orderu
                   int    f_magic=-1)  // identyfikator
  {
   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))
            return OrderTicket();
   return -1;
  }

1) Znaleźć ticket otwartej pozycji dla EURUSD, na sprzedaż i z identyfikatorem 12345:

GetOrderTicket("EURUSD", OP_SELL, 12345);

2) Znaleźć ticket orderu dla EURUSD, dowolnego typu i z identyfikatorem 12345:

GetOrderTicket("EURUSD", -1, 12345);

3) Znaleźć ticket oczekującego zlecenia dla EURUSD, typu "Sell Stop" i z dowolnym identyfikatorem:

GetOrderTicket("EURUSD", OP_SELLSTOP);

4) Znaleźć ticket orderu wśród wszystkich instrumentów finansowych, dowolnego typu, który ma identyfikator 12345:

GetOrderTicket("", -1, 12345);