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 Trade Basato su Bullish/Bearish Meeting Lines + RSI - sistema esperto per MetaTrader 5

Visualizzazioni:
253
Valutazioni:
(24)
Pubblicato:
2021.10.22 15:46
Aggiornato:
2021.10.22 16:49
\MQL5\Include\Expert\Signal\MySignals\
Hai bisogno di un robot o indicatore basato su questo codice? Ordinalo su Freelance Vai a Freelance

L' MQL5 Wizard permette di creare Expert Advisor già pronti basati sulle classi di librerie Standard fornite insieme al terminale client (vedere Creazione di Expert Advisor Già Pronti con MQL5 Wizard per i dettagli). Consente di verificare rapidamente le tue idee di trading, tutto ciò di cui hai bisogno è creare la tua classe di segnali di trading. La struttura di questa classe ed esempio può essere trovata in questo articolo MQL5 Wizard: Come Creare un Modulo di Segnali Trading.

L'idea generica è la seguente: la classe dei segnali di trading è derivata da CExpertSignal,dopodichè, è necessario sovrascrivere i processi virtuali LongCondition() e ShortCondition() con i propri processi.

C'è un libro "Strategies of best traders" (in Russo), ci sono molte strategie di trading prese in considerazione li, noi ci concentreremo sui patterns di candele di inversione confermati dagli oscillatori Stochastic, CCI, MFI e RSI.

Il modo migliore è creare la classe separata, derivata da CExpertSignal per verificare la formazione dei patterns di candele. Per la conferma dei segnali di trading, generati dai patterns di candele, è sufficente scrivere la classe, derivata da CCandlePattern e aggiungere le funzionalità necessarie (per esempio, conferma tramite oscillatori) là.

Qui considereremo i segnali, basati sul pattern di candele di inversione "Bullish/Bearish Meeting Lines" , confermato dall' indicatore RSI (Relative Strength Index). Il modulo dei segnali di trading si basa sulla classe CCandlePattern , è un semplice esempio del suo utilizzo per la creazione di segnali di trading con pattern di candele.


1. "Meeting Lines" pattern di candele di inversione

1.1. Bullish Meeting Lines

Il pattern consiste in 2 candele (orso e toro) con prezzi di chiusura uguali (o molto vicini). Il corpo delle due candele deve essere maggiore della lunghezza media del corpo.

Il pattern "Bullish Meeting Lines" indica l'inversione di un trend ribassista.

Fig. 1. "Bullish Meeting Lines" pattern

Fig. 1. "Bullish Meeting Lines" pattern

Il riconoscimento del "Bullish Meeting Lines" è implementata nel CheckPatternCheckPatternBullishMeetingLines() processo della classe CCandlePattern:

//+--------------------------------------------------------------------+
//| Checks formation of "Bullish Meeting Lines" candlestick pattern    |            
//+--------------------------------------------------------------------+
bool CCandlePattern::CheckPatternBullishMeetingLines()
  {
//--- Bullish Meeting Lines
   if((Open(2)-Close(2)>AvgBody(1))              && // long black
     ((Close(1)-Open(1))>AvgBody(1))             && // long white
      (MathAbs(Close(1)-Close(2))<0.1*AvgBody(1)))   // doji close
      return(true);
//---
   return(false);
  }

Il CheckCandlestickPattern(CANDLE_PATTERN_BULLISH_MEETING_LINES) processo della classe CCandlePattern è usato per verificare la formazione del pattern di candele "Bullish Meeting Lines".


1.1. Bearish Meeting Lines

Il pattern consiste in 2 candele (toro e orso) con prezzi di chiusura uguali (o molto vicini). Il corpo delle due candele deve essere maggiore della lunghezza media del corpo.

Il pattern "Bearish Meeting Lines" indica l'inversione di un trend rialzista.

Fig. 2. "Bearish Meeting Lines" pattern

Fig. 2. Bearish Meeting Lines" pattern

Il riconoscimento del "Bearish Meeting Lines" è implementata nel CheckPatternCheckPatternBearishMeetingLines() processo della classe CCandlePattern:

