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

MQL5 / Zlecenie

ORDER_REASON

Źródło, z którego zlecenie powstało. Dwie ostatnie wartości odsłaniają mechanizm, którego nie widać z zewnątrz:

long OrderGetInteger(ORDER_REASON);

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

Sześć wartości: ORDER_REASON_CLIENT, _MOBILE, _WEB, _EXPERT, _SL i _TP.

Dlaczego to nie jest oczywiste

Dwie ostatnie wartości odsłaniają mechanizm, którego nie widać z zewnątrz: stop loss i take profit to też zlecenia. Gdy cena dobija do poziomu zabezpieczającego, serwer tworzy zlecenie z powodem ORDER_REASON_SL albo _TP i to ono zamyka pozycję.

Dzięki temu w historii zleceń widać nie tylko to, co wysłał twój ekspert, ale też wszystko, co zrobił serwer w jego imieniu. Kod zliczający „ile zleceń wysłałem" po samym numerze magicznym policzy również te wygenerowane automatycznie, bo dziedziczą numer po pozycji.

Kod

ORDER_REASON
long powod = HistoryOrderGetInteger(bilet, ORDER_REASON);

switch((int)powod)
  {
   case ORDER_REASON_EXPERT: Print("zlecenie od eksperta"); break;
   case ORDER_REASON_SL:     Print("zlecenie z aktywacji stop lossa"); break;
   case ORDER_REASON_TP:     Print("zlecenie z aktywacji take profitu"); break;
   default:                  Print("zlecenie recznie albo z innego zrodla");
  }

Powiązane