Используемые сокращения и определения 3
Введение 4
Постановка задачи 7
Обзор литературы 8
ГЛАВА 1. Анализ методов глубинного обучения, библиотек и инструментов 10
1.1. Рекуррентная нейронная сеть (RNN) - LSTM 11
1.2. MLP 13
ГЛАВА 2. Алгоритмы машинного обучения 16
2.1. Регуляризация 16
2.2. Линейная регрессия 19
2.3. Случайный лес 22
2.4. K-соседи 24
2.5. Функции потерь 25
2.6. Библиотеки и инструменты 26
ГЛАВА 3. Подготовка данных и построение предсказательной модели.
Обучение 28
3.1. Набор данных. Методика прогноза. OHLC 28
3.2. Подготовка данных 30
3.3. Нормализация данных 33
3.4. Настройка и построение моделей 34
ГЛАВА 4. Визуализация и результаты 43
4.1. Реализация 43
Выводы
Заключение
Список литературы
Прогнозирование фондового рынка - это попытка определить будущую стоимость акций компании или другого финансового инструмента, торгуемого на бирже. Успешное прогнозирование будущей цены акций может принести хорошую прибыль.
Гипотеза об эффективном рынке говорит, что цены на акции отражают всю имеющуюся в настоящее время информацию, и любые изменения цен, которые не основаны на недавно выявленной информации, по своей сути непредсказуемы. Другие не согласны, и те, у кого есть эта точка зрения, обладают бесчисленными методами и технологиями, которые предположительно позволяют им получать информацию о будущих ценах.
Машинное и в частности глубокое обучение становятся новой эффективной стратегией, которую для увеличения доходов используют многие инвестиционные фонды. Изменения в сфере финансов происходят нелинейно, и иногда может показаться, что цены на акции формируются совершенно случайным образом.
Традиционные методы временных рядов, такие как модели ARIMA и GARCH эффективны, когда ряд является стационарным - его основные свойства со временем не изменяются [6]. А для этого требуется, чтобы ряд был предварительно обработан приведён к стационарности. Однако главная проблема возникает при реализации этих моделей в реальной торговой системе, так как при добавлении новых данных стационарность не гарантируется.
В современном мире всё с большей остротой проявляется интерес к качественному прогнозированию финансовых рынков. Это связано с быстрым развитием высоких технологий и, соответственно, с появлением новых инструментов анализа данных. Однако тот технический анализ, которым привыкли пользоваться большинство участников рынка, неэффективен. А именно, прогнозы на основе экспоненциальных скользящих средних, осцилляторов и прочих индикаторов не выдают хороший результат, так как экономика бывает иррациональна, движима иррациональностью людей.
В последние годы, у финансовых аналитиков вызывает большой интерес так называемые искусственные нейронные сети - это математические модели, а также их программные или аппаратные реализации, построенные по принципу организации и функционирования биологических нейронных сетей - сетей нервных клеток живого организма. Такое определение возникло при изучении процессов, протекающих в мозге при мышлении, и при попытке смоделировать эти процессы. Впоследствии эти модели стали использовать в практических целях, как правило, в задачах прогнозирования.
Нейронные сети не программируются в привычном смысле этого слова, они обучаются. Возможность обучения - одно из главных преимуществ нейронных сетей перед традиционными алгоритмами. Технически обучение заключается в нахождении коэффициентов связей между нейронами. В процессе обучения нейронная сеть способна выявлять сложные зависимости между входными данными и выходными, а также выполнять обобщение [5].
Способности нейронной сети к прогнозированию напрямую следуют из её способности к обобщению и выделению скрытых зависимостей между входными и выходными данными. После обучения сеть способна предсказывать будущие значения некой последовательности на основе нескольких предыдущих значений и/или каких-то существующих в настоящий момент факторов.
Следует отметить, что прогнозирование возможно только тогда, когда предыдущие изменения действительно в какой-то степени предопределяют будущие. Например, прогнозирование котировок акций на основе котировок за прошлую неделю может оказаться успешным, тогда как прогнозирование результатов завтрашней лотереи на основе данных за последние 50 лет почти наверняка не даст никаких результатов.
Существует две методики прогнозирования цен акций:
• Фундаментальный анализ — в этом случае аналитики оценивают информацию, которая больше относится к компании, чьи акции торгуются на бирже, нежели к самим акциям. Решения о тех или иных действиях на рынке принимаются на основе анализа предыдущей деятельности компании, прогнозах выручки и прибыли и так далее.
• Технический анализ — в данном случае рассматривается поведение цены акций и выявляются его разнообразные паттерны (используется анализ временных рядов).
В случае применения методов машинного обучения для обработки торговых данных, чаще используют именно метод технического анализа - цель заключается в том, чтобы понять, сможет ли алгоритм точно определять паттерны поведения акции во времени. Но, машинное обучение может использоваться и для оценки и прогнозирования результатов деятельности компании для дальнейшего использования при фундаментальном анализе.
Постановка задачи
Прогнозирование фондового рынка связано не просто с индивидуальным извлечением прибыли конкретными игроками, а ещё и с общим увеличением эффективности и стабильности финансовой отрасли и экономики в целом путем увеличения ликвидности.
Целью данной работы является исследование возможностей применения алгоритмов машинного обучения, в частности, нейросетевых технологий, в вопросах прогнозирования поведения финансовых инструментов, трендов и движения цен, а также последующее проведение сравнительного анализа эффективности применения рассмотренных алгоритмов.
Для достижения поставленной цели требуется решить следующие задачи:
• Проведение анализа различных методов машинного обучения, архитектур нейросетей, библиотек и инструментов, с целью их дальнейшего применения в работе.
• Поиск, предобработка, оптимизация и нормализация данных для обучения и тестирования.
• Программная реализация модели.
• Визуальное представление и сравнение результатов работы алгоритмов.
В результате будет разработана исследовательская программа на языке Python, решающая поставленную задачу.
Из полученных результатов следует, что точнее всего оказались модели LinearRegression и RandomForestRegressor. Причём модели Линейной регрессии именно без применения различных регуляризаций даже после тщательной нормализации данных. Возможно, такой результат был обусловлен спецификой исследуемых данных.
Выполненная работа показывает отсутствие паттернов в техническом анализе данных данного рода задач. Возможно такие паттерны имели место, если производилась бы классификация и к тому же брались, к примеру, минутные цены внутри одного дня и для них осуществлялись бы предсказания.
В результате исследования также можно отметить, что если в одном случае имеется картина прогноза за 10 дней и поведение цены произошло одним образом на 11-й день, то в следующий раз при повторении точно такой же ситуации она может повести себя совершенно случайным образом.
Поэтому, и нейронные сети, и обычные алгоритмы либо сильно ошибаются, либо наконец понимают, что самой выигрышной стратегией будет являться предсказание где цена останется на уровне предыдущего дня. То есть с равной вероятностью подъёма вниз или вверх. Тогда ошибка начнёт уменьшаться, и предсказания начнёт строиться по этому принципу.
1. Воронцов К. Курс лекций. Прогнозирование временных рядов //2019
URL: http: //www. machinelearning.ru/wiki/images/3/3 e/V oron-ML-Logic. pdf
2. TensorFlow (keras) - https://www.tensorflow.org/
3. Breiman L. Bagging predictors //Machine Learning.—1996.-Vol.24, no.2- Pp.123-140.
4. Michael Halls Moore //2016. (TSA) in Python - Linear Models to GARCH URL: http://www.blackarbs.com/blog/time-series-analysis-in-python-linear- models-to-garch/11/1/2016
5. RNN: URL https://en.wikipedia.org/wiki/Recurrent_neural_network
6. Бэстенс Д.-Э., Ван Ден Берг В.-М., Вуд Д. Нейронные сети и финансовые рынки: принятие решений в торговых операциях. Москва: ТВП, 1997.236с.
7. Джулли А., Пал С. Библиотека Keras - инструмент глубокого обучения //2017
8. Karpathy Andrej. The Unreasonable Effectiveness of Recurrent Neural Networks.May 21, 2015.
URL: http://karpathy. github. io/2015/05/21/rnneffectiveness/
9. Глубокое обучение, НЛП и репрезентации// 2014
URL: http://colah.github.io/posts/2014-07-NLP-RNNs-Representations/
10. Brandon Amos. Image Completion with Deep Learning in TensorFlow //2016 URL: https://bamos.github.io/2016/08/09/deep-completion/
11. Jurgen Schmidhuber's page on. Recurrent Neural Networks //2017.
URL: http: //people. idsia.ch/~j uergen/rnn. html
12. Bas R. Steunebrink, Jurgen Schmidhuber. LSTM: A Search Space Odyssey. URL: https: //arxiv. org/abs/1503.04069
13. Michael Mathieu, Marc'Aurelio Ranzato. Learning Longer Memory in Recurrent Neural Networks.24 Dec 2014. URL: https://arxiv.org/abs/1412.7753
14. Петренко C. //2013. URL: datareview.info/article/issleduem-lstm-seti-chast-1/
15. Michael Nielsen. Neural Networks and Deep Learning.//2019
URL: http: //neuralnetworksanddeeplearning.com/