Générez des Signaux de Trading avec MQL5 Wizard : Dark Cloud Cover et Piercing Line

Mike 2011.02.25 02:06 60 0 0
Pièce jointe

Le MQL5 Wizard vous permet de créer des Conseillers Experts (CE) prêts à l'emploi basés sur les classes de la bibliothèque standard fournies avec le terminal client. Cela vous donne l'occasion de tester rapidement vos idées de trading, il vous suffit de créer votre propre classe de signaux de trading. La structure de cette classe et des exemples sont détaillés dans l'article MQL5 Wizard : Comment Créer un Module de Signaux de Trading.

L'idée générale est la suivante : la classe de signaux de trading dérive de CExpertSignal. Ensuite, il est nécessaire de redéfinir les méthodes virtuelles LongCondition() et ShortCondition() avec vos propres méthodes.

Un livre intitulé "Stratégies des Meilleurs Traders" (en russe) traite de nombreuses stratégies de trading, mais nous allons nous concentrer sur les modèles de chandeliers de retournement, confirmés par l'indicateur Stochastique, CCI, MFI et RSI oscillateurs.

Le meilleur moyen consiste à créer une classe distincte, dérivée de CExpertSignal, pour vérifier la formation des modèles de chandeliers. Pour confirmer les signaux de trading générés par ces modèles, il suffit d'écrire une classe dérivée de CCandlePattern et d'y ajouter les fonctionnalités nécessaires (par exemple, la confirmation par oscillateurs).

Ici, nous allons examiner les signaux basés sur les modèles de retournement "Dark Cloud Cover" et "Piercing Line", confirmés par l'indicateur Stochastique. Le module de signaux de trading est basé sur la classe CCandlePattern, c'est un exemple simple de son utilisation pour la création de signaux de trading avec des modèles de chandeliers.


1. Modèles de Chandeliers de Retournement : "Dark Cloud Cover" et "Piercing Line"

1.1. Dark Cloud Cover

Il s'agit d'un modèle de retournement baissier qui se produit à la fin d'une tendance haussière. Un long chandelier blanc est formé le premier jour et un gap haussier est créé le deuxième jour. Cependant, le deuxième jour se ferme en dessous du point médian du premier jour.

Fig. 1. Modèle de chandelier

Fig. 1. Modèle de chandelier "Dark Cloud Cover"

La reconnaissance du modèle "Dark Cloud Cover" est implémentée dans la méthode CheckPatternDarkCloudCover() de la classe CCandlePattern :

//+------------------------------------------------------------------+
//| Vérifie la formation du modèle de chandelier "Dark Cloud Cover"  |
//+------------------------------------------------------------------+
bool CCandlePattern::CheckPatternDarkCloudCover()
  {
//---Dark Cloud Cover 
   if((Close(2)-Open(2)>AvgBody(1))  && // (long blanc)
      (Close(1)<Close(2))            && // 
      (Close(1)>Open(2))            && // (ferme dans le corps précédent)
      (MidOpenClose(2)>CloseAvg(1))  && // (tendance haussière)
      (Open(1)>High(2)))                // (ouverture à un nouveau sommet)
      return(true);
//---
   return(false);
  }

La méthode CheckCandlestickPattern(CANDLE_PATTERN_DARK_CLOUD_COVER) de la classe CCandlePattern est utilisée pour vérifier la formation du modèle "Dark Cloud Cover".


1.2. Piercing Line

Le gap baissier le deuxième jour prolonge la tendance baissière. Cependant, la clôture du deuxième jour est au-dessus du point médian du corps du premier jour. Cela suggère aux baissiers qu'un creux pourrait se former. Cette action de prix est beaucoup moins discernable sur les graphiques en barres que sur les graphiques en chandeliers. Plus la clôture du deuxième jour pénètre le corps du premier jour, plus le signal de retournement a de chances de réussir.

Fig. 2. Modèle de chandelier

Fig. 2. Modèle de chandelier "Piercing Line"

La reconnaissance du modèle "Piercing Line" est implémentée dans la méthode CheckPatternPiercingLine() de la classe CCandlePattern :

//+------------------------------------------------------------------+
//| Vérifie la formation du modèle de chandelier "Piercing Line"  |
//+------------------------------------------------------------------+
bool CCandlePattern::CheckPatternPiercingLine()
  {
//---Piercing Line
   if((Close(1)-Open(1)>AvgBody(1)) && // (long blanc)
      (Open(2)-Close(2)>AvgBody(1)) && // (long noir)
      (Close(1)>Close(2))           && //  
      (Close(1)<Open(2))            && // (ferme à l'intérieur du corps précédent) 
      (MidOpenClose(2)<CloseAvg(2)) && // (tendance baissière)
      (Open(1)<Low(2)))                // (ouverture plus basse que le précédent creux)
      return(true);
//---
   return(false);
  }

La méthode CheckCandlestickPattern(CANDLE_PATTERN_PIERCING_LINE) de la classe CCandlePattern est utilisée pour vérifier la formation du modèle "Piercing Line".


2. Signaux de Trading, Confirmés par l'Indicateur Stochastique

Les signaux de trading pour ouvrir des positions longues ou courtes doivent être confirmés par l'oscillateur Stochastique. La ligne %D doit être supérieure ou inférieure aux niveaux critiques correspondants (30 ou 70).

La fermeture des positions ouvertes dépend des valeurs de l'indicateur %D. Cela peut se faire dans 2 cas :

  1. si la ligne %D a atteint le niveau critique opposé (80 pour une position longue et 20 pour une position courte)
  2. si le signal inverse n'est pas confirmé (lorsque la ligne %D atteint les niveaux suivants : 20 pour une position longue et 80 pour une position courte)

