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
Ansichten:
9
Rating:
(2)
Veröffentlicht:
\MQL5\Include\SAX\
SAXAnalogs.mqh (21.01 KB) ansehen
SAXAnalog.mq5 (13.41 KB) ansehen
MQL5 Freelance Benötigen Sie einen Roboter oder Indikator, der auf diesem Code basiert? Bestellen Sie ihn im Freelance-Bereich Zum Freelance

Übersicht

Fast jedes Tool, das wir zum Lesen eines Charts entwickeln, bleibt in der Welt der Zahlen. Dieses hier verlässt sie. Die von Jessica Lin, Eamonn Keogh und Kollegen im Jahr 2003 eingeführte „Symbolic Aggregate Approximation“ (SAX) wandelt ein Kursfenster in eine kurze Buchstabenfolge um, etwa „bddcbbba“. Sobald ein Teil des Marktes zu einem Wort geworden ist, kann man damit alles tun, was die Informatik bereits mit Text zu tun weiß: es abgleichen, zählen, hashen, durchsuchen.

Diese Veröffentlichung wendet das auf eine praktische Frage an: Der Markt verhält sich gerade so; wann hat er sich zuvor ähnlich verhalten, und was folgte darauf? Der Indikator kodiert das aktuelle Zeitfenster, durchsucht die Historie nach früheren Zeitfenstern ähnlicher Form, liest die bekannte Zukunft jeder Übereinstimmung aus und stellt die daraus resultierende Verteilung der Ergebnisse als Prognosefächer auf dem Chart dar, begleitet von einem Bewertungsfeld, das die dahinterstehenden Statistiken anzeigt.

Die Transformation selbst umfasst drei Schritte, von denen jeder seinen Grund hat:

  • Z-Normalisierung des Fensters, sodass nur noch die reine Form übrig bleibt. Ein Anstieg des EUR/USD und ein Anstieg des Goldpreises werden auf dieselbe normalisierte Kurve abgebildet, wenn sie auf dieselbe Weise steigen.
  • Stückweise aggregierte Approximation: Das normalisierte Fenster wird in w gleiche Segmente unterteilt und jedes Segment durch seinen Durchschnitt ersetzt. Ein 48-Bar-Fenster mit w = 8 ergibt acht Zahlen, was eine Dimensionsreduktion darstellt, die dabei Rauschen glättet.
  • Diskretisierung: Ordne jedem Segmentmittelwert einen Buchstaben zu, indem du Bruchpunkte verwendest, die die Standardnormalverteilung in Bänder mit gleicher Wahrscheinlichkeit aufteilen, sodass jeder Buchstabe a priori gleich wahrscheinlich ist.

Die drei Schritte der SAX-Transformation in einem Kursfenster

Die SAX-Pipeline: Das Fenster wird z-normalisiert, in Zellen gemittelt und anschließend wird jede Zelle mithilfe von Gaußschen Bruchpunkten einem Buchstaben zugeordnet.

Was die SAX-Suche nicht nur schnell, sondern auch „sinnvoll“ macht, ist MINDIST – ein Abstand zwischen zwei Wörtern, der nachweislich eine Untergrenze für den tatsächlichen euklidischen Abstand zwischen den z-normierten Reihen darstellt. Da er den tatsächlichen Abstand immer nur unterschätzen kann, lässt er sich nutzen, um Kandidaten auszusortieren, ohne dabei das Risiko einzugehen, eine echte Übereinstimmung zu verwerfen. Das ermöglicht hier die zweistufige Suche: zunächst Ausdünnen anhand des kostengünstigen Wortabstands, dann Rangieren der verbleibenden Treffer nach dem tatsächlichen euklidischen Abstand. Der veröffentlichte Validierungs-Harness bestätigt, dass die Pipeline genau dieselben Treffer wie die Brute-Force-Methode liefert, dabei aber einen Großteil der Arbeit überspringt.

Lesen Sie dies, bevor Sie es verwenden: Der Schritt der z-Normalisierung, der SAX so elegant macht, lässt das Preisniveau und die Volatilität bewusst außer Acht – und im Handel sind genau diese Faktoren oft von entscheidender Bedeutung. Dieses Tool gleicht dies nach Möglichkeit aus, indem es jedes Ergebnis in Einheiten der zum jeweiligen Zeitpunkt vorherrschenden Volatilität misst, doch die Einschränkung ist real und lässt sich nicht wegoptimieren. Rechnen Sie damit, dass das Ergebnis „kein Vorteil “ häufiger als alles andere lautet. Auf Märkten, die einem Zufallsweg nahekommen, ist das die richtige Antwort und kein Fehlfunktion.


Was der Indikator darstellt

Zwei Objekte, die beide neu berechnet werden, wenn ein neuer Balken schließt.

Der Fächer projiziert die zukünftige Verteilung der Analogwerte ausgehend vom zuletzt geschlossenen Balken in die Zukunft. Eine durchgezogene Linie zeigt die mittlere zukünftige Bewegung bei jedem Schritt an, und gepunktete Linien oberhalb und unterhalb zeigen das 25. und 75. Perzentil an, sodass sich der Fächer erweitert, je mehr die Übereinstimmung zwischen den Vorläufern nachlässt. Die Verteilung pro Schritt wird in ATR-Einheiten gehalten und mit dem aktuellen ATR multipliziert, um auf die reale Preisachse zu gelangen; dadurch können Vorläufer aus ruhigen und volatilen Phasen zum selben Kegel beitragen. Der Kegel wird nur gezeichnet, wenn das Urteil bullisch oder bärisch ist; das Fehlen eines Kegels ist also selbst eine Information und kein Darstellungsfehler.

Das Urteilsfeld zeigt die Zahlen an, die der Kegel verbirgt:

Zeile
Was es aussagt
Wort
Die SAX-Kodierung des aktuellen Fensters, also die Abfrage, auf der die Suche tatsächlich ausgeführt wurde.
Analoge
Wie viele Übereinstimmungen gefunden wurden und deren durchschnittliche Übereinstimmungsdistanz. Eine große Anzahl bei einer schlechten durchschnittlichen Distanz ist ein schwächerer Fall als eine kleine Anzahl enger Übereinstimmungen.
fwd H
Median der Vorwärtsbewegung über den Horizont, in ATR-Vielfachen und in Prozent.
band
Der Bereich vom 25. bis zum 75. Perzentil dieser Vorwärtsbewegungen: die Breite des Kegels als Zahl.
Aufwärtsrate
Der Anteil der Vorfälle, bei denen es überhaupt zu einem Anstieg kam, sowie die Streuung. Ein Median, der bei einer Aufwärtsrate von 51 % nach oben tendiert, ist das Glück eines einzelnen Vorfalls und kein Trend.
FAZIT
Bullisch, bärisch, kein Vorteil, zu wenige Analogfälle oder keine Daten.

Das Urteil ist bewusst schwer zu erlangen. Zu wenige Analogfälle werden zuerst entschieden, dann der Fall des Münzwurfs, und nur eine Stichprobe, die beide Überzeugungsbänder erfüllt, erhält eine Richtung: Die Medianbewegung muss die Vorteilschwelle in ATR-Begriffen überschreiten, und die Aufwärtsrate muss das Band um 0,5 verlassen. Wird eine der beiden Bedingungen nicht erfüllt, lautet die Antwort „kein Vorteil“, unabhängig davon, was der Median gerade aussagt.

Der SAX-Analogprognostiker für EURUSD M30: Fächerkegel und Bewertungsfeld

Die Prognose für EURUSD, M30: Der Fächer, der den Median und das Interquartilband der Vergleichswerte projiziert, mit dem Bewertungsfeld, das die dahinterliegende Stichprobe anzeigt.


Wichtigste Merkmale

Ehrlichkeit durch Konzeption

  • Kein Vorausschauen. Das Ergebnisfenster eines Abgleichs muss streng vor Beginn des Abfragefensters enden, damit nichts aus der Zukunft der Abfrage selbst in die Menge der Präzedenzfälle einfließen kann. Dies ist die einzige Schutzmaßnahme, die eine analoge Suche von einer Kurvenanpassung unterscheidet.
  • ATR-normalisierte Ergebnisse. Kursbewegungen werden als Vielfache der zum Zeitpunkt des Spiels geltenden ATR ausgedrückt, sodass ein Präzedenzfall aus einer ruhigen Phase und einer aus einer volatilen Phase auf einer vergleichbaren Grundlage stehen. Dies ist der Ausgleich für das, was durch die Z-Normalisierung verloren ging.
  • Ein Urteil, das auch „Nein“ sagen darf. Das Tool gibt keine Prognose ab und unterdrückt den Kegel, wenn die Stichprobe zu klein ist oder die Tendenz bei beiden Kennzahlen nicht eindeutig ist.

Eine echte SAX-Bibliothek, keine Annäherung daran

  • Z-Normalisierung, PAA einschließlich des Bruchteilsfalls, bei dem die Fensterlänge nicht gleichmäßig durch die Wortlänge teilbar ist, gaußsche Bruchstellen über Acklams Probit, Kodierung und ein MINDIST, das nachweislich eine Untergrenze für den wahren Abstand bildet. Nichts davon gab es zuvor auf der Plattform.
  • Es werden Alphabetgrößen von 2 bis 10 unterstützt, wobei die Bruchpunkte einmalig bei der Konfiguration erstellt und zwischengespeichert werden.
  • Ein flaches Fenster wird als flach gemeldet und nicht stillschweigend kodiert: Bei einer Standardabweichung nahe Null gibt es keine Form, die normalisiert werden müsste, und das Erfinden einer solchen würde ein bedeutungsloses Wort ergeben.
  • Eine Brute-Force-Euklidische Metrik wird als Schalter zusammen mit der Produktionspipeline ausgeliefert, sodass die Pruning-Ergebnisse anhand der Antwort überprüft werden können, die sie reproduzieren sollen, anstatt ihnen blind zu vertrauen.

Praktisch auf einem Live-Chart

  • Die Suche läuft einmal pro geschlossenem Balken, nicht pro Tick, und liest den Verlauf ab Balken 1 ein, sodass der sich gerade bildende Balken weder in die Abfrage noch in den vorherigen Datensatz gelangt.
  • Die Größe des Feldes richtet sich nach dem tatsächlich gerenderten Text, sodass bei keiner Schriftgröße und keinem Inhalt etwas abgeschnitten wird; außerdem stehen ein helles und ein dunkles Design zur Verfügung, damit es auf jedem Chart-Hintergrund gut lesbar ist.
  • Jedes Chart-Objekt trägt ein gemeinsames Präfix und wird bei der Deinitialisierung entfernt, sodass keine verwaisten Objekte zurückbleiben.


Empfohlene Konfiguration

Einstellung
Empfohlener Wert
Anmerkungen
Symbol
Beliebiges liquides Instrument
Die Formanpassung ist konstruktionsbedingt skalierungsfrei. Bei der Entwicklung und im Screenshot wurde EURUSD verwendet.
Zeitrahmen
M30 bis H4
Es ist ausreichend historische Daten erforderlich, damit die festgelegten Muster aussagekräftig sind. Das Zeitfenster, der Zeithorizont und der Rückblick werden alle in Bars gemessen und bleiben daher beim Wechsel zwischen den Zeitrahmen unverändert.
Historische Daten
6000 Balken
Die Standard-Scan-Tiefe. Ein längerer Verlauf bedeutet mehr Präzedenzfälle und eine stabilere Verteilung, was jedoch mit einem linearen Anstieg der Suchzeit einhergeht.
Design des Bedienfelds
An Ihr Diagramm anpassen
Standardmäßig dunkel. Wechseln Sie bei einem weißen Diagramm zu „Hell“, da der Fließtext sonst nicht lesbar ist.


Dateistruktur

Ein Indikator und zwei Kopfzeilen. Die Kopfzeilen werden als <SAX\...> eingebunden und müssen daher in einem eigenen SAX-Unterordner abgelegt werden.

Datei
Rolle
Beschreibung
Include\SAX\SAXTransform.mqh
Die Transformation
Z-Normalisierung, PAA, Gaußsche Bruchstellen, Wortkodierung und die untere Begrenzung von MINDIST. Auf jede Reihe anwendbar, ohne Abhängigkeit von Charts oder Handel.
Include\SAX\SAXAnalogs.mqh
Die Suche
Zweistufiges „Prune-then-Rank“-Matching, die „No-Lookahead“-Sicherung, ATR-normierte Ergebnisse, die schrittweise Verteilung hinter dem Kegel und die Urteilsklassifizierung.
Indicators\SAX\SAXAnalog.mq5
Der Indikator
Führt die Suche für jeden neuen Balken durch und zeichnet den Prognosefächer sowie das Bewertungsfeld. Es wird nichts in Puffer geschrieben; es handelt sich ausschließlich um Diagrammobjekte.


Eingabeparameter

Eingabe
Standard
Was wird gesteuert
InpWinLen
48 Balken
Länge des Abfragefensters: Wie viel der jüngsten Form muss übereinstimmen, damit ein Balken als Präzedenzfall zählt.
InpHorizon
12 Balken
Prognosehorizont: Wie weit in die bekannte Zukunft jedes Vorläufers hinein wird das Ergebnis gemessen, und wie weit erstreckt sich der Kegel?
InpWordLen, InpAlphabet
8, 4
Die SAX-Auflösung. Längere Wörter und größere Alphabete unterscheiden feiner und ergeben daher seltener Übereinstimmungen; kürzere und gröbere Alphabete erfassen mehr Präzedenzfälle mit geringerer Ähnlichkeit.
InpMaxAnalogs, InpMinAnalogs
50, 10
Anzahl der zu behaltenden engsten Präzedenzfälle sowie die Mindestanzahl an Beispielen, unterhalb derer das Urteil unabhängig von deren Inhalt zwangsläufig auf „zu wenige“ festgelegt wird.
InpEdgeATR
0,25
Überzeugungsschwelle: Die mittlere Vorwärtsbewegung muss ein Viertel eines ATR überschreiten, um überhaupt als Tendenz zu gelten.
InpMetric
MINDIST
Die zweistufige „Prune-then-Rank“-Pipeline, die in der Produktion zum Einsatz kommt. Wechseln Sie zu „Euclid“, um eine Brute-Force-Analyse für jeden Kandidaten durchzuführen: gleiche Rangfolge, kein Pruning, nützlich als Referenzwert für Korrektheit und Geschwindigkeit.
InpATRPeriod
14
Der ATR-Wert, der zur Normalisierung der Ergebnisse und zur Skalierung des Kegels auf die Preisachse verwendet wird.
InpMaxHistory
6000 Balken
Wie weit zurück soll nach Präzedenzfällen gesucht werden?
Farben, Ecke, Design
Blau / Rot / Grau, oben links, dunkel
Akzentfarben für Kegel und Feld je nach Ergebnis, die Farbe der Bandlinie, die Ankerecke des Feldes sowie das helle oder dunkle Design.


Forschungsgrundlage

Die Umsetzung folgt der ursprünglichen SAX-Arbeit von Jessica Lin, Eamonn Keogh und Kollegen, deren SAX-Seite die Fachartikel sammelt.

SAX ist keine Kristallkugel für Kursprognosen, und dieses Tool wird „keine Kante“ häufiger melden als alles andere. Sein Wert liegt in den seltenen, gut belegten Fällen, in denen viele echte Präzedenzfälle in dieselbe Richtung weisen, sowie in der Disziplin eines Tools, das sich weigert, etwas anderes vorzutäuschen. Die gleiche Bibliothek lädt zu weiteren Arbeiten ein: SAX-Wörter als kategoriale Merkmale für ein Machine-Learning-Modell, die Erkennung von Motiven und Diskrepanzen zur Anomalieerkennung oder ein Markov-Übergangsmodell über das Wortwörterbuch.

Ein Begleitartikel leitet die Transformation und die Untergrenze ab, führt durch die Suche und ihre Schutzmechanismen und zeigt, dass der Validierungstest bestanden wird: Symbolic Aggregate Approximation (SAX) in MQL5: Historische Analogiesuche und Prognose.

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

Trade Journal and Performance Analytics Dashboard Trade Journal and Performance Analytics Dashboard

Ein schlankes, direkt im Chart integriertes Dashboard, das Ihre abgeschlossenen Trades auswertet und Gewinnquote, Gewinnfaktor, Gewinnserien sowie eine Kapitalentwicklungskurve anzeigt – ganz ohne Strategieparameter, nur mit Ihren eigenen Zahlen, die automatisch aktualisiert werden.

SHK Heikin Ashi MACD Signal Arrows SHK Heikin Ashi MACD Signal Arrows

Ein MetaTrader-5-Chartindikator, der Heikin-Ashi-Kerzen, bestätigte Kauf- und Verkaufspfeile, eine optionale Filterung von MACD-Histogramm-Divergenzen sowie konfigurierbare Benachrichtigungen anzeigt.

Global Macro Soros Global Macro Soros

Global Macro Soros. Ein Indikator zur Trendübereinstimmung über mehrere Zeitrahmen hinweg, inspiriert von George Soros’ Makro-Handelsstil.

Trade Manager Panel Simple Interactive Chart Trading Tool with Risk Management for MT5 Trade Manager Panel Simple Interactive Chart Trading Tool with Risk Management for MT5

Ein einfaches MQL5-Handelsmanagement-Panel mit Chartlinien per Drag-and-Drop, dynamischer Lot-Größenbestimmung auf Basis des Risikoprozentsatzes, ATR-/Point-Stop-Loss-Modi und Echtzeit-Überwachung des variablen Gewinns und Verlusts.