Quaisquer perguntas de recém-chegados sobre MQL4 e MQL5, ajuda e discussão sobre algoritmos e códigos - página 589
![MQL5 - Linguagem para estratégias de negociação inseridas no terminal do cliente MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
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
1. Eu disse verificar, não substituir. iFractals retorna 0 se não houver fractal. Não o uso regularmente e, naturalmente, não entupo os restos não secos da memória com tais trivialidades.
2. A função, embora horrivelmente escrita, ainda funciona corretamente.
3. O último valor é exibido em Comentário. Substitua-o por.
e ver quantas vezes imprimeMuita coisa, mas nunca falsa. Como se a condição estivesse sempre preenchida. Mas deveria ser falso.
Muita coisa, mas nunca falsa. É como se a condição estivesse sempre preenchida. Mas deveria ser falso, na imagem da tela, a situação contradiz a condição, mas é verdadeira.
Na imagem da tela, o primeiro fractal e o segundo fractal estão marcados. Mas, de acordo com a condição, a função procura ainda mais até encontrar a que está abaixo da primeira. E o quarto fractal é mais baixo que o primeiro. Que é o que diz a condição.
Se a condição for complementada com
Também imprimirá falso.
O primeiro fractal e o segundo fractal estão marcados na captura de tela. Mas, de acordo com a condição, a função procura ainda mais até encontrar a que está abaixo da primeira. E o quarto fractal é mais baixo que o primeiro. Que é o que diz a condição.
Se a condição for adicionada
Também imprimirá falso.
As impressões são falsas, mas a condição é cumprida.
O segundo ciclo sempre retorna o preço do fractal encontrado no primeiro ciclo.
O segundo ciclo sempre retorna o preço do fractal encontrado no primeiro ciclo.
Você parece ter um problema de lógica.
Tente descrever a ordem de busca em palavras simples. Pense se você escreveu tudo corretamente. E então faça uma função de busca que retornará o preço de um fractal encontrado por seu número de série. Assim que você fizer isso, e devolver o preço correto para o fractal especificado por seu número de seqüência, comece a fazer a lógica para encontrar o preço do próximo fractal (você já terá uma função que devolve seu preço naquele momento). E então tudo o que resta é comparar esses preços.
E você faz um monte de tudo de uma só vez.
Talvez eu tenha entendido mal como funciona?
Primeiro encontro um fractal, o primeiro acima do MA - (marcado com o número 1 na captura de tela),
Eu olho a partir dela, mais além na história, o primeiro fractal (marcado com o nº 2 na captura de tela). Se o fractal nº 2 for maior que o fractal nº 1, eu retorno verdadeiro.
Está tudo correto?
retornará o preço do fractal encontrado por seu número de seqüência.
Não por número, eu procuro por condição que o fractal esteja acima do MA, o número ordinal pode ser qualquer. O preço deste fractal no primeiro laço está escrito corretamente na variável "fr1".
O problema está na segunda etapa, se eu entendi corretamente, é claro. O motivo pelo qual o preço do fractal número 2 não é encontrado não é claro.
Não por número, procuro por condição que o fractal esteja acima do MA, o número ordinal pode ser qualquer. O preço deste fractal no primeiro ciclo está escrito corretamente na variável "fr1".
O problema está na segunda etapa, se eu entendi corretamente, é claro. Não entendo porque o preço do fractal número 2 não pode ser encontrado.
Tenho que recontar toda a lógica para você. Há alguma coisa em que você possa pensar por conta própria?
1. Na primeira etapa, encontramos o fractal acima do MA. O número da barra é escrito na variável num_bar (barra #11 na captura de tela).
2. Na segunda etapa, começamos a procurar o segundo fractal que satisfaça a condição. Começamos a procurar a partir de num_bar... ou seja, da barra nº 11 porque nf é zero.
3. O fractal é encontrado. O valor é igual ao anterior. A condição não será cumprida, pois a condição contém > então < mas não é igual. Se definirmos ==, ocorrerá a mesma algaraviada, mas do outro lado.
Provavelmente, devemos procurar o segundo fractal a partir da próxima barra num_bar+1 ou mesmo +2.
Toda a lógica tem que ser recontada para você. Há alguma coisa em que você possa pensar por conta própria?
1. No primeiro ciclo, encontramos um fractal acima do MA. O número da barra é escrito na variável num_bar (barra #11 na captura de tela).
2. Na segunda etapa, comece a procurar o segundo fractal que satisfaça a condição. Começamos a procurar a partir da barra num_bar... ou seja, da barra nº 11 porque nf é igual a zero.
3. O fractal é encontrado. O valor é igual ao anterior. A condição não será cumprida, porque na condição > então < mas não igual. Se definirmos ==, o mesmo lixo ocorrerá, mas do outro lado.
Provavelmente, devemos procurar o segundo fractal a partir da próxima barra num_bar+1 ou mesmo +2.
Em geral, a ação nos dois primeiros parágrafos, eu a expressei).
Por "num_bar+1", obrigado.
Não consigo encontrar o mínimo.
A condição não está preenchida, a seta está definida, o cumprimento não está definido.
A condição é a seguinte: se a distância do mínimo da vela cruzada pelo MA até o mínimodo iLowest for maior ou igual a 100, eu coloco a seta.
De B a A eu encontro o mínimo de C.
A-C=100 pips no ponto B, deve colocar a seta.
Por que não?
Em geral, as ações dos dois primeiros parágrafos, eu disse isso)
Um pouco errado sobre o segundo ponto. Você ainda não definiu onde começamos a procurar e quando obteremos que valor. E isto é o que o faz pensar que você deve procurar um pouco mais longe.
O mínimo não pode ser encontrado.
A condição não é cumprida, a flecha é colocada, a condição não é cumprida.
A condição é que se a distância do mínimo da vela cruzou o MA até o mínimo do iLowest for maior ou igual a 100 entre o cruzamento de preços e o MA, eu coloco a seta.
De B a A eu encontro o mínimo de C.
A-C=100 pips no ponto B, deve colocar a seta.
Por que não o coloca?
Há algo neste código que também é difícil de entender a lógica.
No mínimo, precisamos saber onde e como as variáveis indexS1 e indexS2 são definidas e se elas são redefinidas a cada tick.
E o que acontecerá se a travessia МА ficar presa em uma fenda?
E mais uma pergunta: você sabe como usar o depurador?