Qualsiasi domanda da un PROFI a un SUPER PROFI - 1. - pagina 31

 
valenok2003:

dissipare qualsiasi dubbio

è identico al seguente

o è corretto scegliere prima un ordine?

La seconda opzione è più corretta.
 
Grazie
 
valenok2003:

dissipare qualsiasi dubbio
è identico al seguente
o è corretto scegliere prima l'ordine?

In C/C++ && = cortocircuito e.
Il che significa che se la prima condizione non è soddisfatta-
allora nessun operatore dovrebbe essere eseguito nel secondo.

Se solo Mql avesse una dicitura normale nel libro di testo,
invece di questo pezzo di spazzatura https://book.mql4.com/ru/basics/expressions#Log
con una strana dicitura "True(1) se tutti i valori sono veri",
le specifiche sarebbero più espressive.

Quindi... se && funziona correttamente - allora entrambe le varianti sono esattamente le stesse.

 
jartmailru:


Quindi... se && funziona correttamente - allora entrambi sono esattamente la stessa cosa.


Se solo, ma se solo.

In MQL, le espressioni logiche sono calcolate nella loro interezza, cioè, il cosiddetto schema di "valutazione breve" non si applica ad esse .

 
La seconda opzione non solo è più corretta, ma è l'unica giusta:-).
E la documentazione è... è un po' strano.
 

In questo esempio, se nessun ordine è selezionato, non ha senso controllare l'orario di chiusura. Quindi anche il primo caso funzionerà correttamente. O è possibile che l'ordine sia "non selezionato" per qualche altra ragione che la sua inesistenza?

Ma qual è l'ordine di calcolo delle espressioni logiche? Cioè, se limitiamo tutto a un'espressione, selezioniamo prima l'ordine e poi controlliamo il suo tempo di chiusura?

Per esempio, si può scrivere in questo modo

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

e non come questo

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

Questo non è permesso e questo non è permesso. In C++ è UB, qui è altamente indesiderabile secondo i principi della programmazione normale.

Se prima avevo dei dubbi, ora non userò BlueDream al 100% di sicuro. E non consiglio nemmeno agli altri di farlo.

 
TheXpert:
Questo non è permesso e questo non è permesso. In C++ è UB, qui è altamente indesiderabile secondo i principi della programmazione normale.

grazie tutti i dubbi sono risolti
 
TheXpert:

Se prima avevo dei dubbi, ora sicuramente non userò BlueDream al 100%. E non lo raccomanderei a nessun altro.

Sei geloso di lui, vero?

Come se tu non avessi le zeppe.

 

A proposito, questo è solo per MQL4. In MQL5 la valutazione breve funziona