bład wykonania 4404
4404 — ERR_HISTORY_BARS_LIMIT
Liczba świec ograniczona ustawieniami terminala, nie danymi brokera. To jest jedyny kod z rodziny historii, którego przyczyna leży w ustawieniach
1 fragment kodu z tej strony przeszedł przez kompilator MetaEditor build 6090, 2026-08-05.
2026-08-03 12:20:44.117 Wskaznik (EURUSD,M1) CopyRates zwrocilo 65000 z 200000, blad 4404Co ten kod znaczy
Żądano więcej świec, niż terminal przechowuje na wykresie. Ograniczenie pochodzi z ustawień platformy, a nie od brokera.
Skąd się bierze
- ustawienie Maksymalna liczba słupków na wykresie niższe niż żądanie
- wskaźnik o długim okresie na wykresie minutowym
- test na wieloletnim okresie przy domyślnych ustawieniach
- odczyt całej historii instrumentu jednym wywołaniem
Co z tym zrobić
To jest jedyny kod z rodziny historii, którego przyczyna leży w ustawieniach twojego terminala, a nie w danych. Znajdziesz je w Narzędzia → Opcje → Wykresy, pole z maksymalną liczbą słupków.
Konsekwencja jest niewygodna: ten sam kod u ciebie działa, a u użytkownika z domyślnymi ustawieniami zwraca mniej danych — i nie zgłasza tego głośno, bo CopyRates po prostu kopiuje mniej, niż poprosiłeś.
MqlRates swiece[];
ArraySetAsSeries(swiece, true);
int ile = 5000;
int skopiowane = CopyRates(_Symbol, _Period, 0, ile, swiece);
if(skopiowane < ile)
{
PrintFormat("Poproszono o %d swiec, dostano %d, blad %d. "
"Sprawdz Narzedzia > Opcje > Wykresy.",
ile, skopiowane, GetLastError());
ResetLastError();
}Rozsądniejsze niż podnoszenie limitu jest ograniczenie apetytu: wskaźnik liczący średnią z dwustu świec potrzebuje dwustu, a nie całej historii.