Galera, estou com um problema e não consigo resolver.. Quero que o preço atual do ativo quando for menor que a Banda de Bollinger inferior, abra uma compra e vice versa.. Alguém pode me ajudar por favor? O E.A não abre de acordo o comando.. Segue o Código!!
Existem alguns exemplos no CodeBase que voce poderia comparar, e, evidentemente, adequar para a B3 (caso seja seu objetivo). Veja abaixo:
Exemplo 1:
https://www.mql5.com/pt/code/166
Exemplo 2:
Existem alguns exemplos no CodeBase que voce poderia comparar, e, evidentemente, adequar para a B3 (caso seja seu objetivo). Veja abaixo:
Exemplo 1:
https://www.mql5.com/pt/code/166
Exemplo 2:
Grato, Joscelino! Analisei os exemplos que me passou, mas não consegui identificar o Erro.. o EA ainda insiste em não seguir a lógica de Compra somente quando o Preço Atual for menor que a BB inferior e vice versa..
Os códigos não são necessariamente para você encontrar "erros", mas sim para efetuar comparação e promover ajustes em seu robô (se necessário).
Em seu lugar eu iria retirar as funções CopyBuffer() de OnTick() e inseri-las em OnTimer().
Feito isso, executaria um "Print" de "mediaBBArray", "upperBBArray" e "lowerBBArray" para verificar se estão sendo calculados os valores corretamente. Para isso, insira o indicador BB no gráfico e compare com os valores impressos, utilizando-se do cursor, observando a janela de dados.
Por fim, sugiro que vá mais devagar. Pouco tempo depois de te colocar as dicas, você já postou que comparou tudo. Eu não conseguiria fazer isso tao rápido e ser criterioso. E pressa em desenvolvimento de EA só prejudica, a meu ver.
Galera, estou com um problema e não consigo resolver.. Quero que o preço atual do ativo quando for menor que a Banda de Bollinger inferior, abra uma compra e vice versa.. Alguém pode me ajudar por favor? O E.A não abre de acordo o comando.. Segue o Código!!
Boa noite
pode não ser o motivo do erro, mas colocar esses comandos dentro do OnTick() é errado. São comandos de definição portanto basta executar uma vez, então coloque no OnInit() e use variáveis globais para fazer referencia a elas dentro do OnTick().
bbDefinicao = iBands (_Symbol,_Period,20,0,2,PRICE_CLOSE); ArraySetAsSeries (mediaBBArray,true); ArraySetAsSeries (upperBBArray,true); ArraySetAsSeries (lowerBBArray,true);
Muito importante, aprende a usar o depurador de programas em menos de 2 min você vai descobrir o erro.
Alem das dicas do @Rogerio Giannetti Torres, as variaveis abaixo devem ser GLOBAIS:
double mediaBBArray[]; double upperBBArray[]; double lowerBBArray[]; int bbDefinicao;
Ou seja, não houve comparativo adequado com os códigos exemplo do qual sugeri.
Agindo assim, os problemas serão frequentes e só vai conseguir um EA efetivo na sorte.
Sugiro a LEITURA do ARTIGO a seguir:
- www.mql5.com
bbDefinicao = iBands (_Symbol,_Period,20,0,2,PRICE_CLOSE); ArraySetAsSeries (mediaBBArray,true); ArraySetAsSeries (upperBBArray,true); ArraySetAsSeries (lowerBBArray,true);
Coloquei a parte desse código acima no OnInit.. O problema que estava me dando era no Examinador de Estratégia e não no código. A execução estava: SOMENTE ABERTURA DE PREÇOS; e eu não percebi.. Quando mudei para: CADA TICK; funcionou perfeitamente.. Começou respeitar os comandos que eu queria executar..
- 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
Galera, estou com um problema e não consigo resolver.. Quero que o preço atual do ativo quando for menor que a Banda de Bollinger inferior, abra uma compra e vice versa.. Alguém pode me ajudar por favor? O E.A não abre de acordo o comando.. Segue o Código!!