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

 
Je n'arrive pas à comprendre ce qui ne va pas. Il y a une boucle while dans l'indicateur, mais cela semble fonctionner correctement. Au début, pendant les tests, tout fonctionne, mais au même endroit, le programme se bloque, le terminal aussi, je dois supprimer le code source du terminal. Sur d'autres devises, il se bloque également. J'ai mis des commentaires tout autour du programme et il arrive finalement àComment(rates_total+"\n "+prev_calculated) ; avant le retour et s'arrête. Et le commentaire montre que nous avons obtenu des chiffres comme 3247 et 3247, ce qui signifie que la condition pour travailler (rates_total>prev_calculated) n'est pas remplie et que le programme ne doit rien faire. Pourquoi est-il suspendu ?
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
   if(rates_total>prev_calculated)
     { 
         Comment("0");
          if(Count==0)
             total = rates_total-4;
          else
             total = rates_total - prev_calculated+2;

          if(total>10000)
             total=10000;

          for(int i=total; i>2; i--)
            {
            }
       
          while(begin<size-2)
            {
            }
      Count++;
     }  
     Comment(rates_total+"\n"+prev_calculated);          //виснет здесь(коммент 3247 и 3247)
   return(rates_total);
  }
 
Aleksandr Kononov Comment(rates_total+"\n "+prev_calculated) ; avant le retour et s'arrête. Et le commentaire montre que nous avons obtenu des chiffres comme 3247 et 3247, ce qui signifie que la condition pour travailler (rates_total>prev_calculated) n'est pas remplie et que le programme ne doit rien faire. Pourquoi est-il suspendu ?

Lisez attentivement la documentation.

Si l'expression est vraie, l'opérateur est exécuté jusqu'à ce que l'expression devienne fausse.
Quelles sont les variables dans la condition de la boucle ? Et si la condition initiale est vraie, quand devient-elle fausse pour sortir de la boucle ?
Оператор цикла while - Операторы - Основы языка - Справочник MQL4
Оператор цикла while - Операторы - Основы языка - Справочник MQL4
  • docs.mql4.com
Оператор цикла while - Операторы - Основы языка - Справочник MQL4
 
Alexey Viktorov #:

Lisez attentivement la documentation.

Quelles sont ces variables dans la condition de boucle ? Et si la condition initiale est vraie, quand devient-elle fausse pour sortir de la boucle ?

Les boucles sont juste pour comprendre ce qu'elles sont. Vous y trouverez beaucoup de code si vous les écrivez. La question est de savoir pourquoi le travail s'arrête avant le retour, alors que rien ne se passe sur ce tic. Dans les taux de commentaires, le total est égal aux taux précédents calculés, donc nous ne faisons rien du tout.

 
L'indicateur fonctionne dans tous les cas, mais se bloque dans certaines conditions.
 
Pourrait-il s'agir d'une sorte d'erreur différée ? Le programme arrive à la fin et se bloque, est-ce possible ?
 
Le problème est dans la boucle après tout. Le commentaire est en retard. L'impression est la dernière de la boucle
 
Pouvez-vous me dire comment trouver une flèche parmi d'autres objets dans mql4 ? Je dois supprimer toutes les flèches et laisser les lignes
 
Aleksandr Kononov #:
Pouvez-vous me dire comment trouver une flèche parmi d'autres objets dans mql4 ? Enlevez toutes les flèches et laissez les lignes

Eh bien, lisez la documentation

int  ObjectsDeleteAll(
   int    sub_window=EMPTY,   // индекс окна
   int    object_type=EMPTY   // тип объекта для удаления
   );
ObjectsDeleteAll - Графические объекты - Справочник MQL4
ObjectsDeleteAll - Графические объекты - Справочник MQL4
  • docs.mql4.com
ObjectsDeleteAll - Графические объекты - Справочник MQL4
 
Merci !
 
Bon moment pour connaître le mql4. Il existe une fonction qui ferme la partie en pourcentage de l'ordre le plus perdant de la série grâce à des positions rentables de n'importe quelle direction. Nous avons besoin d'aide pour améliorer cette fonction ! En d'autres termes, nous devons clôturer partiellement tous les ordres restants de la série (en raison de positions rentables de toute direction) au lieu du premier. Merci d'avance !
Dossiers :
KJH.mq4  8 kb
Raison: