[AVISO FECHADO!] Qualquer pergunta de novato, para não desorganizar o fórum. Profissionais, não passem por aqui. Não posso ir a lugar algum sem você. - página 720
artmedia70: Vejo que você mesmo já está chegando a uma decisão.
Estou chegando à decisão... Mas é como um cão: eu entendo o que entendo, mas não posso dizer, isto é, não posso representá-lo no código). Talvez seja o calor que faz meu cérebro derreter).
Shuba: Estou me aproximando da solução... É como um cão: eu entendo o que entendo, mas não posso dizê-lo, ou seja, não posso representá-lo no código). Talvez seja o calor que faz meu cérebro derreter).
Agora eu adicionei às linhas: if(ZZCur == Alto[i] && UpCount < 2) e if(ZZCur == Baixo[i] && DnCount < 2) verificando para o próximo fractal mais alto ou mais baixo do que o primeiro encontrado.
Eu procuro fratais usando o indicador ZIGZAG-FRACTALS com esta função:
Tente pesquisar com esta função:
//+----------------------------------------------------------------------------+//| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru |//+----------------------------------------------------------------------------+//| Версия : 13.08.2008 |//| Описание : Возвращает номер бара фрактала по его номеру. |//+----------------------------------------------------------------------------+//| Параметры: |//| sy - наименование инструмента ("" или NULL - текущий символ) |//| tf - таймфрейм ( 0 - текущий ТФ) |//| nf - номер фрактала ( 0 - последний) |//+----------------------------------------------------------------------------+int GetFractalBar(string sy="0", int tf=0, int nf=0) {
if (sy=="" || sy=="0") sy=Symbol();
double f=0;
int i, k=iBars(sy, tf), kf;
for (i=2; i<k; i++) {
f=iFractals(sy, tf, MODE_LOWER, i);
if (f!=0) {
kf++;
if (kf>nf) return(i);
}
f=iFractals(sy, tf, MODE_UPPER, i);
if (f!=0) {
kf++;
if (kf>nf) return(i);
}
}
Print("GetFractalBar(): Фрактал не найден");
return(-1);
}
Esta função retorna o número de barra do fractal. Primeiro você a chama com o parâmetro nf = 0 - o último fractal será encontrado, e então você chama esta função no laço, onde nf = o contador de ciclos de 1 a ... o tempo que for necessário. No corpo do laço, verifique se o próximo fractal encontrado corresponde aos critérios necessários e, se corresponder, saia do laço. Após a análise, você terá os números de barra de dois fractais de que precisa e fará com eles o que quiser.
A função retorna o número de barra do fractal. Primeiro você a chama com o parâmetro nf = 0 - o último fractal será encontrado, e depois você chama esta função no laço, onde nf = contador de ciclos de 1 a ... o tempo que for necessário. No corpo do laço, verifique se o próximo fractal encontrado corresponde aos critérios necessários e, se corresponder, saia do laço. Após a análise, você terá os números de barra de dois fractais de que precisa e fará com eles o que quiser.
No testador, o ponto sobre os outros instrumentos será 0
Estava no testador,... Não tenho nenhuma informação sobre isso, mas tenho certeza de que será útil para mim. Então, como resultado, tive muitos problemas com meu código de arrasto e assumi a função de monitoramento de pares de arrasto do KimIV. Agora tudo funciona em demonstração ))
Obrigado a todos por sua ajuda, suas explicações são muito úteis.
Você não pode, quando você inicializa uma variável, ela apenas aloca uma área de RAM, então por que reatribuí-la? Basta reiniciar a variável para zero e usá-la quantas vezes quiser. De fato, qual é o problema? Por que deinicializar uma variável? Isso simplesmente não faz sentido.
Para login e uso do site MQL5.com, você deve ativar o uso de cookies.
Ative esta opção no seu navegador, caso contrário você não poderá fazer login.
Você entrou na conta. A autenticação de dois fatores foi desativada. Configure-a novamente e escaneie um novo código QR ou continue com a autenticação de dois fatores desativada.
Vejo que você mesmo já está chegando a uma decisão.
Talvez seja o calor que faz meu cérebro derreter).
Estou me aproximando da solução... É como um cão: eu entendo o que entendo, mas não posso dizê-lo, ou seja, não posso representá-lo no código).
Talvez seja o calor que faz meu cérebro derreter).
Como pesquisar fractals?
Procuro fractais usando o indicador ZIGZAG-FRACTALS com esta função:
Agora eu adicionei às linhas: if(ZZCur == Alto[i] && UpCount < 2) e if(ZZCur == Baixo[i] && DnCount < 2) verificando para o próximo fractal mais alto ou mais baixo do que o primeiro encontrado.
Temos as seguintes linhas
if(ZZCur == Alto[i] && ZZCur > ZZFirst && UpCount < 2) e
if(ZZCur == Baixa[i] && ZZCur < ZZFirst && DnCount < 2)
Mas, no final, a busca é de alguma forma inadequada :(
Na foto uma linha branca grossa mostra como deve ser e uma linha verde fina mostra como se faz...
Eu procuro fratais usando o indicador ZIGZAG-FRACTALS com esta função:
Tente pesquisar com esta função:
Esta função retorna o número de barra do fractal. Primeiro você a chama com o parâmetro nf = 0 - o último fractal será encontrado, e então você chama esta função no laço, onde nf = o contador de ciclos de 1 a ... o tempo que for necessário. No corpo do laço, verifique se o próximo fractal encontrado corresponde aos critérios necessários e, se corresponder, saia do laço. Após a análise, você terá os números de barra de dois fractais de que precisa e fará com eles o que quiser.
Tente pesquisar com esta função:
A função retorna o número de barra do fractal. Primeiro você a chama com o parâmetro nf = 0 - o último fractal será encontrado, e depois você chama esta função no laço, onde nf = contador de ciclos de 1 a ... o tempo que for necessário. No corpo do laço, verifique se o próximo fractal encontrado corresponde aos critérios necessários e, se corresponder, saia do laço. Após a análise, você terá os números de barra de dois fractais de que precisa e fará com eles o que quiser.
No testador ou na demonstração?
No testador, o ponto sobre os outros instrumentos será 0
Estava no testador,... Não tenho nenhuma informação sobre isso, mas tenho certeza de que será útil para mim. Então, como resultado, tive muitos problemas com meu código de arrasto e assumi a função de monitoramento de pares de arrasto do KimIV. Agora tudo funciona em demonstração ))
Obrigado a todos por sua ajuda, suas explicações são muito úteis.
Parece ter resolvido o problema, mas a questão permanece...
Como desinicializar uma variável para reutilização?
Você não pode, quando você inicializa uma variável, ela apenas aloca uma área de RAM, então por que reatribuí-la? Basta reiniciar a variável para zero e usá-la quantas vezes quiser. De fato, qual é o problema? Por que deinicializar uma variável? Isso simplesmente não faz sentido.
Por que deinicializar uma variável?
A condição se
aqui nós fazemos algo
caso contrário, se outra condição
fazer algo mais.
O objetivo não é multiplicar variáveis, muitas condições e contadores.