Что это за продукт
OKX — крупная криптобиржа. USDT-SWAP — её бессрочные фьючерсы с расчётом в USDT (perpetual): нет даты экспирации, PnL считается относительно маркировочной цены, можно держать long и short с плечом.
OKX Market Maker — серверный бот на Python, который круглосуточно выставляет и обновляет лимитные заявки на выбранных инструментах USDT-SWAP, ведёт позиции, считает торговый PnL без ребейта как KPI и даёт оператору веб-пульт плюс Telegram-управление.
На скрине выше — реальный интерфейс пульта: старт/пауза, режимы риска, выбор стратегии, метрики дня, активный символ и открытые позиции.
Функционал бота
- Подключение к OKX через REST и WebSocket (публичный стакан/сделки и приватные ордера/позиции).
- Три взаимоисключающие стратегии в одном процессе — активна только одна.
- Исполнение маркетмейкинга и сетки в режиме post-only (заявки остаются maker; случайный taker-fill ставит символ на паузу и шлёт алерт).
- Единый риск-слой: дневной лимит убытка, drawdown, лимит экспозиции, movement guard, многоступенчатый выход из позиции.
- Учёт: FIFO PnL по сделкам; rebate учитывается отдельно и не подменяет торговый результат.
- Операторский пульт в браузере и команды в Telegram; состояние пишется в SQLite и поднимается после рестарта.
Алгоритмы
1. Динамическая лестница (режим по умолчанию)
Классический market making вокруг mid-цены. Бот автоматически выбирает инструмент по волатильности и ликвидности (например, SOL-USDT-SWAP) и выставляет лестницу из нескольких уровней bid/ask (обычно 3 на сторону) с заданным спредом.
- После исполнения уровня ордера переставляются (amend/replace), чтобы лестница снова стояла вокруг рынка.
- Для позиции задаются take-profit, stop-loss и time-exit (выход по времени, если рынок «завис»).
- Цель — собирать спред мелкими кругами, а не держать направленный прогноз.
2. Адаптивная сетка
Replenishing grid: сетка уровней вокруг цены, которая пополняется по мере исполнения. Алгоритм переключает режимы рынка — SCAN → RANGE → VOLATILITY → MOMENTUM → RECOVERY — и подстраивает шаг сетки, размер уровней и агрессивность.
- Может работать сразу по нескольким инструментам (до 3) с корреляционным фильтром, чтобы не открыть «одинаковые» позиции на связанных альтах.
- Отдельные параметры шага и TP для BTC/ETH и для альтов; аварийный тренд-стоп при сильном направленном движении.
3. Чаппи (импульсный режим)
Не маркетмейкинг, а следование импульсу: сигнал берётся с Binance Spot BTC, вход исполняется market-ордером в альты на OKX USDT-SWAP. Короткий горизонт удержания, ручной или полуавтоматический выбор символа.
В валидации бэктесты и короткие live-серии по этому режиму были убыточными, поэтому он не включается автоматически и остаётся опциональным / исследовательским.
Сменить стратегию можно только при плоских позициях — нельзя «переключить логику» поверх живого inventory.
Риск-контур
- Kill switch — останавливает торговлю при дневном убытке, просадке, превышении экспозиции или серии убыточных кругов.
- Movement guard — реакция на резкие импульсы цены на окнах 5 / 15 / 60 секунд.
- Выход из позиции: ступени breakeven → soft → hard (market), плюс опциональный trend-stop.
- Режимы оператора: Осторожный / Обычный / Агрессивный / Защитный — меняют лимиты без правки кода.
- Блокировка второго экземпляра процесса и восстановление ордеров/позиций после перезапуска.
Стек
Python 3.11, asyncio, OKX REST/WebSocket (python-okx), SQLite, локальный веб-дашборд, Telegram-бот управления, 130+ автотестов на исполнение и риск.