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

MQL5 / Błędy

bład wykonania 5002

5002 — ERR_WRONG_FILENAME

Nieprawidłowa nazwa pliku — najczęściej ścieżka spoza piaskownicy. Program MQL5 widzi wyłącznie dwa miejsca na dysku: katalog `MQL5\Files`

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

2026-08-03 13:55:02.388  Skrypt (EURUSD,H1)  FileOpen zwrocilo INVALID_HANDLE, blad 5002

Co ten kod znaczy

Nazwa pliku narusza zasady piaskownicy MQL5 albo zawiera znaki, których system nie dopuszcza.

Skąd się bierze

  • ścieżka bezwzględna, na przykład C:\\dane\\plik.csv
  • wyjście poza katalog przez ..
  • znaki zabronione w nazwie: dwukropek, gwiazdka, znak zapytania
  • próba zapisu do katalogu, którego nie ma

Co z tym zrobić

Program MQL5 widzi wyłącznie dwa miejsca na dysku: katalog MQL5\Files swojego terminala oraz katalog wspólny, dostępny po podaniu flagi FILE_COMMON. Wszystko poza nimi nie istnieje, niezależnie od uprawnień systemowych.

Ścieżki, które działają, i te, które nie
//--- dziala: sciezka wzgledna wewnatrz piaskownicy
int uchwyt = FileOpen("raporty\\wyniki.csv",
                      FILE_WRITE | FILE_CSV | FILE_ANSI, ';');

//--- dziala: katalog wspolny, widoczny takze dla agenta testera
int wspolny = FileOpen("wyniki.csv",
                       FILE_WRITE | FILE_CSV | FILE_ANSI | FILE_COMMON, ';');

if(uchwyt == INVALID_HANDLE)
   PrintFormat("Blad %d. Katalog piaskownicy: %s",
               GetLastError(), TerminalInfoString(TERMINAL_DATA_PATH));

Podkatalogi wewnątrz piaskownicy są dozwolone i tworzą się same przy zapisie. Ukośnik w łańcuchu trzeba podwoić, bo pojedynczy rozpoczyna sekwencję sterującą — to drugi najczęstszy powód tego kodu.

Powiązane