Guarda come scaricare robot di trading gratuitamente
Ci trovi su Twitter!
Unisciti alla nostra fan page
Script interessante?
Pubblica il link!
lasciare che altri lo valutino
Ti è piaciuto lo script? Provalo nel Terminale MetaTrader 5
Sistemi Esperti

MQL5 Wizard - Segnali di trading basati sul crossover di due medie mobili smussate esponenzialmente - sistema esperto per MetaTrader 5

Visualizzazioni:
328
Valutazioni:
(32)
Pubblicato:
2021.11.11 16:19
Hai bisogno di un robot o indicatore basato su questo codice? Ordinalo su Freelance Vai a Freelance

MQL5 Wizard permette di creare automaticamente il codice di Expert Advisors. Da vedere Creazione di Expert Advisors già pronti in MQL5 Wizard per i dettagli.

Qui considereremo la strategia basata sul crossover di due medie mobili lisciate esponenzialmente (EMA veloce e EMA lento). La strategia chiamata "Segnali basati sull'incrocio di due EMA" (quando si crea EA automaticamente in MQL5 Wizard).

Segnali di trading:

  • Comprare: l'EMA veloce incrocia verso l'alto l'EMA lento
  • Vendere: l'EMA veloce incrocia al ribasso l'EMA lento

Questa strategia è implementata nella classe CSignalCrossEMA.

Figura 1. Segnali di trading, based on the crossover of two exponentially smoothed moving averages

Figura 1. Segnali di trading, based on the crossover of two exponentially smoothed moving averages


Segnali di trading

La strategia di trading è implementata nella classe CSignalCrossEMA, ha alcuni metodi protetti per semplificare l'accesso ai valori dell'indicatore:

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 veloci e lente della barra


1. Aprire posizione long

Condizioni per aprire una posizione long:

  • StateEMA(1)>0 e StateEMA(2)<0: la EMA veloce ha incrociato al rialzo la EMA lenta sull'ultima barra completata.
//+------------------------------------------------------------------+
//| Checks conditions to open long position (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 posizione long

Condizioni per chiudere la posizione long:

  • StateEMA(1)<0 e StateEMA(2)>0: la EMA veloce ha incrociato al ribasso la EMA lenta sull'ultima barra completata.
//+------------------------------------------------------------------+
//| Checks conditions to close long position                         |
//+------------------------------------------------------------------+
bool CSignalCrossEMA::CheckCloseLong(double& price)
  {
   if(!(StateEMA(2)>0 && StateEMA(1)<0)) return(false);
//---
   price=0.0;
//---
   return(true);
  }


3. Apertura posizione short

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

//+------------------------------------------------------------------+
//| Checks conditions to open short position (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 posizioni short

Le condizioni per chiudere una posizione corta sono le stesse di quelle di apertura di una posizione lunga.

//+------------------------------------------------------------------+
//| Checks conditions to close short position                        |
//+------------------------------------------------------------------+
bool CSignalCrossEMA::CheckCloseShort(double& price)
  {
   if(!(StateEMA(2)<0 && StateEMA(1)>0)) return(false);
//---
   price=0.0;
//---
   return(true);
  }

Creazione di Expert Advisor usando MQL5 Wizard

Per creare un robot di trading basato sulla strategia è necessario scegliere le proprietà del segnale come "Signals based on crossover of two EMA" nell'opzione "Creating Ready-Made Expert Advisors" del MQL5 Wizard:

Figura 2. Seleziona "Segnali, basati sull'incrocio di due EMA" in MQL5 Wizard

Figura 2. Seleziona "Segnali, basati sull'incrocio di due EMA" in MQL5 Wizard

Successivamente dovrete specificare l'algoritmo di trailing stop se necessario ed il sistema di gestione dei soldi e del rischio. Il codice di Expert Advisor sarà creato automaticamente, puoi compilarlo e testarlo in Strategy Tester del terminale MetaTrader 5.

Inoltre, nelle classi della libreria standard si trova "Signals based on crossover of two MA", implementato nella classe CSignalCrossMA. L'idea di trading è simile, ma fornisce molte caratteristiche aggiuntive (specificare i tipi, gli spostamenti e i metodi di mediazione e l'uso dei livelli di Take Profit e Stop Loss).

Figura 3. "Segnali, basati su crossover of two MA" in MQL5 Wizard

Figura 3. "Segnali basati su crossover of two MA" in MQL5 Wizard


Resultati dei test

Consideriamo 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 di Expert Advisor abbiamo usato il lotto fisso (Trading Fixed Lot, 0.1), algoritmo per Trailing Stop non viene utilizzato (Trailing not used).

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

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


Allegati: Il file SignalCrossEMA.mqh con la classe CSignalCrossEMA deve essere copiato nel folder terminal_data_folder\MQL5\Include\Expert\Signal folder.

The crossover_2ema.mq5 contiene il codice dell'Expert Advisor, creato con MQL5 Wizard.

Tradotto dal russo da MetaQuotes Ltd.
Codice originale https://www.mql5.com/ru/code/261

Procedura guidata MQL5 - Segnali di trading basati su crossover di prezzo con media mobile, confermati da ADX Procedura guidata MQL5 - Segnali di trading basati su crossover di prezzo con media mobile, confermati da ADX

Vengono presi in considerazione i segnali di trading basati sul crossover dei prezzi con l'indicatore della media mobile confermato da ADX. Il codice dell'Expert Advisor basato su questa strategia può essere generato automaticamente utilizzando il Wizard MQL5.

Procedura guidata MQL5 - Segnali di trading basati su tre medie mobili Procedura guidata MQL5 - Segnali di trading basati su tre medie mobili

Vengono presi in considerazione i segnali di trading basati su tre medie mobili. Il codice dell'Expert Advisor basato su questa strategia può essere generato automaticamente utilizzando il Wizard MQL5.

MQL5 Wizard - Segnali di trading basati sul crossover delle linee principali e di segnale dell'indicatore MACD MQL5 Wizard - Segnali di trading basati sul crossover delle linee principali e di segnale dell'indicatore MACD

Si considerano i segnali di trading basati sull'incrocio delle linee principali e di segnale dell'indicatore MACD (CSignalMACD da MQL5 Standard Library). Il codice dell'Expert Advisor basato su questa strategia può essere generato automaticamente utilizzando il Wizard MQL5.

MQL5 Wizard - Segnali commerciali basati sul crossover di due EMA con filtro temporale intraday MQL5 Wizard - Segnali commerciali basati sul crossover di due EMA con filtro temporale intraday

Vengono considerati i segnali di trading basati sull'incrocio dei prezzi di due medie mobili lisciate esponenzialmente con filtro intraday. Il codice dell'Expert Advisor basato su questa strategia può essere generato automaticamente utilizzando il Wizard MQL5.