{"id":14276,"url":"\/distributions\/14276\/click?bit=1&hash=721b78297d313f451e61a17537482715c74771bae8c8ce438ed30c5ac3bb4196","title":"\u0418\u043d\u0432\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432 \u043b\u044e\u0431\u043e\u0439 \u0442\u043e\u0432\u0430\u0440 \u0438\u043b\u0438 \u0443\u0441\u043b\u0443\u0433\u0443 \u0431\u0435\u0437 \u0431\u0438\u0440\u0436\u0438","buttonText":"","imageUuid":""}

Детектирование аномалий, поиск угроз и возможностей среди торговых и инвестиционных сигналов на базе ИИ

Данная статья будет интересна тем, кто разрабатывает торговых роботов, различных автоматизированных торговых и инвестиционных советников или иные подобные системы.

Данная статья одна из серий статей на тему применения искусственного интеллекта и нейронных сетей в торговле и инвестировании. Если кому-то интересна данная тематика, то вы можете посмотреть это, это, это, это, это и это. В них вы можете посмотреть идеи для создания торговых роботов на базе нейронных сетей, различных элементов торговой системы и управления ими.

Как всегда приветствуется здоровая критика и комментарии.

В статье будут приложены скрипты и датасеты. За основу для написанных скриптов был взят этот пример. Я хочу поблагодарить всех тех, кто делится технологиями и особенностями их применения на просторах интернета.

Проблема

Каждый кто занимался торговлей и инвестициями задумывался над тем, как это сделать эффективнее. Эффективная торговая система это супер классный алгоритм, который вы создали. Это система, которая среди множества финансовых инструментов может искать «возможности». Желательно чтобы они приносили больше дохода с наименьшими рисками. О самой такой системе вы можете почитать здесь.

То есть, у вас есть некое поле сигналов, как торговых, как и инвестиционных, среди которых вы можете выбрать наилучшее. Само поле может выглядеть так, как показано на рис. 1.

Рис. 1. Пример поля торговых и/или инвестиционных сигналов

Но при этом, следует понимать что какие бы вы супер идеальные алгоритмы не писали, они всегда могут ошибаться. Всегда есть место ошибке, не точности, отказу в конце концов. И все эти ошибочные сигналы попадают в ваш массив итоговых сигналов, из которых потом вы выбираете то, что вам нужно.

В итоге, ваш массив сигналов может выглядеть следующим образом (рис. 2):

Рис. 2. Пример распределения сигналов по риску и прибыли с аномальными значениями

Как вы видите на рис. 2, в основном облако сигналов расположено достаточно плотно. Однако, есть N-ое количество сигналов, которые визуально выбиваются из общей картины. Взгляните ниже (рис. 3).

Рис. 3. Аномальные значения выборки

Здесь следует отметить ДВА ВАЖНЫХ момента.

Момент №1.

Торговля и инвестиции в простых и понятных условиях. То есть, примерно так, как показано на рис. 4.

Рис. 4. После сигналов риска-прибыли с высокой плотностью сигналов

Есть разные торговые стратегии, но очевидно, что хаос это не друг автоматизированных. Таким образом, вам важно детектировать аномалии, отбрасывать их и выделять для себя поле сигналов для работы ваших торговых и инверсионных систем. Если этого не сделать, то когда вы будете обучать систему подбора сигналов с зашумлёнными данными, это может привести к снижению качества системы.

Момент №2.

Следует понимать другой важный факт. Когда какой-то ваш сигнал выбивается из контекста, это не всегда ошибка. Да, это определённо может быть угрозой. Но как оно может быть угрозой, так может быть и возможностью.

В данной статье будет рассматриваться способ поиска аномалий по обоим вышеуказанным направлениям.

Методы

Для тех, кто хочет попробовать разные методы решения данной задачи, я рекомендую посмотреть пример, который я привёл в самом начале статьи и другие источники.

Приведу цитатой из данного примера методы решения данной задачи:

«Самые простые:

· Визуально: по гистограммам, скаттерплотам, боксплотам

· Базовые статистики - отклонение от среднего, перцентили, квантили

· Статистические тесты

Посложнее:

· Distance-based: находим центроиды/средние/кластеры "хороших" наблюдений и считаем расстояние до них, если расстояние больше некоторого порогового значения - аномалия

