[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 104

 
kilnart:

e abrir uma posição de compra.

tudo parece certo, mas há algo errado.

E onde chega o código? O que o Comentário ou Impressão lhe diz?
 

somente até aqui.

if(Low1<Low2 && Open[2]>Close[2])  

Nada mais.

 
kilnart:

somente até aqui.

Nada mais.


Então, que condição não é preenchida a seguir? O que o Comentário ou Impressão lhe diz?
 
O que você precisa escrever?
 
kilnart: o que você precisa escrever?

verifique se suas condições estão preenchidas nos dados históricos usando Print(), desta forma:

double Low1=Low[iLowest(NULL,0,MODE_LOW,3,0)],
              Low2=Low[iLowest(NULL,0,MODE_LOW,20,0)];
//Print("Low1 = ",Low1 ,"Low2 = ",Low2);
         
         if(Low1<Low2 && Open[2]>Close[2])    
          {
            Print("сработал первый if...");
            if(Open[1]<=Close[2] && Open[2]<Close[1])
             {
                 Print("сработал второй if...");
                 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;
             }
          }
 

apenas fez o que você pediu. nada está acontecendo.

O problema está nesta expressão

if( Low1<Low2 && Open[2]>Close[2])  

se eu removerLow1<Low2 então Open[2]>Close[2] é executado, se eu remover Open[2]>Close[2], Low1<Low2 não é executado

 
kilnart:

Low1<Low2 não é cumprido

e o que os índices Low1 e Low2 que você encontrou são iguais, os índices Lowest estão corretos?
 
Verifiquei com os roteiros, os números se somam. Presumo que estejam certos. Não sei. Não funciona.
 
kilnart:

Verifiquei com os roteiros, e os números se somam.

:)

Creio que estão corretas.

Não assuma, você vai ver.

 
correto. sem assumir.