Вот код, набор данных и результаты



О проекте

Одновременный рост социальных сетей и дисконтных брокерских компаний стимулировал распространение онлайн-сообществ, посвященных инвестированию и торговле на фондовом рынке. Самым популярным из этих сообществ является сабреддит r/wallstreetbets (WSB). В настоящее время это четвертый по популярности субреддит с более чем 1 миллионом активных подписчиков. Bloomberg Businessweek недавно представил субреддит в статье, описывающей способность доски объявлений изменить рынок опционов и спровоцировать ралли акций. С таким большим количеством подписчиков и спорным влиянием возникает вопрос, можно ли успешно использовать настроения на сайте в качестве предиктора динамики акций.

Данные

Данные об акциях: Wharton Research Data Services (WRDS), подразделение Уортонской школы бизнеса Пенсильванского университета, является авторитетным источником академических исследований и имеет специального аналитика по контролю качества на NYSE. Получив доступ к их базе данных, мы смогли создать почасовой набор данных о ценах на акции из их консолидированного набора данных Millisecond Trade and Quote (TAQ). Наш набор данных состоит из почасовых цен на акции Amazon, SPY, Boeing, SPY (S&P) и Tesla с 01 января 2017 г. по 31 ноября 2019 г. Критерием выбора было наибольшее количество упоминаний в 2019 году, когда Amazon и SPY превзошли остальные 3.

Данные r/wallstreetbets из Reddit: Pushshift — это крупнейший общедоступный набор данных Reddit, содержащий как комментарии, так и материалы. Мы используем набор данных Pushshift Comment для r/wallstreetbets с 01 января 2017 г. по 31 ноября 2019 г.

GloVe — глобальные векторы для представления слов: GloVe — это неконтролируемый алгоритм обучения для получения представлений векторов слов из корпуса слов. В проекте GloVe есть несколько общедоступных предварительно обученных наборов векторных данных слов. Мы решили использовать Magnitude версии GloVe Twitter (2 миллиарда твитов, содержащих 27 миллиардов токенов, с размером словаря 1,2 миллиона) для 25-мерного встраивания слов и GloVe Common Crawl (веб-архив, содержащий 840 миллиардов токенов, с размером словаря 1,2 миллиона). 2,2 миллиона) для 300-мерных вложений слов. Ссылка: https://nlp.stanford.edu/projects/glove/

Честно говоря, я не до конца понимаю детали реализации того, как мы поместили необработанный текст в векторы GloVe. Я не участвовал в этой части проекта.

Методы

Мы встроили каждый комментарий, усредняя векторы слов каждого слова в комментарии, чтобы сформировать вектор документа. Это сгенерировало 2 вложения, 25-мерное вложение и 300-мерное вложение с использованием соответствующих наборов данных GloVe.

Одна только эта задача, связанная с процессором, занимает несколько дней на одной машине для одного успешного запуска. Чтобы ускорить эти вычисления, мы распараллелили задачу с ~60 «простающими» компьютерами Учебной лаборатории вычислительной науки (CSIL) с 12 ядрами ЦП на каждом. В дополнение к стандартным векторам документов мы добавили оценку, позолоту («награды») и количество слов для каждого сообщения в качестве дополнительных функций.

Затем векторы слов были агрегированы по часам и дням отдельно, создавая 2 окончательных набора данных GloVe, которые затем были объединены с нашими котировками акций.

Рисунок 1. В левом поле показано сравнение нескольких алгоритмов машинного обучения в сравнительном анализе точности прогнозирования. Мы использовали наш почасовой совокупный набор данных без векторов GloVe, так как предполагали, что относительная производительность останется неизменной. Наша окончательная архитектура отображается справа с окончательным выходным слоем с 1 измерением. Каждый узел представляет собой прогноз цены акций для SPY с использованием AAPL, AMZN, BA и TSLA.

Результаты

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

Будущая работа

С точки зрения дополнительных ухудшений, которые могут быть непосредственно добавлены к нашей работе, есть преимущества, которые можно получить как за счет дополнительной настройки, так и за счет большего количества данных. Что касается настройки, можно провести дополнительную оптимизацию гиперпараметров и использовать более мощную модель, такую ​​как LSTM с вниманием. Что касается данных, то дополнительные функции, такие как технические индикаторы, а именно индекс относительной силы (RSI), а также ключевые характеристики ценных бумаг, такие как дивиденды, объем, бизнес-сектор, могут быть потенциально полезными. .

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

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

Что касается изображения ниже, мы должны были переобучить каждую неделю (или день) прогнозирования. Это был классный проект, и у нас был дефицит времени, и в нашу защиту, это был март / апрель 2020 года, начало заговора #BearGangs по обрушению рынка. Обратите внимание, что используйте date_t-1 для предсказания date_t. Мы используем последние N временных точек для прогнозирования, даже если точка в нашем тестовом наборе; использование прошлых данных – эточестная игра.

Исправления — Будущие работы

С момента написания этой статьи в соавторстве прошло ровно 13 месяцев. Я также изменил свою компетенцию, я не только работал специалистом по безопасности данных, но и пошел дальше в своем образовании. Есть вещи, которые я бы сделал по-другому…

Возможные улучшения

Я бы посоветовал игнорировать дивиденды и бизнес-сектор. Внимательно рассмотрите LSTM. Что касается данных, дополнительные функции обеспечивают Nasdaq и зарубежные данные (например, индексы Торонто, Лондона, Гонконга), а также имеют 3 технических индикатораи объем для некоторых (1–3) бегущие строки. Самое главное, выводить только то, что вам действительно нужно, а не все. Возможно, глубокое обучение сдерживается функцией потерь. Мы должны выводить только SPX.. или акции, которыми мы хотим торговать, в этом нет ничего плохого, если мы сохраняем веса и переобучаемся с другой акцией в качестве цели прогнозирования.

Я помню, как мы с соавторами обсуждали и обсуждали, как справляться с ежедневной неоднородностью данных, но у нас не было ни малейшего понятия. зная то, что я знаю сейчас, у меня была бы логическая/троичная переменная, которая равна True IFF, это первые/последние 15 минут торговли. Судя по тому, чем я торгую, канадской нефтью и газом, в первые 5 минут торговли наблюдаются дикие движения; волатильность высокая.

Наша газета и плакат

Прогнозирование S&P 500 с помощью LSTM и GloVeБумага | Афиша

Обо мне

Студент 3-го курса когнитивных наук Университета Саймона Фрейзера. Интересуется обнаружением аномалий(кибербезопасность), финансовым инжинирингом и языковой обработкой

Вы можете найти мои работы в следующих репозиториях