MiminoChange

Telegram-бот для обменника: собирает курсы с пяти финансовых площадок, считает арбитражные связки и публикует спреды в канале. Работал два года.

Период
2022 — 2024
Статус
Завершён
Моя роль
Единственный разработчик: сбор курсов, расчёт связок и Telegram-бот. Сотрудники обменника показали ручной процесс поиска связок.

Стек

  • Python
  • aiogram
  • SQLite

Задача

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

Решение

Бот собирает курсы платёжных систем и бирж, считает по ним спреды и публикует сводку в Telegram-канале. Отдельный сценарий считает арбитраж под конкретную сумму и банк. Собственные курсы обменника рассчитываются по формуле, но сотрудники могут скорректировать их вручную из админ-панели, когда фактический спрос и предложение требуют отклониться от расчётного курса.

Ключевые технические решения

  • У части площадок не было API, поэтому курсы приходилось снимать со страниц. Разметка периодически менялась, поэтому поиск значения не завязан на один CSS-селектор и переживает её правки.
  • Источники отличаются форматом данных и частотой обновления, а отдельные бывают недоступны. Курсы приводятся к единому виду до расчёта, иначе спред считался бы по несопоставимым числам.

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

Общий спред

В разделе «Спред» бот собирает текущие курсы всех сервисов, участвующих в выгодных связках, через интеграции с финансовыми платформами: Binance, Garantex, MOEX, Золотая Корона и Юнистрим. В некоторых странах перевод доступен не через все сервисы. Недоступные варианты бот помечает отдельно (пример с Арменией на скриншоте).

Общий спред
Общая таблица спредов: по каждой стране — курс Золотой Короны, Юнистрима и Swift против Binance, Garantex и MOEX, со спредом по каждому направлению.

Спред под конкретную сумму

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

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

Изменение курса обменника

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

Изменение курса обменника
Собственная маржа обменника на покупку и продажу USDT, показанная на примере тысячи единиц.

Результаты

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