L'apprentissage automatique dans la négociation : théorie, modèles, pratique et algo-trading - page 279

 
Yerlan Imangeldinov:
Parlez franchement, c'est dimanche, on n'est pas pressé, et il y a du vrai dans tout. Je ne pense pas que votre méthode soit du charlatanisme, c'est une bonne méthode avec des bases fondamentales.
Qu'est-ce qu'il y a à dire ? Je n'ai rien dit sur "ma" méthode.
 
mytarmailS:
Qu'est-ce qu'il y a à dire ? Je n'ai rien dit sur "ma" méthode.
Tu ris de quelque chose, alors dis-moi de quoi tu ris.
 
Yerlan Imangeldinov:
Vous riez de quelque chose, alors dites-le moi ensemble.

Merci, je riais déjà.

 
mytarmailS:

Merci, j'ai déjà bien ri.

Tout peut être expliqué, il y aurait une compréhension.
 
SanSanych Fomenko:

Il serait souhaitable de voir les résultats des calculs

Mais je vous conseille de vérifier vos propres outils, car le problème peut résider dans les petites nuances de la mise en œuvre de certaines fonctions. Par exemple, l'affichage de ZZ en "vue catégorielle" peut être décalé vers la droite d'une barre, à moi il n'est pas décalé, où le genou ZZ se termine et où les changements de signe de l'indicateur ZZ dérivé. Le contrôle est simple, là où la courbe d'apprentissage est plus élevée, c'est plus correct, l'essentiel est que les signes doivent être sans coup d'œil, et les cibleurs sont obligés d'avoir un coup d'œil, c'est leur essence. Mais le fait est que le ZZ en particulier (sa pente) est immédiatement une cible, car il montre la tendance en vue de l'avenir et la direction idéale de la position à l'heure actuelle.

 
Ça va aller :

OK, je vais avoir une demi-journée de congé...

En R, cela peut être fait en 3 minutes, donc si Sanych veut tellement un pruff qu'il pourrait passer ces trois minutes...
 
mytarmailS:
en R cela peut être fait en 3 minutes, donc si Sanych veut tellement un pruf il aurait pu passer ces trois minutes

Avez-vous seulement compris ce que vous devez faire pendant ces "trois minutes" ? Si vous comprenez, enregistrez une vidéo Camtasia de vous en train de le faire en trois minutes, sans l'accélérer ni la modifier la première fois.

 
Le bruit :

Avez-vous seulement compris ce que vous devez faire pendant ces "trois minutes" ? Si vous comprenez, enregistrez une vidéo Camtasia de vous en train de le faire en trois minutes, sans l'accélérer ni la modifier la première fois.

ici...

sauf que j'ai ajouté du bruit à l'onde sinusoïdale car l'onde sinusoïdale pure est prévisible et le modèle dans les deux cas a prédit sans erreur

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


moyenne sans prédiction

Précision : 0,7895

avec prédiction

Précision : 0.6702

P.S. Je l'ai lu un peu mal, parce que dans les prédicteurs, au lieu de Momentum, j'ai l'onde sinusoïdale elle-même après les 5 valeurs. 5 valeurs avec bruit superposé

 

mytarmailS:

moyenne sans prédiction

Précision : 0,7895

avec prédiction

Précision : 0.6702

Alors...

L'accélération sur la forêt est supérieure de 10 % sans décalage de ZZ, ce qui était nécessaire pour le prouver, car ZZ prédit l'avenir à un moment précis, pas besoin de le décaler.

 
Je le ferai :

Et voilà...

Le scor sur la forêt est 10% plus élevé sans déplacer ZZ, ce qui était nécessaire pour prouver que, comme ZZ prédit l'avenir à un moment précis, il n'est pas nécessaire de le déplacer.

Ça ne prouve rien.

La règle est simple : lorsque vous préparez des données pour l'entraînement , déplacez la cible vers la gauche (" dans le futur ") d'une barre, quelle que soit la façon dont vous avez généré le signal. Vous savez pourquoi ?

Si vous ne le savez pas, je vais vous le décrire en détail.

Bonne chance