SYMBOL_ORDER_MODE
Maska bitowa typów zleceń dozwolonych dla instrumentu. Najczęściej pomijane bity to `SYMBOL_ORDER_SL` i `SYMBOL_ORDER_TP`. Istnieją
long SymbolInfoInteger(string symbol, SYMBOL_ORDER_MODE);
1 fragment kodu z tej strony przeszedł przez kompilator MetaEditor build 6090, 2026-08-05.
Mówi, czy instrument przyjmuje zlecenia rynkowe, limit, stop, stop limit, poziomy stop loss i take profit oraz zamykanie pozycją przeciwstawną.
Dlaczego to nie jest oczywiste
Najczęściej pomijane bity to SYMBOL_ORDER_SL i SYMBOL_ORDER_TP. Istnieją instrumenty, na których nie da się w ogóle ustawić poziomów zabezpieczających przy zleceniu — wyjściem musi zarządzać sam ekspert. Kod wysyłający zapytanie z wypełnionymi polami sl i tp dostaje wtedy 10016 i wygląda to na błąd w wyliczeniu poziomów, którym nie jest.
Bit SYMBOL_ORDER_CLOSEBY decyduje o dostępności zamykania pozycji przeciwstawną — operacji, która na rachunkach hedging bywa tańsza niż dwa osobne zamknięcia.
Kod
long tryby = SymbolInfoInteger(symbol, SYMBOL_ORDER_MODE);
bool wolnoOczekujace = ((tryby & SYMBOL_ORDER_LIMIT) == SYMBOL_ORDER_LIMIT);
bool wolnoStopy = ((tryby & SYMBOL_ORDER_SL) == SYMBOL_ORDER_SL);
if(!wolnoStopy)
Print("Ten instrument nie przyjmuje stop lossa w zleceniu - "
"wyjsciem musi zarzadzac ekspert.");