Strategia di Trading con Crossover di Due EMA: Guida all'Utilizzo di MQL5 Wizard

Mike 2011.01.12 05:30 25 0 0
Allegato

MQL5 Wizard è uno strumento fantastico che ti permette di generare automaticamente il codice per i tuoi Expert Advisor. Se vuoi approfondire, dai un'occhiata a Come Creare Expert Advisors Pronti all'uso con MQL5 Wizard.

In questo articolo, ci concentreremo su una strategia di trading basata sul crossover di due medie mobili esponenziali (fast EMA e slow EMA). La strategia è denominata "Segnali basati sul crossover di due EMA" (quando crei un EA automaticamente in MQL5 Wizard).

Ecco i segnali di trading:

  • Acquista: il Fast EMA incrocia verso l'alto il Slow EMA
  • Vendi: il Fast EMA incrocia verso il basso il Slow EMA

Questa strategia è implementata nella classe CSignalCrossEMA.

Figura 1. Segnali di trading, basati sul crossover di due medie mobili esponenziali

Figura 1. Segnali di trading, basati sul crossover di due medie mobili esponenziali


Segnali di Trading

La strategia di trading è implementata nella classe CSignalCrossEMA, la quale contiene alcuni metodi protetti per semplificare l'accesso ai valori degli indicatori:

double   FastEMA(int ind)      // restituisce il valore della media mobile veloce della barra
double   SlowEMA(int ind)      // restituisce il valore della media mobile lenta della barra
double   StateEMA(int ind)     // restituisce la differenza tra le medie mobili veloce e lenta della barra


1. Apertura di una posizione long

Condizioni per aprire una posizione long:

  • StateEMA(1)>0 e StateEMA(2)<0: il Fast EMA ha incrociato verso l'alto il Slow EMA nell'ultima barra completata.
//+------------------------------------------------------------------+
//| Controlla le condizioni per aprire una posizione long (buy)       |
//+------------------------------------------------------------------+
bool CSignalCrossEMA::CheckOpenLong(double& price,double& sl,double& tp,datetime& expiration)
  {
     if(!(StateEMA(2)<0 && StateEMA(1)>0)) return(false);
//---
   price=0.0;
   sl   =0.0;
   tp   =0.0;
//---
   return(true);
  }

2. Chiusura di una posizione long

Condizioni per chiudere una posizione long:

  • StateEMA(1)<0 e StateEMA(2)>0: il Fast EMA ha incrociato verso il basso il Slow EMA nell'ultima barra completata.
//+------------------------------------------------------------------+
//| Controlla le condizioni per chiudere una posizione long            |
//+------------------------------------------------------------------+
bool CSignalCrossEMA::CheckCloseLong(double& price)
  {
     if(!(StateEMA(2)>0 && StateEMA(1)<0)) return(false);
//---
   price=0.0;
//---
   return(true);
  }

3. Apertura di una posizione short

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

//+------------------------------------------------------------------+
//| Controlla le condizioni per aprire una posizione short (sell)    |
//+------------------------------------------------------------------+
bool CSignalCrossEMA::CheckOpenShort(double& price,double& sl,double& tp,datetime& expiration)
  {
     if(!(StateEMA(2)>0 && StateEMA(1)<0)) return(false);
//---
   price=0.0;
   sl   =0.0;
   tp   =0.0;
//---
   return(true);
  }

4. Chiusura di una posizione short

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

//+------------------------------------------------------------------+
//| Controlla le condizioni per chiudere una posizione short           |
//+------------------------------------------------------------------+
bool CSignalCrossEMA::CheckCloseShort(double& price)
  {
     if(!(StateEMA(2)<0 && StateEMA(1)>0)) return(false);
//---
   price=0.0;
//---
   return(true);
  }

Creazione di un Expert Advisor con MQL5 Wizard

Per creare un robot di trading basato sulla strategia, devi selezionare le proprietà del segnale come "Segnali basati sul crossover di due EMA" nell'opzione "Creazione di Expert Advisors Pronti all'uso" di MQL5 Wizard:

Figura 2. Scegli

Figura 2. Scegli "Segnali basati sul crossover di due EMA" in MQL5 Wizard

Dopo, dovrai specificare il necessario algoritmo di trailing stop e il sistema di gestione della denaro e dei rischi. Il codice dell'Expert Advisor verrà creato automaticamente, potrai compilarlo e testarlo nel Strategy Tester del terminale client MetaTrader 5.

Inoltre, le classi della libreria standard contengono i "Segnali basati sul crossover di due MA", implementati nella classe CSignalCrossMA. L'idea di trading è simile, ma offre molte funzionalità aggiuntive (specificare tipi, spostamenti e metodi di media e utilizzare livelli di Take Profit e Stop Loss).

Figura 3.

Figura 3. "Segnali basati sul crossover di due MA" in MQL5 Wizard


Risultati dei Test

Analizziamo il backtesting dell'Expert Advisor su dati storici (EURUSD H1, periodo di test: 1.1.2010-05.01.2011, FastPeriod=12, SlowPeriod=24).

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

Figura 4. Risultati storici del backtesting dell'Expert Advisor, basato sul crossover di due EMA

Figura 4. Risultati storici del backtesting dell'Expert Advisor, basato sul crossover di due EMA


Allegati: Il SignalCrossEMA.mqh con la classe CSignalCrossEMA deve essere posizionato nella cartella terminal_data_folder\MQL5\Include\Expert\Signal.

Il crossover_2ema.mq5 contiene il codice dell'Expert Advisor, creato utilizzando MQL5 Wizard.

Elenco
Commento 0