Arbitrage Architecture 16 мая 2026 · 12 мин

Как работает арбитражный бот: принципы и архитектура

Арбитраж кажется простым: купи дешевле — продай дороже. На практике между этой идеей и рабочим ботом лежит несколько слоёв инженерной работы.

Откуда берётся арбитражная возможность

Криптовалютный рынок фрагментирован. BTC торгуется одновременно на Binance, Bybit, OKX, Kraken и десятках других площадок. Каждая формирует цену независимо — через свой ордербук. Когда цена на одной бирже хотя бы на 0,1–0,3% отличается от другой, возникает арбитражное окно.

Проблема: такие окна живут секунды или миллисекунды. Их моментально закрывают маркетмейкеры и другие арбитражники. Чтобы успеть раньше — нужна скорость на всех уровнях: от получения данных до исполнения ордеров.

Из чего состоит арбитражный бот

1. Модуль сбора данных (Market Data Feed)

Здесь самое первое узкое место. Данные о ценах нужно получать в реальном времени — REST не подходит категорически. Каждый REST-запрос — минимум 50–200 мс. За это время окно закроется.

Правильное решение — WebSocket-соединения к каждой бирже. Биржа сама «пушит» обновления ордербука немедленно. Для топовых пар обновления приходят несколько раз в секунду.

Что важно учитывать:

2. Арбитражный движок (Spread Calculator)

Это ядро бота. Он непрерывно сравнивает цены и ищет ситуации, где разница (спред) превышает порог прибыльности с учётом комиссий.

Прибыль = Цена_продажи × (1 - комиссия_B) - Цена_покупки × (1 + комиссия_A) - проскальзывание

На практике нужно учитывать:

3. Модуль исполнения ордеров (Order Execution)

Когда движок нашёл возможность, нужно одновременно выставить ордер на покупку и продажу. «Одновременно» — ключевое слово. Задержка между ними — позиционный риск.

Решение: отправлять оба ордера параллельно через asyncio (Python) или goroutines (Go). Последовательное исполнение недопустимо.

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

4. Риск-менеджмент и мониторинг

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

Почему большинство арбитражных ботов не работают

Главная причина — игнорирование косвенных издержек. Начинающие считают только биржевые комиссии (0,1%). Но к ним добавляются:

Стек на практике

Для арбитражных ботов мы используем Python (asyncio, aiohttp, ccxt) для прототипирования и Go или Rust для production-систем. Разница в latency между Python и Go на одинаковой задаче — 3–5 раз в пользу Go.

Базы данных: TimescaleDB или ClickHouse для ордербуков и истории сделок, Redis для быстрого обмена состоянием между компонентами.

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