Unisciti alla nostra fan page
Procedura guidata MQL5 - Segnali di trading basati su tre medie mobili - sistema esperto per MetaTrader 5
- Visualizzazioni:
- 330
- Valutazioni:
- 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
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
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)); }
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 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
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
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 espertoQuesto codice è un modello di Expert Advisor, scritto da Valery Mazurenko (non utilizzato) per ATC-2010.
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 esponenzialmenteSi 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.