MQL5 Wizard maakt het mogelijk om automatisch Expert Advisors (EA's) te creëren zonder dat je hoeft te programmeren (zie MQL5 Wizard: Creëren van Expert Advisors zonder programmeren).
In dit artikel bespreken we handelsignalen die zijn gebaseerd op de crossover van de MACD-indicatorlijnen. Deze strategie staat bekend als "Handelsignalen op basis van crossover van de hoofd- en signaallijnen van de MACD", en kan automatisch worden aangemaakt in de MQL5 Wizard.
De hoofd MACD-lijn wordt berekend als het verschil tussen de snelle en langzame EMA. De signaallijn van de MACD is de hoofd MACD-lijn, gladgestreken met de PeriodSignal-periode.
Handelsignalen:
- Koop: opwaartse crossover van de hoofd- en signaallijnen van de MACD-indicator.
- Verkoop: neerwaartse crossover van de hoofd- en signaallijnen van de MACD-indicator.
Deze strategie is geïmplementeerd in de CSignalMACD klasse van de Trading Strategie klassen in de MQL5 Standaardbibliotheek (te vinden in MQL5\Include\Expert\Signal\SignalMACD.mqh).

Figuur 1. Handelsignalen op basis van crossover van hoofd- en signaallijnen van MACD
Handelsignalen
De handelsstrategie is geïmplementeerd in de CSignalMACD klasse, die enkele beschermde methoden bevat om toegang te krijgen tot de indicatorwaarden:
double MainMACD(int ind) // retourneert de waarde van de hoofd MACD-lijn van de bar double SignalMACD(int ind) // retourneert de waarde van de signaallijn van de MACD double StateMACD(int ind) // retourneert het verschil tussen de hoofd- en signaallijnen van de MACD int ExtStateMACD(int ind); // retourneert het aantal signaalveranderingen van het verschil tussen hoofd- en signaallijnen
1. Open een long positie
Voorwaarden om een long positie te openen:
- ExtStateMACD(1)==1; dit betekent dat de hoofd MACD-lijn omhoog heeft gekruist met de signaallijn
//+------------------------------------------------------------------+ //| Controleert de voorwaarden om een long positie (koop) te openen | //+------------------------------------------------------------------+ bool CSignalMACD::CheckOpenLong(double& price,double& sl,double& tp,datetime& expiration) { price=0.0; sl =m_symbol.Ask()-m_stop_loss*m_adjusted_point; tp =m_symbol.Ask()+m_take_profit*m_adjusted_point; //--- return(ExtStateMACD(1)==1); }
2. Sluit long positie
Voorwaarden om een long positie te sluiten:
- ExtStateMACD(1)==1; dit betekent dat de hoofd MACD-lijn naar beneden is gekruist met de signaallijn
//+------------------------------------------------------------------+ //| Controleert de voorwaarden om een long positie te sluiten | //+------------------------------------------------------------------+ bool CSignalMACD::CheckCloseLong(double& price) { price=0.0; //--- return(ExtStateMACD(1)==-1); }
3. Open een short positie
De voorwaarden om een short positie te openen zijn hetzelfde als die voor het sluiten van een long positie.
//+------------------------------------------------------------------+ //| Controleert de voorwaarden om een short positie (verkoop) te openen | //+------------------------------------------------------------------+ bool CSignalMACD::CheckOpenShort(double& price,double& sl,double& tp,datetime& expiration) { price=0.0; sl =m_symbol.Bid()+m_stop_loss*m_adjusted_point; tp =m_symbol.Bid()-m_take_profit*m_adjusted_point; //--- return(ExtStateMACD(1)==-1); }
4. Sluit short positie
De voorwaarden om een short positie te sluiten zijn dezelfde als die voor het openen van een long positie.
//+------------------------------------------------------------------+ //| Controleert de voorwaarden om een short positie te sluiten | //+------------------------------------------------------------------+ bool CSignalMACD::CheckCloseShort(double& price) { price=0.0; //--- return(ExtStateMACD(1)==1); }
Een Expert Advisor maken met MQL5 Wizard
Om een handelsrobot te creëren op basis van deze strategie, selecteer je de signaalinstellingen als "Handelsignalen op basis van crossover van hoofd- en signaallijnen van de MACD" in de optie "Klaar om gemaakte Expert Advisors" van de MQL5 Wizard:

Figuur 2. Selecteer "Handelsignalen op basis van crossover van hoofd- en signaallijnen van MACD" in MQL5 Wizard
Vervolgens moet je het nodige trailing stop algoritme en het geld- en risicobeheersysteem specificeren. De code van de Expert Advisor wordt automatisch aangemaakt, die je kunt compileren en testen in de Strategy Tester van de MetaTrader 5-clientterminal.
Testresultaten
Laten we de backtesting van de Expert Advisor op historische gegevens bekijken (EURUSD H1, testperiode: 1.1.2010-05.01.2011, PeriodFast=12, PeriodSlow=24, PeriodSignal=9, StopLoss=20, TakeProfit=80).
Bij het maken van de Expert Advisor hebben we gebruik gemaakt van een vast volume (Trading Fixed Lot, 0.1). De Trailing Stop-algoritme is niet gebruikt (Trailing niet gebruikt).

Figuur 3. Testresultaten van de Expert Advisor met handelsignalen op basis van crossover MACD-lijnen
Bijlagen: De SignalMACD.mqh met de CSignalMACD klasse (inbegrepen in de MQL5 Standaardbibliotheek) is te vinden in de MQL5\Include\Expert\Signal map. Het testmacd.mq5 bevat de code van de Expert Advisor, aangemaakt met de MQL5 Wizard.
Reactie 0