Cualquier pregunta de un PROFI a un SUPER PROFI - 1. - página 31

 
valenok2003:

disipar cualquier duda

idéntica a la siguiente

¿o es correcto elegir primero un orden?

La segunda opción es más correcta.
 
Gracias
 
valenok2003:

disipar cualquier duda
es idéntica a la siguiente
¿o es correcto elegir primero un orden?

En C/C++ && = cortocircuito y.
Lo que significa que si la primera condición no se cumple-
entonces ningún operador debe correr en la segunda.

Si el Mql tuviera una redacción normal en el libro de texto,
en lugar de este chiste https://book.mql4.com/ru/basics/expressions#Log
con una redacción extraña "Verdadero(1) si todos los valores son verdaderos",
los detalles serían más expresivos.

Así que... si && funciona correctamente - entonces ambas variantes son exactamente iguales.

 
jartmailru:


Así que... si && funciona correctamente - entonces ambos son exactamente lo mismo.


Ojalá, pero ojalá.

En MQL, las expresiones lógicas se calculan en su totalidad, es decir, no se les aplica el llamado esquema de "evaluación corta ".

 
La 2ª opción no sólo es más correcta, sino que es la única correcta:-).
Y la documentación es... es un poco extraño.
 

En este ejemplo, si no se selecciona ninguna orden, no tiene sentido comprobar la hora de cierre. Así que el primer caso también funcionará correctamente. ¿O es posible que la orden "no sea seleccionada" por alguna otra razón que no sea su inexistencia?

Pero, ¿cuál es el orden de cálculo de las expresiones lógicas? Es decir, si limitamos todo a una expresión, ¿seleccionaremos primero la orden y luego comprobaremos su hora de cierre?

Por ejemplo, se puede escribir así

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

y no así

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

Esto no está permitido y esto no está permitido. En C++ es UB, aquí es altamente indeseable según los principios de la programación normal.

Si antes tenía dudas, ahora no usaré BlueDream al 100% seguro. Y tampoco aconsejo a los demás que lo hagan.

 
TheXpert:
Esto no está permitido y esto no está permitido. En C++ es UB, aquí es altamente indeseable según los principios de la programación normal.

gracias todas las dudas están resueltas
 
TheXpert:

Si antes tenía mis dudas, ahora definitivamente no utilizaré BlueDream al 100%. Y no se lo recomendaría a nadie más.

Estás celoso de él, ¿no?

Como si no tuvieras cuñas.

 

Por cierto, esto es sólo para MQL4. En MQL5 la evaluación corta funciona