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

 
Dr. Trader:

Краткое содержание предыдущих сотни страниц :)

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

Значит если взять для предикторов например ма, рси, и стохастик, и обучить нейронку используя развороты зигзага как цель обучения - то мы говорим нейронке "вот этих три предиктора могут предсказать развороты. найди и запомни значения предикторов при которых будет разворот". И нейронка сама по себе не будет разбираться действительно ли эти предикторы подходят. Она запомнит эти данные с допустимой точностью, и при торговле мы будем надеяться что такие-же комбинации ма, рси, стохастика сохранятся перед разворотом. А они не сохранятся, и будет слив. 

Модель обученная на бесполезных предикторах будет сливать хоть она gbm, хоть нейронка, хоть регрессия. Можно даже нагенерировать случайных рядов, и использовать их как предикторы, нейронка и среди них найдёт повторяющиеся комбинации и запомнит.
Подобрать предикторы и цель обучения это задача человека дата-майнера, используя другие инструменты. А обучение модели (нейронки) это уже малюсенький предпоследний шаг.

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


По-моему нейронка совершенно не подходит для работы с ценой для прогноза не стационарных временных рядов. Поведение цены постоянно меняется, найденные паттерны перестают работать уже через часы, всё хаотично. А потом кто-то берёт нейронку, даёт ей цены за пару месяцев и требует найти зависимости повторяющиеся в течении всего этого времени. Но ведь повторяющихся зависимостей там как раз нету, и то что найдёт и запомнит нейронка будет просто случайными совпадениями на 100%.

Если и брать нейронку, то давать ей можно только уже каким-то образом обработанные цены (а не чистые ohlc), например индикаторы.


Зачем так узко мыслить, здесь все так пишут, как будто слаще морковки ничего не видели )) В топку предикторы, обучайте нейронку находить эти самые предикторы, обучайте нейронку обучать нейронку, эксперементируйте :)  Естественно это очень тупо брать просто индикаторы, подавать их на вход а на выход подавать зигзаг, не знаю почему все это обсуждают :) И естественно это не ИИ а просто классификация, для этого нейронка вообще не нужна! Можно обойтись байесовским классификатором
 
Maxim Dmitrievsky:

Зачем так узко мыслить, здесь все так пишут, как будто слаще морковки ничего не видели )) В топку предикторы, обучайте нейронку находить эти самые предикторы, обучайте нейронку обучать нейронку, эксперементируйте :) 
Ну мне тоже представляется, что нейронка должна выставить бесполезным предикторам коэффициент в 0 - и они на выход влиять не будут! Разница только в скорости вычислений будет между всеми предикторами и с половиной важнейших из них. Но это тоже важно.
 
elibrarius:
Ну мне тоже представляется, что нейронка должна выставить бесполезным предикторам коэффициент в 0 - и они на выход влиять не будут! Разница только в скорости вычислений будет между всеми предикторами и с половиной важнейших из них.

Так нейронки и создавались под ресурсоемкие задачи, единственная проблема что в мт5 сейчас все скудно с этим. Можно очень сложные оригинальные и неочевидные модели создать, только тогда будет раскрыт потенциал применения НС, но уж точно не в тех приемах, которые здесь обсуждаются, это как бы азы для новичков :) Не хватает мощностей - есть сервера для обучения НС... все что обучается за 5-30 минут на обычном ПК, это, по моему мнению, вообще не нейронка и примитив :)
 
Maxim Dmitrievsky:

Так нейронки и создавались под ресурсоемкие задачи, единственная проблема что в мт5 сейчас все скудно с этим. Можно очень сложные оригинальные и неочевидные модели создать, только тогда будет раскрыт потенциал применения НС, но уж точно не в тех приемах, которые здесь обсуждаются, это как бы азы для новичков :)

Ну почему же? Я планирую нейронки на чистом MQL в оптимизацию поставить (для подбора параметров индиаторов) и в сеть или в облако запустить. 20000 агентов могут считать- ни с каким R по скорости не сравнится. Хотя у R вроде тоже есть расперделение задач в облако Azure

 
elibrarius:

Ну почему же? Я планирую нейронки на чистом MQL в оптимизацию поставить (для подбора параметров индиаторов) и в сеть или в облако запустить. 20000 агентов могут считать- ни с каким R по скорости не сравнится


Ну так тоже норм, я имел в виду что нейронок в мт5 мало, только одна :)
 
Maxim Dmitrievsky:

Ну так тоже норм, я имел в виду что нейронок в мт5 мало, только одна :)
Ну самое главное все же качественных входных данных, если они есть то и 1 нейрон решит задачу
 
elibrarius:
Ну самое главное все же качественных входных данных, если они есть то и 1 нейрон решит задачу

нет, не решит. При увеличении выборки ваш нейон сожмется от напряга и лопнет :) Он не сможет аппроксимировать такую выборку и будет выдавать постоянно 0.5 на выходе
 
Maxim Dmitrievsky:

нет, не решит. При увеличении выборки ваш нейон сожмется от напряга и лопнет :) Он не сможет аппроксимировать такую выборку и будет выдавать постоянно 0.5 на выходе

0,5 будет если у всех входов множитель будет = 1. А если сеть обучится и незначимым входам установит множитель в 0, а самым важным в 1, то все будет ок. На выходе конечно не 1 будет, а например реагировать если выход >0.8

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

0,5 будет если у всех входов множитель будет = 1. А если сеть обучится и незначимым входам установит множитель в 0, а самым важным в 1, то все будет ок. На выходе конечно не 1 будет, а например реагировать если выход >0.8

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

они не то что не коррелированы, они при увеличении выборки будут вообще противоречить сами себе, да, в итоге на выходе либо конфуз - всегда 0 или 1, или 0.5.. тем более у 1 нейрона. То есть если >0.5 продать а <0.5 купить. Вы загружаете в нее правильные (по вашему мнению) предикторы и правильные ответы, что вот если рси мол перепродан и на следующих n-барах рынок рос, то подаем на выход 0, если рси перекуплен и рынок падал то подаем. Но будет куча случаев когда это будет наоборот, и она затупит, смешает сигналы и войдет в транс. В итоге на выходе будет все время около 0.5 с очень маленькими отклонениями в ту или иную сторону... и так будет со всеми осцилляторами, потому что они вообще не предикторы нифига, а производные от цены :)
 
Dr. Trader:

Значит если взять для предикторов например ма, рси, и стохастик, и обучить нейронку используя развороты зигзага как цель обучения - то мы говорим нейронке "вот этих три предиктора могут предсказать развороты. найди и запомни значения предикторов при которых будет разворот". И нейронка сама по себе не будет разбираться действительно ли эти предикторы подходят. Она запомнит эти данные с допустимой точностью, и при торговле мы будем надеяться что такие-же комбинации ма, рси, стохастика сохранятся перед разворотом. А они не сохранятся, и будет слив. 

ИМХО вернее мыслить классификацию и регрессию как разные виды усреднения точек в N-d, в окрестности некоторого ядра, как это происходит например в kNN который говорят, является “идеальным” аппроксиматором, только медленный, не практичный. При классификации усредняется только ответы, при регрессии фичи и ответы. Очевидно, что если при таком усреднении смешиваются противоречивые точки то результат будет шумовой, не выраженный.

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