Машинное обучение в трейдинге: теория, модели, практика и алготорговля - страница 692

 
Mihail Marchukajtes:

Это первый вариант, а второй строить небольшие модели без адаптации на относительно короткий промежуток времени. Так сказать набегами на рынок. Пришёл, с оптимил, отобрал у простолюдинов пару тройку хороших сделок и был таков, до следующего раза....

можно просто вырубить долгосрочную память у бота и он будет каждый день как заново родился, но отсутствие долгосрочного опыта это всегда фэйл и день сурка

 
СанСаныч Фоменко:

Мне не нужно думать - для меня это пройденный этап с достаточно большим архивом результатов экспериментов.

Повторю то, что писал много раз.

1. Целевая ЗЗ

2. под эту целевую придумал около 200 предикторо

3. Из 200 по алгоритму "влияния на целевую" отобрал 27 предикторов

4. на каждом баре из 27 предикторов отбираю по  rfe предикторы, число отобранных меняется от 6-7 до 15 из 27.

5. Подгоняю rf. Ошибка подгонки чуть меньше 30%.


Никаких бесконечных циклов. 30% - это очень хороший результат, но в теории. Практический советник мне не удалось на таком результате построить, пришлось добавить трендовые индикаторы. Сейчас меняю индикаторы (барахло) на GARCH.

Что и требовалось доказать, подходы идентичны, потому как это принцип такой, а что за rfe?

П.С. У меня модели считаются в индикаторах на выходе которых стрелка вверх или вниз. Советник несёт в себе функцию надёжной "Открывашки"

 
СанСаныч Фоменко:

Мне не нужно думать - для меня это пройденный этап с достаточно большим архивом результатов экспериментов.

ну вот и нечо нам этим заниматься, раз у вас не получилось

можно подумать что мы умнее чем вы :)

П.С. приучаю себя учиться на чужом опыте

 
Maxim Dmitrievsky:

можно просто вырубить долгосрочную память у бота и он будет каждый день как заново родился, но отсутствие долгосрочного опыта это всегда фэйл и день сурка

Ежедневная переоптимизация утром не есть хорошо, тут я согласен. Для работы ТС нужен чуть более пролонгированный интервал. У меня на М15 неделя в самый раз. Считай 40 сигналов на обучении, где доверительный интервал для модели порядка 20 из которых 5 на ООС (пятница) остальные 15 уже рабочии, как правило 3-4 сделки в день, вот тебе и неделя! И тут уже снова день сурка, вернее неделя сурка, Ну так это работа... ничего не поделаешь :-) Хотя она мне нравится и ведь прав был Стив Джобс. "Нет лучше работы, чем высоко оплачиваемое хобби"

 
Maxim Dmitrievsky:

ну вот и нечо нам этим заниматься, раз у вас не получилось

можно подумать что мы умнее чем вы :)

П.С. приучаю себя учиться на чужом опыте

Я не сказал, что не получилось. Получилось и очень даже - удалось решить некоторые финансовые проблемы.

Но советник переобучался и источником были индикаторы, от которых я пытаюсь избавиться.

 
Mihail Marchukajtes:

 "Нет лучше работы, чем высоко оплачиваемое хобби"

Это положение за 200 лет до Джобса Сен-Симон положил в основу утопического социализма.

 
СанСаныч Фоменко:

Это положение за 200 лет до Джобса Сен-Симон положил в основу утопического социализма.

Вполне возможно. Спорить не буду...

 
Mihail Marchukajtes:

Но вот думаю что одной ВИ метрики мало будет. Нужно попробовать посчитать избыточность и попробовать ещё сократить количество столбцов.

Может быть есть уже готовые функции позволяющие оценить входные данные к выходу помимо взаимной информации????

В R есть множество библиотек (пакетов) на многие случаи жизни, в том числе и отбор предикторов (столбцов). 
https://cran.r-project.org/web/packages/available_packages_by_name.html - это официально поддерживаемые библиотеки, и есть ещё сотни на гитхабе. Там можно искать по ключевым словам то что нужно.

Для определения ВИ каждого предиктора с целью хорошо работает пакет vtreat (функция designTreatments, поищите по её названию поиском на этом сайте, он даст много ссылок на эту тему с примерами)
Ещё я недавно приводил пример как использовать пакет FSelector чтоб найти хороший набор предикторов - https://www.mql5.com/ru/forum/86386/page643#comment_6472393 
Там далее люди предложили ещё несколько других пакетов - FSelectorRcpp, CORElearn, VSURF, VarSelRF, Boruta.

