English Русский 中文 Español Deutsch 日本語 Português 한국어 Italiano Türkçe
preview
Une analyse des raisons pour lesquelles les Expert Advisors échouent

Une analyse des raisons pour lesquelles les Expert Advisors échouent

MetaTrader 5Expert Advisors | 3 août 2022, 17:14
672 0
Richard Poster
Richard Poster

Introduction

Les Expert Advisors (EA) peuvent bien performer sur une période de plusieurs mois et même de quelques années, mais il y a toujours des périodes où les performances sont médiocres. Les EA montrent rarement un bénéfice stable sur une longue période de temps, par exemple dix ans. Si un EA a connu des périodes de performances médiocres, peut-on s'attendre à ce qu'il fonctionne bien à l'avenir ?

Dans cette analyse, deux questions sont posées : Quels changements peuvent se produire dans les données de séries chronologiques pouvant affecter fortement les performances de l'EA ? Existe-t-il un indicateur technique pouvant prédire quand un EA aura de mauvaises performances et quand il aura de bonnes performances ? Cet indicateur serait des plus précieux !


Déclenchement du croisement de moyenne mobiles

Pour étudier ces questions, des données sur les devises de 15 minutes sur une période de seize ans sont utilisées avec une stratégie de test, le Moving Average Crossover (Croisement de Moyennes Mobiles). Pour le déclenchement du croisement de moyenne mobile (MAC), un signal d'achat est généré lorsque la moyenne mobile simple (SMA) rapide croise la SMA lente et un signal de vente est généré lorsque la SMA rapide croise la SMA lente. La stratégie MAC devrait fournir un bon banc de test pour l'étude. Les paramètres d'entrée clés pour la stratégie MAC sont les périodes rapide et lente des SMA. La période SMA rapide est généralement entre 1 et 4 dans ces études. La période SMA lente est entre 10 à 150. Les deux sont supposées être fixes pendant la période de test.

La figure 1 montre le comportement du rendement des bénéfices du déclencheur Croisement SMA pour la paire de devises EURUSD de janvier 2006 à décembre 2021. Pour les périodes rapides et lentes optimisées des SMA de 2 et 80, l'EA a un rendement positif pour certains intervalles et un rendement négatif pour d'autres intervalles. La période de 01/2008 à 06/2013 a une croissance régulière des bénéfices. La figure 2 montre le comportement de rendement des bénéfices du déclenchement du Croisement des SMA pour la paire de devises GBPUSD pour le même intervalle pour les périodes SMA optimisées de 1 et 80. Le graphique du GBPUSD ne montre que de brèves périodes de performance positive des bénéfices.

Fig_1_EURUSD_SMACcross

 Figure 1.  Bénéfice du déclenchement du croisement EURUSD SMA (0,1 lot)


     

Fig_2_GBPUSD_SMACross

  Figure 2. Bénéfice du déclenchement du croisement GBPUSD SMA (0,1 lot)

Compte tenu des comportements temporels illustrés dans les figures 1 et 2, nous pouvons examiner le comportement temporel des indicateurs techniques courants pour déterminer s'il existe une relation entre le comportement de l'indicateur et la période de profit du croisement des moyennes mobiles. 


Comportement des indicateurs techniques traditionnels

Plusieurs indicateurs techniques standards peuvent être examinés pour voir si leur comportement est différent dans les régions temporelles de rendement positif périodes et négatif. La figure 3 montre l'Average True Range (ATR) mensuel sur une période de seize ans pour l'EURUSD. L'ATR fournit une mesure de la volatilité de la paire de devises. Il présente un comportement dépendant du temps, mais rien ne correspond au comportement de temps de profit de la figure 1. Fait intéressant, la figure 3 montre l'extrême volatilité autour de la crise économique de fin 2008 et à nouveau au début de 2020. Cela suggère également qu'il est imprudent d'utiliser des seuils absolus de variation de prix pour déclencher la logique et que la valeur ATR lissée devrait être prise en compte. Un autre indicateur technique courant est l’écart des Bandes de Bollinger supérieures et inférieures. Cet indicateur est influencé à la fois par la volatilité et la force de la tendance. Son comportement mensuel à long terme, comme le montre la figure 4, est étonnamment presque identique à l'indicateur ATR. Comme celui-ci, il n'a pas de comportement correspondant aux périodes avec des retours positifs et négatifs dans les données EURUSD de la figure 1. Des résultats similaires sont observés pour les données du GBPUSD. La volatilité à long terme ne tient pas compte du comportement observé dans les figures 1 et 2.


