MQL5 Wizard: Automatische Trading Signal Generatie met Candlestick Patronen en Stochastic

Mike 2013.10.16 21:58 13 0 0
Bijlage

Beschrijving:

Met de MQL5 Wizard kunnen traders nu automatisch de code voor een Expert Advisor genereren, gebaseerd op verschillende trading signalen, positie tracking en geldbeheer. Door gebruik te maken van de handelsignalen klassen uit de Standaard Bibliotheek, kun je je eigen trading systemen ontwikkelen en testen. Dit doe je door simpelweg een module van handelsignalen te schrijven.

Het boek "Strategieën van de Beste Traders ter Wereld" (in het Russisch) beschrijft indicatoren en trading strategieën voor technische analyse met behulp van de MetaStock software. Naast de gebruikelijke trading signalen, behandelt het boek signalen die zijn gebaseerd op de gecombineerde inzet van omkerende candlestick patronen met bevestigingen van de Stochastic, CCI, MFI en RSI.

Het gebruik van "omkerende" candlestick patronen samen met oscillator signalen helpt om het aantal valse signalen te verminderen en de efficiëntie van het trading systeem te verhogen.

In eerdere publicaties hebben we trading signalen besproken die zijn gebaseerd op candlestick patronen met bevestiging van de Stochastic:

  1. 3 Zwarte Kraaien/3 Witte Soldaten
  2. Donkere Wolk Bedekking/Piercing Line
  3. Bullish Engulfing/Bearish Engulfing
  4. Bullish Harami/Bearish Harami
  5. Hammer/Hanging Man
  6. Bullish/Bearish Meeting Lines
  7. Morning/Evening Stars

In deze beschrijving zullen we de resultaten bekijken van het gecombineerde gebruik van al deze modellen samen met de Stochastic indicator signalen.


1. Bullish en Bearish Candlestick Modellen en hun Detectie

CandlePattern klasse heeft ook functies voor het detecteren van het vormen van enkele bullish en bearish candlestick patronen (behalve de Hammer/Hanging Man combinatie).

De vorming van een bearish candlestick patroon wordt gecontroleerd met de functie CheckPatternAllBullish():

//+------------------------------------------------------------------+
//| Controleert de vorming van bullish patronen                                         |
//+------------------------------------------------------------------+
bool CCandlePattern::CheckPatternAllBullish()
  {
   return(CheckPatternThreeWhiteSoldiers()  || 
          CheckPatternPiercingLine()       || 
          CheckPatternMorningDoji()        || 
          CheckPatternBullishEngulfing()   || 
          CheckPatternBullishHarami()      || 
          CheckPatternMorningStar()        || 
          CheckPatternBullishMeetingLines());
  }

De vorming van een bullish candlestick patroon wordt gecontroleerd met de functie CheckPatternAllBearish():

//+------------------------------------------------------------------+
//| Controleert de vorming van bearish patronen                             |
//+------------------------------------------------------------------+
bool CCandlePattern::CheckPatternAllBearish()
  {
   return(CheckPatternThreeBlackCrows()     || 
          CheckPatternDarkCloudCover()     || 
          CheckPatternEveningDoji()        || 
          CheckPatternBearishEngulfing()   || 
          CheckPatternBearishHarami()      || 
          CheckPatternEveningStar()        || 
          CheckPatternBearishMeetingLines());
  }

2. Trading Signalen Gecombineerd met de Stochastic Indicator

Het openen van een long/short positie vindt plaats wanneer een van de bullish/bearish modellen wordt gevormd en er een bevestiging is van de Stochastic oscillator. De %D signaallijn waarde moet boven of onder het kritieke niveau (30 en 70) liggen.

Een exit signaal wordt gevormd in twee gevallen:

  1. Wanneer er een tegenovergesteld candlestick patroon wordt gevormd (een bearish patroon voor een long positie en een bullish patroon voor een short positie).
  2. Volgens het daaropvolgende gedrag van %D. Als %D het niveau bereikt dat tegenovergesteld is aan de markt (80 in het geval van een long en 20 in het geval van een short positie) of als %D het omkeersignaal niet bevestigt en 20 bereikt in het geval van een long positie en 80 in het geval van een short positie.

Het controleren van de voorwaarden voor marktinvoer en -uitgang wordt uitgevoerd in de volgende methoden:

  • int CCP_Stoch::LongCondition() - controleert de voorwaarden voor het openen van een long positie (m_pattern_0) en het sluiten van een short positie (m_pattern_1);
  • int CCP_Stoch::ShortCondition() - controleert de voorwaarden voor het openen van een short positie (m_pattern_0) en het sluiten van een long positie (m_pattern_1).

2.1. Opening van een Long Positie en Sluiting van een Short

  1. Het signaal voor het openen van een long positie is het vormen van een bullish candlestick combinatie en het voldoen aan de StochSignal(1)<30 voorwaarde (de waarde van de Stochastic indicator's signaallijn op de laatst voltooide bar is minder dan 30);

  2. Het signaal voor het sluiten van een short positie is het vormen van een van de bullish candlestick patronen of het geval wanneer de indicatorlijn het 20-niveau kruist (omhoog) of het 80-niveau (omhoog).

//+------------------------------------------------------------------+
//| Methode voor het controleren of de marktmodellen zijn gevormd               |
//| Controleert de voorwaarden voor                                            |
//| invoer (open short positie, m_pattern_0)                         |
//| uitgang  (sluit long positie, m_pattern_1)                         |
//+------------------------------------------------------------------+
int CCP_Stoch::LongCondition()
  {
   int res=0;
//---- controleer de voorwaarden om een short positie te openen
//---- vorming van bullish patroon en signaallijn van Stochastic indicator<30 
   if(CheckPatternAllBullish() && (StochSignal(1)<30)) res=m_pattern_0; // signaal om long positie te openen 

//--- controleer de voorwaarden voor het sluiten van short positie
//--- vorming van bearish patroon of crossover van de signaallijn (omhoog 20, omhoog 80)
   if(CheckPatternAllBullish() ||
      ((StochSignal(1)>20) && (StochSignal(2)<20)) || 
      ((StochSignal(1)>80) && (StochSignal(2)<80)))    res=m_pattern_1; // signaal om short positie te sluiten
//---
   return(res);
  }

2.2. Opening van een Short Positie en Sluiting van een Long

  1. Het signaal voor het openen van een short positie is het vormen van een van de bearish candlestick patronen en het voldoen aan de StochSignal(1)>70 voorwaarde (de waarde van de Stochastic indicator's signaallijn op de laatst voltooide bar overschrijdt 70):

  2. Het signaal voor het sluiten van een long positie is het vormen van een van de bearish candlestick patronen of het geval wanneer de indicatorlijn het 80-niveau kruist (omlaag) of het 20-niveau (omlaag).

//+------------------------------------------------------------------+
//| Methode voor het controleren of de marktmodellen zijn gevormd               |
//| Controleert de voorwaarden voor                                            | 
//| invoer (open short positie, m_pattern_0)                          |
//| uitgang  (sluit long positie, m_pattern_1)                         |
//+------------------------------------------------------------------+
int CCP_Stoch::ShortCondition()
  {
   int res=0;
//--- controleer de voorwaarden om een short positie te openen
//---- vorming van bearish patroon en signaallijn van Stochastic indicator>70
   if(CheckPatternAllBearish() && (StochSignal(1)>70)) res=m_pattern_0; // signaal om short positie te openen 

//--- controleer de voorwaarden voor het sluiten van long positie 
//---- vorming van bearish patroon of crossover van de signaallijn (omlaag 80, omlaag 20)   if(CheckPatternAllBearish() || 
      ((StochSignal(1)<80) && (StochSignal(2)>80)) || 
      ((StochSignal(1)<20) && (StochSignal(2)>20)))    res=m_pattern_1; // signaal om long positie te sluiten 
//---
   return(res);
  }

2.3. Een Expert Advisor Creëren Gebaseerd op Trading Signalen van "Candlestick Patronen+Stochastic" Omkeerpatroon met MQL5 Wizard

De CCP_Stoch klasse is niet inbegrepen in de Standaard Bibliotheek van handelsignalen. Daarom moet je het ccp_stoch.mqh bestand downloaden (bijgevoegd) en opslaan in de \terminal_folder\Include\Expert\Signal\MySignals directory om het te gebruiken. Het candlepatterns.mqh bestand moet naar dezelfde directory worden gekopieerd als ccp_stoch.mqh. Start daarna MetaEditor opnieuw op om het bestand in MQL5 Wizard te kunnen gebruiken.

Om een trading robot te creëren volgens deze strategie via MQL5 Wizard, selecteer je "Signalen gebaseerd op Candlestick Patronen+Stochastic" als signaaltype in de tweede stap:

Selecteren van Signalen gebaseerd op Candlestick Patronen+Stochastic

Afbeelding 1. Selecteren van "Signalen gebaseerd op Candlestick Patronen+Stochastic" trading signalen generator in MQL5 Wizard

Bij de volgende stappen geef je het benodigde trailing stop type en het geldbeheersysteem op. De code van de Expert Advisor wordt automatisch gegenereerd. Nu moet deze worden gecompileerd om klaar te zijn voor testen.


2.4. Testresultaten

Resultaten van de Expert Advisor Test op historische data (EURUSD H1, testperiode: 1.1.2000-02.02.2011, PeriodK=33, PeriodD=37, PeriodSlow=30, MA_period=25).

Deze Expert Advisor gebruikt de module voor het traden van een vast volume van 0.1 lot (Vaste Lot Trading). Trailing stop wordt niet gebruikt (Geen Trailing gebruikt).

Testresultaten van de Expert Advisor

Afbeelding 2. Testresultaten van de Expert Advisor gebaseerd op "Signalen gebaseerd op Candlestick Patronen+Stochastic" trading signalen generator

De beste set van parameters voor het trading systeem kan worden gevonden met de MetaTrader 5 Strategietester.

De code van de Expert Advisor die is gemaakt door MQL5 Wizard is bijgevoegd in het expert_cp_stoch.mq5 bestand.


Lijst
Reactie 0