paladin80: Talvez o que eu entendi de sua pergunta seja diferente do que você quis dizer. Meu exemplo compara os preços de abertura entre 3 e 2 barras, e 2 e 1. As barras 3 e 1 não são comparadas. Caso os valores comparados sejam iguais - nada acontece, basta passar para a próxima comparação. Por que x>1 (não >=). A primeira iteração compara Open[3]==Open[3-1], ou seja, Open[3]==Open[2]. OK. No segundo (x=2), Open[2]==Open[1]. OK. Não há uma terceira iteração. Em x>==1 haverá comparação Open[1]==Open[0], não está OK, porque haverá comparação com 0 bar.
Muito obrigado! E se compararmos os preços de abertura e fechamento de cada uma das três barras, será que isso mudaria o código?
Pessoal, vocês poderiam sugerir um indicador? É baseado em dois slides. E quando atravessa, dá a direção como flechas. Não consigo encontrá-lo, obrigado.
Muito obrigado! E se compararmos os preços de abertura e fechamento de cada uma das três barras, será que o código mudará assim tanto?
Para esclarecer o problema. Precisamos comparar a abertura e o fechamento do mesmo bar, ou seja, se o número do bar n é em baixa ou em alta. Jogue o script abaixo na janela de cotação.
externint n=4;
//+------------------------------------------------------------------+//| script program start function |//+------------------------------------------------------------------+int start()
{
//----for (int x=n; x>1; x--)
{
if(Close[x]==Open[x])
{
Print("Бар номер ",n," плоский :)");
continue;
}
if(Close[x]<Open[x])
{
Print("Бар номер ",n," медвежий");
continue;
}
else// if(Close[x]>Open[x]) - В данном случае сравнение if можно пропустить// т.к. два случая (равно и меньше) уже обработаны
{
Print("Бар номер ",n," бычьий");
}
}
//----return(0);
}
//+------------------------------------------------------------------+
Para inserir o código corretamente aqui, clique em SRC e depois o código ali.
Jogue esta EA na janela de cotação.
Eu atirei na janela, como se o indicador apenas escrevesse o valor do turno como eu o entendo, mas o que devo acrescentar ao código para que eu possa acrescentar quantos níveis eu preciso nas configurações?
Eu o coloco na janela, como se o indicador apenas escrevesse o valor do turno como eu o entendo, mas o que devo acrescentar ao código para poder acrescentar às configurações quantos níveis eu preciso?
Ele não escreve um valor de turno. Se a memória me serve corretamente, o código não especifica um turno, ele apenas lê o valor da MAHA. Portanto, ele produz este valor.
Para ver o valor de deslocamento em relação ao valor MA, é necessário definir este valor em parâmetros externos e então emitir o valor MA + valor de deslocamento*Ponto para um deslocamento para cima e o valor MA - valor de deslocamento*Ponto para um deslocamento para baixo.
Eu atirei na janela, assim como o indicador apenas escreve o valor do turno como eu o entendo, mas o que devo acrescentar ao código para que eu possa acrescentar tantos níveis quantos eu precisar nas configurações?
Talvez o que eu entendi de sua pergunta seja diferente do que você quis dizer. Meu exemplo compara os preços de abertura entre 3 e 2 barras, e 2 e 1. As barras 3 e 1 não são comparadas. Caso os valores comparados sejam iguais - nada acontece, basta passar para a próxima comparação.
Por que x>1 (não >=). A primeira iteração compara Open[3]==Open[3-1], ou seja, Open[3]==Open[2]. OK. No segundo (x=2), Open[2]==Open[1]. OK. Não há uma terceira iteração. Em x>==1 haverá comparação Open[1]==Open[0], não está OK, porque haverá comparação com 0 bar.
Muito obrigado! E se compararmos os preços de abertura e fechamento de cada uma das três barras, será que isso mudaria o código?
Não, a cada novo tick o valor de A bandeira será verdadeira . https://book.mql4.com/ru/variables/types
Você pode declarar a variável globalmente, no início do programa, por exemplo, fora de todas as funções.
Ou fazer a variável estática - bandeira estática bool=verdadeira; .
Muito obrigado! E se compararmos os preços de abertura e fechamento de cada uma das três barras, será que o código mudará assim tanto?
Para esclarecer o problema. Precisamos comparar a abertura e o fechamento do mesmo bar, ou seja, se o número do bar n é em baixa ou em alta. Jogue o script abaixo na janela de cotação.
Para inserir o código corretamente aqui, clique em SRC e depois o código ali.
Jogue esta EA na janela de cotação.
Eu atirei na janela, como se o indicador apenas escrevesse o valor do turno como eu o entendo, mas o que devo acrescentar ao código para que eu possa acrescentar quantos níveis eu preciso nas configurações?
Eu o coloco na janela, como se o indicador apenas escrevesse o valor do turno como eu o entendo, mas o que devo acrescentar ao código para poder acrescentar às configurações quantos níveis eu preciso?
Ele não escreve um valor de turno. Se a memória me serve corretamente, o código não especifica um turno, ele apenas lê o valor da MAHA. Portanto, ele produz este valor.
Para ver o valor de deslocamento em relação ao valor MA, é necessário definir este valor em parâmetros externos e então emitir o valor MA + valor de deslocamento*Ponto para um deslocamento para cima e o valor MA - valor de deslocamento*Ponto para um deslocamento para baixo.
Eu atirei na janela, assim como o indicador apenas escreve o valor do turno como eu o entendo, mas o que devo acrescentar ao código para que eu possa acrescentar tantos níveis quantos eu precisar nas configurações?
Não, não é. Você precisa de um turno de subida e descida do MA por um determinado número de pontos. Não é uma mudança de bar na história.
Não, não é. Você precisa de um turno de subida e descida do MA por um determinado número de pontos. Não é uma mudança de bar na história.