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

Procedura guidata MQL5 - Segnali di trading basati su tre medie mobili - sistema esperto per MetaTrader 5

Visualizzazioni:
277
Valutazioni:
(26)
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 degli Expert Advisor. Vedere Creazione di Expert Advisor già pronti nel MQL5 Wizard per i dettagli.

Qui considereremo la strategia di trend, basata su tre medie mobili. La strategia denominata "Segnali basati su tre EMA" . Per determinare il trend, utilizza tre medie mobili esponenzialmente smussate: FastEMA, MediumEMA e SlowEMA.

Segnali di trading:

  • Segnale di acquisto: FastEMA>MediumEMA>SlowEMA (trend al rialzo).
  • Segnale di vendita: FastEMA<MediumEMA<SlowEMA (trend al ribasso).

Questa strategia è implementata nella classe CSignal3EMA (il signal3ema.mqh deve essere posizionato in terminal_data_folder\MQL5\Include\Expert\Signal\Signal3EMA.mqh).

Figura 1. Segnali di trading, basati su tre medie mobili

Figura 1. Segnali di trading, basati su tre medie mobili

Segnali di trading

La strategia di trading è implementata nella classe CSignal3EMA, ha alcuni metodi protetti per semplificare l'accesso ai valori di tre medie mobili (Fast, Medium, Slow):

double   FastEMA( int ind)       // restituisce il valore di Fast EMA della barra 
double   MediumEMA( int ind)     // restituisce il valore di Medium EMA della barra 
double   SlowEMA( int ind)       // restituisce il valore di Slow EMA della barra
I valori dell'indicatore della barra corrente (non completata) possono cambiare, quindi è necessario eseguire il controllo delle condizioni di trading utilizzando i dati delle barre completate (formate).

1. Aprire una posizione long

Il trend al rialzo è determinato dalla seguente condizione: FastEMA>MediumEMA>SlowEMA:

  • FastEMA(1)>MediumEMA(1): EMA veloce è superiore a EMA medio (ultima barra completata);
  • MediumEMA(2)>SlowEMA(1): l'EMA medio è maggiore di EMA lento (ultima barra completata);
//+------------------------------------------------------------------+
//| Checks conditions to open long position (buy)                    |
//+------------------------------------------------------------------+
bool CSignal3EMA::CheckOpenLong(double& price,double& sl,double& tp,datetime& expiration)
  {
   double medium=MediumEMA(1);
//---
   price=0.0;
   sl   =m_symbol.Ask()-m_stop_loss*m_adjusted_point;
   tp   =m_symbol.Ask()+m_take_profit*m_adjusted_point;
//--- checking for upward trend (on the last completed bar): FastEMA(1)>MediumEMA(1)>SlowEMA(1)
    return(FastEMA(1)>medium && medium>SlowEMA(1));
  }


2. Chiudere la posizione long

Il trend al ribasso è determinato dalla seguente condizione: FastEMA<MediumEMA<SlowEMA:

  • FastEMA(1)<MediumEMA(1): l'EMA veloce è inferiore all'EMA medio (ultima barra completata);
  • MediumEMA(2)<SlowEMA(1): Medium EMA è inferiore a Slow EMA (ultima barra completata);
//+------------------------------------------------------------------+
//| Checks conditions to close long position                         |
//+------------------------------------------------------------------+
bool CSignal3EMA::CheckCloseLong(double& price)
  {
   double medium=MediumEMA(1);
//---
   price=0.0;
//--- checking for downward trend (on the last completed bar): FastEMA(1)<MediumEMA(1)<SlowEMA(1)
   return(FastEMA(1)<medium && medium<SlowEMA(1));
  }
Puoi migliorare la chiusura delle posizioni long: non è necessario attendere il trend ribassista, puoi chiudere le posizioni long quando il trend è laterale, che possono essere determinate dalle seguenti condizioni: FastEMA<MediumEMA>SlowEMA.


3. Aprire una posizione short

//+------------------------------------------------------------------+
//| Checks conditions to open short position (sell)                  |
//+------------------------------------------------------------------+
bool CSignal3EMA::CheckOpenShort(double& price,double& sl,double& tp,datetime& expiration)
  {
   double medium=MediumEMA(1);
//---
   price=0.0;
   sl   =m_symbol.Bid()+m_stop_loss*m_adjusted_point;
   tp   =m_symbol.Bid()-m_take_profit*m_adjusted_point;
//--- checking for downward trend (on the last completed bar): FastEMA(1)<MediumEMA(1)<SlowEMA(1)
   return(FastEMA(1)<medium && medium<SlowEMA(1));

  }

4. Chiudere la posizione short

//+------------------------------------------------------------------+
//| Checks conditions to close short position                        |
//+------------------------------------------------------------------+
bool CSignal3EMA::CheckCloseShort(double& price)
  {
   double medium=MediumEMA(1);
//---
   price=0.0;
//--- checking for upward trend (on the last completed bar): FastEMA(1)>MediumEMA(1)>SlowEMA(1)
   return(FastEMA(1)>medium && medium>SlowEMA(1));
  }

Puoi migliorare la chiusura delle posizioni short: non è necessario attendere il trend rialzista, puoi chiudere le posizioni short quando il trend è laterale, che possono essere determinate dalle seguenti condizioni: FastEMA>MediumEMA<SlowEMA.


Creazione di Expert Advisor utilizzando MQL5 Wizard

Per creare un robot di trading basato sulla strategia è necessario scegliere le proprietà del segnale come " Segnali basati su tre EMA " nell'opzione "Creazione di Expert Advisor già pronti" della MQL5 Wizard :

Figura 2. Scegli 'Segnali su tre EMA' nel MQL5 Wizard

Figura 2. Scegli "Segnali basati su tre EMA" nel MQL5 Wizard

Successivamente dovrete specificare l'algoritmo necessario per trailing stop e del 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 cliente MetaTrader 5.


Risultati del test

Si considera il test dell'Expert Advisor su dati storici (EURUSD H1, sul periodo: 1.1.2010-05.01.2011,  FastPeriod=5, MediumPeriod=12, SlowPeriod=24, StopLoss=400, TakeProfit=900).

Nella creazione dell'Expert Advisor abbiamo utilizzato il lotto fisso (Trading Fixed Lot, 0.1), algoritmo del Trailing Stop non usato (Trailing not used).

Figure 3. Risultati del test du dati storici dell'Expert Advisor, basato sulle tre EMA

Figure 3. Risultati del test du dati storici dell'Expert Advisor, basato sulle tre EMA

Allegati: Il Signal3EMA.mqh con la classe CSignal3EMA deve essere posizionato in terminal_data_folder\MQL5\Include\Expert\Signal.

Il file threeema.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/250

MQL5 Wizard - Segnali di trading basati sull'incrocio dei prezzi con l'indicatore della media mobile MQL5 Wizard - Segnali di trading basati sull'incrocio dei prezzi con l'indicatore della media mobile

Si considerano i segnali di trading basati sull'incrocio dei prezzi con l'indicatore di media mobile (CSignalMA da MQL5 Standard Library). Il codice dell'Expert Advisor basato su questa strategia può essere generato automaticamente utilizzando il Wizard MQL5.

Un modello di consulente esperto Un modello di consulente esperto

Questo codice è un modello di Expert Advisor, scritto da Valery Mazurenko (non utilizzato) per ATC-2010.

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 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.