Cicli e iterazioni in MQL4

Portatile con programma di coding

Nel capitolo precedente abbiamo esaminato le istruzioni condizionali, che ci consentono di inserire nel codice MQL4 dei percorsi decisionali. In questo articolo invece vedremo i cicli, che presentano alcune analogie con le istruzioni condizionali perché, in entrambe i casi, l’esecuzione delle righe di codice successive dipende dalla soddisfazione di una condizione.

La differenza tra i due approcci è che i contenuti di un ciclo possono essere eseguii più volte all’interno del nostro software.
In pratica viene verificata la condizione e se risulta soddisfatta viene eseguita l’operazione, poi la condizione viene eseguita di nuovo e nuovamente se viene soddisfatta viene di nuovo eseguita l’operazione e così via fino a quando il controllo restituisce il valore FALSE e quindi il ciclo termina. Ogni passaggio attraverso il ciclo viene definito iterazione.

In MQL4 esistono due tipologie di cicli:while() e for()

Ciclo while()

Iniziamo la trattazione sui cicli da while() sia per il fatto che presenta un costrutto più semplice sia perché presenta delle analogie con if(). il ciclo while() verifica il risultato di una condizione e solo in caso questa risulti vera esegue il codice che viene scritto tra le parentesi graffe { }.

Facciamo un esempio pratico:

Queste righe di codice per prima cosa costruiscono una variabile a virgola mobile con valore assegnato 0 dopo di che parte la condizione di while(): se Variabile è minore di 10 esegui quello che è scritto tra le parentesi.

La rima istruzione dopo la parentesi dice di stampare a video il valore della variabile che all’inizio sarà 0 dopo di che assegna a Variabile il valore di se stessa + 1 con l’operatore incrementale++ che a questo punto diventa 1 e si ripete il ciclo. Dopo di che l’istruzione while esegue un altro controllo, Variabile è < a 10? Dato che il valore attuale è 1 si, e allora l’istruzione si ripete, stampa a video 1 e incrementa il valore della variabile di 1 che diventa 2 e il ciclo esegue un’altra iterazione. Il tutto fino a che il valore di Variabile non è 10, a quel punto il ciclo termina la sua funzione e si esegue la parte di codice che segue la parentesi graffa chiusa, }.

Ciclo for()

Il ciclo è un po’ più complesso di while() necessitando di un costrutto più articolato.La sintassi prevede:

Facciamo un esempio pratico:

Il risultato dell’output è lo stesso dell’esempio con while(), ma il costrutto abbiamo visto è diverso.

Inizialmente nella dichiarazione della variabile intera Variabile non viene assegnato nessun valore iniziale, questo viene definito nella prima espressione del ciclo for() appena dopo la parentesi, il secondo parametro definisce la condizione e qui non è dissimile da while(), la terza espressione definisce il valore incrementale, dice di aumentare di 1 il valore di Variabile che anche in questo caso ad ogni iterazione diviene 1,2 3 … fino a 9 , il dieci restituisce FALSE e quindi il ciclo viene terminato.

Break e continue

All’interno di un ciclo, che sia while() o for() , è possibile controllare il flusso del programma attraverso l’utilizzo di break e continue.

In pratica questo codice dovrebbe scrivere i numeri incrementandoli di 1 , ma senza scrivere il 5 e terminando le iterazioni al raggiungimento del numero 7.

L’istruzione continue comunica all’interprete di passare il controllo all’iterazione successiva senza determinare la terminazione del ciclo mentre break termina il ciclo anche se nella dichiarazione il valore di controllo , nel nostro caso 10, non è stato raggiunto.

Apri un conto di trading

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *