Maschinelles Lernen im Handel: Theorie, Modelle, Praxis und Algo-Trading - Seite 125

 
Alexey Burnakov:

Beurteilen Sie die Leistung der Strategie anhand der Vergangenheit oder gibt es einen langen Vorlauf? Die Hölle kann bei der Bewertung der Geschichte eine Rolle spielen.

Einstieg bei Momentum, Ausstieg über OR bei einer Reihe von Bedingungen. Im Prinzip funktioniert das irgendwie. Aber wenn man auf dem Höhepunkt einsteigt und dann ein Jahr wartet, um aus dem Drawdown herauszukommen...

Ich prüfe sie auf Forex. Wenn sie auf einem Gipfel eintraten - dafür gibt es SL.
 
Andrej Dik:

Weitere Details: Kaufsignal auf dem aktuellen Balken, wie Kauf, Abwärtszählung der geringsten Anzahl von Balken vorwärts......

Ich habe auch eine ähnliche Version, wie man es glätten kann, ich habe dir vor etwa 100 Seiten davon erzählt, aber es ist auf einer abstrakteren Ebene...

Wir wissen nicht, wie wir handeln sollen, wo wir einsteigen und wo wir aussteigen sollen.

Deshalb ist alles, was wir erfunden haben (Trends, ZZ, Candlestick-Farben, Rebounds), nur Unsinn, um Marktbewegungen zu beschreiben, Subjektivismus eben

Jeder hat sich für seine eigene Richtung entschieden und jeder gräbt darin - einige verwenden Kerzenfarben, andere zz, ich persönlich verwende zz-Rebounds, usw. Das ist alles sehr subjektiv, und das ist es, was uns unterscheidet, obwohl wir im Grunde genommen alle dasselbe tun und das Ergebnis dasselbe ist.

Ich schlage vor, etwas zu nehmen, das uns alle verbindet und nicht subjektiv sein wird, nämlich das Ziel in Form von - sagen wir - dem Wunsch

"Ich möchte, dass der Algorithmus min. 5 % pro Woche mit einem maximalen Drawdown. 2%"

normales ziel? jeder mag und passt, richtig? und alles ist klar...

Sie müssen das Netz nicht nach den von uns erdachten Zielen wie GZ und anderen trainieren, die subjektiv sind, sondern Sie müssen das Netz als Suche nach einem bestimmten Minimum oder Maximum im Gewinn oder Drawdown, oder im Sharp-Ratio oder im PV oder einer Kombination dieser Indikatoren trainieren.

Es ist mir egal, wie Sie handeln, aber jede Woche sollte ich +5% mit einem Drawdown von bis zu 2% bekommen..... Lassen Sie das Netzwerk selbst handeln und bestimmen, ob es einen Trend oder eine Umkehrung gibt, in der Tat, alles, was uns interessiert, ist Gewinn und Drawdown, und wir kontrollieren das, und wir wissen nicht, wie man handelt, so brauchen wir nicht in sie zu bekommen....

Wie man es macht...

Es gibt bereits Netzwerke, die uns das Spielen beibringen, insbesondere Super Mario http://gekkoquant.com/2016/03/13/evolving-neural-networks-through-augmenting-topologies-part-1-of-4/. Ich schlage vor, das Netzwerk auf die gleiche Weise zu unterrichten, lassen Sie uns eine Analogie verwenden ...

1) Es gibt eine Umgebung - die Schildkröten, die spucken, Hindernisse in Form von Rohren, Kisten, über die man springen muss, usw.

2) Es gibt Aktionen - die Tasten auf dem Joystick, die das Netzwerk drückt, um Mario zu steuern

3) es gibt Punkte - eine Belohnung für das Netzwerk

4) es gibt eine Strafe - den Tod von Mario

Sobald das Netz in der Umgebung (1) ist, beginnt es, die Joystick-Knöpfe (2) zu drücken und so weiter, bis es lernt, den Level zu beenden und eine angemessene Anzahl von Punkten (3) zu erzielen, ohne zu sterben (4).

Analogie zum Handel

1) es gibt eine Umgebung, die Daten in das Netz einspeist - Prädiktoren

2) Es gibt Aktionen - kaufen/verkaufen/ nichts tun

3) es gibt Punkte - erhaltener Gewinn

