Реалізація ф'ючерсної торгівлі у мобільному додатку біржі

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

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

Фьючерсна торговля на крипто-біржах — це вічні контракти (perpetual futures) без дати закінчення, з плечем до 125x та механізмом фандингу кожні 8 годин. На відміну від спот-торговлі, тут немає реального активу: тільки контракт на різницю цін. Це накладає принципово інші вимоги на інтерфейс: Mark Price, Funding Rate, Liquidation Price, Unrealized/Realized PnL та режим маржі — все це повинно відображатися у реальному часі.

Perpetual Futures: ключові концепції для UI

Mark Price — індексна ціна, розраховувана біржею на основі середневзвішеної ціни кількох спот-площадок + funding premium. По ній рахується PnL та liquidation — не по Last Price торговлі на біржі. Різниця між Mark та Last може досягати 0.5–2% при високій волатильності. У UI завжди показуй обидва значення.

Funding Rate — ставка, яку лонги платять шортам (або навпаки) кожні 8 годин. При значній дев'ації ставка стає суттєвою: 0.1% кожні 8 годин = ~0.3% в добу з позиції. Показуй Funding Rate та час до наступного нарахування в карточці позиції.

Leverage на фьючерсах — динамічно змінюється користувачем через слайдер або поле. Максимальне плече залежить від розміру позиції: на Binance 125x доступно тільки для позицій до 50 000 USDT, вище — нижче максимум.

Liquidation Price: розрахунок для фьючерсів

Формула для USDM perpetual (Binance Futures), LONG позиція:

LiquidationPrice = EntryPrice × (1 - InitialMarginRate + MaintenanceMarginRate)

де InitialMarginRate = 1 / Leverage.

// Android — liquidation price для perpetual futures LONG
fun calcLiqPriceLong(
    entryPrice: BigDecimal,
    leverage: Int,
    mmRate: BigDecimal = BigDecimal("0.005") // Maintenance Margin Rate
): BigDecimal {
    val imr = BigDecimal.ONE.divide(BigDecimal(leverage), 8, RoundingMode.HALF_UP)
    return entryPrice.multiply(BigDecimal.ONE.subtract(imr).add(mmRate))
        .setScale(2, RoundingMode.HALF_UP)
}

Для позицій з кількома усередненнями (додавання до позиції) — перерахунок Entry Price по середневзвішеній та оновлення Liquidation Price. При Cross Margin в розрахунок входить весь доступний баланс — формула складніше.

UI торгового екрану

Фьючерсний торговий екран перегружений даними за визначенням. Рекомендована структура для мобільного:

Верх: Mark Price (крупно) | Last Price | Funding Rate + Countdown | 24h Change

Центр: Свічний графік (TradingView Lightweight Charts в WKWebView / WebView) з переключенням таймфреймів

Низ: Табі «Позиція» / «Відкриті ордери» / «Історія» + форма ордера

Форма ордера — Bottom Sheet з двома вкладками Long/Short. Поля: Leverage (слайдер), Price (для лімітних), Size (в контрактах або USDT), режим маржі Cross/Isolated.

TP/SL привязаний до позиції

У фьючерсах Take Profit та Stop Loss задаються не як окремі ордери, а як атрибути позиції. Binance Futures API: POST /fapi/v1/order з параметрами reduceOnly=true, або створення TP/SL через POST /fapi/v1/order з closePosition=true.

// iOS — створення TP/SL для фьючерсної позиції
struct FuturesTpSlRequest: Codable {
    let symbol: String
    let side: String          // протилежна поточній позиції
    let type: String          // TAKE_PROFIT_MARKET або STOP_MARKET
    let stopPrice: String
    let closePosition: String // "true"
    let workingType: String   // MARK_PRICE або CONTRACT_PRICE
    let timeInForce: String   // GTE_GTC
}

workingType: MARK_PRICE — TP/SL срабатывает по Mark Price, що захищає від хибних активацій при аномальних Last Price (wick hunting). Це потрібно пояснити користувачу в tooltip.

Real-time PnL та ліквідація

WebSocket Binance Futures: стрім @markPrice для Mark Price, userData stream з ORDER_TRADE_UPDATE та ACCOUNT_UPDATE для балансів та позицій. Весь UI позицій тримається на цих двох потоках.

При наближенні до liquidation (Margin Ratio > 80%): візуальний пульс (анімація рамки карточки позиції), push з high priority. При фактичній ліквідації — окремий екран з итогами: що було, по якій ціні закрито, скільки потеряно.

Часовий графік

MVP фьючерсного модуля (perpetual, Long/Short, TP/SL):

Компонент Час
WebSocket Mark Price + Funding Rate 3 дні
Форма ордера з плечом та режимом маржі 1 тиждень
Real-time позиції: PnL, Liquidation Price 1 тиждень
TP/SL привязаний до позиції 3 дні
Історія сделок та фандингових виплат 3 дні
Push-сповіщення ризиків 3 дні

Итого: 4–6 тижнів. Повноцінний модуль з Multi-asset Mode, Portfolio Margin, hedge mode — 3 місяці.