Startseite Technischer Indikator Beitrag

PCA Synthetics: Effiziente Indikatoren für MetaTrader 5

Anhang
16997.zip (11.72 KB, Herunterladen 0 mal)

Der PCA Synthetics Indikator ermöglicht die automatische Auswahl der Koeffizienten für jedes Instrument in einem pseudo-stationären Portfolio, das dazu neigt, sich um null zu stabilisieren.

Für die Nutzung des Indikators ist die AlgLib-Bibliothek im Include\Math-Ordner des Terminals erforderlich.


Ein wenig Theorie

Jedes Handelsinstrument bewegt sich in seine eigene Richtung, wobei jede Richtung eine separate Dimension in einem multidimensionalen Array darstellt. Durch das Drehen der Matrix, sprich das Multiplizieren jedes Elements mit einer bestimmten Zahl, versuchen wir eine Achse zu finden, deren Abstand zu den Instrumenten minimal ist, also die geringste Gesamtvarianz aufweist. Die Zahl, mit der jedes Element der Matrix multipliziert wird, entspricht dann dem Winkel, um den das bewegte Instrument gedreht werden sollte, damit es sich in die gleiche Richtung wie die anderen Instrumente bewegt. Dieser Winkel wird zum Koeffizienten für jede Währung im Portfolio.

Liegt der Koeffizientenwert über 0, wird die Währung gekauft; liegt er unter 0, wird sie verkauft. So können wir die Stationarität des erstellten Synthetik-Portfolios aufrechterhalten, indem wir die Koeffizienten regelmäßig neu berechnen. Außerdem findet die PCA nicht nur die Achse mit der geringsten Varianz für das Portfolio, sondern mehrere. Die Anzahl der Instrumente im Portfolio entspricht der Anzahl der Hauptkomponenten (Vektoren), wobei jede Hauptkomponente bestimmt, wie stark sie die Gesamtbewegung des Portfolios beeinflusst.


Mögliche Probleme

  1. Wenn das Diagramm nicht angezeigt wird, überprüfen Sie, was im Experten-Tab angezeigt wird. Möglicherweise gibt es Fehler oder es findet eine Synchronisation mit anderen Charts statt. Wenn keine Meldungen vorhanden sind, wechseln Sie durch andere Zeitrahmen.

  2. Die erhaltenen Vektorwerte wurden mit denen verglichen, die im R-Paket berechnet wurden, daher sind die Werte selbst korrekt. Allerdings kann das Vorzeichen eines spezifischen Koeffizienten falsch sein, da die PCA keine Beachtung auf Vorzeichen legt. Das „-„ oder „+“ Zeichen kann nur empirisch, also durch Versuch und Irrtum bestimmt werden.

Das Problem #2 wurde mit Bildern hier beschrieben: http://stats.stackexchange.com/questions/34396/im-getting-jumpy-loadings-in-rollapply-pca-in-r-can-i-fix-it

Parameter

InpVector = 0; //Wenn es N Währungen im Portfolio gibt, entspricht die Bewegungsachse 0 = maximale Varianz, N - 1 = minimale
InpFrame = 300; // Gleitendes Fenster zur Berechnung der Koeffizienten, für jede der InpDepth Bars werden InpFrame Berechnungen angestellt
InpDepth = 1000; // Die Gesamtzahl der Balken in der Historie, für die das Diagramm gezeichnet wird
InpForward = 500; // Der Balken, um die Koeffizienten nicht mehr neu zu berechnen und die vorherigen zu verwenden, dies ist OOS
InpPeriod = 1; // Glättung für die MA, damit das Diagramm weniger zappelt
InpTimePeriod = PERIOD_CURRENT; // Zeitrahmen für die Berechnungen
InpNormalize = true; // Preise vor der Anzeige normalisieren, um die Volatilitätslücken von USDJPY und EURGBP zu glätten
InpSynthetics = true; // Die zusammenfassende Synthetik zeichnen, multipliziert mit den gefundenen Koeffizienten oder jedes Paar einzeln
InpPrices = Logs; // Normalisierungsalgorithmus für Paare
InpSymbols = "AUDUSD,USDCHF,USDCAD"; // Paare für das Portfolio
InpMagic = "ID" // Benutzerdefinierter Name des Indikators, um mehrere Instanzen auf einem Diagramm ohne Konflikte zu platzieren

Die Idee wurde von hier übernommen: https://www.mql5.com/en/code/9908

Verwandte Beiträge

Kommentar (0)