Cannot Set timer

 
int OnInit()
  {

//+------------------------------------------------------------------+
//| Buffers e plotagens                                              |
//+------------------------------------------------------------------+
   SetIndexBuffer(0,CompraBuffer,INDICATOR_DATA);
   SetIndexBuffer(1,VendaBuffer,INDICATOR_DATA);

//--- Indicador Visual compra e venda
   SetIndexStyle  (0,DRAW_ARROW,0,3);
   SetIndexArrow  (0,241);
   SetIndexBuffer (0,CompraBuffer);
   SetIndexStyle  (1,DRAW_ARROW,0,3);
   SetIndexBuffer (1,VendaBuffer);
   SetIndexArrow  (1,242);
   
   EventSetTimer(1);



   return(INIT_SUCCEEDED);
  }


Estou tentando automatizar as entradas do meu indicador porém ao rodar o indicador no robo de teste é apresentado falha ao definir o temporizador.
Já tentei retirar a função, o erro some mas tbm o indicador apresenta algumas falhas no funcionamento.

Alguém consegue me ajudar com esse erro ?

 

Olá @israel marcos

Em caso de sucesso retorna verdadeiro, caso contrário falso. A fim de obter o código de erro, a função GetLastError() deve ser chamada.

Obtenha o código do erro para facilitar



 
israel marcos:
int OnInit()
  {

//+------------------------------------------------------------------+
//| Buffers e plotagens                                              |
//+------------------------------------------------------------------+
   SetIndexBuffer(0,CompraBuffer,INDICATOR_DATA);
   SetIndexBuffer(1,VendaBuffer,INDICATOR_DATA);

//--- Indicador Visual compra e venda
   SetIndexStyle  (0,DRAW_ARROW,0,3);
   SetIndexArrow  (0,241);
   SetIndexBuffer (0,CompraBuffer);
   SetIndexStyle  (1,DRAW_ARROW,0,3);
   SetIndexBuffer (1,VendaBuffer);
   SetIndexArrow  (1,242);
   
   EventSetTimer(1);



   return(INIT_SUCCEEDED);
  }


Estou tentando automatizar as entradas do meu indicador porém ao rodar o indicador no robo de teste é apresentado falha ao definir o temporizador.
Já tentei retirar a função, o erro some mas tbm o indicador apresenta algumas falhas no funcionamento.

Alguém consegue me ajudar com esse erro ?

Eu acho que no testador o indicador que foi chamado por um robô não pode acionar o timer. Nesse caso quem gerencia o timer é o EA que foi chamado diretamente.

Não vi isso na documentação, mas me recordo de ter feito uns testes assim e ter chegado à esta conclusão...


Teste rodar um backteste do indicador sem o robô. Nesse caso o timer deve funcionar. Teste e responde aqui...


Vamos ver se alguém corrobora minha resposta ou se nos mostra que estou errado.


Sucesso e bons trades!

 
Ricardo Branco #:

Eu acho que no testador o indicador que foi chamado por um robô não pode acionar o timer. Nesse caso quem gerencia o timer é o EA que foi chamado diretamente.

Não vi isso na documentação, mas me recordo de ter feito uns testes assim e ter chegado à esta conclusão...


Teste rodar um backteste do indicador sem o robô. Nesse caso o timer deve funcionar. Teste e responde aqui...


Vamos ver se alguém corrobora minha resposta ou se nos mostra que estou errado.


Sucesso e bons trades!

Na verdade @Ricardo Branco ambos eventos Timer irão funcionar

Agora, a resposta do evento Timer será dada pela função OnTimer() da EA.

Ou seja, se você setar o EventSetTimer no indicador, o tempo que será calculado é o dele, até que você defina um novo no EA que, deverá ser inferior para entrar antes, visto que eles são colocados em fila, portanto, se o tempo que eu adicionar no EA for maior do que aquele setado no indicador, ele não irá inicializar. 

Há meios de lidar com isso, mas a que custo, não é mesmo? 

Podemos até pensar numa situação onde utilizaremos de uma mesma função através de um arquivo include ou extern que estaria setando os tempos no indicador e no EA, conforme alguma regra que definirmos, depende muito do modelo de negócio e necessidade mas, apesar das dificuldade é possível.

Agora, quanto a falha que o @israel marcos menciona, ainda não sei ao que se refere.