Come Creare un Expert Advisor con MQL5: Trading con Pattern di Candlestick e Stocastico

Mike 2013.10.16 21:58 15 0 0
Allegato

Descrizione:

Con il MQL5 Wizard, i trader possono ora generare automaticamente il codice degli Expert Advisor basato su classi di segnali di trading, monitoraggio delle posizioni e gestione del denaro. Insieme alle classi di segnali di trading della Libreria Standard, puoi sviluppare e testare i tuoi sistemi di trading. Per farlo, basta scrivere un modulo di segnali di trading.

Il libro "Le Strategie dei Migliori Trader del Mondo" (in russo) descrive indicatori e strategie di trading per l'analisi tecnica utilizzando il pacchetto software MetaStock. Oltre ai segnali di trading convenzionali, il libro tratta anche quelli basati sull'uso combinato di pattern di candlestick di inversione con conferme di Stocastico, CCI, MFI e RSI.

Utilizzare i pattern di candlestick "di inversione" insieme ai segnali degli oscillatori permette di ridurre il numero di segnali falsi e aumentare l'efficienza del sistema di trading.

In precedenti pubblicazioni, abbiamo considerato segnali di trading basati su pattern di candlestick con conferma di Stocastico:

  1. 3 Corvi Neri/3 Soldati Bianchi
  2. Copertura Nuvolosa Scura/Linia di Penetrazione
  3. Inversione Rialzista/Inversione Ribassista
  4. Harami Rialzista/Harami Ribassista
  5. Martello/Uomo Appeso
  6. Righe di Incontro Rialziste/Ribassiste
  7. Stelle di Mattina/Di Sera

In questa descrizione, considereremo i risultati dell'uso combinato di tutti questi modelli insieme ai segnali dell'indicatore Stocastico.


1. Modelli di Candlestick Rialzisti e Ribassisti e la Loro Rilevazione

CandlePattern classe ha anche le funzioni per rilevare la formazione di alcuni pattern di candlestick rialzisti e ribassisti (esclusa la combinazione Martello/Uomo Appeso).

La formazione di un pattern di candlestick ribassista viene controllata dalla funzione CheckPatternAllBullish():

//+------------------------------------------------------------------+
//| Controlla la formazione di pattern rialzisti          |
//+------------------------------------------------------------------+
bool CCandlePattern::CheckPatternAllBullish()
  {
   return(CheckPatternThreeWhiteSoldiers()  || 
          CheckPatternPiercingLine()       || 
          CheckPatternMorningDoji()        || 
          CheckPatternBullishEngulfing()   || 
          CheckPatternBullishHarami()      || 
          CheckPatternMorningStar()        || 
          CheckPatternBullishMeetingLines());
  }

La formazione di un pattern di candlestick rialzista viene controllata dalla funzione CheckPatternAllBearish():

//+------------------------------------------------------------------+
//| Controlla la formazione di pattern ribassisti                   |
//+------------------------------------------------------------------+
bool CCandlePattern::CheckPatternAllBearish()
  {
   return(CheckPatternThreeBlackCrows()     || 
          CheckPatternDarkCloudCover()     || 
          CheckPatternEveningDoji()        || 
          CheckPatternBearishEngulfing()   || 
          CheckPatternBearishHarami()      || 
          CheckPatternEveningStar()        || 
          CheckPatternBearishMeetingLines());
  }

2. Segnali di Trading Combinati con l'Indicatore Stocastico

L'apertura di una posizione long/short avviene quando si forma uno dei modelli rialzisti/ribassisti e c'è una conferma dall'oscillatore Stocastico. Il valore della linea di segnale %D deve essere sopra o sotto il livello critico appropriato (30 e 70).

Un segnale di uscita si forma in due casi:

  1. Quando si forma un pattern di candlestick opposto (uno ribassista per una posizione long e uno rialzista per una posizione short).
  2. Secondo il comportamento successivo di %D. Se %D raggiunge il livello opposto al mercato (80 nel caso di una long e 20 nel caso di una short) o se %D non conferma il segnale di inversione e raggiunge 20 nel caso di una long e 80 nel caso di una short.

Il controllo delle condizioni di ingresso e uscita dal mercato è eseguito nei seguenti metodi:

  • int CCP_Stoch::LongCondition() - controllo delle condizioni per aprire una posizione long (m_pattern_0) e chiudere una short (m_pattern_1);
  • int CCP_Stoch::ShortCondition() - controllo delle condizioni per aprire una posizione short (m_pattern_0) e chiudere una long (m_pattern_1).

2.1. Apertura di una Posizione Long e Chiusura di una Short

  1. Il segnale per aprire una posizione long è la formazione di una combinazione di candlestick rialzista e il soddisfacimento della condizione StochSignal(1)<30 (il valore della linea di segnale Stocastico all'ultima barra completata è inferiore a 30);

  2. Il segnale per chiudere una posizione short è la formazione di uno dei pattern di candlestick rialzisti o il caso in cui la linea dell'indicatore attraversa il livello 20 Stocastico (verso l'alto) o il livello 80 (verso l'alto).

//+------------------------------------------------------------------+
//| Metodo di controllo se i modelli di mercato sono formati          |
//| Controlla le condizioni per                                            |
//| ingresso (apri posizione short, m_pattern_0)                         |
//| uscita  (chiudi posizione long, m_pattern_1)                         |
//+------------------------------------------------------------------+
int CCP_Stoch::LongCondition()
  {
   int res=0;
//---- controlla condizioni per aprire posizione short
//---- formazione di pattern rialzista e linea di segnale dell'indicatore Stocastico<30 
   if(CheckPatternAllBullish() && (StochSignal(1)<30)) res=m_pattern_0; // segnale per aprire posizione long 

//--- controlla condizioni per la chiusura della posizione short
//--- formazione di pattern ribassista o crossover della linea di segnale (verso l'alto 20, verso l'alto 80)
   if(CheckPatternAllBullish() ||
      ((StochSignal(1)>20) && (StochSignal(2)<20)) || 
      ((StochSignal(1)>80) && (StochSignal(2)<80)))    res=m_pattern_1; // segnale per chiudere posizione short
//---
   return(res);
  }

2.2. Apertura di una Posizione Short e Chiusura di una Long

  1. Il segnale per aprire una posizione short è la formazione di uno dei pattern di candlestick ribassisti e il soddisfacimento della condizione StochSignal(1)>70 (il valore della linea di segnale Stocastico all'ultima barra completata supera 70);

  2. Il segnale per chiudere una posizione long è la formazione di uno dei pattern di candlestick ribassisti o il caso in cui la linea dell'indicatore attraversa il livello 80 Stocastico (verso il basso) o il livello 20 (verso il basso).

//+------------------------------------------------------------------+
//| Metodo di controllo se i modelli di mercato sono formati          |
//| Controlla le condizioni per                                            | 
//| ingresso (apri posizione short, m_pattern_0)                          |
//| uscita  (chiudi posizione long, m_pattern_1)                         |
//+------------------------------------------------------------------+
int CCP_Stoch::ShortCondition()
  {
   int res=0;
//--- controlla condizioni per aprire posizione short
//---- formazione di pattern ribassista e linea di segnale dell'indicatore Stocastico>70
   if(CheckPatternAllBearish() && (StochSignal(1)>70)) res=m_pattern_0; // segnale per aprire posizione short 

//--- controlla condizioni di chiusura della posizione long 
//---- formazione di pattern ribassista o crossover della linea di segnale (verso il basso 80, verso il basso 20)   if(CheckPatternAllBearish() || 
      ((StochSignal(1)<80) && (StochSignal(2)>80)) || 
      ((StochSignal(1)<20) && (StochSignal(2)>20)))    res=m_pattern_1; // segnale per chiudere posizione long 
//---
   return(res);
  }

2.3. Creazione di un Expert Advisor Basato sui Segnali di Trading di "Pattern di Candlestick+Stocastico" Utilizzando MQL5 Wizard

La classe CCP_Stoch non è inclusa nella Libreria Standard dei segnali di trading. Pertanto, scarica il file ccp_stoch.mqh (in allegato) e salvalo nella directory \terminal_folder\Include\Expert\Signal\MySignals per utilizzarlo. Il file candlepatterns.mqh deve essere copiato nella stessa directory di ccp_stoch.mqh. Dopo di che, riavvia MetaEditor per poter utilizzare il file nel MQL5 Wizard.

Per creare un robot di trading seguendo questa strategia tramite il MQL5 Wizard, seleziona il tipo di segnale "Segnali basati su Pattern di Candlestick+Stocastico" al secondo passo:

Fig. 1. Selezione dei segnali basati su pattern di candlestick+stocastico nel MQL5 Wizard

Fig. 1. Selezione dei "Segnali basati su Pattern di Candlestick+Stocastico" nel MQL5 Wizard

Nei passi successivi, specifica il tipo di trailing stop necessario e il sistema di money management. Il codice dell'Expert Advisor viene generato automaticamente. Ora, deve essere compilato per essere pronto per iniziare i test.


2.4. Risultati dei Test

Risultati del Testing dell'Expert Advisor su dati storici (EURUSD H1, periodo di test: 1.1.2000-02.02.2011, PeriodK=33, PeriodD=37, PeriodSlow=30, MA_period=25).

Questo Expert Advisor utilizza il modulo per il trading con volume fisso di 0.1 lotti (Trading con Lotto Fisso). Il trailing stop non viene utilizzato (Trailing non utilizzato).

Fig. 2. Risultati del test dell'Expert Advisor basato sui segnali di trading di pattern di candlestick+stocastico

Fig. 2. Risultati del test dell'Expert Advisor basato sui segnali di trading di "Pattern di Candlestick+Stocastico"

Il miglior set di parametri del sistema di trading può essere trovato utilizzando il Tester di Strategia di MetaTrader 5.

Il codice dell'Expert Advisor creato dal MQL5 Wizard è allegato nel file expert_cp_stoch.mq5.


Elenco
Commento 0