Лет 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…
в RL логика чуть сложнее… там может что то и получиться, мне кажется :)
Теперь о том, что именно надо подгонять. Имхо, не завтрашнюю цену, это однозначно. По хорошему — финансовый результат с учетом риска, хотя бы тот самый пресловутый Шарп.
И не забывайте извещать о продвижениях.