Прошлый топик мы завершили на том, что попытки поручить построение торговой системы (ТС) машинному обучению (МО) бесполезны, т.к. на рынке отсутствуют явные зависимости, а те которые есть подавляются псевдозависимостями присущими конкретному интервалу истории котировок.
Но, все-таки не верится. Мы ведь находим в инете и даже в комплекте с пакетами МО такие экземплы применения МО, что при запуске их на своем компе, мы порой находимся в изумлении — неужели такое вообще возможно сделать за каких-то 5 минут. Ну, если это можно, то брехня это, что нельзя поручить МО самой сделать ТС.
Ну, скажем задача разделения множеств различными методами МО:
картинка с сайта -
https://scikit-learn.org ©
Не самая крутая задача, но хрен вручную такой алгоритм за 5 минут построишь.)
Чего рассуждать, давайте вживую попробуем поручить МО сделать нам ТС. При торговле на рынке все упирается в прогнозировании цены, вот и поручим нейросети (НС) прогнозировать цену хотя бы на 5 минут вперед. Пусть даже не очень точно. Будем это делать НС из пакета scikit-learn.
Вот что получилось:
По Х — прогнозируемое значение разности будущего C(T+5) и текущего значений C(T) цены через 5 минут,
по У — реальное значение через Т+5 минут.
Думаю, без комментариев. Ничего у нас из этого не получилось, что, собственно, и ожидалось. ТС не получилась.
А вот другой график прогнозирования цены на те же 5 минут, полученный ~1,5 года назад:
По Х — прогнозируемое значение разности будущего C(T+5) и текущего значений C(T) цены через 5 минут,
по У — реальное значение Т+5 минут.
Здесь по Х и У нормированные значения C(T+5).
Подобные графики были получены в разное время несколькими людьми несколькими разными методами МО на моих обучающих датасетах.
Нормально, так, прогнозирует.
Сейчас энтузиасты меня попросят «стейт» показать, или чего вы там обычно просите. ) Во первых, я этими вашими глупостями не занимаюсь. Во вторых, это пока в реале нигде не используется. Полтора года назад это было неактуально. Актуально ли это сейчас — это тоже еще надо посмотреть.
Теперь о том, как это получено.
С помощью индикаторов выделяются участки ценового ряда, где прогнозирование реально (не зря же мы мучили метод Монте_Карло и всяческие распределения). На этом датасете обучается НС. Далее на тесте, аналогично, НС прогнозирует только на участках временного ряда (ВР) выделенных для этих целей индикаторами. На остальных участках ВР нейросеть не задействована.
Т.е., там, где есть чему учиться, МО прекрасно обучается и в дальнейшем работает.
Ну, вот, с машинным обучением пока покончено, пора и код писать.
Только чего потом с этим «граалем» делать? )))
ЗЫ Думаю, они и сами не в курсе, когда конкретно зона прогнозирования начнется, и, если началась, когда закончится.
Интересно, а если не индикатором
а сверточной НС фильтровать и разворачивать в классификатор состояния рынка. Впрочем это и деревом решений можно делать.
Если условный «ТИ» условно 0, на выход при обучении НС тоже 0 подается, чтобы не предсказывала? Или просто поток данных на НС не подается?
Индикаторы там вряд ли можно заменить МО.
Участок out-of-sample?