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

 
Eidechse_:
radikal.ru/video/1JIag8ds57s

)))

 
Eidechse_:

Lassen Sie sich nicht in Euphorie versetzen. Nehmen Sie sich ein paar Tage Zeit, um es in Ruhe zu verdauen...

Das ist ein guter Ratschlag. Nehmen Sie sich Zeit... :-)

 
mytarmailS:

die üblichen horizontalen Bände!!! Mein Gott, wo kommt ihr denn alle her? )) Ah, ich vergaß, dass dies ein Forex-Forum ist)


In dem kleinen Fenster? Auf dem linken Monitor?

 
Sergey Chalyshev:

Was ist los?

Ich selbst habe das gleiche Problem. Kann mir jemand sagen, warum dies der Fall sein könnte?

 
Mikhail Khlestov:

Ich selbst habe dieses Problem. Kann mir jemand sagen, warum dies der Fall sein könnte?

Das ist bei allen der Fall, es macht keinen Sinn, sich die Ergebnisse der Schalen anzuschauen, nur die OOS, aber wenn das System keine wirklichen Muster erkannt hat (und ein paar hundert Leute auf der Welt können das), dann werden die OOS die Streuung oder etwas Schlimmeres beeinträchtigen. Aber eine Spur zu reparieren - kein Problem für jede Graylist mit 100$ und ein paar Stunden.

 
Igor Makanu:

1. ich werde versuchen, Haikin frei zu zitieren: der Datensatz sollte sowohl positive als auch negative Beispiele enthalten

Bei positiven Beispielen scheint es klar zu sein, was noch zu klären ist, ist, wie man negative Beispiele lehrt?

2.Lärm sollte auch angegeben werden, aber das ist ja nicht gerade ein Negativbeispiel, oder?

1) Sie haben Recht. Aber Sie haben vergessen, dass das Verhältnis zwischen positiv und negativ mit der Praxis übereinstimmen sollte. Auch ein Zitat aus dem Gedächtnis.

Auf dieselbe Weise zu unterrichten. Geben Sie den Input in Mischungen mit den Positiven.

2. aus 1. folgt - kein Lärm.

Wenn man nur Positives und nichts Negatives hat, hat man keine Ahnung, was man lehrt.

 
Igor Makanu:

1. ich habe es nicht vergessen, denn ich weiß es nicht - es gibt nichts zu vergessen, ich will immer noch lesen, aber es sind diese kleinen Dinge, die alles in Gang setzen!

2. individuell alle, imho, gut, meine Ziele sind gut - ich will nicht vorhersagen, das Unvorhersehbare, ich will die adaptive anpassen )))

Übrigens, woher soll ich das Negativ nehmen? Da ich die Aufgabe nicht kenne, allgemein gesprochen.

Wenn Sie z. B. das Erkennen von Dreiecken lehren, dann sollte das Übungsbeispiel nicht nur eine Vielzahl von Dreiecken, sondern auch eine Vielzahl von Nicht-Dreiecken enthalten.

 
Eidechse_:

radikal.ru/video/m9Ct2f9xDCn

Scheiße... was für eine Musik hörst du denn da?)

 

Was das Treibgut angeht, so habe ich, wenn Sie sich erinnern, ein Thema angesprochen, wie man Treibgut algorithmisieren kann. Ich habe keine klaren Antworten bekommen, also musste ich selbst nachdenken...

Am Anfang habe ich mit Verteilungen experimentiert - je mehr der Kurs auf einem Niveau schwankte und je stärker diese Schwankungen waren, desto wahrscheinlicher war der Flop; diese Methode hat jedoch Nachteile und ich habe sie aufgegeben.

Die zweite Methode war besser und ich möchte sie mit Ihnen teilen, falls jemand daran interessiert ist...

Für die zweite Methode habe ich die Autokorrelation der Preise verwendet, und ich habe lange nach Anzeichen für eine Abflachung der ACF-Angaben gesucht und zwei einfache Anzeichen gefunden.

So sehen der Preis und der ACF aus

den Code auf dem R-ke

layout(1:2)
x <- cumsum(rnorm(100))
plot(x,t="l")
acf(x,plot = T,lag.max = length(x))

Nun zu den Zeichen

Das erste Zeichen ist die Anzahl der Extrema in der ACF (blau)

Der zweite Indikator ist die Anzahl der Schnittpunkte der Nulllinie mit der Achse (rot)

Je mehr Überschneidungen und Extrema, desto stärker die Wohnung

Eine Funktion, die die beiden oben genannten Attribute oder Parameter zurückgibt

get_parameters <- function(x){
  ac <- acf(x,lag.max = length(x),plot = F)
  
  
  library(quantmod)
  
  xx <- ac$acf
  
  pi <- findPeaks(xx)
  va <- findValleys(xx)
  length(c(pi,va))
  
  flet <- rep(0,length(xx))
  for(i in 5:length(xx)){
    
    if(xx[i-1]>0 && xx[i]<0)  flet[i] <- 1
    if(xx[i-1]<0 && xx[i]>0)  flet[i] <- 1
  }
  
  x1 <- length(c(pi,va))
  x2 <- sum(flet)
  
  return(c(x1,x2))
}

Die Methode hat einen Nachteil - es handelt sich um ein gleitendes Fenster mit fester Größe, aber das kann vermieden werden, obwohl der Algorithmus hundertmal langsamer wird, was schlecht ist...


Jetzt ist das Ergebnis tatsächlich

Wir betrachten die Situation als "flach", wenn das erste und zweite Zeichen mehr als 7

den Algorithmus in einem gleitenden Fenster der Größe 30 Punkte

Algorithmus in einem gleitenden Fenster von 200 Pixeln

und der Code selbst

layout(1:1)
x <- cumsum(rnorm(1000))
plot(x,t="l")
n <- 200  # length roll window
for(i in n:length(x)){
  ii <- (i-(n-1)):i
  gp <- get_parameters(x[ii])
 flat <- gp[1]>=8 && gp[2]>=8
if(flat){
   rect(i-length(ii), min(x[ii]), i, max(x[ii]), col = "aquamarine3",border = "aquamarine3")
 }}
lines(x,t="l")


Wenn jemand weiß, wie man den Algorithmus verbessern kann, zögern Sie nicht, dies mitzuteilen

 
mytarmailS:

Siehe .....

Algorithmus in einem gleitenden Fenster von 30 Pixeln

Algorithmus in einem gleitenden Fenster von 200 Pixeln

Wenn man also die ganze Geschichte als Fenster nimmt, ist es von Anfang bis Ende eine Wohnung?