4) es gibt eine Strafe - erhaltene Inanspruchnahme

 
mytarmailS:

Sie sollten das Netzwerk nicht nach den von uns entwickelten Zielen wie GZ und anderen, die subjektiv sind, trainieren, sondern das Netzwerk auf der Suche nach einem Minimum oder Maximum an Gewinn oder Drawdown oder Sharp-Ratio oder PV oder einer Kombination dieser Indikatoren trainieren

Ich stimme zu, dass das gewählte Ziel subjektiv und unangemessen ist. Ich habe versucht, ein Handelsmodell mit dem rneat-Paket zu erstellen, das ein wenig vom Handel in der Vergangenheit gelernt hat, aber dennoch keine korrekte Vorhersage für neue Daten treffen konnte.

Es gibt einen sehr wichtigen Unterschied: Bei all diesen Experimenten mit Spielen wird das Modell zehntausende Male für jedes Spiel trainiert. Und sein Ergebnis wird durch das Spielen eben dieser Spiele geschätzt, sozusagen durch die Auswertung von Daten zum Lernen. Für Forex ist eine gute Leistung auf den Daten für das Training nicht genug, es ist notwendig, dass das Modell auch auf den neuen Daten funktioniert, und das scheint ein großes Problem für einen solchen Algorithmus zu sein.

 
Dr. Trader:

1) Ich stimme zu, dass das gewählte Ziel subjektiv und unangemessen ist. Ich habe versucht, ein Handelsmodell mit dem Paket rneat zu erstellen, das ein wenig aus der Vergangenheit gelernt hat, aber immer noch keine korrekte Vorhersage für neue Daten treffen konnte.

2) Für Forex reicht eine gute Leistung bei Trainingsdaten nicht aus, das Modell muss auch bei neuen Daten funktionieren, und das ist offensichtlich ein großes Problem für einen solchen Algorithmus.

1) Ich weiß nicht, wie ich es richtig ausdrücken soll, aber in Ihrem Experiment haben Sie das Netz nicht denken lassen, Sie haben es nicht handeln lassen, indem Sie Ihr Ziel festgelegt haben, also haben Sie das Netz in ein sehr einfaches Modell verwandelt, dessen Hauptidee darin besteht, selbst zu lernen, und Sie haben es für es getan, verstehen Sie?

Ich habe gesagt, lasst es den Handel machen, lasst es die Geschäfte machen und selbständig Schlussfolgerungen ziehen.

unsere Kontrolle ist der Gewinn und die Inanspruchnahme, das war's... sie ist auf sich allein gestellt...

2) Ja, das ist ein Problem für jeden Algorithmus, aber es besteht die Hoffnung, dass, wenn das Netzwerk sich selbst trainiert, gut zu handeln, ohne unsere Ziele, ohne unseren Subjektivismus, dann besteht die Chance, dass es neue Daten objektiver wahrnimmt, und wir wissen bereits, wie Algorithmen mit unseren Zielen neue Daten behandeln

 
Andrej Dik:
Ich überprüfe den Vorwärtsgang. Wenn Sie auf dem Gipfel eingestiegen sind - dafür gibt es SL.
SL ist da.
 
Dr.Trader:

Auch wenn es implizit ist, würde ich es lieber hinzufügen, um es für alle klarer zu machen.

Normalerweise hat das Überlernen von Modellen den Effekt, dass sich das Modell sehr genau an die Trainingsbeispiele erinnert. Das Lernen beginnt damit, dass das Modell einige allgemeine Regeln, Zielwertabhängigkeiten von Prädiktoren, ableitet, aber je weiter das Lernen fortschreitet, desto strenger werden diese Regeln im Modell, was schließlich zu vollständig gespeicherten Beispielen führt und das Modell völlig unfähig macht, neue Daten vorherzusagen. Dies wird durch eine Kreuzvalidierung erreicht, bei der das Training abgebrochen wird, wenn das Modell einige verallgemeinerte Regeln gelernt hat, aber noch nicht damit begonnen hat, spezifische Beispiele zu lernen, was zu einer besseren Vorhersageleistung bei neuen Daten führen wird.

