新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 - 页 1368

 
Alexey Viktorov:

是否检查了这个?)))))

我是这样想的。

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

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

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

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

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

2021.01.29 17:22:20.869 uthyeba 3 GBPUSD,M15: 提醒: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: 提醒: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: 警报:Fibo levels before = 9


 
Galim_V:

我愿意。

价格在哪里?

 
Alexey Viktorov:

价格在哪里?

我运行了Alex建议的脚本。是的,我就是这么说的,我想拿着它,而不是数着它。我为机器人所需要的一切,都是我自己永远无法计算的。此外,我相信metquotes的人。你不觉得吗?

 
Galim_V:

我运行了Alex建议的脚本。是的,我就是这么说的,我想拿着它,而不是数着它。我为机器人所需要的一切,我自己永远无法计算出来。此外,我相信metquotes的人。你不觉得吗?

我想我明白了。

   //---  а сколько у нас Фибо-уровней ?
   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:

我运行了Alex建议的脚本。是的,我就是这么说的,我想拿着它,而不是数着它。我为机器人所需要的一切,我自己永远无法计算出来。此外,我相信metquotes的人。你不觉得吗?

没有其他选择。只是在计算...

 
MakarFX:

我认为这很有效。

调整了一下,但由于某些原因,内部和负面的水平不计。

谢谢你,Makar!

 
Galim_V:

谢谢你,Makar!

我建议使用基于两个主要费波水平的数学价格查找法。
 
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));
      }
    }