Quaisquer perguntas de recém-chegados sobre MQL4 e MQL5, ajuda e discussão sobre algoritmos e códigos - página 1368

 
Alexey Viktorov:

Isto é verificado? )))))

Tenho-o assim:

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

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

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

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

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

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

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

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

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

2021.01.29 17:22:20.869 uthyeba 3 GBPUSD,M15: Alerta: Níveis de fibra antes = 9


 
Galim_V:

Eu tenho:

Onde estão os preços?

 
Alexey Viktorov:

Onde estão os preços?

Eu dirigi o roteiro que Alex sugeriu. E sim, foi o que eu disse, eu quero aceitar, não contar. Tudo o que eu preciso para o bot nunca poderei calcular sozinho. Além disso, eu confio nos caras de cotas. Você não?

 
Galim_V:

Eu dirigi o roteiro sugerido por Alex. E sim, foi o que eu disse, eu quero aceitar, não contar. Tudo o que eu preciso para o bot nunca poderei calcular sozinho. Além disso, eu confio nos caras de cotas. Você não?

Acho que entendi.

   //---  а сколько у нас Фибо-уровней ?
   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));
     }
Ajustou um pouco, mas por alguma razão os níveis internos e negativos não contam
 
Galim_V:

Eu dirigi o roteiro sugerido por Alex. E sim, foi o que eu disse, eu quero aceitar, não contar. Tudo o que eu preciso para o bot nunca poderei calcular sozinho. Além disso, eu confio nos caras de cotas. Você não?

Não há outra opção. Apenas contando...

 
MakarFX:

Acho que está funcionando.

Ajustou um pouco, mas por alguma razão os níveis internos e negativos não contam

Obrigado, Makar!

 
Galim_V:

Obrigado, Makar!

Recomendo o uso de um achado matemático de preços baseado nos dois principais níveis de Fibo.
 
MakarFX:

Parece funcionar.

Não há muitos ajustes, mas por alguma razão os níveis internos e negativos não contam

Não funciona, porque o nível zero não está corretamente definido e, portanto, é preciso não só adicionar ao nível zero, mas também subtrair dele se a fibra for esticada para baixo. Em geral, tudo depende da posição do nível zero em relação ao nível único, 100%.

 
Alexey Viktorov:

Não conta porque o nível zero não está corretamente definido e, portanto, não só tem que ser adicionado ao nível zero, mas também subtraído dele se a fibra for esticada de cima para baixo. Em geral, tudo depende da posição do nível zero em relação ao nível único, 100 por cento.

Você está certo
 

Eu terminei)

Agora todos os níveis estão contando corretamente

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