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
if(!PositionSelectByTicket(bilet))
return;
long identyfikator = PositionGetInteger(POSITION_IDENTIFIER);
if(HistorySelectByPosition(identyfikator))
PrintFormat("Pozycja %I64d ma %d transakcji w historii",
identyfikator, HistoryDealsTotal());