Uniswap v3 is awesome.
The fees being generated are fantastic.
Only one problem. It’s quite difficult to be a lazy LP.
Strategies are still in their infancy. XToken has stable pairs, but the real difficulty is in managing volatility and the fast paced nature of IL passively.
The ethos of the Rolling Hills Strategy,
I think this quote from the v3 launch article covers it quite well:
Capital Efficiency
By concentrating their liquidity, LPs can provide the same liquidity depth as v2 within specified price ranges while putting far less capital at risk. The capital saved can be held externally, invested in different assets, deposited elsewhere in DeFi, or used to increase exposure within the specified price range to earn more trading fees.
I think a lot of folks speculating about Uniswap v3 strategies are focusing on the part after the *or*. "
used to increase exposure within the specified price range to earn more trading fees.
What I want from v3 vaults isn’t complexity in solving for IL and moving the same capital to be providing liquidity across all price points in a concentrated format. I want my out of range assets to simply auto invest elsewhere.
The capital saved can be held externally, invested in different assets, deposited elsewhere in DeFi
I currently work for PieDAO, and PieVaults feel like the most natural solution to this problem, though I would be very honored to see any implementation of such a strategy.
What is the Rolling Hills Strategy
The Rolling Hills Strategy is primarily defined by a maximum price, minimum price, and number of segments. Each segment is an evenly split chunk of the total liquidity range. When a segment goes out of range, the remaining asset is withdrawn and deposited into a yield earning strategy. An in range strategy is deposited into Uniswap v3 to earn fees in a concentrated range.
For example: ETH 1k-5k broken into 4 segments. ETH = $2.5k.
Segment 1: DAI earning Yield available from 2k to 1k to buy.
Segment 2 DAI:ETH sells DAI to ETH from 3k to 2k.
Segment 3: ETH earning Yield available from 3k to 4k to sell.
Segment 4: ETH earning Yield available from 4k to 5k to sell.
If the price of ETH moves to $3.5k
Segment 1: DAI earning Yield available from 2k to 1k to buy.
Segment 2 DAI earning Yield available from 3k to 2k.
Segment 3: DAI:ETH sold DAI to ETH from 3k to 4k to sell.
Segment 4: ETH earning Yield available from 4k to 5k to sell.
This implementation leaves 1 segment in range providing liquidity to Uniswap, and 3 segments split across the two assets of the Uniswap LP to be used in external strategies facilitated by the vault. If an asset falls out of the PieVaults set range, it can automatically farm the remaining asset in its’ subscribed strategy
This enables us to make productive out of range LP assets without trying to keep recycling the same assets into the the pool at different price points.
But different price targets?
Glad you brought those up. The limitation, but also the beauty of such a vault is that it comes with a defined set of price targets. I believe the optimal implementation would keep price targets fixed per PieVault, and to not make these parameters governable.
In my mind, ideally the Vault provider offers several like products across price targets:
Bear: $100 - $5000
Conservative: $500 - 10,000
Bull: $1000 - $50,000
This would allow the market to more individually express their valuation without the complexity of governance divining price targets from users.
Number of segment can even be deployed as a function of TVL such as the following.
< half a million locked: the pool can apply a full 50/50 split across the whole range in v3.
> half a million locked : the pool can increase to 3 segments with one segment in uniswap v3
> 1 million locked: the pool can increase to 5 segments with one segment in uniswap v3
This structure would allow the cost of management to scale with demand, and allow a smooth transition from high to low management serving that demand.
Reduced Administrative Overhead
But wouldn’t it be cooler if we had the same assets rolling over instead of tapping into new segments? Yes, but that comes with administrative overhead. How are new price targets decided. Is the strategy to recycle funds maximally efficient? Is it getting gamed?
I find all these questions to be incredibly important, but also very difficult to solve. Uniswap V3 doesn’t present easy questions for capital management for reinvesting the same funds in a never ending cycle.
This is designed so when you’re out of range your assets automatically do something else without the burden of action. I think the Rolling Hills strategy offers a very straight forward, minimally complex value proposition for investors with minimal surprises, and maximizes for to understanding and participation.
Rebalancing
Lets return to our example:
ETH 1k-5k broken into 4 segments. ETH = $2.5k.
Segment 1: DAI earning Yield available from 2k to 1k to buy.
Segment 2 DAI:ETH sells DAI to ETH from 3k to 2k.
Segment 3: ETH earning Yield available from 3k to 4k to sell.
Segment 4: ETH earning Yield available from 4k to 5k to sell.
When the price of ETH moved to 3.5k the strategy will not perfectly time this. It can accept a small amount of lost opportunity cost in exchange for waiting for a trend confirmation, and save a little gas from over chasing.
Segment 2 has sold all its ETH for DAI holding all DAI at 3k. Its exposure does not change from 3 to 3.5k. Its X amount of DAI the whole way. When we choose to invest does not have an affect on the principal of an exiting segment.
Segment 3 is running a little late to enter the Uniswap LP. By the time the trend is confirmed ETH is at 3.5k (made up numbers). When the segment rebalances, it still has Y ETH earning interest which has now gained without being autosold like Uniswap would have done. If the strategy sells some ETH to DAI to enter at the allotted range, it has made a profit.
Lets say the price moves back down from Segment 3 to Segment 2 after it already rebalanced to segment 3. The current active v3 segment is 3., but the price has now fallen to 2.5k. We need to rebalance again.
The DAI held by Segment 2 was not sold automatically by Uniswap, so it can now be sold to enter the position at that price range at a slight profit greater than had it been executed seamlessly.
Since both directions work out positively from a slight delay in executing the roll, I think its worthwhile to find some kind of time base price solution such as TWAP to inform when these rolls occur so we can save gas from chasing volatility at the boarders with swapping positions.
What about Impermanent Loss
Just as Uni v3 splits the bonding curve into segments
This strategy splits the Uni v3 segment of the curve into sub segments.
This structure allows you to get the same capital to price tick ratio as if you provided to the whole range, while using most of the capital to soak in additional gains elsewhere.
This means that your Impermanent Loss should roughly match that of a v3 curve bound by the outer ranges of the strategy, while freeing up more capital to be utilized elsewhere.
In conclusion…
… I think that strategies that can properly manage IL in a single segment which perpetually shifts price ranges to match the market are a long way off. This method reduces a significant amount of the complexity by taking advantage of the assets being uncommitted rather than being locked into a price commitment at all times.
The Rolling Hills Strategy has great potential to serve as a community strategy for lazy participation in concentrated liquidity pools with minimal governance meddling.
Bonus Points
Is this real life, or just fantasy… idk, but maybe saying it will make my dreams a reality.
So these segments provide interesting opportunities in composibility.
Imagine for a second that each segment could apply more than one strategy. Now imagine that a portion of the segments furthest from the active segment could be deposited in Alchemix.
Stake your RollingHillsPieVault Token in a staking contract, borrow by proxy against the debt limit available to the vault. If the segment becomes the active uniswap v3 segment, then any unrepaid debt gets self liquidated on alchemix and that is applied to the collateral staked in the local debt contracts.
Without needing a direct RollingHillsPieVault Alchemix Vault, it could be possible to route that through base assets to allow Vault holders to borrow against future yield while providing to the liquidity strategy, albeit under a few more conditions than a direct approach.
Edit: Bonus images
Initial Position
Rotate after it exits range below
Rotate after it exits range above
What if u go even further by going short in the segments to minimize directional exposure, to a quarter? Would that make sense?