MiminoChange
Telegram-бот для обменника: собирает курсы с пяти финансовых площадок, считает арбитражные связки и публикует спреды в канале. Работал два года.
Стек
- Python
- aiogram
- SQLite
Задача
Связки искали руками: сотрудники обходили сайты платёжных систем и бирж, сверяли курсы и считали спред по каждому направлению. Курсы менялись, и всё приходилось повторять заново, так что на расчёты уходило много времени.
Решение
Бот собирает курсы платёжных систем и бирж, считает по ним спреды и публикует сводку в Telegram-канале. Отдельный сценарий считает арбитраж под конкретную сумму и банк. Собственные курсы обменника рассчитываются по формуле, но сотрудники могут скорректировать их вручную из админ-панели, когда фактический спрос и предложение требуют отклониться от расчётного курса.
Ключевые технические решения
- У части площадок не было API, поэтому курсы приходилось снимать со страниц. Разметка периодически менялась, поэтому поиск значения не завязан на один CSS-селектор и переживает её правки.
- Источники отличаются форматом данных и частотой обновления, а отдельные бывают недоступны. Курсы приводятся к единому виду до расчёта, иначе спред считался бы по несопоставимым числам.
Бот для обменника отслеживает актуальные курсы и считает спреды для арбитражных операций. Он получает данные через интеграции с несколькими финансовыми платформами, поддерживает расчёт связок по заданной сумме и банкам, а также автоматически публикует информацию о спредах в Telegram-канале обменника. Курсы можно править вручную из админ-панели.
Общий спред
В разделе «Спред» бот собирает текущие курсы всех сервисов, участвующих в выгодных связках, через интеграции с финансовыми платформами: Binance, Garantex, MOEX, Золотая Корона и Юнистрим. В некоторых странах перевод доступен не через все сервисы. Недоступные варианты бот помечает отдельно (пример с Арменией на скриншоте).

Спред под конкретную сумму
Отдельная кнопка считает арбитраж под конкретную сумму для направления с Грузией. После ввода суммы бот предлагает выбрать один банк или сразу все («Сбербанк», «Тинькофф», «Райффайзен») и показывает по связке чистую прибыль в рублях и процентах для каждого варианта отправки («Юнистрим» и «Золотая Корона»). Краткую сводку можно развернуть в подробную или скрыть.

Изменение курса обменника
Курсы продажи и покупки бот считает автоматически по заданной формуле, но их можно править вручную из админ-панели.

Результаты
- Бот проработал два года, пока направление оставалось коммерчески актуальным.
- Ботом и расчётами, которые публиковались в общем канале, пользовались сотрудники и клиенты обменника, а также представители других обменников.