English Русский 中文 Español Deutsch 日本語 Português 한국어 Italiano Türkçe
preview
Apprenez à concevoir un système de trading basé sur le Pouvoir des Haussiers (Bulls Power)

Apprenez à concevoir un système de trading basé sur le Pouvoir des Haussiers (Bulls Power)

MetaTrader 5Trading | 25 septembre 2023, 08:55
566 0
Mohamed Abdelmaaboud
Mohamed Abdelmaaboud

Introduction

Dans ce nouvel article de notre série, nous allons découvrir un nouvel outil technique qui peut être utilisé en notre faveur pour améliorer notre trading. Nous découvrons l'indicateur Bulls Power (Pouvoir des Haussiers) qui est l'un des indicateurs techniques qui peuvent être utilisés pour nous donner un aperçu de la puissance des haussiers (les taureaux). Nous allons donc découvrir cet indicateur technique en détail au travers des sujets suivants :

  1. Définition du Bulls Power
  2. Stratégie Bulls Power
  3. Plan de la stratégie Bulls Power
  4. Système de trading Bulls Power
  5. Conclusion

Nous apprendrons ce qu'est l'indicateur Bulls Power, ce qu'il mesure, comment le calculer manuellement pour comprendre le concept principal qui le sous-tend, et comment nous pouvons le lire. Après avoir compris le concept de base de cet indicateur, nous allons apprendre comment l'utiliser à travers quelques stratégies simples qui peuvent être utilisées en notre faveur pour améliorer nos résultats de trading, ce que nous verrons avec la stratégie Bulls Power. Nous concevrons ensuite un plan étape par étape pour chaque stratégie afin de nous aider à créer un système de trading pour chacune au travers du plan de la stratégie Bulls Power. Nous créerons enfin un système de trading pour chaque stratégie mentionnée afin de nous aider à automatiser nos signaux en les exécutant sur la plateforme de trading MetaTrader 5.

Nous utiliserons le terminal de trading MetaTrader 5 et nous écrirons nos codes à l'aide du MetaQuotes Language 5 (MQL5). Si vous souhaitez télécharger MetaTrader 5 et apprendre à utiliser MQL5, vous pouvez lire la rubrique Écrire du code MQL5 dans MetaEditor d'un article précédent pour en savoir plus. Je vous conseille d'appliquer ce que vous avez lu par vous-même si vous voulez améliorer vos compétences en matière de codage et bien le comprendre.

L'importance de la programmation s'accroît de jour en jour, c’est pourquoi l’apprentissage de cet outil est important. L'importance de la programmation découle de ses avantages, qui sont nombreux. Les avantages les plus importants de la programmation dans le domaine du trading sont qu'elle nous aide à gagner du temps en codant ou en créant un programme pour faire ce que nous faisons continuellement, qu'elle nous donne des résultats plus précis, comme nous en avons besoin, et qu'elle nous aide à éviter les émotions qui peuvent nuire à nos résultats en matière de trading.

Avertissement : Toutes les informations données dans cet article sont fournies "en l'état", uniquement à des fins d'information et ne sont aucunement 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 vous en serez le seul responsable.

Commençons maintenant les sujets de notre article.

Définition du Bulls Power

Dans cette rubrique, nous identifierons en détail l'indicateur Bulls Power afin de comprendre son concept principal. L'indicateur Bulls Power est l'opposé de l'indicateur Bears Power que nous avons déjà mentionné dans un précédent article Apprendre à concevoir un système de trading basé sur la Puissance des Baissiers (Bears Power). Le Bulls Power a été développé par Alexander Elder. Il mesure le caractère haussier du marché et peut également donner une indication si les baissiers entrent en jeu ou non en voyant les baissiers devenir faibles. Il s'agit d'un oscillateur qui évolue au-dessus ou au-dessous du niveau zéro. Cet indicateur nous donne ainsi également un aperçu important du facteur le plus important du marché qui fait bouger le marché : l’offre et la demande.

