Le MultiZigZag repose sur l'algorithme du zigzag inclus dans MetaTrader 4 entre 2005 et 2006.
Cet algorithme est vraiment exceptionnel et est utilisé dans de nombreux indicateurs personnalisés. À l'origine, il a été traduit en MQL4 par Rosh, un grand merci à lui ! J'aimerais également savoir qui a inventé cet algorithme. Si quelqu'un a l'information, n'hésitez pas à partager le nom (ou le pseudo) de l'auteur dans les commentaires. J'aimerais aussi connaître la langue dans laquelle il a été écrit à l'origine ainsi que la plateforme de trading utilisée.
Voici les principaux inconvénients de la version initiale de 2005-2006 :
- Charge processeur élevée : La recalculation complète du zigzag à chaque tick surchargait les ordinateurs peu puissants, au point qu'ils se figeaient pendant les mouvements intenses du marché.
- Dessin inexact : Les segments du zigzag apparaissaient parfois « dans le vide », sans lien avec les maxima (minima) des bougies. Or, le zigzag doit indiquer la position exacte des minima (maxima) sur le graphique.
- Instabilité lors du défilement : Le zigzag devenait imprécis si l'on tentait de faire défiler l'historique, apparaissant sans liaison visuelle au graphique.
Cette nouvelle version du zigzag corrige ces inconvénients. Désormais, seules les trois dernières branches du zigzag sont recalculées. La recalculation se fait uniquement lorsque les prix sortent de la partie calculée de la bougie zéro, c'est-à-dire lorsque le minimum ou le maximum de la bougie zéro est annulé, qu'une nouvelle bougie apparaît ou que l'historique est chargé.
Chaque zigzag utilise deux buffers : l'un pour les maxima et l'autre pour les minima. Cela permet d'afficher simultanément le maximum et le minimum sur une seule bougie. Il y a également deux buffers vacants. Ceux qui souhaitent peuvent coder une quatrième version. Cela pourrait être une bonne leçon pour les apprentis programmeurs MQL4. Sinon, ces buffers vacants peuvent servir à d'autres tâches si le zigzag est intégré dans des systèmes développés.
Le calcul et le dessin des zigzags à partir de périodes plus longues se font sans utiliser la fonction icustom(). Pour les besoins d'automatisation, nous pouvons ignorer les buffers d'indicateur. Ainsi, il est possible de calculer les zigzags pour tous les délais simultanément, et ce, pour un nombre illimité de symboles, sous réserve d'avoir suffisamment de mémoire RAM. Cette approche permet également de rechercher des motifs (Gartley ou autres) non seulement sur les périodes actuelles, mais aussi sur n'importe quelle période choisie, et ce, simultanément sur plusieurs délais.
Paramètres.
La plupart des paramètres externes sont des variables de chaîne.
Les paramètres sont séparés par des virgules, écrits dans chaque variable de chaîne pour chaque zigzag. La première valeur concerne le premier zigzag, la seconde le second et la troisième le troisième, séparées par des virgules.
ExtDepth, ExtDeviation et ExtBackstep sont les paramètres standards pour le zigzag.
Si vous définissez ExtDepth=0, le zigzag correspondant ne sera pas affiché.
ExtMaxBar - le nombre de bougies sur lesquelles le zigzag sera calculé.
GrossPeriod - les périodes des graphiques spécifiées en minutes à partir desquelles les données seront utilisées pour le calcul du zigzag. Si vous spécifiez 0, le zigzag sera calculé sur le délai actuel.
Vous pouvez spécifier les valeurs suivantes : 0-1-5-15-30-60-240-1440-10080-43200.
ExtReCalculate - le nombre d'extrêmes du zigzag à partir de 0 qui sont recalculés en temps réel. Il est conseillé de ne pas modifier ce paramètre.
Les zigzags sont affichés par défaut à partir de H1-H4-D1. Ils seront affichés à partir du délai d'une minute jusqu'au délai journalier. Un seul zigzag basé sur les données du délai D1 sera visible sur le graphique journalier. Seuls les zigzags basés sur des délais plus longs ou actuels sont dessinés.
Dans l'exemple de l'image : le zigzag H1 est dessiné en couleur Aqua, le H4 en rouge et le D1 en jaune.

Articles connexes
- ZigZag Professionnel : Un Indicateur Indispensable pour MetaTrader 5
- Prédicteur de Prix Futur avec Réseaux de Neurones
- Indicateur Open Range Breakout pour MetaTrader 5 : Maximisez vos Opportunités de Trading
- Découvrez l'Indicateur ZigZag Amélioré pour MetaTrader 4
- FX Multi-Meter II : Un Indicateur Tout-en-Un pour les Traders