Schau, wie man Roboter kostenlos herunterladen kann
Finden Sie uns auf Telegram!
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

Swing Detector by Pullback (Smart Money Concepts) - Indikator für den MetaTrader 5

Sandro Begashvili
Sandro Begashvili
Sandro Begashvili - Entwickler für MQL5, MQL4, Python und Pine Script
Ich entwickle Handelssoftware für MetaTrader 4 und MetaTrader 5: Expert Advisors, eigene Indikatoren und grafische Handelspanels. Beschreiben Sie Ihre Idee, und ich setze sie in lauffähigen, dokumentierten Code um.
| German English Русский 中文 Español 日本語 Português 한국어 Français Italiano Türkçe
Ansichten:
1
Rating:
(1)
Veröffentlicht:
MQL5 Freelance Benötigen Sie einen Roboter oder Indikator, der auf diesem Code basiert? Bestellen Sie ihn im Freelance-Bereich Zum Freelance

Fast jede strukturbasierte Methode beginnt mit derselben Frage: Welche Hochs und Tiefs sind tatsächlich von Bedeutung? Alles, was darauf aufbaut – Marktstruktur, BOS und CHoCH, Orderblöcke, Liquiditätsniveaus – basiert auf dieser einen Antwort; daher entscheidet die von Ihnen gewählte Definition darüber, was der Rest Ihrer Analyse berücksichtigt.


Es gibt mehrere gängige Ansätze, diese Frage zu beantworten. Am bekanntesten ist das 3-Kerzen-Muster (das Fraktal): Eine Kerze, deren Hoch über beiden Nachbar-Kerzen liegt, gilt als Swing-Hoch. Dieses Muster ist symmetrisch, einfach zu berechnen und wird von den meisten Swing-Indikatoren verwendet. Andere erweitern das Zeitfenster auf 5 oder 7 Kerzen oder filtern Kandidaten anhand einer Mindestbewegung in Punkten oder der ATR heraus.

Dieser Indikator verwendet eine andere Definition – die in Trading Hub 3.0 verwendete Pullback-Definition. Anstatt zu fragen, ob eine Kerze höher ist als ihre Nachbarn, wird geprüft, ob der Kurs zurückgekommen ist und diese Kerze abgelehnt hat. Ein Hoch wird erst dann zu einem Swing, wenn der Markt wieder durch das Tief der Kerze fällt, die es gebildet hat. Nichts wird durch die Form entschieden; alles wird dadurch entschieden, was der Kurs danach tut.


Der praktische Unterschied: Ein Fraktal beschreibt Geometrie, während ein Pullback ein Ereignis beschreibt. Da ein Pullback ein Ereignis ist, gibt er auch an, wann der Swing gültig wurde – und genau dieser Zeitstempel ermöglicht eine nicht-repaintende Implementierung.

So funktioniert die Regel

Der Detektor sucht niemals nach beiden Seiten gleichzeitig. Er sucht jeweils nach einer Seite und speichert genau drei Informationen:

Zustand Bedeutung
Richtung welche Seite gerade abgesucht wird – ein „High“ oder ein „Low“
Verfolgter Extremwert das bisher höchste Hoch (bzw. tiefste Tief) im aktuellen Kursabschnitt
Referenzniveau die gegenüberliegende Seite der Kerze, die dieses Extrem gebildet hat

Die Referenz ist der entscheidende Punkt. Wenn eine Kerze ein neues Höchsthoch erreicht, liefert dieselbe Kerze auch das Niveau, das dies später bestätigen wird: ihr eigenes Tief. Der Kurs muss dieses Tief wieder unterschreiten, damit das Hoch zählt.


Deutung der Abbildung:

  • A – Eine Phase beginnt. Sowohl das verfolgte Hoch als auch das Referenztief stammen aus ein und derselben Kerze.
  • B – Jedes höhere Hoch ersetzt beide Werte. Das Hoch ist noch vorläufig; es wird noch nichts eingezeichnet.
  • C – Eine Kerze schließt schließlich unterhalb des Referenz-Tiefs. Das ist der Rückzug, und er bestätigt das verfolgte Hoch als Schwingungshoch.
  • D – Die bestätigende Kerze leitet sofort die Suche nach einem Tief ein, spiegelbildlich: Verfolge das tiefste Tief, die Referenz ist dessen Hoch, ein Durchbruch darüber bestätigt es.

