Voir comment télécharger gratuitement des robots de trading
Retrouvez-nous sur Telegram !
Rejoignez notre page de fans
Un script intéressant ?
Poster un lien vers celui-ci -
laisser les autres l'évaluer
Vous avez aimé le script ? Essayez-le dans le terminal MetaTrader 5
Experts

Assistant MQL5 - Signaux de Trading basés sur Trois Moyennes Mobiles - expert pour MetaTrader 5

Vues:
266
Note:
(26)
Publié:
2022.01.11 13:06
Besoin d'un robot ou d'un indicateur basé sur ce code ? Commandez-le sur Freelance Aller sur Freelance

L'Assistant MQL5 permet de créer automatiquement le code des Expert Advisors. Voir Créer des Expert Advisors prêts à l'emploi avec l'Assistant MQL5 pour plus de détails.

Ici, nous allons considérer la stratégie de tendance, basée sur trois moyennes mobiles. La stratégie appelée "Signaux basés sur trois EMA". Pour déterminer la tendance, elle utilise trois moyennes mobiles lissées de façon exponentielle : FastEMA, MediumEMA et SlowEMA.

Signaux de Trading :

  • Signal d'achat : FastEMA>MediumEMA>SlowEMA (tendance à la hausse).
  • Signal de vente : FastEMA<MediumEMA<SlowEMA (tendance à la baisse).

Cette stratégie est implémentée dans la classe CSignal3EMA (le fichier signal3ema.mqh doit être placé dans terminal_data_folder\MQL5\Include\Expert\Signal\Signal3EMA.mqh).

Figure 1. Signaux de trading, basés sur trois moyennes mobiles

Figure 1. Signaux de trading, basés sur trois moyennes mobiles

Signaux de Trading

La stratégie de trading est implémentée dans la classe CSignal3EMA, elle possède des méthodes protégées pour simplifier l'accès aux valeurs de trois moyennes mobiles (Fast, Medium, Slow) :

double FastEMA(int ind)      // renvoie la valeur de Fast EMA de la barre
double MediumEMA(int ind)    // renvoie la valeur de Medium EMA de la barre
double SlowEMA(int ind)      // renvoie la valeur de Slow EMA de la barre
Les valeurs de l'indicateur de la barre 0 (non complétée) peuvent changer, il est donc nécessaire d'effectuer la vérification des conditions de trading à l'aide des données des barres complétées (formées).

1. Ouverture d'une position longue

La tendance à la hausse est déterminée par la condition suivante : FastEMA>MediumEMA>SlowEMA :

  • FastEMA(1)>MediumEMA(1) : L'EMA rapide est supérieure à l'EMA moyenne (dernière barre complétée) ;
  • MediumEMA(2)>SlowEMA(1) : L'EMA moyenne est supérieure à l'EMA lente (dernière barre complétée) ;
//+------------------------------------------------------------------+
//| Vérifie les conditions d'ouverture d'une position longue (achat) |
//+------------------------------------------------------------------+
bool CSignal3EMA::CheckOpenLong(double& prix,double& sl,double& tp,datetime & expiration)
{
double medium=MediumEMA(1);
//---
prix=0.0 ;
sl   =m_symbol.Ask()-m_stop_loss*m_adjusted_point ;
tp   =m_symbol.Ask()+m_take_profit*m_adjusted_point ;
//--- vérification de la tendance à la hausse (sur la dernière barre complétée) : FastEMA(1)>MediumEMA(1)>SlowEMA(1)
    return(FastEMA(1)>medium && medium>SlowEMA(1));
  }


2. Fermeture d'une position longue

La tendance à la baisse est déterminée par la condition suivante : FastEMA<MediumEMA<SlowEMA :

  • FastEMA(1)<MediumEMA(1) : l'EMA rapide est inférieure à l'EMA moyenne (dernière barre complétée) ;
  • MediumEMA(2)<SlowEMA(1) : l'EMA moyenne est inférieure à l'EMA lent (dernière barre complétée) ;
//+------------------------------------------------------------------+
//| Vérifie les conditions pour fermer la position longue            |
//+------------------------------------------------------------------+
bool CSignal3EMA::CheckCloseLong(double& prix)
{
   double medium=MediumEMA(1);
//---
   prix=0.0 ;
//--- vérification de la tendance à la baisse (sur la dernière barre complétée) : FastEMA(1)<MediumEMA(1)<SlowEMA(1)
   return(FastEMA(1)<medium && medium<SlowEMA(1));
}
Vous pouvez améliorer la clôture des positions longues : il n'est pas nécessaire d'attendre la tendance baissière, vous pouvez clôturer les positions longues lorsqu'elles sont à plat, ce qui peut être déterminé par les conditions suivantes : FastEMA<MediumEMA>SlowEMA.


