Оптимальная ребалансировка в динамических AMM

5/10

Мэтью Уиллеттс, Кристиан Харрингтон · QuantAMM.fi · март 2024

Оригинал: Willetts, M., Harrington, C. «Optimal Rebalancing in Dynamic AMMs», 2024 — arxiv.org/abs/2403.18737 (PDF).

Рисунки воспроизведены из оригинальной публикации. Оригинал распространяется по стандартной лицензии arXiv (non-exclusive distribution), которая производных произведений не разрешает: все права на оригинальный текст принадлежат авторам, перевод выполнен для личного ознакомления с указанием источника.

Аннотация

Динамические пулы AMM, встречающиеся во «временно́м функциональном маркетмейкинге» (TFMM), перебалансируют свои активы к новому желаемому соотношению (например, переходя от паритета 50 на 50 между двумя активами к 90 на 10 в пользу одного из них), создавая арбитражную возможность, которая исчезает, когда состав активов приходит в соответствие с целевым. Конструирование этой арбитражной возможности сводится к задаче выбора последовательности портфельных весов, которые пул предъявляет рынку через свою торговую функцию.

Линейная интерполяция от начальных весов к конечным уже применялась для снижения платы, которую пул отдаёт арбитражёрам за ребалансировку. Здесь мы получаем оптимальную интерполяцию в пределе малых изменений весов (её недостаток — необходимость вычислять трансцендентную функцию), а затем находим дешёвое в вычислении приближение к этому оптимуму, дающее почти такой же прирост.

Затем мы демонстрируем метод на серии рыночных бэктестов, включая моделирование результативности пула при наличии торговых комиссий, и обнаруживаем, что новый приближённо оптимальный способ изменения весов даёт устойчивый прирост. Для пула BTC-ETH-DAI за период с июля 2022 по июнь 2023 года прирост прибыли и убытка пула от приближённо оптимальных изменений весов составляет около 25% для целого ряда различных стратегий и торговых комиссий.

1. Введение

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

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

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

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

Пулы TFMM имеют торговую функцию G3M: для $N$ токенов с резервами $R = \{R_1, R_2, \ldots, R_N\}$

$$\prod_{i=1}^{N} R_i^{w_i(t)} = k(t), \qquad \text{где} \quad \sum_{i=1}^{N} w_i(t) = 1, \quad \forall i\ 0 < w_i(t) < 1 \tag{1}$$

причём $w(t) = \{w_1(t), \ldots, w_N(t)\}$ меняется от блока к блоку. Сделки по-прежнему должны сохранять (или увеличивать) $k(t)$ на момент сделки. Для простоты мы изучаем случай нулевых комиссий.

В этой работе мы исследуем постановку, где рыночные цены считаются постоянными в течение процесса ребалансировки и изменения весов. Возникает вопрос: если у нас есть начальные веса $w(t_0)$, а стратегия пула такова, что нужно прийти к $w(t_f)$ (где $t_f$ отстоит на много блоков вперёд), какова оптимальная последовательность весов, влекущая наименьшее проскальзывание для пула и максимально снижающая стоимость его ребалансировки?

2. Интерполяция весов: управление исполнением на TFMM

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

