Resposta

Ordem executada no meio da barra e não no início ou no final da barra após reiniciar o MT4...

5 respostas

Karish

Customer, bbp_participant, community, sq-ultimate, 443 replies.

Perfil da visita

7 anos atrás #115240

Olá, estou com um problema...

 

O EA está funcionando bem de acordo com as regras e abre e fecha ordens na abertura/fechamento da barra,

Mas, digamos que eu reinicie minha plataforma MT4, quando ela abrir novamente e as regras forem cumpridas, ela abrirá uma ordem imediatamente no meio da barra sem esperar por uma nova barra formatada...

 

Quero que o EA espere por uma nova barra formatada e, em seguida, insira a ordem (como deveria) e não no primeiro tique ao reiniciar a plataforma MT4 ou assim...

 

obrigado.

0

Karish

Customer, bbp_participant, community, sq-ultimate, 443 replies.

Perfil da visita

7 anos atrás #137719

@Mark @Thomas ?..,

 

isso acontece comigo quando estou usando gráficos offline..., talvez algo a ver com "sqIsBarOpen" sob a função "drawStats()"?..., por favor, ajude o mais rápido possível..., porque quando estou reabrindo a plataforma MT4 com um EA que funciona em gráficos OFFLINE, ele simplesmente abre uma nova posição assim que o primeiro tick aparece, e não espera até que a nova barra seja aberta....,

 

esperando alguma ajuda...! obrigado!...

0

Karish

Customer, bbp_participant, community, sq-ultimate, 443 replies.

Perfil da visita

7 anos atrás #137740

Qualquer pessoa.............?

0

tomas262

Administrador, sq-ultimate, 2 respostas.

Perfil da visita

7 anos atrás #137759

Olá,

 

Parece-me que o evento de carregamento do gráfico/EA faz com que isBarOpen seja verdadeiro na função DrawStats. É por isso que a ação é acionada. Pedirei a Mark que verifique isso

0

Karish

Customer, bbp_participant, community, sq-ultimate, 443 replies.

Perfil da visita

7 anos atrás #137775

Olá,

 

Parece-me que o evento de carregamento do gráfico/EA faz com que isBarOpen seja verdadeiro na função DrawStats. É por isso que a ação é acionada. Pedirei a Mark que verifique isso

Obrigado, Thomas, gostaria de saber como posso corrigir esse problema o mais rápido possível...\\

Mais uma vez, obrigado, vou aguardar uma resposta...!

0

Marca Fric

Administrador, sq-ultimate, 2 respostas.

Perfil da visita

7 anos atrás #137989

Karish, dei uma olhada e, sim, é assim que funciona. Quando você inicia o EA no meio da barra, ele pode abrir a ordem imediatamente, sem esperar pelo início de uma nova barra.

 

O reconhecimento da abertura de uma nova barra verifica se ela é o primeiro tick da barra atual, o que acontece quando você acaba de iniciar o EA no meio da barra.

 

Na verdade, é bastante difícil fazer com que ele funcione apenas para as novas barras abertas e não para a primeira barra com a qual você inicia o EA.

 

Deve ser possível alterar um pouco o código MQL - encontre uma função drawStats() em que a variável sqIsBarOpen esteja definida.

 

Altere a condição da seguinte forma:

 

   if(tmp != Time[0] && Volume[0] < 5 ) {}
      tmp = Time[0];
      open = Open[0];
      sqIsBarOpen = true;
   {} else {
      sqIsBarOpen = false;
   }
 
Isso verificará se o volume do tique verificado também deve ser menor que 5, de modo que filtrará os casos em que ele for verificado no meio da barra.
Teste-o antes de usá-lo.

Marcar
EstratégiaQuant arquiteto

0

Visualizando 5 respostas - 1 até 5 (de um total de 5)