Протокол Uniswap

  • Глубокое погружение в протокол Uniswap v2
  • Непостоянный убыток в Uniswap V2, V3
  • Uniswap V3 Дельта-нейтральная стратегия

Глубокое погружение в протокол Uniswap v2

Добро пожаловать в подробную серию DeFi! Эта серия будет состоять из нескольких должностей; Каждый из них будет состоять из объяснения отдельного протокола. Основная цель этой серии — понять с точки зрения первых принципов, как лучшие протоколы DeFi работают под капотом.

Мы рассмотрим их с теоретического и практического уровня. Это означает, что мы поймем теорию, лежащую в основе протокола, но мы также собираемся углубиться в фактическую реализацию (код).

Необходимые условия

Для того, чтобы следовать дальше, полезно обладать следующими знаниями:

  1. Общее понимание EVM
  2. Комфорт с Solidity
  3. Основы математики (алгебра)
  4. Общее понимание основ блокчейнов и протоколов смарт-контрактов, построенных на их основе

UniSwap V2

Пост разделен на две основные части: первая, «Обзор компонентов системы», объясняет теорию и практику, лежащие в основе наиболее важных компонентов, которые заставляют систему работать.

Вторая часть, «Реализация ядра системы», посвящена фактической архитектурной реализации.

Я считаю, что для того, чтобы по-настоящему глубоко понять систему, вы должны быть в состоянии переписать ее с нуля. Надеюсь, к концу этого поста вы сможете это сделать.

Чтобы начать структурированное изучение системы, важно задать себе несколько вопросов, которые являются фундаментальными для системы:

  • Как работает механизм ценообразования Uniswap?
  • Кто обеспечивает ликвидность системы?
  • Зачем кому-то предоставлять ликвидность системе?
  • Как система представляет ликвидность?

Попутно на все фундаментальные вопросы следует ответить, глубоко понимая протокол.

Прежде чем начать, давайте быстро поговорим о том, что такое Uniswap.

Uniswap — это децентрализованный протокол автоматизированного маркет-мейкера, который позволяет любому обменять токен A на токен B. Автоматизированные маркет-мейкеры работают иначе, чем традиционная модель книги заказов. Основной принцип, который отличает автоматизированного маркет-мейкера (Uniswap) от традиционной централизованной книги заказов, заключается в том, что первый запускает неразрешенный код в блокчейне, позволяя любому участвовать.

Прежде чем двигаться дальше, я хочу сказать пару вещей.

  1. Uniswap V2 децентрализован: Децентрализация не является двоичной, но, с моей точки зрения (и многих других), децентрализованный протокол смарт-контрактов — это протокол, в котором ни одна центральная сторона не может получить доступ к средствам пользователя. Другими словами, ни у кого нет специального ключа, который может модифицировать контракты.
  2. Существует три версии Uniswap: В этом посте мы сосредоточимся на V2 (в будущем мы сделаем пост V3). Но если вы хотите узнать, как создавался Uniswap, предлагаю посмотреть это видео.
  3. Многие AMM являются ответвлением Uniswap V2: Uniswap V2 намного проще, чем V3, поэтому его легче обслуживать. Поэтому, как только вы узнаете, как работает Uniswap V2, вы также узнаете большинство AMM!

Давайте начнем!

Обзор компонентов системы

Чтобы начать понимать, как работает протокол, нам нужно спросить себя, что на самом деле происходит, когда мы делаем простую замену. Конечно, цель всего поста — объяснить это.

Но на базовом уровне вы взаимодействуете со смарт-контрактом (пулом), который «хранит» резервы двух разных токенов. Например, если вы обмениваете WETH на USDC, вы взаимодействуете с парой смарт-контрактов WETH/USDC (мы подробно расскажем, как это работает позже). Если вам интересно, вот пара смарт-контрактов WETH/USDC на Etherscan.

Пул WETH/USDC

Таким образом, если вы покупаете USDC за WETH, вы увеличиваете предложение WETH в пуле и сокращаете предложение USDC, следовательно, увеличиваете относительную цену USDC по сравнению с WETH.

В следующих разделах мы обсудим, как работает пул (математика, лежащая в его основе).

Важно помнить, что пулы UniswapV1 всегда торговались против Eth. Другими словами, каждый пул был ETH / xToken.

В Uniswap V2 каждый пул имеет значение ERC-20/ERC-20. Такой подход обеспечивает большую гибкость для поставщиков ликвидности, поскольку им не нужно на 100% полагаться на ETH. Таким образом, каждый раз, когда вы обмениваете ETH на другой токен, ваш ETH сначала конвертируется в WETH.

Участники протокола

Uniswap работает, предоставляя стимулы различным участникам работать с системой, чтобы они получали прибыль. Основными участниками системы являются:

  1. Трейдеры: Трейдеры могут выполнять несколько действий в системе; Вот некоторые из них:
  • Спекуляция на цене актива.
  • Арбитражное программное обеспечение. Например, если цена ETH в Uniswap торгуется на уровне 3 000 долларов, а в Coinbase — на уровне 3 800 долларов, арбитражер немедленно купит ETH в Uniswap и перепродаст его в Coinbase с прибылью.
  • Базовый функционал подкачки. Вы хотите изменить токен x на y, чтобы использовать их в Dapp.

2. Поставщики ликвидности (LP): LP предоставляют ликвидность пулам токенов. В качестве вознаграждения они получают комиссию за транзакцию.

3. Разработчики: Разработчики создают системы и приложения, которые существуют в экосистеме. С точки зрения Uniswap, они могут быть разработчиками основных протоколов, сторонними разработчиками Dapp, которые интегрируются с Uniswap, разработчиками кошельков и т. д.

Прежде чем углубиться в смарт-контракты, давайте разберемся с основными понятиями.

Есть три основных компонента, которые нам необходимо понять, чтобы иметь глубокие знания Uniswap (и большинства протоколов DeFi): это формула постоянного продукта, арбитраж и непостоянные убытки.

Сборы

UniswapV2 взимает фиксированную комиссию в размере 0,3% за сделку. Как это рассчитывается, мы увидим в следующих разделах. Комиссия идет поставщикам ликвидности, и это должно вознаграждать людей за их ликвидность. Протокол также может инициировать изменение, которое даст 0,05% команде Uniswap, и эта часть комиссии будет дисконтирована с поставщиков ликвидности, а не с трейдеров.

Постоянная формула продукта в глубине

Многие автоматизированные маркет-мейкеры работают благодаря постоянной формуле продукта. Это очень простой, но мощный алгоритм.

Формула постоянного продукта — это автоматизированный рыночный алгоритм, на котором работает протокол Uniswap (и многие другие AMM).

Формула постоянного продукта

Эта формула просто утверждает, что инвариант k должен оставаться неизменным относительно оттока/притока x и y.

Другими словами, вы можете изменить значения и y на все, что захотите, при условии, что k останется прежним.

Например:

Что такое x и y?

x и y — это резервы токенов в пуле. Например, если вы меняете DAI на WETH, вы взаимодействуете с пулом смарт-контрактов DAI/WETH. Общая сумма DAI, содержащаяся в контракте, будет равна x, а общая сумма WETH будет y.

Достаточно просто. Это алгоритм, который питает множество AMM.

В фактической реализации формула немного отличается.

Давайте посмотрим на реальную формулу, которую использует Uniswap V2.

Здесь вы можете найти полную реализацию функции «swap». Но нас особенно интересуют следующие строки кода:

Этот фрагмент кода является реальной реализацией формулы константного продукта. Все остальное, что вы читали или видели, является лишь теорией. Эти строки кода являются реализацией формулы константного произведения без операционной системы.