//+--------------------------------------------------------------------+
//| Checks formation of "Bearish Meeting Lines" candlestick pattern    |
//+--------------------------------------------------------------------+
bool CCandlePattern::CheckPatternBearishMeetingLines()
  {
//--- Bearish Meeting Lines
   if((Close(2)-Open(2)>AvgBody(1))             && // long white
     ((Open(1)-Close(1))>AvgBody(1))            && // long black
      (MathAbs(Close(1)-Close(2))<0.1*AvgBody(1)))  // doji close
      return(true);
//---
   return(false);
  }

Il CheckCandlestickPattern(CANDLE_PATTERN_BEARISH_MEETING_LINES) processo della classe CCandlePattern è usato per verificare la formazione del pattern di candele "Bearish Meeting Lines".



2. Segnali di trade, confermati dall'indicatore RSI

I segnali di trading per aprire posizioni long o short devono essere confermati dall'indicatore RSI. Il valore dell' RSI deve essere minore/maggiore dei livelli critici (40 per le posizioni long e 60 le posizioni short).

La chiusura della posizione aperta dipendono dai valori dell' RSI. Può essere fatta in 2 casi:

  1. se RSI raggiunge il livello critico opposto (70 per le posizioni long e 30 per le posizioni short)
  2. se il segnale di inversione non è confermato (quando RSI raggiunge i seguenti livelli: 30 per le posizioni long 70 per le posizioni short)

Figure 3.  Il "Bearish Meeting Lines" pattern, confermato dall'indicatore RSI

Fig. 3. "Bearish Meeting Lines" pattern, confermato dall'indicatore RSI


  • int CML_RSI::LongCondition() - verifica le condizioni per aprire una posizione long (restituisce 80) e chiudere la posizione short (restituisce 40);
  • int CML_RSI::ShortCondition() - verifica le condizioni per aprire una posizione short (restituisce 80) e chiudere la posizione long (restituisce 40).

2.1. Apertura posizione long/Chiusura posizione short

  1. La formazione del pattern "Bullish Meeting Lines" deve essere confermata dall'indicatore RSI: RSI(1)<40 (il valore dell'RSI dell'ultima barra completata deve essere meno di 40).

  2. La posizione short deve essere chiusa se l'indicatore RSI ha attraversato al rialzo i livelli critici 70 o 30.

//+------------------------------------------------------------------+
//| Checks conditions for entry and exit from market                 |
//| 1) Market entry (open long position, result=80)                  |
//| 2) Market exit (close short position, result=40)                 |
//+------------------------------------------------------------------+
int CML_RSI::LongCondition()
  {
   int result=0;
//--- idx can be used to determine Expert Advisor work mode
//--- idx=0 - in this case EA checks trade conditions at each tick
//--- idx=1 - in this case EA checks trade consition only at news bars
   int idx   =StartIndex();
//--- checking of conditions to open long position
//--- formation of Bullish Metting Lines pattern and RSI<30
  if(CheckCandlestickPattern(CANDLE_PATTERN_BULLISH_MEETING_LINES) && (RSI(1)<40))
     result=80;
//--- checking of conditions to close short position
//--- signal line crossover of overbought/oversold levels (upward 30, upward 70)
  if(((RSI(1)>30) && (RSI(2)<30)) || ((RSI(1)>70) && (RSI(2)<70)))
     result=40;
//--- return result
   return(result);
  }

2.2. Apertura posizione short/Chiusura posizione long

  1. La formazione del pattern "Bullish Meeting Lines" deve essere confermata dall'indicatore RSI: RSI(1)>60 (il valore dell'RSI dell'ultima barra completata deve essere maggiore di 60).

  2. La posizione long deve essere chiusa se l'indicatore RSI ha attraversato al ribasso i livelli critici 70 o 30.

//+------------------------------------------------------------------+
//| Checks conditions for entry and exit from market                 |
//| 1) Market entry (open short position, result=80)                 |
//| 2) Market exit (close long position, result=40)                  |
//+------------------------------------------------------------------+
int CML_RSI::ShortCondition()
  {
   int result=0;
//--- idx can be used to determine Expert Advisor work mode
//--- idx=0 - in this case EA checks trade conditions at each tick
//--- idx=1 - in this case EA checks trade consition only at news bars
   int idx   =StartIndex();
//--- checking of conditions to open short position
//--- formation of Bearish Meeting Lines pattern and RSI>60
  if(CheckCandlestickPattern(CANDLE_PATTERN_BEARISH_MEETING_LINES) && (RSI(1)>60))
     result=80;
//--- checking of conditions to close long position
//--- signal line crossover of overbought/oversold levels (downward 70, downward 30)
   if(((RSI(1)<70) && (RSI(2)>70)) || ((RSI(1)<30) && (RSI(2)>30)))
     result=40;
//--- return result
   return(result);
  }


2.3. Creazione dell' Expert Advisor usando MQL5 Wizard

La classe CML_RSI non è inclusa nelle classi di Libreria Standard, per usarla, è necessario scaricare il file acml_rsi.mqh (vedi allegati) e salvarlo in client_terminal_data_folder\MQL5\Include\Expert\Signal\MySignals. Lo stesso dovrebbe essere fatto con il file acandlepatterns.mqh. Puoi usarlo nel MQL5 Wizard dopo il riavvio del MetaEditor.

Per creare un Expert Advisor avvia MQL5 Wizard:

Fig. 4. Creazione dell' Expert Advisor usando MQL5 Wizard

Fig. 4. Creazione dell' Expert Advisor usando MQL5 Wizard

Specifichiamo il nome dell'Expert Advisor:

Fig. 5. Proprietà generali dell'Expert Advisor

Fig. 5. Proprietà generali dell'Expert Advisor

Dopodiché dobbiamo selezionare i moduli dei segnali di trade utilizzati.

Fig. 6. Proprietà del segnale dell'Expert Advisor

Fig. 6. Proprietà del segnale dell'Expert Advisor

Nel nostro caso usiamo solo un modulo di segnali di trade.

Aggiungendo il modulo dei segnali di trading Signals based on Bullish/Bearish Meeting Lines confirmed by RSI :

Fig. 7. Proprietà del segnale dell'Expert Advisor

Fig. 7. Proprietà del segnale dell'Expert Advisor

Modulo dei segnali di trade aggiunto:

Fig. 8. Proprietà del segnale dell'Expert Advisor

Fig. 8. Proprietà del segnale dell'Expert Advisor

Puoi selezionare qualsiasi proprietà per il trailing, ma noi utilizzeremo "Trailing Stop non utilizzato":

Fig. 9. Proprietà del trailing dell'Expert Advisor

Fig. 9. Proprietà del trailing dell'Expert Advisor

Per quanto concerne le proprietà del money management, usiamo "Trading con volume fisso":

Fig. 10. Proprietà del money management dell' Expert Advisor

Fig. 10. Proprietà del money management dell' Expert Advisor

Premendo il pulsante "Fine", avremo il codice dell'Expert Advisor generato, situato in Expert_AML_RSI.mq5, sarà salvato in terminal_data_folder\MQL5\Experts\.

I parametri di input predefiniti dell'Expert Advisor generato:

//--- inputs for main signal
input int            Signal_ThresholdOpen   =10;     // Signal threshold value to open [0...100]
input int            Signal_ThresholdClose  =10;     // Signal threshold value to close [0...100]
input double         Signal_PriceLevel      =0.0;    // Price level to execute a deal
input double         Signal_StopLevel       =50.0;   // Stop Loss level (in points)
input double         Signal_TakeLevel       =50.0// Take Profit level (in points)

Devono essere sostituiti con:

//--- inputs for main signal
input int            Signal_ThresholdOpen   =40;     // Signal threshold value to open [0...100]
input int            Signal_ThresholdClose  =20;     // Signal threshold value to close [0...100]
input double         Signal_PriceLevel      =0.0;    // Price level to execute a deal
input double         Signal_StopLevel       =0.0;    // Stop Loss level (in points)
input double         Signal_TakeLevel       =0.0;    // Take Profit level (in points)

I parametri di input Signal_ThresholdOpen/Signal_ThresholdClose consentono di specificare i livelli di soglia per l'apertura e la chiusura delle posizioni.

Nel codice dei processi LongCondition() and ShortCondition() della classe dei segnali di trade abbiamo specificato valori di soglia fissi:

  • Aprire posizione: 80;
  • Chiudere posizione 40.

L' Expert Advisor, generato con MQL5 Wizard apre e chiude la posizione usando i "voti" dei moduli dei segnali di trade. E' anche usato il voto del modulo principale (come contenitore, costituito da tutti i moduli aggiunti), ma i suoi processi di LongCondition() e ShortCondition() restituiscono sempre 0.

I risultati del voto del modulo principale vengono utilizzati anche nella media dei "voti". Nel nostro caso abbiamo: modulo principale + 1 modulo dei segnali di trade, quindi dobbiamo tener conto di questo fatto quando si impostano i valori di soglia. Per questo motivo ThresholdOpen e ThresholdClose devono essere impostati come 40=(0+80)/2 e 20=(0+40)/2.

I valori dei parametri di input Signal_StopLevel e Signal_TakeLevel sono impostati su 0, significa che la chiusura delle posizioni sarà fatta solo quando le condizioni di chiusura saranno vere.


2.4. Risultati del backtesting storico

Si consideri il backtesting dell'Expert Advisor su dati storici (EURUSD H1, testing period: 2000.01.01-2011.03.01, PeriodRSI=11, MA_period=3).

Alla creazione dell'Expert Advisor abbiamo usato il volume fisso (Trading con Lotto Fisso, 0.1), algoritmo del Trailing Stop non utilizzato (Trailing non utilizzato).

Fig. 11. Risultato del test dell' Expert Advisor, basato su Bullish/Bearish Meeting Lines + RSI

Fig. 11. Risultato del test dell' Expert Advisor, basato su Bullish/Bearish Meeting Lines + RSI


Il miglior settaggio dei parametri di input può essere trovato utilizzando lo Strategy Tester del terminale della MetaTrader 5.

Il codice dell'Expert Advisor, creato con MQL5 Wizard è allegato all'expert_aml_rsi.mq5.


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

MQL5 Wizard - Segnali di Trade Basati su Bullish/Bearish Meeting Lines + MFI MQL5 Wizard - Segnali di Trade Basati su Bullish/Bearish Meeting Lines + MFI

Vengono presi in considerazione i segnali di trade basati sul pattern di candele "Bullish/Bearish Meeting Lines", confermato dall'indicatore Market Facilitation Index (MFI). Il codice dell'Expert Advisor basato su questa strategia può essere generato automaticamente utilizzando l' MQL5 Wizard.

Nadaraya-Watson estimator Nadaraya-Watson estimator

Nadaraya-Watson estimator

MQL5 Wizard  - Segnali di Trade Basati su Morning/Evening Stars + CCI MQL5 Wizard - Segnali di Trade Basati su Morning/Evening Stars + CCI

Vengono presi in considerazione i segnali di trade basati sul pattern di candele "Morning Star/Evening Star", confermati dall'indicatore Commodity Channel Index (CCI). Il codice dell'Expert Advisor basato su questa strategia può essere generato automaticamente utilizzando l' MQL5 Wizard.

MQL5 Wizard - Segnali di Trade Basati su Morning/Evening Stars + MFI MQL5 Wizard - Segnali di Trade Basati su Morning/Evening Stars + MFI

Vengono presi in considerazione i segnali di trade basati sul pattern di candele "Morning Star/Evening Star", confermati dall'indicatore Market Facilitation Index (MFI). Il codice dell'Expert Advisor basato su questa strategia può essere generato automaticamente utilizzando l' MQL5 Wizard.