Toute question d'un PROFI à un SUPER PROFI - 1. - page 31

 
valenok2003:

dissiper les doutes

est identique à la suivante

ou est-il correct de choisir d'abord un ordre ?

La deuxième option est plus correcte.
 
Merci.
 
valenok2003:

dissiper les doutes
est identique à la suivante
ou est-il correct de choisir l'ordre en premier ?

En C/C++ && = court-circuit et.
Ce qui signifie que si la première condition n'est pas remplie...
alors aucun opérateur ne doit se présenter dans la seconde.

Si seulement Mql avait une formulation normale dans le manuel,
au lieu de ce tas de ferraille https://book.mql4.com/ru/basics/expressions#Log
avec une formulation bizarre "Vrai(1) si toutes les valeurs sont vraies",
les spécificités seraient plus expressives.

Alors... si && fonctionne correctement - alors les deux variantes sont exactement les mêmes.

 
jartmailru:


Alors... si && fonctionne correctement - alors les deux sont exactement les mêmes.


Si seulement, mais si seulement.

Dans MQL, les expressions logiques sont calculées dans leur intégralité, c'est-à-dire que le schéma dit "d'évaluation courte" ne s'applique pas à elles .

 
La deuxième option n'est pas seulement plus correcte, c'est la seule bonne:-).
Et la documentation est... est un peu étrange.
 

Dans cet exemple, si aucun ordre n'est sélectionné, il est inutile de vérifier l'heure de clôture. Le premier cas fonctionnera donc aussi correctement. Ou est-il possible que la commande soit "non sélectionnée" pour une autre raison que son inexistence ?

Mais quel est l'ordre dans lequel les expressions logiques sont calculées ? Par exemple, si nous limitons tout à une seule expression, allons-nous d'abord sélectionner l'ordre et ensuite vérifier son heure de clôture ?

Par exemple, vous pouvez l'écrire de la façon suivante

if(OrderSelect(Ticket, SELECT_BY_TICKET) && OrderCloseTime() > 0){

et pas comme ça

if(OrderCloseTime() > 0 && OrderSelect(Ticket, SELECT_BY_TICKET)){
 

Ce n'est pas autorisé et ce n'est pas autorisé. En C++ c'est UB, ici c'est hautement indésirable selon les principes de la programmation normale.

Si j'avais des doutes avant, maintenant je n'utiliserai pas BlueDream à 100%, c'est sûr. Et je ne conseille pas non plus aux autres de le faire.

 
TheXpert:
Ce n'est pas autorisé et ce n'est pas autorisé. En C++ c'est UB, ici c'est hautement indésirable selon les principes de la programmation normale.

merci tous les doutes sont résolus
 
TheXpert:

Si j'avais des doutes avant, je n'utiliserai certainement pas BlueDream à 100% maintenant. Et je ne le recommanderais à personne d'autre.

Tu es jaloux de lui, n'est-ce pas ?

Comme si tu n'avais pas de cales.

 

A propos, ceci n'est valable que pour MQL4. Dans MQL5, l'évaluation courte fonctionne.