Реалізація маржинальної торгівлі у мобільному додатку біржі

TRUETECH займається розробкою, підтримкою та обслуговуванням мобільних додатків iOS, Android, PWA. Маємо великий досвід та експертизу для публікації мобільних додатків до популярних маркетів Google Play, App Store, Amazon, AppGallery та інші.

Розробка та підтримка будь-яких видів мобільних додатків:

Інформаційні та розважальні мобільні програми
Новинки, ігри, довідники, онлайн-каталоги, погодні, фітнес та здоров'я, туристичні, освітні, соціальні мережі та месенджери, квіз, блоги та подкасти, форуми, агрегатори
Мобільні програми електронної комерції
Інтернет-магазини, B2B-додатки, маркетплейси, онлайн-обмінники, кешбек-сервіси, біржі, дропшиппінг-платформи, програми лояльності, доставка їжі та товарів, платіжні системи
Мобільні програми для управління бізнес-процесами
CRM-системи, ERP-системи, управління проектами, інструменти для команди продажів, облік фінансів, управління виробництвом, логістика та доставка, управління персоналом, системи моніторингу даних
Мобільні програми електронних послуг
Дошки оголошень, онлайн-школи, онлайн-кінотеатри, платформи надання електронних послуг, платформи кешбеку, відеохостинги, тематичні портали, платформи онлайн-бронювання та запису, платформи онлайн-торгівлі

Це лише деякі з типів мобільних додатків, з якими ми працюємо, і кожен із них може мати свої специфічні особливості та функціональність, а також бути адаптованим під конкретні потреби та цілі клієнта.

Послуги, які ми пропонуємо
Показано 1 з 1Усі 1735 послуг
Реалізація маржинальної торгівлі у мобільному додатку біржі
Складний
від 2 тижнів до 3 місяців
Часті запитання

Наші компетенції:

Етапи розробки

Останні роботи

  • image_mobile-applications_feedme_467_0.webp
    Розробка мобільного додатка для компанії FEEDME
    792
  • image_mobile-applications_xoomer_471_0.webp
    Розробка мобільного додатку для компанії XOOMER
    671
  • image_mobile-applications_rhl_428_0.webp
    Розробка мобільного додатку для компанії RHL
    1097
  • image_mobile-applications_zippy_411_0.webp
    Розробка мобільного додатку для компанії ZIPPY
    969
  • image_mobile-applications_affhome_429_0.webp
    Розробка мобільного додатку для компанії Affhome
    914
  • image_mobile-applications_flavors_409_0.webp
    Розробка мобільного додатку для компанії FLAVORS
    495

Реалізація маржинальної торговлі в мобільному додатку біржі

Маржинальна торговля — робота з заємними коштами. Користувач вносить залог (маржу), біржа надає плече 3x, 5x, 10x. Прибуток та збиток рахуються від повного об'єму позиції, а не від залогу. Якщо збиток наближається до суми маржі — біржа примусово закриває позицію (liquidation). Реалізувати це на мобільному — значить побудувати складну систему відображення ризиків у реальному часі.

Маржинальні акаунти: Isolated та Cross

Два режими з принципово різною логікою:

Cross Margin — весь баланс маржинального рахунку служить залогом для всіх позицій. Одна позиція «з'їдає» маржу іншої. Liquidation price розраховується для всього рахунку.

Isolated Margin — кожна торговельна пара має окремий ізольований маржинальний гаманець. Максимальний збиток обмежений сумою в цьому гаманці. Для мобільного UX ізольована маржа простіше: користувач розуміє, що втрачає тільки те, що внесе на конкретну пару.

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 Call

Margin Ratio = Обслуговувана маржа / Капітал рахунку × 100%.

  • Нижче 100% — рахунок у нормі
  • 80–100% — жовта зона, push-сповіщення «Внесіть додаткову маржу»
  • Вище 100% — примусове закриття позицій (liquidation)

На екрані відкритої позиції — прогресс-бар Margin Ratio з кольоровою градацією (зелений → жовтий → червоний). WebSocket оновлює баланс та P&L у реальному часі.

Заём та погашення

Робота з маржинальним займом — окремий flow:

  1. Заём (Borrow): користувач вказує суму та валюту. Біржа повертає tranId. Інтерфейс показує доступний ліміт займу, поточну процентну ставку (hourly/annual), максимально доступну суму.

  2. Погашення (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 може затримати доставку на кілька хвилин, що критично при маржинальній торговлі.

Інтерфейс відкритої позиції

Карточка відкритої позиції повинна показувати:

Поле Оновлення
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 місяці.