Est-il possible d'éviter de nombreux "ou" (||) dans les conditions entraînant la même action ? - page 5

 
borilunad:


Et là, je ne comprends pas ce que vous voulez dire. D'où viennent ces chiffres ? Et si vous êtes intéressé par les noms de variables courts, je préfère les courts aux longs. Ou quoi d'autre ? Oui, je viens de remarquer que vous avez ajouté deux parenthèses avant clo et à la fin après clo à ma formule. Ce n'est pas du tout nécessaire, cela perturbe le calcul. Mais merci quand même !

<--- 10 444 = 8 087 > 3 908 c'est dans quelle langue ?


double a; <------------ est un nombre

(isCloseLastPosByTake() == True && Profit > ProClo / clo - GetProfitCloseLastPosByTake() * clo) ; <-------- il s'agit d'une comparaison de membres.

a = (isCloseLastPosByTake() == True && Profit > ProClo / clo - GetProfitCloseLastPosByTake() * clo)

nombre = nombre > nombre comment comprenez-vous cela ?

 
pako:


double a; <------------ ce nombre

(isCloseLastPosByTake() == True && Profit > ProClo / clo - GetProfitCloseLastPosByTake() * clo) ; <-------- il s'agit d'une comparaison de membres.

a = (isCloseLastPosByTake() == True && Profit > ProClo / clo - GetProfitCloseLastPosByTake() * clo)

nombre = nombre > clo

Et j'ai déjà fait avec le bool comme vous me l'avez conseillé :

bool a = false;

if(isCloseLastPosByTake() == True && Profit > ProClo / clo - GetProfitCloseLastPosByTake() * clo) a = true;


//Кстати, isCloseLastPosByTake() это член, а GetProfitCloseLastPosByTake() это число

Et ça marche, comme je vous l'ai déjà dit à la page précédente ! Merci !
 
borilunad:
Si je comprends bien, vous avez la variante qui consiste à remplir toutes les conditions, alors que dans mon cas, une seule condition suffit, et même si plusieurs conditions sont remplies, ce qui est peu probable, car elles sont très différentes, on n'en arrivera pas là, car une seule condition se déclenchera. Si je me suis trompé, justifiez-le ! Je suis toujours heureux d'entendre quelque chose de nouveau ! Merci !

Non, vous ne le faites pas.

Si une condition quelconque (A, B, C, D) = vraie, la demande sera vraie.

Si tous =faux, la demande sera fausse.

 
icas:

Non, vous ne le faites pas.

Si une condition quelconque (A, B, C, D) = vraie, la demande sera vraie.

Si tous =faux, la demande sera fausse.

Je vais essayer celui-là aussi ! S'il donne un résultat positif en termes de vitesse, je choisirai le vôtre. Merci !

Je l'ai essayé, la fonction Request() mise en dehors du début, mais le compilateur me donne un avertissement :

Request' - aucune dll définie pour la fonction importée C:\Program Files\

C'est tout, cela fonctionne maintenant, mais je pense que la variante de Rako est meilleure, car je n'ai pas besoin d'entrer la fonction supplémentaire Request(). Merci !

 
Request() return() signifie
 
pako:
Request() return() signifie
Merci, mais j'ai essayé la variante d'icas et mon erreur en mettant ; après Request(), maintenant ça marche, mais je pense que votre variante est meilleure, comme je vous l'ai dit plus tôt. Merci !
 
borilunad:
Merci, mais c'était moi qui essayait la variante d'icas et mon erreur, mettre ; après Request(), fonctionne maintenant, mais je pense que votre variante est meilleure, comme je vous l'ai dit plus tôt. Merci !

Dans la variante

 if((A + B + C + D + E) > 0) Action;

vous devez toujours définir toutes les conditions A, B, C, D, E.

Dans ma variante, cela ne se fait que lorsque toutes les conditions sont fausses.

Pensez maintenant à la vitesse.

 
icas:

Dans la variante

vous devez toujours définir toutes les conditions A, B, C, D, E.

Dans ma variante, cela ne se fait que lorsque toutes les conditions sont fausses.

Pensez à la vitesse maintenant.

Merci ! Et comment ça ? Je fais prescrire ces conditions au départ, après quoi j'appelle votre Request(). Où et comment faire, je ne comprends pas. :(

Gardez à l'esprit que toutes les conditions s'excluent mutuellement et seront toujours toutes fausses ou une seule vraie et les autres fausses.

 

icas !

J'espère vraiment que j'ai fait quelque chose de mal, car vérifier votre option n'a pas réduit le temps d'exécution dans le testeur !

Peut-être pouvez-vous m'expliquer quoi mettre et où ! Merci ! !!

 

borilunad, tout appel de fonction ajoute un freinage inutile. Donc, si vous voulez une vitesse maximale, vous devez vous débarrasser de toutes les fonctions Request() qui effectuent des opérations d'une syllabe. Il en va de même pour les boucles. La vérification des conditions dans une boucle est toujours beaucoup plus lente qu'une simple série de if() imbriqués.