Boruta мне кажется самый лёгкий в использовании (но возможно не самый лучший), нужно просто запустить такой код и подождать - 

# install.packages("Boruta", dependencies=T) # эту строчку нужно запустить всего 1 раз чтобы автоматически установить пакет
# library(Boruta) # эту строчку нужно запустить каждый раз когда вы заново открываете R или RStudio, чтоб загрузить пакет в память
forexFeatures <- read.csv2("Qwe.txt", dec=".")
Boruta(TargetProf ~ . , data = forexFeatures) #запуск с дефолтными параметрами
Boruta(TargetProf ~ . , data = forexFeatures, doTrace = 1, maxRuns = 1000) #больше логов на экране, и больше итераций алгоритма, результат должен быть качественней чем дефолтный
Код выдаст "4 attributes confirmed important: AD10, Del, Del2, N;", значит можно взять только этих 4 и попробовать обучить модeль с ними.
N (порядковый номер) тоже посчитался хорошим из-за того что класс 1 сконцентрирован в начале файла с маленькими N. Вообще лучше сначала удалять из таблицы такие колонки, которые несут просто информацию для пользователя а не для моделей.
forexFeatures <- forexFeatures[,-1]
Boruta(TargetProf ~ . , data = forexFeatures, doTrace = 1, maxRuns = 1000)
# 2 attributes confirmed important: AD10, Del;
 
Dr. Trader:

В R есть множество библиотек (пакетов) на многие случаи жизни, в том числе и отбор предикторов (столбцов). 
https://cran.r-project.org/web/packages/available_packages_by_name.html - это официально поддерживаемые библиотеки, и есть ещё сотни на гитхабе. Там можно искать по ключевым словам то что нужно.

Для определения ВИ каждого предиктора с целью хорошо работает пакет vtreat (функция designTreatments, поищите по её названию поиском на этом сайте, он даст много ссылок на эту тему с примерами)
Ещё я недавно приводил пример как использовать пакет FSelector чтоб найти хороший набор предикторов - https://www.mql5.com/ru/forum/86386/page643#comment_6472393 
Там далее люди предложили ещё несколько других пакетов - FSelectorRcpp, CORElearn, VSURF, VarSelRF, Boruta.

Boruta мне кажется самый лёгкий в использовании (но возможно не самый лучший), нужно просто запустить такой код и подождать - 

Угум. Я уже кучу всего накачал, но познания мои в R скудны, поэтому и происходят танцы с бубном. Но спасибо за инфу. Думаю нужно остановится на каком то конкретном наборе метрик, которых будет достаточно для анализа. Мне и ВИ то понравилась, глядя на полученные модели и результаты тестов, но чувствую что этого мало. После определения набора метрик, останется лишь расширить набор входных данных, чтоб было из чего выбирать, а главное это качество входа по отношению к выходу. Если найти хорошие входа для своей ТС, то это более чем половина дела... так то....

 
Dr. Trader:

В R есть множество библиотек (пакетов) на многие случаи жизни, в том числе и отбор предикторов (столбцов). 
https://cran.r-project.org/web/packages/available_packages_by_name.html - это официально поддерживаемые библиотеки, и есть ещё сотни на гитхабе. Там можно искать по ключевым словам то что нужно.

Для определения ВИ каждого предиктора с целью хорошо работает пакет vtreat (функция designTreatments, поищите по её названию поиском на этом сайте, он даст много ссылок на эту тему с примерами)
Ещё я недавно приводил пример как использовать пакет FSelector чтоб найти хороший набор предикторов - https://www.mql5.com/ru/forum/86386/page643#comment_6472393 
Там далее люди предложили ещё несколько других пакетов - FSelectorRcpp, CORElearn, VSURF, VarSelRF, Boruta.

Boruta мне кажется самый лёгкий в использовании (но возможно не самый лучший), нужно просто запустить такой код и подождать - 

Код выдаст "4 attributes confirmed important: AD10, Del, Del2, N;", значит можно взять только этих 4 и попробовать обучить модeль с ними.
N (порядковый номер) тоже посчитался хорошим из-за того что класс 1 сконцентрирован в начале файла с маленькими N. Вообще лучше сначала удалять из таблицы такие колонки, которые несут просто информацию для пользователя а не для моделей.

Погоди, попробую у себя повторить. Как раз хотел спросить пример кода использования....

Причина обращения: