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
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));
}