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 4304Co 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ść:
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ę.