DEAL_TICKET
Numer transakcji w historii. `HistoryDealGetTicket(i)` przyjmuje indeks na liście, a nie numer
ulong HistoryDealGetTicket(ulong bilet, DEAL_TICKET);
1 fragment kodu z tej strony przeszedł przez kompilator MetaEditor build 6090, 2026-08-05.
Identyfikator wpisu w historii transakcji. Pobiera się go po indeksie z listy wczytanej przez HistorySelect.
Dlaczego to nie jest oczywiste
HistoryDealGetTicket(i) przyjmuje indeks na liście, a nie numer transakcji, i zwraca właśnie numer. To odwrotnie, niż sugeruje nazwa, i jest źródłem pętli, które nic nie znajdują.
Do odczytu właściwości służy potem HistoryDealGetDouble(bilet, ...) — z numerem, nie z indeksem. Pomylenie tych dwóch liczb nie daje błędu kompilacji ani komunikatu w dzienniku, tylko puste wyniki.
Kod
DEAL_TICKET
if(!HistorySelect(0, TimeCurrent()))
return;
for(int i = 0; i < HistoryDealsTotal(); i++)
{
//--- i to indeks, bilet to numer transakcji
ulong bilet = HistoryDealGetTicket(i);
if(bilet == 0)
continue;
//--- dalej pracujemy juz na numerze, nie na indeksie
double zysk = HistoryDealGetDouble(bilet, DEAL_PROFIT);
}