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

MQL5 / Transakcja

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

Powiązane