Niveles de Fibonacci en MQL4 - página 6

 
Por favor ayúdenme, cómo puedo escribir líneas de Fibonacci en mi EA desde este indicador, por ejemplo muéstrenme una línea.
Archivos adjuntos:
 
459275:
Por favor, ayúdenme, cómo escribir líneas de Fibonacci en un EA de este indicador, por ejemplo en una línea, muchas gracias por su ayuda.

Toma esta parte del código:

   double lowest=1000, highest=0;
   datetime T1,T2;
   for(int i=lookback+lastbar;i>lastbar+1;i--)
   {  
      double curLow0=iLow(Symbol(),Period(),i-2);
      double curLow1=iLow(Symbol(),Period(),i+1);
      double curLow2=iLow(Symbol(),Period(),i);
      double curLow3=iLow(Symbol(),Period(),i-1);
      double curLow4=iLow(Symbol(),Period(),i-2);
      
       double curHigh0=iHigh(Symbol(),Period(),i+2);
       double curHigh1=iHigh(Symbol(),Period(),i+1);
        double curHigh2=iHigh(Symbol(),Period(),i);
         double curHigh3=iHigh(Symbol(),Period(),i-1);
         double curHigh4=iHigh(Symbol(),Period(),i-2);
         
      if(curLow2<=curLow1 && curLow2<=curLow1 && curLow2<=curLow0 )
      {
      if(lowest>curLow2){
         lowest=curLow2;
         T2=iTime(Symbol(),Period(),i);}
      }
      
      if(curHigh2>=curHigh1 && curHigh2>=curHigh3&& curHigh2>=curHigh4)
      {  
         if(highest<curHigh2){
         highest=curHigh2;
         T1=iTime(Symbol(),Period(),i);}
      }
   
   
   }  

Insertar en el Asesor Experto. Las variables highst y lowest tendrán los niveles 0 y 100, calcula los niveles restantes.

Por tiempo a partir de las variables T1 y T2 se puede determinar 100 sobre 0, o 0 sobre 100.

 
He insertado esta parte, pero no tengo suficiente cerebro. Sólo estoy aprendiendo. Puedo hacer otros más sencillos, pero no puedo hacer este todavía. ¿Cómo puedo calcular otros niveles?
 

Añade el rango multiplicado por un factor al nivel cero. El rango es la distancia entre el nivel 0 y el 100. Los coeficientes están ahí abajo en el código donde se establecen los niveles de fibo:

0.236, 0.382, 0.50, 0.618...

Sería mejor añadir un par de variables: Nivel0 y Nivel100, asignarles un valor dependiendo de T1 Y T2:

if(T1<T2){
   Level0=highest;
   Level100=lowest;
}
else{
   Level100=highest;
   Level0=lowest;
}

O viceversa:

if(T1<T2){
   Level100=highest;
   Level0=lowest;
}
else{
   Level0=highest;
   Level100=lowest;
}

Tendré que experimentar))

Ahora sólo hay que calcular los niveles:

Nivel=Nivel0+(Nivel100-Nivel0)*K;

Para cada nivel (para cada K).

 
Dmitry Fedoseev:

Añade el rango multiplicado por un factor al nivel cero. El rango es la distancia entre el nivel 0 y el 100. Los coeficientes están ahí abajo en el código donde se establecen los niveles de fibo:

0.236, 0.382, 0.50, 0.618...

Sería mejor añadir un par de variables: Nivel0 y Nivel100, asignarles un valor dependiendo de T1 Y T2:

O viceversa:

Tendré que experimentar))

Ahora sólo hay que calcular los niveles:

Nivel=Nivel0+(Nivel100-Nivel0)*K;

Para cada nivel (para cada K).

 
459275:

...

UtilicePrint(), Comment(), vea qué resultado obtiene, compárelo con el original. Siempre que se vea claramente que los coeficientes son erróneos, hay que dividirlos por 100.
 
459275:

¿Lo he hecho bien? if(T1<T2){

Nivel0 = el más alto;

Nivel100 = el más bajo;

}

si no{

Nivel100 = el más alto;

Nivel0 = el más bajo;

}

doble K=más bajo-más alto;

double Level2=Level0+(Level100-Level0)*23.6;

double Level3=Level0+(Level100-Level0)*38.2;

double Level4=Level0+(Level100-Level0)*50.0;

double Level5=Level0+(Level100-Level0)*61.8;

double Level6=Level0+(Level100-Level0)*78.6;

 
Lo he dividido por 100. ¿Qué hago ahora? ¿Y cómo fijo las señales de estos niveles?
 
459275:
Lo divido por 100. ¿Y luego qué hago? ¿Y cómo escribo las señales de estos niveles?

Nadie más que tú sabe cómo lo vas a utilizar. Para empezar, hay que comprobar que coincide con el original.

 
¿Cómo se realiza esta comprobación?