Введение 3
Постановка задачи 6
Обзор литературы 8
Глава 1. Авторегрессионный подход 10
1.1. Модель авторегрессионного скользящего среднего 10
1.2. Стационарность временного ряда 12
1.3. Выбор оптимального порядка модели 15
1.4. Оценка параметров модели 16
1.5. Проверка остатков модели 16
Глава 2. Нейросетевой подход 17
2.1. Свёрточные нейронные сети 17
2.2. Перевод временного ряда в серию изображений 21
2.2.1 Предобработка и разметка данных 22
2.2.2 Gramian Angular Field 23
2.2.3 Moving Average Mapping 25
Глава 3. Программная реализация и эксперименты 27
3.1. Метрики 28
3.2. Особенности реализации 29
3.3. Реализация авторегрессионного подхода 30
3.4. Реализация нейросетевого подхода 32
3.4.1 Эксперименты с одноканальными моделями 34
3.4.2 Эксперименты с многоканальными моделями 36
3.5. Сравнение моделей 38
Выводы 42
Заключение 44
Список литературы
В настоящее время к прогнозированию фондовых индексов привлечено большое внимание со стороны профессиональных трейдеров, инвесторов и исследователей. Фондовый индекс — это показатель, вычисляемый определённым образом на основе значений котировок группы ценных бумаг. Фондовые индексы, в зависимости от своего назначения, позволяют оценить состояние рынка ценных бумаг в целом или состояние какой-либо отрасли. Успешное прогнозирование будущих изменений индексов и соответствующие прогнозам принятия решений могут принести ощутимую прибыль.
Прогнозирование фондовых индексов — это попытка предсказать вероятное изменение их значений в будущем. Даже прогнозирование с точностью немногим выше случайного угадывания вызывает интерес, так как эта небольшая разница в долгосрочной перспективе может принести прибыль трейдерам или инвесторам. Целью разработок новых методов является повышение этой точности и, как следствие, увеличение прибыли.
Существует множество методов прогнозирования фондовых индексов и акций, среди которых можно выделить 2 большие группы: фундаментальный анализ и технический анализ.
В основе фундаментального анализа лежит сам объект прогнозирования (фондовый индекс, акция компании): его финансовые показатели, макроэкономические и политические факторы, влияющие на объект. Фундаментальный анализ — всеобъемлющий инструмент, он проводится на разных уровнях: от геополитических событий, состояния мировой экономики до отдельной отрасли или компании. На прогноз могут влиять, например, цены на нефть, темпы роста ВВП страны, уровень инфляции, курс валюты, ставка Центрального Банка. Фундаментальный анализ хорошо подходит для долгосрочных стратегий, поэтому его активно используют инвесторы, которые отбирают наиболее выгодные компании для составления своего инвестиционного портфеля.
Для позиционного трейдинга, то есть для краткосрочных стратегий, лучше подходит технический анализ. Технический анализ использует только ценовой ряд, прогноз составляется на основе закономерностей изменения цен в прошлом в похожих обстоятельствах. Инструменты технического анализа — графики (тиковые, японские свечи, пункт-цифровые), паттерны — устойчивые повторяющиеся сочетания цен (например, «голова-плечи», «вымпел», «двойная вершина») [1], а также технические индикаторы — функции от значений ценового ряда (скользящая средняя, индекс относительной силы, MACD, линии Болинджера, японские свечи) [2]. В настоящее время также успешно применяются авторегрессионные модели и современные методы глубокого обучения.
Среди авторегрессионных моделей наиболее популярна модель авто-регрессионного скользящего среднего (ARMA), предложенная в 1951 году Питером Уайтли в работе «Hypothesis Testing in Time Series Analysis» [3]и впоследствии доработанная и популяризованная Джорджем Боксом и Гвилимом Дженкинсом в 1970-х.
С середины 2000-х годов глубокое обучение набирает популярность как эффективный способ решения многих задач в различных сферах. Глубокие нейронные сети достигли значительного успеха в решении задач компьютерного зрения и распознавания речи в 2011-2012 годах, после чего стали активно использоваться повсеместно.
Успех глубоких нейронных сетей подтолкнул исследователей к идее их применения к решению задач технического анализа, ведь вполне возможно, что нейронные сети смогут заметить такие закономерности, которые остаются незамеченными человеком. Свёрточные нейронные сети должны получать двумерные данные в качестве входных, поэтому их неэффективно применять непосредственно к временным рядам. В 2015 году появилась идея кодирования временных рядов в виде изображений и применения к ним свёрточных нейронных сетей для «визуального» распознавания и изучения закономерностей [4].
В 2015-2016 годах были разработаны разные типы кодирования временных рядов в изображения, такие как Gramian Angular Field [4], Moving Average Mapping, Double Moving Average Mapping [5] и другие. Свёрточная нейронная сеть обучалась на изображениях, полученных с помощью кодировщиков. Сеть находила закономерности между изображением и её классом. Данный подход можно использовать в прогнозировании фондовых индексов: обучившись на достаточном количестве изображений, сеть сможет предсказывать к какому классу относится новое изображение.
Экспериментируя с обработкой временного ряда, методами кодирования, в том числе их комбинированием, а также с архитектурой свёрточной нейронной сети можно добиться относительно высокого качества прогнозирования.
В ходе исследования было построено 8 моделей прогнозирования изменения фондовых индексов с помощью двух подходов: авторегрессионного и нейросетевого. Задача прогнозирования была сформулирована в виде задачи классификации.
В качестве данных были выбраны 2 фондовых индекса: S&P 500 и Nikkei. Для каждого подхода была проведена предобработка и разметка данных.
Реализация авторегрессионного подхода включала в себя построение модели авторегрессионного скользящего среднего с предварительной проверкой временного ряда на стационарность и подбором оптимальных пара-метров, остатки модели проверялись на соответствие белому шуму. Спрогнозированные моделью значения были соотнесены одному из рассматриваемых классов.
Для реализации нейросетевого подхода временной ряд был переведён в серию изображений с использованием методов кодирования Gramian Angular Field, Moving Average Mapping и Double Moving Average Mapping. Была построена свёрточная нейронная сеть, на основе которой были реализованы 3 одноканальные модели, использующие в качестве входных данных изображения, полученные кодировщиками GAF, MAM или DMAM, а также 4 многоканальные модели, использующие комбинации этих кодировщиков.
Построенные модели сравнивались с помощью метрик оценки качества классификации precision, recallи accuracy.Авторегрессионный подход на тестовых данных показал себя лучше нейросетевого. Многоканальные нейросетевые модели оказались лучше одноканальных.
[1] Лозговцев Ю., Сафин В., Федоров А. Технический анализ: графический подход. // М.: Международная академия инвестиций и трейдинга. 2011-2012. 66 с.
[2] Меладзе В. Э. Курс технического анализа. // М.: Серебряные нити. 1997. 272 с.
[3] Whittle P. Hypothesis Testing in Time Series Analysis. // Almqvist & Wiksells boktr. 1951. Т 4.
[4] Wang Zh., Oates T. Encoding Time Series as Images for Visual Inspection and Classification Using Tiled Convolutional Neural Networks. // AAAI Publications, Workshops at the Twenty-Ninth AAAI Conference on Arti¬ficial Intelligence. 2015. P. 40-46.
[5] Chen J., Chen W., Huang C., Huang S., Chen A. Financial Time-Series Data Analysis Using Deep Convolutional Neural Networks. // 7th International Conference on Cloud Computing and Big Data. 2016. P. 87-92.
[6] Синсиэр М. Всё об индикаторах рынка. // пер. с англ. Антонова О., Калинина А. М.: Манн, Иванов и Фербер. 2013. 224 c.
[7] Box G., Jenkins G., Reinsel G., Ljung G. Time Series Analysis: Forecasting and Control, 5th Edition. // John Wiley and Sons Inc., Hoboken, New Jersey. 2015. 712 c.
[8] Dickey D., Fuller W. Distribution of the Estimates for Autoregressive Time Series with a Unit Root. // Journal of the American Statistical Association. 1979. P. 427-431.
[9] Barra S., Carta S. M., Corriga A., Podda A. S., Recupero D. R. Deep Learning and Time Series-to-Image Encoding for Financial Forecasting // IEEE/CAA Journal of Automatica Sinica, vol. 7, no. 3. 2020. P. 683-692.
[10] Жерон О. Прикладное машинное обучение с помощью Scikit-Learn и Tensorflow: концепции, инструменты и техники для создания интеллектуальных систем. // Пер. с англ. - СПб: ООО «Альфа-книга», 2018. 684 с.
[11] LeCun Y., Boser B., Denker J., Henderson D., Howard R., Hubbard W., Jackel L. Backpropagation Applied to Handwritten Zip Code Recognition. // Neural Computation. No 1. 1989. P. 541-551.
[12] Dumoulin V., Visin F. A Guide to Convolution Arithmetic for Deep Learning. // arXiv preprint arXiv:1603.07285. 2016.
[13] Alapatt D., Mascagni P., Srivastav V., Padoy N. Artificial Intelligen¬ce in Surgery: Neural Networks and Deep Learning. // arXiv preprint arXiv:2009.13411. 2020.
[14] Rumelhart D., Hinton G., Williams R. Learning Internal Representations by Error Propagation. // Parallel Distributed Processing: Explorations in the Microstructure of Cognition, vol. 1. 1986. P. 318-362.
[15] LeCun Y., Bottou L., Bengio Y., Haffner P. Gradient-based Learning Applied to Document Recognition. // Proceedings of the IEEE. 1998. P. 2278-2324
[16] Nash W., Drummond T., Birbilis N. A Review of Deep Learning in the Study of Materials Degradation // npj Materials Degradation. 2. 10.1038/s41529-018-0058-x. 2018.
[17] Simonyan K., Zisserman A. Very Deep Convolutional Networks for Large- scale Image Recognition. // arXiv preprint arXiv:1409.1556. 2014.
[18] Statsmodels documentation. https://www.statsmodels.org/v0.10.2/
[19] Keras documentation. https://keras.io/api/
[20] Tensorflow documentation. https://www.tensorflow.org/api_docs
[21] Numpy documentation. https://numpy.org/doc/
[22] Pandas documentation. https://pandas.pydata.org/docs/
[23] Matplotlib documentation. https://matplotlib.org/stable/contents.html
[24] Scikit-learn: Machine Learning in Python documentation. https://sciki.t-
learn.org/stable/user_guide.html
[25] Pmdarima documentation. https://alkaline-ml.com/pmdarima/