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

 
Maxim Dmitrievsky #:
Ja, wenn es viel Rauschen gibt, können Komponenten mit maximaler Varianz nichts anzeigen. Ich habe nicht verstanden, was es mit dem zweiten Datensatz auf sich hat, aber es ist auch etwas von Kozul und in seinen Videos wurde etwas über Tritment gesagt.

Nun, es scheint, dass der zweite Datensatz nur benötigt wird, um den Kontrast zum ersten zu finden. Es scheint, dass die Kovarianzmatrizen für beide Datensätze irgendwie geschickt verglichen werden.

 
Aleksey Nikolayev #:

Diese scheinen durchgängig nichtlinear zu sein, und diese sind beide linear wie die PCA, wenn ich mich nicht irre.

Ja, sie sind nicht linear, aber ist das etwas Schlechtes?


Ich habe diese Kontrast-PCA ausprobiert und ziemlich genau das gleiche Ergebnis wie bei der PCA erhalten.

Diese Vignette zeigt einen Vergleich zwischen den verschiedenen Typen.

Sie zeigt, wie die PCA vor anderen Methoden "blass" aussieht, aber wenn die Daten nicht nur normalisiert, sondern auch zentriert werden (was ich separat gemacht habe), dann liefert die normale PCA das gleiche Ergebnis für die dort dargestellten Daten.

 
mytarmailS #:

Ja, nicht-linear. Aber ist das etwas Schlechtes?


Ich habe versucht, diesen Kontrast PCA, bekam ziemlich genau das gleiche Ergebnis wie die PCA.

Diese Vignette zeigt einen Vergleich zwischen den verschiedenen Typen.

Sie zeigt, wie die PCA vor anderen Methoden "blass" aussieht, aber wenn die Daten nicht nur normalisiert, sondern auch zentriert werden (was ich separat getan habe), dann ergibt die normale PCA das gleiche Ergebnis für die dort dargestellten Daten.

Wahrscheinlich "schlecht" im Vergleich zu diesen Testdaten, und das gleiche Ergebnis wird auf Kortizes erhalten?
 
Forester #:
Wahrscheinlich "schlecht" im Vergleich zu diesen Testdaten, und das gleiche Ergebnis auf kotrovki erhalten?

Nein, das gleiche auf ihre eigenen Daten


=============

library(scPCA)
label <- toy_df$label
data <- toy_df[, -31]


pca <- prcomp(data,center = TRUE)
plot(pca$x,col=label,lwd=2,main = "обычный РСА")

cpca <- scPCA(target = data, background = background_df, penalties = 0, n_centers = 4)
plot(cpca$x, col=label, lwd=2,main = "контрасный РСА")

Genau das habe ich getan.

npca <- prcomp(data,center = TRUE,scale. = TRUE)
plot(npca$x,col=label,lwd=2,main = "обычный РСА + нормализация")

library(umap)
um <- umap(data)
plot(um$layout,col=label,lwd=2,main = "umap без нормализации данных")

num <- umap( scale(data,center = TRUE,scale = TRUE) )
plot(num$layout,col=label,lwd=2,main = "umap + нормализация")



Es ist wie folgt.... Wir ziehen unsere eigenen Schlussfolgerungen.

 

Das Ziel ist nicht, etwas in einem bestimmten Datensatz zu zentrieren, sondern eine erfolgreiche Darstellung der Daten auf flexible Weise zu finden. Und das kann man mit dieser Methode tun. Ich schätze, dass yumap das auch kann, aber linear ist in der Regel fast immer besser als nicht-linear, was die Stabilität angeht.

Es ist eine nette Methode, aber es gibt einen schöneren Weg.

cPCA ist diskussionsfähig, wenn jemand damit übt.

 

Ich bin auf ein anderes Problem gestoßen.
Ich habe eine gute Variante gefunden, bei der einmal pro Woche auf 5000 Zeilen von M5 (3,5 Wochen) trainiert wird. Ich beschloss, alle Daten auf 300 Zeilen zu verschieben - also nicht samstags, sondern dienstags zu trainieren. Infolgedessen wurde das Modell auf OOS von profitabel zu unprofitabel.
Diese neuen 300 Zeilen (etwa 8% der Gesamtmenge) brachten andere Chips und andere Splits hervor, die bei leicht veränderten Daten besser wurden.
Wiederholen Sie die Verschiebung um 300 für 50000 Zeilen. Es scheinen nur 0,8 % der neuen Zeilen zu sein. Aber die Änderungen am OOS sind ebenfalls signifikant, wenn auch nicht so stark wie bei 5000 Zeilen.

