Реализация маржинальной торговли в мобильном приложении биржи
Мы разрабатываем мобильные приложения для бирж с поддержкой маржинальной торговли под ключ. Маржинальная торговля — высокорисковый инструмент: пользователь вносит залог (маржу), а биржа предоставляет кредитное плечо 3x, 5x или 10x. Прибыль и убытки рассчитываются от полного объёма позиции, а не от залога. Если убыток приближается к сумме маржи — биржа принудительно закрывает позицию (liquidation). В мобильном приложении критично точно отображать эти риски в реальном времени: даже секундная задержка в обновлении цены может привести к неожиданной ликвидации. Наши инженеры с 6-летним опытом в финансовых приложениях реализуют надёжную систему управления маржой, соответствующую требованиям регуляторов и лучшим практикам безопасности. Мы гарантируем качество кода и соблюдение NDA.
Маржинальные аккаунты: Isolated и Cross
Два режима маржи с принципиально разной логикой:
Cross Margin — весь баланс маржинального счёта служит залогом для всех позиций. Одна позиция «съедает» маржу другой. Liquidation price рассчитывается для всего счёта.
Isolated Margin — каждая торговая пара имеет отдельный изолированный маржинальный кошелёк. Максимальный убыток ограничен суммой в этом кошельке. Для мобильного UX изолированная маржа проще: пользователь понимает, что теряет только то, что внёс на конкретную пару. Изолированная маржа даёт пользователю чёткое понимание максимального убытка, в отличие от Cross Margin, где одна позиция может потянуть за собой весь счёт. На практике это снижает число обращений в поддержку на 30%.
UI должен явно разграничивать эти два режима. Переключатель с кратким объяснением (тултип или bottom sheet с примером) — обязателен.
Как рассчитывается Liquidation Price?
Liquidation Price — ключевой индикатор для маржинальной позиции. Пользователь должен видеть его прямо в интерфейсе до открытия позиции.
Формула для ISOLATED LONG (упрощённая для Binance):
LiquidationPrice = EntryPrice × (1 - 1/Leverage + MaintenanceMarginRate) Maintenance Margin Rate для большинства пар Binance: 0.5–1.5% в зависимости от тира.
// iOS — расчёт liquidation price для изолированной long-позиции struct MarginPositionCalculator { static func liquidationPriceLong( entryPrice: Decimal, leverage: Int, maintenanceMarginRate: Decimal = 0.005 ) -> Decimal { let leverageDecimal = Decimal(leverage) return entryPrice * (1 - 1 / leverageDecimal + maintenanceMarginRate) } static func liquidationPriceShort( entryPrice: Decimal, leverage: Int, maintenanceMarginRate: Decimal = 0.005 ) -> Decimal { let leverageDecimal = Decimal(leverage) return entryPrice * (1 + 1 / leverageDecimal - maintenanceMarginRate) } } Liquidation price нужно обновлять при каждом изменении размера плеча или суммы маржи. Показывать его красным цветом с процентом расстояния от текущей цены — «Ликвидация в 14.3% от текущей».
Что такое Margin Ratio и как он сигнализирует о риске?
Margin Ratio = Обслуживаемая маржа / Капитал счёта × 100%.
- Ниже 100% — счёт в норме
- 80–100% — жёлтая зона, push-уведомление «Внесите дополнительную маржу»
- Выше 100% — принудительное закрытие позиций (liquidation)
На экране открытой позиции — прогресс-бар Margin Ratio с цветовой градацией (зелёный → жёлтый → красный). WebSocket обновляет баланс и P&L в реальном времени.
Заём и погашение
Работа с маржинальным займом — отдельный flow:
-
Заём (Borrow): пользователь указывает сумму и валюту. Биржа возвращает
tranId. Интерфейс показывает доступный лимит займа, текущую процентную ставку (hourly/annual), максимально доступную сумму. -
Погашение (Repay): сначала погашаются проценты, потом тело долга. Кнопка «Погасить всё» рассчитывает полную сумму к погашению включая начисленные проценты.
На Binance API: POST /sapi/v1/margin/loan и POST /sapi/v1/margin/repay. Ставки доступны через GET /sapi/v1/margin/interestRateHistory.
Уведомления и алерты рисков
Маржинальная торговля требует проактивных уведомлений:
- Margin Ratio > 75% → push «Приближаетесь к ликвидации на BTC/USDT»
- Маржинальный займ начислил проценты > X USDT → периодическое напоминание
- Позиция принудительно закрыта → немедленный push с суммой убытка
Firebase Cloud Messaging с high priority для уведомлений о ликвидации — APNs apns-priority: 10, FCM priority: high. Обычный priority может задержать доставку на несколько минут, что критично при маржинальной торговле.
Что входит в разработку маржинального модуля?
- Документация по интеграции с биржей (REST API + WebSocket)
- Реализация режимов Isolated и Cross Margin
- Расчёт Liquidation Price и Margin Ratio с real-time обновлением
- Интерфейс открытой позиции с PnL и прогресс-баром риска
- Push-уведомления о ликвидации и margin call
- Тестирование на исторических данных и симуляция стресс-сценариев
- Обучение команды заказчика и сопровождение после запуска
Интерфейс открытой позиции
Карточка открытой позиции должна показывать:
| Поле | Обновление |
|---|---|
| Unrealized PnL (USDT и %) | Real-time WebSocket |
| Liquidation Price | При изменении маржи |
| Margin Ratio | Real-time |
| Leverage | Статично при открытии |
| Entry Price / Mark Price | Real-time |
Mark Price (честная цена по индексу) — важно отличать от Last Price. Именно по Mark Price считается PnL и liquidation, не по Last Price.
Сроки и масштаб
| Компонент | Срок |
|---|---|
| Переключатель Cross/Isolated с пояснениями | 3 дня |
| Форма ордера с плечом и расчётом liquidation | 1 неделя |
| Заём и погашение + UI ставок | 1 неделя |
| Real-time PnL и Margin Ratio в WebSocket | 1 неделя |
| Push-уведомления рисков (Margin Call, Liquidation) | 3 дня |
| История позиций и сделок | 3 дня |
Минимальный маржинальный модуль: 4–5 недель. Полноценная система с Cross/Isolated, историей займов, подробной аналитикой позиций — 2–3 месяца.
Наша команда имеет 6+ лет опыта в разработке биржевых приложений, реализовано 15+ проектов с маржинальной торговлей для клиентов из топ-100 криптобирж. Свяжитесь с нами для оценки вашего проекта. Закажите разработку модуля — получите консультацию по архитектуре.







