Schau, wie man Roboter kostenlos herunterladen kann
Finden Sie uns auf Twitter!
und werden Sie Mitglied unserer Fangruppe
Interessantes Skript?
Veröffentliche einen Link auf das Skript, damit die anderen ihn auch nutzen können
Hat Ihnen das Skript gefallen?
Bewerten Sie es im Terminal MetaTrader 5
Indikatoren

Professioneller ZigZag - Indikator für den MetaTrader 5

Ansichten:
3107
Rating:
(47)
Veröffentlicht:
2016.08.05 16:03
Aktualisiert:
2017.09.05 16:10
\MQL5\Include\
Benötigen Sie einen Roboter oder Indikator, der auf diesem Code basiert? Bestellen Sie ihn im Freelance-Bereich Zum Freelance

Achtung! Dieser Indikator wurde anhand einer der Versionen des Codes Einfach ZZ (Zigzag) erstellt und wird hier mit Genehmigung des Autors PPC veröffentlicht (ich habe mich unmittelbar am Testen und an der Behebung von Fehlern im Algorithmus beteiligt). Dieser Code ist eine für die MetaTrader 4 Plattform umgeschriebene Version des Indikators.

Achtung! Die Bibliothek "AlexSTAL_OutsideBar.mqh" muss in ...\MQL5\Include\ gespeichert werden.

Was ist ein Zigzag?

Aus meiner Sicht stellt Zigzag einen komprimierten Preischart dar. Der ZigZag Indikator kann sowohl anhand eines Balkenpreises (z.B. nur Close) als auch anhand von High/Low (besonders verbreitet) gezeichnet werden.

Während der Arbeit mit dem standardmäßigen ZigZag Indikator wurden einige Fehler und Ungenauigkeiten dieser Standardlösung von MetaQuotes festgestellt. Das größte Problem besteht darin, dass der standardmäßige ZigZag die Situation mit dem externen Balken (outside bar) nicht bearbeitet.

2007 hat Rosh eine Version des Zigzag2 R Indikators veröffentlicht, die einen Algorithmus für die Bearbeitung des externen Balken verwenden musste (mit dem Stil DRAW_ZIGZAG statt DRAW_SECTION), aber aus unbekannten Gründen enthält die Version auf der Webseite den richtigen Code nicht.

Um das Gespräch fortzusetzen, möchte ich formulieren, wie ich die richtige Erstellung von ZigZag sehe:

  • Extremwerte High und Low müssen sich streng abwechseln;
  • Der Extremwert High muss den höchsten (oder den gleichen) Wert unter allen Balken haben, die rechts bis zum nächsten Low liegen;
  • Der Extremwert Low muss den kleinsten (oder den gleichen) Wert unter allen Balken haben, die rechts bis zum nächsten High liegen.

Schauen wir uns ein Beispiel an (EURUSD H1 8-13 Dezember 2006), in welchem es gleichzeitig zwei Situationen mit dem externen Balken gibt, die von standardmäßigen Indikatoren inkorrekt bearbeitet werden.

Abbildung 1. Ein typischer ZigZag mit den Parametern [12;5;3] und [12;0;0]

Abb. 1. Standardmäßiger ZigZag mit den Parametern [12;5;3] und [12;0;0]


Abbildung 2. Zigzag2 R mit den Parametern [12;5;3]

Abb. 2. Zigzag2 R mit den Parametern [12;5;3]



Abbildung 3. Zigzag2 R mit den Parametern [12;0;0]

Abb. 3. Zigzag2 R mit den Parametern [12;0;0]

Auf den ersten Blick scheint alles auf der Abbildung 3 richtig zu sein, aber:

  1. Die Parameter wurden vorgegeben, der Algorithmus muss aber mit allen Parametern richtig funktionieren.
  2. Der externe Balken links wird wegen der Reihenfolge der Formation von High/Low des Balken inkorrekt bearbeitet:


und damit die Reihenfolge der ZigZag Segmente.

