Машинное обучение в трейдинге: теория, модели, практика и алготорговля - страница 279
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Говорите прямо, сегодня воскресенье некуда торопиться, да и везде есть доля правды. Я не думаю что ваш метод прям шарлотанский, довольно хороший метод с фундаментальными основаниями.
что говорить? я ни о каком "своем" методе не говорил
Вы же о чем то смеетесь так расскажите и мне посмеемся вместе.
спасибо, я уже насмеялся
спасибо, я уже насмеялся
Желательно увидеть результаты расчетов
Ок, выкроится свободных пол дня, сделаю набросок расчетов. Но советую Вам самому проверить на собственных инструментах, так как проблема может крыться в мелких нюансах реализаций отдельных функций. Например отображение ZZ в “категориальный вид”, может быть смещенно вправо на один бар, у меня не смещенно, где колено ZZ там и заканчивается изменения индикатора знака производной ZZ. Ну и ряд других подводных камней. Проверяется просто, где скор обучения выше, там и правильней, главное чтобы признаки были без подглядывания, а таргеты обязаны подглядывать, в этом их сущность. Но факт остаётся фактом, конкретно ZZ(его наклон) сразу таргет, так как показывает тренд с заглядыванием в будущее и идеальные направление позиции в данный момент.
Ок, выкроится свободных пол дня..
в R это за 3 минуты можно сделать, так что если Санычу уж так сильно пруфа хочется то мог бы и потратить эти три минуты
Вы хоть поняли что сделать нужно за эти «три минуты»? Если поняли то запишите видеоролик камтасией, где Вы это делаете за три минуты снуля, без ускорок и монтажа с первого раза.
Вы хоть поняли что сделать нужно за эти «три минуты»? Если поняли то запишите видеоролик камтасией, где Вы это делаете за три минуты снуля, без ускорок и монтажа с первого раза.
вот...
только я на синусоиду еще шум наложил потому что чистая синусоида предсказуемая и модель в обоих случаях предсказывала без ошибки
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])
в среднем без предсказания
Accuracy : 0.7895
с предсказанием
Accuracy : 0.6702
P.S. Я немного не внимательно прочитал, потому в предикторах вместо моментума у меня сама синусоида посл. 5 значений с наложенным сверху шумом
mytarmailS:
в среднем без предсказания
Accuracy : 0.7895
с предсказанием
Accuracy : 0.6702
Ну вот...
Скор на лесу на 10% больше без сдвига ZZ, что и требовалось доказать, так как ZZ будущее предсказывает в конкретный момент, не нужно его сдвигать.
Ну вот...
Скор на лесу на 10% больше без сдвига ZZ, что и требовалось доказать, так как ZZ будущее предсказывает в конкретный момент, не нужно его сдвигать.
Ничего это не доказывает.
Правило простое: при подготовке данных для обучения целевую сдвигаем влево ("в будущее") на один бар, вне зависимости от того как Вы сгенерировали сигнал. Не догадываетесь почему?
Если не знаете я распишу подробно.
Удачи