Nous allons voir dans les étapes suivantes comment nous pouvons calculer cet indicateur manuellement :

  • Détermination des Plus Hauts (les valeurs les plus élevées au cours d'une période donnée).
  • Calcul de la Moyenne Mobile Exponentielle (MME, ou EMA en anglais).
  • Calcul de la différence entre le Plus Haut et la Moyenne Mobile Exponentielle.

Bulls Power = Haut - EMA

Lorsque les haussiers contrôlent le marché, ils continuent de pousser le marché vers des valeurs plus élevées la plupart du temps. Ainsi, nous utilisons la valeur High dans la formule pour calculer la puissance des acheteurs pour les mesurer. Puis nous obtiendrons la différence entre ce sommet et l'EMA pour obtenir la valeur de l’indicateur qui oscille autour du niveau 0 comme nous l'avons mentionné précédemment. Lorsque nous constatons que la valeur du Bulls Power s'approche du niveau 0 et est devenue plus faible qu'auparavant, cela est une indication que les acheteurs sont devenus plus faibles.

Il est bon d'utiliser cet indicateur avec un autre indicateur de tendance pour obtenir des indications plus efficaces, comme nous le ferons dans l'une des stratégies mentionnées dans cet article. Ce concept est très utile et constitue l'une des caractéristiques de l'analyse technique, car nous pouvons utiliser de nombreux concepts pour mieux comprendre et voir l'instrument sous différents angles, ce qui donne plus de poids à notre décision.

Aujourd'hui, nous n'avons pas besoin de calculer cet indicateur manuellement car il est présent dans le terminal de trading MetaTrader 5. Tout ce que nous avons à faire est de l'insérer dans le graphique en appuyant sur Insertion --> Indicateurs --> Oscillateurs --> Bulls Power. Voici la même insertion illustrée :

Insertion du Bulls Power

Après avoir choisi l'indicateur, la fenêtre de ses paramètres est affichée :

Paramètres du Bulls Power

1 - Période utilisée dans le calcul.

2 - Couleur des barres du Bulls Power.

3 - Epaisseur des barres du Bulls Power.

Après avoir déterminé ses paramètres et avoir appuyé sur le bouton "OK", l'indicateur est inséré dans le graphique :

Bulls Power attaché

Comme nous pouvons le voir dans le graphique ci-dessus l'indicateur Bulls Power est attaché dans la partie inférieure du graphique et ses barres oscillent autour de 0. Lorsque la valeur est supérieure à 0, cela signifie que les haussiers contrôlent et lorsqu'elle s'approche de 0 et devient inférieure, cela signifie qu'ils sont devenus plus faibles. Lorsque les haussiers se sont affaiblis, on peut voir que les baissiers sont entrés dans le jeu en contrôlant le marché et en poussant le prix vers des niveaux bas. Ou du moins, le marché est équilibré grâce à l'équilibre entre les haussiers et les baissiers.

Stratégie Bulls Power

Dans cette partie, nous allons voir comment utiliser le Bulls Power à travers de stratégies simples. Ces stratégies et leurs conditions sont décrites ci-dessous. Je dois vous redire ici que ces stratégies sont uniquement destinées à votre éducation. L'objectif principal est de comprendre le concept principal derrière l'indicateur et comment nous pouvons les utiliser en notre faveur. Vous devez donc les tester avant de les utiliser sur votre compte réel pour vous assurer qu'elles seront bonnes pour votre trading car il n'y a pas de stratégie qui convienne à tout le monde.

    • Première stratégie : Mouvement du Bulls Power

      Pour cette stratégie, nous devons obtenir des signaux basés sur les valeurs actuelle et précédente du Bulls Power. Si la valeur actuelle est supérieure à la précédente, nous la considérerons comme un signal de hausse du Bulls Power. Inversement, si la valeur actuelle est inférieure à la précédente, il s'agit d'un signal de baisse du Bulls Power.

      Pour simplifier :

      Bulls Power actuel > Bulls Power précédent --> Bulls Power en hausse

      Bulls Power actuel < Bull Power précédent --> Bulls Power en baisse

        • Deuxième stratégie : Bulls Power - Fort ou divergence

          Sur la base de cette stratégie, nous voulons obtenir un signal qui nous informe s'il y a un fort mouvement ou s'il y a une divergence en évaluant 4 valeurs : le sommet actuel, le sommet précédent, la puissance haussière et la puissance haussière précédente. Si le sommet actuel est plus élevé que le précédent et que la valeur actuelle du Bulls Power est plus élevée que la précédente, nous considérerons cela comme le signal d'un mouvement fort. Dans l'autre cas, si le sommet actuel est plus élevé que le sommet précédent et que la valeur haussière actuelle est plus basse que la précédente, nous considérerons cela comme un signal de divergence baissière.

          Pour simplifier :

          Haut actuel > Haut précédent et Bulls Power actuel > Bulls Power précédent --> fort mouvement

          Haut actuel < Haut précédent et Bulls Power actuel > Bulls Power précédent --> divergence baissière

            • 3ème stratégie : Signaux du Bulls Power

              Sur la base de cette stratégie, nous avons besoin d'un signal qui peut être utilisé pour obtenir des signaux d'achat et de vente en évaluant 4 valeurs. Ces valeurs sont le Bulls Power actuel, le niveau 0, la valeur de clôture actuelle et la Moyenne Mobile Exponentielle actuelle. Si le Bulls Power actuel est inférieure au niveau 0 et que la clôture actuelle est inférieure à la moyenne mobile exponentielle, nous considérerons qu'il s'agit d'un signal de vente. Si le Bulls Power actuel est supérieure au niveau 0 et que la clôture actuelle est supérieure à la moyenne mobile exponentielle, il s'agit d'un signal d'achat.

              Pour simplifier :

              Bulls Power actuel < 0 et clôture actuelle < EMA --> vente

              Bulls Power actuel > 0 et clôture actuelle > EMA --> achat

              Plan de la stratégie Bulls Power

              Dans cette rubrique, nous concevrons un plan détaillé pour chaque stratégie pour nous aider à créer notre système de trading facilement et sans heurts.

              • Première stratégie : Mouvement du Bulls Power

              Le système doit vérifier 2 valeurs à chaque tick : le Bulls Power actuel et le Bulls Power précédent. Nous avons besoin du programme pour vérifier ces valeurs afin de connaître les positions. Si le Bulls Power actuel est supérieure au Bulls Power précédent, le programme ou l'expert doit renvoyer un commentaire sur le graphique avec les valeurs suivantes sur des lignes séparées :

              • Le Bulls Power augmente
              • La valeur actuelle du Bulls Power
              • La valeur précédente du Bulls Power

              Nous devons aussi envisager un autre scénario. Si la valeur actuelle du Bulls Power est inférieure à la précédente, l’Expert Advisor doit renvoyer un commentaire contenant également les valeurs suivantes sur des lignes distinctes :

              • Le Bulls Power est en baisse
              • La valeur actuelle du Bulls Power
              • La valeur précédente du Bulls Power

              Voici le plan simple de ce système de trading :

              Plan du Mouvement du Bulls Power

              • Deuxième stratégie : Bulls Power - Fort ou divergence

              Selon cette stratégie, le système de trading doit vérifier 4 valeurs : le sommet actuel, le sommet précédent, la puissance haussière actuelle et la puissance haussière précédente. Le système de trading doit ensuite décider si la valeur haute actuelle est plus élevée que la précédente et si la valeur actuelle du Bulls Power est plus élevée que la précédente, et renvoyer un signal sous forme de commentaire sur le graphique avec les valeurs suivantes, chacune sur une ligne séparée :

              • Mouvement fort
              • Valeur du Plus Haut actuel
              • Valeur du Plus Haut précédent
              • Valeur actuelle du Bulls Power
              • Valeur précédente du Bulls Power

              Dans l'autre cas, si le plus haut actuel est plus élevé que le précédent et que la valeur actuelle du Bulls Power est plus faible que la précédente, le système de trading doit renvoyer un commentaire sur le graphique avec les valeurs suivantes, chacune sur une ligne séparée :

              • Divergence baissière.
              • Valeur du Plus Haut actuel
              • Valeur du Plus Haut précédent
              • Valeur actuelle du Bulls Power
              • Valeur précédente du Bulls Power

              Ce qui suit est le schéma directeur sous une forme simple et visuelle pour nous aider à créer un système de trading basé sur cette stratégie :

                 Bulls Power - Fort ou Divergence

              • 3ème stratégie : Signaux du Bulls Power

              Selon cette stratégie, nous devons créer un système de trading qui vérifie 4 valeurs à chaque tick: le Bulls Power actuel, le niveau 0, la clôture actuelle et la moyenne mobile exponentielle actuelle. Ensuite, nous devons décider si le Bulls Power actuel est inférieur au niveau 0 et si la clôture actuelle est inférieure à la moyenne mobile exponentielle. L’Expert Advisor doit renvoyer un commentaire sur le graphique avec les valeurs suivantes sur des lignes séparées :

              • Signal de Vente
              • Valeur de Clôture actuelle
              • Valeur actuelle de l'EMA
              • Valeur actuelle du Bulls Power

              Dans l'autre cas, si le Bulls Power actuel est supérieur à 0 et que la clôture actuelle est supérieure à la moyenne mobile exponentielle, le système de trading doit renvoyer un commentaire avec les valeurs suivante sur des lignes séparées :

              • Signal d’Achat
              • Valeur de Clôture actuelle
              • Valeur actuelle de l'EMA
              • Valeur actuelle du Bulls Power

              Voici un plan simple, étape par étape, pour organiser nos idées pour créer un système de trading basé sur cette stratégie :

              Plan du Signaux du Bulls Power

              Système de trading Bulls Power

              Dans cette rubrique, nous apprendrons à créer un système de trading pour chaque stratégie. Mais tout d'abord, nous créerons un système de trading simple qui peut être utilisé pour générer automatiquement un commentaire avec la valeur actuelle du Bulls Power sur le graphique. Nous l’utiliserons comme base pour toutes les stratégies.

              Voici le code de ce système de trading :

              Première étape : Nous créons un tableau "bullpower" d’éléments de type double :

              double bullpowerArray[];

              Deuxième étape : nous trions le tableau créé avec la fonction "ArraySetAsSeries" qui renvoie une valeur booléenne.

              ArraySetAsSeries(bullpowerArray,true);

              3ème étape : Nous créons une variable entière "bullpowerDef" correspondant au handle de l'indicateur bull power créé en utilisant la fonction "iBullsPower". Ses paramètres sont les suivants :

              symbol : nous utiliserons _Symbol pour l'appliquer au symbole actuel.

              period : nous utiliserons (_Period) pour l'appliquer à la période en cours.

              ma_period : nous utiliserons 13 pour la période de la moyenne mobile utilisable.

              int bullpowerDef = iBullsPower(_Symbol,_Period,13);

              4ème étape : Nous remplissons le tableau créé en utilisant la fonction "CopyBuffer" pour obtenir les données de l'indicateur Bulls Power. Voici les paramètres de cette fonction :

              indicator_handle : pour le handle de l'indicateur, nous utiliserons bullpowerDef.     

              buffer_num : le numéro du buffer de l'indicateur, nous utiliserons 0.

              start_pos : la position de départ, nous utiliserons 0.         

              count : le nombre d’éléments à copier, nous utiliserons 3.                

              buffer[] : le tableau cible à copier, nous utiliserons bullpowerArray.

              CopyBuffer(bullpowerDef,0,0,3,bullpowerArray);

              5ème étape : Nous récupérons la valeur "bullpowerVal" de la fonction "NormalizeDouble" pour renvoyer une valeur de type double. Voici les paramètres de cette fonction :

              value : nous utiliserons bullpowerArray[0] comme valeur normalisée.

              digits : nous utiliserons 6 comme nombre de chiffres après la virgule.

              double bullpowerVal = NormalizeDouble(bullpowerArray[0],6);

              Sixième étape : nous utilisons la fonction comment pour générer un commentaire sur le graphique avec la valeur actuelle du Bulls Power :

              Comment("Bull's Power Value is ",bullpowerVal);

              Voici le code complet des étapes précédentes :

              //+------------------------------------------------------------------+
              //|                                          Simple Bull's Power.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()
                {
                 double bullpowerArray[];
              
                 ArraySetAsSeries(bullpowerArray,true);
              
                 int bullpowerDef = iBullsPower(_Symbol,_Period,13);
              
                 CopyBuffer(bullpowerDef,0,0,3,bullpowerArray);
              
                 double bullpowerVal = NormalizeDouble(bullpowerArray[0],6);
              
                 Comment("Bull's Power Value is ",bullpowerVal);
              
                }
              //+------------------------------------------------------------------+

              Après avoir compilé ce code, l'expert est visible dans la fenêtre du navigateur comme suit :

              Bulls Power dans la Navigator

              En double-cliquant sur Bulls Power Simple pour l'exécuter dans le terminal MetaTrader 5, sa fenêtre est affichée :

              Fenêtre Bulls Power Simple

              Après avoir appuyé sur "OK", l'Expert est attaché au graphique de la manière suivante :

              Bulls Power Simple attaché

              Comme nous pouvons le voir sur le graphique précédent dans le coin supérieur droit, l'expert est attaché au graphique. Nous sommes maintenant prêts à voir sur le graphique le commentaire automatique avec la valeur du Bulls Power, comme dans l'exemple de test suivant : 

              Signal Bulls Power Simple

              Comme nous pouvons le voir sur le graphique précédent, dans le coin supérieur gauche, la valeur actuelle du Bulls Power est affichée sous forme de commentaire.

              • Première stratégie : Mouvement du Bulls Power

              Voici le code complet permettant de créer un système de trading basé sur cette stratégie :

              //+------------------------------------------------------------------+
              //|                                         Bulls Power 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()
                {
                 double bullpowerArray[];
              
                 ArraySetAsSeries(bullpowerArray,true);
              
                 int bullpowerDef = iBullsPower(_Symbol,_Period,13);
              
                 CopyBuffer(bullpowerDef,0,0,3,bullpowerArray);
              
                 double bullpowerVal = NormalizeDouble(bullpowerArray[0],6);
                 double bullpowerPrevVal = NormalizeDouble(bullpowerArray[1],6);
              
                 if(bullpowerVal>bullpowerPrevVal)
                   {
                    Comment("Bull's Power is rising","\n",
                            "Bull's Power Value is ",bullpowerVal,"\n",
                            "Bull's Power Previous Value is ",bullpowerPrevVal);
                   }
              
                 if(bullpowerVal<bullpowerPrevVal)
                   {
                    Comment("Bull's Power is declining","\n",
                            "Bull's Power Value is ",bullpowerVal,"\n",
                            "Bull's Power Previous Value is ",bullpowerPrevVal);
                   }
                }
              //+------------------------------------------------------------------+

              Voici les différences dans ce code :

              Définition de la valeur actuelle du Bulls Power "bullpowerVal" et de la valeur précédente "bullpowerPrevVal" :

                 double bullpowerVal = NormalizeDouble(bullpowerArray[0],6);
                 double bullpowerPrevVal = NormalizeDouble(bullpowerArray[1],6);

              Conditions de la stratégie :

              En cas de hausse :

                 if(bullpowerVal>bullpowerPrevVal)
                   {
                    Comment("Bull's Power is rising","\n",
                            "Bull's Power Value is ",bullpowerVal,"\n",
                            "Bull's Power Previous Value is ",bullpowerPrevVal);
                   }

              En cas de baisse :

                 if(bullpowerVal<bullpowerPrevVal)
                   {
                    Comment("Bull's Power is declining","\n",
                            "Bull's Power Value is ",bullpowerVal,"\n",
                            "Bull's Power Previous Value is ",bullpowerPrevVal);
                   }

              Après la compilation, l'expert est affiché dans la fenêtre du navigateur :

              Bulls Power dans le Navigator

              En le glissant et le déposant sur le graphique désiré, sa fenêtre est affichée comme suit :

              Fenêtre du Mouvement du Bulls Power

              Après avoir appuyé sur "OK", l'expert est attaché au graphique :

              Mouvement du Bulls Power attaché

              Comme nous pouvons le voir dans le graphique précédent dans le coin supérieur droit du graphique, l'expert est attaché au graphique et nous sommes maintenant prêts à recevoir ses signaux.

              En cas de hausse, avec les données actuelles :

              Mouvement du Bulls Power - en hausse - données actuelles

              Comme nous pouvons le voir dans la partie supérieure du graphique précédent, nous avons généré un signal de hausse, la valeur actuelle du Bulls Power et sa valeur précédente. Dans la fenêtre des données, nous pouvons voir la valeur actuelle du Bulls Power.

              En cas de hausse, avec les données précédentes :

              Mouvement du Bulls Power - en hausse - données précédentes

              Comme nous pouvons le voir sur le graphique précédent, nous ne pouvons trouver que la différence dans la fenêtre des données car nous pouvons trouver la valeur précédente du Bulls Power.

              En cas de baisse, avec les données actuelles :

              Mouvement du Bulls Power - en baisse - données actuelles

              Comme nous pouvons le voir dans la partie supérieure du graphique précédent, nous avons généré un signal de baisse, la valeur actuelle du Bulls Power et sa valeur précédente. Dans la fenêtre des données, nous pouvons voir la valeur actuelle du Bulls Power.

              En cas de baisse, avec les données précédentes :

              Mouvement du Bulls Power - en baisse - données précédentes

              Comme nous pouvons le voir sur le graphique précédent, nous pouvons trouver la seule différence dans la fenêtre des données puisque nous pouvons trouver la dernière valeur du Bulls Power.

              • Deuxième stratégie : Bulls Power - Fort ou divergence

              Voici le code complet permettant de créer un système de trading basé sur cette stratégie :

              //+------------------------------------------------------------------+
              //|                          Bull's Power - Strong or Divergence.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()
                {
                 double bullpowerArray[];
                 MqlRates priceArray[];
              
                 ArraySetAsSeries(bullpowerArray,true);
                 int Data=CopyRates(_Symbol,_Period,0,3,priceArray);
              
                 int bullpowerDef = iBullsPower(_Symbol,_Period,13);
              
                 CopyBuffer(bullpowerDef,0,0,3,bullpowerArray);
              
                 double bullpowerVal = NormalizeDouble(bullpowerArray[0],6);
                 double bullpowerPrevVal = NormalizeDouble(bullpowerArray[1],6);
              
                 double currentHighVal=NormalizeDouble(priceArray[2].high,6);
                 double prevHighVal=NormalizeDouble(priceArray[1].high,6);
              
                 if(currentHighVal>prevHighVal && bullpowerVal>bullpowerPrevVal)
                   {
                    Comment("Strong Move","\n",
                            "Current High Value is ",currentHighVal,"\n",
                            "Previous High Value is ",prevHighVal,"\n",
                            "Bull's Power Value is ",bullpowerVal,"\n",
                            "Bull's Power Previous Value is ",bullpowerPrevVal);
                   }
              
                 if(currentHighVal>prevHighVal && bullpowerVal<bullpowerPrevVal)
                   {
                    Comment("Bearish divergence","\n",
                            "Current High Value is ",currentHighVal,"\n",
                            "Previous High Value is ",prevHighVal,"\n",
                            "Bull's Power Value is ",bullpowerVal,"\n",
                            "Bull's Power Previous Value is ",bullpowerPrevVal);
                   }
                }
              //+------------------------------------------------------------------+

              Les différences dans ce code seront les suivantes :

              Création de deux tableaux, bullpowerArray et priceArray :

                 double bullpowerArray[];
                 MqlRates priceArray[];

              Tri des tableaux créés avec la fonction "ArraySetAsSeries" pour le tableau bullpower : Pour le tableau des prix, nous utiliserons la fonction "CopyRates" pour obtenir les données historiques de "MqlRates". Ses paramètres sont les suivants :

              • nom du symbole : nous utiliserons _Symbol
              • timeframe : nous utiliserons _Period
              • heure de début : nous utiliserons 0
              • heure de fin : nous utiliserons 3
              • tableau des taux: nous utiliserons priceArray
                 ArraySetAsSeries(bullpowerArray,true);
                 int Data=CopyRates(_Symbol,_Period,0,3,priceArray);

              Définition des valeurs actuelle et précédente du Bulls Power à l'aide de la fonction "NormalizeDouble".

                 double bullpowerVal = NormalizeDouble(bullpowerArray[0],6);
                 double bullpowerPrevVal = NormalizeDouble(bullpowerArray[1],6);
              
                 double currentHighVal=NormalizeDouble(priceArray[2].high,6);
                 double prevHighVal=NormalizeDouble(priceArray[1].high,6);

              Les conditions de la stratégie sont :

              En cas de mouvement fort :

                 if(currentHighVal>prevHighVal && bullpowerVal>bullpowerPrevVal)
                   {
                    Comment("Strong Move","\n",
                            "Current High Value is ",currentHighVal,"\n",
                            "Previous High Value is ",prevHighVal,"\n",
                            "Bull's Power Value is ",bullpowerVal,"\n",
                            "Bull's Power Previous Value is ",bullpowerPrevVal);
                   }

              En cas de divergence baissière :

                 if(currentHighVal>prevHighVal && bullpowerVal<bullpowerPrevVal)
                   {
                    Comment("Bearish divergence","\n",
                            "Current High Value is ",currentHighVal,"\n",
                            "Previous High Value is ",prevHighVal,"\n",
                            "Bull's Power Value is ",bullpowerVal,"\n",
                            "Bull's Power Previous Value is ",bullpowerPrevVal);
                   }

              Après avoir compilé ce code, l'expert est visible dans la fenêtre du Navigateur :

              Bulls Power dans le Navigator 2

              En double-cliquant sur cet Expert pour l'exécuter, sa fenêtre est affichée telle que la suivante :

              Fenêtre Bulls Power - Fort ou divergence

              Après avoir appuyé sur "OK", l'Expert est attaché comme ci-dessous :

              Bulls Power - Fort ou divergence attaché

              Comme nous pouvons le voir dans le coin supérieur droit, l'expert est attaché et nous sommes prêts à recevoir ses signaux comme dans le cas suivant.

              Dans le cas d'un mouvement fort, avec les données actuelles :

              Bulls Power - Fort ou Divergence - fort - données actuelles

              Comme nous pouvons le voir sur le graphique, nous avons le signal désiré tel que nous le souhaitons avec un commentaire et les valeurs suivantes :

              • Mouvement fort
              • Plus Haut actuel
              • Plus Haut précédent
              • Valeur actuelle du Bulls Power
              • Valeur précédente du Bulls Power 

              En cas d’indicateur fort, avec les données précédentes :

              Bulls Power - Fort ou Divergence - fort - données précédentes

              Comme nous pouvons le voir sur le graphique précédent, nous avons le commentaire comme signal sur le graphique avec les mêmes valeurs, mais la différence est la fenêtre des données précédentes.

              En cas de divergence baissière avec les données actuelles :

              Bulls Power - Fort ou Divergence - divergence baissière - données actuelles

              Comme nous pouvons le voir sur le graphique précédent, un commentaire est affiché sur le graphique avec les valeurs suivantes :

              • Divergence baissière
              • Plus Haut actuel
              • Plus Haut précédent
              • Valeur actuelle du Bulls Power
              • Valeur précédente du Bulls Power  

              En cas de divergence baissière avec les données précédentes :

              Bulls Power - Fort ou Divergence - divergence baissière - données précédentes

              Comme nous pouvons le voir sur le graphique précédent, nous avons un commentaire sur le graphique avec la même valeur, mais ici nous pouvons trouver la fenêtre des données précédentes.

              • 3ème stratégie : Signaux du Bulls Power

              Voici le code complet permettant de créer un système de trading basé sur cette stratégie :

              //+------------------------------------------------------------------+
              //|                                         Bulls' Power signals.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()
                {
                 double bullpowerArray[];
                 double maArray[];
                 MqlRates priceArray[];
              
                 ArraySetAsSeries(bullpowerArray,true);
                 ArraySetAsSeries(maArray,true);
                 int Data=CopyRates(_Symbol,_Period,0,3,priceArray);
              
                 int bullpowerDef = iBullsPower(_Symbol,_Period,13);
                 int maDef = iMA(_Symbol,_Period,13,0,MODE_EMA,PRICE_CLOSE);
              
                 CopyBuffer(bullpowerDef,0,0,3,bullpowerArray);
                 CopyBuffer(maDef,0,0,3,maArray);
              
                 double bullpowerVal = NormalizeDouble(bullpowerArray[0],6);
              
                 double emaVal = NormalizeDouble(maArray[0],6);
              
                 double currentClose=NormalizeDouble(priceArray[2].close,6);
              
                 if(bullpowerVal<0 && currentClose<emaVal)
                   {
                    Comment("Sell Signal","\n",
                            "Current Close Value is ",currentClose,"\n",
                            "Current EMA Value is ",emaVal,"\n",
                            "Bull's Power Value is ",bullpowerVal);
                   }
              
                 if(bullpowerVal>0 && currentClose>emaVal)
                   {
                    Comment("Buy Signal","\n",
                            "Current Close Value is ",currentClose,"\n",
                            "Current EMA Value is ",emaVal,"\n",
                            "Bull's Power Value is ",bullpowerVal);
                   }
                }
              //+------------------------------------------------------------------+

              Voici les différences dans ce code :

              Création de 3 tableaux, bullpowerArray, maArray et priceArray :

                 double bullpowerArray[];
                 double maArray[];
                 MqlRates priceArray[];

              Tri de ces 3 tableaux créés :

                 ArraySetAsSeries(bullpowerArray,true);
                 ArraySetAsSeries(maArray,true);
                 int Data=CopyRates(_Symbol,_Period,0,3,priceArray);

              Définition de l'indicateur Bulls Power en utilisant la fonction "iBullsPower" comme nous l'avons mentionné précédemment, après avoir créé une variable entière pour "bullpowerDef", et l'indicateur Moving Average en utilisant la fonction "iMA" qui renvoie le handle de l'indicateur de moyenne mobile après avoir créé une variable entière pour "maDef".

                 int bullpowerDef = iBullsPower(_Symbol,_Period,13);
                 int maDef = iMA(_Symbol,_Period,13,0,MODE_EMA,PRICE_CLOSE);

              Remplissage du tableau en utilisant la fonction "CopyBuffer" pour obtenir les données des indicateurs Bulls Power et moyenne mobile :

                 CopyBuffer(bullpowerDef,0,0,3,bullpowerArray);
                 CopyBuffer(maDef,0,0,3,maArray);

              Définition de la puissance haussière actuelle, de la moyenne mobile exponentielle et du cours de clôture actuel :

                 double bullpowerVal = NormalizeDouble(bullpowerArray[0],6);
                 double emaVal = NormalizeDouble(maArray[0],6);
                 double currentClose=NormalizeDouble(priceArray[2].close,6);

              Conditions de cette stratégie :

              En cas de signal de vente

                 if(bullpowerVal<0 && currentClose<emaVal)
                   {
                    Comment("Sell Signal","\n",
                            "Current Close Value is ",currentClose,"\n",
                            "Current EMA Value is ",emaVal,"\n",
                            "Bull's Power Value is ",bullpowerVal);
                   }

              Dans le cas d'un signal d'achat :

                 if(bullpowerVal>0 && currentClose>emaVal)
                   {
                    Comment("Buy Signal","\n",
                            "Current Close Value is ",currentClose,"\n",
                            "Current EMA Value is ",emaVal,"\n",
                            "Bull's Power Value is ",bullpowerVal);
                   }

              Après avoir compilé ce code, nous trouverons l'expert dans la fenêtre du Navigateur comme suit :

              Bulls Power dans le Navigator 3

              En double-cliquant sur l'expert à exécuter sur le graphique, sa fenêtre est affichée comme suit :

              Fenêtre Signaux du Bulls Power

              Après avoir appuyé sur "OK", l'expert est attaché au graphique de la manière suivante :

              Signaux du Bulls Power attaché

              Nous pouvons voir que l'expert des signaux du Bulls Power est attaché au graphique dans le coin supérieur droit. Ensuite, nous sommes prêts à recevoir des signaux basés sur cette stratégie de trading comme suit :

              Dans le cas d'un signal de vente :

              Signaux du Bulls Power - Vente

              Comme nous pouvons le voir sur le graphique, nous avons un commentaire avec les valeurs suivantes :

              • Signal de vente
              • Valeur de clôture actuelle
              • Valeur actuelle de l'EMA
              • Valeur du Bulls Power

              En cas de signal d'achat :

              Signaux du Bulls Power - achat

              Comme nous pouvons le voir sur le graphique, le signal désiré se présente sous la forme d'un commentaire sur le graphique avec les valeurs suivantes :

              • Signal d'achat
              • Valeur de clôture actuelle
              • Valeur actuelle de l'EMA
              • Valeur du Bulls Power

              Nous avons maintenant créé un système de trading pour chaque stratégie afin de générer des signaux automatisés.

              Conclusion

              J'espère que nous avons bien couvert cet indicateur à travers les thèmes précédents. Nous avons appris plus en détail ce qu'est l'indicateur Bulls Power, ce qu'il mesure, comment nous pouvons le calculer, comment nous pouvons le lire, et comment nous pouvons l’insérer et l’utiliser dans MetaTrader 5. Nous avons ensuite appris à utiliser cet indicateur en nous basant sur le concept de base qui le sous-tend à travers quelques stratégies simples. L'objectif de base de ces stratégies est d'apprendre comment nous pouvons utiliser cet indicateur. Vous devez les tester avant de les utiliser sur votre compte réel pour vous assurer qu'elles sont adaptées à votre style de trading afin de générer des profits grâce à elles. Ces stratégies étaient les suivantes :

              • Mouvement du Bulls Power : cette stratégie peut être utilisée pour déterminer la direction de l'indicateur Bulls Power, s'il est à la hausse ou à la baisse.
              • Bulls Power - Fort ou divergence : il peut être utilisé pour déterminer si nous avons un mouvement fort ou une divergence baissière.
              • Signaux du Bulls Power : il peut être utilisé pour nous donner des signaux d'achat ou de vente.

              Ensuite, nous avons conçu un plan étape par étape pour chaque stratégie afin de nous aider à créer un système de trading en douceur après avoir organisé nos idées à l'aide de ces plans. Nous avons ensuite appris à créer un système de trading pour chaque stratégie mentionnée afin d'obtenir des signaux automatiquement après les avoir codés sur MQL5 pour être exécutés sur le terminal de trading MetaTrader 5. J'espère que vous avez appliqué et essayé d'écrire les codes mentionnés par vous-même pour améliorer vos compétences en matière de codage si vous le souhaitez, ce qui améliorera votre courbe d'apprentissage en tant que programmeur.

              J'espère également que cet article vous sera utile pour améliorer votre trading et vos résultats. Si vous souhaitez lire d'autres articles similaires sur l'apprentissage de la conception d'un système de trading basé sur les indicateurs techniques les plus populaires, vous pouvez lire mes autres articles dans cette série. Nous avons partagé de nombreux indicateurs techniques dans ces articles et conçu des systèmes de trading basés sur eux et sur le concept de base qui les sous-tend à travers des stratégies simples.

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

              Apprendre à concevoir un système de trading basé sur le VIDYA Apprendre à concevoir un système de trading basé sur le VIDYA
              Bienvenue dans ce nouvel article de notre série consacrée à l'apprentissage de la conception d'un système de trading à l'aide des indicateurs techniques les plus populaires. Dans cet article, nous allons découvrir un nouvel outil technique et apprendre à concevoir un système de trading à l'aide de la Moyenne Dynamique à Indice Variable, ou en anglais le Variable Index Dynamic Average (VIDYA).
              Développer un Expert Advisor de trading à partir de zéro (Partie 21) : Nouveau système d'ordres (IV) Développer un Expert Advisor de trading à partir de zéro (Partie 21) : Nouveau système d'ordres (IV)
              Le système visuel commence enfin à fonctionner, même s'il n'est pas encore achevé. Nous allons terminer ici les principales modifications. Il y en aura plusieurs, mais elles sont toutes nécessaires. L'ensemble du travail sera très intéressant.
              Algorithmes d'optimisation de la population : Algorithme d'Optimisation du Loup Gris - Grey Wolf Optimizer (GWO) Algorithmes d'optimisation de la population : Algorithme d'Optimisation du Loup Gris - Grey Wolf Optimizer (GWO)
              Considérons l'un des algorithmes d'optimisation modernes les plus récents : le Grey Wolf Optimization. Le comportement original sur les fonctions de test fait de cet algorithme l'un des plus intéressants parmi ceux considérés précédemment. C'est l'un des meilleurs algorithmes à utiliser dans la formation de réseaux de neurones, des fonctions fluides avec de nombreuses variables.
              Algorithmes d'optimisation de la population : Colonie d'Abeilles Artificielles (ABC) Algorithmes d'optimisation de la population : Colonie d'Abeilles Artificielles (ABC)
              Dans cet article, nous étudierons l'algorithme d'une colonie d'abeilles artificielles. Nous compléterons nos connaissances avec de nouveaux principes d'étude des espaces fonctionnels. Dans cet article, je présenterai mon interprétation de la version classique de l'algorithme.