Финам

      3 сент. 2023

      Как заработать на бирже, или прогноз цен акций с помощью ИИ

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

      Уже улыбнулись? Готовьтесь, будет много букв, так как хочется подробно раскрыть основную идею. Если тема вас заинтересует, следующие публикации сделаем более компактными. Мы будем докладывать, что попробовали и что в итоге вышло.

      Спойлер для тех, кто не хочет читать дальше: легкого пути заработать на бирже нет.  Глядя на заголовок статьи, вы, наверное, подумали: «Еще одни прогнозисты». Да, отчасти это так. Цены на биржах пытаются прогнозировать чуть ли не все, причем уже много десятков лет. И вы, видимо, тоже, раз продолжаете читать. Да, пока так и не нашли волшебный Грааль, который мгновенно озолотит. И через нас проходило несколько компаний со стартапами, прогнозирующих с помощью ИИ не то что направление — вверх или вниз, а показывающих, каким будет график с разбивкой на каждый день в течение следующего года. И все это только на основе анализа одного показателя — цены. 

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

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

      Современные ИИ обучались на миллиардах изображений и рисуют отличные картины; они прочитали все книги на планете и могут ответить на любой вопрос, поддержать беседу (местами выдают смешные опции). Скоро, наверное, ИИ начнут снимать сериалы и фильмы. Так почему же нельзя сделать машинку по зарабатыванию денег?

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

      Не секрет, что одни инвесторы заключают сделки по графику (тренду) и сигналам технического анализа, другие — ориентируются только на финансовые показатели эмитентов или собственную интуицию и чуйку. Смотрят скринеры, делают выборки в эксельке по различным параметрам, которые, по их мнению, наиболее важны. Также можно торговать по новостям и слухам, а можно довериться мнению профессиональных аналитиков или блогеров, сделавших свои миллионы на крипте. Можно обладать инсайдом или торговать с толпой. Можно «стричь» пипсы (п. п.) и ловить малейшие движения и т. д. У каждого инвестора свой подход, своя стратегия. 

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

      Почему бы эту задачку не поручить ИИ? Мы решили попробовать. Конечно, на вход подавали не всё подряд, а только те данные, которые, по нашему мнению, могут оказывать влияние на прогноз. А потом с десяток раз их меняли или считали производные от этих данных. 

      Ведь что такое ИИ простыми словами? Это когда на вход подаются наборы исходных данных, на выходе мы ожидаем получить прогноз, а внутри — черный ящик, в котором происходит вся магия. На самом деле никакой магии — чистая статистика и числовые методы. Исключительно корреляции, регрессии, поиск оптимального метода и т. п.

      Итак, для простоты и отладки моделей мы выбрали акции из индекса S&P 500: по ним есть глубокая история финансовых показателей и рыночных данных, данные консистентны и бумаги ликвидны. Мы взяли пока один период прогноза — год вперед, историю данных глубиной 10 лет (5 лет для обучения модели, 5 лет тестирование).

      Что мы даем на входе?

      В качестве исходных данных для обучения и тестирования моделей мы выбрали следующие:

      • Поквартальные финансовые показатели компании: чистая и валовая прибыль, ликвидность, задолженность, EBITDA, рентабельность, активы и т.п.
      • Фундаментальные мультипликаторы (коэффициенты, которые позволяют сравнивать компании между собой в отрыве от размера компании, обычно это отношения показателей): P/E, P/B, D/E, P/S, ROA, ROE и т. п. (Не буду расшифровывать каждый показатель, Google знает все.)
      • Ежедневные рыночные данные, а именно цена, исходя из которой вычисляем производные: доходность, максимальная просадка, альфа, бета и т. п.
      • Индикаторы технического анализа, построенные на ценах: скользящие средние, осцилляторы, моменты и т. п.
      • Показатели риска: коэффициенты Шарпа, Сортино, интегральный риск, волатильность и т. п.
      • Макроэкономические данные по США: инфляция, ставки по ипотеке, безработица, ставки по гособлигациям и т. п.

      Что мы хотим получить на выходе? Иными словами, что мы прогнозируем?

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

      В качестве показателей прогнозирования мы выбрали следующие: доходность (цену), коэффициент альфа (показывает, на сколько акция будет опережать фондовый индекс), долг компании (по факту — прогноз мультипликатора D/E), дивидендную доходность, выручку и чистую прибыль. 

      "Черный ящик"

      Мы обучили и протестировали 5 алгоритмов машинного обучения: линейную регрессию, градиентный бустинг, ЭСС, адаптивную авторегрессионную модель и логистическую регрессию. При этом использовались разные наборы данных и прогнозирование разных параметров. Как итог, обучено около 30 моделей. 

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

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

      Что в итоге получилось?

      Мы собрали небольшой интернет-ресурс — «Финам AI-скринер». На нем представлено 6 моделей машинного обучения, нацеленных на прогноз разных показателей. В выборках вы найдете 50 лучших акций из индекса S&P в выбранной модели. 

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

      Возможно, вы скажете, что нет поиска, нет сортировок, нужно смотреть в динамике и пр. Да, все это несложно добавить, но пока мы сфокусировались на базовом минимальном функционале и обкатываем саму идею. 

      Как правильно считывать и понимать данные?

      Прогноз доходности – это самый простой вид прогноза для понимания. Смотрите, какую цену прогнозирует ИИ. Для сравнения мы привели в смежных колонках прогноз аналитиков крупных банков, консенсус-прогноз аналитиков, прогноз, выполненный по техническому анализу и прочие данные. Мы пока не беремся судить и делать выводы, какой прогноз лучше. Или что прогнозы ИИ сбываются 5 из 10, а аналитиков - 8 из 10. Есть много подходов к проверке, и все они дают разные результаты. Тестирование модели на прошлых периодах показало неплохие результаты. 

      Кликая на строку акции, вы раскроете список влияющих факторов на прогноз ИИ. Там будут показано, какие исходные данные повлияли на прогноз и какова сила влияния. 

      С прогнозом, к примеру, по альфе, могут возникнуть сложности. Приведу пример, как его правильно трактовать. Прогноз ИИ альфы = 0.0003, это значит, что акция будет опережать фондовый индекс в среднем на 0,03% в день или 7,6% за год. Смотрим на колонку с текущим значением. Допустим, оно 0,0001, т.е. акция опережает сейчас индекс на 2,5% за год. Это значит, что наш ИИ прогнозирует, что эта акция на конец года в среднем увеличит доходность по отношению к индексу более чем в 3 раза.

      Интерфейс непрост, много цифр, мы планируем его улучшать и делать более понятным. 

      Зачем и для чего все это?

      Как вы уже знаете, Грааль не изобретен и это не инструмент, который сам по себе зарабатывает. Но мы надеемся сделать сервис, который поможет инвестору выбрать инструменты для инвестирования и сформировать портфель. Используя «Финам AI-скринер», инвесторы не упустят самое важное и получат качественные подборки активов для инвестиционного портфеля. 

      Что дальше?

      Вот список первой необходимости:

      • Создать модели для российского рынка, ведь «недружественный» сейчас доступен только квалифицированным инвесторам.
      • Сделать подробный профиль для каждой бумаги.
      • В ближайшее время предоставить инвесторам возможность самостоятельно настраивать показатели в колонках скринера для удобной работы с инструментом.
      • Добавить в расчетные модели консенсус-прогнозы аналитиков, публикации в СМИ с оценкой их влияния на изменение цены инструмента и другие альтернативные данные.
      • Раскрыть еще несколько моделей скринеров, расширить выборку от S&P 500 на все доступные инструменты и добавить фильтрацию инструментов по разным показателям. 

      Сейчас нам важно узнать ваше мнение. Насколько вы считаете наш подход перспективным и интересным? Ставьте лайки, комментируйте и кидайте тапками. Любая реакция нам на пользу!