[ARQUIVO!] Qualquer pergunta de novato, para não desorganizar o fórum. Profissionais, não passem por aqui. Em nenhum lugar sem você - 4. - página 103

 
IgorM:

Tente desta forma:


Ou eu não entendo nada, ou você entendeu mal o problema.

há um preço Fechado[2] de 1.34529 e um preço Aberto[1] de 1.34530

Eu tenho uma condição para abrir a posição.

Close[2] >= Open[1]

Como 10 - 20 pips (em 5 dígitos) não desempenham um grande papel, preciso colocá-lo no programa,

Se o preço Fechado é 1,34529 e o Aberto é 1,34530, a posição ainda pode ser aberta.

 
kilnart:

a posição não se abre.

???

então o que a condição de preço tem a ver com isso?

veja o código a seguir. há outro erro.

 
Então o preço que satisfaz a condição vai para a tabela, e a posição é aberta.
 
Vou verificar novamente o código e informá-lo-ei.
 
kilnart:


Ou eu não entendo, ou você entendeu mal a tarefa.

......

10 - 20 ppts (em 5 dígitos) não desempenha um grande papel, você precisa colocá-lo no programa

aparentemente você escreveu seu post anterior primeiro e depois só queria saber o que queria ouvir em resposta....

realmente, 10-20pts em 5 dígitos não importa muito, eu mostrei como comparar corretamente variáveis como o dobro, suspeito que seu problema não está em fazer a condição correta. Tente formular uma pergunta clara e inequívoca primeiro para obter uma resposta inequívoca

 
IgorM:

aparentemente você escreveu seu post anterior primeiro e depois só queria saber o que queria ouvir em resposta....

realmente, 10-20 pp em 5 dígitos não é um grande problema, mostrei como comparar corretamente variáveis do tipo duplo, suspeito que seu problema não está em fazer a condição correta. Tente formular uma pergunta clara e inequívoca primeiro para obter uma resposta inequívoca


Exceto, imho, que é errado comparar duplas como essa. Por exemplo, quatro dígitos, preços 1,00014 e 1,00016 são equivalentes a 1,0001 e 1,0002, mas 1,00016 a 1,00014 < Ponto
 
220Volt: Exceto, imho, é errado comparar o doble dessa forma. Por exemplo, quatro dígitos, preços 1,00014 e 1,00016, equivalentes a 1,0001 e 1,0002, mas 1,00016 - 1,00014 < Ponto

Você mistura a comparação de duplas e arredondamento, você precisa de uma declaração clara da pergunta: ou arredondar um 5 dígitos em 4 dígitos e depois fazer a análise nos 4 dígitos, ou apenas comparar corretamente duas duplas.

Se você comparar dois duplos, então essa parte do código que citei funcionará corretamente tanto para 4 como para 5 dígitos:

switch(Digits){
   case 5: if(1.00014-1.00016>=10*Point); условие= false, -0.00002 меньше 0.00001*10   // цена больше на 10 пп в 5-ти знаке
   case 4: if(1.0001-1.0002>=Point); условие= false, -0.0001 меньше 0.0001          // цена больше на 1 пп в 4-х знаке
}

confira: https://www.mql5.com/ru/articles/1561 e https://www.mql5.com/ru/forum/101433

SZZ: Cometi um erro em meu código: o caso deve ser encerrado por um intervalo, ou seja, assim:

switch(Digits){
   case 5: if(Close[2]-Open[1]>=10*Point);// цена больше на 10 пп в 5-ти знаке
           break;
   case 4: if(Close[2]-Open[1]>=Point);// цена больше на 1 пп в 4-х знаке
           break;
}
 
IgorM:

Você mistura a comparação de duplas e arredondamento, você precisa de uma declaração clara da pergunta: ou arredondar um 5 dígitos em 4 dígitos e depois fazer a análise nos 4 dígitos, ou apenas comparar corretamente duas duplas.

Se você comparar dois duplos, então essa parte do código que citei funcionará corretamente tanto para 4 como para 5 dígitos:

confira: https://www.mql5.com/ru/articles/1561 e https://www.mql5.com/ru/forum/101433

ZS: Eu cometi um erro em meu código: o caso deve ser encerrado com intervalo, ou seja, assim:


Embora provavelmente você esteja certo, isso provavelmente não importa para o autor. Eu conto cada cachimbo, então eu olho para tais situações do meu próprio ponto de vista.
 

É isso aí. Estou todo bagunçado e minha cabeça não está mais funcionando.

aqui está o código

       double Low1=Low[iLowest(NULL,0,MODE_LOW,3,0)],
              Low2=Low[iLowest(NULL,0,MODE_LOW,20,0)];
         
         if(Low1<Low2 && Open[2]>Close[2])    
          {
            if(Open[1]<=Close[2] && Open[2]<Close[1])
             {
                 double sl=Low[iLowest(NULL,0,MODE_LOW,3,0)],
                        tp=Ask+(Open[2]-Low[2]);
                 OrderSend(Symbol(),OP_BUY,0.1,Ask,3,sl,tp);
                 return;
             }
          }

Quero desenhar o seguinte. preciso encontrar o ponto mínimo para os últimos 3 castiçais. compará-lo com o preço mínimo dos últimos 20 castiçais. se os últimos 3 castiçais forem mais baixos e a vela for preta ( Abrir[2]>Fechar[2] ) então procure mais.

Preciso encontrar uma aquisição em baixa ( Abrir[1]<=Fechar[2] && Abrir[2]<Fechar[1] ).

E abrir uma posição de compra.

Parece estar correto, mas sinto que algo está errado.

Ficarei muito grato se você puder me ajudar.

 
Olá,

Eu movi o indicador que atrai os canais para a EA.

Parênteses desequilibrados é um erro constante, embora eu tenha verificado duas vezes todos os parênteses.

Mas minha pergunta é diferente - preciso usar esses mesmos canais para abrir negócios na condição, mas não sei como marcá-los. Eu tentei apenas escrever o nome de um objeto, mas ainda não consegui verificar a exatidão desta solução.

Favor aconselhar como resolver este problema