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

 
Yerlan Imangeldinov:
Sprechen Sie offen, es ist Sonntag, es besteht keine Eile, und an allem ist etwas Wahres dran. Ich halte Ihre Methode nicht für Quacksalberei, sondern für eine gute Methode mit fundamentalen Grundlagen.
Was gibt es zu sagen? Ich habe nichts über "meine" Methode gesagt.
 
mytarmailS:
Was gibt es zu sagen? Ich habe nichts über "meine" Methode gesagt.
Du lachst über etwas, also erzähl mir davon und wir lachen gemeinsam.
 
Yerlan Imangeldinov:
Ihr lacht über etwas, also erzählt es mir gemeinsam.

Danke, ich habe schon gelacht.

 
mytarmailS:

Danke, ich habe mich schon amüsiert.

Alles kann erklärt werden, man würde es verstehen.
 
SanSanych Fomenko:

Es wäre wünschenswert, die Ergebnisse der Berechnungen zu sehen

Ich rate Ihnen jedoch, Ihre eigenen Tools zu überprüfen, da das Problem möglicherweise in kleinen Nuancen bei der Implementierung einzelner Funktionen liegt. Zum Beispiel kann die Anzeige von ZZ in der "kategorischen Ansicht" um einen Balken nach rechts verschoben werden, bei mir ist sie nicht verschoben, wo Knie ZZ endet und wo das Vorzeichen der abgeleiteten ZZ-Anzeige wechselt. Die Prüfung ist einfach, wo die Lernkurve höher ist, ist es mehr richtig, die Hauptsache ist, dass die Zeichen ohne Peek sein sollte, und Zielpersonen sind verpflichtet, Peek, das ist ihr Wesen. Tatsache ist aber, dass insbesondere ZZ (seine Steigung) sofort ein Ziel ist, weil es den Trend mit Blick auf die Zukunft und die ideale Positionsrichtung im Moment anzeigt.

 
Ich komme schon klar:

OK, ich werde einen halben Tag frei haben...

In R kann das in 3 Minuten erledigt werden. Wenn Sanych also unbedingt einen Pruff will, könnte er diese drei Minuten damit verbringen
 
mytarmailS:
in R kann das in 3 Minuten erledigt werden. Wenn Sanych also unbedingt einen Test haben will, hätte er diese drei Minuten auch damit verbringen können

Haben Sie überhaupt verstanden, was Sie in diesen "drei Minuten" tun müssen? Wenn Sie das verstanden haben, nehmen Sie ein Camtasia-Video auf, wie Sie es in drei Minuten machen, ohne es zu beschleunigen oder das erste Mal zu bearbeiten.

 
Der Lärm:

Haben Sie überhaupt verstanden, was Sie in diesen "drei Minuten" tun müssen? Wenn Sie das verstanden haben, nehmen Sie ein Camtasia-Video auf, wie Sie es in drei Minuten machen, ohne es zu beschleunigen oder das erste Mal zu bearbeiten.

hier...

außer dass ich der Sinuswelle Rauschen hinzugefügt habe, weil die reine Sinuswelle vorhersehbar ist und das Modell in beiden Fällen keine Fehler vorhersagt

# создаем  синус
make.sin <- function(){
  t <- seq(0,50,0.1)
  s <- sin(t)
  return(s)
}
S <- make.sin()

noise <- rnorm(length(S))
S <- (S+noise)+1000

# х енкель для создания скользящего окна
hankel <- function(data, r=5) {
  do.call(cbind,
          lapply(0:(r-1),function(i) { data[(i+1):(length(data)-(r-1-i))]}))}
S <- hankel(S)

# делаем зиг и целевую с него
library(TTR)
make.zz <- function(ch=0.2){
  zz <- ZigZag(S[,ncol(S)], change = ch, percent = T, retrace = F, lastExtreme = T)
  n <- 1:length(zz);
  for(i in n) { if(is.na(zz[i])) zz[i] = zz[i-1]}
  dz<-c(NA,diff(zz))
  sig<-ifelse(dz>0, 1, ifelse(dz<0, 0, NA))
  return(list(label=sig , zz=zz))
}
Y <- make.zz()

layout(1:2)
# рисуем для наглядности синусоиду ,
# зигзаг на ней и внизу бинарный сигнал бай/сел
plot(S[,ncol(S)],t="l")
lines(Y$zz,col=4,lwd=2)
plot(Y$label ,t="l")

# подготовка данных
dat <- na.omit(  cbind.data.frame(var=S, label=Y$label) )

label <- as.factor(dat$label)
dat <- dat[,-ncol(dat)]

# тренировки модели
tr <- 1:400
ts <- 401:nrow(S)

library(randomForest)
# тренируем модель как есть те целевая
# не заглядывает в будущее на один шаг

rf1 <- randomForest(label[tr]~., dat[tr,])
pr1 <- predict(rf1, dat[ts,])

# теперь тренируем вторую модель которая
# уже пробует предсказать следующее значение

label2 <- label[-1]
dat2 <- dat[-nrow(dat),]

rf2 <- randomForest(label2[tr]~., dat2[tr,])
pr2 <- predict(rf2, dat2[ts,])

# проверяем результаты
library(caret)

#ошибка без попытки предсказать
confusionMatrix(pr1,label[ts])
#ошибка с предсказанием на шаг
confusionMatrix(pr2,label2[ts])


Durchschnitt ohne Vorhersage

Genauigkeit: 0,7895

mit Vorhersage

Genauigkeit: 0,6702

P.S. Ich habe es ein wenig falsch gelesen, denn in den Prädiktoren habe ich anstelle von Momentum die Sinuswelle selbst nach den 5 Werten. 5 Werte mit überlagerndem Rauschen

 

mytarmailS:

Durchschnitt ohne Vorhersage

Genauigkeit: 0,7895

mit Vorhersage

Genauigkeit: 0,6702

Also...

Die Beschleunigung des Waldes ist ohne ZZ-Verschiebung um 10% höher, was zu beweisen war, da ZZ die Zukunft zu einem bestimmten Zeitpunkt vorhersagt und nicht verschoben werden muss.

 
Das werdeich:

Da haben Sie es...

Der Wert des Waldes steigt um 10 %, ohne dass ZZ verschoben wird, was erforderlich war, um zu beweisen, dass ZZ die Zukunft zu einem bestimmten Zeitpunkt vorhersagt und nicht verschoben werden muss.

Das beweist gar nichts.

Die Regel ist einfach: Wenn Sie Daten für das Training vorbereiten , verschieben Sie das Ziel um einen Balken nach links ("in die Zukunft"), unabhängig davon, wie Sie das Signal erzeugt haben. Haben Sie eine Ahnung, warum?

Wenn Sie es nicht wissen, beschreibe ich es im Detail.

Viel Glück!