Funkcje sprawdzające:   IsTradeAllowed()

Funkcja bool IsTradeAllowed() zwraca true jeśli skrypt lub strategia automatyczna może zawierać transakcje handlowe oraz strumień handlowy nie jest zajęty, inaczej zwraca false (przykład 1). Drugi sposób wywołania tej funkcji pozwala sprawdzić możliwości zawarcia transakcji dla określonego instrumentu finansowego w określonym czasie (przykład 2). Więcej informacji można znaleźć w specyfikacji MQL4.


Przykład 1

#property strict
void OnStart()
  {
//--- sprawdzić czy skrypt może zawierać transakcje handlowe
   if(IsTradeAllowed() == true)
      Print("Skrypt może zawierać transakcje handlowe.");
   else
      Print("Skrypt nie może zawierać transakcje handlowe.");
  }

Rys. 1. Przykład stosowania funkcji IsTradeAllowed().


Należy pamietać o włączeniu przycisku AutoTrading (rys. 1) inaczej skrypt poinformuje o braku możliwości zawierania transakcji. Zamiast IsTradeAllowed() zalecane jest stosowanie zapisu (bool)MQLInfoInteger(MQL_TRADE_ALLOWED)


Przykład 2

#property strict
void OnStart()
  {
//--- nazwy instrumentów finansowych
   string Symbol_1 = "USDCAD";
   string Symbol_2 = "NoSuchSymbol";

//--- daty zawierania transakcji handlowych
   datetime Time_1 = StringToTime("2016.09.23 23:59:59"); // piątek, 23:59:59
   datetime Time_2 = StringToTime("2016.09.24 00:00:00"); // sobota, 00:00:00

//--- sprawdzić USDCAD, piątek, 22:59:59
   if(IsTradeAllowed(Symbol_1, Time_1) == true)
      Print("1) ",Symbol_1,", ",Time_1,": można zawierać transakcje.");
   else
      Print("1) ",Symbol_1,", ",Time_1,": nie można zawierać transakcje.");

//--- sprawdzić USDCAD, piątek, 23:00:00
   if(IsTradeAllowed(Symbol_1, Time_2) == true)
      Print("2) ",Symbol_1,", ",Time_2,": można zawierać transakcje.");
   else
      Print("2) ",Symbol_1,", ",Time_2,": nie można zawierać transakcje.");

//--- sprawdzić NoSuchSymbol, piątek, 22:59:59
   if(IsTradeAllowed(Symbol_2, Time_1) == true)
      Print("3) ",Symbol_2,", ",Time_1,": można zawierać transakcje.");
   else
      Print("3) ",Symbol_2,", ",Time_1,": nie można zawierać transakcje.");
  }

Rys. 2. Przykład stosowania funkcji IsTradeAllowed().