Quaisquer perguntas de recém-chegados sobre MQL4 e MQL5, ajuda e discussão sobre algoritmos e códigos - página 1688
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
Não sei se isto é muito complicado, mas acho que é mais fácil de entender se olharmos para o código.
A questão é que a forma é conveniente na medida em que, dando-lhe uma série de itens, ela pode preencher algum conjunto. Tudo se chocará se o 0 for alimentado, porque o ArrayResize está vinculado ao número de posições. Por este motivo, tenho condição adicional se o número de posições for superior a 0, então este laço. Eu também estrago tudo o tempo todo, agora eu verifiquei novamente. O conselho é correto, pois caso contrário o formulário não preencherá o elemento zero da matriz, que é para o qual o formulário serve.
Sim, eu tenho problemas constantes por causa disso. Espero que esta clareza reduza o número de horas gastas na correção de bugs.
Ok, homens da ciência, expliquem então porque o incremento mágico pára em 2 enquanto que o único não pára. No código fonte abrimos 10 ordens e a cada uma delas deve ser atribuída uma magia única através de incremento inique, sua singularidade é verificada através da comparação (!=) em laços aninhados: em um incremento de magia há um passe com comparação de todas as ordens de magia, se não houver correspondência, então a magia única será igual ao número daquelas inigualáveis e se for igual ao número de ordens então a magia é única e será atribuída a uma ordem.
Eu não sei se é muito complicado, mas acho que é mais fácil de entender se olharmos para o código.
Se você precisa do laço para criar 10 pedidos com diferentes magos, é isso que você deve fazer.
Neste caso eu tenho o papel de não apenas controlar o laço, mas também o mágico para a ordem.
Mas em seu exemplo, há muitos erros que criaram uma espécie de quebra-cabeça. Poucas pessoas investigarão a fundo qual é a razão.
Bem, no mínimo, o laço do pedido não está correto... E a variável mágica é local e se reinicia o tempo todo. (não se acumula)
Se você precisa do laço para criar 10 pedidos com diferentes magos, é isso que você deve fazer.
Neste caso eu tenho o papel de não apenas controlar o laço, mas também o mágico para a ordem.
Mas em seu exemplo, há muitos erros que criaram uma espécie de quebra-cabeça. Poucas pessoas investigarão a fundo qual é a razão.
Bem, no mínimo, o laço do pedido não está correto... E a variável mágica é local e se reinicia o tempo todo. (não se acumula)
Este código é para o teste e a EA não criará ordens em tal loop; há alguma lógica que não deve ser incluída no teste. Por que o loop da ordem está errado? a magia deve ser reiniciada, não há razão para que se acumule. E não há nada para entender aqui, existem apenas dois laços aninhados com um par de linhas de código dentro.
Sim, eu tenho problemas constantes por causa disso. Espero que esta clareza reduza o número de horas gastas na correção de bugs.
Este código é para testes, a EA não criará ordens em tal loop, há uma lógica para isto que não devemos acrescentar aos testes. Por que o loop da ordem está errado? a magia deve ser reiniciada, não há razão para que se acumule.
Não há -1.
Se a magia é projetada dessa forma, então acontece que há um erro na lógica (no projeto geral) e precisamos resolver um enigma para encontrá-la...
não -1
Se a magia é projetada dessa forma, então há um erro de lógica (no projeto geral), você tem que resolver o quebra-cabeça para encontrá-la...
A menos que seja isto. Mas -1 também não resolve nada lá. Por que existe um erro? A magia será dada quando a magia for igual ou maior do que o número de ordens. Se a magia deve ser zerada, caso contrário, se fecharmos várias ordens com magia 5 e 6, as novas serão maiores que a magia da última ordem, ou seja, 11-12 e assim por diante. E assim, quando uma ordem é zerada, ela é comparada e iterada a partir do zero, o que resulta em novas ordens com grandes ordens fechadas, ou seja, 5 e 6...
Demorei muito tempo para descobrir isso também. A ironia é que eu comecei a descobrir isso ao mesmo tempo que os posts de outros usuários sobre a mesma coisa aqui. Eu só tinha a cola de cópia certa, depois a classifiquei e escrevi errado, porque só verifiquei a entrada do laço e esqueci a saída. Verifique o código com uma impressora, forçando os valores do cheque.
Basicamente é simples, seu exclusivo resume todas as ordens desencontradas entre diferentes mágicos...
Por exemplo, existem 3 pedidos
A primeira iteração de magic=1 unique=0, no final da iteração unique será=2.
A segunda iteração magik=2unique=2, no final da iteraçãounique será=3
Desde 3>=número de todos os pedidos, o loop while irá quebrar... E magia =3 nunca foi verificada... Tão mágico =2 novamente e assim por diante com todos...
Oh, certo, obrigado. Mas, afinal, é uma muleta. Assim como toda essa coisa do mql .
Aponte paramais- TODAS as linguagens de programação.
É simples - em linguagens de programação, a contagem começa em zero. A primeira célula de um array terá um índice de 0. Portanto, você tem que fazer um loop inverso ANTES de zero, INCLUINDO-o. Isto é, >=0
EncomendasTotal() sai, por exemplo, 10. E você inicia um loop a partir de 10, enquanto o último índice da matriz é 9 (lembre-se, estamos começando de zero?). E o que acontecerá quando você acessar uma célula de array inexistente? Isso mesmo - o programa se chocará com um erro crítico, porque você entrou em uma área de memória não alocada, além dos limites da matriz.
Estas são muletas sólidas, com certeza. Leia, aprenda e tudo virá até você.