![MQL5 - Langage des stratégies de trading intégré au terminal client MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
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
De toute façon.
if(a==0){expression} signifie que si a est égal à 0 alors c'est vrai, donc exécutez {expression}.
if(a=0){expression} est équivalent à if(a){a=0;expression} si a est vrai, {a=0;expression}.
La deuxième est fausse, elle devrait être écrite comme ceci
if(a=x) { expression } assigne la valeur de x à la variable a, et si a est différent de 0 après cela, alors exécute l'expression
if(a=0) { } après l'optimisation il n'y aura que a=0
La deuxième est fausse. La façon correcte de l'écrire est la suivante
if(a=x) { expression } assigne la valeur de x à la variable a, et si a est différent de 0 après cela, exécute l'expression
if(a=0) { } après l'optimisation il n'y aura que a=0
Désolé, c'est vrai, les expressions sont exécutées de gauche à droite.
C'est pourquoi nous commençons par l'affectation, puis nous vérifions la vérité.
C'est à peu près le cas :
Ce code ne calcule pas seulement le volume maximal, mais l'adapte exactement aux limites des paramètres du symbole.Il le calcule mais oublie pourquoi il le calcule lorsqu'il l'insère :
La valeur du lot à ce stade est calculée de manière à consommer toute la marge disponible avec une marge minimale.
Si cette valeur est augmentée d'au moins un pas de volume, il n'y aura pas assez d'argent pour ouvrir une position.
Mais la deuxième ligne du code cité compose la valeur du lot au cas où la condition sous si est remplie, et peut l'augmenter de beaucoup plus que la valeur du pas de volume, car en réalité il y a un volume min = 0.1 et un pas de volume = 0.01.
Et dans ce code ci-dessous, une division par zéro peut se produire, contre laquelle il n'existe aucune protection :
Si SymbolInfoDouble() renvoie 0, c'est terminé. Les programmes MQL5 se terminent par une division par 0, non ? Il ne peut pas retourner 0 ? Les gens ici se plaignent que les fonctions informationnelles renvoient souvent 0. Vous ne pouvez pas vous rabattre sur "ça ne renverra pas 0" parce que, premièrement, ça peut le faire, et deuxièmement, la division par 0 est fatale.
Il y a quelques remarques de moindre importance sur la "précision de l'entrée", mais elles ne sont vraiment pas trop significatives, c'est-à-dire qu'elles n'ont pas de conséquences si graves, vous pouvez les ignorer.
Anticipant d'éventuels arguments selon lesquels le code est "approximatif", je note : combien d'utilisateurs du produit sont capables de trouver et de corriger avec compétence de tels "mauvais endroits" ?
Pour eux, il s'agit du "code des développeurs". Un exemple à suivre.
Pourquoi le bouton "Suivant" n'est-il pas actif lorsque tous les champs obligatoires sont remplis ?
Pourquoi le bouton "Suivant" n'est-il pas actif lorsque tous les champs obligatoires sont remplis ?
Il calcule, mais ensuite il oublie ce pour quoi il calculait :
Anticipant d'éventuels arguments selon lesquels le code est "approximatif", je tiens à souligner : combien d'utilisateurs du produit peuvent corriger correctement de tels "mauvais endroits" ?Le code était approximatif (copié à partir de deux pièces), mais vos commentaires sont corrects.
Voici la version corrigée :
Et pourquoi session_index++ ; alors que session_index=1 est déjà faux :
Nous ne pouvons pas savoir à l'avance quel est le nombre de sessions par outil. Nous interrogeons donc chaque session par numéro. Si c'est vrai
session_exist=SymbolInfoSessionQuote(symbol,day,session_index,start,finish);
nous nous intéressons à l'heure de son début et de sa fin. Si nous obtenons un faux - c'est tout, il n'y a pas de session avec ce numéro.
Nous ne pouvons pas savoir à l'avance quel est le nombre de sessions pour un instrument. C'est pourquoi nous demandons chaque session par numéro. Si c'est vrai
nous analysons le moment de son début et de sa fin. Si nous obtenons un faux - c'est tout, il n'y a pas de session avec ce numéro.
A...... alors pourquoi tout se termine le vendredi à 24h00 et en réalité à 23h00 ?