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