Przejdź do treści
MQL5 · MetaTrader 5 · po polsku
kod odczarowany

MQL5 / Pozycja

POSITION_TICKET

Bilet pozycji, unikalny numer nadany przez serwer. Bilet to nie to samo co identyfikator pozycji, choć przy prostych

long PositionGetInteger(POSITION_TICKET);

1 fragment kodu z tej strony przeszedł przez kompilator MetaEditor build 6090, 2026-08-05.

Liczba identyfikująca pozycję przez cały czas jej istnienia. Służy do wskazania pozycji w PositionSelectByTicket oraz w polu position zapytania handlowego.

Dlaczego to nie jest oczywiste

Bilet to nie to samo co identyfikator pozycji, choć przy prostych rachunkach obie liczby bywają identyczne. Bilet jest numerem obiektu w bazie serwera i może się zmienić przy operacjach, które technicznie tworzą pozycję na nowo — na przykład przy częściowym zamknięciu na części rachunków giełdowych.

Do wiązania transakcji z pozycją w historii służy POSITION_IDENTIFIER, a nie bilet. Pomylenie tych dwóch rzeczy daje raporty, w których część transakcji nie przypisuje się do żadnej pozycji.

Kod

POSITION_TICKET
for(int i = PositionsTotal() - 1; i >= 0; i--)
  {
   ulong bilet = PositionGetTicket(i);
   if(bilet == 0)
      continue;

   //--- PositionGetTicket od razu wybiera pozycje, ale jawne wybranie
   //--- czyni intencje czytelna i chroni przed pozniejsza edycja kodu
   if(!PositionSelectByTicket(bilet))
      continue;

   PrintFormat("bilet %I64u, identyfikator %I64d", bilet,
               PositionGetInteger(POSITION_IDENTIFIER));
  }

Powiązane