Maschinelles Lernen im Handel: Theorie, Modelle, Praxis und Algo-Trading - Seite 214
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
PS. Und parallelisieren Sie die lm()-Berechnung. Jetzt ist genau der richtige Zeitpunkt dafür.
Danke.
Ich habe gesehen, wie man eine Operation in einer Schleife durch foreach %dopar% parallelisieren kann. Ich weiß nicht, wie ich ihn in eine versteckte Schleife im DT einhängen kann. Ich weiß nicht, ob es vielleicht schneller geht oder nicht.
Ich danke Ihnen.
Ich habe gesehen, wie man eine Operation in einer Schleife durch foreach %dopar% parallelisieren kann. Ich weiß nicht, wie ich sie an einer versteckten Schleife in DT befestigen kann. Und ich weiß nicht, ob es schneller ginge.
Ich meinte diesen Teil des Codes.
{
lapply(c(1:20), function(x) summary(lm(data = .SD[, c(1:x, 21), with = F], formula = V21 ~ . -1))$'fstatistic'[[1]])
}
, by = sampling
]
Foreach() anstelle von lapply
Mit Diagrammen, deren Erstellung mehrere Dutzend Sekunden dauert, ist etwas nicht in Ordnung.
Sehen Sie sich dieses Paket an ("nhstplot"). Es ist schnell zu zeichnen und ich finde es ziemlich gut.
Mit Diagrammen, deren Erstellung mehrere Dutzend Sekunden dauert, ist etwas nicht in Ordnung.
Sehen Sie sich dieses Paket an ("nhstplot"). Es ist schnell zu zeichnen und ich finde es ziemlich gut.
Ahh. Ich werde es versuchen, danke. Es stellt sich heraus, dass die lapply-Schleife durch eine parallele Schleife ersetzt wird. Und das Ganze läuft in einer DT-Schleife mit 1000 Iterationen ab.
Oder es gibt eine andere Möglichkeit, diese 1000 Iterationen durch foreach zu überspringen.
Ich werde natürlich einen Blick darauf werfen. Aber wo ist hier die Halbtransparenz, wo sind die Hunderte von übereinanderliegenden Objekten? Testen Sie es unter schwierigen Bedingungen, und dann werden wir verstehen, ob es schneller ist oder nicht.
Schnelles halbtransparentes Zeichnen kann mit einer OpenGL-Grafikkarte erreicht werden. In R gibt es dafür die Bibliothek rgl, die eher für 3D gedacht ist, aber wenn Sie orthogonale Projektion und das Zeichnen von Linien beherrschen, ist sie genau das Richtige für Sie. Ich konnte es nicht auf Anhieb herausfinden, man muss die Dokumentation lesen.
Ich hab's:
Es ist ziemlich einfach, halbtransparente Linien zu zeichnen, man braucht nur eine Tabelle mit X- und Y-Koordinaten. Sie könnten auch eine dritte Z-Spalte für mehr Dreidimensionalität hinzufügen.
for(i in 1:1000){
lines3d(cbind(1:1000, cumsum(rnorm(1000))), col="blue", alpha=0.1)
}
Aber es war trotzdem sehr langsam. Nach procesexplorer zu urteilen, wird Video nur zu 5% genutzt, während ein logischer Prozessor zu 100% genutzt wird. Ich denke, R ist zu langsam bei der Eingabe von Daten in OpenGL, viel langsamer als es empfangen kann. Irgendwie hat sich das so ergeben.
Nur um der Übersichtlichkeit willen :) tun Sie es, maximieren Sie das Fenster auf Vollbild, und drehen Sie die "Figur" mit der linken Maustaste.
for(i in 1:100){
lines3d(cbind(cumsum(rnorm(100)), cumsum(rnorm(100)), cumsum(rnorm(100))), alpha=0.2)
}
Ich habe endlich den ersten Versuch mit der Cluster-Idee gemacht, die ich vorhin angekündigt habe. Es ist ein Testlauf, nur um zu sehen, was geht.
gleitende Reihe von 5 OHLC-Werten + Volumen + Volatilität 6 Prädiktoren mit jeweils 5 Werten
Geschichte lernen 100 000 Takte
jeder Prädiktor wurde natürlich normalisiert) und dann in 100 Cluster geclustert Entschuldigung für den Unsinn
Das Ziel entstand aus heiterem Himmel (im Moment habe ich mich gerade erst hingesetzt), ich habe einfach die Umkehr in dieser Form genommen: Das Ziel ist ein Extremum, das höher ist als die 4 vorangegangenen Kerzen und höher als die 10 darauf folgenden Kerzen.
Ich begann, nach sich wiederholenden Mustern zu suchen...
Das beste Muster, das ich ohne Prädiktoren gefunden habe, ist das folgende
91 6 30 41 91 100 0.4 9
in(open high low close volum volum) sind die Anzahl der Cluster, die dieses Muster charakterisieren
target_avg - dies ist die Wahrscheinlichkeit, dass mein Reversal in diesem Muster ausgelöst wird. Ich konnte keine Muster mit einer Auslösewahrscheinlichkeit von 80-90% nach diesen Prädiktoren finden
target_count - dieAnzahl der Male, die das Muster in der Historie erfasst wurde. Ich habe keine signifikanten Muster gefunden, die 30-50 Mal mit diesen Prädiktorenerfasst wurden
Das Beste, was ich mit diesen Prädiktoren gefunden habe, ist ein Muster, bei dem die Umkehrung (Ziel) in 40% der Fälle ausgelöst wird und es nur 9 Beobachtungen gibt (Anzahl der Muster)
Es ist also vielleicht die einzige nützliche Information, der geforderte "NO BLOW", die aus der Menge der Prädiktoren extrahiert werden kann, und sie erklärt nur einen Grund für die Umkehr, und selbst das sind nur 40 % davon, und verschiedene Gründe für verschiedene Umkehrungen, und davon gibt es imho definitiv nicht 10 oder 30.
Und jetzt überlegen Sie mal, wie der MO-Algorithmus alle Marktbewegungen mit solchen Prädiktoren erklären kann. Das ist unmöglich, denn Prädiktoren können nur 2% erklären und der Rest ist Rauschen...
Außerdem gibt es keine Kontrolle der statistischen Wiederholung, d.h. das IR kann eine Entscheidung auf der Grundlage von ein oder zwei Beobachtungen treffen, und das ist in der Tat in der überwiegenden Mehrheit der Fälle, in weniger als 95 % der Fälle, der Fall.
Wie auch immer, ich schweife ab... setzen wir nach dem Muster fort, die Qualität der Eingänge auf dem neuen Muster geschätzt, so werde ich sagen, es weit nicht der Mercedes, aber wenn es ein getöteter Zaporozhets ist, dann dieses Herangehen eine Neun gerade von der Fabrik
Die Qualität der Eingaben ist viel besser, klarer, weniger Fehler...
und die andere Sache ist, das vollständige Muster ist...
91 6 30 41 91 100
Als ich die Erkennung mit den neuen Daten von 50 000 Kerzenständern durchführte, konnte der Algorithmus kein solches Muster finden, es wurde einfach nicht angezeigt).
Ich musste das Muster verkleinern und habe nur die Preise übrig gelassen
91 6 30 41 91 100
Ich habe bereits etwa 20 solcher Muster gefunden
hier sind die Einträge im Muster, ich habe nichts "ala beste Einträge" ausgewählt, sondern einfach Fotos in der Reihenfolge gemacht, in der die Deals gemacht wurden, natürlich nicht alle Deals, sondern nur die ersten paar, so dass Sie bewerten können
der eqiti ist gut, obwohl das Risiko größer ist als erwartet
Denken Sie daran, dass es sich nur um ein Muster und nur um kurze Hosen handelt.
Wenn jemand den Code braucht, werde ich ihn posten, obwohl ich das bezweifle, er ist schon sehr klar214 Seiten sind eine Menge zum Studieren/Lernen. In jedem von ihnen geht es um etwas anderes und nicht immer leicht zu verstehen).
Ist es möglich, all diese Seiten in einem Beitrag zusammenzufassen, auch wenn dieser nicht sehr kurz ist? Typ: Zielsetzung, Lösungsmethoden, Ergebnisse, Schlussfolgerungen.
Ich möchte gleich vorwegnehmen, dass mein Marktmodell ein Zufallsprozess (Brownsche Bewegung) ist, oder vielmehr die Summe mehrerer (vielleicht sogar vieler) solcher Bewegungen mit Rückkopplungen. Und irgendetwas vorherzusagen oder nach anderen als statistischen Mustern zu suchen, ist eine absolut sinnlose Übung. Das heißt, es gibt einfach keine aussagekräftigen Prädiktoren, zumindest nicht für spekulative Zwecke.