Im Allgemeinen gibt es eine Anpassung nicht nur an die Größe des Fensters, sondern auch an den Beginn des Fensters. Kleine Verschiebungen machen einen großen Unterschied im Ergebnis. Es gibt keine eindeutigen Merkmale, alles bewegt sich am Rande von 50/50 ± 1-2%.
 
Ich würde die Intervallumschulung vergessen. RL hat in dieser Sache schon versagt. Wizard hat auch darüber geschrieben, als ich mich mit so etwas beschäftigt habe. 50+ Artikel gibt es dort. Viele Ansätze und die Unmöglichkeit, sich auf etwas zu konzentrieren :)
 

Meine Herren, Experten und Akademiker dieses Threads, bitte äußern Sie Ihre Meinung zu folgendem:

Was wäre, wenn wir Forex als ein Spiel von Spielen betrachten würden. Wie Schach. Oder Go, oder was auch immer.
Wir unterteilen das Spiel in Partien: 500 Schritte pro Partie. Jeder Schritt ist ein stündlicher Schlusskurs. 500 Schritte sind ein durchschnittlicher Handelsmonat.
Wir geben alles + den Kontostand ein.
Wir legen zwei Regeln fest: Wenn der Kontostand um 30 % sinkt oder das Spiel mit einem Minus endet, beginnt das Spiel von vorn.
Insgesamt N Spiele (sagen wir 120 - etwa 10 Jahre)
Das Ziel ist es, alle Spiele zu gewinnen, egal mit welchem Plus. Kurz gesagt, jeden Monat im Plus abzuschließen.

Aktionen des Agenten:
1) Kauf 0,01
2) Kauf 0,02
3 Kauf 0,03
4) Kauf 0,04
5) Kauf 0,05
6) Kauf 0,06
7) Kauf 0.07
8) Kauf 0.08
9) Kauf 0.09
10) Kauf 0.1

11) Verkauf 0.01
12) Verkauf 0.02
13) Verkauf 0.03
14) Verkauf 0.04
15) Verkauf 0.05
16) Verkauf 0.06
17) Sell 0.07
18) Sell 0.08
19) Sell 0.09
20) Sell 0.10

21) Close 0.01
22) Close 0.02
23) Close 0.03
24) Close 0.04
25) Schließen 0.05
26) Schließen 0.06
27) Schließen 0.07
28) Schließen 0.08
29) Schließen 0.09
30) Schließen 0.10

31) Alle schließen

32) Eröffne keine Position
33) Überspringe einen Zug

Insgesamt 33 Aktionen.

Die Belohnung wird aufgeschoben - sie entspricht der Differenz zwischen dem Eröffnungskurs der Position und dem Schlusskurs sowohl von Teil- als auch von Vollpositionen.
Der Eingangssaldo gibt einen Bruchteil des Zustands an, den der Agent kennt. Denn nach den Regeln muss sich der Zustand der Umwelt durch die Handlungen des Agenten ändern. Der Agent kann den Preisgraphen nicht ändern, aber er kann seinen Saldo beeinflussen, der in den Zustand eingeht. Es ist wie das Analogon der Spielsteine auf einem Brett. Der Agent weiß nicht, wie viele Millionen Schritte mit ihnen gemacht werden können, aber er weiß, wie viele Steine er auf dem Brett übrig hat.

Es ist also nicht notwendig, sich jede nächste Kerze zu merken (ob sie ein Minus oder ein Plus ergibt), aber wir lernen, kleine Drawdowns (Steine auf dem Spielbrett) zu opfern, um am Ende einen Gewinn zu erzielen.

Ich habe im Internet gelesen, wie man ein neuronales Netz trainiert, wenn es mehr als einen Ausgang hat, sie schreiben über DQN. So wie q-learning ein stupides Auswendiglernen von Zuständen ist und im Falle eines neuen Zustands das Ergebnis beklagenswert ist , so ist DQN eine Projektion von gespeicherten Zuständen auf neue, als deren Ergebnis der optimale aus über_dofig Aktionen ausgewählt wird.


Schließlich gibt es beim Schach eine bedingt unbekannte Anzahl von Zuständen und unter diesen Bedingungen gewinnt das neuronale Netz über einen Menschen. Warum nicht eine ähnliche Methode in einem Spiel namens "freaking forex for fuck's sake" ausprobieren?

 
Ivan Butko #:

Meine Herren,

wie lautet also die Frage?
 
mytarmailS #:
Was ist also die Frage?

Meinung zu dem Versuch, Forex zu lehren, indem man Agenten lehrt, Spiele zu spielen.

Gibt es irgendwelche Fische, vielleicht versucht, so etwas wie dieses, jede Erfahrung.