[¡Archivo!] Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen de largo. No puedo ir a ningún sitio sin ti - 4. - página 104

 
kilnart:

y abrir una posición de compra.

todo parece correcto, pero hay algo que no funciona.

¿Y hasta dónde llega el código? ¿Qué le dice Comment o Print?
 

sólo hasta aquí.

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

Nada más.

 
kilnart:

sólo hasta aquí.

Nada más.


Entonces, ¿qué condición no se cumple a continuación? ¿Qué dice el comentario o la impresión?
 
¿Qué necesita para escribir?
 
kilnart:¿qué necesitas escribir?

comprueba si se cumplen las condiciones en los datos históricos utilizando Print(), así:

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;
             }
          }
 

Acabo de hacer lo que me pediste. No pasa nada.

El problema está en esta expresión

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

si eliminoLow1<Low2 entonces se ejecuta Open[2]>Close[2], si elimino Open[2]>Close[2], Low1<Low2 no se ejecuta

 
kilnart:

No se cumple Low1<Low2

y a qué equivalen los Low1 y Low2 que has encontrado, ¿son correctos los índices Lowest encontrados?
 
Lo he comprobado con los guiones, los números cuadran. Supongo que son correctos. No lo sé. No funciona.
 
kilnart:

Lo he comprobado con los guiones y los números cuadran.

:)

Creo que están en lo cierto.

No asuma, ya lo verá.

 
correcto, sin asumirlo.