· Density-based: похожее, но по вероятностям/плотностям, если плотность ниже порога - аномалия (DBSCAN)

· Model-based: строим модельки, а они уже разберутся

· Линейные методы: пытаемся построить некоторую линейную разделяющую гиперплоскость между "хорошими" и "аномальными значениями" (One-Class SVM)

· Деревянные методы: строим решающее дерево, чтобы понять, сколько раз пришлось делить выборку, чтобы добраться до конкретной точки (Isolation Forest )

· Deep-learning: строим сжатую репрезентацию наших данных, наблюдения с самой большой ошибкой восстановления (representation error) (autoencoders

У каждого из данных методов есть свои преимущества и недостатки. Мы рассмотрим несколько из них.

Датасет

Датасеты можно скачать здесь. Обучающая выборка состоит из 500+ сигналов, имеющие 2 поля: риск и прибыль. Значения сгенерированы случайным образом и расчёт данных значений в статье не рассматривается.

Датасет обучающей выборки выглядит так, как показано на рис. 5.

Рис. 5. Пример датасета для обучения нейронных сетей

Скрипты

Скрипт для указанных ниже результатов расчёта вы можете скачать здесь. Он выполнен в python + jupyter notebook.

Distance-based метод

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

Рис. 6. Результат разделения обучающей выборки с помощью Distance-based метода на аномальные и не аномальные значения

Визуально, достаточно не плохо он выделил аномальные значения. Однако, у данного метода есть один существенный недостаток. Вы должны указать процент брака/процент аномальных значений. Таким образом, увы, вы вынуждены заниматься оптимизацией системы, что несколько усложняет задачу.

Рис. 7. Результат разделения расчётной выборки с помощью Distance-based метода на аномальные и не аномальные значения

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

One-Class SVM

Суть данного метода заключается в попытке разделить выборки некой гиперплоскостью, которая бы отделила аномальные значения от нормальных.

Рис. 8. Результат разделения обучающей выборки на аномальные и нормальные значения с помощью One-Class SVM метода

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

Рис. 7. Результат разделения расчётной выборки с помощью One-Class SVM метода на аномальные и не аномальные значения

Тем не менее, сравнивая результаты с предыдущим методом, результаты расчётных выборок совпадают.

Isolation Forest

Суть данного метода заключается в попытках отделения точек от других (рис. 8).

Рис. 8. Пример попытки изолирования точки от выборки

Чем проще это сделать, тем выше вероятность того, что данная точка является аномалией.

Рис. 9. Результат разделения обучающей выборки на аномальные и нормальные значения с помощью Isolation Forest метода

В данном методе также указывается процент аномальных значений.

Рис. 10. Результат разделения расчётной выборки с помощью Isolation Forest метода на аномальные и не аномальные значения

Как вы видите, результат расчёта с помощью данного метода также полностью идентичен предыдущим. Однако, я здесь хочу отметить следующее. Метод Isolation Forest является более предпочтительным по сравнению с другими методами в связи с большей возможность адаптации к сложным конфигурациям полей сигналов.

Угрозы и возможности

Рис. 11. Угрозы и возможности среди сигналов

Теперь, когда вы разделили ваши сигналы на аномальные и нормальные вы можете принять какое-то решение. С применением методов кластеризации или классификации часть сигналов вы отбрасываете как мусор, но некоторые вы можете выделить как возможности. Это могут быть сильные движения, обусловленные различными процессами.

Тем не менее, следует отметить и то, некоторые ловят именно такие сигналы, и именно они для ряда торговых алгоритмов являются нормальными.

Заключение

В заключении, хочу сказать два слова о себе. Я являюсь основателем стартапа по предиктивной аналитике международных финансовых рынков на базе нейронных сетей finprophet.com. Мне интересна тематика автоматизированного принятия решений по торговле и инвестированию, в том числе с применением нейронных сетей. Считаю, что за этой технологией будущее. Если у кого то будет желание пообщаться, можно писать мне здесь или по контактам, указанным ниже.

Контакты:

Всех благ, побед и

успехов на фондовых

рынках!

0
Комментарии
-3 комментариев
Раскрывать всегда