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

 

Вся проблема теоретиков - это рисование не существующих в реальности теорий. Но реальность иногда похожа на какую-то теорию. Остаётся лишь определить на сколько Похожа? Чем собственно и занимаются проверяльщики той или иной теории.  Честно говоря трейдер похож на тестировщика. Он тестирует стратегию или теорию на депозите со своим брокером (самый безстрашный просто делает без использования теорий :)) ... Ну а трусливый (как например я) ... так и проверяет всё до бесконечности :)  Скажем это ...погружение в теорию трейдинга!  А как же всё на самом деле происходит?   ... Мы не можем знать наверняка.  Мы лишь можем знать то, что может Повлиять.  Думаю нужно понять именно что влияет? Например на рост криптовалюты?  На понижение барреля нефти.  На резкие колебания йены и т.д. и т.п.  Откуда эту инфу брать? Честно говоря ...не знаю. Смотрю на опыт предыдущих ... у них ресурс с которого они брали данные просто исчезал и ... весь функционал просто пропадал.   Поэтому фундаментальный анализ для быстрых и безстрашных трейдеров.  Ладно ...перейду к реальности ... всё что мы можем ... это уловить тенденцию и повторения этой тенденции в истории. Мы просто можем тупо ...

1. уловить одно и тоже в определенное время (тренд вниз, тренд вверх, колебание, остановка, пробитие)

2. попробовать некие параметры, которые способствуют тенденции ( линии сопротивления, поддержки)

3. реакции цены на значимые или известные события. 

Всё.  не знаю что ещё может служить нам Сигналом?  Мы можем использовать параметры рисования цены на графике ...это похоже на пляски с бубном трейдера-шамана! :)  Люди вообщето в восторге.  Ну а шаман то знает что к чему :)   Конечно было бы хорошо знать информацию из достоверного источника, но зачастую в последнее время достоверность всё ниже и ниже.  Поэтому просто тупо ...копируем то , что было :)   Как же это сделать?  ... Ну ... немного определить некие параметры копирования  Что бы это могло бы быть?  Да? Что же Это? 

 
Yuriy Asaulenko:

Не понял о чем это?

На инструменте все со всем коррелирует. И это неизбежно, т.к. все получено преобразованиями из одного и того-же временного ряда, из одних и тех-же данных.

Кстати, через PCA можно попытаться избавиться от мультиколлинеарности и уменьшить размерность входов, или сингулярное разложение

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

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

 
Maxim Dmitrievsky:

Кстати, через PCA можно попытаться избавиться от мультиколлинеарности и уменьшить размерность входов, или сингулярное разложение

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

Получил на модели с неделю назад вот такой результат.

х - номер сделки, у- суммарный профит в п. Торговля постоянным лотом.

Надо сказать, прибалдел. И вот уже с неделю клепаю реал-систему.

 
Yuriy Asaulenko:

Получил на модели с неделю назад вот такой результат.

х - номер сделки, у- суммарный профит в п. Торговля постоянным лотом.

Надо сказать, прибалдел. И вот уже с неделю клепаю реал-систему.

Круто, чо, с реал спредами и комиссами бы еще посмотреть результат.. + слиппаджи если сделки короткие

и форвард :)

 
Maxim Dmitrievsky:
Круто, чо, с реал спредами и комиссами бы еще посмотреть результат.. + слиппаджи если сделки короткие

Вроде в модели все это учтено. Считается, что на каждой сделке, удачной и нет, теряется 30 п. (это фьючерсы) - это до фига для них. Тест на данных не использовавшихся при отладке Отладка на фьюче -6.17 - Тест на более позднем фьючерсе - 9.17. По возможности все учитывается.)

Однако нюансы, разумеются, по любому будут. Полагаю, как обычно,) реал будет несколько хуже.

Сейчас уже дошел до момента открытия сделки. Отрабатываю - около десятка входов в сделку просмотрел он-лайн. Вроде входит правильно.

 

На ALGLIB c SOFTMAX версией НС что-то не то. Все ответы перекосло на первый выход (у меня это BUY).
На тех же данных НС - регрессия с 3-мя выходами (с линейной активацией) дает более достоверные результаты:

 Buy              Sell               NA
 0.10302356, 0.01091621, 0.88606040
 0.09705416, 0.01083526, 0.89211080
 0.08283979, 0.12548789, 0.79167247
 1.02522414,-0.00119697,-0.02403573
 0.09498582, 0.01529507, 0.88971917
 1.01878489,-0.00111341,-0.01767998
 0.07906346, 0.05960769, 0.86132762
 0.00201949, 0.00497863, 0.99300189

через >0.5 будет давать правдоподобные ответы.

Леса, кстати тоже перекосило на 1-й выход.

 

У вас на выходных нейронах какая активация? Вижу отрицательные значения. Их быть не должно. В выходных нейронах надо использовать активацию софтмакс. Ее значения лежат в диапазоне 0-1. 

 
Grigoriy Chaunin:

У вас на выходных нейронах какая активация? Вижу отрицательные значения. Их быть не должно. В выходных нейронах надо использовать активацию софтмакс. Ее значения лежат в диапазоне 0-1. 

Пример выше из регрессии с линейными выходами (как работающий вариант). При обучении подаю от 0 до 1.

На софтмаксе было либо четко 1, либо несколько сотых меньше; но все на 1-м выходе, остальные 2 выхода всегда = 0. Т.е. с софтмаксом в ALGLIBе что-то не то...

 

Почитайте про функции активации нейронов. Можно подавать на выход какие угодно значения, но неправильная функция активации будет выдавать отрицательные значения. Обычно это гиперболический тангенс. Функция потерь софтмакс будет работать с ним не правильно. Хотя многое зависит от библиотеки и реализации функции потерь. Например в Tensorflow на выходных нейронах для функции потерь софтмакс не должно быть никакой функции активации. А для правильного использования обученой сети надо добавлять активацию софтмакс. С ALGLIB не работал, возможно они что-то не правильно сделали. В любом случае обученная сеть с софтмакс не должна выдавать отрицательные значения.

 

Подобное бывает если в обучающих примерах один их классов очень сильно преобладает в количестве по сравнению с другими классами. Например 2000 обучающих примеров для buy и всего 1000 для sell. Нейронка может всегда выдавать "Buy" и будет при этом права в 66% случаев. Лучше количество обучающих примеров каждого класса сделать равным.

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