Abrir nova posição apenas num novo Candle

 

Fala pessoal;

Gostaria de uma ajuda. Como faço para abrir uma nova posição apenas quando um novo candle se formar?

O meu EA da um sinal de compra ou venda, atinge meu alvo mas continua abrindo a posição no mesmo candle por causa do sinal.

Obrigado desde já.




 
tito.vinicius:

Fala pessoal;

Gostaria de uma ajuda. Como faço para abrir uma nova posição apenas quando um novo candle se formar?

O meu EA da um sinal de compra ou venda, atinge meu alvo mas continua abrindo a posição no mesmo candle por causa do sinal.

Obrigado desde já.




Olá  tito.vinicius, essa é uma das perguntas clássicas desse fórum, e ler o artigo abaixo é minha recomendação para encontrares a melhor solução para isso.

https://www.mql5.com/pt/articles/159

Sds.,
Rogério Figurelli

Handler de evento "nova barra"
Handler de evento "nova barra"
  • www.mql5.com
Os autores dos indicadores e especialistas sempre estiveram interessados em escrever o código compacto em termos de tempo de execução. Você pode resolver este problema a partir de diferentes ângulos. A partir deste amplo tópico neste artigo, cobriremos o problema, que aparentemente foi solucionado: verifique por uma nova barra. Este é um meio...
 
Rogerio Figurelli:

Olá  tito.vinicius, essa é uma das perguntas clássicas desse fórum, e ler o artigo abaixo é minha recomendação para encontrares a melhor solução para isso.

https://www.mql5.com/pt/articles/159

Sds.,
Rogério Figurelli

Coloquei no meu código e ainda está comprando várias vezes.

Será que estou fazendo algo errado?

  if((WorkingHour() && !current_chart.isNewBar(new_time)) && ma34[2] < ma20[2] && currentMA34 > currentMA20)
     {OrderEntry(0);}

   if((WorkingHour() && !current_chart.isNewBar(new_time)) && ma34[2] > ma17[2] && currentMA34 < currentMA17)
     {OrderEntry(1);}
 
tito.vinicius:

Coloquei no meu código e ainda está comprando várias vezes.

Será que estou fazendo algo errado?

Olá  tito.vinicius, examinando seu código e o retorno do método isNewBar() no referido documento, me parece que você está com a lógica invertida.

Ou seja, ao invés de ...

!current_chart.isNewBar(new_time)

deveria ser ...

current_chart.isNewBar(new_time)

ou ainda (conforme o método usado, retornando um inteiro ao invés de um booleano) ...

current_chart.isNewBar()>0


Sds.,
Rogério Figurelli

 
tito.vinicius:

Fala pessoal;

Gostaria de uma ajuda. Como faço para abrir uma nova posição apenas quando um novo candle se formar?

O meu EA da um sinal de compra ou venda, atinge meu alvo mas continua abrindo a posição no mesmo candle por causa do sinal.

Obrigado desde já.




cara vc pode pegar o preço do candle e comparar quando o preço for diferente, ou pegar o índice do candle e comparar quando o índice for diferente, existem várias formas
 
Edilson Domingos:
cara vc pode pegar o preço do candle e comparar quando o preço for diferente, ou pegar o índice do candle e comparar quando o índice for diferente, existem várias formas

Olá  Edilson Domingos, pela sua lógica, o que garante que o preço do novo candle irá ser diferente?
Sds.,
Rogério Figurelli

 
Rogerio Figurelli:

Olá  Edilson Domingos, pela sua lógica, o que garante que o preço do novo candle irá ser diferente?
Sds.,
Rogério Figurelli

O tempo dele, obter o time do candle
 

Hi, I know it's an old post, but if someone shows up here, I leave the simple method I use for this problem.

I don't like to complicate things too much.

iBars

iBars

Returns the number of bars on the specified chart.

If the number of bars has increased, then you have changed bars. Timeframe independent.

lol

Strong hug

 
AzATantra 2015:

Hi, I know it's an old post, but if someone shows up here, I leave the simple method I use for this problem.

I don't like to complicate things too much.

iBars

iBars

Returns the number of bars on the specified chart.

If the number of bars has increased, then you have changed bars. Timeframe independent.

lol

Strong hug

Olá, este fórum é em Português, por que está postando em Inglês? 

Razão: