Quaisquer perguntas de recém-chegados sobre MQL4 e MQL5, ajuda e discussão sobre algoritmos e códigos - página 590
Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
Olá!
Você pode me mostrar como uma EA baseada na Média Exponencial Tripla pode ser proibidade abrir uma posição se a última negociação for realizada no SL?
MQL5
Não tenho problemas com ele no modo normal, mas assim que começo a otimizar as impressões de erro em cada execução e não há saída.
Mas o problema é que ele nem sequer executa o código. Coloquei impressões ao redor do programa, sem saída, apenas um erro em cada execução que sai.
Por que a impressão não está funcionando?
MQL5
O Expert Advisor trabalha sem problemas no modo normal, mas assim que eu começo a otimizá-lo, ele reclama em cada passagem que entrou nos limites da matriz.
Mas o problema é que ele nem sequer executa o código. Coloquei impressões ao redor do programa, sem saída, apenas um erro em cada execução que sai.
Por que a impressão não funciona?
Você tem que verificar o tamanho da matriz. Você verá uma linha onde há uma saída fora da matriz. Aqui, você deve inserir Imprimir antes desta linha, na qual você escreve a saída do tamanho da matriz e índice, pela qual você está tentando acessar os dados da matriz - o tamanho da matriz e índice será impresso no log, e então o programa sairá com um erro.
MAS! Faça tudo isso no testador em modo visual, não no otimizador - no otimizador (e no testador em modo não visual) todas as impressoras são desativadas para aceleração.
Saia fora da matriz antes de chegar a Print().
Verifique o tamanho da matriz. Você verá uma linha onde a saída está fora da matriz. Antes desta linha, você deve inserir Print, na qual você escreve a saída do tamanho da matriz e índice, pela qual você está tentando acessar os dados da matriz - o tamanho da matriz e índice serão impressos no log, e então o programa irá travar.
MAS! Faça tudo no testador no modo visual, não no otimizador - no otimizador (e no testador no modo não visual) as impressoras são todas desligadas para acelerar.
Esse é o problema, tudo funciona com qualquer parâmetro no visual, mas com qualquer otimização sai fora dos limites
Esse é o problema que com qualquer parâmetro no visual tudo funciona, mas com qualquer otimização está fora dos limites
O que há na matriz? Posso apenas adivinhar que ou ainda não há dados na matriz, ou ela é menor do que você pensa. Há alguma verificação no programa para o tamanho da matriz?
O que está na matriz? Só posso adivinhar que ou ainda não há dados na matriz, ou ela é menor do que você pensa. Há alguma verificação no programa para o tamanho da matriz?
No último N, eu tenho 500, os valores macd e os limites do ciclo são estritamente limitados e nunca podem ser menores que 0 e maiores que N, eu já o depurei e contei com papel
O último N, eu tenho 500, valores macd, e os limites do loop são estritamente limitados e nunca podem ser menores que 0 e maiores que N, eu já o depurei e contei com papel
Você tem certeza de que a matriz está cheia de dados quando você os acessa? Há uma verificação da disponibilidade dos dados e que a matriz tem o valor correto?
Só porque é escrito e calculado em um pedaço de papel não significa que corresponda ao que a EA recebeu (não recebeu).
Você tem certeza de que a matriz está cheia de dados quando você os acessa? Há uma verificação de que os dados estão disponíveis e que a matriz tem o tamanho certo?
Só porque está escrito e calculado em um pedaço de papel, não significa que corresponda ao que o Consultor Especialista recebeu (não recebeu).
Sim, no início, antes de todas as operações, ele é copiado do buffer.
Sim, no início, antes de todas as operações, copiado do buffer
Copiado. E quanto é copiado é verificado?
Se você estiver usando um indicador com suavização, ele requer algumas barras a mais do que você espera. Portanto, só porque você copiou não significa que os dados tenham sido copiados e estejam disponíveis em seu tamanho completo.
É mais fácil para você verificar o tamanho da matriz e, se ela não tiver o tamanho exigido, sair OnTick()