Розробка ліквідності біржі (market making)

Проєктуємо та розробляємо блокчейн-рішення повного циклу: від архітектури смарт-контрактів до запуску DeFi-протоколів, NFT-маркетплейсів та криптобірж. Аудит безпеки, токеноміка, інтеграція з наявною інфраструктурою.
Показано 1 з 1Усі 1306 послуг
Розробка ліквідності біржі (market making)
Складний
~1-2 тижні
Часті запитання

Напрямки блокчейн-розробки

Етапи блокчейн-розробки

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

  • image_website-b2b-advance_0.webp
    Розробка сайту компанії B2B ADVANCE
    1306
  • image_web-applications_feedme_466_0.webp
    Розробка веб-додатків для компанії FEEDME
    1218
  • image_websites_belfingroup_462_0.webp
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    920
  • image_ecommerce_furnoro_435_0.webp
    Розробка інтернет магазину для компанії FURNORO
    1147
  • image_logo-advance_0.webp
    Розробка логотипу компанії B2B Advance
    610
  • image_crm_enviok_479_0.webp
    Розробка веб-додатків для компанії Enviok
    885

Розробка ліквідності біржи (market making)

Ліквідність — це готовність ринку виконати ордер без значної зміни ціни. Біржа без ліквідності мертва: широкий спред, глибокий impact, уход трейдерів до конкурентів. Market making — це мистецтво та інженерія одночасно: постійно утримуйте двосторонні котировки, хеджуйте ризики та не втратьте гроші.

Що таке market making

Market maker виставляє одночасно bid (покупка) та ask (продажа) ордери. Його заробіток — спред між ними. При торгівлі проти нього він бере на себе inventory risk (позицію в активі).

Market Maker Book для BTC/USDT:
Ask $50,100  │ 0.5 BTC
Ask $50,050  │ 0.3 BTC
Mid $50,000  │
Bid $49,950  │ 0.3 BTC
Bid $49,900  │ 0.5 BTC

Spread = Ask_best - Bid_best = $50,050 - $49,950 = $100 (0.2%)

Архітектура market making бота

Базова стратегія

class MarketMaker:
    def __init__(self, symbol: str, config: MMConfig):
        self.symbol = symbol
        self.spread_bps = config.spread_bps          # половина спреду в bps
        self.order_size_base = config.order_size      # базовий розмір ордера
        self.num_layers = config.num_layers           # глибина котирування
        self.layer_spacing_bps = config.layer_spacing # расстояние між рівнями

    async def compute_quotes(self, mid_price: float) -> list[Quote]:
        quotes = []
        inventory_skew = self.calculate_inventory_skew()

        for i in range(1, self.num_layers + 1):
            # Зміщуємо котировки з урахуванням інвентарю
            bid_offset_bps = self.spread_bps * i + inventory_skew
            ask_offset_bps = self.spread_bps * i - inventory_skew

            bid_price = mid_price * (1 - bid_offset_bps / 10000)
            ask_price = mid_price * (1 + ask_offset_bps / 10000)

            # Розмір ордера зменшується на дальніх рівнях
            size = self.order_size_base / i

            quotes.append(Quote('buy', bid_price, size))
            quotes.append(Quote('sell', ask_price, size))

        return quotes

    def calculate_inventory_skew(self) -> float:
        """
        Якщо у нас накопився надлишок BTC (long inventory) —
        зміщуємо котировки вниз: агресивніший ask, менш агресивний bid.
        Це спонукає ринок купити у нас BTC, відновлюючи баланс.
        """
        target_inventory = 0  # нейтральна позиція
        current_inventory = self.get_current_inventory()
        inventory_deviation = current_inventory - target_inventory

        # Skew пропорціональний відхиленню від нейтралі
        skew = inventory_deviation * self.inventory_skew_factor
        return max(-self.max_skew_bps, min(self.max_skew_bps, skew))

Хеджування (Delta Hedging)

Market maker на внутрішній біржі хеджує позицію на зовнішній. Якщо клієнт купив у нас 1 BTC — ми купуємо 1 BTC на Binance для нейтралізації delta:

async def hedge_trade(self, trade: InternalTrade):
    """Хеджуємо виконану угоду на зовнішній біржі"""
    hedge_side = 'buy' if trade.side == 'sell' else 'sell'
    # trade.side = що зробив клієнт. Якщо клієнт купив — ми продали → хеджуємо покупкою

    await self.hedge_exchange.market_order(
        symbol=self.symbol,
        side=hedge_side,
        quantity=trade.quantity
    )

Execution Risk: між нашою угодою з клієнтом та хеджем на зовнішній біржі проходить час (1-100ms). Ціна може зміниться. Це execution risk або hedging slippage — реальний ризик P&L.

Управління інвентарем

Ключова метрика: inventory skew — наскільки поточна позиція відхиляється від цілі (зазвичай нейтральна).

При перевищенні ліміту інвентарю: стратегія агресивно зміщує котировки для зниження позиції, в крайньому випадку — примусовий market ордер на зовнішній біржі.

Визначення спреду

Компоненти спреду

Мінімально розумний спред складається з:

Spread = Cost of carry + Expected adverse selection + Profit margin

Adverse selection — найскладніша частина. Якщо трейдер торгує проти вас з інсайдерською інформацією, ви завжди програєте. В крипто, adverse selection вище при високій волатильності, перед великими подіями.

Liquidity Provider Program

Стимулювання зовнішніх market makers

Біржа може залучати зовнішніх market makers через програму fee rebate:

Tier Maker обсяг/30d Maker fee Taker fee
Standard < $1M 0.10% 0.15%
Market Maker 1 $1M+ -0.01% (rebate) 0.10%
Market Maker 2 $10M+ -0.02% (rebate) 0.08%
Market Maker 3 $100M+ -0.03% (rebate) 0.06%

Негативний maker fee (rebate) означає, що біржа платить market maker-у за кожний виставлений та виконаний ордер. Стандартна практика для залучення професійних liquidity providers.

On-chain AMM Liquidity

Для DEX або гібридних платформ, ліквідність надається через LP позиції в AMM пулах.

Параметр CEX Market Making AMM LP
Контроль над ціною Повний Алгоритмічний
Impermanent loss Нема (хеджується) Есть
Вимоги до інфраструктури Бот + API Просто транзакція
Управління ризиком Активне Пасивне
Доходність Вища (активна) Нижча (пасивна)

Для серйозного рринкового обсягу CEX market making несопоставимо ефективніше AMM LP. AMM працює як backstop ліквідність та для long-tail токенів без професійних MM.