Реализация фьючерсной торговли в мобильном приложении биржи

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 месяца.