Skip to content

Commit

Permalink
Add files via upload
Browse files Browse the repository at this point in the history
  • Loading branch information
neirosetochka authored May 28, 2024
1 parent 5ad2ead commit 4b3f7c1
Showing 1 changed file with 43 additions and 1 deletion.
44 changes: 43 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1 +1,43 @@
# инференс модели
# Прогнозирование цены закрытия индекса МосБиржи
Наша модель прогнозирует цену закрытия индекса МосБиржи на текущий день, основываясь на данных, известных при открытии биржи и статей с новостных источников. Это может быть полезно проп-трейдерам/equity-тредерам:
* Так как динамика индекса МосБиржи показывает динамику всего Российского фондового рынка, на основании поведения индекса можно сделать предположение о поведении акций - основных компонентов индекса (Лукойл/Газпром/Сбер и т. д.).
* Есть фонды, составы портфелей которых реплицируют индекс МосБиржи (практически 1:1). Соответственно, зная утром, где будет цена, вечером можно открыть короткие/длинные позиции для заработка на изменении значения индекса.

## Анализ временного ряда
Для бейзлайна и грамотного построения признакового пространства сначала анализировался сам временной ряд.
<p align="center">
<img src="https://github.com/neirosetochka/MOEX-news-prediction/assets/72963340/0ad145a6-3c18-4947-a88c-f1ed91dfdb63" width=70%>
</p>
Затем строилась модель Тейла-Вейджа, которая использовалась для сравнения качества прогнозирования.
<p float="left">
<img src="https://github.com/neirosetochka/MOEX-news-prediction/assets/72963340/6a0748ca-116e-4cc7-a6f4-cee44ccb2631" width=50% />
<img src="https://github.com/neirosetochka/MOEX-news-prediction/assets/72963340/046f38eb-1c25-424f-b43f-c33b6feabdcf" width=40% />
</p>

## Признаки
Наше признаковое пространство состоит из следующих компонент:
* данные предыдущего дня (close, divisor, capitalization);
* временные данные (день, месяц, день недели);
* новости (политика, финансы, экономика).

## Представление состояния на текущий день
Каждый день должен характеризоваться «состоянием мира» на данный момент: то есть, мы должны иметь вектор, агрегирующий информацию о новостях сегодняшего дня и всех предыдущих (он также должен легко обновляться при появлении новой статьи).
Поэтому мы:
1. Получили векторное представление всех статей с помощью BERT
2. С помощью PCA понизили размерность этих представлений.
3. Каждый день представили средним арифметическим получившихся на шаге 2 представлений.
4. Для каждого дня получили его представление с учетом предыдущей истории с помощью скользящего среднего: $h_t = \alpha * h_{t-1} + (1 - \alpha) * v_t$\
Здесь $v_t$ - представление текущего дня на шаге 3; $\alpha$ - гиперпараметр.

Признавое описание объектов затем подается CatBoostRegressor.
## Результаты
Модель хорошо уловила тенденцию цены индекса:
<p align="center">
<img src="https://github.com/neirosetochka/MOEX-news-prediction/assets/72963340/afeb6cf7-911c-4102-91c1-ab85c2a4c116" width=80%>
</p>

## Дизайн
Минималистичный интерфейс позволяет по введенным данным предсказать цену закрытия:
<p align="center">
<img src="https://github.com/neirosetochka/MOEX-news-prediction/assets/72963340/cb1ce6f3-eb74-4e98-b8d7-9a0f08dfb900" width=80%>
</p>

0 comments on commit 4b3f7c1

Please sign in to comment.