Strategie di Trading con MQL5 Wizard: Segnali Basati sul Crossover MACD

Mike 2011.01.14 21:55 31 0 0
Allegato

MQL5 Wizard offre la possibilità di creare automaticamente Expert Advisor senza dover scrivere codice. Qui parleremo dei segnali di trading basati sul crossover delle linee dell'indicatore MACD.

La strategia che prendiamo in considerazione si chiama "Segnali basati sul crossover delle linee principali e di segnale del MACD". La linea principale del MACD viene calcolata come la differenza tra l'EMA veloce e l'EMA lenta, mentre la linea di segnale è una media mobile della linea principale.

Segnali di trading:

  • Acquisto: crossover ascendente tra la linea principale e la linea di segnale del MACD.
  • Vendita: crossover discendente tra la linea principale e la linea di segnale del MACD.

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

Segnali di trading basati sul crossover delle linee MACD

Figura 1. Segnali di trading basati sul crossover delle linee MACD


Dettagli sui segnali di trading

La strategia di trading è implementata nella classe CSignalMACD, che include metodi protetti per semplificare l'accesso ai valori dell'indicatore:

double  MainMACD(int ind)      // restituisce il valore della linea principale del MACD
double  SignalMACD(int ind)    // restituisce il valore della linea di segnale del MACD
double  StateMACD(int ind)     // restituisce la differenza tra le linee principale e di segnale del MACD
int     ExtStateMACD(int ind); // restituisce il numero di cambi di segno della differenza tra le linee principale e di segnale

1. Aprire una posizione long

Condizioni per aprire una posizione long:

  • ExtStateMACD(1)==1; significa che la linea principale ha incrociato verso l'alto la linea di segnale del MACD.
//+------------------------------------------------------------------+
//| Controlla le condizioni per aprire una posizione long (buy)       |
//+------------------------------------------------------------------+
bool CSignalMACD::CheckOpenLong(double& price,double& sl,double& tp,datetime& expiration)
  {
   price=0.0;
   sl   =m_symbol.Ask()-m_stop_loss*m_adjusted_point;
   tp   =m_symbol.Ask()+m_take_profit*m_adjusted_point;
//---
   return(ExtStateMACD(1)==1);
  }


2. Chiudere una posizione long

Condizioni per chiudere una posizione long:

  • ExtStateMACD(1)==1; significa che la linea principale ha incrociato verso il basso la linea di segnale del MACD.
//+------------------------------------------------------------------+
//| Controlla le condizioni per chiudere una posizione long           |
//+------------------------------------------------------------------+
bool CSignalMACD::CheckCloseLong(double& price)
  {
   price=0.0;
//---
   return(ExtStateMACD(1)==-1);
  }


3. Aprire una posizione short

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

//+------------------------------------------------------------------+
//| Controlla le condizioni per aprire una posizione short (sell)     |
//+------------------------------------------------------------------+
bool CSignalMACD::CheckOpenShort(double& price,double& sl,double& tp,datetime& expiration)
  {
   price=0.0;
   sl   =m_symbol.Bid()+m_stop_loss*m_adjusted_point;
   tp   =m_symbol.Bid()-m_take_profit*m_adjusted_point;
//---
   return(ExtStateMACD(1)==-1);
  }


4. Chiudere una posizione short

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

//+------------------------------------------------------------------+
//| Controlla le condizioni per chiudere una posizione short          |
//+------------------------------------------------------------------+
bool CSignalMACD::CheckCloseShort(double& price)
  {
   price=0.0;
//---
   return(ExtStateMACD(1)==1);
  }

Creare un Expert Advisor con MQL5 Wizard

Per creare un robot di trading basato su questa strategia, devi selezionare le proprietà del segnale come "Segnali basati sul crossover delle linee principali e di segnale del MACD" nell'opzione Creazione di Expert Advisor Pronti di MQL5 Wizard:

Seleziona segnali basati sul crossover delle linee MACD

Figura 2. Seleziona "Segnali basati sul crossover delle linee MACD" in MQL5 Wizard

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


Risultati dei Test

Consideriamo il backtesting dell'Expert Advisor su dati storici (EURUSD H1, periodo di test: 1.1.2010-05.01.2011, PeriodFast=12, PeriodSlow=24, PeriodSignal=9, StopLoss=20, TakeProfit=80).

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

Risultati del test dell'Expert Advisor con segnali di trading basati sul crossover delle linee MACD

Figura 3. Risultati del test dell'Expert Advisor con segnali di trading basati sul crossover delle linee MACD


Allegati: Il file SignalMACD.mqh contenente la classe CSignalMACD (inclusa nella Libreria Standard di MQL5) si trova nella cartella MQL5\Include\Expert\Signal. Il file testmacd.mq5 contiene il codice dell'Expert Advisor creato utilizzando MQL5 Wizard.

Elenco
Commento 0