Guarda come scaricare robot di trading gratuitamente
Ci trovi su Telegram!
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 delle linee principali e di segnale dell'indicatore MACD - sistema esperto per MetaTrader 5

Visualizzazioni:
401
Valutazioni:
(34)
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 fornisce la creazione automatica di Expert Advisors (vedi MQL5 Wizard: Creating Expert Advisors without Programming).

Qui considereremo i segnali di trading basati sul crossover delle linee dell'indicatore MACD. La strategia chiamata "Signals based on crossover of main and signal MACD lines" (quando si crea EA automaticamente nel MQL5 Wizard).

La linea principale dell'indicatore MACD è calcolata come differenza tra l'EMA veloce e l'EMA lento. The signal line of MACD is calculated as the main line, smoothed with PeriodSignal period.

I segnali di trading:

  • Comprare: incrocio al rialzo delle linee principali e di segnale dell'indicatore MACD.
  • Vendere: incrocio al ribasso delle linee principali e di segnale dell'indicatore MACD.

Questa strategia è implementata nella classe CSignalMACD che apartiene alle Trading Strategy classes della MQL5 Standard Library (che si trova nel MQL5\Include\Expert\Signal\SignalMACD.mqh).

Figura 1. Segnali di trading, basati sul crossover delle linee MACD principali e di segnale

Figura 1. Segnali di trading, basati sul crossover delle linee MACD principali e di segnale


Trade signals

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

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


1. Apertura posizione long

Condizioni per aprire una posizione long:

  • ExtStateMACD(1)==1; it means that main line has crossed upward the signal MACD line
//+------------------------------------------------------------------+
//| Checks conditions to open long position (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. Chiusura posizione long

Condizioni per chiudere la posizione long:

  • ExtStateMACD(1)==1; significa che la linea principale ha attraversato verso il basso la linea MACD del segnale
//+------------------------------------------------------------------+
//| Checks conditions to close long position                         |
//+------------------------------------------------------------------+
bool CSignalMACD::CheckCloseLong(double& price)
  {
   price=0.0;
//---
   return(ExtStateMACD(1)==-1);
  }


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 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. Chiusura posizione short

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

//+------------------------------------------------------------------+
//| Checks conditions to close short position                        |
//+------------------------------------------------------------------+
bool CSignalMACD::CheckCloseShort(double& price)
  {
   price=0.0;
//---
   return(ExtStateMACD(1)==1);
  }

Creazione Expert Advisor con MQL5 Wizard

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

Figura 2. Seleziona "Signals based on crossover of main and signal MACD lines" nel MQL5 Wizard

Figura 2. Seleziona "Signals based on crossover of main and signal MACD lines" nel MQL5 Wizard

Successivamente si deve specificare trailing stop 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.


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

Figura 3. Risultati dei test dell'Expert Advisor con segnali di trading, basati sul incroccio delle linee MACD

Figura 3. Risultati dei test dell'Expert Advisor con segnali di trading, basati sul incroccio delle linee MACD


Allegati: The SignalMACD.mqh con classe CSignalMACD (che è inclusa in MQL5 Standard Library) si trova nella cartella MQL5\Include\Expert\Signal. Il testmacd.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/262

MQL5 Wizard - Segnali di trading basati sul crossover di due medie mobili smussate esponenzialmente MQL5 Wizard - Segnali di trading basati sul crossover di due medie mobili smussate esponenzialmente

Si considerano i segnali di trading basati sull'incrocio dei prezzi di due medie mobili smussate esponenzialmente. 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 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.

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.

MQL5 Wizard - Segnali di trading basati sul crossover delle linee dell'indicatore Alligator MQL5 Wizard - Segnali di trading basati sul crossover delle linee dell'indicatore Alligator

Vengono considerati i segnali di trading basati sul crossover delle linee dell'indicatore tecnico Alligator. Il codice dell'Expert Advisor basato su questa strategia può essere generato automaticamente utilizzando il Wizard MQL5.