3. Ouverture d'une position courte

//+------------------------------------------------------------------+
//| Vérifie les conditions d'ouverture d'une position courte (vente) |
//+------------------------------------------------------------------+
bool CSignal3EMA::CheckOpenShort(double& prix,double& sl,double& tp,datetime & expiration)
{
   double medium=MediumEMA(1);
//---
   prix=0.0 ;
   sl   =m_symbol.Bid()+m_stop_loss*m_adjusted_point ;
   tp   =m_symbol.Bid()-m_take_profit*m_adjusted_point ;
//--- vérification de la tendance à la baisse (sur la dernière barre complétée) : FastEMA(1)<MediumEMA(1)<SlowEMA(1)
   return(FastEMA(1)<medium && medium<SlowEMA(1));

}

4. Fermeture d'une position courte

//+------------------------------------------------------------------+
//| Vérifie les conditions pour fermer la position courte            |
//+------------------------------------------------------------------+
bool CSignal3EMA::CheckCloseShort(double& prix)
{
   double medium=MediumEMA(1);
//---
   prix=0.0 ;
//--- vérification de la tendance à la hausse (sur la dernière barre complétée) : FastEMA(1)>MediumEMA(1)>SlowEMA(1)
   return(FastEMA(1)>medium && medium>SlowEMA(1));
}

Vous pouvez améliorer la clôture des positions courtes : il n'est pas nécessaire d'attendre la tendance haussière, vous pouvez clôturer les positions courtes lorsqu'elles sont à plat, ce qui peut être déterminé par les conditions suivantes : FastEMA>MediumEMA<SlowEMA.


Création d'un Expert Advisor à l'aide de l'Assistant MQL5

Pour créer un robot de trading basé sur la stratégie, vous devez choisir les propriétés du signal comme "Signaux basés sur trois EMA" dans l'option "Créer des Expert Advisors prêts à l'emploi" de l'Assistant MQL5 :

Figure 2. Choisissez "Signaux basés sur trois EMA" dans l'Assistant MQL5

Figure 2. Choisissez "Signaux basés sur trois EMA" dans l'Assistant MQL5

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


Résultats des Tests

Considérons le backtesting de l'Expert Advisor sur les données historiques (EURUSD H1, période de test : 1.1.2010-05.01.2011,  FastPeriod=5, MediumPeriod=12, SlowPeriod=24, StopLoss=400, TakeProfit=900).

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

Figure 3. Résultats historiques du backtesting de l'Expert Advisor, sur la base de trois EMA

Figure 3. Résultats historiques du backtesting de l'Expert Advisor, sur la base de trois EMA

Pièces jointes : La classe Signal3EMA.mqh avec CSignal3EMA doit être placée dans terminal_data_folder\MQL5\Include\Expert\Signal.

Le fichier threeema.mq5 contient le code de l'Expert Advisor, créé à l'aide de l'Assistant MQL5.


Traduit du russe par MetaQuotes Ltd.
Code original : https://www.mql5.com/ru/code/250

Assistant MQL5 - Signaux de Trading Basés sur le Croisement des Prix avec l'indicateur Moyenne Mobile Assistant MQL5 - Signaux de Trading Basés sur le Croisement des Prix avec l'indicateur Moyenne Mobile

Les signaux de trading basés sur le croisement des prix avec un indicateur de moyenne mobile (CSignalMA de la bibliothèque standard MQL5) sont pris en compte. Le code de l'Expert Advisor basé sur cette stratégie peut être généré automatiquement à l'aide de l'Assistant MQL5.

Un modèle d'Expert Advisor Un modèle d'Expert Advisor

Ce code est un modèle d'Expert Advisor, écrit par Valery Mazurenko (non utilisé) pour l'ATC-2010.

Assistant MQL5 - Signaux de Trading Basés sur un Croisement des Prix avec une Moyenne Mobile, confirmé par l'ADX Assistant MQL5 - Signaux de Trading Basés sur un Croisement des Prix avec une Moyenne Mobile, confirmé par l'ADX

Les signaux de trading basés sur le croisement des prix avec l'indicateur de moyenne mobile confirmé par l'ADX sont pris en compte. Le code de l'Expert Advisor basé sur cette stratégie peut être généré automatiquement à l'aide de l'Assistant MQL5.

Assistant MQL5 - Signaux de Trading Basés sur le Croisement de Deux Moyennes Mobiles Lissées de manière Exponentielle Assistant MQL5 - Signaux de Trading Basés sur le Croisement de Deux Moyennes Mobiles Lissées de manière Exponentielle

Les signaux de trading basés sur le croisement des prix de deux moyennes mobiles lissées de manière exponentielle sont pris en compte. Le code de l'Expert Advisor basé sur cette stratégie peut être généré automatiquement à l'aide de l'Assistant MQL5.