Формирование цены и её прогнозирование, одна из самых приоритетных и одновременно сложных задач в современном обществе. Самые популярные сферы для анализа и предсказания цен включают недвижимость, ценные бумаги, автомобили, непосредственно акции и криптовалюты. Изменения в сфере финансов происходят нелинейно, и иногда может показаться, что цены на акции формируются совершенно случайным образом. Однако развитие компьютерных и информационных наук доказывает: хаос можно структурировать.
Базовые подходы: Традиционные модели временных рядов
Исторически прогнозирование динамики цен на фондовом рынке опиралось на классические эконометрические методы. Традиционные методы анализа временных рядов, такие как модели ARIMA (авторегрессия интегрированного скользящего среднего) и GARCH (обобщенная авторегрессионная условная гетероскедастичность), доказали свою эффективность. Однако они работают корректно только тогда, когда ряд является стационарным — то есть его основные свойства со временем не изменяются. На реальном фондовом рынке это условие выполняется далеко не всегда.
Подготовка данных: Почему важны изменения, а не сами цены?
В научных исследованиях и практическом машинном обучении особое внимание уделяется предобработке входных данных. Как отмечается в работах на платформе КиберЛенинка, в качестве входных данных рассматриваются дневные значения цен закрытия на различных временных периодах. Но важный нюанс заключается в том, что в качестве входов и выходов нейронной сети выбираются не сами значения цен закрытия (обозначим их С), а изменения котировок на момент времени t. Действительно, именно изменения (доходности) являются значимыми для предсказаний, так как они обладают лучшими статистическими свойствами по сравнению с абсолютными значениями цен.
Стохастическое моделирование и индикаторы
Для симуляции рыночных процессов часто используется стохастическое моделирование. Простейшая модель может быть реализована на Python с помощью библиотек NumPy и Matplotlib. В качестве параметров выступают:
- S0 — начальная цена акции (например, 100);
- T — время в годах (1.0);
- mu — ожидаемая доходность (0.05);
- sigma — волатильность (0.2);
- dt — шаг времени (0.01).
Сгенерировав стандартное нормальное распределение и применив кумулятивную сумму, мы получаем винеровский процесс (W), на основе которого вычисляется стохастический процесс X и итоговая цена S = S0*exp(X). Такая визуализация позволяет понять вероятностные сценарии движения акции.
Для технического анализа активно применяются функции индикаторов. Одним из самых популярных является экспоненциальная скользящая средняя (EMA), которая придает больший вес последним данным:
EMA(t) = EMA(t-1) + alpha * (Price(t) ౼ EMA(t-1))
Где alpha = 2 / (N + 1). Таким образом, для периода N=9, alpha = 0.20. Использование различных индикаторов может приносить большую точность прогнозов анализируемых акций.
Машинное обучение и адаптивная фильтрация
В теории проблема предсказания цены акции может быть рассмотрена как оценка функции F во времени T на основе предыдущих значений F во время t-1, t-2 и т.д.. Для решения этой задачи применяются:
- Алгоритмы адаптивной фильтрации. Например, фильтрация с использованием RLS-алгоритма (рекурсивный метод наименьших квадратов) с 100 коэффициентами и коэффициентом забывания λ = 0,98. Это позволяет выделять предполагаемый тренд движения цен (например, акций PETR3) для определенного окна (16 дней).
- Ансамблевые модели. Отличные результаты демонстрирует XGBoost, который в связке со скрытыми марковскими моделями (HMM) позволяет строить вероятностные прогнозы цен (например, акций Booking).
- Линейные модели. Даже простая модель LinearRegression используется в скриптах для предсказания курса акции на текущий день (цена закрытия, максимум, минимум).
Глубокое обучение: Нейросети на страже прогнозов
Развитие фреймворков вроде TensorFlow открыло эру глубокого обучения (Deep Learning) для фондового рынка. Эксперты, такие как Себастьян Хайнц из STATWORX, публикуют руководства по созданию моделей глубокого обучения для биржи. Подобные технологии легли в основу таких сервисов, как StocksNeural — онлайн-сервиса, предсказывающего изменение цен на акции с использованием нейронных сетей. Также существуют решения вроде Stocker для Python, которые анализируют курс прошлых лет и выдают предсказание.
Анализ новостей и общественного мнения (Sentiment Analysis)
Цены акций реагируют не только на графики, но и на новости. Поэтому еще один распространенный метод прогнозирования, анализ общественного мнения (sentiment analysis). Существуют системы, куда на вход подаются мнения экспертов рынка (которые не обязательно оказываются верными), а затем алгоритм раз за разом генерирует предсказания возможного движения цены на основе этих прогнозов. Прогнозирование изменения цены акций с использованием новостного анализа на основе методов глубокого обучения стало темой множества выпускных квалификационных работ ведущих вузов, таких как НИУ ВШЭ.
Большие данные: Заглядываем за стакан
Современные системы предсказания курса акций с использованием больших данных выходят далеко за рамки обычных цен закрытия. В наборы признаков включаются:
- Bid-ask спред и средняя цена спреда;
- Ценовые диапазоны;
- Средняя цена и объем на различных ценовых уровнях (вычисляемые в наборах признаков v2, v3 и v5 соответственно).
Как правило, для корректной работы любой из перечисленных систем необходимо сначала собрать значительный объем торговых данных о предыдущих периодах, разработать модель прогнозирования и тщательно протестировать ее. Предсказание цены акции — это не магия и не «гадание на нейронах», а сложный математический и алгоритмический процесс, объединяющий стохастический анализ, технические индикаторы, фильтрацию, глубокое обучение и анализ новостей. И хотя ни одна модель не может дать 100% гарантии на фондовом рынке, грамотное использование этих инструментов значительно повышает вероятность принятия верного инвестиционного решения.