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

PCA Synthetics - Recycle Legacy - Indikator für den MetaTrader 5

Ansichten:
947
Rating:
(14)
Veröffentlicht:
2017.02.24 09:32
\MQL5\Indicators\AIV\ \MQL5\Include\AIV\
Resources.mqh (14.94 KB) ansehen
Matrices.mqh (15.47 KB) ansehen
Charts.mqh (3.79 KB) ansehen
Benötigen Sie einen Roboter oder Indikator, der auf diesem Code basiert? Bestellen Sie ihn im Freelance-Bereich Zum Freelance

Ein Indikator für eine automatische Auswahl von Koeffizienten für jedes Symbol in einem pseudostationären Portfolio, das nach Gleichgewicht in Null strebt.

Der Indikator benötigt die AlgLib Bibliothek. Kopieren Sie sie in den Ordner des Include\Math Terminals.


Ein bisschen Theorie

Jedes Symbol bewegt sich in seine Richtung; jede Richtung stellt eine Dimension in einem mehrdimensionalen Array dar. Wir "drehen" das Array, d.h. wir multiplizieren jedes Element des Arrays mit einer bestimmten Zahl, und versuchen eine solche Achse zu finden, dass der Abstand zwischen ihr und allen Symbolen minimal ist, mit anderen Worten, die minimale gesamte Varianz. Die Zahl, mit welcher jedes Element des Arrays multipliziert wird, wird später zum Wert des Winkels, um welchen das sich bewegende Symbol gedreht werden muss, damit er sich in einer Richtung mit den anderen bewegt. Der Wert des Winkels ist der Koeffizient für jede Währung im Portfolio.

Wenn der Koeffizient größer als 0 ist, wird die Währung gekauft, wenn kleiner als 0 — verkauft. Wenn man die Koeffizienten ab und zu neu berechnet, kann man die Stationarität des erstellten synthetischen Symbols aufrechterhalten. Darüber hinaus findet PCA nicht nur eine Achse mit der kleinsten Varianz sondern mehrere. So viele Symbole im Portfolio, so viele Komponenten (Vektoren). Jede von ihnen wird als Hauptkomponente bezeichnet und bestimmt, wie stark sie die gesamte Änderung der Bewegung im Portfolio beeinflusst.


Eventuelle Probleme

  1. Wenn der Chart nicht gezeichnet wird, schauen Sie, was im Reiter "Experts" ausgegeben wird, vielleicht sind da Fehler aufgetreten oder der Chart wird mit anderen Charts synchronisiert. Wenn es keine Fehlermeldungen gibt, klicken Sie andere Zeitrahmen durch.

  2. Die erhaltenen Werte der Vektoren wurden mit den im R Packet berechneten Werten verglichen, deswegen sind die Werte selbst richtig, aber das Vorzeichen eines konkreten Koeffizienten kann falsch sein, denn РСА berücksichtigt keine Vorzeichen, und man kann nur empirisch feststellen, ob "-" oder "+".

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


Parameter

InpVector = 0; // wenn N Währungen im Portfolio sind, ist die Nummer der Bewegung 0 = max. Varianz, N - 1 = minimale
InpFrame = 300; // Fenster für die Berechnung von Koeffizienten, für jede InpDepth Balken führen wir InpFrame Berechnungen durch
InpDepth = 1000; // die Gesamtzahl der Balken in der Historie für welche der Chart gezeichnet wird
InpForward = 500; // Von welchem Balken an hören wir auf, die Koeffizienten neu zu berechnen, und verwenden die alten, das ist OOS
InpPeriod = 1; // Glättung für МА, damit der Chart nicht so gerissen aussieht
InpTimePeriod = PERIOD_CURRENT; // Zeitrahmen für die Berechnung
InpNormalize = true; // Ob die Preise vor der Anzeige normalisiert werden müssen, für die Glättung von Lücken der Volatilität zwischen USDJPY und EURGBP
InpSynthetics = true; // das synthetische Symbol multipliziert mit den ermittelten Koeffizienten oder jedes Währungspaar getrennt zeichnen
InpPrices = Logs; // Algorithmus der Normalisierung der Paare
InpSymbols = "AUDUSD,USDCHF,USDCAD"; // Paare für das Portfolio
InpMagic = "ID" // Name des Indikators für eine einfache Platzierung mehrerer Instanzen auf einem Chart ohne Konflikte

Die Idee wurde hier entnommen: https://www.mql5.com/de/code/9908


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

Relation - Chart Builder Legacy Relation - Chart Builder Legacy

Ein Indikator für das Zeichnen benutzerdefinierter Charts, die auf einer vom Nutzer definierten Formel basieren.

The MasterMind The MasterMind

Der Expert Advisor verwendet die Indikatoren iStochastic (Stochastic) Oscillator und iWPR (Larry Williams' Percent Range).

Fractal_Moving_Average Fractal_Moving_Average

Ein fraktaler Gleitender Durchschnitt mit der Markierung des letzten Wertes durch ein Preislabel und mit der Option, den Algorithmus der Mittelung zu ändern.

Fractal_WPR_HTF Fractal_WPR_HTF

Der Fractal_WPR Indikator mit der Option, Zeitrahmen in den Eingabeparametern auszuwählen.