MetaTrader 5 herunterladen

Die Vorhersage von Marktbewegungen mittels der Bayes'schen Klassifikation und Indikatoren auf der Basis einer singulären Spektralanalyse

17 Juli 2017, 12:34
Roman Korotchenko
5
470

Einführung

Heutzutage werden in etwa 60-70% des Handels an den Aktienbörsen von Algorithmen getätigt und etwa 90% in den FORTS und FOREX-Märkten. Entsprechend wächst der Anteil des Volumens, den Roboter bewegen. Das liegt daran, dass die Strategie "Kaufen und Halten" nicht länger in den aktuellen Märkten mit ihren kurzlebigen Schwankungen funktioniert. Effizientes Handeln verlangt den Übergang von passiver Investition zu aktiver Handelsaktivität. Der Erfolg in modernen Märkten basiert auf effektiven Algorithmen und einer Reihe von Regeln, um die Zahl gewinnbringender Transaktionen gegenüber den verlustbringenden zu erhöhen und die Verluste zu minimieren.

Ein viel versprechender Weg, das zu erreichen, ist ein Empfehlungssystem für ein zeitbezogenes Handelssystem durch die Kombination der Vorhersagen durch eine singuläre Spektralanalyse (SSA) und einer wichtigen Methode des maschinellen Lernens auf Basis des Bayes'schen Theorems. Der Wert des gewählten Ansatzes ergibt sich dadurch, dass die Datenberechnung ausschließlich durch eine statistische Methode erfolgt und keine implizite, unbegründete Annahmen verwendet. Das gibt uns eine klare Idee von den Möglichkeiten und den Beschränkungen dieser Methode und ihren Perspektiven, ein automatisches Handelssystem aufzubauen.

Während der Entwicklung dieses Systems lag der Fokus auf den Zeitrahmen von 5 Minuten bis einer Stunde. Deutlich höhere Zeitrahmen, mehrere Stunden oder Tage, sind zwar durchaus verbreitet durch die Beschreibungen theoretisch erfolgreicher statistischer Methoden (wegen des verringerten Einflusses chaotischer Komponenten), aber solche Methoden sind nur von geringem, praktischen Nutzen für reale Handelsaktivitäten.


Besonderheiten der Anwendung und die Preisvorhersage mit SSA

Die Methode SSA wird zur Lösung folgender Probleme verwendet:

  • Trennung der Hauptkomponenten der Zeitreihen (Trend, saisonale Schwankungen, Schwingungen) und Rauschfilter;
  • Suche nach Periodizitäten;
  • Glättung der Quelldaten durch Begrenzung der Komponenten;
  • Vorhersage des weiteren Verhaltens der beobachteten Abhängigkeiten.


SSA ist eine der wenigen statistischen Methoden für nicht-stationäre Zeitreihen. Perfekte Beispiele solcher Zeitreihen sind die Preise eines Marktes mit ihren Trends, Ausbrüchen und Impulsen. Zur selben Zeit bilden sich die Preise durch unabhängige, zufällige Faktoren, die sich in ihrer Wirkung und Dauer unterscheiden. Angenommen wird, dass, der Markt die meiste Zeit von solchen Kräften getrieben wird, und es möglich ist, ein Modell, das auf der Summe verschiedener Zeitrahmen beruht, zu verwenden und das dem Ansatz von SSA entspricht.

Information über die mathematische Basis von SSA und dessen "Caterpillar"-Version findet sich in [1] (siehe die Liste der Referenzen am Ende des Artikels). Aus praktischer Sicht ist es wichtig zu beachten, dass bis vor Kurzem einer der wichtigsten Gründe für die Verbreitung der SSA in der Datenverarbeitung, die Abwesenheit schneller Algorithmen ähnlich der FFT-Analyse war. Das Problem existiert nicht mehr — solche Algorithmen wurden entwickelt und ihre Effektivität bewiesen [2] (siehe die Liste der Referenzen am Ende des Artikels).

Vorhersagen mittels SSA verwenden verborgene Periodizitäten: durch die Zerlegung einer Zeitreihe in Komponenten, die sich aus der Analyse ergeben haben, können diese Komponenten in Verhaltensparameter überführt und in einem Ergebnis zusammengefasst werden. Das Ergebnis ist eine Vorhersage, deren Qualität davon abhängt, wie gut die anfänglichen Komponenten die Originaldaten beschreiben. Natürlich ergeben sich unzuverlässige Vorhersage für chaotische, volatile Zeitreihen, aber sie bewähren sich bei Preisen, die von stabilen Faktoren und relativ wenig Rauschen beeinflusst werden. Zusätzlich gilt, dass es wenig ratsam ist, statistischen Analysen von wenig gehandelten Finanzinstrumenten zu vertrauen. Die Auswirkungen einzelner Faktoren und der "großen" Spieler ist in solchen Fällen unberechenbar und gefährlich.


Die Kombination von Indikatoren zu Erhöhung der Zuverlässigkeit der Vorhersage

Drei Indikatoren zur Vorhersage wurden entsprechend dieser Idee entwickelt. Das Erkennen des Trends und seine Vorhersage - die SSA-Trend-Vorhersage und die Schnelle Vorschau auf Basis der schnellen Transformation, SSACD (ein veränderter MACD) und die SSA-Stochastik. Jeder Indikator wird in zwei Versionen präsentiert: einfach und erweitert. 

Zwar verwenden alle Indikatoren dieselben Daten, aber sie konzentrieren sich auf verschiedene Charakteristika des Prozesses, jeder von ihnen hat seine Vor und Nachteile. Es gibt einen natürlichen Wunsch, all Indikatoren zu kombinieren und durch die Synergie, die Effizienz, die Robustheit und Genauigkeit der Auswertung der Situation im Allgemeinen zu steigern.

Aus Sicht einer spekulativen Strategie ist die offensichtliche und benötigte Information: Wohin bewegt sich der Preis in der nächsten Zukunft?". Es gibt drei Möglichkeiten: Der Preis steigt, schwankt oder fällt.

Ein Indikator, der den Preis gemäß des Trends vorhersagt, muss positive oder negative Werte liefern, wenn die Preise steigen oder fallen. Durch das Bestimmen des Fehlers von EPS kann eine Bedingung postuliert werden: Wenn die "Differenz" nahe bei Null liegt mit einem Radius von Epsilon (EPS), dann können die Preisbewegungen vernachlässigt werden.

Der Indikator SSACD ist eine Modifikation des MACD, geändert, um eine Verzögerung der Information zu vermeiden, die üblicherweise durch die gleitenden Durchschnitte entsteht. Aber um eine Inflation der Begriffe zu vermeiden, nennen wir ihn trotzdem MACD. Der MACD wird als Histogramm auf einem Chart gezeichnet und dessen exponentieller gleitender Durchschnitt heißt Signallinie. Entsprechend sind alle Änderungen der geglätteten Linie etwas verzögert im Vergleich zum MACD. Daher, wenn der Preis steigt ist (MACD-Signal)>0 und im Fallen gilt (MACD-Signal)<0. Das Bestimmen eines Fehlerbereiches um Null herum, führt zu einer Übergangszone für instabiles Preisverhalten.

Der Indikator SSA-Stochastic ist ein modifizierter schneller Stochastik Oszillator mit reduzierter Verzögerung ähnlich wie oben. Die Linien des Stochastik-Oszillators sind typischerweise gleichlaufend bei einem lokalen Trend. Das heißt, die Bedingung für Steigen, Fallen oder Seitwärtsbewegung der Preise kann über die "Differenz" zur Stochastik definiert werden: über oder unter Null oder innerhalb der Fehlertoleranz.

Da die Indikatoren eine lokale Prognose anbieten, ergibt die Auswertung der oben erwähnten Messungen die Informationen über die Preisbewegungen der nächsten Zukunft. Übereinstimmende Werte erhöhen die Zuverlässigkeit der Prognose und verringern die Möglichkeit eines Fehlers.

Um die Richtigkeit des gewählten Ansatzes zu verifizieren, muss die Kombination der Indikatoren evaluiert werden, um auf Basis der historischen Daten die kritischen Fehler in der Vorhersage zu reduzieren. Als Fehler gilt, wenn die kurzfristige Vorhersage eine Richtung ergibt, die Preis sich aber in die andere bewegen.

Anwender, die mit den oben erwähnten Indikatoren gearbeitet haben, sind möglicherweise an den gewählten Parametern und den Gründen dafür interessiert. Aber, da die nächste Vorhersage am meisten interessiert, gibt es keine Notwendigkeit für eine spezielle und langfristige Auswahl dieser Parameter. Geeignete Parameter dieser Indikatoren sind jene, die sein Verhalten (ohne Vorhersage) hauptsächlich durch die Zeitreihen über die Kombination aus der Glättung und Genauigkeit des Preisverhaltens bestimmen und auf eine große Zahl von Finanzinstrumenten angewendet werden kann. Die Folgenden wurden ausgewählt:

  1. Um den Preis auf Basis des Trends zu bestimmen (SSA Fast Trend Forecast, Version 2.5):
    Algorithm: Recurrent forecast,
    N: Data fragment = 256,  
    Time-dependent lag = N/3,
    Trend    high-freq. limit= 0.25,
    Forecast high-freq. limit= 0.25,
    Forecast transform = S[i]/Max(:),
    Forecast smoothing = Smoothing MA(3).
  2. Für SSACD Forecast (Limited) Version 2.5:
    Algorithm: Recurrent forecast,
    N: Data fragment = 512,  
    Time-dependent lag = N/4,
    FastTrend high-freq. limit = 0.4
    SlowTrend high-freq. limit= 0.6
    Signal SMA period = 4
    Data preparation = {ln(S[i]-Smin+1)}/Max(:)
    Forecast preparation = S[i] /Max(:)
    Forecast smoothing = Smoothing MA(3).
  3. Für SSA Stochastic (Limited) Version 2.0:
    Algorithm: Recurrent forecast,
    N: Data fragment = 256,  
    Time-dependent lag = N/4,
    %K high-freq. limit = 0.3,
    %D high-freq. limit = 0.6,
    Data preparation = S[i] /Max(:),
    Forecast smoothing = Smoothing MA(3).

Die Teile der historischen Daten für die Analyse wurden aus unterschiedlichen Zeitrahmen gewählt:

Für GOLD Futures die Zeitrahmen M5, M15, H1;

BRENT — M5, M15;

Si-USD/RUB — M15,

Für Forex-Preise von EUR/USD — M15.

Unterschiedliche Handelsinstrumente auf unterschiedlichen Zeitrahmen werden mit unveränderten Indikatorparametern analysiert, um die Stabilität und die Qualität der Vorhersage zu berücksichtigen. Iterationen über die Daten der Zeitreihen mit einer Länge von 1000 Punkten mit der Berechnung der Vorhersage für jeden Punkt in der Geschichte, ermöglicht den Vergleich zwischen Vorhersage und Faktum.

Zeigen wir die Ergebnisse der Vorhersage durch einen Indikator auf Basis der Schlusskurse der Preisdaten des Charts.



Bild 1. Teil des Vergleichs der aktuellen Schlusskurse, deren Prognose und mit einer Glättung von drei Punkten

Bild 1 zeigt, dass die meiste Zeit die Vorhersage "des Trends" etwas verzögert ist. Das ist nicht überraschend, da Preisvorhersagen für Trends mit der Glättung für viele verschiedene Finanzinstrumente bestimmt wurden, weil so ein hoher Anteil hochfrequenter Schwankungen herausgefiltert werden. Ein ähnliches Verhalten der Vorhersage gilt auch für andere Instrumente (BRENT, GOLD) auf anderen Zeitrahmen (5 Minuten und 1 Stunde).

Vergleichen wir die Vorhersagen eines anderen Indikators (MACD-Signal) mit den aktuellen Werten.


Bild 2. Teile des prognostizierten und aktuellen Richtung der Preisentwicklung gemäß des MACD-Indikators 


Bild 3. Konsistenz des Trends von Preisänderung und seiner Vorhersage durch den MACD

Die Fehlertoleranz (EPS) wurde auf 0,25 vom normalisierten Standard (maximale Amplitude) der Werte der Zeitreihe (MACD-Signal) gesetzt.

Ein Ausschnitt des Vergleiches der Stochastik und der vorläufigen Prognosen jeden Punktes mittels des Indikators "SSA Stochastic" zeigt das folgende Bild.


Bild 4. Aktuelle und prognostizierte Werte der Stochastik 

Die Bilder 2 und 4 zeigen fast gleichlaufende Bedingungen von Vorhersage und aktuellen Werten nach den Daten der Indikatoren von SSACD und der SSA-Stochastik. Das kann wohl erwartet werden, wenn die Vorhersage durch SSA auf viele Oszillatoren angewendet werden wird.

Da die Preisvorhersage im Bild 1 eine Reihe von Fehlern in der Richtung aufweist, versuchen wir, ob nicht eine Kombination der Indikatoren eine Reduktion dieser Fehlerzahl ermöglicht. Die Differenz der aktuellen und vorhergesagten Werte im Bild 1 ist irrelevant, da sie keine Verluste durch übereinstimmende Positionen erzeugen. 

Es sind Werte: (MACD-Signal), unterschiedliche Abweichungen der Zeitreihen der aktuellen und der vorhergesagten Preise und die Stochastik, geglättet über drei Punkte. Die Konsistenz der oben definierten Bedingungen, die die Richtung der Preisänderung anzeigen, wird im Weiteren zur Analyse der Effizienz der ihrer Kombination verwendet. 


Bild 5. Übereinstimmung der aktuellen und vorhergesagten Richtungen der Preisänderung bei der Verwendung von drei Indikatoren

 

Bild 6. Die erhebliche Fehler bei der Vorhersage der Richtung der Preisänderung unter Verwendung nur der trendbasierten Vorhersage


Bild 7. Die Prognosefehler der Kombination einer Preisvorhersage auf Basis von Trend und (MACD-Signal)


Bild 8. Die Prognosefehler der Kombination einer Preisvorhersage auf Basis von Trend, MACD und der Stochastik

Die Bilder 6 — 8 zeigen die Synergie der drei Indikatoren — die Zahl der relevanten Prognosefehler der Richtung der nächsten Preise fällt um den Faktor 5 bis 7 durch die Werte der Indikatoren. 


Die Bayes'sche Klassifizierung der möglichen Preisbewegungen auf Basis der Werte der Indikatoren

Das Bayes-Theorem ist bereits Teil der Basiskurse der Wahrscheinlichkeitstheorie und bezieht sich auf die bedingte Wahrscheinlichkeit , dass das Ereignis x nach dem Ereignis y auftritt.

Per Definition:  ,  wobei die bedingte Wahrscheinlichkeit der Ereignisse x und y sind, mit deren jeweiligen, individuellen Wahrscheinlichkeiten p(x) und p(y). Entsprechend können bedingte Wahrscheinlichkeiten in zwei Arten ausgedrückt werden:

Bayes-Theorem:

Bayes-Theorem

 

Für unser Ziel, die Preis vorherzusagen, kann das Theorem wie folgt umgeschrieben werden:


wobei:

V — Das Ereignis, das der aktuellen Preisbewegung entspricht, innerhalb einer gegebenen Richtung (Vorzeichen der Änderung). Es gibt drei Optionen: V1= -1 "abwärts", V2 = 0 "seitwärts", V3 = +1 "aufwärts".

F — Das Ereignis, das der Prognose der Preisrichtung oder das Vorzeichen der vorhergesagten Differenz (drei mögliche Optionen: F1 = -1 "abwärts", F2 = 0 "seitwärts", F3 = +1 "aufwärts").

M — Das Ereignis, das der Prognose des Vorzeichens von (MACD-Signal) entspricht, im Einklang mit dem Preisverhalten (drei mögliche Optionen: M1 = -1 "abwärts", M2 = 0 "seitwärts", M3 = +1 "aufwärts").

S — Das Ereignis, dass mit dem Vorzeichen der Prognose der Differenz zur Stochastik korrespondiert (drei mögliche Optionen: S1 = -1 "abwärts", S2 = 0 "seitwärts", S3 = +1 "aufwärts").

Der linke Teil der Formel kann wie folgt in Sprache übersetzt werden: "Wie groß ist die Wahrscheinlichkeit einer Preisänderung der Richtung Vk={-1,0,1}, falls die Vorhersage der Indikatoren bestimmte Werte für F, M, S hat?".

Um als nächstes die Darstellung zu vereinfachen, sagen wir, dass die Indikatoren die Werte -1, 0, +1, annehmen als Vorzeichen der Differenzen oder von (MACD-Signal). 

Um die Wahrscheinlichkeiten auszuwerten, und zu vergleichen, ob sich der Preis auf,- ab- oder seitwärts bewegt, müssen wir die Werte auf der rechten Seite der Formel kennen. Dafür müssen wir zweierlei erledigen:

  1. ein "Lernprozess" auf Basis der historischen Daten,
  2. prüfen der "Stabilität" der erlernten Ergebnisse mit Daten von außerhalb des Trainingsbereiches.

Varianten des Trainings wurden mit verschiedenen Teilen der Daten durchgeführt, mit anderen Zeitrahmen und anderen Handelsinstrumenten. Das Trainingsbeispiel umfasst mehrere hundert Bars. Die Ergebnisse sind wegen der allgemeinen Gültigkeit der gewählten Parameter der Indikatoren, wie sie im dritten Abschnitt des Artikels beschrieben wurden, zu erwarten alle ähnlich.

Veranschaulichen wir die Ergebnisse der Analyse anhand der Schlusskurse des Futures USD/RUB im Zeitrahmen 15 M. 

Wir beschränken uns darauf, nur die Wahrscheinlichkeiten von Preisen, die "auf-" oder "abwärts" gehen, zu betrachten und diese beiden Werte werden für die Entscheidung verwendet, eine Position zu eröffnen oder zu schließen.

Es ist trivial, dass im Falle einer realen Abwärtsbewegung der Preise, die Signale der Indikatoren auch negativ ("abwärts") oder nahe Null ("seitwärts") sein müssen. Das wird durch die erste Auswertung der bedingten Wahrscheinlichkeiten der gemeinsamen Prognosen bestätigt, wenn der Preis fällt. Andere Wahrscheinlichkeiten jedoch, die durch das Training mit Daten des Futures USD/RUB-15M ermittelt wurden, zeigen die Möglichkeit von einer Abweichung der erwarteten Werte, die in den Tabellen 1, 2 gezeigt werden.

Tabellen 1 und 2


Ergebnisse der Berechnungen auf Basis der Bayes'schen Formel erzeugen interessante Informationen über die Verteilung der Wahrscheinlichkeit realer Bewegungen in Abhängigkeit der Werte der Indikatoren. Das Maximum der bedingten Wahrscheinlichkeiten der Preise, die abwärts (Ereignis V1 =-1) und aufwärts (Ereignis V3 = +1), abhängig von prognostizierten Werten werden in den Tabellen 3 und 4 gezeigt.

Tabellen 3 und 4


Die Klassifikationen sind einfach: Wenn die augenblickliche bedingte Wahrscheinlichkeit einer "Abwärtsbewegung" größer ist als 0,5 und zugleich größer ist als die einer "Aufwärtsbewegung", ist die Prognose der Preisbewegung abwärts. Die Bedingungen für "Aufwärtsbewegungen" ist ähnlich.

Hier ist das Trainingsergebnis in Form eines Preischarts mit den Markierungen der Klassifikationen.

Bild 9. Vorhersagende Klassifikation der Preisbewegungen des Futures USD/RUB-15 berechnet auf Basis der Trainingsdaten 

Die Ergebnisse der Klassifikation des Bildes 9 sind bemerkenswert: Die Vorhersage der Richtung der nächsten Zukunft schafft es, schnell die Richtung zu wechseln und sie beizubehalten. 

Die Hauptfrage aber muss noch beantwortet werden: Die Robustheit der Trainingsergebnisse dargestellt in der Matrix der bedingten Wahrscheinlichkeiten P(V|FMS), so dass sie auch in anderen Situationen angewendet werden können (bezüglich der Trainingsdaten).

Die historischen Zeitreihen anderer Finanzinstrumente auf anderen Zeitrahmen werden für die den Test auf Robustheit herangezogen. Mit den Prognosewerten der Indikatoren, die für jeden Augenblick bekannt sind, wird eine Klassifikation nach der Richtung mittels der vorbereiteten Matrix der bedingten Wahrscheinlichkeiten des Futures USD/RUB-M15 durchgeführt. Dann werden die Ergebnisse der Klassifikation mit den tatsächlichen Situationen verglichen.

Bild 10. Vorhergesagte Klassifikation der Preisbewegungen für EUR/USD-15M (trainiert mit dem Future USD/RUB-15M)


Bild 11. Vorhergesagte Klassifikation des Futures für GOLD-15M (trainiert mit dem Future USD/RUB-15M)


Bild 12. Vorhergesagte Klassifikation des Futures für GOLD-5M (trainiert mit dem Future USD/RUB-15M)


Bild 13. Vorhergesagte Klassifikation des Futures für BRENT-5M (trainiert mit dem Future USD/RUB-15M)

Die Ergebnisse der Bilder 10 — 13 sehen sehr vielversprechend aus. Die Klassifikationen, die aus den Daten des Futures USD/RUB-15M erstellt wurden, funktionieren auch in anderen Zeitrahmen und anderen Finanzinstrumenten.


Empfohlenes System auf Basis der Bayes'schen Klassifikationen

Die vorgestellten Klassifikationen können als Basis für die Entwicklung eines Empfehlungssystem verwendet werden, um dann ein Handelssystem mit wenigen Parametern zu entwickeln. Die begrenzte Anzahl von Parametern erlaubt eine effiziente Optimierung.

Betrachten wir die Gründe der Verwendung von historischen Daten durch ein System. Natürlich ist das etwas realitätsfern, da alles grundsätzlich vereinfacht wurde, aber es zeigt das Potential dieses Ansatzes.

Es gibt 4 Parameter:

  1. Risk Ratio — Stopp-Level, als Vielfaches der Volatilität.
  2. Risk Fix     — die erlaubten Schwankungen in die Gegenrichtung bei der Positionsöffnung und während des Offenhaltens profitable Positionen (als Vielfaches der Volatilität).
  3. Probability Trade Min — die erlaubte Wahrscheinlichkeit für das Offenhalten der Position.
  4. Probability Trade OK — die Wahrscheinlichkeit, ab der die Eröffnung einer neuen Position empfohlen wird.


