Поиск аномального поведения, кризисов и коррекций на рынках с применением нейронных сетей
Данная статья будет интересна тем, кто занимается как торговлей, так и инвестициями и хочет создать автоматизированный инструмент, который позволит снизить риски и защитить собственные активы.
Данная статья одна из серий статей на тему применения искусственного интеллекта и нейронных сетей в торговле и инвестировании. Если кому-то интересна данная тематика, то вы можете посмотреть это, это, это, это и это. В них вы можете посмотреть идеи для создания торговых роботов на базе нейронных сетей, различных элементов торговой системы и управления ими.
Как всегда приветствуется здоровая критика и комментарии. В статье будут приложены скрипты и датасеты.
Проблема
Кризис это всегда проблема. Кризисы и коррекции тяжелы как психологически, так и финансово. Сложно смотреть как еще вчера твой красивый портфель разбивается о проблемы экономики. Но сложно не только людям, но и торговым и инвестиционным системам. Хаос, влияние непрогнозируемых факторов, гэпы и прочее вносят значительные риски и погрешности, что сильно влияет на процесс принятия решений. Про убытки надеюсь понятно всем, поэтому я здесь останавливаться не буду.
Рис. 1. Месячный график S&P500
Все кризисы, коррекции и прочее с точки зрения торговли и инвестирования в Long являются аномалиями. На рис. 1. Жёлтым приведено аномальное поведение рынка по индексу S&P500. Кризис 2008, короновирус, иные проблемы могут привести как к анормальному поведению финансового инструмента в отдельности, как целого сектора экономики, так и всего рынка в целом. То, что написано в статье ниже применимо как для отдельных компаний, так и для отраслей и рынка. В качестве примера будет рассмотрено детектирование аномалий с применением нейронных сетей на базе индекса S&P500.
Факторы аномалий
Прежде чем мы перейдем как самому решению, давайте хотя бы поверхностно разберёмся в причинах аномалий.
Рис. 2. Месячный график S&P500
Первое и самое простое – это технические причины. У компании, отрасли или рынка в целом может не быть фундаментальных или иных причин для коррекции, но следует понимать трейдеры и инвесторы фиксируют прибыли, ребалансируют свои портфели, и всё это неизбежно приводит к волатильности на рынке. Увидел трейдер или инвестор возможность, и переложился в другую компанию. И на рынке может не быть каких-то кризисов, или позиции, которые зафиксированы трейдерами или инвесторами фундаментально себя показывают плохо. Это также могут быть растущие компании, которые вполне себе не плохо себя чувствуют.
То есть, нужно понимать, что одним из точно анализируемых факторов является сам рынок. Цена котировок того или иного инструмента или данные технических индикаторов.
Тем не менее, у кризисов и коррекций может быть вполне себе фундаментальная причина. Давайте взглянем на компанию American Airlines (AAL) (рис. 3).
Рис. 3. American Airlines, котировки, выручка, P/E ratio
Вы видите сами как поменялись фундаментальные показатели компании в кризис. Границы закрыты, самолёты не летают => Падение выручки и изменение P/E. Конкретно в данном случае оно отрицательное на графике в связи с убытком. Но оно может быть и сильно задрано по отношению к своим средним значением. То есть, когда выручка и прибыль падают, а инерционность рынка держит значения котировок в какой-то области, то P/E растёт. И соответственно, как вы, так и другие инвесторы и трейдеры, понимания влияние фундаментальных показателей на движение котировок принимают решение и сокращении, выходе из позиции и пр.
То есть, вам важно контролировать и фундаментальные показатели, и фундаментально оценивать компанию по различным факторам.
Но если посмотреть на ту же компанию AmericanAirlinesна рис. 4, то вы видите лаг между выходом отчетности и началом коррекционного движения??
Рис. 4. American Airlines, котировки, выручка, P/E ratio
Инвесторы и трейдеры принимают решения не только на основании технического и фундаментального анализов. Это может быть как понимание текущего контекста, так и настроений других инвесторов. Взгляните на рис. 4, еще ничего не известно о проблемах, на сколько серьёзен убыток, но инвесторы УЖЕ сокращают свои позиции. Почему?? Это страх. У людей есть понимание, что границы закрываются, самолёты летают всё меньше, они видят поведение и настроение других людей, и соответственно также принимают решения.
Настроения трейдеров и инвесторов вы можете оценить с применением сентиментного анализа. В первом приближении можно почтить здесь.
В качестве примера, приведу картинку из данной статьи, которая была доложена на конференции по искусственному интеллекту от Сбера.
Рис. 5. Взаимосвязь эмоционального настроя трейдеров и инвесторов (верхний график) и котировок криптовалют (нижний график)
Как вы видите из рис. 5, есть корреляция между настроением инвесторов и курсом котировок. То есть, если вы хотите комплексно оценивать риски, то важно оценивать и этот фактор.
Но факторов для анализа как компании и отраслей, так и рынка в целом можно привести большое количество. Вот некоторые из них. Например, анализ платёжеспособности. Этот фактор справедлив как для компаний, так и для физических лиц. Например, для физических лиц можно анализировать долю просроченных кредитов. Чем больше просроченных кредитов, тем ярче сигнал о финансовых проблемах у людей. Банально, людям нечем платить. То есть, очевидно текущее и будущее снижение спроса. Или тоже самое применительно к компании. Анализ доли просроченных выплат по облигациям.
Рис. 6. Показатели платёжной дисциплины компании Трансаэро
Если у компании нет денег, то она не может платить контрагентам, не может выполнять обязательства по облигациям, что очевидно является значимым фактором для падения котировок.
Другим немаловажным фактором в качестве примера можно привести анализ стоимости ресурсов в ресурсоёмких отраслях. Например, строительство и машиностроение. Очевидно, что увеличение цены на металл и иные ресурсы приведет к увеличению себестоимости продукции и снижению маржинальности. А это соответственно изменение фундаментальных показателей, влияние которых мы рассмотрели выше.
Рис. 7. Фьючерс на рулонную сталь
Взгляните в качестве примера на увеличение цены на фьючерс рулонной стали. Подобные примеры можно привести и по прокату, и не только по стали, но и по иным металлам. Но ресурсы это не только металлы. Это и энергоносители и многое другое.
Также вы можете выделись множество иных факторов. Безработица и пр. В качестве примера, в данной статье мы будем рассматривать только технические факторы. Но пример релевантен как для использования с любыми факторами изложенными выше, так и с множеством других факторов.
Подход к решению
В данной статье будет рассматриваться решение детектирования аномалий с применением автоэнкодеров.
Рис. 8. Общая структура автоэнкодера, взято из статьи
Что такой автоэнкодер?? Взгляните на рис. 8. Это такая нейронная сеть, которая состоит из 3- частей. Левая часть энкодер, правая часть декодер и центральное место их пересечения, которое всегда сужено. За счёт этого сужения, задача автодекодера получить обобщенную функцию вашего контролируемого показателя.
Рис. 9. График работы автоэнкодера
Автоэнкодер обучается только на хороших данных (учитывайте это в разметке и датасете). Взгляните на рис. 9. Верхний график это котировки и показания автоэнкодера. Снизу отклонение (это может быть среднеквадратическое или иное отклонение). Красным показана линия котировок, а зелёным расчётные значения автоэнкодера. Когда автоэнкодер видит нормальные значения, которые были в его обучающей выборке, то он адекватно построит функцию, и отклонения будут небольшими. Но если возникает аномалия (самая правая часть графика), то автоэнкодер будет продолжать пытаться построить график так как он был обучен. И само собой в случае аномалий будет получено значительное расхождение, так как подобных случаев не было в обучающей выборке. Сами аномалии можно контролировать по некому пороговому значению отклонения, выше которого события будут определяться как аномалия.
Рис. 10. Пример порогового значения отклонения для детектирования аномалии
Здесь же хочу отметить преимущества данного подхода по детектированию аномалий. Инвестирование и торговля на фондовом рынке это ответственный процесс. Вы не можете себе позволить сливать огромное количество денег для обучения ваших моделей детектировать аномалии. Автоэнкодер, как вы уже заметили выше, обучается ТОЛЬКО на положительных случаях. Ему не нужно обучаться на отрицательных случаях. И в связи с этим, он очень быстро может быть готов к работе.
Датасет
Как я уже сказал выше, мы оценивать индекс S&P500 будем только технически в качестве демонстрации по двум параметрам. Будем оценивать движение котировок и OBV.
Мы рассматриваем торговлю и инвестиции в Long, поэтому из датасета выбрасываем все коррекционные движения, детектированные по EMA3, EMA9, EMA20. Пример выброшенных из датасета временных рядов вы можете видеть на рисунке ниже.
Рис. 11. Пример исключённых временных рядов из датасета
Датасеты можно скачать здесь.
Результат работы автоэнкодера
Скрипт автоэнкодера можно скачать здесь.
Давайте посмотрим на результаты работы автоэнкодера.
Рис. 12. Показатели точности обучения автоэнкодера для цены закрытия
Рис. 13. Результат работы автоэнкодера для котировок S&P500
Обращу ваше внимание, что данный результат для общей (не обучающей выборки, в которую включены коррекции, кризисы и прочее). Результат вы видите сами. График сверху это реальные котировки и расчёт автоэнкодера. Результат снизу погрешность, по которой детектируются аномалии.
Давайте взглянем поближе.
Рис. 14. Малые коррекционные движения
Рис. 15. Большие коррекционные движения
Давайте посмотрим на результат обучения автоэнкодера для OBV.
Рис. 16. Показатели точности обучения автоэнкодера для OBV
Рис. 13. Результат работы автоэнкодера для OBV S&P500
Рис. 14. Результат работы автоэнкодера для OBV S&P500 локально
На рис. 13 и 14 сверху приведены значения OBV, а снизу погрешность. Увеличение погрешности означает, что инвесторы и трейдеры начинают сокращать свои позиции.
Если мы суммируем погрешности, то получаем следующее:
Рис. 15 Суммарное значение погрешности автоэнкодеров по цене закрытия и OBV
Обратите внимание на область на рис. 16.
Рис. 16. Суммарное значение погрешности автоэнкодеров по цене закрытия и OBV с выделенной областью кризиса
Как вы видите, коррекция рынка с одновременным сокращением позиций даёт сильный сигнал автоэнкодера, говорящий больших текущих или потенциальных проблемах.
Здесь же следует отметить тот факт, что по сравнению с автоэнкодером цены закрытия, автоэнкодер OBVсильно зашумлён данные и отношение сигнал/шум у него ниже. В данном примере погрешности суммировались, но вы для своих целей можете использовать консенсус прогноз, рассчитанный из других соображений.
Заключение
На этом, пожалуй, статью я закончу. В заключении, хочу сказать два слова о себе. Я являюсь основателем стартапа по предиктивной аналитике международных финансовых рынков на базе нейронных сетей finprophet.com. Мне интересна тематика автоматизированного принятия решений по торговле и инвестированию, в том числе с применением нейронных сетей. Считаю, что за этой технологией будущее. Если у кого то будет желание пообщаться, можно писать мне здесь или по контактам, указанным ниже.
Контакты:
Telegram: https://t.me/step_a_v
Всех благ, побед и
успехов на фондовых
рынках!