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
Une partie du problème est la façon dont vous avez écrit ce code avec de longues conditions if pleines de &&, ||, et des appels de fonction après appel de fonction, ce qui le rend difficile à déboguer, vous auriez de la chance si quelqu'un avait le temps de démêler ce fouillis. Vous devriez regarder les exemples de codage dans les docs pour voir comment le code devrait être formaté en lignes beaucoup plus courtes et commenté.
" Makes it difficult to debug " ?? :( Je n'ai jamais entendu parler de cela, est-ce réel ? ....
Le compilateur a également du mal à déboguer mon code :( ?
Si c'est la raison, je dois repenser toute mon idée de codage pour cette partie. Alors cela va devenir une chose totalement différente ...... :( :(
Oui, il est difficile de déboguer, par exemple, regardez ce code pour le trailing stop. Il est facile de voir ce que fait chaque ligne et donc de repérer les erreurs.
J'ai posté ce code juste comme un exemple de code facile à lire, il ne s'agissait pas d'un exemple de fonction autonome complète.
Il s'agit de la section des ordres d'achat du code du trailing stop de l'exemple d'EA MACD de MetaQuotes inclus dans MT4.
1) C'est faux, vous pouvez compter vers le haut ou vers le bas, la boucle est plus efficace, OrdersTotal() est appelé une fois et assigné à une variable locale.
Merci SDC . Merci aussi pour les conseils de WHRoeder. C'est utile.
J'ai essayé de remplacer OrderClosePrice() par MarketInfo dans le code précédent et le code modifié (en supprimant la condition && et en les plaçant dans une instruction if comme après, celle de la deuxième boucle for), mais le résultat est encore parfois efficace, parfois non efficace.
La boucle for pour compter le nombre total d'ordres dans le pool utilise une boucle de décompte mais avec x-- . Je ne comprends pas pourquoi vous suggérez --x cependant .
J'ai cherché sur Google "opérateurs de court-circuit" mais je ne comprends pas vraiment ce que cela signifie pour mql4, pouvez-vous m'expliquer un peu ^_^ ? ? Pourquoi est-ce mauvais de chaîner des 'if' ?
Au fait, le code ci-dessus suggéré par SDC n'est pas le code que j'utilise >.< .
Il n'est pas mauvais d'enchaîner les ifs. Les développeurs du langage MQL4 ont écrit le code que j'ai posté ci-dessus. C'est du code que j'ai coupé de leur exemple d'EA macd à titre d'exemple.
WHR faisait référence à un changement récent dans la façon dont les conditions && || sont évaluées, ce qui les rend désormais aussi efficaces que les conditions if enchaînées. Auparavant, elles étaient moins efficaces. Vous pouvez utiliser l'une ou l'autre méthode. Les ifs enchaînés sont utiles lorsqu'il y a des divergences dans le code et que vous pouvez utiliser 'else'.
Les longues lignes de conditions if( && || ) peuvent créer une confusion entre les parenthèses, ce qui rend la recherche d'erreurs plus difficile, c'est pourquoi je n'aime pas le faire. Il existe également une norme acceptée pour le codage qui stipule qu'il ne doit pas faire plus de 80 caractères. Beaucoup de codeurs ne prennent pas la peine d'adhérer à cette norme, et les développeurs de MQL4 continuent à créer des identifiants énumérés avec des noms très longs à utiliser dans leurs appels de fonctions avec des noms tout aussi longs, ce qui n'aide pas beaucoup le formatage du code.