Apprendre à concevoir un système de trading basé sur DeMarker
Introduction
Ce nouvel article de notre série est consacré à l'apprentissage de la conception de systèmes de trading basés sur les indicateurs techniques les plus populaires. Nous apprendrons en détail un nouvel outil technique ou un nouvel indicateur qui peut être utilisé en notre faveur dans le trading. Cet indicateur est l'indicateur DeMarker, que nous aborderons dans les rubriques suivantes :
- Définition du DeMarker
- Stratégie DeMarker
- Plan de la stratégie DeMarker
- Système de trading DeMarker
- Conclusion
Nous utiliserons le terminal de trading MetaTrader 5 et MQL5 qui est intégré dans le terminal pour écrire le code du système de trading et le tester. Si vous ne savez pas comment télécharger et utiliser MetaTrader 5, vous pouvez lire la rubrique Écrire du code MQL5 dans MetaEditor d'un article précédent pour en savoir plus.
Je vous conseille de mettre en pratique ce que vous apprenez dans cet article si vous voulez développer vos compétences en trading et en programmation et en tirer le maximum de bénéfices. La pratique est un facteur très important dans toute étape d'apprentissage. J'aimerais mentionner et confirmer que l'objectif principal des stratégies mentionnées est d'apprendre le concept principal derrière l'indicateur. L'objectif principal est donc uniquement éducatif et vous devez tester toute stratégie avant de l'utiliser sur un compte réel pour vous assurer qu'elle sera rentable ou adaptée à votre activité 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.
Définition du DeMarker
Si nous voulons identifier et connaître plus en détail l'indicateur DeMarker, nous devons apprendre ce qu'il est, ce qu'il mesure, comment nous pouvons le calculer et comment nous pouvons le lire pour l'utiliser en notre faveur. L'indicateur DeMarker est un oscillateur technique créé par l'analyste technique Thomas DeMark. Il est clair que le nom de cet indicateur provient de son créateur et qu'il est également connu sous le nom d'indicateur "DeM". Cet indicateur technique mesure la demande pour l'instrument et évalue la tendance directionnelle du marché en comparant les prix maximum et minimum actuels aux prix précédents.
Pour calculer cet indicateur manuellement, nous pouvons suivre les étapes suivantes :
DMark (i) = SMA (DeMax, N) / (SMA (DeMax, N) + SMA (DeMin, N))
Avec :
- DMark (i) = la valeur actuelle du DeMark.
- SMA = moyenne mobile simple
- DeMax = la valeur maximale du DeMark
- N = la période utilisée
- DeMin = la valeur minimale du DeMark
Le DeMax peut être calculé comme suit :
DeMax (i) = HIGH (i) - HIGH (i - 1)
Sinon :
DeMax (i) = 0
Le DeMin peut être calculé par :
DeMin (i) = LOW (i - 1) - LOW (i)
Sinon :
DeMin (i) = 0
Après avoir calculé l'indicateur, nous pouvons constater qu'il produit une ligne d'oscillateur entre 0 et 1. Il n'est plus nécessaire aujourd’hui de le calculer manuellement car il est intégré à la plateforme de trading MetaTrader 5. Il suffit de le choisir parmi les indicateurs disponibles pour l'insérer dans le graphique et le lire.
Voici comment insérer l’indicateur technique DeMarker dans MetaTrader 5 :
Dans le terminal de trading MetaTrader 5, aller dans sur Insertion --> Indicateurs --> Oscillateurs --> DeMarker.
La fenêtre des paramètres de cet indicateur est alors affichée comme suit :
1 - détermine la période.
2 - définit la couleur de la ligne de l'indicateur.
3 - définit le style de ligne de l'indicateur.
4 - définit l'épaisseur du trait de l'indicateur.
Après avoir réglé les paramètres précédents et appuyé sur "OK", l'indicateur sera inséré dans le graphique de la manière suivante :
Comme nous le voyons dans la partie inférieure du graphique précédent, l'indicateur est attaché et nous avons une ligne d'oscillateur entre 0 et 1. Nous pouvons lire cet indicateur en déterminant la position de la ligne dans la zone mentionnée. Si l'indicateur s'approche de 0,70, cela signifie que nous avons une situation de sur-achat. Et si l'indicateur s'approche de 0,30, cela signifie que nous avons une situation de sur-vente.
Stratégie DeMarker
Nous devons maintenant apprendre à utiliser l'indicateur DeMarker en nous basant sur son concept principal. Nous allons donc apprendre à l'utiliser grâce à 3 stratégies simples.
Sur la base de cette stratégie, nous devons obtenir des signaux fort ou faible du DeMarker en observant la valeur de l’indicateur DeMarker et la moyenne de ses 5 dernières périodes. Si la valeur actuelle de l'indicateur DeMarker est supérieure aux 5 dernières périodes du DeMarker, il s'agit d'un signal de force. Dans l'autre cas, si la valeur actuelle de l'indicateur est inférieure aux 5 dernières périodes du DeMarker, il s'agit d'un signal de faiblesse.
Plus simplement :
Valeur du DeMarker >= AVG(5 périodes du DeMarker) --> DeMarker fort
Valeur du DeMarker <= AVG(5 périodes du DeMarker) --> DeMarker faible
Sur la base de cette stratégie, nous devons recevoir des signaux lorsque l'indicateur atteint des zones de sur-achat et de sur-vente. Si la valeur actuelle du DeMarker est supérieure ou égale au niveau 0,70, il s'agit d'un signal d'approche d'une zone de sur-achat. Si la valeur actuelle du DeMarker est inférieure au niveau 0,30, ce sera un signal d'approche d'une zone de sur-vente.
Plus simplement :
Valeur de DeMarker >= 0,70 --> Sur-achat
Valeur de DeMarker <= 0,30 --> Sur-vente
Sur la base de cette stratégie, nous devons obtenir des signaux de divergence haussière ou baissière qui donnent une idée de la probabilité d'un changement du mouvement actuel. Nous devons obtenir ces signaux en observant 4 valeurs : le sommet actuel, le sommet précédent, le DeMarker actuel et le DeMarker précédent. Il est bon de mentionner qu'il s'agit d'une situation simple de divergence. Mais la plus efficace est de comparer et d'observer les hauts et les bas des prix avec les hauts et les bas de l'indicateur. Dans cette situation simple, nous devons obtenir un signal de divergence baissière si le sommet actuel est supérieur au sommet précédent et que le DeMarker actuel est inférieur à la valeur précédente du DeMarker. Dans l'autre cas, si le plus bas actuel est plus bas que le plus bas précédent et que la valeur actuelle du DeMarker est plus grande que la précédente, il s'agira d'un signal de divergence haussière.
Plus simplement :
Plus Haut actuel > Plus Haut précédent, et DeMarker actuel < DeMarker précédent --> divergence baissière
Plus Bas actuel < Plus Bas précédent, et DeMarker actuel > DeMarker précédent --> divergence haussière
Plan de la stratégie DeMarker
Nous avons appris à utiliser l'indicateur DeMarker à l'aide de stratégies simples. Dans cette rubrique, nous allons maintenant créer un plan simple pour chacune afin de nous aider à créer un système de trading.
Selon cette stratégie, nous devons créer un système de trading qui peut être utilisé pour vérifier automatiquement 2 valeurs après les avoir créées ou définies. Ces valeurs sont les valeurs actuelles du DeMarker et ses 5 dernières valeurs moyennes. Si la valeur actuelle est supérieure à la moyenne, le système doit renvoyer les valeurs suivantes sous forme de commentaire sur le graphique :
- DeMarker fort
- Valeur actuelle du DeMarker
- Valeur moyenne sur 5 périodes du DeMarker
Dans l'autre scénario, si la valeur actuelle est inférieure à la moyenne, le système doit renvoyer les valeurs suivantes :
- DeMarker faible
- Valeur actuelle du DeMarker
- Valeur moyenne sur 5 périodes du DeMarker
Selon cette stratégie, nous devons créer un système de trading qui peut être utilisé pour générer nos signaux sur la base de conditions spécifiques. Le système de trading doit vérifier en permanence 3 valeurs : la valeur actuelle du DeMarker, le niveau 0,70 et le niveau 0,30. Si la valeur actuelle du DeMarker est supérieure ou égale au niveau 0,70, le système doit renvoyer les valeurs suivantes sous forme de commentaire sur le graphique :
- Sur-achat
- Valeur du DeMarker
Dans l'autre scénario, si la valeur actuelle du DeMarker est inférieure ou égale au niveau 0,30, le système 4doit renvoyer les valeurs suivantes sur le graphique :
- Survente
- Valeur du DeMarker
Selon cette stratégie, nous devons créer un système de trading pouvant être utilisé pour générer des signaux de divergences haussières ou baissières en vérifiant 4 valeurs en permanence. Si le sommet actuel est supérieur au sommet précédent et que la valeur actuelle du DeMarker est inférieure à sa valeur précédente, le système de trading doit renvoyer les valeurs suivantes sous forme de commentaire sur le graphique :
- Divergence baissière.
- Plus Haut actuel
- Plus Haut précédent
- Valeur actuelle du DeMarker
- Valeur précédente de DeMarker
Dans l'autre scénario, si la valeur basse actuelle est inférieure à la valeur basse précédente et que la valeur DeMarker actuelle est supérieure à sa valeur précédente, le système doit renvoyer les valeurs suivantes sur le graphique :
- Divergence haussière
- Plus Haut actuel
- Plus Haut précédent
- Valeur actuelle du DeMarker
- Valeur précédente de DeMarker
Système de trading DeMarker
Dans cette partie, nous allons créer un système de trading pour chaque stratégie mentionnée à exécuter dans MetaTrader 5 pour générer des signaux automatiques. Nous allons tout d’abord créer un système de trading simple qui servira de base à toutes les stratégies mentionnées. Ce système génère la valeur actuelle de l'indicateur DeMarker sous forme de commentaire sur le graphique. Voici comment créer ce système à l'aide des lignes de code suivantes :
Première étape :
Créer un tableau deMarkerArray d’éléments de type "double" :
double deMarkerArray[];
2ème étape :
Utiliser la fonction "ArraySetAsSeries" pour attribuer l'indicateur AS_SERIES au tableau deMarkerArray :
ArraySetAsSeries(deMarkerArray,true);
3ème étape :
Définir l'indicateur en utilisant la fonction "iDeMarker" qui renvoie un handle de l'indicateur DeMarker : Ses paramètres sont :
- symbol : pour déterminer le symbole, nous utiliserons _Symbol pour appliquer le symbole courant.
- period : pour déterminer la période, nous utiliserons _period pour appliquer la période actuelle.
- ma_period : pour déterminer la période de calcul de la moyenne, nous utiliserons 14.
int deMarkerDef = iDeMarker(_Symbol,_Period,14);
4ème étape :
Récupérer les données du buffer de l'indicateur DeMarker en utilisant la fonction "CopyBuffer. Ses paramètres sont :
- indicator_handle : nous utiliserons le deMarkerDef de l'indicateur prédéfini.
- buffer_num : pour déterminer le numéro du buffer de l'indicateur, nous utiliserons 0.
- start_pos : pour déterminer la position de départ, nous utiliserons 0.
- count: pour déterminer le nombre d’éléments à copier, nous utiliserons 3.
- buffer[] : pour déterminer le tableau cible à copier, nous utiliserons deMarekerArray.
CopyBuffer(deMarkerDef,0,0,3,deMarkerArray);
5ème étape :
Définir la valeur actuelle du deMarker en utilisant la fonction "NormalizeDouble" pour renvoyer une valeur de type double. Ses paramètres sont :
- value : pour déterminer le nombre normalisé.
- digits : pour déterminer le nombre de chiffres après la décimale.
double deMarkerVal = NormalizeDouble(deMarkerArray[0],6);
Sixième étape :
Utilisation de la fonction "comment" pour renvoyer la valeur de l'indicateur DeMarker actuel sous forme de commentaire sur le graphique.
Comment("DeMarker Value is ",deMarkerVal);
Voici le code complet de ce système de trading :
//+------------------------------------------------------------------+ //| Simple DeMarker System.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() void OnTick() { double deMarkerArray[]; ArraySetAsSeries(deMarkerArray,true); int deMarkerDef = iDeMarker(_Symbol,_Period,14); CopyBuffer(deMarkerDef,0,0,3,deMarkerArray); double deMarkerVal = NormalizeDouble(deMarkerArray[0],6); Comment("DeMarker Value is ",deMarkerVal); } //+------------------------------------------------------------------+
Après avoir compilé ce code, l'expert sera visible dans le Navigateur :
En glissant et déposant l'expert sur le graphique, sa fenêtre est alors affichée comme suit :
Après avoir appuyé sur "OK", l'expert est attaché au graphique de la manière suivante :
Comme nous pouvons le voir dans le coin supérieur droit du graphique, le système DeMarker Simple est attaché. Nous sommes maintenant prêts à obtenir les signaux souhaités selon cette stratégie. Les étapes précédentes seront les mêmes pour compiler tous les codes de la stratégie mentionnée pour les exécuter dans MetaTrader 5.
Voici les signaux générés lors des tests effectués dans le cadre de ce système de trading simple :
Comme nous pouvons le voir sur le graphique dans le coin supérieur gauche, la valeur actuelle de l'indicateur DeMarker est affichée.
Voici le code complet permettant de créer un système de trading basé sur cette stratégie :
//+------------------------------------------------------------------+ //| DeMarker 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() { double deMarkerArray[]; ArraySetAsSeries(deMarkerArray,true); int deMarkerDef = iDeMarker(_Symbol,_Period,14); CopyBuffer(deMarkerDef,0,0,6,deMarkerArray); double deMarkerVal = NormalizeDouble(deMarkerArray[0],4); double deMarkerVal1 = NormalizeDouble(deMarkerArray[1],4); double deMarkerVal2 = NormalizeDouble(deMarkerArray[2],4); double deMarkerVal3 = NormalizeDouble(deMarkerArray[3],4); double deMarkerVal4 = NormalizeDouble(deMarkerArray[4],4); double deMarkerVal5 = NormalizeDouble(deMarkerArray[5],4); double deMarkerAvgVal = (deMarkerVal1+deMarkerVal2+deMarkerVal3+deMarkerVal4+deMarkerVal5)/5; if(deMarkerVal>deMarkerAvgVal) { Comment("DeMarker is strong","\n", "Current DeMarker Value is ",deMarkerVal,"\n", "AVG DeMarker Value is ",deMarkerAvgVal); } if(deMarkerVal<deMarkerAvgVal) { Comment("DeMarker is weak","\n", "Current DeMarker Value is ",deMarkerVal,"\n", "AVG DeMarker Value is ",deMarkerAvgVal); } } //+------------------------------------------------------------------+
Voici les différences dans ce code :
Définition des 5 dernières valeurs du deMarker à l'aide de la fonction "NormalizeDouble" après avoir défini la valeur actuelle du deMarker à l'aide de la même fonction.
double deMarkerVal = NormalizeDouble(deMarkerArray[0],4); double deMarkerVal1 = NormalizeDouble(deMarkerArray[1],4); double deMarkerVal2 = NormalizeDouble(deMarkerArray[2],4); double deMarkerVal3 = NormalizeDouble(deMarkerArray[3],4); double deMarkerVal4 = NormalizeDouble(deMarkerArray[4],4); double deMarkerVal5 = NormalizeDouble(deMarkerArray[5],4);
Calcul de deMarkerAvgVal sur la base des 5 dernières valeurs du deMarker en utilisant la fonction "double" pour créer une variable deMarkerAvgVal égale à la somme des 5 dernières valeurs calculées, puis les diviser par 5 pour obtenir la valeur moyenne.
double deMarkerAvgVal = (deMarkerVal1+deMarkerVal2+deMarkerVal3+deMarkerVal4+deMarkerVal5)/5;
Définition des conditions de la stratégie
en comparant la valeur actuelle du deMarker à la valeur deMarkerAvg. Dans le cas d'un signal fort du deMarker, nous devons vérifier que la valeur actuelle du deMarker est supérieure à la valeur deMarkerAvg. Nous utiliserons la condition "if". Sa syntaxe est la suivante :
if(expression) --> opérateur
Dans le cas d'un cas fort, lorsque deMarkerVal est supérieur à deMarkerAvgVal (l’expression), le système de trading doit renvoyer un signal de force sous la forme d’un commentaire sur le graphique (l’opérateur).
if(deMarkerVal>deMarkerAvgVal) { Comment("DeMarker is strong","\n", "Current DeMarker Value is ",deMarkerVal,"\n", "AVG DeMarker Value is ",deMarkerAvgVal); }
En cas de faiblesse du deMarker, nous devons voir que la valeur actuelle du deMarker est inférieure à la valeur deMarkerAvg (l'expression), son opérateur doit donc renvoyer un commentaire sur le graphique avec la faiblesse et les autres valeurs, chaque valeur sur une ligne séparée.
if(deMarkerVal<deMarkerAvgVal) { Comment("DeMarker is weak","\n", "Current DeMarker Value is ",deMarkerVal,"\n", "AVG DeMarker Value is ",deMarkerAvgVal); }
Après avoir compilé ce code et l'avoir exécuté à partir du Navigateur comme précédemment, l'expert de cette stratégie est attaché comme suit :
Comme nous pouvons le voir dans le coin supérieur droit, l'expert de cette stratégie est attaché au graphique Nous sommes prêts à obtenir des signaux comme dans les exemples suivants de tests.
En cas de signal fort :
Comme nous pouvons le voir sur le graphique dans le coin supérieur gauche, ce système de trading a généré un signal basé sur la stratégie de trading. Il est identique à ce qui suit :
- DeMarker fort --> parce que la valeur actuelle de DeMarker est supérieure aux 5 dernières valeurs moyennes de l'indicateur DeMarker.
- Valeur actuelle du DeMarker
- Valeur moyenne du DeMarker
En cas de signal faible :
Comme nous pouvons le voir sur le graphique dans le coin supérieur gauche, nous avons un signal identique au suivant :
- DeMarker faible --> parce que la valeur actuelle de DeMarker est inférieure aux 5 dernières valeurs moyennes de l'indicateur DeMarker.
- Valeur actuelle du DeMarker
- Valeur moyenne du DeMarker
Voici le code complet de cette stratégie :
//+------------------------------------------------------------------+ //| Simple DeMarker System.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() void OnTick() { double deMarkerArray[]; ArraySetAsSeries(deMarkerArray,true); int deMarkerDef = iDeMarker(_Symbol,_Period,14); CopyBuffer(deMarkerDef,0,0,3,deMarkerArray); double deMarkerVal = NormalizeDouble(deMarkerArray[0],6); if(deMarkerVal<=0.30) { Comment("Oversold","\n", "DeMarker Value is ",deMarkerVal); } if(deMarkerVal>=0.70) { Comment("Overbought","\n", "DeMarker Value is ",deMarkerVal); } if(deMarkerVal>0.30 && deMarkerVal<0.70) { Comment("DeMarker Value is ",deMarkerVal); } } //+------------------------------------------------------------------+
Voici les différences dans ce code :
Conditions de ce code.
Dans le cas d'un signal de sur-vente, lorsque la valeur actuelle est inférieure ou égale à 0,30 (qui est l'expression de la fonction "if"), il s'agit d'un signal de sur-vente (qui est l'opérateur dont nous avons besoin de voir en tant que commentaire sur le graphique).
if(deMarkerVal<=0.30) { Comment("Oversold","\n", "DeMarker Value is ",deMarkerVal); }
Dans le cas d'un signal de sur-achat (qui est l'opérateur), cette situation existe lorsque la valeur actuelle du deMarker est supérieure ou égale à 0,70 (qui est l'expression) :
if(deMarkerVal>=0.70) { Comment("Overbought","\n", "DeMarker Value is ",deMarkerVal); }
En cas d'absence de signal ou d'équilibre (expression), lorsque la valeur actuelle du deMarker est comprise entre 0,30 et 0,70 (opérateur) :
if(deMarkerVal>0.30 && deMarkerVal<0.70) { Comment("DeMarker Value is ",deMarkerVal); }
Après avoir compilé ce code et exécuté cet expert, nous constaterons qu'il est attaché au graphique comme suit :
Nous sommes maintenant prêts à recevoir des signaux basés sur cette stratégie. Les exemples suivants sont tirés de nos tests.
En cas de sur-achat :
Comme nous pouvons le voir dans le graphique précédent dans le coin supérieur gauche, le signal généré est le même que le suivant :
- Sur-achat
- Valeur actuelle du DeMarker
En cas de sur-vente :
Comme on peut le voir, le signal généré est le même que le suivant :
- Sur-vente
- Valeur actuelle du DeMarker
En cas d'absence de signal ou d’équilibre :
Comme nous pouvons le voir, nous avons obtenu un signal généré de la valeur actuelle du DeMarker.
Voici le code complet permettant de créer un système de trading pour cette stratégie :
//+------------------------------------------------------------------+ //| DeMarker 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 deMarkerArray[]; MqlRates pArray[]; ArraySetAsSeries(deMarkerArray,true); ArraySetAsSeries(pArray,true); int deMarkerDef = iDeMarker(_Symbol,_Period,14); int pData = CopyRates(_Symbol,_Period,0,14,pArray); CopyBuffer(deMarkerDef,0,0,14,deMarkerArray); double deMarkerVal = NormalizeDouble(deMarkerArray[0],4); double deMarkerPrevVal = NormalizeDouble(deMarkerArray[1],4); double currentHigh = NormalizeDouble(pArray[0].high,6); double currentLow = NormalizeDouble(pArray[0].low,6); double prevHigh = NormalizeDouble(pArray[1].high,6); double prevLow = NormalizeDouble(pArray[1].low,6); if(currentHigh>prevHigh && deMarkerVal<deMarkerPrevVal) { Comment("Bearish divergence","\n", "Current High is ",currentHigh,"\n", "Prev. High Value is ",prevHigh,"\n", "Current DeMarker Value is ",deMarkerVal,"\n", "Prev. DeMarker Value is ",deMarkerPrevVal); } if(currentLow<prevLow && deMarkerVal>deMarkerPrevVal) { Comment("Bullish divergence","\n", "Current Low is ",currentLow,"\n", "Prev. Low Value is ",prevLow,"\n", "Current DeMarker Value is ",deMarkerVal,"\n", "Prev. DeMarker Value is ",deMarkerPrevVal); } } //+------------------------------------------------------------------+
Différences dans ce code.
Création de 2 tableaux, l'un pour deMarkerArray en utilisant la fonction "double", l'autre pour pArray (prix) en utilisant la fonction "MqlRates" pour stocker les informations relatives au prix, au volume et au spread.
double deMarkerArray[]; MqlRates pArray[];
Définition de l'indicateur AS_SERIES pour ces deux tableaux créés.
ArraySetAsSeries(deMarkerArray,true); ArraySetAsSeries(pArray,true);
Définition de deMarketDef et de pData
int deMarkerDef = iDeMarker(_Symbol,_Period,14); int pData = CopyRates(_Symbol,_Period,0,14,pArray);
Remplissage du deMarkerArray
CopyBuffer(deMarkerDef,0,0,14,deMarkerArray);
Définition de deMarkerVal, deMarkerPrevVal, current high, current low, prev. high et prev. low
double deMarkerVal = NormalizeDouble(deMarkerArray[0],4); double deMarkerPrevVal = NormalizeDouble(deMarkerArray[1],4); double currentHigh = NormalizeDouble(pArray[0].high,6); double currentLow = NormalizeDouble(pArray[0].low,6); double prevHigh = NormalizeDouble(pArray[1].high,6); double prevLow = NormalizeDouble(pArray[1].low,6);
Conditions de la stratégie.
En cas de divergence baissière :
if(currentHigh>prevHigh && deMarkerVal<deMarkerPrevVal) { Comment("Bearish divergence","\n", "Current High is ",currentHigh,"\n", "Prev. High Value is ",prevHigh,"\n", "Current DeMarker Value is ",deMarkerVal,"\n", "Prev. DeMarker Value is ",deMarkerPrevVal); }
En cas de divergence haussière :
if(currentLow<prevLow && deMarkerVal>deMarkerPrevVal) { Comment("Bullish divergence","\n", "Current Low is ",currentLow,"\n", "Prev. Low Value is ",prevLow,"\n", "Current DeMarker Value is ",deMarkerVal,"\n", "Prev. DeMarker Value is ",deMarkerPrevVal); }
Après avoir compilé ce code, nous pouvons le trouver dans le Navigateur pour l'exécuter. Nous le trouverons alors attaché au graphique comme suit :
Comme nous pouvons le voir dans le coin supérieur gauche du graphique précédent, l'expert est attaché au graphique. Nous pouvons maintenant recevoir les signaux de cet expert sur la base de la stratégie de trading suivante.
En cas de divergence haussière :
Comme nous pouvons le voir dans le coin supérieur gauche du graphique précédent, nous avons le signal généré suivant :
- Divergence haussière
- Plus Haut actuel
- Plus Haut précédent
- Valeur actuelle du DeMarker
- Valeur précédente de DeMarker
En cas de divergence baissière :
Comme nous pouvons le voir dans le coin supérieur gauche du graphique précédent, nous avons le signal généré suivant :
- Divergence baissière.
- Plus Haut actuel
- Plus Haut précédent
- Valeur actuelle du DeMarker
- Valeur précédente de DeMarker
Conclusion
Nous avons pu voir dans cet article l’indicateur technique DeMarker. Nous avons appris ce qu'il est, ce qu'il mesure, comment nous pouvons le calculer, et comment nous pouvons le lire et l'utiliser à travers des stratégies simples basées sur son concept principal. Ces stratégies simples étaient les suivantes
- Force du DeMarker : pour recevoir des signaux de force ou de faiblesse basés sur la position du DeMarker actuel et sur la moyenne des 5 dernières périodes de la valeur du DeMarker.
- DeMarker, OB - OS : pour recevoir des signaux de sur-achat ou de sur-vente basés sur la position de la valeur actuelle du DeMarker sur son échelle de 0 à 1.
- Divergence DeMarker : pour recevoir des signaux de divergences haussières ou baissières basées sur la position du DeMarker actuel, du DeMarker précédent, du plus haut actuel et du plus haut précédent.
Nous avons également conçu un plan étape par étape pour chaque stratégie afin de nous aider à créer un système de trading en douceur. Ensuite, nous avons appris le sujet le plus intéressant : nous avons créé un système de trading basé sur ce que nous avons conçu dans les plans des stratégies pour recevoir des signaux automatiquement dans MetaTrader 5.
Je confirme à nouveau que vous devez tester toute stratégie avant de l'utiliser pour vous assurer qu'elle est adaptée à votre trading, car il n'existe pas de stratégie adaptée à tout le monde. J'espère que cet article vous a été utile et que vous avez obtenu des informations utiles. Si vous souhaitez lire d'autres articles similaires, vous pouvez lire mes articles précédents dans cette série pour les débutants sur les indicateurs techniques les plus courants et comment nous pouvons créer un système de trading simple basé sur ces indicateurs.
Traduit de l’anglais par MetaQuotes Ltd.
Article original : https://www.mql5.com/en/articles/11394
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Vous acceptez la politique du site Web et les conditions d'utilisation