Da die Bestätigung einer Seite die Suche immer auf die andere Seite verlagert, wechseln sich Swing-Hochs und -Tiefs automatisch ab. Es gibt keine separate Regel, die dies vorschreibt, und keinen Vergleich mit früheren Swings.

Die Regeln, Kerze für Kerze

Bei jeder geschlossenen Kerze stellt der Detektor zwei unabhängige Fragen: Hat diese Kerze ein neues Extrem erreicht? Und hat sie die Referenz durchbrochen? Pro Richtung sind vier Kombinationen möglich.


# Aktueller Trend Aktuelle Kerze Aktion 1 Aktion 2
1 Auf der Suche nach einem HÖCHSTSTAND Inside-Bar – kein neues Hoch, Referenz-Tief intakt nichts nichts
2 Auf der Suche nach einem HÖCHSTSTAND Neues Hoch, Referenz-Tief intakt verfolgtes Hoch = das Hoch dieser Kerze Referenz-Tief = Tiefstwert dieser Kerze
3 Auf der Suche nach einem HÖCHSTSTAND Durchbruch – kein neues Hoch, aber Handel unterhalb des Referenz-Tiefs Bestätige das erfasste Hoch als Swing-Hoch Wechsel zu TIEF: verfolgtes Tief = Tief dieser Kerze, Referenzhoch = Hoch dieser Kerze
4 Auf der Suche nach einem HÖCHSTSTAND Outside-Bar – neues Hoch und Durchbruch des Referenz-Tiefs Bestätige das eigene Hoch dieser Kerze als Swing-Hoch Wechsel zu „LOW“: erfasster Tiefststand = Tiefststand dieser Kerze, Referenzhoch = Höchststand dieser Kerze
5 Auf der Suche nach einem TIEF Inside-Bar – kein neues Tief, Referenzhoch intakt nichts nichts
6 Auf der Suche nach einem Tiefststand Neues Tief, Referenzhoch intakt verfolgtes Tief = Tief dieser Kerze Referenzhoch = Hoch dieser Kerze
7 Auf der Suche nach einem Tiefststand Durchbruch – kein neues Tief, aber Handel oberhalb des Referenzhochs Bestätige das erfasste Tief als Schwingungstief Wechsel zu „HIGH“: verfolgtes Hoch = Hoch dieser Kerze, Referenz-Tief = Tief dieser Kerze
8 Auf der Suche nach einem TIEF Outside-Bar – neues Tief und Durchbruch des Referenzhochs Bestätige das eigene Tief dieser Kerze als Swing-Tief Wechsel zu HIGH: Erfasster Höchstwert = Höchstwert dieser Kerze, Referenz-Tiefstwert = Tiefstwert dieser Kerze

Die Zeilen 1–4 und 5–8 sind exakte Spiegelbilder, weshalb der gesamte Code nur aus wenigen Dutzend Zeilen besteht.

Der seltene Fall: eine Kerze, die in beide Richtungen durchbricht

Die Zeilen 4 und 8 verdienen eine eigene Erklärung. Normalerweise verlängert eine Kerze entweder den Trend oder durchbricht den Referenzwert. Eine Outside-Bar kann beides gleichzeitig tun – sie erreicht ein neues Hoch und notiert in derselben Kerze unterhalb des Referenz-Tiefs.

Beide Regeln beanspruchen sie dann für sich, und sie widersprechen sich. Behandelt man sie als Fortsetzung, wird ein echter Durchbruch übersehen; behandelt man sie als Durchbruch, würde man ein Hoch bestätigen, das genau diese Kerze bereits überschritten hat.


Die Lösung besteht darin, die Kerze selbst als Swing zu betrachten:

  1. Ihr eigenes Hoch wird als Swing-Hoch bestätigt – nicht das ältere, verfolgte Hoch, das sie gerade überwunden hat.
  2. Dieselbe Kerze leitet dann die entgegengesetzte Bewegung ein: Das verfolgte Tief wird zu ihrem Tief und der Referenzwert zu ihrem Hoch.

Eine Kerze trägt also sowohl ein Schwingungshoch als auch den Beginn des Abwärtsbewegungsabschnitts. Auf dem Chart zeigt sich dies als Markierung oberhalb und unterhalb derselben Kerze, mit einem vertikalen Abschnitt dazwischen – was genau dem entspricht, was innerhalb dieser Kerze passiert ist.

This is also why the legs are drawn as trend-line objects rather than a DRAW_SECTION buffer. A section plot stores one value per bar and could not hold two points on the same candle.

Es erfolgt keine Neudarstellung

Das verfolgte Extrem ist vorläufig und wird niemals eingezeichnet. Ein Swing wird erst auf der Kerze in den Chart eingetragen, die ihn bestätigt, und sobald er eingetragen ist, wird er niemals verschoben, umgefärbt oder entfernt. Es werden nur geschlossene Kerzen ausgewertet; die sich gerade bildende Kerze wird vollständig ignoriert.

Der Kompromiss ist ehrlich und erwähnenswert: die Bestätigungsverzögerung. Der neueste Swing erscheint erst nach dem Durchbruch, der ihn validiert. Wenn Sie eine Markierung in dem Moment wünschen, in dem ein neues Hoch erreicht wird, ist dies das falsche Tool – diese Markierung müsste sich später verschieben, was einer Neudarstellung gleichkäme.

Eingaben

Erkennung

Eingabe Standard Funktionsweise
Zunächst wird nach Nach einem Swing-Hoch suchen Nach welcher Seite sucht die allererste Phase? Dies betrifft nur die ältesten Kerzen im Chart; nach der ersten Bestätigung wird die Richtung ausschließlich von den Durchbrüchen bestimmt. Lassen Sie diese Einstellung unverändert, es sei denn, der erste Swing in Ihrem Verlauf erscheint falsch.
Durchbruch bestätigt durch Docht „Wick“ nutzt das Hoch/Tief der Kerze – die wörtliche Trading-Hub-Regel und die empfindlichere Einstellung. „Close“ verlangt, dass die Kerze über der Referenz schließt, was einzelne Ausreißer ignoriert und deutlich weniger, dafür aber größere Schwankungen liefert.

So wählen Sie aus: Beginnen Sie mit „Wick“. Wenn Sie mit M1–M15 arbeiten oder mit einem Symbol mit langen, verrauschten Dochten wie Gold oder einem Index-CFD, wechseln Sie zu „Close“ – dies entfernt die meisten durch einzelne Ausschläge verursachten Schwankungen, ohne die Logik an anderer Stelle zu verändern. Ein höherer Zeitrahmen ist die andere Möglichkeit, eine größere Struktur zu erhalten; die Regel selbst verfügt über keine Sensitivitäts- oder Periodeneinstellung, die angepasst werden muss.

Anzeige

Eingabe Standard Funktionsweise
Zeichnet die Swing-Markierungen ein true Schaltet die Pfeile ein oder aus. Die Puffer bleiben in jedem Fall gefüllt, sodass iCustom weiterhin jeden Schwung zurückgibt.
Pfeilcode – Swing hoch / tief 217 / 218 Wingdings-Codes. Gängige Alternativen:234/233,241/242, 159 für Punkte.
Pfeilabstand vom Balken 10 Abstand in Pixeln zwischen der Kerze und ihrem Pfeil. Erhöhen Sie ihn bei dichten Charts.
Zeichnen Sie die Beine zwischen den Schwankungen true Die gepunktete Zickzacklinie, die aufeinanderfolgende Schwankungen verbindet. Deaktivieren Sie diese Option, wenn Sie bereits eine Zickzacklinie verwenden.
Farbe / Stil / Breite der Linien silber, gepunktet, 1 Darstellung der Verbindungslinien.

Wenn Sie sowohl Markierungen als auch Linien deaktivieren, bleibt eine rein rechnerische Instanz übrig – nützlich, wenn ein EA die Puffer ausliest und Sie nichts auf dem Chart anzeigen möchten.

Benachrichtigungen

