Maschinelles Lernen im Handel: Theorie, Modelle, Praxis und Algo-Trading - Seite 1614
![MQL5 - Sprache von Handelsstrategien, eingebaut ins Kundenterminal MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Wenn z. B. alle Strategien nur KAUFEN tun, dann geht es wahrscheinlich darum, ihre Schnittmenge im Zeitablauf zu minimieren (Minimierung der Korrelationen, die immer positiv sind). Wenn KAUFEN und VERKAUFEN erlaubt sind, können Zeitüberschneidungen nützlich sein, um schlechte Teile von Strategien gegenseitig auszugleichen (negative Korrelationen sind normalerweise gut für das Portfolio).
Ich vermute, dass die Korrelation einfach durch den Zeitpunkt der Strategien und den Zeitpunkt ihrer Überschneidung bestimmt werden kann.
Im Allgemeinen stimme ich der gegenseitigen Kompensation von unterschiedlich ausgerichteten Signalen zu, aber dafür ist es in meinem Fall notwendig, verschiedene Strategien anzuwenden und für jede einen Aufschlag zu machen - das ist ein anderes Lied, aber ich plane, es auch anzuwenden.
Aber um ähnliche Strategien zu finden, um sie aus einer Gruppe auszuwählen oder ihr Risiko (Lot) zu teilen, sollten wir nicht nur die Einstiegs- und Ausstiegszeiten, sondern auch die Einstiegsrichtung berücksichtigen. Ich sollte mir überlegen, wie ich es besser machen kann.
Was meinen Sie damit, dass sie es perfekt macht? Ich mache das nicht manuell, sondern ich schreibe ein Skript, das das so macht, wie ich es jetzt sehe.
In meinem Fall wäre es ideal, wenn jede Prädiktorwertvariante separat ausgewertet würde. Und ich möchte die Aktivierungsbereiche eines Prädiktors, der ein Ziel verstärkt, zu einem Prädiktor zusammenführen, was die mir bekannten Netze nicht tun, indem sie die Bereiche nacheinander aufteilen, und ebenso den Prädiktor in der Rangfolge zum Sparen (durch Aufbau eines Knotens) mit einem anderen Prädiktor zusammenführen. So weit die Theorie.
Welche Art von Partitionierungsraster würde die Bereiche in einem einzigen Split zusammenfassen und Zwischenwerte eliminieren, wie in der Abbildung unten die Werte 1 und 4?
Perfekt - im Sinne von perfekt genau gemäß der Split-Schätzfunktion. Es wird Tausende von Optionen bewerten und sich die beste merken, die dann zu einem Knotenpunkt wird.
Am einfachsten ist es, 24 Standardwälder/Boosts zu trainieren, die jeweils Prädiktoren der entsprechenden Stunde liefern.
Perfekt - im Sinne von perfekt genau nach der Funktion der geteilten Bewertung. Es wertet Tausende von Auswahlmöglichkeiten aus und merkt sich die beste, die zum Knoten wird.
Dies entspricht eindeutig dem Algorithmus, aber welcher Algorithmus ist richtig? Nur in CatBoost gibt es 3 Algorithmen für den Aufbau eines Gitters.
Am einfachsten ist es, 24 Standardwälder/Büsten zu trainieren, die jeweils Prädiktoren der entsprechenden Stunde liefern.
Dies würde die Stichprobe um etwa das 24-fache reduzieren (und meine Stichprobe ist bereits klein), und dann würden wir unter Beachtung des Gier-Prinzips der Baumbildung (das nicht immer zutrifft, wie sich bei meinen Experimenten mit der Aufteilung von Bäumen herausstellte) nur die Prädiktoren für den Verzweigungsbaum auswählen, die genau zu einer bestimmten Stunde statistisch gesehen die beste Wahrscheinlichkeit hatten, Aber meiner Meinung nach sollten wir die Prädiktoren finden und in den Baum einfügen, die unabhängig von anderen Konditionalitäten einen Vorteil in der gesamten Stichprobe gaben, dann erhalten wir nicht eine Anpassung für eine konkrete Stunde des Tages (bedingt genauere Beschreibung eines Ereignisses für die Aktivierung), sondern eine Ansammlung von unabhängigen Wahrscheinlichkeiten in einem Blatt.
Dabei handelt es sich um einen Algorithmus, der den Bereich der Prädiktorenwerte auf ihre Vorhersagefähigkeit hin überprüft und versucht, die Teile des Bereichs so zu unterteilen, dass sie die Vorhersagefähigkeit besser hervorheben. Angenommen, es gibt eine Stichprobe mit 3 Zielen, die Stichprobe ist verteilt als 1 - 24%, 2 - 50%, 3 - 26%, und es gibt einen Prädiktor mit einem Wertebereich, so dass das Ziel des Rasters darin besteht, Bereiche von Prädiktorwerten zu finden, in denen, sagen wir, Ziel 1 um mehr als 24% "vorhergesagt" wird, und der Split wird diesen Bereich hervorheben. Es gibt verschiedene Varianten von Algorithmen, um solche Netze zu erstellen.
Interessante Idee, aber ist es nicht einfacher, es so zu machen...?
S.1) Wir haben eine Art maschinellen Lernalgorithmus. MO
S.2) Es gibt eine Probe, die in einen Zug und einen Test unterteilt ist.
S.3) es gibt einen Preis, der nach einem bestimmten Prinzip (Zeit, grafisches Muster, alle zusammen, etwas anderes ... ...) geclustert ist (er kann als Marktsituation oder einfach als Cluster wahrgenommen werden)
pp. sollte es viele oder sehr viele Cluster geben
Algorithmus der Maßnahmen :
1) MO auf einem Tablett unterrichten
2) den Test mit Hilfe eines semiprädiktiven Modells vorhersagen.
3) Im Test ermitteln wir die Punkte, die das Modell fehlerfrei vorhergesagt hat, wir nennen sie XT (guter Punkt)
4) jedes ht entspricht einem Cluster aus Schritt 3 oben...
Das war's, jetzt wissen wir, in welchen Clustern (Zuständen) des Marktes das Modell gute Geschäfte macht... Cluster (Zustände) sind wie ein Analogon Ihres Gitters, so dass wir versuchen, anhand von Clustern abzuschätzen, was wir vorhersagen können und was wir nicht vorhersagen können...
Beide Ansätze haben jedoch konzeptionelle Probleme, die zunächst gelöst werden sollten. Das Problem liegt nicht einmal in der Herangehensweise, sondern in der Art und Weise, wie die Informationen präsentiert werden.
S.3) Es gibt einen Preis, der nach einem bestimmten Prinzip (Zeit, grafisches Muster, alle zusammen, etwas anderes ... ...) geclustert ist (er kann als Marktbedingung oder einfach als Cluster wahrgenommen werden)
pp. sollte es viele oder sehr viele Cluster geben
Hier verstehe ich nicht, schlagen Sie vor, den bloßen Preis der Zielaufschlagspunkte zu nehmen und sie zu clustern oder was?
3) Während eines Tests identifizieren wir die Punkte, die das Modell ohne Fehler vorhergesagt hat, nennen wir sie HT (guter Punkt)
4) jedes ht entspricht einem Cluster aus Schritt 3 oben...
Das war's, jetzt wissen wir, in welchen Clustern (Zuständen) des Marktes das Modell gute Geschäfte macht... Cluster (Zustände) sind wie ein Analogon zu Ihrem Raster, d.h. wir versuchen, mit Hilfe von Clustern zu unterteilen, was wir vorhersagen können und was nicht...
Die Idee ist interessant, aber ihr Prinzip ist nicht mit meinem Vorschlag verbunden oder ich verstehe ihn nicht ganz. Wir haben herausgefunden, dass das Modell einen bestimmten Prozentsatz von Clustern aktiviert, und was machen wir dann damit? Ich verstehe, dass wir uns ansehen müssen, welches Blatt (wenn es sich um einen Baum handelt) wie viele Cluster aktiviert hat, und wenn das Blatt ein Cluster viel häufiger aktiviert, wird es nur sagen, dass es gelernt hat, es zu identifizieren. Hier könnte es sein, dass ein großer Teil der Blätter gleichmäßig korrekt auf verschiedenen Clustern aktiviert wird, was offenbar auf Zufälligkeit hinweisen würde. Auch hier müssen Sie sich des Clustering-Algorithmus sicher sein - stellen Sie sicher, dass das Ergebnis eindeutige Cluster und nicht viele ähnliche sind...
Dies entspricht eindeutig dem Algorithmus, aber welcher Algorithmus ist richtig? Nur CatBoost verfügt über 3 Algorithmen zum Aufbau des Gitters.
Dies wird die Stichprobe um etwa 24-mal (und meine Stichprobe ist bereits klein) zu reduzieren, und dann, unter Beachtung des Grundsatzes der gierigen Baum Gebäude (es ist nicht immer wahr, wie sich herausstellte, aus meinen Experimenten mit Splitting Bäume) werden wir nur die Prädiktoren für die Verzweigung des Baumes, die in einer bestimmten Stunde statistisch haben die beste Wahrscheinlichkeit, und die Notwendigkeit, meiner Meinung nach, um Zeichen zu finden und sie in den Baum, diejenigen, die, unabhängig von anderen Bedingungen gab den Vorteil auf die gesamte Stichprobe, dann erhalten Sie nicht fit zu einer bestimmten Stunde des Tages (bedingt).
Welchen Unterschied macht es, wo Sie die Probe reduzieren? Außerhalb, indem man 24 Wälder bildet, oder innerhalb, indem man zum Beispiel die ersten 24 durch Stunden getrennten Knotenpunkte hinzufügt? Von diesen 24 Knotenpunkten nimmt jeder verbleibende Zweig 1/24 der Stichprobe ein.
Das heißt, wenn wir 100 Prädiktoren haben und die Teilung in der Mitte eines jeden Prädiktors beginnt. Es ist sehr wahrscheinlich, dass wir 7 verschiedene Prädiktoren haben werden, die in der Mitte geteilt sind. Vielleicht teilen sich 1 oder 2 auf ein Viertel, kleiner geht es kaum.
Oder arbeitet der Algorithmus bei Boosting-Algorithmen nicht mit halber Teilung, sondern in kleineren Stücken? Weiß das jemand?
Und wer nutzt welche Baumtiefe?
Welchen Unterschied macht es, wo Sie die Probenahme reduzieren? Äußerlich, indem man 24 Wälder bildet, oder innerlich, indem man zum Beispiel die ersten 24 Knoten mit einer geteilten Uhr hinzufügt? Von diesen 24 Knoten nimmt jeder verbleibende Zweig 1/24 der Stichprobe ein.
Es geht nicht um die Reduktion, sondern um die Statistik des Prädiktorenverhaltens in der Stichprobe außerhalb der Aufteilung - dies sollte die Zufälligkeit der Auswahl des Prädiktorenwertes verringern.
Übrigens, macht AlgLib das Raster bei jedem Split oder einmal und verwendet dann dieses Raster? Soweit ich weiß, behaupten die Entwickler von CatBoost, dass sie das Raster nur einmal erstellen.
Ich verstehe nicht, schlagen Sie vor, den nackten Preis der Zielaufschlagspunkte zu nehmen und sie zu clustern oder was?
Das Ziel ist dein, irgendein Ziel... Ich bin ein wenig hin- und hergerissen ....
Sie benötigen nur Cluster für ein Ziel:
Hier fanden wir die HTs auf den Testneuheiten, und akzeptierten sie als gut...
Nun müssen wir auf den neuen Daten diesen TX finden, um das Modell darauf anzuwenden, da das Modell nur auf dem TX gut funktioniert, und wie erkennen wir ihn auf den neuen Daten? als Option durch die Clusternummer
Im Allgemeinen stimme ich der gegenseitigen Kompensation von unterschiedlich ausgerichteten Signalen zu, aber in meinem Fall muss ich dafür verschiedene Strategien verwenden und für jede einen Aufschlag machen - das ist ein anderes Lied, aber ich plane, es auch zu verwenden.
Aber um ähnliche Strategien zu finden, um sie aus einer Gruppe auszuwählen oder ihr Risiko (Lot) zu teilen, sollten wir nicht nur die Einstiegs- und Ausstiegszeiten, sondern auch die Einstiegsrichtung berücksichtigen. Ich muss mir überlegen, wie ich es besser machen kann.
Ich werde die Idee zu ihrem logischen Abschluss bringen. Angenommen, wir haben eine Reihe von Systemen auf einer Anlage. Jedes System behält die Position eines festen Volumens, wenn es auf dem Markt ist, aber die Richtung kann variieren. Die Renditen und Volatilitäten der Strategien sind bekannt. Definieren wir die Korrelation zwischen den Strategien mit Hilfe der Formel (t1-t2)/sqrt(T1*T2), wobei T1 und T2 die Dauer ihrer Verweildauer auf dem Markt, t1 und t2 die Dauer der gleichzeitigen Verweildauer dieser Strategien auf dem Markt und ihre Ausrichtung in die gleiche bzw. entgegengesetzte Richtung sind. Dies ist eine vereinfachte Formel, die unter der Annahme der Preisnähe zum SB abgeleitet wurde. Jetzt sind alle Daten vorhanden, um die Markowitz-Theorie anzuwenden und das optimale Portfolio zu finden.
Natürlich erhalten wir auf diese Weise keine aussagekräftigen Portfolios (zumindest, weil nur ein Vermögenswert verwendet wird). Wir brauchen einige Änderungen.
1) Ändern Sie den Optimierungsalgorithmus (Parametergrenzen, Strafen). Klärung der Definition der Korrelation zwischen den Strategien.
2) Optimieren Sie das Portfolio bereits zum Zeitpunkt der Strategieerstellung. Das heißt, Sie suchen nach Strategien, die auf der Bedingung der Portfolio-Optimalität basieren. Es ist nicht ganz klar, wie dies in einer praktisch anwendbaren Weise formalisiert werden kann, aber der Ansatz scheint im Allgemeinen logischer zu sein. Allerdings müssten, wie Sie bereits geschrieben haben, die Algorithmen umgeschrieben werden, usw. usw. Ich weiß nicht, ob es die Mühe wert ist.