Es wurden die folgenden ZigZag getestet (nicht nur in der veröffentlichten Periode): 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 Tovaroved, ZZ_2L_nen wellx, Channel ZZ, Azzx_larryzz_3_0, RPoint, RPoint-m v2, ZigZagTF. Keiner von ihnen hat die Aufgabe in vollem Umfang gemeistert.


Die Abbildungen zeigen den Indikator in der zu erforschenden Periode:

Abb. 4. Parameter [12;0]

Abb. 4. Professional ZigZag mit den Parametern [12;0]


Abb. 5. Parameter [23;0]

Abb. 5. Professional ZigZag mit den Parametern [23;0]


Merkmale und Besonderheiten des veröffentlichten ZigZag Indikators:

  • one-pass;
  • Nur das letzte Segment wird neu berechnet und neu gezeichnet (das Segment kann nicht gecancellt werden, außer nur beim Aktualisieren der Historie);
  • Der Indikator hat einen Optimierungsmechanismus für die Berechnungen innerhalb des Balkens (wird nicht auf dem Tick neu berechnet, wenn sich der Preis innerhalb des Null-Balkens geändert hat oder wenn die Änderungen unter dem in der MinMotion Variablen gesetzten Schwellenwert liegen);
  • Der Indikator hat zwei Algorithmen für das Erhalten der Reihenfolge der Formation von High/Low des Balkens: nach dem Balkentyp (schnell, aber nicht zuverlässig) und nach den Daten der kleineren Periode (hier wird die Historie benötigt: Sie müssen entweder das Vorhandensein der Historie überprüfen oder die Bibliothek OutsideBar modifizieren).

Die Version ProExtra wird nicht veröffentlicht, denn die Frage der Korrektheit von Quotierungen in MetaTrader 5 ist noch nicht untersucht.


Zusätzliche Beispiele für eine inkorrekte Arbeit anderer ZigZag

Abbildung 6. EURUSD H1 29. November -7. Dezember 2010 Die rote Linie ZigZag mit den Parametern [7;0;0]. Die blaue Linie Zigzag2 R mit den Parametern [7;0;0].

Abbildung 6. EURUSD H1 29. November - 7.Dezember 2010. Die rote Linie ZigZag mit den Parametern [7;0;0]. Die blaue Linie Zigzag2 R mit den Parametern [7;0;0]


Abb. 7. EURUSD H1 29. November -7. Dezember 2010 Richtige Zeichnung

Abb. 7. EURUSD H1, 29. November - 7. Dezember 2010. Richtige Zeichnung


Zusammenfassung

Leider ist diese Version auch nicht frei von Nachteilen. Aber ich arbeite daran.

Da der Indikator nach dem gleichen "Kanal-Grundsatz" iHighest/iLowest (wie auch der standardmäßige ZigZag) funktioniert, werden Spitzen manchmal ausgealssen.

Sollten Sie Fehler oder Bugs feststellen, melden Sie sich bitte.

Übersetzt aus dem Russischen von MetaQuotes Ltd.
Originalpublikation: https://www.mql5.com/ru/code/263

cIntBMP - eine Bibliothek für die Erstellung von Bildern im BMP-Format cIntBMP - eine Bibliothek für die Erstellung von Bildern im BMP-Format

Eine Klasse für die Erstellung und Anzeige von Bildern im BMP-Format.

MQL5 Wizard - Handelsignale auf der Basis der Kreuzung des Preises mit dem MA-Indikator MQL5 Wizard - Handelsignale auf der Basis der Kreuzung des Preises mit dem MA-Indikator

Handelsignale auf der Basis der Kreuzung des Preises mit dem MA-Indikator "Signals based on price crossover with MA" (Klasse CSignalMA in der Standardbibliothek).

ColorXdinMA_HTF ColorXdinMA_HTF

Der Indikator ColorXdinMA mit der Veränderungsmöglichkeit des Timeframes des Indikators in den Eingangsparametern.

ColorX2MA_Osc_HTF ColorX2MA_Osc_HTF

Der Indikator ColorX2MA_Osc mit der Veränderungsmöglichkeit des Timeframes des Indikators in den Eingangsparametern.