Внутри оператора require есть четыре переменные:

  • balance0Adjusted: Резервы x после того, как трейдер отправит токеныX в пул минус 0,3% от отправленной суммы.
  • balance1Adjusted: резервы y после того, как токены Y будут отправлены трейдеру из пула.
  • _reserve0: Резервы токена x до обмена.
  • _reserve1: Резервы токенов до обмена.

balance0Adjusted и balance1Adjusted можно рассматривать в обратном порядке.

Давайте сделаем пример, чтобы лучше понять это:

  • В Uniswap есть пул DAI/WETH.
  • Текущие резервы составляют 20000DAI / 10 WETH, и трейдер хочет обменять 1 WETH на 1500 DAI:

Как видите, трейдер отправил в пул 1 WETH в обмен на 1500 DAI. Они могли бы получить больше DAI для своего WETH, но смысл здесь в том, чтобы проиллюстрировать две вещи:

  1. k не остается постоянным. Он всегда увеличивается из-за комиссий за транзакции, но также может увеличиваться, если люди используют систему неэффективно (как в нашем примере, трейдер мог бы получить больше DAI для своего WETH).
  2. Единственная проверка, которую действительно обеспечивает функция свопа, заключается в том, что новые резервы (за вычетом комиссий) больше или равны предыдущим резервам: newK ≥ oldK.

Ниже приведена фактическая реализация кода предыдущего примера:

Как видите, вещи умножаются на 1000. Это связано с тем, что в Solidity нет чисел с плавающей запятой, поэтому это необходимо для представления комиссии в размере 0,3%. Вот почему amount0In или amount1in умножаются на 3 (чтобы представить 0.3%).

Получение максимальной суммы

Очень важно понимать максимальное количество токенов, которое вы можете получить за данный вход.

ПРИМЕЧАНИЕ: В Uniswap V2 Periphery у вас есть все вспомогательные функции для реализации этой математики.

Пример:
У нас есть пул DAI/WETH со следующими резервами:
— DAI: 100 000
— ВЕТ: 20

Мы хотим обменять 1 WETH на максимальное количество DAI.

Максимальное количество DAI, которое мы получим за 1 WETH (для этого пула), составляет 4748,29.

Математика, которую мы только что сделали, также может быть представлена в коде (эта функция взята из V2 Periphery):

Очень важно всегда делать эту математику правильно, чтобы избежать получения меньшего количества выходных токенов.

В качестве заключительного замечания по этой теме вам может быть интересно, что определяет переменную k?

K определяется при первом создании пула, а затем он растет каждый раз, когда появляется новая сделка. Если мы обратимся к нашему предыдущему примеру, если трейдер выполняет своп сразу после того, что мы сделали, k для его сделки будет newK предыдущей сделки.

Арбитраж

Арбитраж — одна из самых важных концепций для понимания того, как работает Uniswap. Хотя эта концепция не уникальна для Uniswap, она применима практически ко всем проектам DeFi. Чтобы лучше понять эту концепцию, первое, что нам нужно спросить себя, как Uniswap узнает цену данного токена?

Например, когда вы обмениваете WETH на DAI в Uniswap, как протокол узнает, что цена WETH по отношению к DAI равна x?

Короткий ответ заключается в том, что Uniswap понятия не имеет, какова реальная цена. На самом деле цена соответствует внешнему миру из-за стимулов.

Единственное, что протокол действительно применяет для успешного обмена, — это «формула постоянного продукта».

Рассмотрим пример.

Предположим, что в Uniswap есть пул DAI/WETH. Цена WETH в Uniswap торгуется на отметке 3000 DAI. Мы можем получить цену, разделив количество резервов DAI на количество резервов ETH (это не та сумма, которую вы получите, мы рассчитали это в предыдущем разделе).

Теперь появилась возможность!

Цена WETH торгуется на уровне $3,200 на Coinbase. Существует разница в 200 долларов США между ценой WETH Uniswap и Coinbase. Это создаст возможность арбитража, и сразу же арбитражер (программное обеспечение бота) купит WETH в Uniswap и продаст его в Coinbase до тех пор, пока цена не совпадет.

Так цены в Uniswap соотносятся с внешним миром арбитражерами, которые постоянно ищут возможность арбитража. Существуют разные виды арбитража (не будем вдаваться в подробности). Но для приведенного примера это не атомарный арбитраж.

Другими словами, риски выше, потому что есть вероятность, что, когда арбитражер пытается получить прибыль в Coinbase, цены уже находятся на уровне номинала (потому что другой арбитражер сделал это первым). Вот почему самый безопасный арбитраж осуществляется в цепочке, потому что транзакции являются атомарными, то есть, если что-то не удается, вся транзакция возвращается (за вычетом платы за газ).

Итак, в заключение, Uniswap не знает о внешних мировых ценах. Благодаря арбитражникам цены практически идентичны внешнему миру.

Непоправимая потеря

Непостоянные потери для поставщиков ликвидности — это изменение в долларовом выражении их общей доли в данном пуле по сравнению с простым владением активами.

Давайте создадим пример, чтобы лучше понять это.

Представьте, что у Алисы есть токены в кошельке, поэтому она хочет стать поставщиком ликвидности, чтобы получать некоторую доходность. Для нашего примера она собирается создать новый пул DAI/WETH в Uniswap. Текущая рыночная цена WETH составляет 3,000 долларов, поэтому, чтобы избежать арбитража, ей нужно будет инициировать пул, поставив 3000 DAI на каждый WETH.

Она инициирует пул, вложив 10 WETH и 30 000 DAI общей стоимостью 60 000 долларов США (мы должны помнить об этом количестве).

*Чтобы упростить задачу, мы не будем принимать во внимание комиссию за транзакцию.

Отлично, так что теперь Алиса стала LP этого пула DAI/WETH Uniswap. Теперь давайте представим, что цена WETH вырастет до 4,687 долларов. Как вы уже должны знать, это создаст огромную возможность для арбитража, поэтому арбитражер сразу же будет покупать ETH в пуле Алисы, пока цена не будет на одном уровне с внешним рынком.

Итак, после некоторого арбитража пул Алисы будет выглядеть примерно так (опять же, мы не рассматриваем комиссии за транзакции):

Как мы видим, после некоторого арбитража, теперь в пуле 8 WETH вместо 10 и 37 500 DAI вместо 30 000 (то, что изначально поставляла Алиса). Общая сумма пула теперь составляет $75 000 ((8ETH * $4 687,5) + 37 500)).

Здесь возникает проблема: если бы Алиса просто владела активами, у нее было бы больше денег. Помните, что изначально она поставляла в пул 10 WETH и 30 000 DAI. Итак, в итоге у нее был непостоянный убыток в размере 1,875 долларов:

Для этого примера мы не рассматривали прибыль от комиссий за транзакции (0,3%), но концепция остается неизменной.

Он называется «непостоянным», потому что убыток применяется только в том случае, если LP продаются в настоящее время. Если активы колеблются, то эти потери можно смягчить.

Надеюсь, концепция уже ясна! Если вы все еще сомневаетесь, я настоятельно рекомендую посмотреть это видео.

Ликвидность / Токены LP

Большие объемы ликвидности — вот что делает Uniswap привлекательной системой для использования. Без достаточной ликвидности система становится неэффективной, особенно для крупных сделок по отношению к общей ликвидности пула.

Примечание: Для крупных сделок (относительно пула) лучше использовать агрегатор, чтобы максимально уменьшить проскальзывание.

Хорошо! Итак, первое, что нам нужно понять, это то, как чеканятся и сжигаются токены LP?

Когда поставщик ликвидности предоставляет ликвидность пулу, он получает свои токены LP пропорционально своему объему ликвидности.

Давайте распакуем это.

Пул Uniswap — это просто смарт-контракт, который «вмещает» определенное количество резервов (токен x и y). Поставщики ликвидности предоставляют эти резервы. Но у этого пула также есть собственный токен под названием «токен LP». Этот токен уникален для каждого пула, и основная цель состоит в том, чтобы отслеживать ликвидность, которую ввел каждый поставщик ликвидности. Вы можете думать об этом токене как о сертификате вашей ликвидности. За этот токен также начисляется комиссия в размере 0,3%, которую взимает Uniswap.

Пул смарт-контрактов импортирует «UniswapV2ERC20.sol» (вы можете найти его здесь), который по сути является контрактом, имеющим базовую функциональность ERC20 (минтинг, запись, передача и т. Д.).

Токены LP «хранятся» внутри этого UniswapV2ERC20.sol. Каждый раз, когда поставщик ликвидности предоставляет ликвидность, на его адрес чеканится некоторое количество токенов. И наоборот, каждый раз, когда поставщик ликвидности забирает ликвидность, токены LP сжигаются.

Итак, как это работает?

Если мы подумаем об этом с высокого уровня, поставщик ликвидности может а) предоставить ликвидность и б) взять ликвидность. Uniswap реализует этот механизм в двух функциях: mint(mint() и burn().

Давайте сначала перейдем к функции мяты. С полной реализацией функции можно ознакомиться здесь.

Чтобы рассчитать токены LP, которые получает поставщик ликвидности, нам сначала нужно знать, есть ли ликвидность или это первый раз, когда кто-то предоставляет ликвидность.

Вот фрагмент кода (внутри функции mint), который нас интересует:

MINIMUM_LIQUIDITY — постоянная переменная, равная 1000:

Чтобы лучше понять это, мы рассмотрим пример.

Примечание: В Ethereum валютой для вычислений является WEI (ETH * 10 **18). Это также относится к большинству токенов ERC-20. Для простоты мы будем записывать числа без 18 нулей, но каждый раз, когда появляется жестко заданное число, например MAXIMUM_LIQUIDITY = 1000, мы просто приспосабливаем это число.

Предположим, что Alice (поставщик ликвидности) только что создала новый пул DAI/WETH.

Она поставит 10 000 DAI и 2 WETH:

До Алисы общий запас пула был равен 0, поэтому первое, что произойдет, это отчеканить 1000 токенов на адрес 0 (это делается для поддержания минимальной ликвидности):

Примечание: Каждый раз, когда есть монетный двор, переменная totalSupply обновляется:

Затем мы получаем количество токенов LP, которые будут отчеканены поставщику ликвидности (Алисе). Для нашего примера результат составил 141,42.
Опять же, это формула для определения того, что:

Отлично, так что теперь наш пул состоит из следующего:

Общее предложение означает общее количество токенов LP, находящихся в обращении (не путайте его с резервами x и y).

Теперь давайте представим, что Алиса хочет вывести все DAI и WETH, которые она положила в пул. Для простоты предположим, что резервы остаются прежними.

Для того, чтобы Алиса убрала свою ликвидность, ей нужно вызвать функцию burn, но перед этим ей нужно перевести все свои LP-токены на адрес пула. Давайте разберемся, как это работает. Вот полная реализация функции записи:

Если мы видим строку 187, переменная ликвидность — это количество токенов LP, которые хранятся в адресе контракта. Вот почему я упомянул, что Алисе необходимо передать токены LP перед вызовом функции. Затем в строках 191 и 192 указываются суммы жетонов x и y, которые должны быть переданы Алисе.

Следуя нашему примеру, давайте распакуем это:

Как видите, amount0 = 10000 и amount1 = 2. Это первоначальная сумма, которую поставила Алиса!

После того, как суммы подсчитаны, их переносят, а затем сжигают.

Это волшебство LP-токенов!

В качестве последнего замечания по этой теме, если мы помним, протокол взимает комиссию за торговлю в размере 0,3%. Эта комиссия идет поставщикам ликвидности. Технически комиссия начисляется за счет увеличения резервов x и y в каждой сделке. Это положительно повлияет на количество токенов LP, которыми владеет каждый поставщик ликвидности (пропорционально их активам).

Если мы вернемся к функции сжигания, эти две строки кода вычисляют количество токенов x и yx, которые нужно отправить поставщику ликвидности, когда он хочет обменять свои токены LP на токены x и y.y

Каждый раз, когда трейдер совершает своп, ему необходимо отправить буфер в размере 0,3% относительно размера сделки. Эти 0,3% увеличивают резервы пула. Таким образом, увеличивается значение balance0 и balance1 в функции записи.

Внедрение CORE системы

Теперь, когда у нас есть четкое представление об отдельных компонентах, давайте перейдем к фактической реализации.

Эта часть будет намного быстрее, так как основные темы уже были охвачены.

Архитектура протокола

Uniswap V2 — это система бинарных смарт-контрактов. Он состоит из V2-Core и V2-Periphery .

  • V2-Core — это низкоуровневые базовые контракты. Эти смарт-контракты отвечают за функциональность системы.
  • V2-Periphery — это вспомогательные контракты, которые позволяют интерфейсным приложениям и разработчикам интегрироваться с основными контрактами, применяя проверки безопасности и абстрагируясь от определенных вещей.

Проще говоря, V2-Core — это часть протокола, которая реализует основные функции (подкачка, чеканка, запись и т. д.). Напротив, V2-Periphery представляет собой один слой выше. Это набор контрактов и библиотек, которые упрощают интеграцию для разработчиков.

Команда Uniswap также разработала этот модульный подход к кодовой базе, чтобы уменьшить критически важные для безопасности уязвимости, имея минимум в V2-Core. Другими словами, они реализовали только то, что необходимо для V2-Core, поэтому для аудита требуется меньше кода (следовательно, более безопасно). Все вспомогательные функции были перенесены в V2-Periphery.

Мы сосредоточимся только на V2-Core. Простая причина заключается в том, что если вы знаете, как работает V2-Core, вы также знаете, как работает V2-Periphery (но не наоборот).

Опять же, вы можете найти репозиторий V2-Core здесь.

Существует три основных контракта:

  1. UniswapV2ERC20.sol: Этот контракт отвечает за обработку токенов LP. Это базовый контракт ERC20, поэтому мы не будем останавливаться на этом.
  2. UniswapV2Factory.sol: Это фабрика, которая отвечает за развертывание новых пулов (пар), а также за их отслеживание.
  3. UniswapV2Pair.sol: Здесь происходит действие (реализация пула).

Фабрика Uniswap V2

Опять же, заводской контракт в основном отвечает за создание новых пар контрактов (UniswapV2Pair.sol). Вот заводской контракт V2 на Etherscan.

Чтобы сконцентрировать ликвидность, на пару может быть только один смарт-контракт. Другими словами, если уже есть контракт на пару WETH/UNI, фабрика не позволит вам создать такую же пару. Конечно, вы можете обойти это (развернув парный контракт напрямую), но основной принцип здесь заключается в том, чтобы максимально сконцентрировать ликвидность, чтобы избежать проскальзывания цены и иметь больше ликвидности.

Вот функция, которая создает пары в UniswapV2Factory:

Одна вещь, которая, вероятно, все еще остается под вопросом, заключается в том, что определяет порядок x и y?

Пары сгруппированы по шестнадцатеричному порядку, как вы можете видеть в строке 25:

Строка 27 проверяет, уникальна ли пара:

Строки 30–32 создают пару (UniswapV2Pair.sol) с помощью create2:

Затем он инициализирует контракт адресом каждого токена и добавляет их в массив и сопоставление.

Еще одним важным моментом является то, что фабрика может включить комиссию за взимание процента за своп (вы можете проверить это сами; это довольно тривиально).

Вот и все для завода. Это очень простая и понятная заводская реализация, ничего сложного.

Пара Uniswap V2

UniswapV2Pair.sol является основой UniswapV2. Вот договор.

Этот контракт отвечает за работу с уникальными пулами (каждый пул = один контракт).

Основная функциональность этого контракта заключается в swapmint и burn. Мы уже подробно рассмотрели, как работают эти компоненты, поэтому мы просто дадим им одну быструю кисть.

Swap(): Функция swap является звездой Uniswap. Каждый раз, когда вы хотите обменять один токен на другой, вызывается функция. Вы можете увидеть полную реализацию функции здесь. Основная задача этой функции состоит в том, чтобы принудить к тому, чтобы newK был больше или равен k:

Mint(): Функция mint отвечает за чеканку токенов LP каждый раз, когда поставщик ликвидности предоставляет ликвидность. Вы можете найти его здесь.

Burn(): Функция сжигания отвечает за сжигание токенов LP каждый раз, когда поставщик ликвидности хочет вывести свои активы из пула. Вы можете найти его здесь.

Непостоянный убыток в Uniswap V2, V3

Содержание:

  • Погружение в то, как работает Uniswap V2
  • Непостоянный убыток для Uniswap V2
  • Погружение в то, как работает Uniswap V3
  • Непостоянный убыток для Uniswap V3
  • Проблемы поставщиков ликвидности и почему эта тема очень важна для них

Погружение в то, как работает Uniswap V2

Uniswap — это децентрализованная биржа, где вы можете обменять один токен на другой. Ордеров на покупку или продажу нет, а цена определяется по формуле:

x — количество токена1

y — количество токена2

k — константа, которая определяется начальными условиями

Пусть в какой-то момент времени в пуле было x, y количества токенов, и рассмотрим человека, который хочет купить несколько токенов2 (y) за токены1 (x). Тогда происходит следующее:

Отсюда мы можем найти \Delta y — количество токенов2, которое он получает за свои токены1.

Откуда берется ликвидность в этих пулах?

Есть еще одна часть пользователей, которая предоставляет ликвидность таким пулам — поставщики ликвидности. Они вносят свои токены в эти пулы и получают комиссионные за каждый обмен токенов в этом пуле. Например, при описанном выше свопе сначала берется комиссия, а уже потом происходит обмен токенов.

Комиссия за обмен распределяется между поставщиками ликвидности в соответствии с вкладом токенов в этот пул.

После обмена общее количество токенов первого типа увеличилось, а второго — уменьшилось, соответственно, изменилось и соотношение количества токенов, которые у них есть в пуле, и для поставщиков ликвидности.

Когда другой пользователь совершал обмен токенов, цена одного токена менялась на другой. Также изменилось общее соотношение количества токенов в пуле и соотношения каждого поставщика ликвидности. Количество токенов, которые стали дороже, уменьшилось, а тех, которые подешевели, увеличилось.

В результате изменилась общая стоимость активов каждого поставщика ликвидности.

Один дифференциал обычно считается положительным, второй — отрицательным, получаем

P — цена токенов2 в пересчете на токены1

Отсюда мы получаем

Давайте выведем формулу для непостоянного убытка Uniswap V2:

Общая стоимость активов в зависимости от цены:

Пусть в начальный момент времени пользователь планирует вложить токены в Uniswap V2 в количествах x и y. На начальный момент времени общая стоимость этих токенов равна:

Если человек не вкладывал токены в Uniswap, а просто «держит» их, его суммарный портфель, в зависимости от цены, определяется:

Для простоты рассмотрим: P = P_0 * k, k > 0. Тогда получаем

Таким образом, вы можете увидеть PnL пользователя по сравнению с тем, как он не вкладывал токены в Uniswap, а просто пассивно хранил их в кошельке.

Иногда непостоянным убытком называют просто зависимость общей стоимости позиции от цены, потому что не всегда интересно сравнивать только с удержанием токена в начальной пропорции.

Погружение в то, как работает Uniswap V3

Важный:

Здесь я намеренно опускаю некоторые детали, связанные с реализацией Uniswap V3 Solidity (например, не все ценовые тики активированы, разные токены имеют разные десятичные дроби и т. д.), потому что в этом случае они не сильно влияют на результат, а усложняют статью.

В случае Uniswap V3 поставщики ликвидности могут выбирать, в каком ценовом диапазоне будут использоваться их токены. Таким образом, предоставляемая ликвидность распределяется неравномерно по всему диапазону [0, +\inf], она равномерно распределяется по ценовому диапазону спецификатора [P_a, P_b].

Это выгодно, потому что теперь, установив более узкий ценовой диапазон, доля ликвидности пользователя по определенной цене (на определенном «ценовом тике») становится больше, поэтому он будет зарабатывать больше комиссий. Тем не менее, непостоянные потери также увеличиваются.

Гипербола Uniswap V3 определяется следующим образом:

Если мы сделаем изменение переменных, мы можем привести эту гиперболу к «обычному виду»:

В случае, когда неравенство удовлетворено, позиция Uniswap активна и генерирует комиссии.

Теперь выражаем x, y:

Когда цена становится равной P_b, ликвидность пользователя больше не участвует в обменах и не получает комиссию. У него также теперь есть 0% токенов1 (цена которых выросла) и 100% токенов2. Точно так же, когда цена становится равной P_a или даже ниже. Тогда у пользователя есть 100% токенов2 и 0% токенов1.

Количество токенов, когда цена поднялась выше верхней цены:

Количество токенов, когда цена упала ниже более низкой цены:

Непостоянный убыток для Uniswap V3

Аналогично выводу Uniswap V2 Impermanent Loss, давайте запишем общую стоимость позиции в зависимости от цены:

Возьмем P = P_0 * k (как и раньше)

Если пользователь не открывал позицию Uniswap, а просто удерживал ее в том же соотношении, что и в начальный момент времени:

Непостоянная потеря:

Давайте немного упростим:

Эта формула действительна, когда неравенства, о которых я писал чуть выше, выполняются. На всякий случай напишу еще раз:

Проблемы поставщиков ликвидности

Теперь давайте посмотрим на профиль риска пользователя, который вложил ликвидность в Uniswap V3. Риск-профиль — в данном случае означает зависимость суммарной стоимости позиции от цены.

При сильных падениях цены, во-первых, у пользователя будут все дешевле и дешевле токены, соответственно, он будет терять все больше и больше денег — поэтому можно говорить о том, что у него есть незащищенный риск, связанный с ценой базового актива.

Пользователь, скорее всего, захочет быть менее подверженным изменениям базовой цены и по-прежнему получать комиссию Uniswap в качестве поставщика ликвидности.

Что он может сделать?

Он может снизить риски, хеджируя свои позиции.

Uniswap V3 Дельта-нейтральная стратегия

Часть 1

В этой статье мы углубимся в Uniswap V3, раскроем идею концентрированной ликвидности, разберем ее ключевые уравнения и выделим риски непостоянных потерь в концентрированных пулах ликвидности. Кроме того, мы покажем вам, как наши стратегии решают эти проблемы, чтобы свести к минимуму IL и максимизировать доходность.

ТЛ; ДОКТОР

  1. В Uniswap V3 была введена концентрированная ликвидность, оптимизирующая эффективность капитала, но увеличивающая риск непостоянных потерь.
  2. Пример с Бобом показывает, что предоставление ликвидности в Uniswap V3 представляет в 27 раз более высокий риск непостоянных потерь, чем V2 во время эквивалентных колебаний цен.
  3. Стратегия Delta Neutral от Neutra Finance для Uniswap V3 направлена на получение торговых комиссий при минимизации рисков за счет хеджирования волатильности ETH, автоматического начисления вознаграждений и ребалансировки на основе данных.

Uniswap V3: новая эра в децентрализованных финансах

С введением лицензии Uniswap V3 этим летом в ландшафте децентрализованных финансов (DeFi) наблюдался всплеск децентрализованных бирж с концентрированной ликвидностью (DEX). Uniswap V3, обладая расширенными функциями, быстро превзошел по объему торгов своего предшественника V2.

Когда пользователи выбирают агрегатор DEX, их транзакции теперь преимущественно проходят через V3. Эта эволюция не осталась незамеченной арбитражерами, которые используют возможности Uniswap V3, тем более, что арбитражная деятельность является основным источником комиссионного дохода.

Концентрированная ликвидность: переломный момент

Concentrated Liquidity

Uniswap Labs представила Uniswap V3 с функцией под названием Concentrated Liquidity. Эта функция позволяет поставщикам ликвидности (LP) устанавливать определенный ценовой диапазон, называемый «диапазоном спреда». По сути, провайдеры определяют минимальные и максимальные цены, по которым они готовы торговать своими активами в пуле.

В то время как это оптимизирует эффективность капитала, это также увеличивает вероятность того, что провайдеры ликвидности понесут непостоянные убытки, особенно если они выберут узкий диапазон спреда. Если цена актива выйдет за пределы этого диапазона, провайдеры ликвидности перестанут получать торговые комиссии. Чтобы продолжать зарабатывать, провайдеры ликвидности должны гарантировать, что их позиция в диапазоне спреда остается в пределах текущей торговой цены, что часто требует ручной ребалансировки и постоянного мониторинга рынка.

Непостоянный убыток в Uniswap V3

Непостоянные убытки возникают, когда цены на активы в пуле ликвидности расходятся, что потенциально может привести к убыткам для провайдеров ликвидности по сравнению с простым владением активами. В контексте пулов ликвидности Uniswap V3, чем более узкий диапазон вы выберете, тем выше потенциал для получения комиссионных. Однако это также означает более высокий риск непостоянных потерь. Думайте об этом как о компромиссе: более высокий потенциальный доход сопряжен с повышенными рисками.

Если цена выходит за пределы выбранного диапазона, провайдеры ликвидности остаются с одним типом активов и не будут получать никаких торговых комиссий до тех пор, пока цена снова не войдет в указанный диапазон. Провайдеры ликвидности должны найти баланс между оптимизацией комиссионных доходов и управлением рисками, связанными с движением цен за пределами выбранного ими диапазона спреда.

Практический взгляд на предоставление ликвидности: знакомьтесь, Боб

Чтобы лучше понять риск по предоставлению Liqudity на Uniswap V3, давайте рассмотрим Боба, поставщика ликвидности. С введением концентрированной ликвидности Боб теперь имеет возможность определять конкретный ценовой диапазон для своих активов, адаптируя свою стратегию предоставления ликвидности в соответствии со своими рыночными ожиданиями.

Обеспечить ликвидность не так просто, как иметь соотношение 1:1 с парами токенов. Сумма будет определяться нижней ценой тика и/или верхней ценой тика, проведем расчеты следующим образом:

Зададим сценарий:

  • Текущая цена ETH: $2000
  • Активы Боба: 1 ETH и еще не определенное количество USDC
  • Выбранный Бобом диапазон спреда: 7,5% по текущей цене ($2000)
    — Верхняя граница (тик): $2150
    — Нижняя граница (тик): $1850

Определение начальной ликвидности:

Сколько USDC должен предоставить Боб для своего 1 ETH? Давайте разберемся:

1. Начальная ликвидность ETH (Lx):

Где:X = Количество Ethereum (в данном случае 1 ETH)Px = Текущая цена ETH ($2000)Pb = Цена верхнего тика ($2150)

2. Начальная сумма USDC (Y):

Где:Pa = Более низкая цена тика ($1850)

Используя приведенные выше уравнения, мы можем определить, сколько USDC Bob должен предоставить в качестве LP следующим образом:

Применяя приведенные выше формулы, Боб определяет, что ему нужно примерно 2153 USDC, чтобы предложить ликвидность вместе с его 1 ETH.

Но что произойдет, если цена ETH упадет до $1900?

Расчет будущей композиции LP Боба

Чтобы определить состав пула Боба после падения цены, нам нужно знать будущий состав LP Боба, используя уравнения ниже:

1. Будущая сумма ETH (Fx)

Где:FPx = Будущая цена ETH ($1900)

2. Будущая сумма USDC (Fy)

Используя приведенные выше уравнения, мы можем рассчитать состав LP Боба следующим образом:

и

Исходя из этих расчетов, если цена ETH упадет до $1900, пул ликвидности Боба будет состоять примерно из 1,7315 ETH и 727,04 USDC.

Расчет непостоянного убытка Боба (IL):

Таким образом, IL представляет собой потенциальный убыток от предоставления ликвидности, а не просто от удержания активов.

Чтобы рассчитать непостоянный убыток Боба, нам нужно узнать стоимость активов Боба, если он не предоставил ликвидность, и стоимость активов Боба в пуле ликвидности, используя следующие уравнения:

1. Стоимость актива, если он удерживается (tvH)

2. Стоимость активов в пуле ликвидности (tvL)

Используя приведенные выше уравнения, мы можем рассчитать стоимость активов Боба, если бы он просто держал их следующим образом:

и

Таким образом, из приведенных выше расчетов мы знаем, что активы Боба были бы оценены в $4052,98, если бы они были удержаны, и $4016,87если бы они были предоставлены в качестве ликвидности.

Наконец, чтобы определить непостоянный убыток Боба (IL), нам просто нужно вычислить:

Исходя из этих расчетов, непостоянный убыток Боба составит примерно $-36,11 или -0,89%.

Однако, что, если Боб вместо этого предоставит LP в традиционном AMM (Uniswap V2)?

Uniswap V2 использует автоматизированную систему маркет-мейкеров (AMM), гарантируя, что произведение количества двух токенов в пуле остается постоянным.

Это представлено формулой АММ:

Где:Y = Количество USDCX = количество ETHL² = постоянная величина

Зададим сценарий:

  • Текущая цена ETH: $2000
  • Активы Боба: 1 ETH и 2000 USDC
  • Будущая цена ETH: $1900

Из приведенной выше формулы AMM мы можем определить значение как:

L²=2000 * 1
L²=2000
Л=44,72135955

И, исходя из формулы AMM, тогда мы знаем значение y и x следующим образом:

тогда

Для определения начального значения ликвидности (tv0) можно использовать следующую формулу:

1. Начальное значение ликвидности (tv0)

Теперь, если цена ETH упадет до $1900, давайте рассчитаем будущее значение ликвидности (tvL):

2. Будущая стоимость ликвидности (tvL):

Где:FPx = Будущая цена ETH ($1900)

3. Если бы Боб не предоставил LP на Uniswap V2, стоимость удерживаемого актива (tvH):

Теперь мы знаем, что если цена ETH упадет до $1900, то за счет предоставления ликвидности активы Боба уменьшатся до $3 898,72 (tvL), тогда как владение ими оценит их в $3 900 (tvH).

Теперь давайте рассчитаем непостоянные убытки, которые понесет Боб, предоставляя ликвидность на Uniswap V2.

4. Расчет IL производится по следующей формуле:

IL = tvL — tvH
IL = 3898,7177379236–3900
IL = -1,2822620764 или -0,0328759494%

Где:tvL = Будущая стоимость актива ЛиквидностьtvH = Стоимость актива, если bob не предоставил LP

Определим, насколько больше непостоянный убыток (IL) на Uniswap V3 по сравнению с Uniswap V2, можно воспользоваться формулой:

Заключение

  • На Uniswap V2: Когда Боб предоставляет 1 ETH по первоначальной цене $2000, а затем цена падает до $1900, он испытывает непостоянные убытки в размере примерно -0,0329%.
  • На Uniswap V3: При тех же условиях непостоянный убыток Боба составляет около -0,89%.
  • непостоянный убыток на Uniswap V3 примерно в 27 раз больше, чем на Uniswap V2 .

Это подчеркивает значительную разницу в непостоянных убытках между Uniswap V2 с традиционным AMM и Uniswap V3 с концентрированной ликвидностью при одном и том же движении цены.

Торговля с кредитным плечом, как видно в Uniswap V3, может быть палкой о двух концах. В то время как концентрация позиции позволяет поставщикам ликвидности зарабатывать большую часть торговых комиссий, она также повышает риск непостоянных потерь.

Как устранить проблему?

Исторически сложилось так, что проблема непостоянных потерь решалась путем диверсификации активов или выбора более широких ценовых диапазонов при предоставлении ликвидности.

Также решением стали управляющие ликвидностью, которые активно корректируют позиции в ответ на движения рынка. Тем не менее, эти стратегии часто сопряжены с компромиссами, либо в виде снижения комиссионных доходов, либо в виде необходимости постоянного вмешательства. Модель концентрированной ликвидности Uniswap V3, будучи более сложной, чем V2, делает роль менеджера ликвидности жизненно важной и требовательной.

Чтобы справиться с этой проблемой, Neutra Finance разработала стратегию Delta Neutral, специально разработанную для получения торговых комиссий Uniswap V3 при минимизации рисков.

Дельта-нейтральная стратегия Uniswap V3 от Neutra Finance

Дельта-нейтральная стратегия Uniswap V3 от Neutra Finance будет выделяться на рынке DeFi. Это не просто очередная стратегия ликвидности. Эта стратегия тщательно разработана для хеджирования Aave и автоматической ребалансировки активов в рамках определенного коэффициента задолженности. Он предлагает надежное решение извечной проблемы непостоянных потерь.

Плюсы дельта-нейтральной стратегии

  • Оптимизированная доходность: Наша стратегия направлена на максимизацию комиссионного дохода, предоставляя поставщикам ликвидности максимально возможную прибыль.
  • Минимизация непостоянных потерь: Благодаря интеллектуальной ребалансировке наше хранилище минимизирует риски, связанные с непостоянными потерями, что является распространенной проблемой при предоставлении ликвидности.
  • Автоматизированное управление: Попрощайтесь с ручной настройкой. Наше хранилище заботится о позиционировании активов на основе рыночных данных в режиме реального времени.

Подробнее о нашей стратегии Delta Neutral

  • Хеджирование волатильности ETH: Чтобы защититься от непредсказуемых движений цены ETH, мы применяем двойной подход:
    — Заимствование у AAVE: Мы заимствуем ETH у AAVE и впоследствии вносим его в пул Uniswap V3 ETH-USDC. Эта стратегия предназначена для создания рыночно-нейтрального воздействия на цену ETH, гарантируя, что на нашу позицию не повлияет волатильность цены.
    — Ребалансировка для предотвращения IL: Регулярная ребалансировка нашей позиции имеет решающее значение для предотвращения накопления непостоянных убытков. Постоянно отслеживая и корректируя, мы гарантируем, что наши активы остаются в оптимальных ценовых диапазонах.
  • Минимизация IL на основе данных: Наша стратегия сокращает непостоянные убытки за счет использования проверенных данных о прошлых вознаграждениях и комиссиях с последующей ребалансировкой активов в оптимальных ценовых диапазонах на основе коэффициента задолженности.
  • Автокомпаунд: Наша стратегия автоматически увеличивает вознаграждение LP. Автоматическое компаундирование происходит при каждой ребалансировке стратегии, что делает ее более экономичной.
  • Стремление к совершенству: Мы постоянно отслеживаем и совершенствуем нашу стратегию, чтобы предоставить наиболее эффективное решение для поставщиков ликвидности.

Используя этот подход, поставщики ликвидности не только получают оптимизированную доходность, но и находят надежный щит от непредсказуемых колебаний рынка. С Uniswap V3 Delta Neutral Vault от Neutra Finance мы не просто предлагаем решение; Мы совершаем революцию в предоставлении ликвидности.

Устройтесь поудобнее и расслабьтесь, Нейтроны ☕️

Предстоящая статья: Узнайте больше о стратегии и результатах тестирования на истории.

Neutra Finance

Neutra Finance стремится сделать хеджированные риски, устойчивые инвестиционные стратегии легко доступными для всех и везде с помощью автоматизированных хранилищ стратегий. Мы стремимся сделать этот процесс простым и легким, чтобы каждый, кто хочет защитить свои средства и получать стабильную прибыль, мог сделать это в любых рыночных условиях.

Внеся свой капитал в наши хранилища, вы можете расслабиться и зарабатывать APY выше рыночных стандартов на высокопроизводительных продуктах DeFi, в то время как стратегия сделает все остальное.

Часть 2

Мы в восторге от успеха, которого достигло наше рыночное нейтральное хранилище USDC LP. Тем не менее, мы считаем, что всегда есть место для роста и инноваций. С непоколебимым стремлением улучшить ваш инвестиционный опыт, мы тщательно совершенствуем наши стратегии. Наша цель? Чтобы повысить свою доходность, тщательно управляя рисками.

В 3 квартале 2023 года наша команда инициировала комплексную стратегическую перестройку. Мы переоценили наши хранилища и провели мозговой штурм по инновационным подходам, Результат? Решающий поворот: перевод нашего хранилища на стратегию 100% Uniswap V3 Delta Neutral. Этот шаг использует расширенные функции Uniswap V3 для усиления инвестиционного потенциала Neutra.

В этой статье части 2 мы рассмотрим наши усовершенствованные стратегии и результаты тестирования на истории, направленные на переосмысление рыночного нейтралитета в пространстве DeFi.

  1. Перевел хранилище nUSDC с Camelot DEX на полноценную стратегию Uniswap V3 Delta Neutral, используя концентрированную ликвидность Uniswap для улучшения инвестиционного подхода.
  2. Эта стратегия точно балансирует между продажей ETH через Aave и длинными позициями в пуле ETH/USDC Uniswap V3, нацеленным на максимизацию комиссии при одновременном снижении воздействия на рынок.
  3. Имеет алгоритм автоматической ребалансировки с автоматическим компаундированием, оптимизацией баланса портфеля и управлением рисками в ответ на динамику рынка.
  4. Обширное тестирование, включающее около 260 000 точек данных, помогло нам усовершенствовать и определить оптимальные настройки для нашей стратегии.

Назад к основам: Что такое Delta Neutral?

Delta Neutral — это стратегия, предназначенная для уравновешивания волатильности рынка. Он предполагает одновременное открытие коротких и длинных позиций для поддержания позиции, нейтральной к движениям рынка. Цель состоит в том, чтобы заработать комиссию или проценты, сродни предоставлению ликвидности, при этом минимизируя подверженность колебаниям рынка. Именно здесь функция «Концентрированная ликвидность» Uniswap V3 становится ключевой, поскольку она обеспечивает более эффективную капитализацию по сравнению с традиционным AMM (x * y = k).

Прежде чем углубляться, важно понять, как работает Uniswap V3 и связанные с ним риски. Для получения подробного объяснения мы рекомендуем вам обратиться к части 1 нашей серии. 

Uniswap V3, как описано в части 1, представляет более высокий риск непостоянных потерь, чем V2 — потенциально до 27 раз больше, исходя из наших расчетов. Neutra сосредоточилась на минимизации этих рисков, извлекая выгоду из потенциала Uniswap V3 для получения комиссий.

По мере того, как мы углубляемся в тонкости нашей стратегии, важно понимать, что достижение дельта-нейтральности в динамичном мире DeFi — это одновременно и искусство, и математика. Наш подход сочетает в себе сложные механизмы протокола Aave с расширенными положениями ликвидности Uniswap V3. Это сочетание методов является ядром нашей стратегии, направленной на балансировку и компенсацию рыночных рисков при одновременной оптимизации доходности.

Хеджирование с помощью Aave

В погоне за Delta Neutral Neutra использует протокол кредитования Aave для коротких позиций ETH, заимствуя их. Этот заимствованный ETH затем используется для открытия длинной позиции путем предоставления пула ликвидности Uniswap V3. Этот подход иллюстрирует суть дельта-нейтральной стратегии — компенсировать нашу подверженность движениям цены ETH.

Открывая короткую позицию ETH через Aave (т. е. заимствуя ETH), мы эффективно страхуемся от потенциального снижения стоимости ETH. В то же время, размещая тот же ETH в пулы ликвидности Uniswap V3, мы открываем «длинную позицию» по ETH. Это означает, что мы можем извлечь выгоду из потенциального комиссионного дохода, полученного от пула ликвидности, который может включать торговые комиссии от транзакций ETH/USDC.

Для количественной оценки нашего подхода мы используем следующие формулы для предложения и заимствования на Aave. Мы поставляем/одалживаем N USDC в Aave от общего депозита в качестве залога, определяемого следующим уравнением:

И мы заимствуем X количество ETH, используя следующее уравнение:

Эти уравнения используют 65%-ный коэффициент обеспечения для заимствования ETH, обеспечивая структурированную основу для нашего подхода.

Длинная позиция с пулом ликвидности Uniswap V3

Функция концентрированной ликвидности Uniswap V3 позволяет нам устанавливать определенные ценовые диапазоны для нашей ликвидности, оптимизируя генерацию комиссий на основе прогнозов рынка и волатильности. Динамически управляя ликвидностью и приспосабливаясь к рыночным движениям, мы повышаем потенциал получения благоприятной доходности, сохраняя при этом дельта-нейтральную позицию.

Мы используем заимствованный ETH(X) у Aave для обеспечения ликвидности в паре ETH/USDC на Uniswap V3.

Сумма USDC (Y) для сопряжения рассчитывается следующим образом:

Это предоставление ликвидности заключается не только в получении торговых комиссий; Он играет решающую роль в балансировке портфеля хранилищ. Предоставляя ликвидность в ETH/USDC, мы, по сути, открываем длинную позицию в ETH. Эта длинная позиция предназначена для того, чтобы уравновесить или «нейтрализовать» короткую позицию, которую мы создали, заимствовав ETH на Aave. По сути, мы открываем длинные позиции по ETH через Uniswap V3 и короткие ETH через Aave, стремясь сохранить рыночно-нейтральную позицию.

Таким образом, стратегическое позиционирование нашей ликвидности в Uniswap V3 состоит из двух частей: (1) для создания торговых комиссий и (2) для создания хеджирования против нашей короткой позиции. Такой подход к предоставлению ликвидности в сочетании с функцией концентрированной ликвидности Uniswap V3 расширяет наши возможности по оптимизации генерации комиссий.

Неиспользованные ETH, взятые в долг у Aave, будут использованы для оперативного погашения долга Aave после открытия позиции по ETH/USDC Uniswap V3. С помощью моделирования мы видим, что коэффициент задолженности стабильно остается на уровне 100%, в то время как коэффициент обеспечения поддерживается на уровне 65–64%. Ориентируясь на коэффициент обеспечения примерно в 67%, фактический коэффициент обеспечения должен колебаться в районе 66–67%.

Автоматическая ребалансировка с помощью Auto-Compound

Активное управление позициями нашей стратегии имеет решающее значение для поддержания дельта-нейтральной позиции. Чтобы облегчить эту задачу, мы разработали алгоритм автоматической ребалансировки. Этот алгоритм предназначен для непрерывного мониторинга рыночных условий и автоматической корректировки наших позиций соответствующим образом. Такой проактивный подход жизненно важен для балансировки рисков и возможностей, предоставляемых рынком, что в конечном итоге направлено на максимизацию потенциальной прибыли.

Ключевым компонентом этого алгоритма является поддержание работоспособности нашей подверженности риску при кредитовании Aave и обеспечение того, чтобы наша позиция в пуле ликвидности Uniswap V3 оставалась в оптимальном диапазоне, тем самым минимизируя непостоянные потери.

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

Наш алгоритм запускает автоматическую ребалансировку, когда коэффициент задолженности достигает заданного порога. Процесс ребалансировки включает в себя пересчет новой суммы депозита на основе двух основных сценариев, на которые влияют движения цены ETH и которые включают эффект автоматического компаундинга.

Ребалансировка при коэффициенте задолженности < 1 (снижение цены ETH)

В этом сценарии у нас больше ETH, чем USDC на LP Pool Uniswap V3, что означает, что наш долг ETH меньше, чем ETH в пуле. При выводе позиции LP ETH в хранилищах нашей стратегии превышает наш долг ETH. Действие включает в себя погашение долга Aave ETH, а затем конвертацию излишков ETH обратно в USDC.

Сумма нового депозита рассчитывается следующим образом:

Когда коэффициент задолженности падает ниже 1, наши ETH на провайдерах ликвидности превышают долг. Это побуждает нас обменять излишки ETH на USDC после погашения задолженности. Важно учитывать, что проскальзывание во время этого свопа немного уменьшит количество полученных USDC

Где:долг = долг ETH на AaveY’ = сумма USDC на LPX’ = сумма ETH на LPFp = цена ETHFeeX = заработанные комиссии в ETHFeeY = заработанные комиссии в USDCПроскальзывание = снижение стоимости актива (например, на 0,1%) во время свопа активов из-за разницы в цене между ожидаемой и исполненной сделкой.

Уравнения ребалансировки при коэффициенте задолженности > 1 (рост цены ETH)

В этой ситуации наш LP пул на Uniswap V3 содержит больше USDC, чем ETH. Это означает, что наш долг в ETH больше, чем ETH в пуле. При выводе средств из LP ETH в нашем кошельке меньше, чем наш долг ETH, поэтому нам нужно обменять достаточное количество USDC на ETH, чтобы полностью погасить долг Aave.

Сумма нового депозита рассчитывается следующим образом:

При коэффициенте задолженности больше 1 процесс включает в себя обмен USDC на ETH. Обратите внимание, что проскальзывание уменьшит конечную сумму ETH.

Как только новая сумма депозита определена, мы начинаем процесс заново: кредитование и заимствование на Aave, затем предоставление ликвидности Uniswap V3. Этот цикл повторяется, что позволяет адаптироваться к меняющимся рыночным условиям.

Эта автоматическая ребалансировка с функцией автоматического компаундирования является неотъемлемой частью нашей стратегии, позволяя быстро адаптироваться к изменениям рынка и максимизировать рост инвестиций, что отражается на цене nUSDC. Автоматизируя процесс ребалансировки с учетом сложного роста, мы стремимся поддерживать оптимальную дельта-нейтральную позицию, эффективно управляя рисками и стремясь к стабильной совокупной доходности.

Механика

Наша стратегия концентрированной ликвидности использует возможности DEX с концентрированной ликвидностью, таких как Uniswap V3, в сочетании с протоколами кредитования для создания эффективной позиции LP.

Процесс включает в себя следующие этапы:

  1. $USDC выделяется на стратегию.
  2. Часть USDC депонируется в AAVE и используется в качестве залога для заимствования $ETH.
  3. Оставшиеся USDC объединяются с ETH для создания LP на Uniswap V3.
  4. Используйте любые неиспользованные активы (возвраты от Uniswap) для погашения части долга Aave.
  5. Автоматически начисляйте заработанные комиссии во время каждого сбора урожая, что отражается на цене nUSDC.

Тестирование на истории

При совершенствовании нашей стратегии Uniswap V3 Delta Neutral основное внимание уделялось снижению непостоянных потерь (IL) и оптимизации общей производительности. Успех нашей стратегии зависит от точной калибровки двух критически важных параметров: (1) тикового спреда и (2) коэффициента задолженности.

Подход к тестированию:

Чтобы найти оптимальные настройки, мы провели комплексное тестирование на истории:

  1. Проверенные коэффициенты задолженности:
    Мы экспериментировали с пятью различными коэффициентами задолженности: 2,5%, 5%, 7,5%, 10% и 12,5% .
  2. Тиковый спред протестирован:
    Каждый коэффициент задолженности был сопоставлен с пятью тиковыми спредами: 5,0%, 10,0%, 15,0%, 20,0% и 25,0% .

Такой подход позволил создать 25 уникальных комбинаций, предлагающих широкий спектр сценариев для анализа.

Наша основная цель на этом этапе тестирования заключалась в том, чтобы определить наиболее эффективную комбинацию порога коэффициента задолженности и тикового спреда. Цель состояла в том, чтобы максимизировать годовую процентную доходность (APY) и активы под управлением (AUM) при минимизации просадки.

Результат

В ходе обширного тестирования, в котором приняли участие 25 уникальных комбинаций, было получено около 260 000 точек данных. Эти данные сыграли важную роль в предоставлении информации об эффективности каждой комбинации в различных рыночных условиях.

Анализируя и визуализируя данные в виде графиков, мы смогли разглядеть закономерности и тенденции. Эта информация имеет решающее значение в процессе принятия решений, помогая нам точно настроить нашу стратегию для достижения оптимальной производительности.

Рис 1. APY и просадка данных тестирования на истории

Учитывая огромный объем результатов, было важно привести информацию в более управляемую форму. Мы решили сосредоточиться на четырех лучших комбинациях, которые стабильно превосходили другие по нескольким показателям.

Критерии оценки

Чтобы обеспечить справедливую и объективную оценку каждой стратегии, мы создали систему подсчета баллов. Эта система учитывала несколько ключевых показателей, каждый из которых был нормализован для возможности прямого сравнения:

  • Нормализованная формула значения:

Используя нормализованные значения, мы затем вычисляем сводный балл для каждой стратегии:

  • Формула составного балла:

Для детального анализа была выбрана пятерка лучших стратегий, основанная на наибольших суммарных оценках.

Наиболее эффективные стратегии:

Где:D = Коэффициент задолженностиr = Тикспред

Подробный обзор метрик:

На графиках ниже представлено наглядное представление эффективности каждой стратегии по ключевым показателям: APY, просадка, AUM и количество ребалансов.

Рис 2. Годовая процентная доходность и просадка

График APY показывает первоначальную высокую волатильность по всем стратегиям, при этом в некоторых случаях наблюдается резкое снижение, прежде чем они стабилизируются. Со временем APY сходятся, что указывает на снижение волатильности и потенциальную адаптацию рынка. Стратегия коэффициента долга 7,5 и спреда 15 тиков неизменно показывает более высокую годовую процентную доходность, что указывает на эффективный баланс риска и доходности.

На графике просадки все стратегии испытывают временное снижение, возможно, связанное с такими событиями, как депег USDC. Эти просадки различаются по степени тяжести и частоте, отражая волатильность APY и подчеркивая присущие им риски. По мере продвижения периода некоторые стратегии, в частности, с коэффициентом долга 7,5 и 20-тиковым спредом, демонстрируют менее серьезные просадки, намекая на более стабильный или консервативный подход к управлению рисками.

Рис 3. AUM и счетчик ребалансировок

График роста AUM показывает положительную динамику по всем стратегиям, что отражает успешное накопление активов. Различные темпы роста и закономерности в разных стратегиях подчеркивают их индивидуальную эффективность. Стратегия с коэффициентом долга 7,5 и тиковым спредом 15, в частности, демонстрирует сильный рост.

Гистограмма счетчика ребалансировки отображает частоту корректировок позиций для каждой стратегии. Более высокий показатель в стратегиях с коэффициентом задолженности 7,5 и тиковым спредом 15 указывает на более активное управление. И наоборот, более низкие значения, например, в стратегии с коэффициентом задолженности 12,5 и тиковым спредом 20, предполагают более пассивный подход или более широкие пороги корректировки.

Первоначально высокая волатильность APY и просадки предполагают риск, но со временем они стабилизируются, согласуясь с долгосрочными целями, как это видно в таких стратегиях, как D7.5r15 и D7.5r20. С точки зрения роста AUM, более высокие показатели ребалансировки не всегда дают лучшие результаты, что подчеркивает важность стратегической, а не частой ребалансировки.

Теперь давайте углубимся в цифры:

Анализ

Возврат (APY)

  • Д5р20: Солидная средняя годовая процентная доходность 4,70%, подходящая для умеренной, стабильной доходности.
  • Д5р25: Более низкая годовая процентная доходность 2,47%, более консервативная с более широким тиковым спредом.
  • Д7.5Р15: Приличные 4,55% годовых, баланс кредитного плеча и риска.
  • D10r10: Средняя годовая процентная доходность 3,57%, умеренная доходность при более высоком кредитном плече.
  • D12.5r20: самая низкая годовая процентная доходность на уровне 2,43%, осторожная, ориентированная на стабильность стратегия.

Риск (просадка)

  • D5r20 и D5r25: умеренные риски с просадками -0,55% и -0,57% соответственно.
  • D7.5r15: Самая низкая просадка -0.45%, что указывает на стабильность.
  • D10r10: просадка -0.51%, умеренный риск при более высоком коэффициенте задолженности.
  • D12.5r20: просадка -0.53%, осторожное управление рисками при максимальном коэффициенте задолженности.

Эксплуатационные расходы (счетчик ребалансировок)

  • D5r20: 493 ребалансировки, умеренные операционные расходы.
  • D5r25: 337 ребалансировок, наиболее эффективный рабочий профиль.
  • D7.5r15: 408 ребалансировок, эффективных при более высоком коэффициенте задолженности.
  • D10R10: 534 ребаланса, требуются частые корректировки.
  • D12.5r20: Наименьшее количество ребалансировок на уровне 121, требуется минимальная регулировка.

Активы под управлением (AUM)

  • D5r20: AUM в размере 105 313,38 долларов США, эффективная при умеренном коэффициенте задолженности.
  • D5r25: Аналогичный AUM $105,310.40, стабильный с более широким тиковым спредом.
  • D7.5r15: Самый высокий AUM на уровне $105 659,86, эффективный со средним тиковым спредом.
  • D10r10: AUM в размере $105 339,77, умеренный рост при более высоком коэффициенте долга.
  • D12.5r20: Самый низкий уровень активов под управлением в размере 104 753,51 доллара США, проблемы с самым высоким коэффициентом задолженности.

Сводка

  • D5r20 и D5r25 сбалансированы, подходят для стабильности и разумной доходности.
  • D7.5r15 отличается высокой доходностью, управлением рисками и операционной эффективностью.
  • D10r10 и D12.5r20 являются консервативными; D10r10 требует активного управления, в то время как D12.5r20 фокусируется на минимальных затратах и более низком риске при высоком коэффициенте задолженности.

Заключение

Результаты тестирования показали, что эта стратегия эффективно минимизирует воздействие на рынок, обеспечивая стабильную доходность даже в условиях волатильности. Тем не менее, мы признаем возможность дальнейшего уточнения и оптимизации параметров. Мы уделяем немного больше времени исследованиям и разработкам, чтобы усовершенствовать нашу новейшую дельта-нейтральную стратегию. Мы стремимся сделать все правильно, поэтому мы еще не завершили настройку параметров. Следите за нашим следующим анонсом, в котором мы расскажем об оптимизированных настройках до официального запуска стратегии.

Наша стратегия разработана как более безопасный и стабильный вариант, превосходящий традиционный стейкинг стейблкоинов и обычное предоставление ликвидности на Uniswap V3. Мы стремимся предложить более высокую потенциальную прибыль при минимальных рисках, которые обычно встречаются в пулах ликвидности. Этот инновационный подход позволяет уверенно инвестировать в протоколы высшего уровня на Arbitrum, обеспечивая большую стабильность и меньшую подверженность рынку.

Источник

Источник

Источник