Dies funktioniert hervorragend bei Daten, bei denen die Abhängigkeiten im Laufe der Zeit konstant bleiben - zum Beispiel bei der Bilderkennung oder der Tonerkennung. Der Unterschied zu Forex besteht jedoch darin, dass viele der gefundenen Abhängigkeiten im Laufe der Zeit nicht bestehen bleiben. Das Problem besteht nicht nur darin, das Lernen ohne das Auswendiglernen von Trainingsbeispielen zu erreichen, sondern auch darin, irgendwie sicherzustellen, dass die gefundenen Muster in der Zukunft erhalten bleiben.


Sie haben ein gutes Argument. Die Erkennung von Bildern und Tönen ist ein pseudostationärer Prozess, vorausgesetzt, die Stichprobe ist repräsentativ und die Art und Weise, wie die Bilder in der Kontrollstichprobe gezeichnet sind, wird nicht an linkshändige Zerebralparese-Patienten weitergegeben (grob, sorry).

Die Aufgabe ist umfassender: Es muss ein Verfahren zur Schätzung der Prädiktoren in Bezug auf die Zielvariable entwickelt werden, das sicherstellt, dass die Beziehung zwischen den Prädiktoren und der Zielvariable konstant ist und auch bei den neuen Daten besteht.

DieAuswahl von Prädiktoren nach ihrer Bedeutung für die vorhergesagte Variable auf der Grundlage ihrer Persistenz im Zeitverlauf ist fast dasselbe wie die Suche nach Prädiktoren in einer einzigen größeren Stichprobe. Das heißt, wenn man in mehreren aufeinander folgenden Stichproben Prädiktoren auswählt, die in allen Diagrammen gleich gut abschneiden, ist es eine einfache Anpassung an diese Diagramme.

Im Wesentlichen werden aus N Prädiktoren n ausgewählt, die in allen Bereichen (bei allen verfügbaren Stichproben) gute Ergebnisse erzielen. Eingepasst, was kommt als nächstes? Und dann kommt der eigentliche Vorwärtsgang, bei dem wir einen Sturzflug beobachten. Was ist der Grund dafür?

Der Grund dafür ist, dass die Methodik zur Auswahl der Prädiktoren auf der Parzelle K nicht getestet wurde, um auf der Parzelle M ähnlich gute Ergebnisse zu erzielen. Mit anderen Worten: Jede Teilmenge der ausgewählten Prädiktoren muss korrelierte Ergebnisse für K und M liefern.

Ich kann für Sie solche Prädiktoren und ein entsprechendes Modell auswählen, das nicht aus der Stichprobe lernt und trotzdem sehr gut durch den Plot läuft. Tatsächlich ist dies die Art von Modell, die gut lernen würde, wenn alle Muster zusammengeklebt würden, und ich mache dieses Kleben irgendwie von Hand.

Wir müssen einen Weg finden, Prädiktoren so auszuwählen, dass sich die Modelle beim Training und bei der Validierung wie in der linken Abbildung verhalten:

Und nur dann können wir sagen, dass das Modell den Out-of-Sample-Test besteht. Nicht nur, dass einige Modelle (Prädiktoren) außerhalb der Stichprobe liegen.

 
SanSanych Fomenko:

Es scheint, als wären nur wir beide hier, denn die Position von Alexej ist mir nicht ganz klar.


Ich verstehe nicht, warum mein Standpunkt kompliziert ist. Ich habe bereits gesagt, dass ich kein robustes Modell erstelle, wenn ich keine Korrelation zwischen der Leistung der Modelle in der Stichprobe und außerhalb der Stichprobe sehe. Entweder verstehen Sie es nicht oder Sie haben es noch nie gemacht.

Ich will damit sagen, dass die Anpassung von Prädiktoren oder Modellparametern, die dafür sorgen, dass das Modell überall gut funktioniert, genau das Richtige ist. Das Modell wird überangepasst, auch wenn es vor Überanpassung geschützt ist.

 
Alexey Burnakov:

Der Grund dafür ist, dass die Methodik zur Auswahl der Prädiktoren am Standort K nicht auf die Erzielung ähnlich guter Ergebnisse am Standort M getestet wurde. Mit anderen Worten: Jede Teilmenge der ausgewählten Prädiktoren muss korrelierte Ergebnisse für K und M liefern.

Was soll mit was zusammenhängen? Wie machen Sie das? Ich versteh's auch nicht...

Alexey Burnakov:

Entweder verstehen Sie es nicht oder Sie haben es noch nie gemacht.

Ich glaube, das hat hier außer Ihnen noch niemand getan.)

 
Alexey Burnakov:

Ich verstehe nicht, warum mein Standpunkt kompliziert ist. Ich habe bereits gesagt, dass ich kein robustes Modell erstelle, wenn ich keine Korrelation zwischen der Leistung der Modelle in der Stichprobe und außerhalb der Stichprobe sehe. Entweder verstehen Sie es nicht, oder Sie haben es noch nie gemacht.

Ich will damit sagen, dass die Anpassung von Prädiktoren oder Modellparametern, die dafür sorgen, dass das Modell überall gut funktioniert, genau das Richtige ist. Das Modell wird überangepasst, auch wenn es vor Überanpassung geschützt ist.

Ich habe mich daran erinnert - es wurde bereits diskutiert, aber es tut mir leid, ich habe es vergessen.

Ich habe den Eindruck, dass Sie zu starre Anforderungen stellen, die das Werkzeug komplexer machen, und ein einfacheres Werkzeug ist einem komplexen immer vorzuziehen.

Ich verwende das folgende Schema:

1. Ich formuliere die Zielvariable

2. ich erfinde eine Reihe von Prädiktoren, die sich intuitiv auf meine Zielvariable beziehen.

3. Mit meinem Algorithmus filtere ich die Prädiktoren heraus, die ich aus formalen Gründen als Rauschen bezeichne. In der Regel bleiben mir dann 15-20 % der ursprünglichen Zahl, die ich mir ausgedacht habe.

4. Erzeugen Sie eine große Datei mit mindestens 10000 Takten

5. Ich teile diese Datei in zwei Teile: 7000 и 3000

6. Bei 7000 lehre ich das Modell, teste und validiere

7. Wenn alle drei Zahlen ungefähr gleich sind, dann Schritt 8. Wenn nicht, gehe ich zurück zu Schritt 1.

8. Das trainierte Modell wird in der Praxis eingesetzt. Ich wähle Prädiktoren nach einem der Algorithmen (ich verwende rfe) im aktuellen Fenster aus. Ich mache diese Auswahl bei den Ausgängen für H1. Rfe aus der Menge, mit der ich das Modell gelernt habe, wählt aus 5 oder mehr Prädiktoren für das aktuelle Fenster aus. Die Liste der Prädiktoren ändert sich ständig, aber sie stammt aus dem Satz, den ich beim ersten Training erhalten habe.

Dieses ganze System funktioniert seit letztem Herbst in der Realität. Es gibt jedoch ein wesentliches Aber: Dies ist nur ein Teil des EA. Früher haben meine EAs auf TA nicht länger als ein halbes Jahr gelebt. Jetzt sehe ich dieses Problem nicht mehr.

 
mytarmailS:

Ich habe auch eine ähnliche Option zur Glättung, die ich vor etwa 100 Seiten geäußert habe, aber sie ist auf einer abstrakteren Ebene...

Wir wissen nicht, wie man handelt, wo man einsteigt, wo man aussteigt, wir wissen überhaupt nichts

Deshalb ist alles, was wir erfunden haben (Trends, ZZ, Candlestick-Farben, Rebounds), nur Unsinn, um Marktbewegungen zu beschreiben, Subjektivismus eben

Jeder hat sich für seine eigene Richtung entschieden und jeder gräbt darin - einige verwenden Kerzenfarben, andere zz, ich persönlich verwende zz-Rebounds, usw. Das ist alles sehr subjektiv, und das ist es, was uns unterscheidet, obwohl wir im Grunde genommen alle dasselbe tun und das Ergebnis dasselbe ist.

Ich schlage vor, etwas zu nehmen, das uns alle verbindet und nicht subjektiv sein wird, nämlich das Ziel in Form von - sagen wir - dem Wunsch

"Ich möchte, dass der Algorithmus min. 5 % pro Woche mit einem maximalen Drawdown. 2%"

normales ziel? jeder mag und passt, richtig? und alles ist klar...

Sie scheinen mich missverstanden zu haben. Ich sage dem Netz nicht, wo es einsteigen soll, weder mit zz noch mit einem anderen Indikator. Ein trainiertes Netz wählt selbst, wo es eintritt.
Grund der Beschwerde: