Accueil Indicateur technique Publication

ZigZag Professionnel : Un Indicateur Indispensable pour MetaTrader 5

Pièce jointe
263.zip (5.64 KB, Télécharger 0 fois)

Attention ! Cette version de l'indicateur ZigZag est basée sur le code ZigZag, et publiée ici avec l'autorisation de son auteur, PPC. J'ai testé cette version et corrigé une erreur dans l'algorithme.

Ceci est la version MQL5 de l'indicateur ZigZag pour MetaTrader 4.

N'oubliez pas ! La bibliothèque AlexSTAL_OutsideBar.mqh doit être placée dans le dossier  ..\MQL5\Include de votre terminal client MetaTrader 5.

C'est tout ?

Je pense que le ZigZag est comme une compression du graphique de prix. Il peut être calculé en utilisant le prix de la barre (par exemple, le prix de Clôture) ou les prix Haut/Bas de la barre (la méthode la plus couramment utilisée).

En travaillant avec le ZigZag standard proposé par MetaQuotes, j'ai découvert quelques erreurs. Le principal problème est que le ZigZag standard ne prend pas en compte les cas des barres extérieures.

En 2007, Rashid Umarov (Rosh) a publié le code Zigzag2 R avec un traitement des barres extérieures (style DRAW_ZIGZAG au lieu de DRAW_SECTION).

Définissons maintenant les caractéristiques d'une implémentation "correcte" du ZigZag :

  • Les Hauts et Bas doivent être strictement alternés ;
  • Le Haut doit être plus élevé (ou égal) parmi toutes les barres sur le côté droit jusqu'au prochain Bas (opposé) ;
  • Le Bas doit être plus bas (ou égal) parmi toutes les barres sur le côté gauche jusqu'au prochain Haut (opposé).

Considérons un exemple (EURUSD, H1, 8-13 décembre 2006). Ici, nous avons deux cas avec la barre extérieure. Le ZigZag typique ne peut pas construire l'image "correcte".

Figure 1. ZigZag typique avec paramètres d'entrée [12;5;3] et [12;0;0]

Figure 1. ZigZag typique avec paramètres d'entrée [12;5;3] et [12;0;0]

Figure 2. Zigzag2 R avec paramètres d'entrée [12;5;3]

Figure 2. Zigzag2 R avec paramètres d'entrée [12;5;3]


Figure 3. Zigzag2 R avec paramètres d'entrée [12;0;0]

Figure 3. Zigzag2 R avec paramètres d'entrée [12;0;0]

À première vue, la construction correcte est présentée dans Figure 3, mais voici quelques caractéristiques :

  1. Dans ce cas, elle a été construite correctement à cause des paramètres d'entrée, mais en général, l'algorithme doit fonctionner avec n'importe quels paramètres.
  2. La barre extérieure sur le côté gauche n'est pas correcte, à cause de l'ordre de formation Haut/Bas de la barre :


Les segments de ZigZag doivent être construits de cette manière.

J'ai testé de nombreux cas des algorithmes ZigZag suivants : ZigZag MT3, ZigZag, Zigzag R, Zigzag2 R, ZigZag_NK, ZigZag_ZUP89_nen, ZigZag_new_nen4, CZigZag, Swing_ZZ_1, DT_ZZ_nen, ZigZag_Talex, Reverse_ZZ, Points_ZZ_1, i_MF_Fractal_ZZ_3in1, ang_Amp_ZZ, ZigzagFr_v1, NonLagZigZag_v2, ZZ_FF_v3, ZigZag Ensign, ZigZag tauber, SQZZ Товаровед, ZZ_2L_nen wellx, Channel ZZ, Azzx_larryzz_3_0, RPoint, RPoint-m v2, ZigZagTF. Mais aucun d'eux n'a résolu le problème correctement.


Voici les figures avec cet indicateur :

Figure 4. ZigZag Professionnel avec paramètres d'entrée [12;0]

Figure 4. ZigZag Professionnel avec paramètres d'entrée [12;0]

Figure 5. ZigZag Professionnel avec paramètres d'entrée [23;0]

Figure 5. ZigZag Professionnel avec paramètres d'entrée [23;0]


Quelques caractéristiques de cette version :

  • algorithme à un passage
  • il recalcule et redessine uniquement le dernier segment (le segment ne peut pas être annulé sauf en cas de mise à jour de l'historique)
  • il dispose d'un algorithme d'optimisation pour les calculs à l'intérieur de la barre (il n'utilise pas la recalculation sur le tick, si le prix a changé à l'intérieur de la barre 0 (non complétée) ou si le changement de prix est inférieur au seuil défini par le paramètre MinMotion)
  • il a deux algorithmes pour l'ordre de formation des Hauts/Bas : utilisant le type de barre (rapide mais pas précis) et utilisant les données d'une période inférieure (il nécessite l'historique, vous devez vérifier sa présence et sa validité ou vous devez modifier la bibliothèque OutsideBar)
La version ProExtra n'est pas publiée, car la validité des cotations MetaTrader 5 n'est pas vérifiée.


Voici quelques exemples supplémentaires de constructions incorrectes de ZigZag :

Figure 6. EURUSD, H1, 29 novembre - 7 décembre. (Ligne rouge : ZigZag avec paramètres d'entrée [7;0;0]. Ligne bleue : Zigzag2 R avec paramètres d'entrée [7;0;0].)

Figure 6. EURUSD, H1, 29 novembre - 7 décembre. (Ligne rouge : ZigZag avec paramètres d'entrée [7;0;0]. Ligne bleue : Zigzag2 R avec paramètres d'entrée [7;0;0].)

Figure 7. EURUSD, H1, 2010, 29 novembre - 7 décembre. La construction correcte des segments ZigZag.

Figure 7. EURUSD, H1, 2010, 29 novembre - 7 décembre. La construction correcte des segments ZigZag.


Conclusion

Malheureusement, cette version n'est pas parfaite, mais je travaille dessus.

À cause de l'algorithme de canal (iHighest/iLowest), parfois, il omet les hauts.

Merci de m'informer des bugs et des caractéristiques de cet indicateur.

Articles connexes

Commentaire (0)