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

 
mytarmailS #:
Nein, so einfach ist das nicht.
Es ist nicht leicht, sie zu isolieren, aber warum sollte man die Dinge sonst verkomplizieren?
 
Maxim Dmitrievsky #:
Es ist nicht einfach, sie zu isolieren, aber warum sollte man die Dinge sonst verkomplizieren?

Die Zyklen sind zu groß, um sie zu erfassen, und es gibt keine Vorhersage über sie, außer in der Landwirtschaft, und da ist nicht alles so einfach. Zeitliche Komponenten - Ereignisse, die sich in der Zeit wiederholen, können nur herausgefiltert werden. Und wenn man dann noch die Verbindungen von Ereignissen und Einflüssen auf den Preis findet, ist das ein Ziel)))).

 

Grammatikalische Evolution / symbolische Regression, eine erweiterte Version der genetischen Programmierung....

Mit diesen Werkzeugen können Sie automatisch nach Mustern jeglicher Art suchen.


Zum Beispiel können Sie über eine Formel nach einer optimalen Indikatorsteuerung suchen.

Wir erstellen eine Funktionsvorlage (Suchbereich)

library(gramEvol)
ruleDef <- list(expr  = grule(op(expr, expr), func(expr), var),
                func  = grule(sin, cos, log, sqrt),
                op    = grule("+", "-", "*","/"),
                var   = grule(distance, distance^n),
                n     = grule(1, 2, 3, 4))

grammarDef <- CreateGrammar(ruleDef)
gr <- GrammarRandomExpression(grammarDef,numExpr = 10,max.depth = 5)
q <- as.matrix(unlist(lapply(gr,as.character)),ncol=1)
q

und es werden automatisch Formeln erstellt:

[1,] "sqrt(log(cos(sqrt(cos(distance^2)))))"                                                                  
 [2,] "sin(log(sqrt(sin(sqrt(distance * distance))) * (sin(log(distance^3)) - cos(cos(distance)) - distance)))"
 [3,] "(sin(distance * sqrt(sin(distance * sqrt(distance^3)))) + distance^1)/distance"                         
 [4,] "sin(log(log(distance^4)))"                                                                              
 [5,] "distance"                                                                                               
 [6,] "distance^4"                                                                                             
 [7,] "log(sin(distance)) * (log(distance) - cos(distance^4 - distance^4))"                                    
 [8,] "distance^1"                                                                                             
 [9,] "distance"                                                                                               
[10,] "log(distance) * (distance/log((distance^4 - distance^3) * distance^2))"        

die dann genetisch nach der besten Lösung suchen.

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

Oder man kann Log-Regeln erstellen, also nach Regelmäßigkeiten suchen.

Auch hier erstellen wir eine Funktionsvorlage (Suchbereich ).

library(gramEvol)
ruleDef <- list(
  expr = grule(expr & sub.expr, 
               expr | sub.expr, 
               sub.expr),
  sub.expr = grule( com(var, var) ),
  com = grule(">=","<="),
  var = grule(x,y,w,z,q,y,r)
  )

grammarDef <- CreateGrammar(ruleDef)
gr <- GrammarRandomExpression(grammarDef,numExpr = 15,max.depth = 3)

q <- as.matrix(unlist(lapply(gr,as.character)),ncol=1)
q

Und die Ausgabe sind Regeln

[1,] "x >= y"                  
 [2,] "y <= y | y >= y | w >= y"
 [3,] "y <= x"                  
 [4,] "y <= y"                  
 [5,] "y <= r"                  
 [6,] "z <= z"                  
 [7,] "y <= y"                  
 [8,] "x <= y"                  
 [9,] "z <= y | y >= z & r >= y"
[10,] "z >= x"                  
[11,] "y >= y | q >= y | q >= q"
[12,] "y >= y | q <= y | z >= q"
[13,] "y >= y | x <= y | x >= x"
[14,] "y >= r"                  
[15,] "y >= w"

die dann von der Genetik auf ihre Tauglichkeit geprüft werden.

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