In diesem Fall wird die Volatilität über den Durchschnitt der Wurzel aus der Standardabweichung der Differenz zwischen Eröffnungs- und Schlusskursen des Teils der Testdaten gemessen. Der Stopp-Level wird an den vorherigen Schlusskurs gebunden und wird nur in eine Richtung verschoben. Die Entscheidung eine Position zu eröffnen oder zu schließen wird getroffen, nach dem Schließen der Bar.

Die Empfehlungen des Systems, das mit den Daten des Futures USD/RUB-15M trainiert wurde, werden für den simulierten Handel des Futures GOLD-15M gemäß der Historie der Schlusskurse, die im Bild 11 zu sehen sind, und den prognostizierten Klassifikationen mittel der Parameter 3 und 4. Die Chart unten zeigen die Veränderung der Profitabilität in Abhängigkeit von "Zeit", gemessen durch die Zahl der Bars.



Bild 14. Der Einfluss des Wahrscheinlichkeitswertes eine Empfehlung für eine Position auf die Profitabilität des Handels des Futures GOLD-15M (trainiert mit den Daten des Futures USD/RUB-15M)



Bild 15. Der Einfluss des Parameters für den Stopp-Level auf die Profitabilität beim Handel mit dem Future GOLD-15M (trainiert mit den Daten des Futures USD/RUB-15M



Bild 16. Der Einfluss des Wahrscheinlichkeitswertes eine Empfehlung für eine Position auf die Profitabilität des Handels des Futures EUR/USD-15M (trainiert mit den Daten des Futures USD/RUB-15M)

Die Ergebnisse der Simulation gezeigt in den Bildern 14 — 16 zeigt ein stabiles Wachstum der Profitabilität ohne größere Verluste. Der Einfluss der Parameterwerte auf das Wachstum der Profitabilität zeigt die Möglichkeit und die Effizienz der Optimierung. 


Das Programm für eine schnelle Einschätzung der Marktdynamik

Der nächste Teil beschreibt die Strukturen, Regeln und die Testergebnisse eines automatisierten Handelssystems. Dennoch sollte es logisch sein, eine Softwaremodul anzubieten, das für schnelle Bewertungen der Situationen und den "Empfehlungen" während des tatsächlichen Handels konzipiert ist. Diese Arbeit enthält Module, die das Klassifikationsproblem lösen und mit verschiedenen Paaren von Indikatoren arbeitet: a) SSACD Forecast Limited und SSA Stochastic Limited, b) SSACD Forecast und SSA Stochastic. SSACD muss mindestens in der Version 2.5 vorliegen und die Stochastik — 2.0 oder höher. Fall die Vollversionen der Indikatoren verwendet werden, erlaubt das Programm eine bessere Anpassung der Kontrollparameter für die Klassifikation und bietet Möglichkeiten, mit anderen Daten zu trainieren, die die Auswahl des "nächsten" Modells für die vorhersagende Klassifikation ermöglicht. Vorhersage "mit Trend" wird innerhalb des Moduls durchgeführt, daher wird eine eigene Instanz des Indikators SSA Fast Trend Forecast nicht benötigt.

Es sollte erwähnt werden, dass das Programm integrierte Modelle verwendet, und daher kann es nicht garantieren sondern nur helfen eine Preisentwicklung für aktive gehandelte Finanzinstrumente zu evaluieren. Man sollte sich nicht auf statistische Prognosen verlassen, wenn es nur wenige Positionen gibt, da individuelle Entscheidungen möglicherweise zu viel Einfluss haben. Dasselbe gilt für Zeitspannen oder Zeitrahmen, wenn die Preise "Lücken" aufweisen.

Der Expert Advisor heißt SSA Bayes Observer. Beim Start kann man die Werte der oben erwähnten Parameter verändern.

Bild 17. Start des Programms SSA Bayes Observer mit den Standardparametern

Zusätzlich zu den Variablen des Observers kann man auch die Parameter der Indikatoren für die Trendprognose, SSACD und SSA Stochastic bestimmen. Ihre Bedeutung und Zweck wurde bereits bei der Beschreibung der Indikatoren selbst erklärt, aber man kann auch die voreingestellten Werte verwenden.

Wenn die Indikatoren SSACD und SSA Stochastic der letzten Version installiert worden sind, kann der Nutzer mit einem Interface ähnlich dem folgenden arbeiten:


Bild 18. Das Interface des Programms SSA Bayes Observer

Die aktuellen Einstellungen können, während das Programm läuft, über den entsprechenden Karteireiter geändert werden.


Bild 19. Parameter der Klassifikation 


Das Basismodell der Klassifikation kann über den Karteireiter MODELS gewählt werden:

Bild 20. Der Karteireiter zur Auswahl des Modells

Die Parameter der Bilder 18 — 20 können, während das Programm läuft, geändert werden. Die Trainingsmodelle können nur gewählt werden, wenn die Vollversion der Indikatoren SSACD und SSA Stochastic zur Verfügung stehen.

Während der Operation verfügt das Programm über eine Interface ähnlich dem Folgenden:


Bild 21. Der SSA Bayes Observer bei der Arbeit 

Im Bild 20 kann man sehen, dass die untere Zeile des Interfaces FIX und STOP anzeigt— Level verschiedener Handelsmodelle. Sie sollen die Position schließen, wenn die Werte erreicht oder überschritten werden. Der Level FIX kommt zum Tragen, wenn sich die Position positiv entwickelt. Der Level STOP führt zum sofortigem Schließen der Position. Es wird angenommen, dass die Entscheidungen über existierende Positionen nach der Analyse der Zeitspanne durchgeführt wird (die Anzeige READY).

Schlussfolgerung

Dieser Artikel erklärt die Methode und den Algorithmus für ein Empfehlungssystem eines zeiteffizienten Handels. Es werden dazu Fähigkeiten der Prognose durch eine singuläre Spektralanalyse (SSA) und wichtige Methoden des maschinelles Lernen auf Basis der Bayes-Theorems verwendet. Die Modellierung wurde durchgeführt, um die Machbarkeit eines mit einer Reihe von Daten trainierbaren Systems zu ermitteln, um Zeitreihen anderer Zeitrahmen und andere Finanzinstrumente zu analysieren. Ein Programm wurde vorgestellt, das die Machbarkeit einer Methode zur Analyse der realen Daten in der Praxis zeigt. Die Beschreibung der Struktur des Programms und die Erklärung des Codes werden im nächsten Artikel beschrieben.

Die praktische Anwendung der Klassifikation in Echtzeit hat eine Reihe von Problemen aufgezeigt, die gelöst werden müssen, um eine Strategie für automatisiertes Handeln zu entwickeln. Auch die werden im nächsten Artikel behandelt.

Ein besonderer Dank gebührt Anatoli Kazharski für seine Entwicklung des grafischen Interfaces [3], eine harte, zeitaufwendige Arbeit, wie auch den Spezialisten, die die exzellente, mathematische Bibliothek ALGLIB [4] für MQL realisiert haben.

Liste der Referenzen

  1. N. E. Golyandina The "Caterpillar"-SSA method: forecast of time series. Study Guide. Saint-Petersburg, 2004.
  2. Korobeynikov, A. Computation- and space-efficient implementation of SSA. // Statistics and Its Interface. 3, 2010, 3, 357-368.
  3. https://www.mql5.com/de/articles/3173
  4. https://www.mql5.com/de/code/1146

Übersetzt aus dem Russischen von MetaQuotes Software Corp.
Originalartikel: https://www.mql5.com/ru/articles/3172

Beigefügte Dateien |
SSABayesObserver.zip (3402.76 KB)
Letzte Kommentare | Zur Diskussion im Händlerforum (5)
WaitPatiently
WaitPatiently | 28 Aug 2017 in 15:12

Hello Mr. Korotchenko,

I found your article very interesting and tried to run the EA (from download SSABayesObserver.zip).

But everytime when I run the EA, immediately after filling the parameter-dialog and klick on 'Enter' to continue, the EA is removed.

Terminal/Experts shows a library error:

1st line: "Cannot find 'GetSSATrendPredictor' in 'SSA\SSABayesLib.ex5'"

2nd line: "unresolved import function call"

Terminal/Journal shows the following:

1st line: "initializing of SABayesObserver (EURUSD, M15) failed"

2nd line: "expert SSABayesObserver (EURUSD, M15) removed"

It seems I'm working with a wrong version of 'SSA Trend Predictor'?

I'm sorry, but the translations are sometimes so bad that I can't follow.

Carl Schreiber
Carl Schreiber | 4 Sep 2017 in 12:28
... so bad that I can't follow.
  1. Worauf bezieht sich das?
  2. Ich hab zwar kein MT5 - kann es also nicht testen, aber liegen die verschiedenen Dateien und Verzeichnisse bei Dir an den richtigen Stellen?
WaitPatiently
WaitPatiently | 5 Sep 2017 in 17:59
Carl Schreiber:
  1. Worauf bezieht sich das?
  2. Ich hab zwar kein MT5 - kann es also nicht testen, aber liegen die verschiedenen Dateien und Verzeichnisse bei Dir an den richtigen Stellen?

Hallo Carl und danke für die Reaktion.

Zu 1. Das bezieht sich auf die Übersetzungen. Ich möchte Niemandem Böses, aber man muss schon sehr oft unterscheiden zwischen Geschriebenem und Gemeintem ;-))

Zu 2. Ich denke schon dass die Dateien da liegen wo sie hingehören. 'GetSSATrendPredictor()' ist eine Funktion, die SSABayesLib.ex5 exportieren sollte, anscheinend aber nicht vorhanden ist.

Der EA ruft die Funktion auf, das hab' ich im Quellcode verfolgen können. Die Meldung 'unresolved import function call' sagt das ja genau aus. EA und Library passen offensichtlich nicht zueinander.

Ich frage mich nur was da nicht stimmt. Der Fehler fällt doch sofort auf. Daher sollte die Installation normalerweise i.O. sein!?!?!?

Carl Schreiber
Carl Schreiber | 5 Sep 2017 in 19:43

Zu 1. Gib doch mal eine Stelle an!

Zu 2. Der Autor hat wohl in Russisch geschrieben! (https://www.mql5.com/ru/articles/3172) aber auch engl. Kommentare zeigen das gleiche Problem! Kannst Du ihm auf Englisch schreiben, oder in Deutsch und mit Google Translate ins Russische? Nur er kann Dir helfen!

Christian
Christian | 6 Sep 2017 in 06:41
Carl Schreiber:

Zu 1. Gib doch mal eine Stelle an!

Zu 2. Der Autor hat wohl in Russisch geschrieben! (https://www.mql5.com/ru/articles/3172) aber auch engl. Kommentare zeigen das gleiche Problem! Kannst Du ihm auf Englisch schreiben, oder in Deutsch und mit Google Translate ins Russische? Nur er kann Dir helfen!


Meistens liegt es an der Übersetzungen . Da auch einfach Code Übersetzt wird was oft in die Hose geht. 

Die testen das nie in , ich muss auch oft den Code wieder anpassen. Hatte dazu auch mal was geschrieben irgendwo irgendwann.

Habe es gefunden hier -> https://www.mql5.com/de/forum/75500#comment_4884663


Irgendwann bekommen die das auch hin nur getesteten Code auf die User loszulassen :-)

Gruß

Sortierverfahren und deren Visualisierung mit MQL5 Sortierverfahren und deren Visualisierung mit MQL5

Für die Arbeit mit der Grafik wurde in MQL5 eine spezielle Bibliothek Graphic.mqh erstellt. Der Artikel gibt ein Beispiel deren praktischer Anwendung und erklärt den Sinn von Sortierverfahren. Zu jedem Sortierverfahren gibt es mindestens einen Artikel, zu einigen wurden bereits ganze Untersuchungen veröffentlicht, deswegen wird in diesem Artikel nur die Grundidee beschrieben.

Graphisches Interface X: Textauswahl im mehrzeiligen Textfeld (build 13) Graphisches Interface X: Textauswahl im mehrzeiligen Textfeld (build 13)

In diesem Artikel erreichen wir, Text mittels verschiedener Tasten auszuwählen, und markierten Text zu löschen, genau so, wie man das von einem Texteditor kennt. Zusätzlich wird der Code weiter optimiert, und es werden die Klassen für die zweite Stufe in Richtung der endgültigen Version der Bibliothek vorbereitet, die alle Elemente als Einzelbilder vor einem Hintergrund darstellt.

Universeller Expert Advisor: Zugang zu Symboleigenschaften (Teil 8) Universeller Expert Advisor: Zugang zu Symboleigenschaften (Teil 8)

Der achte Teil des Artikels beschreibt die Klasse CSymbol, ein spezielles Objekt, das Zugriff auf ein Handelssymbol ermöglicht. Wenn diese Klasse in einen Expert Advisor miteibezogen wird, bietet sie eine breite Palette von Symboleigenschaften und macht die Programmierung von Expert Advisors noch einfacher und multifuktionaler.

Cross-Plattform Expert Advisor: Geldmanagement Cross-Plattform Expert Advisor: Geldmanagement

Dieser Artikel beschreibt die Implementierung von Methoden des Geldmanagements für einen Cross-Plattform Expert Advisor. Die Klassen des Geldmanagements führen die Berechnungen der Lotgröße der nächsten Position des Expert Advisors durch.