Fig. 3. Modèle

Fig. 3. Modèle "Dark Cloud Cover" confirmé par l'indicateur Stochastique


2.1. Ouvrir une Position Longue / Fermer une Position Courte

  1. La formation du modèle "Piercing Line" doit être confirmée par l'indicateur Stochastique : StochSignal(1)<30 (la valeur de la ligne de signal de l'indicateur stochastique de la dernière bougie complétée doit être inférieure à 30).

  2. La position courte doit être fermée si la ligne de signal de l'indicateur Stochastique a croisé à la hausse les niveaux 20 ou 80.

//+------------------------------------------------------------------+
//| Vérifie les conditions d'entrée et de sortie du marché           |
//| 1) Entrée sur le marché (ouvrir position longue, résultat=80)  |
//| 2) Sortie du marché (fermer position courte, résultat=40)      |
//+------------------------------------------------------------------+
int CDC_PL_Stoch::LongCondition()
  {
   int result=0;
//--- idx peut être utilisé pour déterminer le mode de travail de l'Expert Advisor
//--- idx=0 - dans ce cas, le CE vérifie les conditions de trading à chaque tick
//--- idx=1 - dans ce cas, le CE vérifie les conditions de trading uniquement aux nouvelles bougies
  int idx   =StartIndex();
//--- vérification des conditions pour ouvrir une position longue
//--- formation du modèle Piercing Line et ligne de signal<30
  if (CheckCandlestickPattern(CANDLE_PATTERN_PIERCING_LINE) && (StochSignal(1)<30))
     result=80;
//--- vérification des conditions pour fermer une position courte
//--- croisement de la ligne de signal des niveaux de surachat/survente (descendant 20, montant 80)
   if((((StochSignal(1)>20) && (StochSignal(2)<20)) ||
       ((StochSignal(1)>80) && (StochSignal(2)<80))))
     result=40;
//--- retourner le résultat
   return(result);
  }

2.2. Ouvrir une Position Courte / Fermer une Position Longue

  1. La formation du modèle "Dark Cloud Cover" doit être confirmée par l'indicateur Stochastique : StochSignal(1)>70 (la valeur de la ligne de signal de l'indicateur stochastique de la dernière bougie complétée doit être supérieure à 70).

  2. La position longue doit être fermée si la ligne de signal de l'indicateur Stochastique a croisé à la baisse les niveaux 80 ou 20.

//+------------------------------------------------------------------+
//| Vérifie les conditions d'entrée et de sortie du marché           |
//| 1) Entrée sur le marché (ouvrir position courte, résultat=80)  |
//| 2) Sortie du marché (fermer position longue, résultat=40)      |
//+------------------------------------------------------------------+
int CDC_PL_Stoch::ShortCondition()
  {
   int result=0;
//--- idx peut être utilisé pour déterminer le mode de travail de l'Expert Advisor
//--- idx=0 - dans ce cas, le CE vérifie les conditions de trading à chaque tick
//--- idx=1 - dans ce cas, le CE vérifie les conditions de trading uniquement aux nouvelles bougies
  int idx   =StartIndex();
//--- vérification des conditions pour ouvrir une position courte
//--- formation du modèle Dark Cloud Cover et ligne de signal>70
  if (CheckCandlestickPattern(CANDLE_PATTERN_DARK_CLOUD_COVER) && (StochSignal(1)>70))
     result=80;
//--- vérification des conditions pour fermer une position longue
//--- croisement de la ligne de signal des niveaux de surachat/survente (descendant 80, montant 20)
   if((((StochSignal(1)<80) && (StochSignal(2)>80)) ||
       ((StochSignal(1)<20) && (StochSignal(2)>20))))
     result=40;
//--- retourner le résultat
   return(result);
  }


2.3. Création d'un Conseiller Expert avec MQL5 Wizard

La classe CDC_PL_Stoch n'est pas incluse dans les classes de la bibliothèque standard, pour l'utiliser, il est nécessaire de télécharger le fichier adc_pl_stoch.mqh (voir pièces jointes) et de le sauvegarder dans le dossier client_terminal_data\MQL5\Include\Expert\Signal\MySignals. Même procédure pour le fichier candlepatterns.mqh. Vous pouvez l'utiliser dans MQL5 Wizard après avoir redémarré le MetaEditor.

Pour créer un Conseiller Expert, lancez le MQL5 Wizard :

Fig. 4. Création d'un Conseiller Expert avec MQL5 Wizard

Fig. 4. Création d'un Conseiller Expert avec MQL5 Wizard

Spécifions le nom du Conseiller Expert :

Fig. 5. Propriétés générales du Conseiller Expert

Fig. 5. Propriétés générales du Conseiller Expert

Ensuite, nous devons sélectionner les modules de signaux de trading utilisés.

Fig. 6. Propriétés des signaux du Conseiller Expert

Fig. 6. Propriétés des signaux du Conseiller Expert

Dans notre cas, nous n'utilisons qu'un seul module de signaux de trading.

Ajout du module de signaux Basés sur Dark Cloud Cover/Piercing Line confirmés par le Stochastique :

Fig. 7. Propriétés des signaux du Conseiller Expert

Fig. 7. Propriétés des signaux du Conseiller Expert

Module de signaux de trading ajouté :

Fig. 8. Propriétés des signaux du Conseiller Expert

Fig. 8. Propriétés des signaux du Conseiller Expert

Vous pouvez choisir n'importe quelles propriétés de suivi, mais nous allons utiliser

Liste
Commentaire 0