Bom dia, amigos!
Estou com o seguinte problema. Projetei o EA e existem momentos q as condições são atendidas e ele executa ordens normalmente e existe momentos com as mesmas condições q ele não as excuta. Alguém poderia rever algo importante que eu tenha deixado passar ?
A ideia do EA e a seguinte: - Capturar os dados do primeiro candle do dia em 5M e coloca-las em uma variavel estatica para acessar.
- Verificar de o RSI é menor que 20 e ativar uma variavel.
- Se a variavel ativa executar uma ordem de compra quando a aberutura do candle anterior for menor que a mínima do primeiro candle e o preço for igual a esta mínima.
- Caso comprado fazer uma compra 400 pontos abaixo da mínima do primeiro candle.
- Caso a variavel ativa e não existir ordens abertas, e ordem de compra com o lote dobrado quando atingir 400 pontos abaixo da minima.
Alguém pode ajudar ?
O EA está assim:
André, se vc tiver qualquer posição em aberto de outro ativo vai impactar no seu código. Faça uma mudança ao invés de utilizar PositionsTotal, utilize PositionSelect(symbol).
André, se vc tiver qualquer posição em aberto de outro ativo vai impactar no seu código. Faça uma mudança ao invés de utilizar PositionsTotal, utilize PositionSelect(symbol).
Olhando bem por cima, eu acho que seu problema eh que o codigo nao pega a vela de interesse quando ela esta fechada. Por exemplo, o copy rates nao parece ter nenhuma protecao, entao vai sempre pegando os 3 ultimos, entretanto o contador limita a copia da vela no numero 2 e isso pelo que entendi eh a primeira vela em um momento. Na sua explicacao, ali pra cima parecia que tu queria pegar a segunda vela do dia como de interesse e nao seria isso q esta acontecendo.
Olhando bem por cima, eu acho que seu problema eh que o codigo nao pega a vela de interesse quando ela esta fechada. Por exemplo, o copy rates nao parece ter nenhuma protecao, entao vai sempre pegando os 3 ultimos, entretanto o contador limita a copia da vela no numero 2 e isso pelo que entendi eh a primeira vela em um momento. Na sua explicacao, ali pra cima parecia que tu queria pegar a segunda vela do dia como de interesse e nao seria isso q esta acontecendo.
No caso de captura é do primeiro candle do dia e esta funcionando perfeitamente, desde que se inicie o bot antes do inicio do pregão.
O que percebo é que em algumas condições da compra ele nao executa, mesmo tudo estando dentro das condições,
if(ultimoTick.last==LowOpenBar && contador=="COMPRA" && candle[0].open<LowOpenBar && PositionsTotal()==0)ou if(ultimoTick.last==(LowOpenBar-400) && contador=="COMPRA" && RSICloseBar>LowOpenBar && PositionsTotal()==0)ou if(ultimoTick.last==(LowOpenBar-400) && PositionsTotal()==1 && PrecoM==1 )
mesmo relantado isso tudo relatado no Comment e conferindo.
No caso de captura é do primeiro candle do dia e esta funcionando perfeitamente, desde que se inicie o bot antes do inicio do pregão.
O que percebo é que em algumas condições da compra ele nao executa, mesmo tudo estando dentro das condições,
mesmo relantado isso tudo relatado no Comment e conferindo.
Boa noite André!
Para identificar corretamente o candle independente da hora que iniciar o robô, você pode utilizar iBarShift(), como nesse exemplo . . .
Para identificar o motivo da não execução das ordens, você pode consultar as abas Experts e Diário, da Caixa de Ferramentas do MT5.

- 2019.12.29
- www.mql5.com

- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Você concorda com a política do site e com os termos de uso
Bom dia, amigos!
Estou com o seguinte problema. Projetei o EA e existem momentos q as condições são atendidas e ele executa ordens normalmente e existe momentos com as mesmas condições q ele não as excuta. Alguém poderia rever algo importante que eu tenha deixado passar ?
A ideia do EA e a seguinte: - Capturar os dados do primeiro candle do dia em 5M e coloca-las em uma variavel estatica para acessar.
- Verificar de o RSI é menor que 20 e ativar uma variavel.
- Se a variavel ativa executar uma ordem de compra quando a aberutura do candle anterior for menor que a mínima do primeiro candle e o preço for igual a esta mínima.
- Caso comprado fazer uma compra 400 pontos abaixo da mínima do primeiro candle.
- Caso a variavel ativa e não existir ordens abertas, e ordem de compra com o lote dobrado quando atingir 400 pontos abaixo da minima.
Alguém pode ajudar ?
O EA está assim: