DEX и Пулы Ликвидности от А до Я: как устроен Automated Market Maker (AMM) и расчет Impermanent Loss

Децентрализованные биржи (DEX) произвели революцию в мировой финансовой системе, заменив централизованных посредников, кастодиальные счета и книги заявок (Order Books) на автономные смарт-контракты Automated Market Maker (автоматических маркет-мейкеров, AMM). Сегодня протоколы уровня Uniswap, Curve и PancakeSwap обрабатывают миллиардные ежедневные объемы торгов без необходимости регистрировать аккаунты или доверять свои приватные ключи третьим лицам.

В этом фундаментальном руководстве мы разберем математическую модель формулы постоянного произведения x · y = k, механику концентрированной ликвидности в Uniswap v3/v4, влияние проскальзывания цены (Price Slippage), формулу расчета непостоянных потерь (Impermanent Loss) и предоставим рабочий Python-калькулятор для поставщиков ликвидности.


# 1. Архитектура DEX: почему книги ордеров уступили место AMM

В традиционных финансовых системах (и на централизованных криптобиржах вроде Binance или Bybit) торговля строится вокруг книги лимитных ордеров (Central Limit Order Book, CLOB). Маркет-мейкеры постоянно выставляют и отменяют тысячи заявок в секунду.

В публичных блокчейнах (Ethereum, Arbitrum, Solana) реализация ончейн-стакана сталкивается с двумя фундаментальными ограничениями:

  1. Стоимость газа: Каждая отмена или обновление лимитного ордера требует уплаты транзакционной комиссии.
  2. Время блока: Задержка между блоками делает невозможным мгновенное обновление котировок при высокочастотной торговле (HFT).

Automated Market Maker (AMM) элегантно решил эту проблему: смарт-контракт объединяет пулы из двух или более токенов, позволяя любому пользователю мгновенно совершить обмен по заранее известной математической формуле.

# 2. Математика Constant Product AMM: Формула x · y = k

Базовая модель децентрализованного обмена, популяризированная Uniswap v2, базируется на инварианте постоянного произведения:

∑
x · y = k

Где:

  • x — количество резервов первого токена (например, ETH) в смарт-контракте пула.
  • y — количество резервов второго токена (например, USDC).
  • k — постоянный математический инвариант пула, который должен оставаться неизменным до и после сделки (без учета торговой комиссии).

Ценообразование в пуле:

Спотовая маржинальная цена токена X относительно токена Y выражается простым соотношением резервов:

∑
Price(X) = y / x

Расчет объема при свопе:

Если трейдер вносит Δ x токенов X, чтобы получить Δ y токенов Y, смарт-контракт вычисляет результат из уравнения:
∑
(x + Δ x) · (y - Δ y) = k
∑
Δ y = y - (k) / (x + Δ x) = (y · Δ x) / (x + Δ x)

Чем больше размер входящего ордера Δ x относительно общего объема резервов пула x, тем сильнее фактическая цена исполнения отклоняется от спотовой — это явление называется проскальзыванием цены (Price Slippage).


# 3. Эволюция: Концентрированная ликвидность Uniswap v3 и v4

В классическом пуле Uniswap v2 ликвидность распределялась по всему ценовому диапазону от $0$ до ∞. В результате более 99% капитала оставалось незадействованным на текущих рыночных отметках.

В Uniswap v3 была внедрена концепция концентрированной ликвидности (Concentrated Liquidity):

  • Поставщик ликвидности (LP) выбирает конкретный целевой диапазон цен [P_a, P_b].
  • Внутри этого диапазона капитал работает с кредитным плечом эффективности (до сотен раз выше v2), генерируя многократно больше комиссионных сборов на каждый вложенный доллар.
  • Риск диапазона (Out-of-range): Если рыночная цена выходит за пределы диапазона [P_a, P_b], позиция на 100% конвертируется в один обесценивающийся токен и перестает приносить торговые комиссии до возвращения цены в коридор.


# 4. Математика Непостоянных Потерь (Impermanent Loss)

Поставка ликвидности в пул сопряжена с фундаментальным финансовым риском — Impermanent Loss (IL).

Непостоянные потери (IL) — это мера недополученной прибыли при предоставлении ликвидности в AMM-пул по сравнению с пассивным удержанием тех же токенов на кошельке (HODL) при изменении их относительного ценового коэффициента.

Точная формула Impermanent Loss:

Если цена актива изменилась в r раз (r = (P_new) / (P_initial)), процент потерь вычисляется по формуле:

∑
IL(r) = (2 · √(r)) / (1 + r) - 1

Таблица масштаба потерь при изменении цены:

📊 Таблица данных ↔ Прокрутите вправо
Изменение цены актива ($r$)Отклонение ценыНепостоянные потери ($IL$)
1.25x+25%-0.6%
1.50x+50%-2.0%
2.00x+100% (рост в 2 раза)-5.7%
3.00x+200% (рост в 3 раза)-13.4%
5.00x+400% (рост в 5 раз)-25.5%

Потери компенсируются аккумулированными торговыми комиссиями пула (Fee APY). Если годовая доходность комиссий пула превышает величину IL, поставщик ликвидности фиксирует чистую прибыль (Net Profit).


# 5. Практические стратегии управления ликвидностью для трейдера

  1. Коррелированные пулы для стабильной доходности: Пулы стейблкоинов (USDC/USDT) или LST-деривативов (ETH/stETH) обладают околонулевым риском IL, так как активы привязаны к одной стоимости.
  2. Динамический ребалансинг диапазонов: В трендовом рынке на волатильных парах (BTC/USDT) используйте широкие диапазоны (± 30-50%) для непрерывного сбора комиссий.
  3. Защита от сэндвич-атак MEV: Устанавливайте максимальный порог допустимого проскальзывания (Slippage Tolerance) не более 0.1 - 0.5% при свопах на крупных DEX.

Интегрируйте анализ ликвидности с инструментарием Bitcoin Compass Pro:


# 6. Алгоритмическая реализация и программный модуль (Python)

Ниже представлен Python-класс AMMLiquidityEngine, рассчитывающий результат свопа по формуле постоянного произведения, ценовое проскальзывание и точные непостоянные потери:

PYTHON
import math
from typing import Dict

class AMMLiquidityEngine:
    # Модуль расчета AMM пулов и Impermanent Loss

    @staticmethod
    def calculate_swap(
        reserve_x: float,
        reserve_y: float,
        amount_in_x: float,
        fee_percent: float = 0.3
    ) -> Dict[str, float]:
        # Расчет свопа токена X на токен Y с учетом комиссии
        fee_multiplier = 1.0 - (fee_percent / 100.0)
        amount_in_with_fee = amount_in_x * fee_multiplier
        
        # Инвариант x * y = k
        k = reserve_x * reserve_y
        new_reserve_x = reserve_x + amount_in_with_fee
        new_reserve_y = k / new_reserve_x
        amount_out_y = reserve_y - new_reserve_y
        
        initial_price = reserve_y / reserve_x
        execution_price = amount_out_y / amount_in_x if amount_in_x > 0 else 0
        slippage_pct = ((initial_price - execution_price) / initial_price) * 100 if initial_price > 0 else 0
        
        return {
            "amount_out_y": round(amount_out_y, 4),
            "execution_price": round(execution_price, 4),
            "slippage_percent": round(slippage_pct, 2),
            "new_reserve_x": round(new_reserve_x, 2),
            "new_reserve_y": round(new_reserve_y, 2)
        }

    @staticmethod
    def calculate_impermanent_loss(price_ratio: float) -> Dict[str, float]:
        # Расчет Impermanent Loss при относительном изменении цены r = P_new / P_old
        if price_ratio <= 0:
            raise ValueError("Коэффициент изменения цены должен быть положительным.")
            
        il_decimal = (2.0 * math.sqrt(price_ratio)) / (1.0 + price_ratio) - 1.0
        il_percent = il_decimal * 100.0
        
        return {
            "price_ratio": round(price_ratio, 4),
            "impermanent_loss_percent": round(il_percent, 2),
            "portfolio_vs_hodl_pct": round((1.0 + il_decimal) * 100.0, 2)
        }

if __name__ == "__main__":
    # Пример 1: Своп 5 ETH в пул с 100 ETH и 300,000 USDC
    swap_res = AMMLiquidityEngine.calculate_swap(
        reserve_x=100.0,
        reserve_y=300000.0,
        amount_in_x=5.0,
        fee_percent=0.3
    )
    print(f"[*] Результат свопа: {swap_res}")

    # Пример 2: Расчет потерь IL при удвоении цены токена (r = 2.0)
    il_res = AMMLiquidityEngine.calculate_impermanent_loss(price_ratio=2.0)
    print(f"[✓] Непостоянные потери (IL): {il_res}")

# Заключение

DEX и пулы ликвидности сформировали децентрализованную основу расчетов в криптовалюте. Понимание математики AMM и механики Impermanent Loss позволяет не только эффективно зарабатывать на предоставлении ликвидности, но и совершать крупные торговые обмены с минимальным проскальзыванием.

Главные правила:

  • Оценивайте отношение накопленных комиссий (Fee APR) к величине IL.
  • Для минимизации проскальзывания используйте пулы с максимальной глубиной ликвидности.
  • Контролируйте рынок в реальном времени с помощью Торгового терминала и Калькулятора риска на платформе Bitcoin Compass Pro.

🧮 Калькулятор доходности стратегий
Депозит: $5,000
Доход в месяц
+$285
Годовой APY
+68.4%
Прибыль в день
+$9.5
LIVE СИГНАЛЫ В TELEGRAM

🤖 Заберите бесплатные сигналы и арбитражные связки в боте

Мгновенные уведомления об аномальных спредах от +1.5% между Bybit, Binance и Gate.io, графики японских свечей по команде /chart и дельта-нейтральный калькулятор.

@bitcoincompas_bot БЕСПЛАТНЫЙ ДОСТУП
⚡ СВЕЖИЙ СПРЕД: #GASUSDT +2.14% (Net +1.98%)
🟢 BUY: Bybit ($4.1200)  |  🔴 SELL: Gate.io ($4.2080)
💰 Доход на $5,000: +$99 (Дельта-нейтрально)
🔒 Без регистрации и без привязки карт • 100% бесплатно