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

MQL5 / Błędy

retcode 10025

10025 — TRADE_RETCODE_NO_CHANGES

Modyfikacja nie zmienia niczego — nowe wartości są identyczne z obecnymi.

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

Co ten kod znaczy

Serwer porównał parametry z zapytania z aktualnym stanem zlecenia lub pozycji i stwierdził, że nie ma czego zmieniać.

Skąd się bierze

  • trailing stop wyliczający raz po raz ten sam poziom
  • modyfikacja wysyłana bez porównania z obecną wartością
  • porównanie poziomów operatorem != na typie double, które nigdy nie jest fałszywe

Co z tym zrobić

Ten kod jest sygnałem, że kod wysyła zapytania bez potrzeby — a to prosta droga do 10024. Porównanie musi uwzględniać naturę typu double:

Wysyłamy tylko wtedy, gdy naprawdę jest zmiana
double obecny = PositionGetDouble(POSITION_SL);
if(MathAbs(nowySL - obecny) < _Point / 2.0)
   return false;                 // to jest ta sama cena

Porównanie nowySL != obecny na liczbach zmiennoprzecinkowych praktycznie zawsze zwraca prawdę — dlatego kod wygląda na poprawny, a mimo to zalewa serwer modyfikacjami.

Powiązane