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
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 "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. "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
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
- Générer des Signaux de Trading avec MQL5 Wizard : Étoiles du Matin/du Soir et RSI
- Utiliser MQL5 Wizard pour Créer un Expert Advisor Basé sur les Modèles de Chandeliers Englobants et MFI
- Développez un Expert Advisor avec MQL5 : Signaux de Trading 3 Corbeaux Noirs / 3 Soldats Blancs + RSI
- Générez des Signaux de Trading avec MQL5 Wizard : Dark Cloud Cover et Piercing Line
- Générez des Signaux de Trading avec l'Indicateur Alligator sur MetaTrader 5