Начнём с весов $w(t_0)$ и пула в равновесии. Блоком позже, в момент $t' = t_0 + \delta t$, у нас новые веса $w(t')$ (рыночные цены при этом не меняются, $p(t_0) = p(t')$). Это изменение весов меняет котируемые цены. Для токенов с растущим весом пул предлагает купить их у арбитражёров чуть дороже рыночной цены; для токенов с падающим весом — продать чуть дешевле. Так пул платит арбитражёрам за ребалансировку к желаемому составу.

После совершения этой арбитражной сделки пул держит резервы

$$R(t') = R(t_0)\frac{w(t')}{w(t_0)}\prod_{i=1}^{N}\left(\frac{w_i(t_0)}{w_i(t')}\right)^{w_i(t')} \tag{2}$$

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

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

2.1. Семейство выгодных интерполяций

Сравним $R^{\text{1-шаг}}$ — резервы пула при прямом обновлении весов $w(t_0) \to w(t_0) + \Delta w$ — с $R^{\text{2-шага}}$, резервами при двухшаговом процессе $w(t_0) \to \tilde{w} \to w(t_0) + \Delta w$, где для всех $i$ выполнено $\tilde{w}_i \in [w_i(t_0),\ w_i(t_0) + \Delta w_i]$ (а также $0 < \tilde{w}_i < 1$ и $\sum_i \tilde{w}_i = 1$). Любой член этого семейства промежуточных значений даёт меньшую арбитражную стоимость.

Пример: линейная интерполяция. Здесь двухшаговый процесс таков: $w(t_0) \to w(t_0) + \frac{1}{2}\Delta w \to w(t_0) + \Delta w$. Эта техника применяется в пулах начальной загрузки ликвидности и в стохастически меняющихся CFMM. Получаем

$$R^{\text{2-шага}}_{\text{лин}} = R^{\text{1-шаг}}_{\text{лин}}\prod_{j=1}^{N}\left(1 + \frac{\Delta w_j}{2 w_j(t_0)}\right)^{\frac{\Delta w_j}{2}} \tag{3}$$

Поэлементное отношение $R^{\text{2-шага}}$ к $R^{\text{1-шаг}}$ всегда не меньше единицы. Это видно сразу: когда $\Delta w_j > 0$, соответствующий член произведения больше 1, поскольку число больше 1 возводится в положительную степень; когда $\Delta w_j < 0$, член вновь больше 1, поскольку число меньше 1 возводится в отрицательную степень; при $\Delta w_j = 0$ член равен 1.

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

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

3. Нелинейные схемы интерполяции весов

Хотя выполнять изменение весов линейной интерполяцией всегда лучше, чем одним махом, выгода «упирается в потолок» на разрешении блока. Что можно сделать, достигнув этого предела? Мы покажем, что существуют ещё более капиталоэффективные способы предлагать рынку арбитражные возможности.

Для последовательности из $f+1$ весов $\{w(t_k)\}_{k=0,\ldots,f}$ при постоянных ценах итоговые резервы равны

$$R(t_f) = R(t_0)\frac{w(t_f)}{w(t_0)}\prod_{k=1}^{f}\prod_{j=1}^{N}\left(\frac{w_j(t_{k-1})}{w_j(t_k)}\right)^{w_j(t_k)}$$

что получается повторным применением (2).

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

$$\{w^*(t_k)\}_{k=1,\ldots,f-1} = \arg\max_{\{w(t_k)\}} \left[ p \cdot R(t_f) + \sum_{\ell=1}^{f-1}\left(\sum_{m=1}^{N}\mu_{\ell,m}w_m(t_\ell)\right) - \sum_{k=1}^{f-1}\Lambda_k\left(\sum_{i=1}^{N} w_i(t_k) - 1\right)\right] \tag{4}$$

с множителями $\{\mu_{\ell,m}\}$ и $\{\Lambda_k\}$, удовлетворяющими условиям Каруша — Куна — Таккера. Оптимум можно вычислить численно, как и более изощрённые постановки, включающие меняющиеся цены (или даже неопределённые прогнозы будущих цен) и наличие комиссий. Такие расчёты можно выполнять в цепочке блоков или иным образом предоставлять пулу TFMM: при вызове обновления весов возможен внешний оракульный вызов, возвращающий «массив траектории весов». Разумеется, здесь есть компромисс между возросшими издержками исполнения и выигрышем от более сложной траектории. Чем больше объём средств пула и чем дешевле получить оптимизированную траекторию, тем легче оправдать эти расходы.

3.1. Приближение оптимальной интерполяции

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

Обозначим через $r$ отношение резервов при двухшаговом изменении весов $w(t_0) \to \tilde{w} \to w(t_f)$ к прямому одношаговому:

$$r = \prod_{j=1}^{N} \frac{w_j(t_0)^{\tilde{w}_j}}{w_j(t_0)^{w_j(t_f)}}\cdot\frac{\tilde{w}_j^{\,w_j(t_f)}}{\tilde{w}_j^{\,\tilde{w}_j}} \tag{5}$$

Если предположить, что изменение весов от $w(t_0)$ к $w(t_f)$ мало, можно напрямую оптимизировать (5) без наложения ограничений (4). Проделав это, находим оптимальное промежуточное значение:

$$\tilde{w}_i^* = \frac{w_i(t_f)}{W_0\left(e\,\frac{w_i(t_f)}{w_i(t_0)}\right)} \tag{6}$$

где $W_0(\cdot)$ — главная ветвь W-функции Ламберта, а $e$ — число Эйлера. W-функция Ламберта — специальная функция, решение трансцендентного уравнения, что делает её нетривиальной для вычисления в цепочке блоков. Хотя методы приближения $W_0(\cdot)$ существуют, они, во-первых, могут требовать вложенных вызовов логарифма, нежелательных в средах с ограниченными вычислениями, а во-вторых, хороши лишь на определённых диапазонах входов, тогда как у нас отношения начальных и конечных весов могут принимать широкий спектр значений. Мы выбрали иной подход.

Приближение оптимального значения. Величину $\tilde{w}_i^*$ можно ограничить сверху и снизу средним арифметическим и средним геометрическим значений $\{w_i(t_0), w_i(t_f)\}$ соответственно:

$$\sqrt{w_i(t_0)\,w_i(t_f)} < \tilde{w}_i^* < \frac{1}{2}\left(w_i(t_0) + w_i(t_f)\right) \tag{7}$$

Мы обнаруживаем, что использование среднего арифметического от геометрического и арифметического средних значений $\{w_i(t_0), w_i(t_f)\}$ даёт простой и действенный способ приблизить оптимальный промежуточный вес. Можно было бы взять и другое среднее — геометрическое или гармоническое, — но арифметическое эмпирически работает хорошо и дешевле в вычислении.

От двухшагового к многошаговому приближению. Полученные приближения можно напрямую «раскрутить» в почти оптимальные многошаговые траектории, хотя базовый аналитический результат (6) выведен лишь для одной промежуточной точки. Вдоль траектории со многими промежуточными весами оптимальное $\tilde{w}_i$ на любом этапе лежит выше геометрического среднего предыдущего и последующего весов и ниже их арифметического среднего.

Приближённо оптимальная траектория из $f-1$ шагов $\{\breve{w}(t_k)\}$ для перехода от $w(t_0)$ к $w(t_f)$ строится усреднением линейной и геометрической интерполяций между этими значениями:

$$w_i^{\text{АС}}(t_k) = \left(1 - \frac{k}{f}\right)w_i(t_0) + \frac{k}{f}w_i(t_f) \tag{8}$$

$$w_i^{\text{ГС}}(t_k) = \left(w_i(t_0)\right)^{1 - \frac{k}{f}}\left(w_i(t_f)\right)^{\frac{k}{f}} \tag{9}$$

$$\breve{w}_i(t_k) = \frac{w_i^{\text{АС}}(t_k) + w_i^{\text{ГС}}(t_k)}{\sum_{j=1}^{N}\left(w_j^{\text{АС}}(t_k) + w_j^{\text{ГС}}(t_k)\right)} \tag{10}$$

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

4. Эксперименты

4.1. Численные примеры

Здесь мы находим оптимальную траекторию численным решением (4) при заданных $N$, $f$, $w(t_0)$ и $w(t_f)$, и сравниваем её с линейной интерполяцией и с приближённо оптимальной для пула из трёх токенов.

Рисунок 1
Рисунок 1. Пример интерполяции весов: (a) линейная, (b) приближённо оптимальная по (10), (c) численно найденная оптимальная по (4). Пул из $N = 3$ токенов с $w(t_0) = \{0{,}05;\ 0{,}55;\ 0{,}4\}$, $w(t_f) = \{0{,}4;\ 0{,}5;\ 0{,}1\}$ и $f = 1000$. В этом масштабе различия между (b) и (c) на глаз не заметны.
Рисунок 2
Рисунок 2. Изменения весов от блока к блоку (каждая компонента $w(t+1) - w(t)$) для (a) линейной интерполяции, (b) приближённо оптимальной и (c) численно найденной оптимальной; постановка та же, что на рисунке 1.

Хотя общее изменение весов велико и выполняется за $f = 1000$ шагов, наш приближённый метод и оптимальный визуально трудно различить.

Рисунок 3
Рисунок 3. Насколько линейная интерполяция (a) и приближённо оптимальная траектория (b) отклоняются от численно найденной. Приближённо оптимальный метод очень близко совпадает с численным оптимумом.

Приближённо оптимальная интерполяция значительно ближе к оптимуму: наибольшее абсолютное расхождение весов около 0,003 против примерно 0,04 у линейной интерполяции. В этом примере приближённо оптимальная траектория улавливает около 95% прироста стоимости пула, который дала бы замена линейной интерполяции численно найденным оптимумом.

4.2. Исторические данные

Мы обучаем стратегии для TFMM, следуя подходу из технической записки QuantAMM. Новые целевые веса рассчитываются с использованием оценок градиентов логарифмических цен активов пула — например, для простой моментум-стратегии. У этих стратегий есть числовые параметры, управляющие тем, как вычисляются ценовые градиенты и насколько агрессивно пул меняет веса на их основе.

Кратко о процедуре: мы симулируем резервы пула во времени, возникающие из взаимодействия меняющихся весов стратегии и меняющихся рыночных цен на выборочном отрезке ценовой истории. По этому вычисляются меры результативности пула (например, коэффициент Шарпа). Расчёт выполняется в автоматически дифференцируемом коде, поэтому можно взять градиент выбранной меры по числовым параметрам стратегии и обновить параметры ради роста измеряемой результативности.

Процедура обновления весов (линейная либо приближённо оптимальная) меняет результативность пула. Чтобы честно проверить эффект процедуры, нужно обучить несколько разных экземпляров стратегий с каждой из процедур: экземпляры стратегий научаются использовать применяемую процедуру. Стратегия, обученная при приближённо оптимальных изменениях весов, может резко проиграть, если её применить к ребалансировке линейными изменениями, — но, обучая стратегии для линейных изменений отдельно, мы получаем честное сравнение.

Мы обучаем по 160 вариантов на каждое сочетание стратегии и процедуры изменения весов на корзине BTC, ETH, DAI за период с июля 2022 по июнь 2023 года. Варианты рассчитывают новые целевые веса с разной частотой (ежечасно против ежедневно), стартуют с разных случайных начальных параметров и слегка различаются методами оконной обработки данных при обучении. Обучаются как простая моментум-стратегия, так и стратегия следования каналу. Обучение ведётся при нулевых комиссиях, но обученные стратегии прогоняются по ценовым данным при наличии комиссий, следуя современным подходам к оптимальным арбитражным сделкам в многотокенных пулах в замкнутой форме.

Рисунок 4
Рисунок 4. Доходности обученных стратегий при (a) приближённо оптимальных и (b) линейных изменениях весов. Приведены сырые доходности за период. Прирост от приближённо оптимальных изменений сохраняется и при введении комиссий — даже при комиссии 1%.

Мы обнаруживаем, что стратегии эффективно научаются использовать приближённо оптимальные изменения весов, давая прирост доходности около 25% в среднем для проверенной корзины и периода.

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

Рисунок A.5
Рисунок A.5. Дополнительные графики из приложения.

5. Заключительные замечания

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

Литература

Оригинал статьи: Willetts, M., Harrington, C., «Optimal Rebalancing in Dynamic AMMs», arXiv:2403.18737