Введение

В этом посте мы рассмотрим несколько популярных технических индикаторов и немного данных макрокорреляции, а также изучим, как конфигурация обычно используемой нейронной сети LSTM повышает точность прогнозирования цен на активы. Мы будем наблюдать, как наши модели определяют приоритеты различных факторов, таких как ставка по федеральным фондам, данные отчета о потребительских расходах, RSI, полосы Боллинджера, валютные пары, цены на нефть и многое другое.

Несколько секторов акций США были выбраны случайным образом (технологии, энергетика и здравоохранение). В частности, мы рассмотрим популярные ETF каждого из них: QQQ, XLE и XLV.

Методы исследования

Мы будем использовать код, основанный на работе Abdou Rockikz, опубликованной несколько месяцев назад, в хорошо написанном пошаговом руководстве по коду по использованию LSTM для прогнозирования цен на фондовом рынке. Кроме того, я буду использовать SHAP для извлечения важности функций из-за его почти универсальных возможностей для различных типов моделей. Это будет полезно при сравнении этой модели с другими типами методов машинного обучения. Эта конкретная модель построена с помощью Tensorflow Keras. Мы будем использовать однонаправленную RNN, как это рекомендуется для прогнозирования финансовых временных рядов, и пять слоев. Методом проб и ошибок для этой конкретной области прогнозирования я нашел пять слоев, обеспечивающих одни из лучших результатов за пределами песочницы. Я часто экспериментирую с несколькими больше и меньше. Разные слои для разных игроков. Мы будем тренироваться, используя 500 эпох для каждого сектора, используя ежедневные ценовые данные за период в 2 года, а затем предоставим показатели точности и MAE вместе с целевой ценой нашей модели. Я чувствую побуждение заявить: не финансовый совет.

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







Эксперимент

После экспорта данных из TradingView я экспортировал данные из экспортированного CSV в формат SQL по нескольким причинам. Одна из причин заключается в том, что TradingView не экспортирует сглаженные данные, поэтому показатели Fed Funds Rate и Consumer Spending Report появляются только в те даты, когда они сообщаются. Решением здесь является быстрый цикл for, заменяющий значения null и NaN предыдущими записанными числами. Кроме того, некоторые индикаторы не срабатывают до 20 или около того дней, поскольку они опираются на исторические данные, поэтому мы пропускаем эти дни без данных (при этом получаем данные чуть более чем за два года). Другие причины преобразования заключаются в том, что мы можем немного больше поиграть с данными в более позднее время и обеспечить большую гибкость в отношении того, как данные могут быть очищены и дополнительно интерпретированы с использованием других методов (эвристики!).

Затем данные захватываются экземпляром python, на котором работает LSTM, через API и импортируются в нашу модель как Pandas Dataframe. Мы позволили нашему обучению работать на нескольких графических процессорах Google Colab в облаке, подождав около 5–10 минут, пока модель обучится и выдаст результат. Затем, когда у нас есть данные прогноза и точности, мы используем SHAP для определения важности фактора. Многим часто сложно работать с факторами важности в Keras, поэтому я включил сюда свой код:

! pip install shap
import shap
shap.initjs()
X= data[“X_train”]
explainer = shap.DeepExplainer(model, X)
shap_values = explainer.shap_values(X)
shap.summary_plot(shap_values[0][:, 0, :], X[:10][:, 0, :], feature_names=FEATURE_COLUMNS, plot_type=”bar”)

В наши дни SHAP может быть немного темпераментным с последней версией Tensorflow. Если у вас возникнут какие-либо проблемы, просто напишите комментарий. Я сделаю все возможное, чтобы помочь, если я могу.

Выводы

Вот результаты наших прогнозов на следующий день и показания важности функций для каждого ETF:

QQQ (Технология)

Ценовой прогноз на сегодня (рынок США находится в нескольких часах от открытия на момент написания этой статьи) - цена закрытия 291,15 доллара по сравнению со вчерашними 283 долларами. Давайте посмотрим, насколько это точно, хотя у него была точность 85% в его тренировочных тестах на истории. Данные, казалось бы, указывают на тот факт, что Интерлинг и Промежутки Облака Ишимоку являются основными функциями, на которые следует обратить внимание в прогнозе на следующий день с этим технологическим ETF (по крайней мере, согласно этой конкретной модели). Балансовый объем также кажется важной областью. Кто бы мог подумать, что объем торгов, подпитываемый ажиотажем, имеет какое-то отношение к технологиям? Казалось бы, Williams%R немного слабее среди основных функций. Верхняя полоса полосы Боллинджера вместе со скользящей средней кажутся дополнительными сигналами. Другое дело, как модель использует их по сравнению с большинством трейдеров-людей.

XLE (энергия)

Прогноз цены закрытия в четверг для этого популярного энергетического ETF составил 72,57 доллара, что на несколько центов ниже, чем вчерашнее закрытие. С оценкой точности 76% на этапе тестирования и обучения чтение важности функции было немного интересным. Вкратце: Биткойн. Это, безусловно, требует дополнительного анализа. Второстепенные и третичные позиции по важности признаков кажутся немного более очевидными для фьючерсов на сырую нефть WTI и валютных пар USD/EUR. Williams%R снова оказался ниже в топе. Линии Облака Ишимоку, похоже, не так важны для той же модели, как для выбранного нами технологического ETF.

XLV (Здравоохранение)

Мы нашли прогноз цены закрытия на уровне 129,29 доллара на четверг, что немного ниже вчерашнего роста в секторе здравоохранения. Мы увидим, как это сработает. Показатель точности также составил 76%, поэтому, возможно, мы могли бы добавить несколько сотен эпох. Биткойн приближается к вершине важности функций, а Лондонская фондовая биржа является ключевым фактором в ежедневных движениях этой модели. Можно только догадываться, как сектор здравоохранения в США связан с 100 крупнейшими акциями Великобритании.

Заключение

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