Wenn Sie einen TS haben und ihn verbessern wollen, aber nicht genug Phantasie haben, um Millionen von Varianten auszuprobieren, können Sie versuchen, dies mit Hilfe eines Algorithmus zu tun.

Wir haben zumBeispiel einen Einstiegspunkt: Zusammenbruch des Bolingers mit dem Preis nach unten ("PRICE < BOLINGER").

Wir fügen diese Regel in unsere Grammatik ein.

library(gramEvol)
ruleDef <- list(
  expr = grule(expr & sub.expr, 
               expr | sub.expr, 
               sub.expr),
  sub.expr = grule( com(var, var)  ,  PRICE < BOLINGER),
  com = grule(">=","<="),
  var = grule(x,y,w,z,q,y,r)
  )

grammarDef <- CreateGrammar(ruleDef)
gr <- GrammarRandomExpression(grammarDef,numExpr = 15,max.depth = 3)

q <- as.matrix(unlist(lapply(gr,as.character)),ncol=1)
q

Die Regeln sind ein bisschen dumm, aber das liegt daran, dass sie zufällig generiert werden.

[1,] "y >= q"                                                                                                        
 [2,] "PRICE < BOLINGER & y >= y | x >= x"                                                                            
 [3,] "PRICE < BOLINGER | PRICE < BOLINGER & x <= y | y <= w"                                                         
 [4,] "r <= y & PRICE < BOLINGER | w >= x | y <= x"                                                                   
 [5,] "PRICE < BOLINGER | PRICE < BOLINGER | y <= y & PRICE < BOLINGER"                                               
 [6,] "PRICE < BOLINGER"                                                                                              
 [7,] "PRICE < BOLINGER & PRICE < BOLINGER & z <= x | PRICE < BOLINGER & PRICE < BOLINGER | PRICE < BOLINGER | z <= x"
 [8,] "y <= y | PRICE < BOLINGER | x <= y | PRICE < BOLINGER | PRICE < BOLINGER"                                      
 [9,] "PRICE < BOLINGER & x <= y | y <= q & PRICE < BOLINGER"                                                         
[10,] "q >= z & PRICE < BOLINGER | q >= w & y <= x"                                                                   
[11,] "PRICE < BOLINGER | PRICE < BOLINGER"                                                                           
[12,] "w >= y"                                                                                                        
[13,] "PRICE < BOLINGER"                                                                                              
[14,] "y <= y & PRICE < BOLINGER | q >= x | PRICE < BOLINGER"                                                         
[15,] "q >= x" 

Der Punkt ist, dass wir den Suchraum stark einschränken, wenn wir unsere eigene Regel hinzufügen.

Wenn wir eine gute Regel haben und nicht wissen, wie wir sie verbessern können, es aber wollen, können wir sie mit anderen Regeln "bekleiden" und sie automatisch überprüfen.

 
mytarmailS #:

Grammatikalische Evolution / symbolische Regression, eine erweiterte Version der genetischen Programmierung....

Sie können diese Werkzeuge verwenden, um automatisch nach Mustern jeglicher Art zu suchen.


Sie können zum Beispiel nach der optimalen Steuerung eines Indikators suchen, indem Sie die folgende Formel verwenden

eine Funktionsvorlage erstellen (Suchbereich)

und es werden automatisch Formeln erstellt:

die dann genetisch nach der besten Lösung suchen.

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

Oder Sie können Protokollregeln erstellen, um nach Mustern zu suchen.

Erstellen Sie wieder eine Funktionsvorlage (Suchbereich )

Und in der Ausgabe erhalten wir die Regeln

die dann von der Genetik auf ihre Tauglichkeit geprüft werden.

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

Wenn Sie eine TK haben und sie verbessern wollen, aber nicht genug Phantasie haben, um Millionen von Varianten auszuprobieren, können Sie versuchen, dies mit Hilfe eines Algorithmus zu tun.

Wir haben zumBeispiel einen Einstiegspunkt: Durchbruch des Bolingers mit dem Preis nach unten ("PRICE < BOLINGER").

Wir fügen diese Regel in unsere Grammatik ein.

Die Regeln sind ein bisschen dumm, aber das liegt daran, dass sie zufällig generiert werden.

Der Punkt ist, dass wir den Suchraum stark reduzieren, wenn wir unsere eigene Regel hinzufügen.

Wenn wir eine gute Regel haben und nicht wissen, wie wir sie verbessern können, es aber wollen, können wir sie mit anderen Regeln "bekleiden" und sie automatisch überprüfen.

Das ist so, als würde man tiefe Bäume um die Schilder legen.
 
Maxim Dmitrievsky #:
Es ist, als würde man tiefe Bäume um die Schilder herum pflanzen.
Dies sind einfache Beispiele, nur um die Vielseitigkeit des Werkzeugs zu verstehen.

Statt einfacher Stauden könnten es auch Funktionen oder neuronale Netze sein, oder was immer Sie wollen.


Und all das wird automatisch sein.
 
mytarmailS #:
Dies sind einfache Beispiele, um die Vielseitigkeit des Tools zu verdeutlichen.

Anstelle von einfachen Parens können es auch Funktionen oder neuronale Netze sein, oder was immer Sie wollen


Und all dies wird automatisch geölt werden
Wir warten auf die Entwicklung des Themas
 
elibrarius #:

Eine Frage an diejenigen, die sich mit MO beschäftigen.
Wie motivieren Sie sich für dieses fast aussichtslose Unterfangen?
Als ich mit 18 Jahren anfing, hatte ich ein kleines Einkommen und einen materiellen Anreiz, oder vielmehr die Hoffnung, dass MO auf dem Markt helfen wird.

Jetzt bekomme ich ein Vielfaches davon, fast passiv, nicht vom Markt. Die materielle Frage stört mich nicht. In den letzten 2 Jahren habe ich 3 mal für 1-2 Monate MO gemacht, um die Idee, die mich interessiert, zu überprüfen.
Ich habe freie Zeit, aber es ist faul, sie nach vielen erfolglosen Experimenten mit MO zu verbringen. Da ich fast keine Hoffnung auf Rückkehr habe. Das einzige, was - nur um eine andere Quelle im Falle eines weiteren finanziellen Einbruchs zu haben (wenn sich etwas herausstellt). Aber das Motiv ist im Moment schwach.

Wer motiviert sich womit?

Ich habe eine lange Beziehung zum Devisenhandel. Angefangen als Analyst in einem Brokerhaus (Wirtschaftsausbildung), dann als Händler und Assistent des Managers gearbeitet, gehandelt, dann Interesse an Bots und MO bekommen.

Es gab eine Menge Ineffizienzen (auch technische), als ich es schaffte, anständige Summen herauszuholen
 
Maxim Dmitrievsky #:

Ich habe eine lange Beziehung zum Devisenhandel. Ich habe als Analyst in einem Maklerzentrum angefangen (Wirtschaftsausbildung), dann als Händler und stellvertretender Manager gearbeitet, gehandelt und mich dann für Bots und MO interessiert.

Es gab eine Menge Ineffizienzen (auch technische), bei denen es mir gelang, anständige Summen herauszuholen.
Motivation ist immer noch Gewinn?
Nun, niemand mit Hilfe von MO funktioniert nicht.... jeder ist auf der Suche.
 
elibrarius #:
Bei der Motivation geht es nur darum, Geld zu verdienen?
Nun, es scheint, dass niemand mit Hilfe von MO gut.... jeder schaut hin.

Nicht nur das, es ist ein irrationaler Drang.

So wie man als Kind gerne Spielzeug kaputt gemacht und neues gebaut hat.
 
Maxim Dmitrievsky #:

Nicht nur das, es ist ein irrationaler Drang.

Als Kind habe ich zum Beispiel gerne Spielzeuge kaputt gemacht und neue gebastelt.

Überhaupt - Kreativität. Aber Kreativität "auf dem Tisch", denn es ist unwahrscheinlich, dass all diese Arbeit von jemandem gesehen und geschätzt wird.

Grund der Beschwerde: