spread-terminal

Spread Terminal

Арбитражный терминал для торговли спредов на криптовалютных фьючерсах.

Стек

Структура

spread-terminal/
├── apps/
│   ├── terminal-backend/    # API + WS сервер + торговая логика
│   └── terminal-frontend/   # React SPA терминала
├── packages/
│   ├── shared/              # общие типы
│   └── exchanges/           # адаптеры бирж
└── docker-compose.yml       # Postgres + Redis для разработки

Запуск (development)

Требования: Node 22+, pnpm 10+, Docker.

# 1. Установить зависимости
pnpm install

# 2. Скопировать .env
cp .env.example .env

# 3. Поднять Postgres + Redis
pnpm infra:up

# 4. Запустить backend и frontend в watch-режиме
pnpm dev

Market data API (Фаза 1)

Backend подписан на best bid/ask по фьючерсам Binance / Bybit / MEXC / BingX.

Endpoint Что возвращает
GET /api/market/health Статус каждого адаптера: connected, tickers/sec, total, reconnects
GET /api/market/symbols?exchange=binance Список нативных символов фьючерсов
GET /api/market/ticker?exchange=binance&symbol=BTCUSDT Лучшие bid/ask + ts

Поддерживаемые exchange: binance, bybit, mexc, bingx. Символы — каноничные (BTCUSDT).

Особенности по биржам:

Команды

Команда Что делает
pnpm dev Запустить backend + frontend в watch-режиме
pnpm build Сборка всех пакетов
pnpm type-check Проверка типов во всём монорепо
pnpm infra:up Запустить Postgres + Redis
pnpm infra:down Остановить инфру
pnpm infra:logs Логи инфры

Roadmap

# Фаза Статус
0 Скелет монорепо
1 Market data 4 бирж (WS)
2 Скринер спредов
3 Settings + балансы
4 Торговые карточки (paper)
5 История и P/L
5b Billing engine
6 Demo-режим (multi-tenant, paper)
7a ЛК + партнёрский кабинет в терминале
7b Портал + TG-бот + лендинг
8 Provisioning Hetzner
9 Крипто-платежи (CryptoCloud)