Возможность применения анализа настроения пользователей Twitter для повышения точности прогноза движения цен инструментов фондового рынка - Курсовая работа
Особенности фондовой биржи, методы прогнозирования цен. Определение термина "торговая система". Сентиментный анализ сообщений Twitter. Создание словаря классификаций эмоций. Обучение искусственных нейронных сетей, алгоритм однослойного персептрона.
Аннотация к работе
Как правило, для прогнозирования используются инструменты технического и фундаментального анализа. Технический (графический) анализ опирается на конкретные исторические данные цен за предыдущий период времени. В данной работе исследуется возможность применения анализа настроения пользователей Twitter для повышения точности прогноза движения цен инструментов фондового рынка. Основной целью выполнения работы является проверка гипотезы о том, что сообщения пользователей Twitter могут использоваться в качестве источника информации для повышения точности прогноза цен финансовых инструментов на бирже. 3) Построение 2-х торговых систем: системы, использующей лишь биржевую информацию; системы, которая, помимо биржевой информации использует в работе информацию о сообщениях Twitter;Для исследования необходимо овладеть знаниями, связанными с основными понятиями фондового рынка, методами анализа исторических данных биржи. Биржа - юридическое лицо, обеспечивающее регулярное функционирование организованного рынка товаров, валют, ценных бумаг и производных финансовых инструментов. При выборе инвестиционной стратегии и тактики используются разнообразные методы оценки будущей стоимости инвестиции, а также фундаментальный анализ, позволяющий исследовать все сферы фондового рынка, и различные приемы технического анализа в целях прогнозирования изменения рыночной конъюнктуры. Технический анализ - это общепринятый подход к изучению рынка, имеющий целью прогнозирование движения курса акции и предполагающий, что рынок обладает памятью, а поэтому на будущее движение курса оказывают большое влияние наблюдаемы закономерности его прошлого поведения[1]. Обычно торговая система включает в себя набор условий или правил для выполнения следующих действий: - открытие длинной позиции (покупка акций при игре на повышение);Твитты - сообщения, которыми делятся пользователи Twitter. Преимущества Twitter - сообщения о каких-либо событиях появляются намного быстрее, чем в каких-либо других новостных источниках. В работе использовала Twitter Streaming API (https://dev.twitter.com/streaming/overview) и метод GET statuses/sample (https://dev.twitter.com/streaming/reference/get /statuses/sample), который в режиме онлайн предоставляет до 1% от всего текущего потока сообщений Твиттера. Для скачивания твиттов необходимо быть зарегистрированным в Twitter как пользователь сети, создать приложение (https://apps.twitter.com) и получить секретные ключи для доступа к Twitter API (ckey, csecret, atoken, asecret). Таким образом, мы получаем довольно структурированную информацию по сообщениям Twitter, с которой довольно удобно работать. from tweepy import Stream from tweepy import OAUTHHANDLER from tweepy.streaming import STREAMLISTENER import time ckey = "rwn8w66ca3zygh8QBYZRGKNWL" csecret = "BVMYFYPFDR0OEGKQHRRQQ654HJJJDCKISODEXIQU83s7WZZULB" atoken = "2319285780-MURJH6ZEDPJHREM0IS9RSOCVWV56LAZVGPJBKLD" asecret = "SOGICRZE86DHSFPMTRE0METHEWRFPWQEW1RGBCBNPRQOT" class listener(STREAMLISTENER): def on_data(self, data): try: #print(data) tweet1 = data.split(""created_at":")[1].split(","id":")[0] tweet2 = data.split(","text":")[1].split(","source":")[0] tweet = tweet1 tweet2 print (tweet)Поэтому для анализа используется так называемый "сентиментный анализ" - область компьютерной лингвистики, которая занимается изучением мнений и эмоций в текстовых документах. Например, в самом простом случае можно посчитать сколько за день было твиттов со словами "worry" - "волнение", "hope" - "надежда", "fear" - "страх" и исходя из этого понять как эмоционально настроены люди. Можно использовать и другие эмоциональные шкалы (8 эмоций - “happy”, “loving”, “calm”, “energetic”, “fearful”, “angry”, “tired” and “sad”) [2].Для нашего исследования была использована эмоциональная шкала из 8 эмоций - BMIS (Brief Mood Introspection Scale), характеризующаяся 16 прилагательными (2 прилагательных на каждую из 8 эмоций): happy (happy, lovely), loving (loving, caring), calm (calm, content), energetic (active, peppy), fearful/anxious (jittery, nervous), angry (grouchy, fed up), tired (tired, drowsy), sad (gloomy, sad).
План
Оглавление
Введение
Глава 1. Основные понятия и термины
1.1 Фондовая биржа, методы анализа и прогнозирования цен, понятие «торговой системы»
1.2 Социальная сеть Twitter, ее особенности. Twitter Streaming API и его возможности. Сбор данных с помощью Twitter Streaming API
1.3 Анализ сообщений Twitter. Сентиментный анализ
Глава 2. Анализ сообщений Twitter, формальное описание данных для анализа. Понятие нейронной сети
2.1 Создание словаря классификаций эмоций (DCE). Алгоритм сентиментного анализа твиттов
2.2 Алгоритм сентиментного анализа твиттов
2.3 Инструменты анализа
2.4 Нейронная сеть. Принципы работы нейронной сети
2.5 Обучение искусственных нейронных сетей
2.6 Алгоритм обучения однослойного персептрона
2.7 Описание данных для анализа
Глава 3. Построение торговой системы
3.1 Схема работы торговой системы
3.2 Построение и обучение торговых систем на основе нейронной сети (Simple set system и Extended set system). Оценка и сравнение результатов работы систем
Заключение
Список использованной литературы
Приложения
Введение
Вопрос прогнозирования движения цен инструментов фондового рынка (акций, облигаций, опционов, фьючерсов), а также производных финансовых инструментов (индексов) является темой многих научных исследований. Как правило, для прогнозирования используются инструменты технического и фундаментального анализа. Технический (графический) анализ опирается на конкретные исторические данные цен за предыдущий период времени. Фундаментальный анализ учитывает внешние факторы: экономические, политические, которые отражаются на психологическом настроении людей. Ключевым является построение такой торговой системы (торгового робота), который бы учитывал не только формальные исторические данные (данные технического анализа), но и психологические аспекты. Множество научных исследований посвящено именно техническому анализу, но как показала практика, опираясь только на него в некоторых случаях прогноз может быть ошибочным, т.к. не учитываются аспекты фундаментального анализа (психологическая составляющая).
В данной работе исследуется возможность применения анализа настроения пользователей Twitter для повышения точности прогноза движения цен инструментов фондового рынка. Предметом анализа являются сообщения в Twitter, которыми делятся его пользователи. Сообщения в Twitter - так называемые "твитты" предсталяют собой короткие сообщения (не более 140 символов). Обычно в твиттах люди в очень краткой форме делятся между собой важной и интересной с их точки зрения информацией. Преимущества Twitter - сообщения о каких-либо событиях появляются намного быстрее, чем в каких-либо других новостных источниках, что является важным моментом, т.к. в торговле очень важна скорость принятия решения. Поэтому Twitter стали рассматривать как полезный источник информации для прогнозирования.
Основной целью выполнения работы является проверка гипотезы о том, что сообщения пользователей Twitter могут использоваться в качестве источника информации для повышения точности прогноза цен финансовых инструментов на бирже.
Основные задачи, поставленные в работе: 1) Сбор всех необходимых данных и их формальное описание для дальнейшего анализа;
2) Построение системы, анализирующей сообщения пользователей Twitter на основе сентиментного анализа;
3) Построение 2-х торговых систем: системы, использующей лишь биржевую информацию; системы, которая, помимо биржевой информации использует в работе информацию о сообщениях Twitter;
4) Оценка и сравнение результатов качества работы 2-х систем.
Получены следующие результаты: 1) Были собраны все необходимые данные для анализа - сообщения пользователей Twitter (с помощью Twitter API), а также информация о ценах за исторически период времени;
2) Разработан «словарь эмоций», на основе которого была создана система, анализирующая твитты;
3) Построено и формально описано 2 множества: базовое множество, которое содержит лишь информацию по ценам финансовых инструментов и объемам торгов; расширенное - полученное путем добавления к базовому множеству проанализированной с помощью сентиментного анализа информации о сообщениях пользователей Twitter;
4) Построены и обучены на основе нейронных сетей с помощью программы STATISTICA две торговые системы на 2-х множествах;
5) Произведена оценка и сравнение качества работы построенных систем.
Было выявлено, что точность прогнозирования системы, использующей информацию о сообщениях Twitter выше, чем у системы, работающей лишь на данных биржи, что подтвердило гипотезу о том, что сообщения Twitter могут повысить точность прогноза. Однако, для каждого отдельного финансового инструмента необходимо производить обучение и настройку торговой системы отдельно.
В дальнейшем можно попытаться оптимизировать работу торговой системы разными способами, например, путем улучшения «словаря эмоций» для более точной оценки эмоционального состояния людей или путем предварительной фильтрации сообщений Twitter по определенным ключевым словам и.т.д.