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

MQL5 / Pozycja

POSITION_IDENTIFIER

Identyfikator pozycji, wspólny dla wszystkich jej transakcji. To jest jedyna rzecz, która pozwala złożyć historię pozycji w całość.

long PositionGetInteger(POSITION_IDENTIFIER);

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

Liczba przypisana pozycji w chwili powstania i niezmienna przez całe jej życie, także po częściowych zamknięciach i dokładaniu wolumenu.

Dlaczego to nie jest oczywiste

To jest jedyna rzecz, która pozwala złożyć historię pozycji w całość. Pozycja nie istnieje w historii jako obiekt — jest tylko zbiorem transakcji o wspólnym DEAL_POSITION_ID, a ten odpowiada właśnie identyfikatorowi, nie biletowi.

Praktyczna konsekwencja: raport „ile zarobiła ta pozycja" buduje się przez HistorySelectByPosition(identyfikator), a nie przez szukanie biletu w historii. Kod oparty na bilecie działa na rachunku, na którym obie liczby są równe, i przestaje działać u brokera, u którego nie są.

Kod

POSITION_IDENTIFIER
if(!PositionSelectByTicket(bilet))
   return;

long identyfikator = PositionGetInteger(POSITION_IDENTIFIER);

if(HistorySelectByPosition(identyfikator))
   PrintFormat("Pozycja %I64d ma %d transakcji w historii",
               identyfikator, HistoryDealsTotal());

Powiązane