Aprendizaje automático en el trading: teoría, práctica, operaciones y más - página 279

 
Yerlan Imangeldinov:
Habla claro, es domingo, no hay prisa, y hay algo de verdad en todo. No creo que su método sea charlatanería, es un buen método con bases fundamentales.
¿Qué hay que decir? No he dicho nada sobre "mi" método.
 
mytarmailS:
¿Qué hay que decir? No he dicho nada sobre "mi" método.
Te ríes de algo, así que dime de qué te ríes.
 
Yerlan Imangeldinov:
Te estás riendo de algo, así que cuéntenme juntos.

Gracias, ya me he reído.

 
mytarmailS:

Gracias, ya me he reído.

Todo se puede explicar, habría comprensión.
 
SanSanych Fomenko:

Sería deseable ver los resultados de los cálculos

Pero te aconsejo que compruebes tus propias herramientas, porque el problema puede estar en los pequeños matices de la implementación de las funciones individuales. Por ejemplo, la visualización de ZZ en la "vista categórica" puede desplazarse a la derecha una barra, en mí no se desplaza, donde termina la rodilla ZZ y donde cambia de signo el indicador ZZ derivado. La comprobación es sencilla, donde la curva de aprendizaje es mayor, es más correcta, lo principal es que las señales deben ser sin asomar, y los apuntadores están obligados a asomar, esa es su esencia. Pero el hecho es que ZZ en particular (su pendiente) es inmediatamente un objetivo, porque muestra la tendencia con vistas al futuro y la dirección de la posición ideal en este momento.

 
Estaré bien:

Bien, tendré medio día libre...

En R se puede hacer en 3 minutos, así que si Sanych tiene tantas ganas de un pruff podría gastar esos tres minutos
 
mytarmailS:
en R se puede hacer en 3 minutos, así que si Sanych quiere tanto un pruf podría haber gastado esos tres minutos

¿Ha entendido lo que tiene que hacer en esos "tres minutos"? Si lo entiendes, graba un vídeo en camtasia haciéndolo en tres minutos, sin acelerar ni editar la primera vez.

 
El ruido:

¿Ha entendido lo que tiene que hacer en esos "tres minutos"? Si lo entiendes, graba un vídeo en camtasia haciéndolo en tres minutos, sin acelerar ni editar la primera vez.

aquí...

excepto que añadí ruido a la onda sinusoidal porque la onda sinusoidal pura es predecible y el modelo en ambos casos predijo sin error

# создаем  синус
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])


media sin predicción

Precisión : 0,7895

con predicción

Precisión : 0,6702

P.D. Lo he leído un poco mal, porque en los predictores en lugar de Momentum tengo la propia onda sinusoidal después de los 5 valores. 5 valores con ruido superpuesto

 

mytarmailS:

media sin predicción

Precisión : 0,7895

con predicción

Precisión : 0,6702

Así que...

La aceleración en el bosque es un 10% mayor sin el desplazamiento de ZZ, que era necesario probar, porque ZZ predice el futuro en un momento determinado, no es necesario desplazarlo.

 
Lo haré:

Ahí tienes...

La puntuación en el bosque es un 10% más sin desplazar ZZ, lo que era necesario demostrar, ya que ZZ predice el futuro en un momento determinado, sin necesidad de desplazarlo.

No demuestra nada.

La regla es sencilla: al preparar los datos para el entrenamiento , desplace el objetivo hacia la izquierda ("hacia el futuro") una barra, independientemente de cómo haya generado la señal. ¿Tiene alguna idea de por qué?

Si no lo sabe, se lo describiré con detalle.

Buena suerte