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

MQL5 / Instrument

SYMBOL_TRADE_MODE

Jakie operacje są w ogóle dozwolone na tym instrumencie. Ta wartość zmienia się w trakcie życia instrumentu, a nie jest stałą

long SymbolInfoInteger(string symbol, SYMBOL_TRADE_MODE);

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

Pięć możliwych wartości: SYMBOL_TRADE_MODE_DISABLED, _LONGONLY, _SHORTONLY, _CLOSEONLY i _FULL. Ostatnia oznacza brak ograniczeń.

Dlaczego to nie jest oczywiste

Ta wartość zmienia się w trakcie życia instrumentu, a nie jest stałą cechą. Kontrakt terminowy przechodzi w tryb CLOSEONLY na kilka dni przed wygaśnięciem. Akcja bywa przełączana w ten tryb przed zawieszeniem obrotu. Broker wprowadza go także przy wycofywaniu instrumentu z oferty.

Ekspert sprawdzający tryb wyłącznie w OnInit będzie przez kilka dni wysyłał zlecenia odrzucane kodem 10044 i zgłaszał je jako niezrozumiały błąd.

Kod

SYMBOL_TRADE_MODE
//--- sprawdzenie przed każdym wejściem, nie tylko przy starcie
bool WolnoOtwierac(const string symbol)
  {
   long tryby = SymbolInfoInteger(symbol, SYMBOL_TRADE_MODE);

   if(tryby == SYMBOL_TRADE_MODE_DISABLED)
     {
      PrintFormat("%s: handel wylaczony", symbol);
      return false;
     }

   if(tryby == SYMBOL_TRADE_MODE_CLOSEONLY)
     {
      PrintFormat("%s: wolno tylko zamykac pozycje", symbol);
      return false;
     }

   return true;
  }

Powiązane