Verificar se algotrading foi desabilitado durante a operação.

 

Grandes Jedis da progração boa tarde.

Eu gostaria de emitir um alerta no EA caso por algum motivo o AlgoTrading seja desabilitado no terminal. Vocês sabem se o desabilitar do AlgoTrading gera algum evento que eu possa verificar via código e emitir esse alerta ou a única maneira é usar o OnTimer e ficar checando a função TerminalInfoInteger(TERMINAL_TRADE_ALLOWED) de tempo em tempo?

Obrigado.

 
simonbm:

Grandes Jedis da progração boa tarde.

Eu gostaria de emitir um alerta no EA caso por algum motivo o AlgoTrading seja desabilitado no terminal. Vocês sabem se o desabilitar do AlgoTrading gera algum evento que eu possa verificar via código e emitir esse alerta ou a única maneira é usar o OnTimer e ficar checando a função TerminalInfoInteger(TERMINAL_TRADE_ALLOWED) de tempo em tempo?

Obrigado.

Bom dia,

não entendi bem sua questão, pois o evento é LIGAR/DESLIGAR TERMINAL_TRADE_ALLOWED e o programa testa o estado de TERMINAL_TRADE_ALLOWED, se está LIGADO ou se está DESLIGADO.

 
simonbmGrandes Jedis da progração boa tarde. Eu gostaria de emitir um alerta no EA caso por algum motivo o AlgoTrading seja desabilitado no terminal. Vocês sabem se o desabilitar do AlgoTrading gera algum evento que eu possa verificar via código e emitir esse alerta ou a única maneira é usar o OnTimer e ficar checando a função TerminalInfoInteger(TERMINAL_TRADE_ALLOWED) de tempo em tempo? Obrigado.

Bom dia!!


A verificação é feita através da função mesmo. Existem outras verificações que devem ser consideradas também:

//+--------------------------------------------------------------------------------------------------------------------+
//| Expert tick function                                                                                               |
//+--------------------------------------------------------------------------------------------------------------------+
void OnTick()
  {
//--- Checks if is trade allowed (Trade Permission)
   if(!TerminalInfoInteger(TERMINAL_TRADE_ALLOWED) || !MQLInfoInteger(MQL_TRADE_ALLOWED) || !AccountInfoInteger(ACCOUNT_TRADE_EXPERT) || !AccountInfoInteger(ACCOUNT_TRADE_ALLOWED) || SymbolInfoInteger(_Symbol, SYMBOL_TRADE_MODE) == SYMBOL_TRADE_MODE_DISABLED)
     {
      Comment("Trade is not allowed...");
      return;
     }
  }
Razão: