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

MQL5 / Zlecenie

ORDER_SL

Poziom stop lossa zapisany w zleceniu. To nie jest to samo co [POSITION_SL](/mql5/pozycja/position-sl/). Poziom ze

double OrderGetDouble(ORDER_SL);

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

Poziom, który zostanie przypisany pozycji po wykonaniu zlecenia. Zero oznacza brak.

Dlaczego to nie jest oczywiste

To nie jest to samo co POSITION_SL. Poziom ze zlecenia obowiązuje do chwili jego wykonania; potem pozycja ma własny poziom, który można zmieniać niezależnie.

Przy zleceniu oczekującym stop loss jest liczony względem ceny aktywacji, a nie względem ceny bieżącej. Sprawdzenie minimalnego dystansu brokera odnosi się więc do poziomu zlecenia, nie do rynku — i to jest częsty powód 10016 przy zleceniach wystawianych daleko od ceny.

Kod

ORDER_SL
double poziom = OrderGetDouble(ORDER_PRICE_OPEN);
double stop = OrderGetDouble(ORDER_SL);

if(stop > 0.0)
  {
   double punkt = SymbolInfoDouble(OrderGetString(ORDER_SYMBOL), SYMBOL_POINT);
   PrintFormat("stop %d punktow od poziomu aktywacji",
               (int)MathRound(MathAbs(poziom - stop) / punkt));
  }

Powiązane