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

MQL5 / Błędy

rodzina 4601–4812

Kody błędów wskaźników i buforów

Tworzenie wskaźników, dostęp do ich buforów i przydział pamięci. Pełna lista kodów z tej rodziny wraz z tym, co je wywołuje.

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

Tworzenie wskaźników i dostęp do ich buforów. Tu warto rozróżnić dwa momenty: błąd przy tworzeniu uchwytu i błąd przy kopiowaniu danych.

Przy tworzeniu dostaniesz 4802, 4805 albo kod o złych parametrach. Przy kopiowaniu — 4806, gdy danych jeszcze nie ma, albo 4807, gdy uchwyt przestał być ważny. To dwie różne przyczyny, a bywają mylone, bo oba objawiają się zwróceniem minus jedynki przez CopyBuffer.

Pełna lista

KodStałaCo znaczy
4601ERR_BUFFERS_NO_MEMORYza mało pamięci na przydział buforów wskaźnika
4602ERR_BUFFERS_WRONG_INDEXzły indeks bufora wskaźnika
4603ERR_CUSTOM_WRONG_PROPERTYzły identyfikator właściwości wskaźnika własnego
4801ERR_INDICATOR_UNKNOWN_SYMBOLnieznany symbol
4802ERR_INDICATOR_CANNOT_CREATEnie da się utworzyć wskaźnika
4803ERR_INDICATOR_NO_MEMORYza mało pamięci na dodanie wskaźnika
4804ERR_INDICATOR_CANNOT_APPLYwskaźnika nie da się nałożyć na inny wskaźnik
4805ERR_INDICATOR_CANNOT_ADDbłąd nakładania wskaźnika na wykres
4806ERR_INDICATOR_DATA_NOT_FOUNDżądanych danych nie znaleziono
4807ERR_INDICATOR_WRONG_HANDLEzły uchwyt wskaźnika
4808ERR_INDICATOR_WRONG_PARAMETERSzła liczba parametrów przy tworzeniu wskaźnika
4809ERR_INDICATOR_PARAMETERS_MISSINGbrak parametrów przy tworzeniu wskaźnika
4810ERR_INDICATOR_CUSTOM_NAMEpierwszym parametrem tablicy musi być nazwa wskaźnika
4811ERR_INDICATOR_PARAMETER_TYPEzły typ parametru w tablicy przy tworzeniu wskaźnika
4812ERR_INDICATOR_WRONG_INDEXzły indeks żądanego bufora wskaźnika

Jak czytać te kody w praktyce

Odczyt kodu błędu bez zgadywania
//--- zerujemy przed operacja, ktorej wynik chcemy sprawdzic
ResetLastError();

double bufor[];
ArraySetAsSeries(bufor, true);

if(CopyBuffer(uchwyt, 0, 0, 10, bufor) < 10)
  {
   int kod = GetLastError();
   PrintFormat("nie udalo sie skopiowac danych, kod %d", kod);
   ResetLastError();
   return;
  }

Powiązane