Марат
Марат личный блог
04 ноября 2019, 12:10

Как я использовал модные методы прогнозирования на фондовом рынке.

Лет 20 назад была модной темой нейросети, и в частности в приложении к прогнозированию на фондовом рынке.  Вообще, нейросети были придуманы в далеких 60 прошлого века, но как это часто бывает от теории до реализации прошли многие году. Если нейросети в других сферах нашли свое место, то о применении нейросетей для успешного трейдинга я честно говоря не слышал. Этому может быть два обьяснения-для фондовых рынков неросети неприменимы (вообще или пока), либо кто сумел их правильно применить, по понятной причине не стал писать об этом кандидатские, а ничтоже сумняшеся стал рубить бабло.

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

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

Ну например, вполне умный парень, говорящий на нескольких языках и переехавший в Италию загоняет в нейросетку значение цен Apple за предыдущие 30 дней и пытается на выходе получить цену компании на завтра.

Идиотизм!? Идиотизм!

Вообще в большинстве случаев такой подход заканчивается прогнозом равным последнему значению цены. То есть сетка просто берет последнюю цену и выставляет ее в качестве прогноза. А чего удивляться? Как говорят в отрасли: garbidg in-garbidg out.

Нейросети и прочие методы MachineLearning весьма сильны и даже в случайном ряду найдут то чего там и нет, то есть аппроксимируют если надо случайное блуждание, только конечно никакого прогнозного гешефта они не принесут, так как тупо запомнят ряд, а не вычленят некоторые закономерности что мы в общем то и пытаемся найти для профитной торговли. Вокруг борьбы с overfit во многом и строится работа при обучении моделек.

Я написал о нейросетях, но применять буду не их, а нечто совсем другое.

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

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

Впрочем я буду использовать даже не GradientBoosting, а RandomForest, сразу по нескольким причинам.

Впрочем первым вопросом которым следует задаться, а стоят ли вообще все этим модели чего то для нашей отрасли?

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

А вот дальше интересно, так как непосредственно касается вопроса почему методы MachineLearning ничего не показывают на фондовом рынке.

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

Так чем кредитный скоринг отличается от ситуевин встречающихся на фондовом рынке? И тут я опять высказываю свое очень скромное мнение: рынок в значительной своей части случайно блуждает. Я сейчас не говорю о трендах или боковике, я говорю о принципиальной невозможности делать глубоко идущие выводы о происходящем на фондовом рынке. А в случаи с кредитным скорингом все понятно-если челу за 40 и у него недвижимость то не важно вчера это или сегодня или позавчера-ему кредит выдать можно.

А сейчас об этом же поподробней с иллюстрацией как вообще работают методы MachineLearning.

Какие вообще есть подходы к тому чтобы сделать прогноз? Вот есть аналитический подход, это когда сидит умный дядька с немернным опытом у которого в какой то момент времени открывается третий глаз и он начинает понимать как все это происходит, и вот на основе понимания внтутренних процессов, природы явления он начинает делать дельные прогнозы.

В случаи с MashineLearning все по другому, в частности оговорим о разновидности ML: обучения с учителем для задачи классификации. Тут мы вываливаем кучу фичей (обьем, цена вчера, RSI итд итп что так сказать нравится) в какой момент времени, соотнося их с определенным состоянием (классом) рынка (боковик, растём, падаем). Этих моментов времени, то бишь примеров, нужно из разряда чем больше тем лучше. Далее запускаем обучение и наша нейросетка или RF подгоняет фичи под конкретное состояние, попросту аппроксимирует: «крупицу фичи 1, плюс половинку фичи 2, минус фичи 3 в квадрату...» итп итд и вуаля похлебка готова, мы получаем конкретное состояние рынка-ну например рост рынка.

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

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

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

To be continued…

8 Комментариев
  • CloseToAlgoTrading
    04 ноября 2019, 12:42
    Суждения здравые… хотя абзац где вы пишите про машиное обучение и вписываете туда нейросеть и обучение с подкреплением немного смущает.. 
    в RL логика чуть сложнее… там может что то и получиться, мне кажется :)
  • SergeyJu
    04 ноября 2019, 12:57
    В RF встроен некоторый механизм контроля переподгонки. С другой стороны, очень трудно сгенерировать ряд действительно подобный ценовому. Поэтому, имхо, идея использовать RF для проверки качества фичей и для проверки возможности применения ML на рынке здравая. А генерация — нет. 
    Теперь о том, что именно надо подгонять. Имхо, не завтрашнюю цену, это однозначно. По хорошему — финансовый результат с учетом риска, хотя бы тот самый пресловутый Шарп. 
    И не забывайте извещать о продвижениях. 
  • А. Г.
    04 ноября 2019, 13:36
    Может это Вас убережет от повторения тупикового пути. В 1997-1998 я с помощью перцептрона пытался прогнозировать завтрашнее %приращение цены дневки РАО ЕЭС по аналогичным приращениям в прошлом самой РАО, Газпрома, Лукойла и SPY. Когда задал оптимизацию по условию: СКО ошибки на оптимизирующей выборке статистически неотличимо от неё же на  тестирующей. Получилось, что СКО ошибки лучшей такой  нейросети ничем не отличается от СКО линейной регрессии. 
  • Sergey Ko
    04 ноября 2019, 14:28
    чтобы правильно настроить нейросеть, нужно самому понимать, как идет классификация. другими словами, чтобы нейросеть работала, вы должны научить ее делать то, что делаете сами. умеете распознавать цифры — можете научить нейросеть распознавать цифры. не умеете торговать — ничего вам нейросеть не даст.
  • Astrolog
    04 ноября 2019, 14:50
    Извините, что влезаю в ваши научные рассуждения, но со своей стороны в хочу отметить, что программа astro IT создана, и постоянно развивается, совершенствуется. Об этом на моем сайте astro777.com
  • Алексей
    04 ноября 2019, 17:51
    интересный подход. обычно для данные для обучения подготавливают, грубо говоря фильтруют.
  • Niktesla (бывш. Бабёр-Енот)
    15 ноября 2019, 09:22
    Ну например, вполне умный парень, говорящий на нескольких языках и переехавший в Италию загоняет в нейросетку значение цен Apple за предыдущие 30 дней и пытается на выходе получить цену компании на завтра.
    Примерно такую же фигню наблюдал, давно еще… знакомый, умнейший человек, мне между делом упомянул что может предсказать завтрашнюю цену с 99%-ой точностью… и в принципе ведь не обманул)))
  • Replikant_mih
    24 сентября 2020, 15:45
    Интересные хорошие и нетривиальные мысли, много вижу пересечений со своими, пост старый, щас остальные в порядке времени публикации почитаю, посмотрю куда завела эволюция в направлении ML)

Активные форумы
Что сейчас обсуждают

Старый дизайн
Старый
дизайн