Toute question des nouveaux arrivants sur MQL4 et MQL5, aide et discussion sur les algorithmes et les codes. - page 1737
Vous manquez des opportunités de trading :
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Inscription
Se connecter
Vous acceptez la politique du site Web et les conditions d'utilisation
Si vous n'avez pas de compte, veuillez vous inscrire
Bien entendu, le programme n'attend pas que le terminal, dans un thread séparé, enregistre des données.
Merci, je veux dire
Je ne comprends pas pourquoi "-1" est jeté de temps en temps si après la pause le Print(i) ; avant la pause il y a i-- et if (i==0), c'est la commande de sortie si i a déjà atteint 0 à l'intérieur de l'opérateur. Comme i est utilisé encore plus bas dans le code, dans Close[i], il produit l'erreur "out of range".
Je ne comprends pas pourquoi "-1" est jeté de temps en temps si après la pause le Print(i) ; avant la pause il y a i-- et if (i==0), c'est la commande de sortie si i a déjà atteint 0 à l'intérieur de l'opérateur. Comme i est utilisé encore plus bas dans le code, dans Close[i], il produit l'erreur "out of range".
Je ne comprends pas pourquoi "-1" est jeté de temps en temps si après la pause le Print(i) ; avant la pause il y a i-- et if (i==0), c'est la commande de sortie si i a déjà atteint 0 à l'intérieur de l'opérateur. Comme i est utilisé encore plus bas dans le code, dans Close[i], il produit l'erreur "out of range".
Après la pause, on sort de la boucle pour passer à l'opérateur suivant après la boucle. Après la boucle, on va jusqu'à la fin de l'itération à ce point et on en commence une nouvelle.
{
i--;
if (i==0) break;
}
Print(i);
Print(Close[i]);
// Dans le journal, il est écrit (-1), comment se fait-il... et, par conséquent, letableau d' erreurout of range, car Close[-1] ne se produit pas.
Je veux dire, ai-je raison de comprendre qu'après la pause dans l'en-tête(i ; i>0 ; i--) la troisième expression "i--" est toujours exécutée ?
{
i--;
if (i==0) break;
}
Print(i);
Print(Close[i]);
// Le journal indique (-1), comment... et, par conséquent, letableau d' erreurshors limites, car Close[-1] ne se produit pas.
Je veux dire, ai-je raison de comprendre qu'après la pause dans l'en-tête(i ; i>0 ; i--) la troisième expression "i--" est exécutée de toute façon ?
Écrit correctement
Vous enlevez non seulement dans l'en-tête, mais aussi dans le corps de la boucle.Il écrit correctement.
Ne me demandez pas quel genre de conneries j'écris dans mon code. Je veux juste comprendre les nuances de cet opérateur) Il semble que dans le corps j'ai spécifié "il est temps de partir d'ici, car i=0", mais l'opérateur prend et exécute à nouveau l'expression, alors qu'il devrait passer le contrôle à l'opérateur suivant
Ne me demandez pas quel genre de bêtises j'écris. Je veux juste comprendre les nuances de cet opérateur) C'est comme si dans le corps j'avais spécifié "il est temps de partir d'ici, car i=0", mais l'opérateur prend et exécute à nouveau l'expression, alors qu'il devrait passer le contrôle à l'opérateur suivant
Oui, mais vous l'avez enlevé avant ce contrôle. Écrivez-le de cette façon
il y aura un résultat différent
Oui, mais vous l'avez enlevé avant ce contrôle. Écrivez-le comme ceci
aah... Je l'ai. Je l'ai.
Merci à tous pour vos réponses rapides.
ahh... Je l'ai. Je l'ai.
Merci à tous pour vos réponses rapides.
Votre code imprime 0, pas -1...
Probablement -1 imprimé à partir d'un autre endroit, plus probablement le code entier est dans les imprimantes...
Avant d'essayer de résoudre le problème, vous devez l'identifier... Assurez-vous qu'il est là et localisez-le avant de le résoudre...