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

 
Valeriy Yastremskiy:

Тестить лучше без эмоций))) Торговать тем более)))))))

Есс чесно то тема предикторов не раскрыта. Так же как и логики моделей, какие когда надо применять, и что является критерием их выбора.

Рекомендации как подготовить данные к результату не имеют отношения. Хотя без этого не начать)))))

Логика моделей, критерий отбора и подготовка данных это ключевые вопросы, работающее решение никто не даст. Если это выкладвыется значит не работает.

Не важно хорошо это по человечески или нет, надо просто признать, что таковы правила в теме в которой мы сидим.

 
Valeriy Yastremskiy:

Тестить лучше без эмоций))) Торговать тем более)))))))

Есс чесно то тема предикторов не раскрыта. Так же как и логики моделей, какие когда надо применять, и что является критерием их выбора.

Рекомендации как подготовить данные к результату не имеют отношения. Хотя без этого не начать)))))

Не раскрыта это не к здесь, это к сегодняшнему состоянию к сожалению. Работ и выводов нет, как определить, какая модель лучше для определенного ряда, кроме как сравнить результаты)

 
Evgeny Dyuka:

Логика моделей, критерий отбора и подготовка данных это ключевые вопросы, работающее решение никто не даст. Если это выкладвыется значит не работает.


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

Лучше обсуждать логики, модели и предикторы с фичами и логику их применения.

А работает, нет эт без разницы. Доказано что нет 100%. А даже одного хватит что б слить)))) Главное руки!!!!! Ну или хвост)))))

 
mytarmailS:

пожалуйста...

200 или 300 в абсолютных значениях.

ЗЗ по балансу?  скажите какие диапазоны вас интересуют


Или может немножко изучите R ?     ;)


5 строчек кода , и вы получили что хотели

Я думаю, что нужно смотреть на баланс ошибок(+1 верный вход и -1 ошибочный), или как минимум нормировать баланс с целью снижения выбросов.

R изучить для меня очень сложная задача, уж совсем он на MQL не похож, а я далеко не программист. Да и хэлпа нет нормального, как у MQL.


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

 
Aleksey Vyazmikin:

Я думаю, что нужно смотреть на баланс ошибок(+1 верный вход и -1 ошибочный), или как минимум нормировать баланс с целью снижения выбросов.

R изучить для меня очень сложная задача, уж совсем он на MQL не похож, а я далеко не программист. Да и хэлпа нет нормального, как у MQL.


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

Да я тоже ни разу не программист, более того скажу что начинал я  с изучения  C# , ничего не понял и забросил, потом как то попробовал R , и все пошло :)


Дискретизация точно не даст никакого прироста в качестве, более того скорей будет снижение, главное чтобы не сильно..

Мне дискретизация нужна чтобы перевести числовые переменные с диапазоном в тысячи делений в категориальные переменные , в которых скажем будет всего 20 уровней.

Это нужно для того чтобы генерировать правила которые будут повторяться ....   

Для чего мне все это нужно?  Леса работают по принципу голосования , на выходе вероятность - сумма голосований деревьев, часто бывает так что алгоритм показывает большую вероятность но предсказание плохое, а бывает  что вероятность большая и предсказание хорошее, так вот мне видеться что если я конкретно буду знать какие именно правила участвую в голосовании в конкретный момент то смогу вычленить как бы честные правила и шумовые...

 
mytarmailS:

Да я тоже ни разу не программист, более того скажу что начинал я  с изучения  C# , ничего не понял и забросил, потом как то попробовал R , и все пошло :)


Дискретизация точно не даст никакого прироста в качестве, более того скорей будет снижение, главное чтобы не сильно..

Мне дискретизация нужна чтобы перевести числовые переменные с диапазоном в тысячи делений в категориальные переменные , в которых скажем будет всего 20 уровней.

Это нужно для того чтобы генерировать правила которые будут повторяться ....   

Для чего мне все это нужно?  Леса работают по принципу голосования , на выходе вероятность - сумма голосований деревьев, часто бывает так что алгоритм показывает большую вероятность но предсказание плохое, а бывает  что вероятность большая и предсказание хорошее, так вот мне видеться что если я конкретно буду знать какие именно правила участвую в голосовании в конкретный момент то смогу вычленить как бы честные правила и шумовые...

В моем случае дискретизация улучшает результат, и да, мои предикторы ближе по смыслу к категориальным, почти все, со значениями от 2 до 20.

На самом деле для оценки подобной модели нужно проверить на похожесть точек активации листьев, участвующих в голосовании, и убрать/объединить/уменьшить вес листья, постоянно активирующихся в похожих точках выборки. Такие шумные деревья хорошо подгоняться под историю будут, из-за избытка памяти.

В идеале каждый лист должен содержать смысл, а соседний добавлять его, но при этом описывая нечто своё, к примеру один определил что перед нами шар, другой определил его цвет - так классифицировали мяч принадлежащий к конкретному виду игры. Упрощенно.

Разложите лес на листья с индексами деревьев и посмотрите активацию каждого листа на выборке, потом откиньте мусор.
 
mytarmailS:

Владимир, а подскажите пожалуйста как в Р можно обучить АМО например не классификации или регрессии , а  чему то более расплывчатому ..

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

Как это вообще делается ?  Или это чисто задача оптимизации и АМО тут не причем ?


1.Любая модель требует оптимизации гиперпараметров. С  установленными по умолчанию результат не будет лучшим. При оптимизации установите критерий, который важен для Вас. Во всех примерах в литературе такими критериями выступают статистические метрики (Acc, F1 и т.п.). В нашем случае эти критерии не всегда приводят к ожидаемому результату в торговле (как ни странно). Я например использую как критерий оптимизации и показатель качества работы модели  среднее вознаграждение на один бар за определенный промежуток времени (как правило 1 неделя). Если он не меньше минимального значения (например 5 пунктов 4 знака), то продолжаем работать. Если упал, то доучиваем модель на свежих данных. Оптимизация только Байесовская, дает варианты. 

Модель в процессе работы должна постоянно доучиваться, учитывая изменяющиеся условия на рынке. Большая иллюзия, что можно обучить модель на огромном промежутке прошлых данных и потом долго ее использовать без переобучения.

2. Синтезировать некую функцию, не знаю какую - это из области сделай то не знаю что. Есть несколько пакетов которые реализуют генетическое программирование. Под рукой сейчас нет точного названия. Но это очень сложный раздел. Пробуйте

3. Дискретизация. Основная цель дискретизации сделать отношение предиктора и целевой как можно более линейным. При этом конечно есть потеря информации. Но в некоторых случаях дает неплохие результаты

Удачи

Генетическое программирование - Genetic programming - qwe.wiki
Генетическое программирование - Genetic programming - qwe.wiki
  • ru.qwe.wiki
В области искусственного интеллекта , генетическое программирование ( ГП ) представляет собой метод , посредством которого компьютерные программы кодируются в виде набора генов, которые затем модифицированных (эволюционировали) с использованием эволюционного алгоритма (часто генетический алгоритм , «GA») - это применение ( например...
 
Дискретизация это глупость, можно использовать регуляризацию. Дообучение модели по ходу торговли тоже ерунда, не будет работать 
 
Maxim Dmitrievsky:
Дискретизация это глупость, можно использовать регуляризацию. Дообучение модели по ходу торговли тоже ерунда, не будет работать 

Радикально как то уж)))

 
Valeriy Yastremskiy:

Радикально как то уж)))

Через такие способы закономерности не найти, это просто зафит. Как забить ватой щель поплотнее 
Причина обращения: