Come utilizzare i codici MQL4 personalizzati in EA Wizard

EA Wizard contiene molte funzioni utili che possono essere facilmente utilizzate e che consentono di costruire rapidamente il proprio expert advisor. Se avete bisogno di una funzione che non è presente, non siete bloccati. In questo caso è possibile utilizzare la funzione personalizzata di EA Wizard.

L'utilizzo di questa funzione richiede che siate in grado di comprendere semplici linee di codice di MQL4. Se non avete familiarità con alcun linguaggio di programmazione, dovreste comunque essere in grado di completare una soluzione semplice come quella mostrata in questo tutorial.

In questo tutorial vi mostreremo come calcolare semplicemente il numero di barre che hanno chiuso al di sopra di un indicatore di media mobile per un determinato numero di barre del periodo precedente. Questo processo richiede un ciclo che torna indietro e controlla ogni barra utilizzando un semplice confronto tra il prezzo di chiusura di una barra e il valore della media mobile.

Questa funzione può essere molto utile quando si vuole valutare una tendenza del mercato. Se tutte le barre valutate in un determinato periodo chiudono al di sopra del valore della media mobile, possiamo considerare il mercato in una tendenza al rialzo. L'opposto sarà vero per una tendenza al ribasso.

Ok, iniziamo con la funzione personalizzata.

Creazione di funzioni MQL4 personalizzate in EA Wizard

Tutte le funzioni personalizzate che si desidera utilizzare nei progetti EA Wizard devono essere inserite nel file CustomFunctions.mq4 che si trova nella cartella di installazione di EA Wizard sotto la cartella del codice.

Una volta installata la copia di MetaTrader4 sul computer, sarà possibile modificare questo file utilizzando lo strumento MetaEditor.

Aprite il file CustomFunctions.mq4

Per contare le barre che si sono chiuse al di sopra dell'indicatore della media mobile utilizzeremo questa semplice funzione personalizzata:

int getBarCloseAboveAverage(int barsPeriod, int maPeriod) {


int counter = 0;


per (int i = 1; i <= barsPeriod; i++) {


se (Close[i] > iMA(NULL, 0, maPeriod, 0, MODE_EMA, PRICE_CLOSE, i))


contatore++;


}


restituire il contatore; }

Esaminiamo ogni riga e spieghiamo in modo più dettagliato cosa rappresenta ogni riga.

int getBarCloseAboveAverage(int barsPeriod, int maPeriod) { - Questa riga definisce la nostra funzione personalizzata. Il tipo di ritorno è impostato su "int", il che significa che la funzione restituirà un numero intero, ovvero il numero di barre che hanno chiuso al di sopra della nostra media mobile. La funzione contiene anche due parametri - barrePeriodo che è un numero intero che rappresenta il numero di barre che confrontiamo con la media mobile e maPeriodo che rappresenta un periodo che verrà utilizzato come lunghezza mobile. Il nome di queste variabili è importante solo all'interno della funzione stessa. All'interno di EA Wizard è possibile utilizzare nomi diversi per i valori di input, come si vedrà in seguito.

int counter = 0; - Questa riga definisce un contatore. Memorizzerà la somma delle barre che soddisfano i nostri criteri, ossia le barre che hanno chiuso al di sopra della linea della media mobile.

per (int i = 1; i <= barsPeriod; i++) { - Questa riga avvia il ciclo. La variabile "i" rappresenta l'indice della barra che stiamo valutando. Si inizia con la barra #1 e si continua con ogni barra fino a controllare tutte le barre (barsPeriod). Ogni volta aumentiamo il valore di "i" di 1 (ci spostiamo alla barra precedente).

se (Close[i] > iMA(NULL, 0, maPeriod, 0, MODE_EMA, PRICE_CLOSE, i)) - Questa condizione verifica se una barra chiude al di sopra del valore della media mobile. Si noti la variabile "i" utilizzata per fare riferimento a ciascuna barra mentre il ciclo procede su tutte le barre. Utilizziamo anche la media mobile esponenziale (MODE_EMA) come specificato nella guida di MQL4. https://docs.mql4.com/indicators/ima

Anche se può sembrare troppo complesso, è abbastanza intuitivo, soprattutto se il MetaEditor aiuta a completare il codice. Vedere la schermata.

Una volta completata la funzione, possiamo salvare il nostro lavoro, aprire EA Wizard e utilizzare la funzione creata nel nostro nuovo expert advisor.

Utilizzo di funzioni personalizzate in EA Wizard

Ora creeremo un semplice expert advisor che utilizzerà la funzione creata. Il primo passo sarà quello di definire le variabili e gli input. Si veda la schermata allegata.

Definizione degli input per il consulente esperto

periodo medio - questa variabile di input rappresenta il periodo della media mobile. Per impostazione predefinita, è impostata su 34

barreTrendPeriodo - questa variabile di input rappresenta la quantità complessiva di barre che contiamo. Per impostazione predefinita, è impostata a 20

minBarsUptrend - questa variabile di input rappresenta le barre minime che devono essere al di sopra della media mobile. Per impostazione predefinita, è impostata a 15

Abbiamo anche impostato prendereProfittostopLoss a 20 pips e dimensione del lotto a 0,1.

Riuniamo il tutto in una semplice regola di trading che aprirà una posizione lunga.

Regole per una posizione lunga

Oltre alla nostra funzione personalizzata, la condizione long include anche un controllo per verificare se non abbiamo una posizione nel mercato. Se non ne abbiamo una, possiamo aprire una nuova posizione. Inoltre, ci assicuriamo che la regola venga valutata solo alla chiusura di una barra (non a ogni tick) utilizzando l'opzione Is Bar Open è vero funzione.

Ecco come impostare la funzione personalizzata e includere le variabili definite in EA Wizard utilizzando Funzione personalizzata che si trova sotto la voce Funzioni menu.

Funzione personalizzata : getBarCloseAboveAverage(barsTrendPeriod, averagePeriod)

A questo punto il nostro expert advisor è pronto per essere utilizzato. L'ultimo passo da compiere è l'esportazione del codice in MetaTrader 4. Ecco come fare:

Esportazione del codice della strategia

Ora è possibile testare l'expert advisor in MetaTrader e grazie agli input definiti l'expert advisor è anche pronto per un processo di ottimizzazione. Potete cercare di trovare le impostazioni migliori per i valori di input o aggiungere regole e filtri aggiuntivi per i segnali di trading.

Potete scaricare il progetto EA Wizard qui: Barre chiuse sopra l'EMA.sqw

Abbonarsi
Notificami
0 Commenti
Feedback in linea
Visualizza tutti i commenti

Continua a leggere