Как то Вы делали скрипт, которым я решил вот снова воспользоваться
Запустил его на выборке, а он выдает ошибку - не могу понять, где искать ошибку и как исправить - может Вы знаете, раз пользуетесь этими библиотеками/пакетами?
На бинарной выборке все отработало нормально.
Ошибка говорит о том, что в корреляционной матрице появились неопределенные значения(NA) и функция findCorrelation не может ее использовать. Открой пакет и почитай описание функций.
Скрипты расхристанные и море ненужных промежуточных результатов. внизу скрипт исправленный
1. Не нужно грузить пакет "caret" в глобальную область. Он очень тяжелый, тянет очень много зависимостей и данных. Тебе нужна только одна функция его. Ты ее импортируешь прямо в функцию get.findCor.
Пакет tidyft очень быстрый пакет манипуляции датафреймами. Используй его.
1. Не нужно грузить пакет "caret" в глобальную область. Он очень тяжелый, тянет очень много зависимостей и данных. Тебе нужна только одна функция его. Ты ее импортируешь прямо в функцию get.findCor.
Владимир, а не знаете, есть ли пакет для бектеста который ведет журнал сделок и все такое (ну чтобы не примитивщина), кроме медленного "quantstrat" и "SIT"
мне проще перебирать способы пересчета метки vs фичи на большом датасете, чем переобучать каждый бар, завязну надолго
Полностью согласен, именно из-за этого не удается перейти к советнику.
Но это поврос принципиальный. Я перешел на схему "учить на каждом шаге" из-за скрытого заглядывания вперед, которые возникают из-за подготовки всего дэйтасета. У меня именно эта проблема, причем я не смог найти предикторы, которые порождают эффект "заглядывания вперед".
Полностью согласен, именно из-за этого не удается перейти к советнику.
Но это поврос принципиальный. Я перешел на схему "учить на каждом шаге" из-за скрытого заглядывания вперед, которые возникают из-за подготовки всего дэйтасета. У меня именно эта проблема, причем я не смог найти предикторы, которые порождают эффект "заглядывания вперед".
Делайте между участком обучения и тестом промежуток. Хотя бы пару дней. Последние бары имеют такое же будущее, как и первый неизвестный. Участок Embargo вроде бы называют. Однажды обучение сократил до 1 дня и тест был равен 1 дню. А прогноз для разметки на несколько дней вперед смотрел. Т.е. он видел и то, что будет для новых баров. Оч. хорошие результаты были. С увеличением обучающего промежутка до недели тоже был результат выше 50/50. Ну и чем больше - тем хуже, к строкам с подглядыванием добавлялись строки без подглядывания и они все портили)))
В общем этот эмбарго участок должен быть не меньше заглядывания вперед для учителя.
Владимир, а не знаете, есть ли пакет для бектеста который ведет журнал сделок и все такое (ну чтобы не примитивщина), кроме медленного "quantstrat" и "SIT"
Для авторизации и пользования сайтом MQL5.com необходимо разрешить использование файлов Сookie.
Пожалуйста, включите в вашем браузере данную настройку, иначе вы не сможете авторизоваться.
Вы вошли в аккаунт. Двухфакторная аутентификация отключена. Настройте её заново и отсканируйте новый QR-код или продолжите с отключённой двухфакторной аутентификацией.
Как то Вы делали скрипт, которым я решил вот снова воспользоваться
Запустил его на выборке, а он выдает ошибку - не могу понять, где искать ошибку и как исправить - может Вы знаете, раз пользуетесь этими библиотеками/пакетами?
На бинарной выборке все отработало нормально.
Ошибка говорит о том, что в корреляционной матрице появились неопределенные значения(NA) и функция findCorrelation не может ее использовать. Открой пакет и почитай описание функций.
Скрипты расхристанные и море ненужных промежуточных результатов. внизу скрипт исправленный
Пояснения по порядку:
1. Не нужно грузить пакет "caret" в глобальную область. Он очень тяжелый, тянет очень много зависимостей и данных. Тебе нужна только одна функция его. Ты ее импортируешь прямо в функцию get.findCor.
Пакет tidyft очень быстрый пакет манипуляции датафреймами. Используй его.
Для контроля я проверил на своем наборе с использованием этого скрипта. Результат:
# patch <- "C:/RData/Project/FEDOT/" # df1 <- fread(paste0(patch, "DF_train_M5.csv")) # object.size(df1) #780184 bytes # dim(df1) #[1] 4030 25 # ft <- as_fst(df1)# # rm(df1) #ft %>% select_fst(cols = c(1:3,25), negate = TRUE)-> dt #dim(dt) [1] 4030 21 bench::workout({ for(i in seq_len(length(cor.test.range))){ get.findCor(dt, cor.coef = cor.test.range[i])-> dt.n paste0("train2_" , cor.test.range[i]*10 , ".csv") %>% paste0(patch , .) %>% fwrite(dt.n, .) rm(dt.n) } })->t1 #(12.9 m) setwd(patch) dim(fread("train2_1.csv")) #[1] 4030 3 dim(fread("train2_2.csv")) #[1] 4030 6 dim(fread("train2_3.csv")) #[1] 4030 10 dim(fread("train2_4.csv")) #[1] 4030 13 dim(fread("train2_5.csv")) #[1] 4030 16 dim(fread("train2_6.csv")) #[1] 4030 17 dim(fread("train2_7.csv")) #[1] 4030 18 dim(fread("train2_8.csv")) #[1] 4030 18 dim(fread("train2_9.csv")) #[1] 4030 18считает довольно долго (12.9 мин.). Но и фрейм не маленький. Конечно нужно распараллелить, поискать более быструю функцию cor.
Из первоначальных 21 предикторов с разными порогами отбиралось разное количество предикторов.
Но это не тот путь по которому нужно идти.
Удачи
Вы не обратили внимание на изменчивость sd
обращу в след. раз, посчитаю sd от sd от sd %)
Привязка смещения окна признаков к какому-нибудь индикатору (например std) ничего не дала
чем больше значение тем больше смещение, кратное этому значению
или наоборот. Попробовал оба.
есть еще вариант расширения-сужения (+смещение?), пока не пробовал
в рамках фракталов только перебор таких вариантов вижу
1. Не нужно грузить пакет "caret" в глобальную область. Он очень тяжелый, тянет очень много зависимостей и данных. Тебе нужна только одна функция его. Ты ее импортируешь прямо в функцию get.findCor.
Ух ты, поленая штука
Владимир, а не знаете, есть ли пакет для бектеста который ведет журнал сделок и все такое (ну чтобы не примитивщина), кроме медленного "quantstrat" и "SIT"
Привязка смещения окна признаков к какому-нибудь индикатору (например std) ничего не дала
чем больше значение тем больше смещение, кратное этому значению
или наоборот. Попробовал оба.
есть еще вариант расширения-сужения (+смещение?), пока не пробовал
в рамках фракталов только перебор таких вариантов вижу
Абсолютно точно.
Все надо пересчитывать на каждом шаге.
Абсолютно точно.
Все надо пересчитывать на каждом шаге.
мне проще перебирать способы пересчета метки vs фичи на большом датасете, чем переобучать каждый бар, завязну надолго
Да и частым переобучением вы определяете какую-то общую закономерность, если глобально посмотреть. Если эта конструкция не льет конечно.мне проще перебирать способы пересчета метки vs фичи на большом датасете, чем переобучать каждый бар, завязну надолго
Полностью согласен, именно из-за этого не удается перейти к советнику.
Но это поврос принципиальный. Я перешел на схему "учить на каждом шаге" из-за скрытого заглядывания вперед, которые возникают из-за подготовки всего дэйтасета. У меня именно эта проблема, причем я не смог найти предикторы, которые порождают эффект "заглядывания вперед".
Полностью согласен, именно из-за этого не удается перейти к советнику.
Но это поврос принципиальный. Я перешел на схему "учить на каждом шаге" из-за скрытого заглядывания вперед, которые возникают из-за подготовки всего дэйтасета. У меня именно эта проблема, причем я не смог найти предикторы, которые порождают эффект "заглядывания вперед".
Участок Embargo вроде бы называют.
Однажды обучение сократил до 1 дня и тест был равен 1 дню. А прогноз для разметки на несколько дней вперед смотрел. Т.е. он видел и то, что будет для новых баров. Оч. хорошие результаты были.
С увеличением обучающего промежутка до недели тоже был результат выше 50/50. Ну и чем больше - тем хуже, к строкам с подглядыванием добавлялись строки без подглядывания и они все портили)))
В общем этот эмбарго участок должен быть не меньше заглядывания вперед для учителя.
Ух ты, поленая штука
Владимир, а не знаете, есть ли пакет для бектеста который ведет журнал сделок и все такое (ну чтобы не примитивщина), кроме медленного "quantstrat" и "SIT"
не знаю. Не встречал