Toute question des nouveaux arrivants sur MQL4 et MQL5, aide et discussion sur les algorithmes et les codes. - page 1368

 
Alexey Viktorov:

Est-ce vérifié ? )))))

Je vois ça comme ça :

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

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

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

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

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

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

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

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

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

2021.01.29 17:22:20.869 uthyeba 3 GBPUSD,M15 : Alerte : niveaux Fibo avant = 9


 
Galim_V:

Je le fais :

Où sont les prix ?

 
Alexey Viktorov:

Où sont les prix ?

J'ai exécuté le script suggéré par Alex. Et oui, c'est ce que j'ai dit, je veux le prendre, pas le compter. Tout ce dont j'ai besoin pour le bot, je ne pourrai jamais le calculer tout seul. En plus, je fais confiance aux gars de metquotes. N'est-ce pas ?

 
Galim_V:

J'ai exécuté le script suggéré par Alex. Et oui, c'est ce que j'ai dit, je veux le prendre, pas le compter. Tout ce dont j'ai besoin pour le bot, je ne pourrai jamais le calculer moi-même. En plus, je fais confiance aux gars de metquotes. N'est-ce pas ?

Je crois que je l'ai.

   //---  а сколько у нас Фибо-уровней ?
   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));
     }
Je l'ai un peu modifié, mais pour une raison quelconque, les niveaux internes et négatifs ne comptent pas.
 
Galim_V:

J'ai exécuté le script suggéré par Alex. Et oui, c'est ce que j'ai dit, je veux le prendre, pas le compter. Tout ce dont j'ai besoin pour le bot, je ne pourrai jamais le calculer moi-même. En plus, je fais confiance aux gars de metquotes. N'est-ce pas ?

Il n'y a pas d'autre option. Je compte juste...

 
MakarFX:

Je pense que ça marche.

Je l'ai un peu corrigé, mais pour une raison quelconque, les niveaux internes et négatifs ne comptent pas.

Merci, Makar !

 
Galim_V:

Merci, Makar !

Je recommande d'utiliser la recherche mathématique de prix basée sur les deux principaux niveaux de Fibo.
 
MakarFX:

Cela semble fonctionner.

Pas beaucoup d'ajustements, mais pour une raison quelconque, les niveaux internes et négatifs ne comptent pas.

Cela ne fonctionne pas, car le niveau zéro n'est pas correctement défini et il faut donc non seulement ajouter au niveau zéro, mais aussi le soustraire si la fibre est étirée vers le bas. En général, tout dépend de la position du niveau zéro par rapport au niveau unique de 100%.

 
Alexey Viktorov:

Il ne compte pas parce que le niveau zéro n'est pas correctement défini et qu'il faut donc non seulement l'ajouter au niveau zéro, mais aussi le soustraire si la fibre est étirée de haut en bas. En général, tout dépend de la position du niveau zéro par rapport au niveau unique de 100 %.

Tu as raison.
 

Je l'ai terminé)

Maintenant tous les niveaux comptent correctement

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