January 30

TKSBrokerAPI: пишем бота для поиска аномальных объёмов

Введение

Автоматизация биржевых операций — это не просто модный тренд, а насущная ежедневная необходимость для трейдеров и аналитиков. Можно автоматизировать всё, что угодно: подготовку отчётов, визуализацию графиков, получение исторических данных, оповещения о рыночных событиях и даже совершение сделок, опираясь на умные алгоритмы. Рассмотрим один интересный кейс — автоматический анализ биржевого стакана цен и поиск аномальных объёмов покупок и продаж в нём.

Почему аномалии в стакане важны? Биржевой стакан — это таблица текущих заявок на покупку и продажу, где отображаются цены и объёмы. Трейдеры часто ищут в нём аномалии — необычно большие объёмы заявок, которые могут сигнализировать о будущем движении цены. Существует гипотеза о том, что если на рынке в текущий момент времени в стакане преобладают крупные объёмы покупателей, то цена в краткосрочной перспективе, скорее всего, будет расти (или хотя бы не упадёт ниже этих уровней). Если же доминируют аномальные объёмы продавцов, цена, вероятно, снизится.

На следующих скриншотах изображены стаканы цен с объёмами предложений продавцов и покупателей, которые трейдер визуально может принять за аномалии.

Указанные на скриншотах значения объёмов в биржевом стакане трейдер визуально может принять за аномалии

Но как автоматически находить такие аномалии?

Модифицированный метод Хампеля: математика на службе у трейдера

Для поиска аномалий в числовых рядах (а объёмы в стакане — это именно числовой ряд) отлично подходит модифицированный метод Хампеля. Он позволяет быстро находить выбросы, которые значительно отличаются от остальных значений. Подробнее о методе можно прочитать в одной из предыдущих статей, а также изучить примеры и поэкспериментировать с данными в демонстрационном Jupyter-ноутбуке.

Инструмент для автоматизации: платформа ⚙️ TKSBrokerAPI

Чтобы автоматизировать поиск аномалий, понадобятся:

  • Python 3.9+ — язык, на котором пишется аналитический сценарий и Telegram-бот;
  • TKSBrokerAPI — платформа для работы с API брокера Тинькофф Инвестиции, которая упрощает получение данных из биржевого стакана и их обработку;
  • Requests — Python-библиотека, с помощью которой будут отправляться уведомления через Telegram.

Алгоритм автоматизации поиска аномалий

Основные шаги сценария, которые нужно предусмотреть при автоматизации поиска аномалий, следующие.

  • Скрипт должен уметь выходить на рынок по расписанию, указанному в формате crontab: timeToWork: "*/2 10-21 * * 1-5" — c 10:00 утра до 22:00 вечера (включительно) в будние дни, каждые 2 минуты (или по иному расписанию).
  • Скрипт должен запросить данные о состоянии биржевого стакана по указанным инструментам с глубиной стакана depth <= 50. Действия должны выполняться в параллельном (мультипроцессном) конвейерном режиме, для ускорения общей работы по анализу большого списка инструментов.
  • Для каждого полученного стакана цен скрипт должен найти все аномалии в объёмах продавцов и покупателей. Для этого должна использоваться фильтрация числовых рядов модифицированным методом Хампеля по всей глубине стакана.
  • Если список аномалий по инструменту получился не пустой, то скрипт должен сформировать оповещение по шаблону. Затем он должен подключиться к указанному Telegram-боту по токену и отправить оповещение пользователю о найденной аномалии, а также сохранить информацию в логи.
Визуализация шагов алгоритма автоматизации поиска аномалий в виде блок-схемы

Telegram-бот для поиска аномалий

Вот пример получившегося Telegram-бота: TKSAVDetector.py, реализующего сценарий, описанный выше.

Как работает бот

  1. Сбор данных. Бот через TKSBrokerAPI получает данные из стакана цен.
  2. Поиск аномалий. С помощью метода Хампеля анализируются объёмы покупок и продаж.
  3. Оповещения. Если найдены аномалии, бот отправляет уведомление в Telegram. В сообщении указывается текущая цена инструмента и уровни с аномальными объёмами.
Пример оповещения об аномальных объёмах по инструменту в чате Telegram-бота

Запуск бота

Все параметры настраиваются в двух конфигурационных файлах: config.yaml и secrets.yaml, которые должны находиться рядом со скриптом TKSAVDetector.py. Бот работает с python >= 3.9, кроме того, должны быть установлены зависимости из requirements.txt.

Подробнее о настройках конфигурации, авторизации и описание основных методов Telegram-бота для поиска аномалий читайте в документации (раздел «Детектор аномальных объёмов»).

Резюмируя статью, хочу отметить, что автоматизация анализа стакана цен с помощью платформы TKSBrokerAPI и модифицированного метода Хампеля — это мощный инструмент для трейдеров. Он позволяет оперативно находить аномалии и принимать решения на основе данных, а не интуиции. Если вы хотите глубже погрузиться в тему, попробуйте реализовать собственного Telegram-бота, используя пример выше, — это отличный способ прокачать навыки в Python и автоматизации! 🙂✌️

Платформа TKSBrokerAPI. Наш девиз: Технологии · Знания · Наука (Technologies · Knowledge · Science)

На этом всё, а если у вас появились вопросы по работе платформы TKSBrokerAPI, то вы можете задать их на GitHub в разделе 👉 Issues 👈 (также подписывайтесь на блог разработчиков: t.me/TKSBrokerAPI).

Успехов вам в автоматизации биржевой торговли! И профита! 🚀 😉✌️

⚙ Ссылка на проект: github.com/Tim55667757/TKSBrokerAPI
🎁 Поддержать проект: yoomoney.ru/to/410015019068268