Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 1368

 
Alexey Viktorov:

А это проверено?)))))

У меня так:

2021.01.29 17:22:20.869 uthyeba 3 GBPUSD,M15: Alert: 8:4.236  423.6

2021.01.29 17:22:20.869 uthyeba 3 GBPUSD,M15: Alert: 7:2.618  261.8

2021.01.29 17:22:20.869 uthyeba 3 GBPUSD,M15: Alert: 6:1.618  161.8

2021.01.29 17:22:20.869 uthyeba 3 GBPUSD,M15: Alert: 5:1  100.0

2021.01.29 17:22:20.869 uthyeba 3 GBPUSD,M15: Alert: 4:0.618  61.8

2021.01.29 17:22:20.869 uthyeba 3 GBPUSD,M15: Alert: 3:0.5  50.0

2021.01.29 17:22:20.869 uthyeba 3 GBPUSD,M15: Alert: 2:0.382  38.2

2021.01.29 17:22:20.869 uthyeba 3 GBPUSD,M15: Alert: 1:0.236  23.6

2021.01.29 17:22:20.869 uthyeba 3 GBPUSD,M15: Alert: 0:0  0.0

2021.01.29 17:22:20.869 uthyeba 3 GBPUSD,M15: Alert: Fibo levels before = 9


 
Galim_V:

У меня так:

А цены-то где?

 
Alexey Viktorov:

А цены-то где?

Я прогнал скрипт предложенный Алексом. И да, я так и сказал, что хочу взять, а не считать. Все, что нужно для бота мне никогда не пресчитать самому. К тому же я доверяю ребятам из метоквотов. А ты. нет?

 
Galim_V:

Я прогнал скрипт предложенный Алексом. И да, я так и сказал, что хочу взять, а не считать. Все, что нужно для бота мне никогда не пресчитать самому. К тому же я доверяю ребятам из метоквотов. А ты. нет?

Вроде получилось

   //---  а сколько у нас Фибо-уровней ?
   double pr,lpr;
   int levels=ObjectGetInteger(0,"Fibo",OBJPROP_LEVELS);
   Print("Fibo levels before = ",levels);
   //---выведем в Журнал=> номер уровня:значения описание_уровня
   for(int f=0; f<levels; f++) 
     {
      pr=ObjectGetDouble(0,"Fibo",OBJPROP_PRICE,0)-ObjectGetDouble(0,"Fibo",OBJPROP_PRICE,1);
      lpr=(ObjectGetDouble(0,"Fibo",OBJPROP_LEVELVALUE,f)*pr)
         +ObjectGetDouble(0,"Fibo",OBJPROP_PRICE,0);
         Print(f,":",ObjectGetDouble(0,"Fibo",OBJPROP_LEVELVALUE,f),":",DoubleToString(lpr,Digits));
     }
Не много подправил, но почему-то внутренние и отрицательные уровни не считает
 
Galim_V:

Я прогнал скрипт предложенный Алексом. И да, я так и сказал, что хочу взять, а не считать. Все, что нужно для бота мне никогда не пресчитать самому. К тому же я доверяю ребятам из метоквотов. А ты. нет?

А другого варианта нету. Только считать…

 
MakarFX:

Вроде получилось

Не много подправил, но почему-то внутренние и отрицательные уровни не считает

Спасибо, Макар! 

 
Galim_V:

Спасибо, Макар! 

для работы советника рекомендую использовать математическое нахождение цены исходя из двух основных уровней фибо.
 
MakarFX:

Вроде получилось

Не много подправил, но почему-то внутренние и отрицательные уровни не считает

Не считает потому, что не правильно определяется нулевой уровень и соответственно надо не только плюсовать к нулевому уровню, но и вычитать из него если фибка натянута сверху вниз. В общем всё зависит от положения нулевого уровня относительно единичного, 100 процентного уровня.

 
Alexey Viktorov:

Не считает потому, что не правильно определяется нулевой уровень и соответственно надо не только плюсовать к нулевому уровню, но и вычитать из него если фибка натянута сверху вниз. В общем всё зависит от положения нулевого уровня относительно единичного, 100 процентного уровня.

Ты прав
 

Я его добил)

теперь все уровни считает правильно

   //---  а сколько у нас Фибо-уровней ?
   int levels=ObjectGetInteger(0,"Fibo",OBJPROP_LEVELS);
   Print("Fibo levels before = ",levels);
   //---выведем в Журнал=> номер уровня:значения описание_уровня
   for(int f=0; f<levels; f++) 
    {
     if(f>=0)
      {
      Print(f,":",ObjectGetDouble(0,"Fibo",OBJPROP_LEVELVALUE,f),":",ObjectGetDouble(0,"Fibo",OBJPROP_LEVELVALUE,f)
      *(NormalizeDouble(ObjectGetDouble(0,"Fibo",OBJPROP_PRICE1,f),Digits)
      -NormalizeDouble(ObjectGetDouble(0,"Fibo",OBJPROP_PRICE2,f),Digits))
      +NormalizeDouble(ObjectGetDouble(0,"Fibo",OBJPROP_PRICE2,f),Digits));
      }
    }
Причина обращения: