Columbia professor Ciamac Moallemi, Uniswap's Adams, Reynolds,
and Dan Robinson released a
paper last week on recapturing some of the LP convexity costs by having the
arbitrageurs bid for the right to trade at a reduced rate. I wanted to dive
into that, but I thought it would be helpful to see how arbitrage profits
relate to LP convexity costs, as this is not obvious. Further, people in this
space use different terms and formulas for what I am calling the LP convexity
costs, and it would be useful to clarify how they differ.
Ultimately, loss vs. rebalancing (LvR), impermanent loss
(IL), convexity costs, and theta, represent the same thing. The estimation
method for these metrics will use daily data generating random errors that
become irrelevant due to the Law of Large Numbers. That is, resetting the IL
benchmark each day is like hedging once a day or using daily data to estimate
variance.
Impermanent Loss
The OG term for the peculiar LP cost in constant
product AMMs is 'impermanent loss.' It was called that because while an LP
could have a loss relative to their initial LP position, they would not lose
money if the price moved back, implying that loss was not permanent. One could
say that about any mark-to-market loss, but whatever, it's a commonly used
term, and generally, people know what it means.
The basic idea was to compare the LP's current pool
position with the original LP token deposit, though one can compare it to the
prior tokens at any time in the past. I will use ETH and USDC as the tokens in
my example, but the analysis generalizes to any tokens A and B, making it easier
to intuit.
An LP position is necessarily adversely selected,
losing ETH when the price rises gaining ETH when its price falls. It is this
change in token quantities that drives the IL.
This simplifies to a net token change valued at the ending
price
Equation (1) - net LP
token change:
The AMM generates simple formulas for ΔETH and ΔUSD as a
function of liquidity and price changes. Note these are the pool token changes,
excluding fees.
Plugging this in and doing algebra, we get a square-root
function that, multiplied by liquidity, generates the second metric for the
LP's convexity cost:
equation (2) - square
of square roots:
Arbitrage Profit
As the LP's IL is based on net tokens coming in, someone
took the opposite side; if the LPs net +1 ETH and −4000
USDC, traders net +1 ETH and −4000 USDC. As the LPs always lose
money, the trader collective always makes money pre-fees.
The arbitrage profit is how much the arb is traded times the
price changes.
We have the ΔETH function noted above, so we need the
AMM fill price. This is the geometric mean of the starting and ending price.
As the fill price is positive, I ignored the sign in the
above algebra. Substituting the fill price and ETH delta formula into the
original equation generates the negative of equation(2), the square root
function above.
|
|
|
Remember this arbitrage pnl number excludes fees, which are
an expense to the arbitrageur. Looking at a net price movement over an interval
will also include incidentally lucky noise traders instead of true arbitrageurs.
However, the critical point is that we can see the fundamental symmetry of
arbitrage revenue and an LP's convexity expense.
Delta Hedged LP PnL
The LP's position has a delta, or price risk, that can be
hedged. We can apply this hedge to any frequency we want, where the complexity
of handling more data offsets the benefit of more frequent hedging. Removing
the delta generates a much more efficient estimate of an LP's pnl.
The initial LP position is just {ETH, USDC}, so it is long
whatever amount of ETH they deposited. The LP can just
eyeball his ETH position to determine his hedge amount.
Position
= USD0 + ETH0*p0
The delta for an LP position can be confirmed by doing the
math:
If we look at the change in the hedged LP position over time
and assume we are looking at the change in ETH and USD without fees, we see it
goes back to eq(1), the value of the net token change:
Given this result, we can use the logic above to show that
this is equivalent to the square of square roots formula. Thus, comparing an
initial token position to an initial token position is the same as the net pnl
for an LP position hedged at some earlier token position. It is a different way
to think about impermanent loss.
Theta
Finally, the Black-Scholes approach uses theta, which equals
the expected loss from convexity in equilibrium (profits = 0). In their proof,
they create a riskless portfolio of an option and a synthetically replicated
inverse of that option via a dynamic hedging strategy that targets the delta. Negative
convexity generates an adverse delta change in the option, whether the price
goes up or down, which generates losses for the hedged seller. If one rehedges
frequently, the losses will be smaller, but there will be more of them, and on
average, they generate the same expected return whether one rehedges daily or
every second. A convex position's theta equals the position's gamma, or second
derivative, times the underlying asset's variance, divided by 2.
Here, the variance is scaled to whatever one's frequency is.
For example, with daily data, one would take the annual variance divided by 365.
Variance is linear in time, which is why people trade variance swaps and not
volatility swaps. Fortunately, calculating gamma for AMMs from its primitive is
simple, so it leads to the following:
Simplifying,
we get a function that uses a variance term:
Equation (3) -variance
over 4:
While
AMMs, unlike option markets, do not have theta per se as there is no
option premium to decay, it still captures the option cost for any short gamma
position. This cost is a function of convexity, not the delta, so it presumes
the position is delta-hedged.
The LvR
function is identical to equation 3, though it looks different because the
pool's market value is used to normalize it:
This is
a handy formula, as volatility per day for many coins is 5%; it generates a
cost 3.125 basis points per day, a fun fact. In practice, however, we need to
get the liquidity and price data anyway to get the market value we would apply
this to anyway. Given the LP market value function
If we
multiply variance/8 by the LP value, we get equation (3), the variance function
for the LP's convexity cost.
Unfortunately,
my math/stats skills are insufficient to prove equations 2 and 3 are the same,
but they are (or at least 99% approximations of each other).
This gives us three ways to calculate IL. If we use the same
starting and ending times, they should be the same. That is, the variance term
should use the variance in the [0,1] interval, and the ΔETH and ΔUSDC
should also use the [0, 1] interval.
These are all costs to the LP and need to be subtracted from
the LP fees to get the LP's total profitability. However, in practice, the net
token change data from Uniswap's 'swap' event logs includes fees, so one does
not need the daily volume to generate the net LP pnl; removing the fees would
take more work. Thus, we do not need to add fee revenue if we use the swap data
to get the LP's net token changes.
For the other approaches, we can multiply the absolute value
of the USDC traded by the fees to get LP revenue. While the fees are paid in
whatever token is sold to the pool, using the numeraire is an efficient
approximation.
The nice thing about the net token change approach is that
you can avoid the noise generated by the fact that liquidity is not constant,
especially in restricted-range pools, where it can vary quite a bit over the
day. Unless you calculate these data using each trade, any liquidity number you
use will be approximate and generate noise in one's estimate. Thus, I prefer
the net token change approach.
I estimated the daily pnl for a pool and used the day's
price return squared for the variance number.
Uniswap
ETH-USDC v2 pool on Ethereum Mainnet
1/1/23-3/5/24
Net token change pnl: $7,231
Square root pnl:
$7,152
Variance
pnl: $7,097
As the standard deviation in this period was $12k, these
estimates are in complete agreement. The correlation between the square root
and variance metrics is 99.9%, while the token change pnl correlation with
those two is around 99.6%
Impermanent Loss != LvR ?
For reasons I find irrelevant, Milionis, Moallemi, Roughgarden, and
Zhang emphasize their LvR approach (the variance function) as superior to
the square root function. First, they note that IL depends on the initial
position, as it uses a squared term, so the magnitude is different for given
starting prices.
This is like saying the return on a stock that moved from
100 to 150 is different for someone who bought it at 50 and someone who bought
it at 100: one made 100%, the other only 50% over that price increase. In
practice, we apply consistent starting prices for the collective of those long
and short, or all the LPs, which is intuitive and straightforward. It is like
assuming they delta hedge once each period.
Another concern is that the square root function is noisier.
Yet, one can apply any of these formulas at whatever frequency you want: by minute, hour, day. Using hourly data is a lot more work with negligible benefit. The
errors generated will be normally distributed and diversify away in the same
way regardless of one's approach. If you use daily data to generate variance or
generate your square of square roots, you lose the information from the intra-period
price spike, but when you have hundreds of daily observations, the benefits of greater
granularity are trivial.
What you call the LP's convexity cost does not matter. What
matters is you use something close to daily data intervals and eliminate the LP's
delta risk, as all the above metrics do.