Fig_3_ATRvsMth

Figure 3. EURUSD ATR, Moyenne mensuelle

FIg_4_BBSpreadVsMth

Figure 4. Écart des Bandes de Bollinger sur l’EURUSD, Moyenne mensuelle


Fonction d'autocorrélation comme indicateur

Contrairement à l’ATR et aux Bandes de Bollinger, la fonction d'autocorrélation (ACF) ne dépend pas de la volatilité. L'ACF est un outil très intéressant pour trouver des modèles dans les données de séries chronologiques. L'ACF mesure la corrélation des éléments d'une série temporelle avec des éléments de cette série retardés d'un certain délai. Lorsqu'une tendance est présente dans les données, l'ACF aura des valeurs positives pour de petits décalages. Dans cette analyse, l'élément Yi de la série chronologique est défini comme le (Cours de clôture - Prix d'ouverture) de la barre i.

Pour une série temporelle de N éléments : Yi , i =1...N. L'ACF est défini comme :

ACF_EquationV2

La fonction d'autocorrélation d'une série de données de prix est très différente de l'autocorrélation d'une série de données de variation de prix barre à barre. Par exemple, pour une série de nombres {1,2,3..14}, l'ACF est de 0,786. Pour une série de différences entre des éléments consécutifs de ce tableau, l'ACF sera proche de zéro (en supposant un peu de bruit dans les valeurs pour éviter une division par zéro).

Le calcul de l'ACF est implémenté dans le code suivant :

 double GetAtCorrVal(double &ClsOpn[],int CorrPer, int LagPer,int joff ) {
   double corr;
   double AIn[],BIn[];
   double XMean,XNum,XDen;
   int jj;
   ArrayResize(AIn,CorrPer);
   ArrayResize(BIn,CorrPer);
   XMean = 0.;
   XNum = 0.;
   XDen = 0.;
   corr = 0.;
   if(CorrPer<2)
    {
     Print("No AutoCorr Processing Allowed ");
     return(corr);
    }
   // mean
   for(jj=0;jj<CorrPer;jj++)
    {
     XMean +=ClsOpn[jj+joff];
    }
   XMean = XMean/CorrPer;
  // variances
   for(jj=0;jj<CorrPer;jj++)
    {
     if(jj<(CorrPer-LagPer))
       XNum  += (ClsOpn[jj+joff]-XMean)*(ClsOpn[jj+LagPer+joff]-XMean);
     XDen += (ClsOpn[jj+joff]-XMean)*(ClsOpn[jj+joff]-XMean);
    }  
    if(XDen==0.)
     {
      corr = 0.;
     }
    else
    corr = XNum/XDen;
   return(corr);
  }
//----------------------------------------------------------------

  

La figure 5 montre la moyenne mensuelle de l'ACF sur une période de seize ans pour les données EURUSD avec une période de lissage de six mois. La figure 1 montre une performance rentable entre 2008 et la fin de 2012. La figure 5 montre également une valeur ACF légèrement plus élevée dans cette période, suggérant une relation possible entre la performance de profit de la stratégie MAC et la valeur de l'ACF.


Fig_5_EURUSD_ACFvsMth

Figure 5. Fonction d'autocorrélation EURUSD Moyenne mensuelle


Pour les données GBUUSD illustrées à la figure 6, un faible lien peut être observé entre la performance des bénéfices (illustrée à la figure 2) et la valeur ACF.

Fig_6_GBPUSD_ACFvsMth


 Figure 6. Fonction d'autocorrélation GBPUSD Moyenne mensuelle

La fonction d'autocorrélation peut être utilisée comme indicateur (AutoCorr.mq5), mais comme le montre la figure 7, ce n'est pas un bon indicateur d'identification de tendance.


Fig_7_EURUSD_ACFIndicator

Figure 7. Indicateur ACF, décalage = 1

Comportement de l’ACF dans le temps et stratégie de croisement SMA

Plus d'informations peuvent être trouvées en regardant le comportement temporel de l'ACF juste avant le point de croisement des SMA (Trigger ACF). Mais aussi, juste après le point de croisement, pendant que la position est encore ouverte (Trade ACF). Les deux types d'ACF, Trade ACF et Trigger ACF ont des propriétés différentes. Les figures 8 et 9 montrent le Trade ACF calculé pour les données EURUSD et GBPUSD. À l'aide du testeur de stratégie, la valeur de l’ACF peut être tracée séparément pour les transactions à profit et pour les transactions à perte en fonction du temps. Les deux graphiques montrent une séparation dans le temps de l'ACF entre les transactions de profit et de perte. La période rentable de 01/2008 à 06/2013 de la figure 1 (EURUSD) correspond à peu près à une période de la figure 8 où la séparation de l'ACF est également importante. À partir de 01/2018, il y a peu de séparation entre les valeurs ACF pour les trades gagnants et perdants. Dans la figure 1, cela correspond à une période plate dans les rendements des bénéfices.


Fig_8_EURUSD_TradeACF

  Figure 8.  Autocorrélation des trades pour l’EURUSD pour les croisements de SMA


Fig_9_GBPUSD_TradeACF

Figure 9. Autocorrélation des trades pour GBPUSD pour les croisements de SMA

Les figures 10 et 11 montrent le Trigger ACF pour les données de l’EURUSD et du GBPUSD. Le but de ces deux graphiques est de déterminer si la valeur Trigger ACF peut être utilisée comme filtre dans un Expert Advisor pour améliorer la rentabilité de la stratégie Croisements des SMA. Par rapport aux données de Trade ACF, les données ACF de déclenchement montrent moins de séparation entre les rendements positifs et négatifs. Sa valeur en est donc affaiblie en tant que filtre de déclenchement. Cependant, la valeur ACF est plate dans le temps, ce qui indique qu'un seuil fixe pour l'ACF pourrait être utilisé comme filtre de déclenchement. Les courbes profits/pertes rebondissent largement les unes sur les autres, ce qui signifie qu'il y a des périodes où les transactions ne seraient pas rentables.


Fig_10_EURUSD_TriggerCF

 Figure 10.  Autocorrélation des déclenchements pour l’EURUSD pour les déclenchements des croisements de SMA


Fig_11_GBPUSD_TriggerACF

Figure 11. Autocorrélation des déclenchements pour le GBPUSD pour les déclenchement des croisements de SMA


Filtre ACF pour le déclenchement du croisement des SMA

Malgré les petites différences de l’ACF entre les transactions avec des rendements positifs et négatifs (Figures 10 et 11), si une exigence de seuil d'autocorrélation est ajoutée au déclencheur SMA Crossover, la performance de rendement de l’Expert Advisor est bien améliorée pendant les périodes où les performances de profit sont médiocres. Les figures 12 et 13 montrent le rendement des profits de l'EA avec un filtre ACF supplémentaire pour les données EURUSD et GBPUSD. La durée totale de seize ans est utilisée. En comparant les figures 1 et 2 aux figures 12 et 13 respectivement, les performances de rendement pour les données EURUSD et GBPUSD sont grandement améliorées lorsqu'une exigence de seuil d'autocorrélation est appliquée.


Fig_12_EURUSD_SMACrossCorr

Figure 12. Déclenchement du croisement EURUSD avec filtre ACF

Fig_13_GBPUSD_SMACrossCorr

Figure 13. Déclenchement du croisement GBPUSD avec filtre ACF


La figure 14 montre les résultats de performance du testeur de stratégie. Une amélioration significative est observée pour les données sur l’EURUSD et le GBPUSD. Dans les deux cas, le profit total augmente d'environ 50 % lorsque le filtre ACF est activé, et le profit par transaction (PO) est également grandement amélioré.

Type de déclenchement

# Trades

Profit en $

(0,1 lot)

Profit / Perte (PF)

Profit / Trade (PO)

Croisement EURUSD SMA

3160

5830

1,10

1,85

Croisement EURUSD SMA + ACF

1548

8511

1,33

5,50

Croisement GBPUSD SMA

3672

5352

1,07

1,46

Croisement GBPUSD SMA + ACF

3096

8317

1,13

2,69

Figure 14. Tableau des performances de test pour les données de l’EURUSD et du GBPUSD


Lien entre ACF et la période lente de la SMA pour la stratégie de croisement SMA


Il est également intéressant d'examiner la dépendance de la fonction d'autocorrélation moyenne sur le choix de la période lente de la SMA pour les transactions gagnantes et perdantes. Ceci est illustré pour les données de l’EURUSD M15 dans la figure 15. Aucun seuil de corrélation n'est utilisé dans le cadre de la stratégie d'ouverture de trades. Sans tenir compte de la valeur ACF, la période lente optimale pour la stratégie Croisement SMA a été déterminée à 80. La figure 15 montre que le plus grand écart de la valeur ACF moyenne, entre les transactions gagnantes et perdantes, se produit pour les périodes lentes entre 65 et 80. Une analyse plus approfondie peut conduire à l'utilisation des informations de l’ACF pour déterminer la période lente optimale en fonction de la valeur d'autocorrélation mesurée au moment de l'ouverture de la transaction. 


Fig_15_AvgACVvsSlowPeriod

Figure 15. ACF Moyen vs. Période lente de la SMA pour EURUSD

Conclusion

La fonction d'autocorrélation est un indicateur précieux pour améliorer les performances de l'Expert Advisor. Il améliore les performances du déclencheur de test en filtrant les périodes où les performances sont médiocres.

En général, les coefficients de corrélation, y compris la fonction d'autocorrélation, constituent un domaine de recherche fructueux pour améliorer l'efficacité du trading. Ils sont immunisés contre les effets de la volatilité et sont sensibles aux modèles de prix, y compris la formation et l'inversion des tendances.



Traduit de l’anglais par MetaQuotes Ltd.
Article original : https://www.mql5.com/en/articles/3299

Fichiers joints |
AutoCorr.mq5 (4.12 KB)
Plusieurs indicateurs sur un même graphique (Partie 06) : Transformer MetaTrader 5 en un système RAD (II) Plusieurs indicateurs sur un même graphique (Partie 06) : Transformer MetaTrader 5 en un système RAD (II)
Dans mon précédent article, je vous ai montré comment créer un Chart Trade en utilisant les objets MetaTrader 5 et transformer ainsi la plateforme en un système RAD. Le système fonctionne très bien. Il est certain que de nombreux lecteurs auraient créé une bibliothèque, ce qui permettrait d'avoir des fonctionnalités étendues dans le système proposé. A partir de là, il serait possible de développer un Expert Advisor plus intuitif, avec une interface plus agréable et plus facile à utiliser.
Apprenez à concevoir un système de trading basé sur le Momentum Apprenez à concevoir un système de trading basé sur le Momentum
Dans ce nouvel article de notre série sur la conception des systèmes de trading, je vais présenter le Commodities Channel Index (CCI), expliquer ses spécificités, et partager avec vous comment créer un système de trading basé sur cet indicateur.
Apprenez à concevoir un système de trading basé sur le MACD Apprenez à concevoir un système de trading basé sur le MACD
Dans cet article, nous allons découvrir un nouvel outil dans notre série : nous allons apprendre à concevoir un système de trading basé sur l'un des indicateurs techniques les plus populaires, le Moving Average Convergence Divergence (MACD).
Apprenez à concevoir un système de trading utilisant le RSI Apprenez à concevoir un système de trading utilisant le RSI
Dans cet article, je vais partager avec vous l'un des indicateurs les plus populaires et les plus utilisés dans le monde du trading : le RSI. Vous apprendrez à concevoir un système de trading utilisant cet indicateur.