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