Документация
Полное руководство по системе FB hedgeEx — автоматическое хеджирование для OTC-обменников
1. Что такое FB hedgeEx
FB hedgeEx — B2B SaaS-платформа для OTC-обменников (USDT ↔ RUB), которая автоматически хеджирует валютный риск через биржу ABCEX.
OTC-обменник покупает/продаёт USDT клиентам по курсу, но пока сделка обрабатывается, курс может измениться — это валютный риск. При больших объёмах потери от проскальзывания могут превысить заработок на наценке.
FB hedgeEx мгновенно зеркалит каждую сделку обменника на бирже ABCEX, закрывая дельту. Обменник зарабатывает только на спреде (наценке), а валютный риск передаётся бирже.
Бизнес-модель
| Участник | Доход |
|---|---|
| Обменник | Наценка клиенту 0.3–0.7% |
| FB hedgeEx | Комиссия 0.06% от объёма |
| ABCEX | Taker fee 0.09% |
2. Инверсивный хедж
Сделка на ABCEX ВСЕГДА противоположна сделке обменника с клиентом.
Цель хеджа —
закрыть позицию, а не открыть новую.
Таблица инверсии
| Событие на кассе | USDT обменника | Хедж на ABCEX | Почему |
|---|---|---|---|
| BUY клиент даёт RUB, получает USDT |
USDT ↓ (отдали) | ASK (SELL) | Отдали USDT → продаём на бирже |
| SELL клиент даёт USDT, получает RUB |
USDT ↑ (получили) | BID (BUY) | Получили USDT → покупаем на бирже за рубли |
Пример сделки BUY
Клиент: "Хочу купить USDT за 100 000₽"
1. Обменник → берёт best_ask с ABCEX = 79.09₽/USDT
2. Считает наценку: 79.09 × 1.005 = 79.49₽ (клиентский курс)
3. Клиент получает: 100 000 / 79.49 = 1258.09 USDT
4. ХЕДЖ: SELL 1258.09 USDT на ABCEX по 79.09₽
5. Прибыль: (79.49 - 79.09) × 1258 = +503.20₽ ≈ +6.29 USDT
Режимы хеджирования
| Режим | BUY хеджируется? | SELL хеджируется? | Применение |
|---|---|---|---|
auto |
✅ | ✅ | По умолчанию — хеджируем всё |
short |
✅ | ❌ | Ожидаем падение USDT |
long |
❌ | ✅ | Ожидаем рост USDT |
off |
❌ | ❌ | Хеджирование отключено |
3. Исполнение сделок
3.1 Из терминала (Web UI)
- Оператор открывает Терминал в панели управления
- Вводит сумму в рублях (напр. 100 000)
- Система показывает котировку (курс, USDT, наценку)
- Нажимает BUY или SELL
- Система определяет сторону хеджа (инверсия) и отправляет market order на ABCEX
- Сделка записывается и появляется в истории
3.2 Из Telegram-бота
Бот рассчитывает котировку по стакану ABCEX, кассир подтверждает инлайн-кнопкой, и сделка исполняется автоматически.
| Команда | Описание |
|---|---|
/start |
Приветствие + инструкция |
/rate |
Текущий курс ABCEX (bid/ask/mid/spread) |
/buy <RUB> |
Рассчитать покупку USDT за указанную сумму RUB |
/sell <USDT> |
Рассчитать продажу указанного количества USDT |
/deal |
Записать сделку вручную |
/stats |
Статистика за сегодня |
3.3 По REST API
Для внешних систем (CRM, боты, ERP) доступен API с авторизацией по API-ключу. Подробнее — в разделе 5.
4. Подключение
📩 Подключитесь к FB hedgeEx
Для подключения к системе напишите нам в Telegram. Мы создадим ваш аккаунт, выдадим учётные данные и поможем с первыми сделками.
@fbroker в TelegramПосле подключения вам будут доступны:
Торговый интерфейс для работы с клиентами
Аналитика сделок, P&L, сетлмент хеджей
Профиль, API-ключи, расчёты комиссий
REST API для интеграции с вашими системами
5. API для интеграций
Все запросы к API требуют заголовок X-API-Key: <ваш_ключ>
API-ключ можно скопировать на странице Аккаунт
Основные эндпоинты
# Котировка перед сделкой
POST /api/v1/quote
{
"side": "BUY",
"amount": 100000,
"markup_pct": 0.5
}
# Открыть позицию — вариант 1: по USDT
POST /api/v1/positions
{
"side": "BUY",
"usdt_amount": 1258.09,
"margin_rub": 100000,
"client_ref": "order-12345"
}
# Открыть позицию — вариант 2: по RUB (система конвертирует в USDT по рынку)
POST /api/v1/positions
{
"side": "BUY",
"rub_amount": 1000000,
"client_ref": "order-456"
}
# Ответ — включает курс отправки, исполнения и проскальзывание
{
"ok": true,
"position": { "id": "a1b2c3d4-...", ... },
"hedge_order_id": "abcex-id-...",
"order_price": 85.60, // курс при отправке
"fill_price": 85.62, // фактический курс исполнения
"slippage": 0.02, // проскальзывание
"usdt_amount": 1168.22,
"rub_amount": 1000000
}
# Список позиций
GET /api/v1/positions?status=open
# Закрыть позицию
POST /api/v1/positions/{id}/close
{ "close_price": 79.50 }
| Метод | Путь | Описание |
|---|---|---|
| POST | /api/v1/positions |
Открыть позицию |
| GET | /api/v1/positions |
Список позиций |
| GET | /api/v1/positions/{id} |
Детали позиции |
| POST | /api/v1/positions/{id}/close |
Закрыть позицию |
| POST | /api/v1/positions/{id}/partial-close |
Частичное закрытие |
| POST | /api/v1/positions/{id}/margin |
Добавить маржу |
| GET | /api/v1/account/summary |
Сводка по аккаунту |
| POST | /api/v1/quote |
Котировка |
| GET | /api/v1/margin-status |
Статус маржи |
| POST | /api/v1/webhooks |
Регистрация webhook |
Лимиты и валидация
| Параметр | Значение |
|---|---|
| Минимальный ордер | 20 USDT |
| Максимальная позиция | 1 000 000 USDT |
| Минимальная прибыль | 5 000 ₽ (блокировка убыточных сделок) |
| Rate limit API | 60 req/min на ключ |
| Rate limit Nginx | 30 req/s burst 20 |
| Rate limit Login | 5 попыток/мин на IP |
Все данные сделок проходят серверную валидацию: сторона (только BUY/SELL), сумма (> 0, ≤ 1M USDT), цена (> 0). Невалидные запросы отклоняются с ошибкой 422.
6. Безопасность и инфраструктура
HTTPS & SSL
Весь трафик зашифрован через TLSv1.3 (AES-256-GCM-SHA384) с SSL-сертификатом Let's Encrypt. HTTP/2 для максимальной скорости. HTTP → HTTPS автоперенаправление.
| Защита | Статус | Детали |
|---|---|---|
| TLS | ✅ TLSv1.3 | AES-256-GCM-SHA384 (военный уровень) |
| HSTS | ✅ 1 год | includeSubDomains — браузер запоминает HTTPS |
| X-Frame-Options | ✅ DENY | Защита от clickjacking |
| XSS Protection | ✅ Active | X-XSS-Protection + X-Content-Type-Options |
| SSL Certificate | ✅ Auto | Let's Encrypt + автообновление certbot |
Аутентификация (Dual Auth)
Система поддерживает два способа авторизации на всех защищённых эндпоинтах:
| Способ | Когда используется | Детали |
|---|---|---|
| JWT Cookie | Admin-панель, терминал | HttpOnly + Secure + SameSite=Strict, 24ч expiry, bcrypt cost-12 |
| API Key | Внешние системы обменников | Заголовок X-Api-Key, 192-бит энтропии (48 hex символов) |
Multi-Tenant изоляция
- Каждый обменник имеет уникальный
exchanger_id - Все запросы к данным фильтруются по
exchanger_id— кросс-тенантный доступ невозможен - ABCEX credentials зашифрованы Fernet AES-128 в PostgreSQL
- Rate limiting: 3 уровня (60/min per-key + 30/s nginx + 5/min login)
- API-ключи маскируются в логах (
hv_a1b2c3***) - Все API-запросы логируются: IP, метод, путь, статус, latency, exchanger
- ABCEX соединение: retry 3× с exponential backoff (0.5/1/2s)
- Бекапы PostgreSQL каждые 6ч, 14 дней retention
Мониторинг и алерты
Система автоматически отслеживает критические ошибки и отправляет Telegram-алерты администратору при обнаружении проблем.
| Мониторинг | Что отслеживает | Алерт |
|---|---|---|
| Watchdog | ABCEX ошибки, DB failures, OOM, сеть | Telegram при 3+ ошибках за 60с |
| Health Check | API сервер + PostgreSQL + ABCEX | Docker auto-restart при сбое |
| Audit Log | Все API запросы (IP, ключ, метод, статус) | Файл (10MB×5) + PostgreSQL |
Для дополнительной защиты можно включить HMAC-подписи запросов с защитой от replay-атак (±30 секунд). Обратитесь к администратору для получения HMAC secret.
7. FAQ
Торговля
off в настройках хеджирования.Финансы
Объём USDT × 0.06%. При объёме 10 000 USDT → комиссия = 6 USDT.
Отображается на странице Аккаунт → "Расчёты".Подключение
Остались вопросы?
Мы всегда на связи и готовы помочь с настройкой и интеграцией.
Написать в @fbroker