Accueil Trading Systématique Publication

Stratégie de Trading : Signaux Basés sur le Crossover de Deux Moyennes Mobiles Exponentielles

Pièce jointe
261.zip (2.85 KB, Télécharger 0 fois)

MQL5 Wizard permet de créer automatiquement le code d'Experts Advisors. Pour plus de détails, consultez Créer des Experts Advisors prêts à l'emploi dans MQL5 Wizard.

Dans cet article, nous allons explorer une stratégie basée sur le crossover de deux moyennes mobiles exponentielles (la rapide et la lente). Cette stratégie est intitulée "Signaux basés sur le crossover de deux EMA" lors de la création d'un EA dans MQL5 Wizard.

Les signaux de trading :

  • Acheter : l'EMA rapide croise à la hausse l'EMA lente.
  • Vendre : l'EMA rapide croise à la baisse l'EMA lente.

Cette stratégie est mise en œuvre dans la classe CSignalCrossEMA.

Figure 1. Signaux de trading basés sur le crossover de deux moyennes mobiles exponentielles

Figure 1. Signaux de trading basés sur le crossover de deux moyennes mobiles exponentielles


Signaux de Trading

La stratégie de trading est mise en œuvre dans la classe CSignalCrossEMA, et elle dispose de certaines méthodes protégées pour simplifier l'accès aux valeurs des indicateurs :

double   FastEMA(int ind)      // retourne la valeur de la moyenne mobile rapide de la barre
double   SlowEMA(int ind)      // retourne la valeur de la moyenne mobile lente de la barre
double   StateEMA(int ind)     // retourne la différence entre les moyennes mobiles rapide et lente de la barre


1. Ouvrir une position longue

Conditions pour ouvrir une position longue :

  • StateEMA(1)>0 et StateEMA(2)<0 : l'EMA rapide a croisé à la hausse l'EMA lente sur la dernière barre complétée.
//+------------------------------------------------------------------+
//| Vérifie les conditions pour ouvrir une position longue (achat)     |
//+------------------------------------------------------------------+
bool CSignalCrossEMA::CheckOpenLong(double& price,double& sl,double& tp,datetime& expiration)
  {
   if(!(StateEMA(2)<0 && StateEMA(1)>0)) return(false);
//---
   price=0.0;
   sl   =0.0;
   tp   =0.0;
//---
   return(true);
  }

2. Fermer une position longue

Conditions pour fermer une position longue :

  • StateEMA(1)<0 et StateEMA(2)>0 : l'EMA rapide a croisé à la baisse l'EMA lente sur la dernière barre complétée.
//+------------------------------------------------------------------+
//| Vérifie les conditions pour fermer une position longue             |
//+------------------------------------------------------------------+
bool CSignalCrossEMA::CheckCloseLong(double& price)
  {
   if(!(StateEMA(2)>0 && StateEMA(1)<0)) return(false);
//---
   price=0.0;
//---
   return(true);
  }

3. Ouvrir une position courte

Les conditions pour ouvrir une position courte sont les mêmes que celles pour fermer une position longue.

//+------------------------------------------------------------------+
//| Vérifie les conditions pour ouvrir une position courte (vente)    |
//+------------------------------------------------------------------+
bool CSignalCrossEMA::CheckOpenShort(double& price,double& sl,double& tp,datetime& expiration)
  {
   if(!(StateEMA(2)>0 && StateEMA(1)<0)) return(false);
//---
   price=0.0;
   sl   =0.0;
   tp   =0.0;
//---
   return(true);
  }

4. Fermer une position courte

Les conditions pour fermer une position courte sont les mêmes que celles pour ouvrir une position longue.

//+------------------------------------------------------------------+
//| Vérifie les conditions pour fermer une position courte            |
//+------------------------------------------------------------------+
bool CSignalCrossEMA::CheckCloseShort(double& price)
  {
   if(!(StateEMA(2)<0 && StateEMA(1)>0)) return(false);
//---
   price=0.0;
//---
   return(true);
  }

Créer un Expert Advisor avec MQL5 Wizard

Pour créer un robot de trading basé sur cette stratégie, choisissez les propriétés du signal comme "Signaux basés sur le crossover de deux EMA" dans l'option "Créer des Experts Advisors prêts à l'emploi" de MQL5 Wizard :

Figure 2. Choisissez

Figure 2. Choisissez "Signaux, basés sur le crossover de deux EMA" dans MQL5 Wizard

Ensuite, vous devez spécifier l'algorithme de trailing stop et le système de gestion des risques et de l'argent souhaités. Le code de l'Expert Advisor sera créé automatiquement, vous pourrez le compiler et le tester dans le Strategy Tester du terminal MetaTrader 5.

De plus, la bibliothèque standard contient les "Signaux basés sur le crossover de deux MA", implémentés dans la classe CSignalCrossMA. L'idée de trading est similaire, mais elle offre de nombreuses fonctionnalités supplémentaires (spécifier les types, décalages et méthodes de moyennage, ainsi que l'utilisation des niveaux de Take Profit et Stop Loss).

Figure 3.

Figure 3. "Signaux, basés sur le crossover de deux MA" dans MQL5 Wizard


Résultats des tests

Examinons le backtesting de l'Expert Advisor sur des données historiques (EURUSD H1, période de test : 1.1.2010-05.01.2011, FastPeriod=12, SlowPeriod=24).

Pour la création de l'Expert Advisor, nous avons utilisé un volume fixe (Trading Fixed Lot, 0.1), l'algorithme de Trailing Stop n'est pas utilisé (Trailing non utilisé).

Figure 4. Résultats du backtesting historique de l'Expert Advisor basé sur le crossover de deux EMA

Figure 4. Résultats du backtesting historique de l'Expert Advisor basé sur le crossover de deux EMA


Pièces jointes : Le fichier SignalCrossEMA.mqh avec la classe CSignalCrossEMA doit être placé dans le dossier terminal_data_folder\MQL5\Include\Expert\Signal. Le fichier crossover_2ema.mq5 contient le code de l'Expert Advisor créé à l'aide de MQL5 Wizard.

Articles connexes

Commentaire (0)