Уровни Фибоначчи в MQL4 - страница 6

 
Помогите,пожалуйста!Как с этого индикатора прописать в советнике линии фибоначчи.Для примера покажите на одной линии.Заранее благодарю за помощь.
Файлы:
 
459275:
Помогите,пожалуйста!Как с этого индикатора прописать в советнике линии фибоначчи.Для примера покажите на одной линии.Заранее благодарю за помощь.

Взять вот эту часть кода:

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

Вставить в эксперта. В переменных  highst и lowest будут уровни 0 и 100, остальные уровни рассчитать.

По времени из переменных T1 и T2 можно определить 100 выше 0, или 0 выше 100.

 
Вставлял я эту часть.А дальше мозгов не хватает.Я ведь только ещё учусь.Более простые получаются,а этот осилить пока не могу.Как дальше просчитать другие уровни?
 

К нулевому уровню прибавить диапазон умноженный на коэффициент. Диапазон - это расстояние между уровнем 0 и 100.  Коэффициенты там ниже в коде, где устанавливаются уровни фибосетки:

 0.236, 0.382, 0.50, 0.618...

Будет лучше добавить пару переменных: Level0 и Level100, присваивать им значение в зависимости от T1 И T2:

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

Или наоборот:

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

 Надо поэкспериментировать))

Дальше остается только посчитать уровни:

Level=Level0+(Level100-Level0)*K;

Для  каждого уровня (для каждого К).

 
Dmitry Fedoseev:

К нулевому уровню прибавить диапазон умноженный на коэффициент. Диапазон - это расстояние между уровнем 0 и 100.  Коэффициенты там ниже в коде, где устанавливаются уровни фибосетки:

 0.236, 0.382, 0.50, 0.618...

Будет лучше добавить пару переменных: Level0 и Level100, присваивать им значение в зависимости от T1 И T2:

Или наоборот:

 Надо поэкспериментировать))

Дальше остается только посчитать уровни:

Level=Level0+(Level100-Level0)*K;

Для  каждого уровня (для каждого К).

 
459275:

  ...

Функции Print(), Comment() используйте, смотрите какой результат получаете, сравнивайте его с оригиналом. Пока явно видно, что коэффициенты неправильные, их надо на 100 поделить.
 
459275:

  Правильно сделал?     if(T1<T2){

   Level0 = highest;

   Level100 = lowest;

}

else{

   Level100 = highest;

   Level0 = lowest;

     double K=lowest-highest;

     

     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;

 
На 100 поделил.А дальше то что делать?И как сигналы прописывать от этих уровней?
 
459275:
На 100 поделил.А дальше то что делать?И как сигналы прописывать от этих уровней?

А это уж никто кроме вас не знает, как вы собираетесь это использовать. Для начала надо бы сделать проверку на соответствие оригиналу.

 
А как эта проверка делается?