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

MQL5 / Błędy

bład wykonania 4304

4304 — ERR_MARKET_LASTTIME_UNKNOWN

Czas ostatniego ticku nieznany, bo instrument nie miał jeszcze żadnego kwotowania. To jest kod, który najczęściej zaskakuje przy starcie terminala. Ekspert

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

2026-08-03 07:01:12.005  Ekspert (EURUSD,H1)  SymbolInfoTick(XAUUSD) zwrocilo falsz, blad 4304

Co ten kod znaczy

Terminal nie ma dla tego instrumentu ani jednego ticku, więc nie potrafi podać czasu ostatniego kwotowania ani samych cen.

Skąd się bierze

  • symbol dodany do okna Rynek przed chwilą
  • weekend albo przerwa: instrument nie był jeszcze kwotowany w tej sesji
  • start terminala przed otwarciem rynku
  • instrument, którym broker nie handluje w tym momencie

Co z tym zrobić

To jest kod, który najczęściej zaskakuje przy starcie terminala. Ekspert uruchamia się, wywołuje SymbolInfoTick, dostaje fałsz i uznaje, że coś jest zepsute — a po prostu pierwszy tick jeszcze nie przyszedł.

Poprawna reakcja to nie próba naprawy, tylko cierpliwość:

Brak ticku to stan przejściowy, nie awaria
MqlTick tick;

if(!SymbolInfoTick(symbol, tick))
  {
   int kod = GetLastError();
   ResetLastError();

   if(kod == 4304)
      return;            // jeszcze nie bylo kwotowania, sprobujemy pozniej

   PrintFormat("Nieoczekiwany blad odczytu ceny %s: %d", symbol, kod);
   return;
  }

Odróżnienie tego kodu od innych ma znaczenie praktyczne: przy 4304 wystarczy poczekać, przy 4302 trzeba dodać symbol do okna Rynek, a przy 4301 — poprawić nazwę.

Powiązane