Система для внебиржевых сделок с криптовалютами
Крупный трейдер хочет купить $15M Bitcoin — на бирже такой ордер сдвинет стакан на 3-5%, и сделка станет видна HFT-ботам. Результат: переплата в сотни тысяч долларов и утечка стратегии. Собственная OTC-система решает обе проблемы: фиксированная цена на весь объём и полная конфиденциальность. Мы построили не одну такую платформу для фондов и брокеров, и знаем все подводные камни.
Какие проблемы решает OTC-система?
Price impact — главный враг крупного трейдера. На бирже ордер на $10M+ сдвигает рыночную цену на 2-5%. Трейдер сам себе поднимает цену при покупке (самопоедание ликвидности). Кроме того, информация о сделке утекает через мемпул — MEV-боты фронтранят, увеличивая проскальзывание. Переплата на ордер $10M на CEX может достигать $500 000, тогда как на OTC-деске — менее $50 000. Для криптотрейдинга крупных объёмов OTC — единственный способ избежать проскальзывания.
Конфиденциальность — неопционное требование. Institutional crypto клиенты не могут раскрывать свои позиции. OTC-деск скрывает клиентов друг от друга и не публикует объёмы сделок. В OTC торговле цена фиксируется на весь объём, а RFQ протокол позволяет запрашивать котировки у нескольких провайдеров.
Риск неисполнения. Контрагент может отказаться от сделки после движения рынка. Мы минимизируем это через атомарные свопы и block-lock контракты. Сравните с DEX: там сделка гарантирована смарт-контрактом, но ликвидность ограничена. OTC-деск даёт и гарантию, и глубокую ликвидность. По оценкам, OTC-деск лучше CEX в 10 раз для крупных сделок.
| Критерий | OTC Desk | CEX (Binance) | DEX (Uniswap) |
|---|---|---|---|
| Price impact для $10M | 0.1-0.5% | 2-5% | >10% (при низкой ликвидности) |
| Конфиденциальность | Полная | Публичный order book | Публичный mempool |
| Гарантия исполнения | Атомарный своп | Match engine | Smart contract |
| Скорость | 30-60 сек | Мгновенно | Блок (12-15 сек) |
OTC-деск — единственный вариант для сумм >$5M, где price impact недопустим. Закажите разработку OTC-системы и получите консультацию инженера — оценим ваш проект за 1 день.
Как работает ценообразование?
Мы используем движок, который динамически рассчитывает спред:
- Базовая ширина: 10 bps для BTC, 15 для ETH, 25 для альткоинов.
- Премия за размер: +3 bps на каждый миллион свыше $1M.
- Дисконт за VIP-статус: до -5 bps.
Котировка блокируется на 45 секунд — клиент обязан принять или отклонить. Пример: клиент покупает 2000 ETH (около $4M) с mid-market ценой $2000. Базовый спред 15 bps + премия за размер 9 bps (=$3M сверх $1M * 3) = 24 bps. Итоговая цена: $2000 * (1 + 0.0024) = $2004.80. Сравнение: если бы тот же ордер был на CEX, price impact составил бы около 3%, то есть цена $2060 — разница в 2.76%. OTC выгоднее в 10 раз.
from dataclasses import dataclass from decimal import Decimal from datetime import datetime, timedelta import uuid @dataclass class OTCQuote: quote_id: str client_id: str symbol: str side: str # 'buy' | 'sell' quantity: Decimal price: Decimal total_value: Decimal spread_bps: int # спред от mid-market expires_at: datetime status: str = 'pending' # pending / accepted / rejected / expired class OTCDeskService: def __init__(self, pricing_engine, risk_manager): self.pricing = pricing_engine self.risk = risk_manager async def request_quote( self, client_id: str, symbol: str, side: str, quantity: Decimal ) -> OTCQuote: # Проверяем лимиты клиента client = await self.db.get_client(client_id) notional = await self.pricing.estimate_notional(symbol, quantity) if notional > client.otc_limit: raise LimitExceeded(f"Exceeds client OTC limit: {client.otc_limit}") # Получаем mid-market price mid_price = await self.pricing.get_mid_price(symbol) # Рассчитываем спред на основе размера и ликвидности spread_bps = self.calculate_spread(symbol, quantity, notional, client.tier) if side == 'buy': offer_price = mid_price * (1 + Decimal(spread_bps) / 10000) else: offer_price = mid_price * (1 - Decimal(spread_bps) / 10000) quote = OTCQuote( quote_id=str(uuid.uuid4()), client_id=client_id, symbol=symbol, side=side, quantity=quantity, price=offer_price.quantize(Decimal('0.01')), total_value=(offer_price * quantity).quantize(Decimal('0.01')), spread_bps=spread_bps, expires_at=datetime.utcnow() + timedelta(seconds=45) ) await self.db.save_quote(quote) return quote def calculate_spread( self, symbol: str, quantity: Decimal, notional_usd: Decimal, client_tier: str ) -> int: base_spread = { 'BTC': 10, # 10bps базовый для BTC 'ETH': 15, 'SOL': 25, }.get(symbol.replace('USDT', ''), 50) # Размер влияет на спред: больше → шире size_premium = max(0, int((notional_usd / 1_000_000 - 1) * 3)) # Клиентский тир снижает спред tier_discount = {'vip': 5, 'premium': 3, 'standard': 0}.get(client_tier, 0) return base_spread + size_premium - tier_discount Как выбрать settlement?
| Вариант | Время | Применение |
|---|---|---|
| T+0 (same-day) | День сделки | Залог или DvP-смарт-контракт |
| T+1 (next-day) | Следующий день | Стандарт для институционалов |
| Atomic swap | Мгновенно | Крипто-крипто сделки |
Atomic swap — самый безопасный: смарт-контракт удерживает активы обеих сторон и исполняет обмен атомарно. Если одна сторона не выполняет обязательства — контракт не срабатывает. Атомарный своп в 100 раз надёжнее традиционного T+0 settlement по вероятности отказа (0.01% против 1%). Подробнее об атомарных свопах читайте в Wikipedia.
Compliance: неотъемлемая часть
OTC-сделки от $10,000 требуют KYC/AML во всех серьёзных юрисдикциях. Мы встраиваем: corporate KYC (учредители, UBO), source of funds проверку, AML-скрининг адресов, ежегодный risk-rating. Платформа с правильным compliance открывает доступ к премиальным клиентам: банкам, фондам, institutional crypto players. Маржинальность таких сделок — в 3-5 раз выше retail-сегмента.
Типичные ошибки при запуске OTC-деска
- Недостаточная агрегация ликвидности. Полагаться только на собственный инвентарь — риск неисполнения крупных ордеров. Нужны интеграции с CEX OTC-десками (Binance, Cumberland) и другими маркет-мейкерами.
- Слишком длинный lock period. 45 секунд оптимально, больше — риск рыночного движения против вас.
- Отсутствие автоматического хеджа. Если клиент покупает, а вы продаёте из инвентаря, нужно сразу хеджировать позицию на фьючерсах.
- Слабое тестирование сценариев. Проверяйте concurrent RFQ, частичное исполнение, отказы. Используйте Foundry для контрактов и pytest для бэкенда.
- Игнорирование compliance с первого дня. Внедряйте KYC/AML до запуска, иначе рискуете потерять лицензию.
Что входит в работу
- Проектная документация (архитектура, API-спецификация)
- Исходный код с тестами (unit, integration, stress)
- Интеграция с биржами и внешними провайдерами ликвидности
- Настройка мониторинга и алертов (Tenderly, Grafana)
- Передача доступов и обучение команды заказчика
- Гарантийная поддержка 3 месяца после запуска
Наш опыт
Мы — команда инженеров с 5+ лет опыта в криптотрейдинге и смарт-контрактах. Реализовали 8 OTC-платформ для клиентов из Европы и Азии. Используем проверенный стек: Python/Node.js для бэкенда, Solidity/Vyper для контрактов, Foundry/Hardhat для тестирования. Соблюдаем стандарты безопасности: формальная верификация критических контрактов, аудит кода сторонними фирмами.
Как начать?
Если вы работаете с крупными ордерами и хотите снизить price impact — оценим ваш проект за 1 день. Просто свяжитесь с нами, опишите объёмы и требования. Мы предложим архитектуру и сроки. Никакого маркетинга — только инженерное решение вашей задачи. Получите консультацию — мы покажем, как выглядит OTC-система под ваши задачи.







