Home Trading Sistematico Post

Strategia di Trading con Moving Average: Crea il Tuo EA con MQL5 Wizard

Allegato
248.zip (3.15 KB, Scarica 0 volte)

MQL5 Wizard è uno strumento fantastico che ti permette di generare il codice per gli Expert Advisor in modo automatico. Se vuoi approfondire, dai un'occhiata a Creare Expert Advisor Pronti in MQL5 Wizard per ulteriori dettagli.

In questo articolo, parleremo di una strategia basata sui segnali di trading generati dal crossover dei prezzi con l'indicatore Moving Average. Questa strategia è conosciuta come "Segnali basati sul crossover dei prezzi con MA" (quando crei un EA automaticamente in MQL5 Wizard).

Segnali di Trading

I segnali di trading sono i seguenti:

  • Acquisto: crossover rialzista del prezzo con la Moving Average.
  • Vendita: crossover ribassista del prezzo con la Moving Average.
  • Il controllo dell'aumento/diminuzione della MA viene utilizzato per filtrare i segnali falsi.

Questa strategia è implementata nella classe CSignalMA della Libreria Standard di MQL5 (si trova in MQL5\Include\Expert\Signal\SignalMA.mqh).

Figure 1. Segnali di trading basati sul crossover dei prezzi con Moving Average

Figure 1. Segnali di trading basati sul crossover dei prezzi con Moving Average

Implementazione della Strategia

La strategia di trading è implementata nella classe CSignalMA, che comprende metodi protetti per semplificare l'accesso agli indicatori e ai valori dei prezzi:

double  MA(int ind)          // restituisce il valore della moving average della barra
double  Open(int ind)        // restituisce il prezzo di apertura della barra
double  Close(int ind)        // restituisce il prezzo di chiusura della barra
double  StateMA(int ind)     // restituisce valore positivo se la media aumenta e negativo se diminuisce
double  StateOpen(int ind)   // restituisce la differenza tra il prezzo di apertura e la moving average
double  StateClose(int ind)   // restituisce la differenza tra il prezzo di chiusura e la moving average
I valori del prezzo e degli indicatori della barra 0 (non completata) possono cambiare, quindi è necessario verificare le condizioni di trading utilizzando i dati delle barre completate (formate).

1. Aprire una posizione long

Condizioni per aprire una posizione long (crossover dei prezzi con MA e controllo dell'aumento della MA):

  • Open(1)<MA(1): il prezzo di apertura è inferiore alla moving average;
  • Close(1)>MA(1): il prezzo di chiusura è superiore alla moving average;
  • MA(1)>MA(2): controllo dell'aumento della moving average (per filtrare segnali falsi).
//+------------------------------------------------------------------+
//| Controlla le condizioni per aprire una posizione long (acquisto)  |
//+------------------------------------------------------------------+
bool CSignalMA::CheckOpenLong(double& price,double& sl,double& tp,datetime& expiration)
  {
   price=0.0;
   sl   =0.0;
   tp   =0.0;
//--- il prezzo ha incrociato verso l'alto la MA e la MA aumenta
   return(StateOpen(1)<0 && StateClose(1)>0 && StateMA(1)>0);
  }

2. Chiudere una posizione long

Condizioni per chiudere una posizione long (crossover dei prezzi con MA e controllo della diminuzione della MA):

  • Open(1)>MA(1): il prezzo di apertura è superiore alla moving average;
  • Close(1)<MA(1): il prezzo di chiusura è inferiore alla moving average;
  • MA(1)<MA(2): controllo della diminuzione della moving average (per filtrare segnali falsi).
//+------------------------------------------------------------------+
//| Controlla le condizioni per chiudere una posizione long            |
//+------------------------------------------------------------------+
bool CSignalMA::CheckCloseLong(double& price)
  {
   price=0.0;
//--- il prezzo ha incrociato la moving average verso il basso e la moving average diminuisce
  return(StateOpen(1)>0 && StateClose(1)<0 && StateMA(1)<0);
  }


3. Aprire una posizione short

Le condizioni per aprire una posizione short sono le stesse delle condizioni di chiusura delle posizioni long.

//+------------------------------------------------------------------+
//| Controlla le condizioni per aprire una posizione short (vendita)  |
//+------------------------------------------------------------------+
bool CSignalMA::CheckOpenShort(double& price,double& sl,double& tp,datetime& expiration)
  {
   price=0.0;
   sl   =0.0;
   tp   =0.0;
//--- il prezzo ha incrociato la moving average verso l'alto e la moving average diminuisce
   return(StateOpen(1)>0 && StateClose(1)<0 && StateMA(1)<0);
  }


4. Chiudere una posizione short

Le condizioni per chiudere una posizione short sono le stesse delle condizioni di apertura delle posizioni long.

//+------------------------------------------------------------------+
//| Controlla le condizioni per chiudere una posizione short           |
//+------------------------------------------------------------------+
bool CSignalMA::CheckCloseShort(double& price)
  {
   price=0.0;
//--- il prezzo ha incrociato la moving average verso l'alto e la moving average aumenta
   return(StateOpen(1)<0 && StateClose(1)>0 && StateMA(1)>0);
  }
//+------------------------------------------------------------------+

Creare un Expert Advisor utilizzando MQL5 Wizard

Per creare un robot di trading basato su questa strategia, devi scegliere le proprietà del segnale come "Segnali basati sul crossover dei prezzi con MA" nell'opzione "Creazione di Expert Advisor Pronti" in MQL5 Wizard:

Figure 2. Scegli

Figure 2. Scegli "Segnali basati sul crossover dei prezzi con MA" in MQL5 Wizard

Successivamente, dovrai specificare l'algoritmo di trailing stop necessario e il sistema di gestione del denaro e del rischio. Il codice dell'Expert Advisor verrà creato automaticamente, puoi compilarlo e testarlo nel Strategy Tester del terminale client di MetaTrader 5.


Risultati del Test

Esaminiamo il backtesting dell'Expert Advisor su dati storici (EURUSD H1, periodo personalizzato: 1.1.2010-05.01.2011, MA_period=12, MA_Shift=0).

Nella creazione dell'Expert Advisor abbiamo utilizzato un volume fisso (Trading Fixed Lot, 0.1), l'algoritmo Trailing Stop non è stato utilizzato (Trailing non utilizzato).

Crossover con Moving Average

Figure 3. Risultati del backtesting storico dell'Expert Advisor, basato sul crossover dei prezzi con MA

Allegati: Il file SignalMA.mqh con la classe CSignalMA (incluso nella Libreria Standard di MQL5) si trova nella cartella MQL5\Include\Expert\Signal. Il file crossoverma.mq5 contiene il codice dell'Expert Advisor, creato utilizzando MQL5 Wizard.

Post correlati

Commento (0)