English Русский 中文 Español Deutsch 日本語 Português 한국어 Italiano Türkçe
preview
Apprendre à concevoir un système de trading basé sur l’ATR

Apprendre à concevoir un système de trading basé sur l’ATR

MetaTrader 5Trading | 13 septembre 2022, 14:18
911 0
Mohamed Abdelmaaboud
Mohamed Abdelmaaboud

Introduction

Dans ce nouvel article, nous allons parler d'un nouveau concept de trading que nous devons mesurer et connaître pour savoir l’utiliser. Il s’agit de la volatilité. De nombreux outils peuvent être utilisés pour mesurer la volatilité. Parmi eux, l'un des plus populaires est l'indicateur technique Average True Range (ATR). Si vous connaissez l'évolution de la volatilité, cela peut changer la donne. C'est l'un des facteurs importants ou l'une des bases de votre décision, comme nous allons le voir dans cet article.

Nous allons passer en revue de nombreux sujets pour bien comprendre cet indicateur ATR. Comme vous le savez maintenant si vous avez lu mes autres articles publiés, mon approche est d'apprendre et d'enseigner la base des choses. Nous allons couvrir ensemble les sujets suivants :

  1. Écrire du code MQL5 dans MetaEditor
  2. Définition de l'ATR
  3. Stratégie basée sur l’ATR
  4. Schéma de la stratégie basée sur l’ATR
  5. Système de trading basé sur l’ATR
  6. Conclusion

Après tout cela, j'espère que vous comprendrez bien l'indicateur ATR et que vous saurez l’utiliser de manière appropriée. Nous allons découvrir l'indicateur Average True Range (ATR), ce qu'il mesure et comment il est calculé : nous analyserons sa formule de calcul et nous l'appliquerons sur un exemple réel du marché. Ce sera dans la partie "Définition de l’ATR". Nous verrons ensuite des stratégies simples qui peuvent être utilisées sur la base du concept de l'indicateur ATR. Je partagerai des stratégies simples qui peuvent aider à améliorer notre compréhension dans la partie "Stratégie basée sur l’ATR". Nous apprendrons ensuite à concevoir un plan pour ces stratégies. Il s'agit d'une étape nécessaire dans le processus de conception d'un système de trading, car elle permet de visualiser le fonctionnement du programme. Ainsi, des plans étape par étape seront fournis dans la section "Schéma de la stratégie basée sur l’ATR". Nous apprendrons ensuite à écrire le code pour concevoir le système de trading basé sur ces stratégies en utilisant le langage de programmation MQL5. Le programme développé sera finalement exécuté dans la plateforme de trading MetaTrader 5. Ce point sera traité dans la partie "Système de trading basé sur l’ATR".

