SharapovLab Trader: мультибиржевая криптотрейдинговая платформа
Платформа алгоритмической торговли, работающая вживую сразу на пяти биржах: веб-терминал на React 19, бот-сервер на Node.js, торговые боты на Python, событийная шина Kafka и PostgreSQL под капотом.
Founder / Full Stack Developer
Обновлено 2026-07-29 · v4
Обзор
SharapovLab Trader построен вокруг веб-терминала на React 19, бот-сервера на Node.js/Express и флота торговых ботов на Python, которые торгуют вживую одновременно на пяти биржах: Bybit, MEXC, Gate.io, BingX и HTX. Apache Kafka и PostgreSQL лежат в основе как система записи, так что ни один сторонний SaaS не сидит на критичном пути.
Проблема
Запуск автоматических стратегий на нескольких биржах обычно означает дублирование логики исполнения под каждый биржевой SDK. Нет единого места, где видно позиции, риск, исполнения и состояние ботов сразу по всем площадкам, а когда что-то ломается, зачастую нет и надёжного журнала событий, объясняющего, что произошло.
Решение
Вместо этого всё идёт через один бот-сервер. Боты на Python, построенные на ccxt, торгуют вживую или в режиме paper/Monte Carlo, риск-события и исполнения проходят через Kafka в PostgreSQL, а React-дашборд даёт единую панель по всем ботам, ключам бирж и позициям сразу. За всем стеком следят Prometheus и Grafana.
Архитектура
- React 19
- TypeScript
- Vite
- Node.js
- Express
- Apache Kafka
- PostgreSQL
- Python
- ccxt
- Docker
- Kubernetes
- Prometheus
- Grafana
- OpenAI API
- Bybit API
- MEXC API
- Gate.io API
- BingX API
- HTX API
Веб-терминал работает на React 19, TypeScript и Vite и покрывает управление ботами, настройки бирж, живые графики, отслеживание ликвидаций и AI-анализ сделок. Бот-сервер (Node.js/Express) занимается собственной JWT-авторизацией — access-токен хранится в памяти, refresh лежит в httpOnly-cookie, — а также оркестрацией процессов ботов, зашифрованным хранением ключей бирж, WebSocket-стримингом и эндпоинтом Prometheus /metrics.
Торговые боты на Python (ccxt, NumPy) поддерживают режимы live, paper и Monte Carlo, используя общую библиотеку риск-контроля и расчёта размера позиции, чтобы логика не расходилась между режимами. Apache Kafka в режиме KRaft выступает событийной шиной, а отдельные консьюмеры сохраняют риск-события и исполнения в PostgreSQL, который служит единственным источником истины с партиционированными по времени миграциями для свечей, ордеров, исполнений и риск-событий. Прокси на OpenAI (GPT-4o-mini) отвечает за AI-анализ сделок и скриншотов графиков.
Манифесты Docker и Kubernetes покрывают бот-сервер, фронтенд, Kafka-консьюмеры, Prometheus и Grafana, а профиль Docker Compose закрывает локальный Postgres и Kafka без необходимости в кластере. Исполнение ордеров идёт напрямую через API Bybit, MEXC, Gate.io, BingX и HTX. Хранилище бот-сервера работает на Kubernetes PersistentVolumeClaim вместо временного тома, а ключи бирж привязаны к конкретному пользователю, так что редеплой пода или второй вошедший аккаунт не могут сбросить конфиг бота или случайно торговать чужими ключами. Когда бот-сервер работает внутри кластера, стратегии запускаются как нативные Kubernetes Jobs, а не просто дочерние процессы.
Возможности
- Единый веб-терминал для пяти бирж вместо отдельного инструмента под каждую площадку.
- Собственная система авторизации (bcrypt плюс JWT access/refresh), без стороннего провайдера аутентификации.
- Усиленная регистрация: проверка hCaptcha, обязательные требования к паролю, лимит запросов по IP и редактируемое отображаемое имя прямо в шапке дашборда.
- Событийный конвейер на Kafka для риск-событий и исполнений, полностью отделённый от пути запроса.
- Аналитика портфеля: Sharpe, Sortino, Max Drawdown и Value-at-Risk, с точным PnL по каждой сделке, рассчитанным из объёма и размера контракта и переданным напрямую в риск-контроль.
- Изоляция ключей бирж по пользователям и постоянное хранилище ботов — конфиги и учётные данные переживают редеплой пода и остаются привязаны к своему реальному владельцу.
- AI-анализ сделок и скриншотов графиков через OpenAI.
- Метрики Prometheus и дашборды Grafana из коробки, без дополнительной настройки.
- Скрипты деплоя в Kubernetes для полного локального или облачного развёртывания, стратегии работают как нативные Kubernetes Jobs внутри кластера.
Технологии
- React 19
- TypeScript
- Vite
- Node.js
- Express
- Apache Kafka
- PostgreSQL
- Python
- ccxt
- Docker
- Kubernetes
- Prometheus
- Grafana
- OpenAI API
- Bybit API
- MEXC API
- Gate.io API
- BingX API
- HTX API
Галерея
Скриншоты готовятся и появятся здесь через дашборд.
Видео
Roadmap
Мультибиржевой бот-сервер + веб-терминал на React
Событийная шина Kafka + хранение в PostgreSQL (Supabase/Privy убраны)
Деплой в Kubernetes + мониторинг Prometheus/Grafana
Изоляция ключей бирж по пользователям, постоянное хранилище ботов, усиленная регистрация (hCaptcha, лимит запросов)
Расширение покрытия стратегий и облачный роллаут (AWS EKS/RDS/MSK)
Сложности
Пять бирж — это пять разных форматов API, пять разных лимитов запросов, пять разных вариантов семантики ордеров, и сохранение согласованной логики исполнения по всем ним потребовало реальной работы. Вдобавок платформе пришлось мигрировать со стороннего SaaS для авторизации и данных на самостоятельно хостящиеся PostgreSQL и Kafka без простоя по пути.
Уроки
Тестовый деплой через Kubernetes Jobs вскрыл сразу две уязвимости. Замена пода бот-сервера сбрасывала конфиг testnet/paper у бота, потому что этот конфиг жил на временном томе вместо чего-то постоянного. Хуже того, ключи бирж ещё не были привязаны к конкретному пользователю, поэтому следующий запуск начал вживую торговать реальным ключом, принадлежащим совсем другому аккаунту. Позицию заметили и закрыли вручную прежде, чем это стало настоящей проблемой, но это хороший урок: инфраструктурные допущения, которые «работают локально» — общие тома, общие ключи — превращаются в реальный финансовый риск в тот момент, когда в картину входят несколько аккаунтов или перезапуски подов.
Будущее
Завершение продакшн-роллаута в AWS (EKS/RDS/MSK) и расширение покрытия стратегий и мониторинга на подключённых биржах.
GitHub
Приватный репозиторий с проприетарной лицензией. Публичного кода нет.
Демо
Публичного демо нет. Платформа торгует на приватных счетах.
FAQ
Какие биржи поддерживает SharapovLab Trader?
Bybit, MEXC, Gate.io, BingX и HTX — все через один бот-сервер и один веб-терминал.
На чём работают торговые боты?
Боты на Python на базе ccxt, работающие в режиме live, paper или Monte Carlo, с общей библиотекой риск-контроля.
Как хранятся данные?
PostgreSQL — единственный источник истины. Kafka передаёт риск-события и исполнения выделенным консьюмерам, которые пишут их в Postgres.
Код открыт?
Нет, это приватный репозиторий с проприетарной лицензией.