retcode 10029
10029 — TRADE_RETCODE_FROZEN
Zlecenie albo pozycja znajduje się w strefie zamrożenia i nie można jej teraz modyfikować.
1 fragment kodu z tej strony przeszedł przez kompilator MetaEditor build 6090, 2026-08-05.
Co ten kod znaczy
Broker definiuje wokół ceny strefę SYMBOL_TRADE_FREEZE_LEVEL. Zlecenie, którego poziom w niej się znajdzie, jest chronione przed modyfikacją i anulowaniem, bo lada chwila może się aktywować.
Skąd się bierze
- próba przesunięcia stop lossa tuż przy cenie
- anulowanie zlecenia oczekującego, do którego cena już dobiła
- trailing stop bez uwzględnienia poziomu zamrożenia
Co z tym zrobić
Poziom zamrożenia trzeba sprawdzić przed każdą modyfikacją:
long zamrozenie = SymbolInfoInteger(symbol, SYMBOL_TRADE_FREEZE_LEVEL);
double strefa = zamrozenie * SymbolInfoDouble(symbol, SYMBOL_POINT);
if(MathAbs(tick.bid - obecnySL) < strefa)
return false; // nie ruszamy, poczekamy na kolejny tickWielu brokerów podaje tu zero, co znaczy „brak strefy". Kod odporny sprawdza tę wartość mimo wszystko, bo ten sam ekspert prędzej czy później trafi na brokera, który zera nie podaje.