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

 
Vladislav Andruschenko:
Si vous avez spécifié rost sans valeur, la valeur par défaut est false.

Pouvez-vous expliquer le rapport avec mon message? Je ne le comprends pas du tout.

 
novichok2018:

Pouvez-vous expliquer le rapport avec mon message? Parce que je ne le comprends pas du tout.

Vous avez demandé. Toutes les conditions qui ne sont pas égales à vrai entreront. Vous n'avez que deux vérifications. Mais si le contrôle n'est pas vrai, alors le contrôle est faux. La deuxième ligne n'a pas d'importance car rost = bool et ne peut prendre que 2 valeurs et est false par défaut
 
novichok2018:

Bonjour !

Question sur la syntaxe mcl4 : si je mets un drapeau comme ceci :

alors la condition if(!rost) n'attrapera que la condition pour rost=false ou toutes les conditions ne relevant pas de rost=true ?

Merci.

N'oubliez pas d'initialiser "rost". Dans votre fragment, si cl2=cl1 ou cl2=op1, alors "rost" est ce que vous voulez.
 
Vladislav Andruschenko:
Vous avez demandé. Toutes les conditions qui ne sont pas vraies seront prises. Vous n'avez que deux contrôles. Mais si le contrôle n'est pas vrai, alors le contrôle est faux. La deuxième ligne n'a pas d'importance parce que vous avez rost = bool et peut seulement prendre 2 valeurs et il est par défaut à false

Ainsi, toutes les conditions ne tombant pas sous la condition vraie seront automatiquement fausses et donc l'entrée if(!rost) capturera à la fois la condition (op1>cl2 && cl1<cl2) et la condition (op1<cl2 && cl1>cl2). N'est-ce pas ?

 
Maxim Kuznetsov:
n'oubliez pas d'initialiser "rost".

Comment ?

 
novichok2018:

Ainsi, toutes les conditions ne tombant pas sous la condition vraie seront automatiquement fausses et donc l'entrée if(!rost) capturera à la fois la condition (op1>cl2 && cl1<cl2) et la condition (op1<cl2 && cl1>cl2). N'est-ce pas ?

Oui.
Si rost est déclaré sans valeur, il sera toujours égal à la dernière valeur au niveau global.

Vous avez spécifié trop peu de données et un code incomplet pour donner une réponse spécifique.
 
novichok2018:

Comment ?

Bool rost=false ;
 
Vladislav Andruschenko:
Bool rost=false ;

Mais je veux juste éviter une situation où !rost capture toutes les conditions pour rost != true. Je n'ai donc pas initié Bool rost=false au niveau global, mais initié onTick() séparément pour false et séparément pour true. Peut-être, pour éviter toute confusion, est-il préférable de fixer les conditions non pas if(rost) et if(!rost) mais if(rost==true) et if(rost==false) ?

Ou alors, introduisez un autre fla qui restreint les conditions de !

 
novichok2018:

Mais je veux juste éviter une situation où !rost capture toutes les conditions pour rost != true. Je n'ai donc pas initié Bool rost=false au niveau global, mais initié onTick() séparément pour false et séparément pour true. Peut-être, pour éviter toute confusion, est-il préférable de fixer les conditions non pasif(rost) et if(!rost), mais if(rost==true) et if(rost==false) ?

Des entrées absolument identiques.

 
Artyom Trishkin:

Des entrées absolument identiques.

Cette correspondance montre simplement que dans mon casif(!rost) n'est pas la même chose queif(rost==false). Parce qu' il y a unecondition distincte pour lesfaux.

Raison: