Разработка системы ребалансировки LP-позиций в Uniswap v3

Вы открыли позицию ETH/USDC на Uniswap v3 в диапазоне $1800–$2200. ETH уходит на $2500 — позиция полностью конвертируется в USDC и перестаёт приносить комиссии. Без автоматической ребалансировки вы теряете доход из-за фиксированного impermanent loss и упущенных комиссий. На практике отсутствие автом

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

Часто задаваемые вопросы

Последние работы

  • image_website-b2b-advance_0.webp
    Разработка сайта компании B2B ADVANCE
    1452
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1310
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    1005
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1270
  • image_logo-advance_0.webp
    Разработка логотипа компании B2B Advance
    719
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    1012

Вы открыли позицию ETH/USDC на Uniswap v3 в диапазоне $1800–$2200. ETH уходит на $2500 — позиция полностью конвертируется в USDC и перестаёт приносить комиссии. Без автоматической ребалансировки вы теряете доход из-за фиксированного impermanent loss и упущенных комиссий. На практике отсутствие автоматизации снижает потенциальную прибыль до 30% в месяц. Ручной мониторинг и пересоздание позиции — задача для автоматизации, как только количество позиций превышает одну. Наша команда имеет опыт в DeFi и реализовала более 20 проектов по автоматизации LP-позиций. Каждый контракт проходит внутренний аудит (Slither, Mythril) и формальную верификацию ключевых функций.

Когда и как ребалансировать

Триггеры для ребалансировки

Основные подходы к триггерам: price-based — срабатывает при выходе цены из диапазона (простой, но не учитывает комиссии); time-based — ребалансировка каждые N часов (предсказуемые gas-расходы, но ненужные на плоском рынке); fee-accumulation — когда накопленные комиссии превышают стоимость газа на ребалансировку (экономически оптимально, но сложнее в расчёте). На практике используем комбинацию: price-based как основной, fee-accumulation как проверка целесообразности.

Стратегии выбора нового диапазона

  • Fixed width: новый диапазон ±N% от текущей цены. Для ETH/USDC N=10–20%, для стейблкоин-пар 0.1–0.5%.
  • Volatility-adjusted width: ширина = k × ATR(period). При высокой волатильности диапазон шире, при низкой — уже. ATR считается off-chain.
  • Asymmetric range: при тренде диапазон смещается (например, [price×0.95, price×1.15]), требует определения тренда через скользящую среднюю.
Стратегия Когда использовать
Fixed width Простые активы, низкая волатильность
Volatility-adjusted Высоковолатильные активы
Asymmetric Трендовый рынок

Как минимизировать impermanent loss при ребалансировке?

Каждая ребалансировка фиксирует текущий IL. На боковом рынке частые ребалансировки накапливают IL без достаточного дохода от комиссий. Обязательный шаг — backtest стратегии на исторических данных. Для ETH/USDC на Arbitrum берём данные из Uniswap v3 subgraph за 6–12 месяцев, симулируем разные стратегии, сравниваем net APY после вычета gas и IL. Оптимальная частота ребалансировки может сэкономить значительную сумму в месяц на одной позиции (в зависимости от размера пула и волатильности).

Почему gas optimization критична?

Одна операция ребалансировки включает collect(), decreaseLiquidity(), повторный collect(), swap для восстановления ratio и mint() — итого 4–5 транзакций. Через multicall в NonfungiblePositionManager можно объединить вызовы, снижая gas до 40% и убирая риск изменения состояния между шагами. Swap двигает цену (slippage) и открывает MEV для сэндвич-атак. Защита: minAmountOut с допустимым slippage 0.3–0.5% или использование flash loans для атомарного ребалансирования. Оптимизация gas даёт заметную экономию на комиссиях сети.

Keeper инфраструктура

  • Chainlink Automation: контракт реализует AutomationCompatibleInterface с функциями checkUpkeep (off-chain) и performUpkeep (on-chain). Оплата в LINK, задержка до нескольких блоков.
  • Gelato Network: аналогично, с более гибкими условиями и оплатой в нативном токене.
  • Собственный keeper bot: Node.js/TypeScript сервис. Дешевле, но требует инфраструктуры.

Как выбрать keeper-сеть?

Keeper-сеть Надёжность Стоимость Сложность настройки
Chainlink Automation Высокая Средняя (LINK) Низкая
Gelato Network Высокая Средняя (нативный токен) Низкая
Собственный bot Средняя Низкая Высокая

Для production используем Chainlink Automation или Gelato. Собственный bot — как fallback. Если требуется кастомная логика предварительного расчёта, лучше выбрать Gelato — он позволяет выполнять off-chain вычисления перед подписанием транзакции.

Контракт ребалансировщика

interface IRebalancer { function rebalance( uint256 tokenId, int24 newLowerTick, int24 newUpperTick, uint256 minAmount0, uint256 minAmount1 ) external returns (uint256 newTokenId); function shouldRebalance(uint256 tokenId) external view returns (bool, int24, int24); } 

shouldRebalance — view-функция для keeper checkUpkeep. Доступ к rebalance — только owner или авторизованный keeper.

Что входит в работу

  • Разработка смарт-контракта ребалансировщика (Solidity 0.8.x)
  • Реализация стратегии выбора диапазона (off-chain, TypeScript)
  • Настройка keeper-сети (Chainlink Automation / Gelato)
  • Тесты на форке mainnet (Foundry)
  • Документация по эксплуатации и мониторингу
  • Поддержка в течение 30 дней после деплоя

Ориентиры по срокам

Базовая система для одной позиции с Chainlink Automation — от 5 рабочих дней. Срок может увеличиться при сложной стратегии или интеграции с несколькими пулами. Хотите обсудить ваш проект? Свяжитесь с нами — поможем подобрать оптимальную стратегию и стек. Закажите консультацию по вашему проекту.