Eingabe Standard Funktionsweise
Popup-Alarm bei einem bestätigten Swing false Popup-Fenster im Terminal, wenn ein Swing bestätigt wird.
Push-Benachrichtigung bei einem bestätigten Swing false Die Push-Benachrichtigung wird an die in „Extras → Optionen → Benachrichtigungen“ festgelegte MetaQuotes-ID gesendet.

Benachrichtigungen werden nur bei Live-Aktualisierungen ausgelöst, niemals während der Indikator den Verlauf lädt, und nur einmal pro Swing.

Verwendung in einem EA

Zwei Puffer, die beide nur bei bestätigten Swings nicht leer sind (leerer Wert ist 0,0):

Puffer Inhalt
0 Kurs eines bestätigten Swing -Hochs
1 Kurs eines bestätigten Swing -Tiefs
int h = iCustom(_Symbol, _Period, "SMC_Pullback");
double buf[];
CopyBuffer(h, 0, 0, 100, buf);   // Swing-Hochs

Die Erkennungs-Engine ist in einer einzigen, in sich geschlossenen Klasse namens „CPullbackDetector“ untergebracht, die keine Abhängigkeiten von Charts oder Puffern aufweist – sie nimmt die Kurs-Arrays entgegen und meldet bestätigte Schwankungen, sodass sie direkt in einen EA kopiert werden kann, falls Sie den Umweg über iCustom vermeiden möchten.

Was sie bewusst nicht tut

Dieser Indikator hält an den Swing-Punkten an. Er kennzeichnet keine HH/HL/LH/LL und leitet keine BOS, CHoCH, IDM, Orderblöcke oder Liquiditätsniveaus ab. Dies sind separate Schritte, für die zunächst eine zuverlässige Reihe von Swings erforderlich ist – und genau das liefert dieser Indikator.


Das Projekt wird auf MQL5 Algo Forge unterstützt. Den Code und zukünftige Updates findenSie unter dem folgenden Link.

Das Repo finden Sie hier: https://forge.mql5.io/SandroBegashvil/SMC-Pullback-CodeBase

Übersetzt aus dem Englischen von MetaQuotes Ltd.
Originalpublikation: https://www.mql5.com/en/code/76451

SuperTrend Indicator SuperTrend Indicator

Ein benutzerdefinierter SuperTrend-Indikator, der von Grund auf neu entwickelt wurde und ein ATR-basiertes Volatilitätsband mit einem Ratchet-Mechanismus kombiniert, um eine klare, nicht nachzeichnende Trendlinie zu erzeugen. Der interne rekursive Zustand wird über ordnungsgemäß registrierte Berechnungspuffer verwaltet, wodurch die bei manuell verwalteten Array-Implementierungen häufig auftretenden Fehler durch Zustandsverluste vermieden werden. Aus der Artikelserie „Erstellen benutzerdefinierter Indikatoren für Anfänger“.

Fisher Transform Indicator Fisher Transform Indicator

Ein auf statistischen Grundprinzipien basierender Fisher-Transform-Oszillator – dabei wird der Kurs auf einen begrenzten Bereich normiert und anschließend eine logarithmische Transformation angewendet, um scharfe, klar definierte Umkehrsignale zu erzeugen, anstatt der für herkömmliche Oszillatoren typischen allmählichen Wendungen. Der interne rekursive Zustand wird durch geeignete Berechnungspuffer verwaltet, um ein zuverlässiges und korrektes Verhalten bei Backtests zu gewährleisten. Aus der Artikelserie „Erstellung benutzerdefinierter Indikatoren für Anfänger“.

PropFirm Equity Protector – Institutional Risk Manager (Open Source) PropFirm Equity Protector – Institutional Risk Manager (Open Source)

Professionelles Utility-EA für das Risikomanagement von Prop-Firmen. Es bietet eine tägliche Überwachung des Eigenkapitals, eine stufenweise Risikominderung bei Verlustpositionen sowie absolute Hard-Stops über ein selbstheilendes grafisches Dashboard.

Accelerator Oszillator (AC) Accelerator Oszillator (AC)

Der Acceleration/Deceleration Indikator (AC) misst die Beschleunigung und Verlangsamung des aktuellen Marktimpulses, der Kraft der Kursbewegung.