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));
}