Pour écrire le code de la stratégie en MQL5, nous utiliserons le MetaQuotes Language Editor (l'outil MetaEditor), intégré à la plateforme de trading MetaTrader 5. Vous pouvez télécharger MetaTrader 5 à partir de https://www.metatrader5.com/fr/download.

La fenêtre de la plateforme de trading MetaTrader 5 se présente de la façon suivante :

Plateforme MetaTrader 5

À partir de cette fenêtre, vous pouvez ouvrir l’éditeur de langage MetaEditor en appuyant sur la touche F4 de la fenêtre de MetaTrader 5. Une autre façon de l'ouvrir est de cliquer sur le bouton IDE depuis l'interface du terminal MetaTrader 5 :

Ouverture de MetaEditor 2

Une autre façon de l'ouvrir est de cliquer sur le menu Outils dans le terminal MetaTrader 5 --> puis de choisir MetaQuotes Language Editor dans le menu :

Ouverture de MetaEditor 1 

Cela ouvrira l'Editeur de Langage MetaQuotes. Voici son interface qui sera alors affichée :

Interface de MetaEditor

Je vous conseille d'appliquer ce que vous lirez dans cet article, car la pratique est un facteur important d'amélioration.

Avertissement : Toutes les informations sont fournies "en l'état", uniquement à des fins d'information et ne sont pas données à des fins de trading ou de conseil. Ces informations ne garantissent aucun type de résultat. Si vous utilisez le contenu de cet article sur l'un de vos comptes de trading, vous le faites à vos propres risques et en serez le seul responsable.

Préparez-vous maintenant à apprendre un nouvel outil qui pourra vous aider à améliorer vos compétences en matière de trading et à améliorer vos résultats. C’est parti.


Définition de l'ATR

Dans ce sujet, nous allons couvrir en détail l'indicateur Average True Range (ATR) : ce qu'il mesure et comment il est calculé, avec quelques exemples pour approfondir notre compréhension afin de savoir comment nous pouvons l’utiliser et en tirer partie.

L'indicateur technique ’Average True Range’ (ATR) a été développé par Welles Wilder. Il mesure la volatilité du marché en analysant la fourchette des prix d’une période spécifique. L'ATR ne fournit pas le prix ou la direction du marché, mais mesure uniquement la volatilité.

Voici comment le calculer.

Nous devons tout d’abord calculer le True Range (l'étendue réelle), qui sera la plus grande valeur de ce qui suit :

  • La différence entre le plus haut actuel et le plus bas actuel.
  • La valeur absolue de la différence entre le plus haut actuel et la clôture précédente.
  • La valeur absolue de la différence entre le plus bas actuel et la clôture précédente.

A cette étape, nous avons donc besoin des valeurs des plus hauts, des plus bas et des prix de clôture pour le calculer. Nous pourrons ensuite calculer la moyenne de l'écart réel.

Voyons maintenant un exemple réel tiré du marché pour appliquer ce que nous avons appris, et calculer l'écart moyen réel (l’ATR). Les données suivantes sont celles de la paire EURUSD :

Jour Plus Haut Plus Bas Clôture
17 mars 2022 1.1138 1.1008 1.1089
18 mars 2022 1.112 1.1003 1.1055
21 mars 2022 1.107 1.101 1.1014
22 mars 2022 1.1047 1.096 1.1027
23 mars 2022 1.1044 1.0963 1.1004
24 mars 2022 1.1014 1.0965 1.0996
25 mars 2022 1.1039 1.0979 1.0981
28 mars 2022 1.1 1.0944 1.0978
29 mars 2022 1.1137 1.097 1.1085
30 mars 2022 1.1171 1.1083 1.1156
31 mars 2022 1.1185 1.1061 1.1065
01 avril 2022 1.1077 1.1027 1.1053
04 avril 2022 1.1056 1.096 1.097
05 avril 2022 1.099 1.0899 1.0903
06 avril 2022 1.0939 1.0874 1.0893
07 avril 2022 1.0939 1.0864 1.0878
08 avril 2022 1.0892 1.0836 1.0876
11 avril 2022 1.0951 1.0872 1.0883
12 avril 2022 1.0905 1.0821 1.0826
13 avril 2022 1.0896 1.0809 1.0885
14 avril 2022 1.0925 1.0757 1.0827
15 avril 2022 1.0832 1.0796 1.0806
18 avril 2022 1.0822 1.0769 1.078
19 avril 2022 1.0815 1.0761 1.0786
20 avril 2022 1.0868 1.0783 1.085
21 avril 2022 1.0937 1.0824 1.0836
22 avril 2022 1.0853 1.077 1.0794
25 avril 2022 1.0842 1.0697 1.0711
26 avril 2022 1.0738 1.0635 1.0643
27 avril 2022 1.0655 1.0586 1.0602

Pour calculer l'ATR, nous allons maintenant suivre les étapes suivantes :

1 - Calculer le TR. Ce sera la plus grande valeur de :

  • Plus haut actuel - plus bas actuel,

H - L

  • La valeur absolue du (plus haut actuel - clôture précédente),

 abs(h - pc)

  • La valeur absolue du (plus bas actuel - clôture précédente),

 abs(l - pc)

Avec ce que nous avons calculé, nous allons déterminer le TR qui est la plus grande valeur de (plus haut - plus bas, abs(plus haut - clôture précédente), abs(plus bas - clôture précédente)),

TR

2 - Calculer la moyenne des écarts réels (ATR) pour 14 périodes :

ATR

Grâce aux étapes précédentes, nous pouvons maintenant calculer manuellement l’Average True Range (ATR). Mais aujourd'hui, nous n'avons plus besoin de le faire car l’indicateur est disponible nativement dans la plateforme de trading MetaTrader 5. Il suffit de le choisir parmi les autres indicateurs disponibles.

Pour insérer l’indicateur ATR dans un graphique, ouvrez le terminal de trading MetaTrader 5, cliquez sur menu Insérer --> Indicateur --> Oscillateurs --> Average True Range :

Ajout de l’ATR

La fenêtre suivante s'ouvre alors pour déterminer les paramètres de l'ATR :

Fenêtre des paramètres de l’ATR

1 - période souhaitée pour l'indicateur.

Cette période peut être différente d'un graphique à l'autre, ou d'un instrument à l'autre, en fonction de la volatilité de chaque période et de chaque instrument. Un ATR plus long peut être meilleur pour générer une indication précise car il s'agit d'une moyenne plus lisse.

2 - couleur de la ligne de l’ATR.

3 - style de la ligne de l’ATR.

4 - épaisseur de la ligne de l’ATR.

Après avoir défini les paramètres de l'indicateur ATR, celui-ci sera attaché au graphique et apparaîtra ensuite comme suit :

ATR attaché

Comme nous pouvons le voir dans l'image précédente, la fenêtre inférieure affiche l'indicateur ATR sur 14 périodes, qui est représenté par une ligne oscillante pour mesurer la volatilité de l'EURUSD sur la période H1.

Comme je l'ai mentionné précédemment, l'ATR mesure la volatilité. On peut maintenant analyser les valeurs dans la fenêtre de l’ATR : plus la valeur de l’ATR est faible, plus la volatilité de l'instrument est faible. Et vice versa : plus la valeur de l'ATR est élevée, plus la volatilité de l'instrument est élevée.

L'image suivante montre comment le lire :

Lecture de l'ATR

Ainsi, lorsque l'ATR enregistre des valeurs faibles, cela indique une faible volatilité. Et vice versa, lorsque l'indicateur ATR enregistre des valeurs élevées, cela indique une forte volatilité.

L'indicateur ATR n'est pas précis pour générer des signaux de trading comme nous le savons déjà suite à son calcul. Il ne prend en compte que l'amplitude de la fourchette, mais sa beauté réside dans le fait qu'il s'agit de l'un des meilleurs outils permettant de calculer une taille de position, un stop loss et un take profit appropriés.

Comme je l'ai déjà mentionné, l'ATR ne mesure que la volatilité. Il ne fournit pas la tendance ou la direction du marché. Ne vous trompez donc pas si la courbe de l’ATR monte - cela ne signifie pas que la tendance est à la hausse. Et vice versa, si la courbe de l’ATR descend, cela ne signifie pas que la tendance est à la baisse. Si vous voulez en savoir plus sur l’indicateur ADX, l'un des outils les plus populaires, qui peut être utilisé pour déterminer s'il existe une tendance ou non,

vous pouvez également lire la définition de la tendance dans mon article précédent.

L'image suivante est un exemple qui montre que l'ATR ne fournit pas une direction de tendance :

Lecture de l'ATR 2

Comme nous pouvons le voir, l'indicateur monte en même temps que les prix baissent. Et vice versa, la ligne de l’ATR descend en même temps que les prix montent. En effet, l'ATR n’indique pas de tendance ou de direction du marché, mais uniquement une mesure de la volatilité.


Stratégie basée sur l’ATR

Dans cette rubrique, nous allons découvrir des stratégies simples qui peuvent être utilisées avec l'indicateur ATR pour améliorer nos résultats de trading. Le concept de l'indicateur ATR est qu'il ne mesure que la volatilité du marché, et non sa direction.

1 - Système ATR Simple - Force ATR :

Pour cette stratégie, nous allons comparer la valeur actuelle de l'ATR avec des valeurs spécifiques, et décider si l'ATR est fort ou non. Il est important de noter ici que ces valeurs spécifiques peuvent différer d'un instrument à l'autre, ou d'une période à l'autre. Nous allons donc vérifier la valeur de l'ATR et déterminer sa force en fonction de sa valeur. Si la valeur actuelle de l'ATR est supérieure à 0,0024, cela signifie que l'ATR est fort. Et vice versa, si la valeur actuelle de l'ATR est inférieure à 0,0014, cela signifie que l'ATR est faible. Si la valeur de l’ATR est comprise entre 0,0014 et 0,0024, cela signifie que l'ATR est neutre et renvoie uniquement la valeur ATR actuelle.

  • Valeur actuelle de l'ATR > 0,0024 = l'ATR est fort
  • Valeur actuelle de l’ATR < 0,0014 = l’ATR est faible
  • Valeur actuelle de l’ATR > 0,0014 et < 0,0024 = valeur actuelle de l’ATR


2 - Système ATR Simple - Mouvement ATR :

Pour cette stratégie, nous comparons la valeur actuelle de l'ATR avec sa valeur précédente. Puis nous décidons du mouvement de l'ATR, ou si la ligne de l'ATR monte (la valeur actuelle de l'ATR est supérieure à sa valeur précédente), ou si elle descend (la valeur actuelle de l'ATR est inférieure à sa valeur précédente).

  • Valeur actuelle de l’ATR > valeur précédente de l’ATR = l’ATR est en hausse
  • Valeur actuelle de l’ATR < valeur précédente de l’ATR = l’ATR est en baisse


3 - Système ATR Simple - Niveaux SL et TP :

Pour cette stratégie, nous devons utiliser les valeurs de l’ATR pour déterminer un niveau de stop loss et de take profit dynamiques, basés sur la valeur actuelle de l’ATR et sur un calcul spécifique pour la position d'achat et la position de vente.

Pour une position d'achat, nous devons voir sur le graphique :

  • Le prix demandé actuel.
  • Une nouvelle ligne avec le prix actuel de l'offre.
  • Une nouvelle ligne avec la valeur actuelle de l'ATR.
  • Une nouvelle ligne avec la valeur calculée du stop loss.
  • Une nouvelle ligne avec la valeur calculée du take profit.

Pour une position de vente, nous devons voir sur le graphique :

  • Le prix demandé actuel.
  • Une nouvelle ligne avec le prix actuel de l'offre.
  • Une nouvelle ligne avec la valeur actuelle de l'ATR.
  • Une nouvelle ligne avec la valeur calculée du stop loss pour une position de vente.
  • Une nouvelle ligne avec la valeur calculée du take profit pour une position de vente.

Il existe d'autres stratégies avancées pouvant être utilisées par l'indicateur ATR. Mais ici nous ne mentionnons que quelques stratégies simples qui peuvent nous aider à comprendre l'indicateur ATR en profondeur pour pouvoir l'utiliser d'une manière appropriée pour améliorer nos résultats de trading.


Plan de la stratégie basée sur l’ATR

Dans cette partie, nous allons voir étape par étape ce dont nous avons besoin pour créer un système de trading pour les trois stratégies mentionnées, à travers un plan pour chaque stratégie. Tout d'abord, avant de concevoir ou de créer les trois stratégies mentionnées, nous allons définir un plan des étapes nécessaires pour créer un programme simple ou un Expert Advisor qui affichera un commentaire avec la valeur actuelle de l'ATR :

Schéma du système ATR Simple

1 - Système ATR Simple - Force ATR :

  • Valeur actuelle de l'ATR > 0,0024 = l'ATR est fort
  • Valeur actuelle de l’ATR < 0,0014 = l’ATR est faible
  • Valeur actuelle de l’ATR > 0,0014 et < 0,0024 = valeur actuelle de l’ATR

Nous voulons donc que le programme vérifie la valeur actuelle de l'ATR et décide elle est supérieure à 0,0024 - ce qui signifierait que l'ATR est fort. S'il n'est pas supérieur à 0,0024, le programme doit vérifier si l'ATR est inférieur à 0,0014 - cela signifierait que l'ATR est faible. Si la valeur de l’ATR est entre 0,0014 et 0,0024, alors le programme doit nous montrer la valeur actuelle de l’ATR uniquement sur le graphique.

Voici le plan de cette stratégie de Force ATR :

Système ATR simple - Schéma de la stratégie Force ATR

2 - Système ATR Simple - Mouvement ATR :

  • Valeur ATR actuelle > valeur ATR précédente = l’ATR est en hausse
  • Valeur actuelle de l’ATR < valeur précédente de l’ATR = l’ATR est en baisse

L’Expert Advisor doit vérifier la valeur actuelle de l'ATR et sa valeur précédente. Si la valeur actuelle de l'ATR est supérieure à sa valeur précédente, cela signifie que l'ATR est en hausse. Si la valeur actuelle de l'ATR est inférieure à sa valeur précédente, cela signifie que l'ATR est en baisse.

Voici le plan de cette stratégie de Mouvement ATR :

Système ATR simple - Schéma du Mouvement ATR

3 - Système ATR Simple - Niveaux SL et TP :

Un commentaire doit apparaître sur le graphique dans les deux cas,

la position d'achat et la position de vente :

  • Le prix demandé actuel.
  • Une nouvelle ligne avec le prix actuel de l'offre.
  • Une nouvelle ligne avec la valeur actuelle de l'ATR.
  • Une nouvelle ligne avec la valeur du Stop Loss.
  • Une nouvelle ligne avec la valeur du Take Profit.


Voici le plan de cette stratégie de Niveaux SL et TP :

Système ATR Simple - Schéma des niveaux SL&TP

Système de trading basé sur l’ATR

Nous allons apprendre dans cette section intéressante à écrire le code de chaque stratégie mentionnée pour créer un système de trading basé sur chacune d'entre elles afin de l'exécuter facilement, en douceur et avec précision. Nous allons maintenant écrire le code d’un Expert Advisor qui nous montrera automatiquement la valeur de l’ATR sur le graphique.

Voici comment nous pouvons écrire le code de cet Expert Advisor pour le Système Simple ATR :

  • Création d'un tableau de prix de type "double" :
double PriceArray[];
  • Tri des données en utilisant la fonction "ArraySetAsSeries" :
ArraySetAsSeries(PriceArray,true);
  • Définition de l'ATR de type "int" en utilisant la fonction iATR et un entier pour la valeur retournée :
int ATRDef=iATR(_Symbol,_Period,14);
  • Définition des données et stockage des résultats avec la fonction "CopyBuffer" :
CopyBuffer(ATRDef,0,0,3,PriceArray);
  • Récupération de la valeur des données actuelles en retournant une valeur double en utilisant la fonction "NormalizeDouble" :
double ATRValue=NormalizeDouble(PriceArray[0],5);
  • Affichage d’un commentaire sur le graphique avec la valeur de l’ATR :
Comment("ATR Value = ",ATRValue);

Voici le code complet (que vous pouvez copier) :

//+------------------------------------------------------------------+
//|                                                   Simple ATR.mq5 |
//|                                  Copyright 2022, MetaQuotes Ltd. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2022, MetaQuotes Ltd."
#property link      "https://www.mql5.com"
#property version   "1.00"
//+------------------------------------------------------------------+
void OnTick()
  {
   //creating price array
   double PriceArray[];
   
   //Sorting data
   ArraySetAsSeries(PriceArray,true);

   //define ATR
   int ATRDef=iATR(_Symbol,_Period,14);
   
   
   //define data and store result
   CopyBuffer(ATRDef,0,0,3,PriceArray);
   
   //get value of current data
   double ATRValue=NormalizeDouble(PriceArray[0],5);
   
   //comment on the chart
   Comment("ATR Value = ",ATRValue);
  }
//+------------------------------------------------------------------+

Après avoir écrit cet Expert Advisor, si nous voulons exécuter ce programme, nous pouvons le trouver dans le Navigateur :

ATR Simple dans le Navigator

En double-cliquant, ou en glissant-déposant ce fichier sur le graphique, la fenêtre suivante s'ouvre :

Fenêtre ATR Simple

Après avoir cliqué sur "OK", l’Expert Advisor ATR Simple est attaché au graphique :

ATR Simple attaché

Et voici le résultat de son exécution :

Signal ATR Simple

Nous allons maintenant créer un système de trading pour chaque stratégie mentionnée.

1 - Système ATR Simple - Force ATR :

  • Valeur actuelle de l'ATR > 0,0024 = l'ATR est fort 
  • Valeur actuelle de l’ATR < 0,0014 = l’ATR est faible
  • Valeur actuelle de l’ATR > 0,0014 et < 0,0024 = valeur actuelle de l’ATR

Voici le code de cet Expert Advisor de Système ATR Simple - Force ATR :

//+------------------------------------------------------------------+
//|                             Simple ATR System - ATR strength.mq5 |
//|                                  Copyright 2022, MetaQuotes Ltd. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2022, MetaQuotes Ltd."
#property link      "https://www.mql5.com"
#property version   "1.00"
//+------------------------------------------------------------------+
void OnTick()
  {
   //creating price array
   double PriceArray[];
   
   
   //Sorting data
   ArraySetAsSeries(PriceArray,true);
   
   //define ATR
   int ATRDef=iATR(_Symbol,_Period,14);   
   
   //define data and store result
   CopyBuffer(ATRDef,0,0,3,PriceArray);
   
   //get value of current data
   double ATRValue=NormalizeDouble(PriceArray[0],5);
   
   //comment on the chart with ATR strength as per its value
   if(ATRValue>0.0024)
   Comment("Strong ATR","\n","ATR Value = ",ATRValue);
   
   if(ATRValue<0.0014)
   Comment("Weak ATR","\n","ATR Value = ",ATRValue);
   
   if((ATRValue>0.0014)&&(ATRValue<0.0024))
   Comment("ATR Value = ",ATRValue);
  }
//+------------------------------------------------------------------+

Les différences dans ce code sont :

  • Le commentaire basé sur la comparaison de l'ATR actuel avec une valeur spécifique, si la valeur de l'ATR actuel > 0,0024 :
   if(ATRValue>0.0024)
   Comment("Strong ATR","\n","ATR Value = ",ATRValue);
  • Si la valeur actuelle de l'ATR < 0,0014
   if(ATRValue<0.0014)
   Comment("Weak ATR","\n","ATR Value = ",ATRValue);
  • Si la valeur actuelle de l'ATR > 0,0014 et < 0,0024
   if((ATRValue>0.0014)&&(ATRValue<0.0024))
   Comment("ATR Value = ",ATRValue);

Après cela, nous trouverons cet Expert Advisor dans la fenêtre du Navigateur pour l'exécuter après l'avoir compilé :

ATR dans le Navigator 1

Après avoir ouvert le fichier en double-cliquant, ou en le faisant glisser et en le déposant sur le graphique, nous pouvons voir la fenêtre suivante :

Fenêtre de Force ATR

Après avoir appuyé sur "OK", l’Expert Advisor sera attaché au graphique comme dans l'image suivante :

ATR Force attaché

Et voici un exemple des signaux générés selon cette stratégie à des fins de test :

Comme nous pouvons le voir dans le graphique suivant, un commentaire est affiché avec l'ATR fort et la valeur actuelle de l'ATR dans une nouvelle ligne :

ATR Force - ATR fort

Comme nous pouvons le voir, le graphique suivant montre un commentaire avec un ATR faible et une valeur ATR actuelle sur une nouvelle ligne :

ATR Force - ATR faible

Comme nous pouvons le voir, le graphique suivant montre un commentaire avec la valeur ATR actuelle uniquement parce qu'elle est neutre selon les valeurs utilisées :

ATR Force - ATR neutre

2 - Système ATR Simple - Mouvement ATR : 

  • Valeur ATR actuelle > valeur ATR précédente = l’ATR est en hausse
  • Valeur actuelle de l’ATR < valeur précédente de l’ATR = l’ATR est en baisse

Voici le code de cet Expert Advisor du Système Simple ATR - Mouvement ATR :

//+------------------------------------------------------------------+
//|                             Simple ATR System - ATR movement.mq5 |
//|                                  Copyright 2022, MetaQuotes Ltd. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2022, MetaQuotes Ltd."
#property link      "https://www.mql5.com"
#property version   "1.00"
//+------------------------------------------------------------------+
void OnTick()
  {
   //creating arrays
   double PriceArray0[];
   double PriceArray1[];
   
   //sort price array from current data
   ArraySetAsSeries(PriceArray0,true);
   ArraySetAsSeries(PriceArray1,true);
   
   //define ATR
   int ATRDef=iATR(_Symbol,_Period,14); 
   
   //define data and store result
   CopyBuffer(ATRDef,0,0,3,PriceArray0);      
   CopyBuffer(ATRDef,0,0,3,PriceArray1);
   
   //get value of current data
   double ATRValue=NormalizeDouble(PriceArray0[0],5);
   double PreATRValue=NormalizeDouble(PriceArray1[1],5);

   if(ATRValue>PreATRValue)
   Comment("ATR is UP","\n","ATR Value = ",ATRValue,"\n","ATR Previous Value = ",PreATRValue);
   
   if(ATRValue<PreATRValue)
   Comment("ATR is Down","\n","ATR Value = ",ATRValue,"\n","ATR Previous Value = ",PreATRValue);
      
  }
//+------------------------------------------------------------------+


Les différences dans ce code sont :

  • Création de deux tableaux de prix (valeur ATR actuelle (PriceArray0), valeur ATR précédente (PriceArray1)) :
   double PriceArray0[];
   double PriceArray1[];
  • Tri des 2 tableaux de prix à partir des données actuelles :
   ArraySetAsSeries(PriceArray0,true);
   ArraySetAsSeries(PriceArray1,true);
  • Définition des données et stockage du résultat des 2 tableaux :
   CopyBuffer(ATRDef,0,0,3,PriceArray0);      
   CopyBuffer(ATRDef,0,0,3,PriceArray1);
  • Récupération de la valeur des données actuelles pour 2 valeurs (ATR actuel et précédent) :
   double ATRValue=NormalizeDouble(PriceArray0[0],5);
   double PreATRValue=NormalizeDouble(PriceArray1[1],5);
  • Commentaire basé sur la comparaison de l'ATR actuel avec la valeur précédente,
    • Si la valeur actuelle de l’ATR > la valeur précédente de l’ATR :
   if(ATRValue>PreATRValue)
   Comment("ATR is UP","\n","ATR Value = ",ATRValue,"\n","ATR Previous Value = ",PreATRValue);
    • Si la valeur actuelle de l’ATR est inférieure à sa valeur précédente :
   if(ATRValue<PreATRValue)
   Comment("ATR is Down","\n","ATR Value = ",ATRValue,"\n","ATR Previous Value = ",PreATRValue);
Après la compilation, cet Expert Advisor est disponible dans la fenêtre du Navigateur pour l'exécuter :

ATR dans le Navigator 2

En double-cliquant ou en glissant et déposant le fichier sur le graphique, la fenêtre suivante sera affichée :

Fenêtre de Mouvement ATR.

Après avoir activé l'option "Autoriser le Trading Algorithmique" et appuyé sur "OK", l’Expert Advisor sera attaché au graphique comme dans l'image suivante :

Mouvement ATR attaché

Voici un exemple des signaux générés sur la base de cette stratégie à des fins de test,

Si l'ATR est en hausse :

Mouvement des ATR - en hausse

Dans le cas où ATR est en baisse :

Mouvement de l'ATR - vers le bas


3 - Système ATR Simple - Niveaux SL et TP :

Pour une position d'achat, nous devons voir sur le graphique : 

  • Le prix demandé actuel.
  • Une nouvelle ligne avec le prix actuel de l'offre.
  • Une nouvelle ligne avec la valeur actuelle de l'ATR.
  • Une nouvelle ligne avec la valeur du Stop Loss pour la position d'achat.
  • Une nouvelle ligne avec la valeur du Take Profit pour la position d'achat.

Pour une position de vente, nous devons voir sur le graphique : 

  • Le prix demandé actuel.
  • Une nouvelle ligne avec le prix actuel de l'offre.
  • Une nouvelle ligne avec la valeur actuelle de l'ATR.
  • Une nouvelle ligne avec le Stop Loss pour la position de vente.
  • Une nouvelle ligne avec le Take Profit pour la position de vente.

Voici comment le code de cet Expert Advisor du Système Simple ATR - niveaux SL et TP peut être écrit :

//+------------------------------------------------------------------+
//|                             Simple ATR System - SL&TP levels.mq5 |
//|                                  Copyright 2022, MetaQuotes Ltd. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2022, MetaQuotes Ltd."
#property link      "https://www.mql5.com"
#property version   "1.00"
//+------------------------------------------------------------------+
void OnTick()
  {
   //define Ask price&Bid
   double Ask=NormalizeDouble(SymbolInfoDouble(_Symbol,SYMBOL_ASK),_Digits);
   double Bid=NormalizeDouble(SymbolInfoDouble(_Symbol,SYMBOL_BID),_Digits);
   
   //creating price array
   double PriceArray[];
   
   //Sorting data
   ArraySetAsSeries(PriceArray,true);

   //define ATR
   int ATRDef=iATR(_Symbol,_Period,14);
   
   
   //define data and store result
   CopyBuffer(ATRDef,0,0,3,PriceArray);
   
   //get value of current data
   double ATRValue=NormalizeDouble(PriceArray[0],5);
   
   //Calculate SL&TP for buy position
   double StopLossBuy=Bid-(ATRValue*2);
   double TakeProfitBuy=Ask+((ATRValue*2)*2);
   
   //Calculate SL&TP for sell position
   double StopLossSell=Ask+(ATRValue*2);
   double TakeProfitSell=Bid-((ATRValue*2)*2);
   
   //comment on the chart
   Comment("BUY POSITION","\n","Current Ask = ",Ask,"\n","Current Bid = ",Bid,"\n","ATR Value = ",ATRValue,
   "\n","Stop Loss = ",StopLossBuy,"\n","Take Profit = ",TakeProfitBuy,"\n",
   "SELL POSITION","\n","Current Ask = ",Ask,"\n","Current Bid = ",Bid,"\n","ATR Value = ",ATRValue,
   "\n","Stop Loss = ",StopLossSell,"\n","Take Profit = ",TakeProfitSell);
  }
//+------------------------------------------------------------------+

Les différences ici sont :

  • Définition des prix Ask et Bid pour calculer le stop loss et le take profit :
   double Ask=NormalizeDouble(SymbolInfoDouble(_Symbol,SYMBOL_ASK),_Digits);
   double Bid=NormalizeDouble(SymbolInfoDouble(_Symbol,SYMBOL_BID),_Digits);
  • Calcul du stop loss et du take profit pour la position d'achat et la position de vente :
   //Calculate SL&TP for buy position
   double StopLossBuy=Bid-(ATRValue*2);
   double TakeProfitBuy=Ask+((ATRValue*2)*2);
   
   //Calculate SL&TP for sell position
   double StopLossSell=Ask+(ATRValue*2);
   double TakeProfitSell=Bid-((ATRValue*2)*2);
  • Commentaire en fonction de la stratégie pour la position d'achat et la position de vente :
  • Le prix demandé actuel.
  • Une nouvelle ligne avec le prix actuel de l'offre.
  • Une nouvelle ligne avec la valeur actuelle de l'ATR.
  • Une nouvelle ligne avec la valeur du Stop Loss.
  • Une nouvelle ligne avec la valeur du Take Profit.
  •    Comment("BUY POSITION","\n","Current Ask = ",Ask,"\n","Current Bid = ",Bid,"\n","ATR Value = ",ATRValue,
       "\n","Stop Loss = ",StopLossBuy,"\n","Take Profit = ",TakeProfitBuy,"\n",
       "SELL POSITION","\n","Current Ask = ",Ask,"\n","Current Bid = ",Bid,"\n","ATR Value = ",ATRValue,
       "\n","Stop Loss = ",StopLossSell,"\n","Take Profit = ",TakeProfitSell);

    Après avoir compilé le code, nous pouvons trouver cet Expert Advisor dans la fenêtre du Navigateur pour l'exécuter :

    ATR dans le Navigator 3

    Après avoir ouvert le fichier par double-clic ou par glisser-déposer sur le graphique, la fenêtre suivante s'affiche :

    Fenêtre ATR SL_TP

    Après avoir appuyé sur "OK", l’Expert Advisor sera attaché au graphique comme dans l'image suivante :

    ATR SL_TP joint

    Et voici un exemple des signaux générés selon cette stratégie à des fins de test :

    ATR Niveaux SL-TP

    Conclusion

    Nous avons appris ce qu'est l'ATR, ce qu'il mesure et le concept qui le sous-tend. Nous avons également vu comment nous pouvons le calculer manuellement, et nous l'avons appliqué à un exemple réel du marché, à savoir la définition de l'ATR. Nous avons ensuite vu quelques stratégies simples qui peuvent être utilisées et se basant sur le concept de l’ATR. De la même manière, nous avons développé le système de Force de l’ATR, de Mouvement de l’ATR, et les stratégies simples des niveaux SL & TP. Nous avons appris et conçu un plan pour chaque stratégie afin de nous aider à concevoir un système de trading pour chacune. Ce système fonctionnera sur la plateforme MetaTrader 5. Nous avons enfin appris comment écrire l’Expert Advisor de chaque stratégie avec MetaQuotes Languages (MQL5) pour les exécuter sur la plateforme MetaTrader 5.

    Après avoir compris et pratiqué les sujets précédents, vous devez être capable d'utiliser l'ATR selon le concept qui le sous-tend et vous devez être capable de lire l'indicateur pour déterminer la volatilité de l'instrument par le biais d'un système de trading automatisé, surtout après avoir appliqué ce que vous avez appris par vous-même.

    Il est également important de rappeler que vous devez tester toute nouvelle stratégie ou outil avant de l'utiliser sur votre compte réel ! Il se peut qu'il ne soit pas utile ou rentable pour votre trading, même s'il fonctionne avec quelqu'un d'autre, car il peut ne pas convenir à votre caractère ou à votre plan de trading et c'est normal. Vous devez donc d’abord le test pour vous assurer qu'il est utile et rentable pour vous.

    Pour conclure, j'espère que vous aurez trouvé cet article utile pour votre trading. J'espère également qu'il vous a ouvert les yeux sur de nouvelles idées pour améliorer vos résultats de trading. J'espère qu'il vous a fait prendre conscience de l'importance de la programmation pour le trading, combien elle peut être utile et combien elle nous aide à trader facilement, sans à-coups et avec précision.

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

    Science des Données et Apprentissage Automatique (partie 03) : Matrices de Régression Science des Données et Apprentissage Automatique (partie 03) : Matrices de Régression
    Cette fois-ci, nos modèles sont faits avec des matrices. Ceci permet une certaine flexibilité tout en nous permettant de faire des modèles puissants pouvant gérer non seulement cinq variables indépendantes mais aussi de nombreuses variables (tant que nous restons dans les limites de calcul d'un ordinateur). Cet article va être une lecture intéressante, c'est certain.
    Apprenez à concevoir un système de trading basé sur l’ADX Apprenez à concevoir un système de trading basé sur l’ADX
    Dans cet article, nous poursuivons notre série sur la conception d'un système de trading en utilisant les indicateurs les plus populaires et nous parlerons de l'indicateur Average Directional Movement Index (ADX). Nous verrons cet indicateur en détail pour bien le comprendre et nous apprendrons comment l'utiliser à travers une stratégie simple. En apprenant quelque chose en détail, nous pouvons obtenir plus d'informations et nous pouvons mieux l'utiliser.
    Développer un Expert Advisor à partir de zéro (partie 7) : Ajout du Volume au Prix (I) Développer un Expert Advisor à partir de zéro (partie 7) : Ajout du Volume au Prix (I)
    Il s'agit de l'un des indicateurs les plus puissants actuellement. Tout trader essayant d'avoir un certain degré de confiance doit avoir cet indicateur sur son graphique. Le plus souvent, l'indicateur est utilisé par ceux qui préfèrent "lire les bandes" lorsqu'ils tradent. Cet indicateur peut également être utilisé par ceux qui n'utilisent que l'action des prix dans leurs transactions.
    Science des Données et Apprentissage Automatique (Partie 02) : Régression Logistique Science des Données et Apprentissage Automatique (Partie 02) : Régression Logistique
    La classification des données est primordiale pour le trader algorithmique et pour le programmeur. Dans cet article, nous allons nous concentrer sur l'un des algorithmes logistiques de classification qui peut nous aider à identifier les Oui ou les Non, les Hauts et les Bas, les Achats et les Ventes.