Liquidity providing in Uniswap v3 (2)

reuptake
4 min readMay 6, 2021

--

👉 Learn from other LPs! Join our Discord LP Cafe!

Read part 1 first

Is it only for whales?

When v3 was announced I heard it a lot: “New Uniswap is only for whales who can afford the gas cost”. And why the gas cost was mentioned? “Because the best strategy is to have your liquidity concentrated in narrow range close to the current price, and when price moves, move your liquidity as well”. While I’m not saying that gas cost is of no significance, let’s focus on the second sentence. Is having highly concentrated liquidity really the best idea?

Photo by Mike Doherty on Unsplash

The benefit of narrow trading range is obvious: you earn much more fees per capital invested. But what are the downsides? Let’s put aside things that were already covered in part 1 of this series like increased competition from other LPs who can use similar strategy, lower volume capture and so on. Instead let’s focus on rebalancing. By rebalancing I mean the process of adjusting your range, so that the price is in the middle of it again.

If your range is very narrow, it’s very probable that price will move a lot (comparing to range width), even to the point when it’s outside the range and no longer earning fees. So you need to rebalance, to put your capital in the “current” range, where most trading occurs.

It boils down to:

  1. Withdrawing your tokens from pool, collecting fees
  2. Purchasing/selling one token so that both tokens have the same value
  3. Providing liquidity again in adjusted range

It’s not (only) about gas

What are the costs of rebalancing? Gas comes to mind first. But it’s not all. There’s also a cost of purchasing the token (fees, slippage) which can be significant.

Even if you’re a whale, the real profit killer could be impermanent loss (Uniswap insists on calling it „inventory risk” but I’ll stay with impermanent loss). Remember:

Every time you rebalance your position, you turn your impermanent loss into permanent.

And this can quickly turn into profit-killer, because it compounds.

Backtesting Uniswap

This time instead of just talking, I’d like to present a backtest, so you can see for yourself, how frequent rebalancing affects value of your assets. I’ll write much more about how I backtest things later. For now, let’s assume we’ll test MKR/ETH pair over last 50 weeks or so. This pair is not crazy volatile at all. As you can see it ranged between 0.67.. 2.38 during this whole period. Rebalancing period is set to 1 week (and week/week volatility of MKR/ETH was even lower). Starting capital is 100 ETH. Every week we rebalance it, so the new range is from current price +/- 10%. This gives boost of 21.49x, but for this test I assume no income from fees.

I’ve cut out some weeks from the backtest report (because otherwise it would be too long).

Backtest for: MKR/ETH
Skipping rebalance: 1
Rebalance for week: 2
in @1.92: 26.10 MKR + 50.00 ETH = 100.00 ETH in 1.74..2.11 range -> boost: 21.49x
Rebalance for week: 3
out: 0.00 MKR + 102.44 ETH = 102.44 ETH vs HODL: 100.00 ETH, fees: 0.00, yield: 0.00% (-6.60%/2.44%/2.44%)
in @2.28: 22.44 MKR + 51.22 ETH = 102.44 ETH in 2.07..2.51 range -> boost: 21.49x
Rebalance for week: 4
out: 17.44 MKR + 62.77 ETH = 103.40 ETH vs HODL: 102.44 ETH, fees: 0.00, yield: 0.00% (-0.12%/0.94%/0.94%)
in @2.32: 22.30 MKR + 51.70 ETH = 103.40 ETH in 2.11..2.55 range -> boost: 21.49x
[…]Rebalance for week: 47
out: 6.46 MKR + 19.45 ETH = 26.99 ETH vs HODL: 26.54 ETH, fees: 0.00, yield: 0.00% (-0.49%/1.69%/1.69%)
in @1.17: 11.54 MKR + 13.49 ETH = 26.99 ETH in 1.06..1.29 range -> boost: 21.49x
Rebalance for week: 48
out: 0.00 MKR + 27.65 ETH = 27.65 ETH vs HODL: 26.99 ETH, fees: 0.00, yield: 0.00% (-16.40%/2.44%/2.44%)
in @1.71: 8.09 MKR + 13.82 ETH = 27.65 ETH in 1.55..1.88 range -> boost: 21.49x
Rebalance for week: 49
out: 14.43 MKR + 3.37 ETH = 26.32 ETH vs HODL: 27.65 ETH, fees: 0.00, yield: 0.00% (-1.38%/-4.79%/-4.79%)
in @1.60: 8.22 MKR + 13.16 ETH = 26.32 ETH in 1.46..1.76 range -> boost: 21.49x
---
Weeks: 49
Initial capital 100 ETH, pool share: 0%
End capital: 26.32 ETH, P/L: -73.68%

By rebalancing liquidity position every week we end up with just 26% of initial capital.

Changing it to rebalance once a day returns just 13.37% of initial capital. If we make range even more narrow (+/- 5%) it’s 18.36% (with rebalancing each week).

As you can see the effect of frequent rebalancing is massive, and gas cost is not the biggest issue here.

There are also some benefits of it (besides capturing more volume): fees are compounding slightly faster. But this makes little difference most of the time.

But perhaps this 21.5x fee boost makes up for consequences of rebalancing narrow range often? I’ll try to dig into it this later, but first I’d like to share my answer the most important questions (which some government agency may also ask): where do the money for LPs new Lambo come from? Curious? Part 3 has the answer.

--

--