ТЗ: DeFi Arbitrage Analyzer (черновик)¶
Автор: агент, 08.08.2026 (текущая задача DEF-01; прежний ID 44) Статус: черновик v0.1 — ждёт утверждения владельца Владелец: Роман Головин
⚠️ ЧЕРНОВИК. ТЗ написано агентом по общим паттернам DeFi-арбитража и контексту KB. Требует прочтения и правок под конкретную бизнес-модель. Особенно секции «Стратегии», «Риски», «Метрики» — их надо согласовать с реальным опытом трейдера.
1. Контекст и бизнес-задача¶
Что уже есть у пользователя:
- Начинающий трейдер (уровень «уровни/поддержки»)
- Опыт P2P на Bybit (см. projects/crypto-p2p-exchange)
- VPS Hostkey (используется как выход в интернет из РФ)
- AmneziaVPN для доступа к заблокированным сервисам
- Технический стек: Python, Node.js, Docker, Postgres
Что хочется: - Инструмент, который в фоне мониторит рынок и подсказывает арбитражные возможности — не автоматический трейд-бот, а именно аналитический помощник (сначала). - Data-driven принятие решений: не «наугад», а на цифрах. - Возможность позже дорастить до полу-автоматической торговли.
Что НЕ входит в MVP: - Автоматическое исполнение сделок (только уведомления) - HFT / арбитраж миллисекундного масштаба - Работа с фиатом напрямую (только крипта ↔ крипта) - Публичный сервис для других людей (только personal use)
2. Определение арбитражных возможностей¶
Три класса возможностей, за которыми смотрит analyzer:
2.1 · CEX-CEX арбитраж¶
Разница цены одного и того же актива на разных биржах.
- Пример: BTC/USDT на Bybit — $65 000, на MEXC — $65 200. Спред 0.3%.
- Проблема: комиссии + время депонирования съедают маржу
- Реалистичный порог: 0.5-1% чистого спреда после всех издержек
- Кандидаты в биржи: Bybit (уже есть аккаунт), MEXC, BingX, Gate.io,
OKX. Все работают из РФ через VPN.
2.2 · Funding rate арбитраж (perp-spot)¶
Long/short позиции по фьючерсам + spot для нейтрализации рыночного риска. - Работает когда funding rate > 0.03% × 3 × 365 = ~33% годовых - Меньше зависит от волатильности - Требует: маржинальный аккаунт, понимание перп-фьючерсов
2.3 · Triangle арбитраж внутри одной биржи¶
Замкнутая цепочка обмена: USDT → BTC → ETH → USDT. - Реже даёт возможности (боты выедают за секунды) - Хорошо для обучения: показывает как биржа котирует cross-пары
Приоритет для MVP: 2.1 (CEX-CEX) — легче реализовать, легче понять.
3. Функциональные требования MVP¶
3.1 · Data collection (сборщик)¶
Что собираем: - Order book top-10 бидов и асков для каждой торговой пары - Спот-цены - Комиссии биржи (депозит, вывод, торговля) — редко меняются, обновляем 1 раз в день - Скорость подтверждения депозита/вывода — важно для CEX-CEX (если TRC20 подтверждается 30 сек, а BTC-сеть — 30 минут, окно закрывается)
Как собираем: - WebSocket-подписки на order book (Bybit, MEXC, BingX) - REST fallback для случаев когда WS падает - Rate limits: у Bybit 120 req/min, у MEXC 20 req/sec — уложиться
Где храним: - Postgres + TimescaleDB extension (для time-series данных) - Retention: order book snapshots — 7 дней; агрегированные спреды — 90 дней; найденные возможности — вечно
3.2 · Analyzer (движок)¶
Что делает:
- Каждые 1-5 секунд пересчитывает CEX-CEX спреды для всех пар
- Учитывает чистый спред: (price_high - price_low) / price_low - fee_taker × 2 - deposit_fee - withdrawal_fee
- Проверяет ликвидность: спред не считается если объём в топ-3 бидах/асках меньше $500
- Проверяет доступность депозита/вывода: если Bybit временно отключил вывод USDT в TRC20 — пропускаем
Пороги: - Info — спред > 0.5% чистого (просто в логах) - Warn — спред > 1% (in-app уведомление в Perplexity) - Alert — спред > 2% (Telegram-пуш + звук)
3.3 · Alerts (уведомления)¶
- Telegram-бот (свой, через
@BotFather) — отправляет в приватный чат - In-app в Perplexity Computer через
send_notification - Расписание: 24/7, но с настраиваемым «тихим часом» (например, 00:00-07:00 MSK — только Alert-уровень)
3.4 · UI (dashboard)¶
- Простой web-интерфейс (React/Vite, интегрирован в
alatyr-serviceили отдельно) - Реалтайм-таблица топ-20 текущих спредов
- История найденных возможностей за последние 24 часа
- Настройки: список отслеживаемых пар, пороги, включённые биржи
Опционально в MVP: ежедневный email-дайджест «Топ-10 возможностей за сутки».
4. Технический стек¶
Backend¶
- Node.js/TypeScript — единый стек с
alatyr-service - Bun или tsx для запуска
- WebSocket клиенты —
wsnpm package - Крон-задачи —
node-cronдля периодических аудитов - Альтернатива: Python (asyncio + websockets) — но потянет второй стек
Data layer¶
- Postgres 16 (тот же контейнер что для CRM, разные схемы)
- TimescaleDB — расширение для time-series
- Redis — для in-memory кеша топ-цен (последние 100 обновлений)
API-клиенты¶
- ccxt — универсальная либа для всех бирж (Node.js + Python versions есть)
- Плюсы: одинаковый интерфейс для 100+ бирж
- Минусы: не всегда полная поддержка WebSocket (для WS часто нужны свои клиенты)
Инфра¶
- Docker Compose на ragserver (192.168.1.200)
- Один контейнер сборщика + один анализатор + Postgres + Redis
- VPN — AmneziaWG для доступа к CEX API из РФ (сейчас Bybit, MEXC доступны, но нестабильно)
- Мониторинг — Uptime Kuma (задача 28) следит за WebSocket-коннектами
Structure¶
/opt/defi-analyzer/
├── docker-compose.yml
├── .env
├── data/
│ ├── postgres/
│ └── redis/
├── collector/ # WebSocket-сборщик (Node.js)
├── analyzer/ # движок анализа спредов
├── notifier/ # Telegram + Perplexity уведомления
├── dashboard/ # React UI (опционально в MVP)
└── docs/
└── strategies.md
5. Разработка — этапы¶
Этап 0 · Ресёрч (1 неделя, 5-10 часов)¶
- Прочитать документацию API 3-4 бирж (Bybit, MEXC, BingX, Gate.io)
- Изучить
ccxt— какие биржи поддерживают WebSocket order book - Сделать таблицу комиссий (spot taker/maker, депозит, вывод) — важно для расчёта чистого спреда
- Понять «горячие пары» — что торгуется много и волатильно (BTC/USDT, ETH/USDT, SOL/USDT, топ-10 альткоинов)
Этап 1 · MVP-сборщик (1 неделя, 10 часов)¶
- Скелет TypeScript-проекта + docker-compose
- Postgres со схемой для orderbook_snapshots
- WebSocket-подписка на Bybit BTC/USDT
- Дописать: MEXC, BingX (те же пары)
- Логи + Uptime Kuma push URL
Этап 2 · Analyzer (3-5 дней, 8 часов)¶
- Расчёт чистого спреда с учётом комиссий
- Проверка ликвидности (топ-3 уровня стакана)
- Пороги info/warn/alert
- Запись найденных возможностей в БД
Этап 3 · Notifications (2 дня, 4 часа)¶
- Telegram-бот через
@BotFather - Формат сообщений (пара, спред, объём, ссылки на биржи)
- «Тихий час» через настройки
Этап 4 · Dashboard (опционально, 1 неделя, 10 часов)¶
- React/Vite базовый UI
- Реалтайм через WebSocket от собственного backend
- Nginx-прокси на
defi.alatyr-service.ru
Этап 5 · Ретро и рефайн (1 неделя после первого месяца работы)¶
- Анализ найденных возможностей: сколько реально исполнимо?
- Настройка порогов
- Расширение на новые биржи или новые стратегии (funding-rate арбитраж)
Итого MVP: 3-4 недели работы по вечерам (~40 часов).
6. Метрики успеха¶
MVP считается работающим когда: - 24/7 uptime сборщика > 95% - Найдено ≥ 20 возможностей уровня «warn» в неделю - Ложных срабатываний < 20% (проверка вручную) - Расчёт спреда не расходится с ручной проверкой > 0.05%
Через 3 месяца работы: - Оценить: сколько возможностей были реально исполнимы (с учётом времени, ликвидности, отсутствия проскальзывания)? - Если > 5 в неделю уверенно исполнимы → рассмотреть автоматизацию торговли - Если < 2 в неделю → пересмотреть стратегии или добавить биржи
7. Риски¶
7.1 · Технические¶
- API-блокировки — CEX могут заблокировать российские IP. VPN AmneziaWG частично решает, но не полностью
- WebSocket-стабильность — регулярные разрывы, нужен reconnect + failover на REST
- Rate limits — при подписке на много пар легко упереться
- База данных распухает — time-series данные растут быстро, retention критичен
7.2 · Бизнес / регуляторные¶
- Российское законодательство: торговля криптой физлицом не запрещена, но налоги (13-15% НДФЛ с прибыли) — обязательны
- KYC на биржах: Bybit требует passport, MEXC/BingX пока лояльнее
- Санкции: ряд бирж (Coinbase, Kraken) закрывают аккаунты российских резидентов
- Fiat-переводы: отдельная головная боль. P2P на Bybit пока работает, но SBP-платежи (Fast Payment System) периодически ограничивают
7.3 · Финансовые¶
- Проскальзывание: ты видишь спред 1%, начинаешь исполнять — цена уплывает
- Депозитная блокировка: при переводе USDT между биржами капитал заморожен 5-30 минут
- Fee escalation: некоторые биржи меняют комиссии без предупреждения
Митигация: - Не начинать торговать раньше чем 1 месяц собирал данные вхолостую - Стартовый капитал только тот, который не жалко потерять - Правило: если инструмент показывает возможность, но ты не понимаешь ПОЧЕМУ спред такой большой — значит его исполнить не получится
8. Открытые вопросы (обсудить с владельцем)¶
- Какой стартовый капитал? — определяет доступные объёмы, минимальные пороги спреда, выбор бирж
- Готов ли к KYC на 3-4 биржах? — необходимо для крупных объёмов
- Есть ли предпочтение по стратегиям? — только CEX-CEX или сразу funding-rate?
- Автоматическая торговля когда-либо? — влияет на архитектуру: аудит-логи, kill-switch, position sizing
- Хочется ли модель дообучения? — например, ML-предсказание длительности возможности до её закрытия ботами
- Backup-план если Bybit заблокирует РФ полностью? — TrustWallet + on-chain arbitrage?
9. Что НЕ делать в MVP¶
- ❌ Автоматическое исполнение сделок
- ❌ Работа с DeFi-протоколами on-chain (Uniswap, PancakeSwap) — отдельная сложность
- ❌ Собственный orderbook matching engine
- ❌ Публичный API для других
- ❌ Мобильное приложение
- ❌ Интеграция с российскими банками напрямую
Эти вещи стоит рассматривать только после стабильной 3-месячной работы MVP.
10. Связь с другими системами Alatyr¶
Использует:
- Postgres (тот же контейнер что CRM, схема defi)
- Ragserver (192.168.1.200) — hosting
- AmneziaWG VPN — API-доступ к биржам
- Uptime Kuma — мониторинг сборщика
- Telegram-бот — уведомления (общий с backup-скриптами и Uptime Kuma)
Не пересекается с:
- alatyr-service CRM — совсем другой домен
- Vaultwarden — только хранение API-ключей бирж
- Open WebUI / RAG — DeFi-analyzer не использует LLM для решений
Возможные будущие интеграции: - LLM-помощник для интерпретации возможностей — «этот спред 3% на MEXC, скорее всего связан с недавним листингом токена X, риск высокий» - Автоматический дневник трейдера в CRM (учёт прибылей/убытков)
Что дальше¶
Владельцу (Роман): 1. Прочитать этот черновик, пройтись по секциям 2-7 2. Ответить на вопросы из секции 8 3. Уточнить: какие биржи приоритетны? Какие стратегии? 4. Утвердить: приступаем к Этапу 0 (ресёрч)?
Агенту (следующая итерация):
1. Обновить ТЗ по ответам владельца
2. Написать детальный план Этапа 0 (какие endpoint читать, какие таблицы комиссий составить)
3. Сгенерировать скелет проекта: defi-analyzer/docker-compose.yml, collector/index.ts, schemas
История версий¶
- v0.1 (08.08.2026) — первый черновик агента, ждёт правок владельца
Файл сгенерирован в задаче 44 · Alatyr Infrastructure