Разработка алгоритма delta-neutral стратегии
Delta-neutral — это не «стратегия без риска». Это стратегия с нулевой дельтой в конкретный момент времени. Через час дельта снова ненулевая: цена актива сдвинулась, гамма сработала, funding rate изменился. Поддерживать нейтральность — это непрерывный процесс балансировки. Большинство реализаций ломаются именно здесь: разработчики делают rebalancing по таймеру, не по динамике рынка, и стратегия дрейфует в убыток на волатильных периодах.
Математика и главные риски
Дельта, гамма и почему они важны для DeFi
В классических опционах delta = dV/dS (изменение стоимости позиции при изменении цены актива). В DeFi контексте дельта LP-позиции в Uniswap v3 — это не константа, она меняется в зависимости от текущей цены относительно диапазона.
Для Uniswap v3 позиции в диапазоне [P_a, P_b]:
- При цене выше P_b: дельта = 0 (весь актив в стабильном токене)
- При цене ниже P_a: дельта = 1 (весь актив в базовом токене)
- Внутри диапазона: дельта от 0 до 1, нелинейно
Это означает, что LP-позиция имеет отрицательную гамму — как продажа опциона. При больших движениях цены LP теряет больше, чем при малых. Классический impermanent loss — это и есть проявление отрицательной гаммы.
Delta-neutral стратегия на LP компенсирует эту дельту шортом через perpetual futures на Hyperliquid, dYdX, GMX v2 или Aave (через borrow + sell). При изменении цены LP дельта меняется, хедж нужно корректировать.
Funding rate как основной источник дохода
Основная идея многих delta-neutral стратегий в DeFi: LP зарабатывает trading fees, шорт на perpetuals платит или получает funding rate. Если funding rate положительный (лонгисты платят шортистам) — шорт приносит дополнительный доход. Исторически на Hyperliquid и dYdX funding rate на ETH/BTC положителен в среднем 10-20% годовых.
Суммарная доходность: trading fees LP + funding rate - IL - gas costs на rebalancing.
Риск: funding rate может развернуться отрицательным. В бычьем рынке с отрицательным funding шорт платит — стратегия убыточна, если IL превышает fees. Алгоритм должен отслеживать funding rate и выходить из позиции при превышении порогового значения (например, -50% годовых за последние 7 дней).
Расчёт оптимального размера хеджа
Для LP-позиции в диапазоне необходимо вычислить текущую дельту. Аналитическая формула для Uniswap v3:
def lp_delta(current_price, price_lower, price_upper, liquidity):
if current_price <= price_lower:
return 1.0 # все в token0
elif current_price >= price_upper:
return 0.0 # все в token1
else:
sqrt_p = math.sqrt(current_price)
sqrt_pa = math.sqrt(price_lower)
sqrt_pb = math.sqrt(price_upper)
# количество token0 в позиции
amount0 = liquidity * (sqrt_pb - sqrt_p) / (sqrt_p * sqrt_pb)
# количество token1 (normalized to token0 units)
amount1_in_token0 = liquidity * (sqrt_p - sqrt_pa) / current_price
total_value = amount0 + amount1_in_token0
return amount0 / total_value if total_value > 0 else 0
Размер шорта = delta * total_LP_value_in_base_token. При изменении delta на >2-5% — trigerring rebalancing.
Реализация: алгоритмический движок
Компоненты системы
Price oracle. Для триггеров rebalancing нельзя полагаться на on-chain TWAP — задержка 30+ минут. Нужен off-chain price feed: Binance WebSocket для spot price, Hyperliquid WebSocket для mark price perpetuals. Расхождение spot vs mark > 0.3% — дополнительный сигнал для проверки дельты.
Position tracker. Опрашивает NonfungiblePositionManager.positions(tokenId) каждые 30 секунд + подписка на Swap события пула для instant updates. Вычисляет текущую дельту по формуле выше.
Hedge executor. При превышении delta threshold — отправляет ордер на perpetual exchange. Для Hyperliquid: REST API POST /exchange с параметрами {coin, isBuy, reduceOnly, sz, limitPx, tif}. Используем limit order с небольшим slippage (0.1%) вместо market order — экономит на fees.
Risk monitor. Отдельный процесс, который проверяет: liquidation risk шорт-позиции (collateral ratio на Hyperliquid > 20%), funding rate trend, total PnL стратегии. При критических условиях — emergency exit: закрыть шорт, вывести LP.
Rebalancing: thresholds vs continuous
Два подхода к частоте ребалансировки:
| Подход | Триггер | Gas cost | Точность хеджа |
|---|---|---|---|
| Threshold-based | Δ delta > 5% | Низкий (редко) | Средняя |
| Time-based | Каждые N минут | Средний | Средняя |
| Continuous | Каждый блок | Высокий (неприемлемо) | Высокая |
| Hybrid | Δ delta > 2% ИЛИ каждые 4ч | Оптимальный | Хорошая |
Оптимально: threshold-based с минимальным интервалом 1 час (чтобы избежать gas waste при высокой волатильности, когда каждый блок триггерит ребалансировку).
Backtesting на исторических данных
Перед деплоем стратегии на реальные средства — backtesting на исторических данных. Источники данных: Uniswap v3 Subgraph для fee данных, Coingecko/Binance API для price history, Hyperliquid historical funding rates.
Минимум 6 месяцев данных, включая волатильные периоды (май 2021, ноябрь 2022, март 2023). Метрики: Sharpe ratio, max drawdown, average funding income vs IL.
Стек разработки
Python для backtesting движка и прототипа алгоритма — numpy для матричных вычислений, pandas для временных рядов. Rust или Go для production реального времени — latency критична при rebalancing. ethers-rs для on-chain взаимодействия, WebSocket subscriptions.
Visualization: Jupyter notebook для backtesting отчётов, Grafana для real-time мониторинга открытых позиций.
Процесс работы
Экономическое моделирование (1 неделя). Параметризация стратегии, backtesting, определение оптимальных thresholds.
Разработка алгоритма (2-3 недели). Position tracker, delta calculator, hedge executor, risk monitor.
Тестирование на testnet (1 неделя). Симуляция на Sepolia + Hyperliquid testnet с реальными price feeds.
Paper trading (1-2 недели). Алгоритм в production режиме, но без реальных средств — наблюдаем за решениями.
Production деплой. Постепенный запуск с малым капиталом, увеличение по мере подтверждения гипотез.
Ориентиры по срокам
Алгоритм с одним пулом и одним hedge venue: 4-6 недель. Система с несколькими пулами, автоматическим выбором диапазона и multi-venue хеджированием: 2-3 месяца.







