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
, реализующего сценарий, описанный выше.
Как работает бот
- Сбор данных. Бот через TKSBrokerAPI получает данные из стакана цен.
- Поиск аномалий. С помощью метода Хампеля анализируются объёмы покупок и продаж.
- Оповещения. Если найдены аномалии, бот отправляет уведомление в Telegram. В сообщении указывается текущая цена инструмента и уровни с аномальными объёмами.
Запуск бота
Все параметры настраиваются в двух конфигурационных файлах: config.yaml
и secrets.yaml
, которые должны находиться рядом со скриптом TKSAVDetector.py
. Бот работает с python >= 3.9
, кроме того, должны быть установлены зависимости из requirements.txt
.
Подробнее о настройках конфигурации, авторизации и описание основных методов Telegram-бота для поиска аномалий читайте в документации (раздел «Детектор аномальных объёмов»).
Резюмируя статью, хочу отметить, что автоматизация анализа стакана цен с помощью платформы TKSBrokerAPI и модифицированного метода Хампеля — это мощный инструмент для трейдеров. Он позволяет оперативно находить аномалии и принимать решения на основе данных, а не интуиции. Если вы хотите глубже погрузиться в тему, попробуйте реализовать собственного Telegram-бота, используя пример выше, — это отличный способ прокачать навыки в Python и автоматизации! 🙂✌️
На этом всё, а если у вас появились вопросы по работе платформы TKSBrokerAPI, то вы можете задать их на GitHub в разделе 👉 Issues 👈 (также подписывайтесь на блог разработчиков: t.me/TKSBrokerAPI).
Успехов вам в автоматизации биржевой торговли! И профита! 🚀 😉✌️
⚙ Ссылка на проект: github.com/Tim55667757/TKSBrokerAPI
🎁 Поддержать проект: yoomoney.ru/to/410015019068268