Эта статья предоставляет доступ ко всему, что касается моего проекта по анализу и прогнозированию цен на акции. Используйте этот файл readme, чтобы понять проект и полученные результаты. Если вы хотите сотрудничать в проекте, связанном с временными рядами, вы можете связаться со мной по адресу [email protected].

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

Ключевой вывод: при рассмотрении технических индикаторов в качестве характеристик прогнозирования индекс относительной силы (RSI) дает очень сильную поддержку прогнозов для лаговых цен.

Авторы)

Оглавление

Введение и бизнес-проблема

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

Деловые вопросы

  • Какой технический индикатор мы должны держать и следить за функцией?
  • Какой алгоритм следует учитывать при выполнении последующих прогнозов?
  • Можем ли мы создать универсальный многоразовый рабочий процесс, который можно использовать на любых акциях в любое время?
  • Как мы можем получить цену закрытия следующего дня?

Источник данных

Данные, используемые в этом проекте, были получены из Alpha_Vantage API для биржевых данных.

API предоставляет данные об акциях, криптовалютах и ​​технических индикаторах. Чтобы использовать API в своем проекте, вы можете использовать блок кода ниже. Также ознакомьтесь с документацией здесь

from alpha_vantage.timeseries import TimeSeries
ALPHA_VANTAGE_API_KEY = 'Obtain_API_Key'
ts = TimeSeries(key= ALPHA_VANTAGE_API_KEY, output_format='pandas')

Применяемые методы

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

Извлечение признаков (Просмотр)

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

Для этой цели используются следующие технические индикаторы:

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

Прогнозный анализ (Просмотр)

Для получения новых цен закрытия акций использовались алгоритмы прогнозирования. При выполнении извлечения запаздывающие эффекты и информация технических индикаторов используются в качестве входных переменных для прогнозирования требуемых цен закрытия. Используемые алгоритмы:

Краткий обзор основных результатов

Взгляд на извлеченные функции можно получить в этой электронной таблице

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

Особенности важности технических индикаторов

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

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

Структура модели LSTM

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

  • Исходя из этих особенностей, последней моделью, которую следует рассмотреть в первую очередь, является XGBoost
  • Замечено, что она работает лучше, чем все другие модели, по всем показателям, без учета модели линейной регрессии
  • Модель линейной регрессии показывает наложение данных, поэтому ее не следует рассматривать в этом случае.
  • Модель LSTM не показала хороших результатов с учетом этих особенностей и должна быть проверена. Для этого извлеченные функции плохо работают с алгоритмом временных рядов, таким как LSTM. Чтобы справиться с этим, было выполнено дополнительное извлечение функций для получения зарегистрированных данных о ценах закрытия за предыдущие 30 дней.

Работа по совершенствованию модели LSTM дала лучшие результаты, чем результаты, полученные при использовании исходных признаков.

Была получена новая модельная сеть LSTM.

Новый сделанный прогноз также представлен

Показатели эффективности

Алгоритмы регрессии способны принять тренд и приблизиться к фактической цене закрытия в правильном направлении с очень низкой средней абсолютной ошибкой (MAE). Метрики оценки приведены выше, чтобы увидеть, как каждый алгоритм работал на каждой акции. Они соответствовали извлечению признаков, выполненному для извлечения около 60 признаков, включая цены индексных фондов с запаздыванием, технические индикаторы, такие как экспоненциальное скользящее среднее, RSI, ADR, R Уиллама, полосы Боллинджера и многие другие.

LSTM не справились с этим, как и ожидалось, поскольку данные не используют длинную последовательность временных шагов. LSTM лучше работал с временными рядами после 30–60 дней ретроспективных данных для каждого прогноза. Улучшение наблюдается за счет резкого снижения МАЭ до 0,67 при коэффициенте детерминации 0,87.

Извлеченные уроки и рекомендации

  • В результате анализа было замечено, что набор значений выделяется как важная характеристика при прогнозировании цены закрытия. Значение, оказывающее наибольшее влияние на прогноз, представляет собой индекс относительной силы (RSI). Это, по-видимому, ожидаемо, учитывая волатильность рассматриваемых цен. Это не означает, что другие признаки не играют никакой роли в процессе прогнозирования, однако в случае дальнейшей работы с другим приложением, требующим уменьшения размерности, в равной степени представлены элементы, которые следует игнорировать.
  • Поведение обычных алгоритмов регрессии будет отличаться от поведения алгоритмов, специально подходящих для такого типа приложений, как прогнозирование временных рядов. Таким образом, необходимо настроить соответствующие функции, которые будут учитываться при прогнозировании при использовании набора алгоритмов.
  • Рекомендация заключалась бы в том, чтобы гарантировать, что данные, применяемые к конвейеру, соответствуют необходимому и соответствующему индексному фонду во время извлечения функций и прогнозирования, чтобы сохранить актуальность функций и предотвратить неэффективность.

Ограничения и возможности улучшения

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