目标
对Uniswapv3无常损失的定量分析;如何使用策略让Uniswapv3LP获得更大的收益。Uniswap概览
基于恒定乘积的自动化做市商,去中心化交易所。
v1版本:
2018年11月解决了什么问题:传统交易所orderbook买卖双方不活跃导致的长时间挂单,交易效率低下功能:ETH←→ERC20token兑换带来的问题:token1与token2之间的兑换需要借助ETHUSDT→ETH→USDCv2版本:
2020年5月新功能自由组合交易对:token1←→token2token1-token2交易池LPers提供流动性并赚取费用价格预言机、闪电贷、最优化交易路径等带来的问题资金利用率低:在?x*y=k?的情况下,做市的价格区间在(0,+∞)的分布,当用户交易时,交易的量相比我们的流动性来说是很小的假设ETH/DAI交易对的实时价格为1500DAI/ETH,交易对的流动性池中共有资金:4500DAI和3ETH,根据?x?y=k,可以算出池内的k值:?k=4500×3=13500。假设?x?表示DAI,y表示ETH,即初始阶段?x1=4500,y1=3,当价格下降到1300DAI/ETH时:?x2?y2=13500,x2/y2=1300,得出?x2=4192.54,y2=3.22,资金利用率为:?Δx/x1=6.84%。同样的计算方式,当价格变为2200DAI/ETH时,资金利用率约为?21.45%。也就是说,在大部分的时间内池子中的资金利用与低于25%,这个问题对于稳定币池来说更加严重。
Untitled
v3版本:
2021年5月考虑风险价格影响:是指一笔交易对价格的影响程度,取决于池子深度。更高的价格影响意味着:流动性提供者提供的流动性不足,向交易者提供更差的比率。存货风险:LP的主要目标是随着时间的推移增加其总库存价值在价格变化过程中,相对于首选价值存储的资产而言,LP拥有的资产数量更少,比如对于ETH-DAI,用户更倾向于ETH,相对于ETH而言,LP拥有越多的DAI,存货风险越高;比如100%ETH和50%-50%ETH-DAI的对比,ETH价格上涨,更多人将DAI换成ETH,相对应LP手中ETH就少了,风险加大。无常损失提供流动性时发生的资金暂时损失/非永久性损失;只要代币相对价格恢复到其初始状态,该损失就消失了;新功能集中流动性→提升资金利用率
Untitled1-多层级手续费率,升级的预言机,区间订单等。带来的问题:
相对于v2而言无常损失仍然存在,而且更大;LP的权衡价格区间越大,所获得的费用收益就越低,(0,+∞)时和v2一致。但如果选择一个更小的价格区间,就会有更高的无常损失。无常损失分析
Uniswapv2
例子:
假设ETH/DAI交易对的实时价格为1500DAI/ETH,交易对的流动性池中共有资金:4500DAI和3ETH,根据?x?y=k,可以算出池内的k值:?k=4500×3=13500。假设?x?表示DAI,y表示ETH,即初始阶段?x1=4500,y1=3。
当价格下降到1300DAI/ETH时:?x2?y2=13500,x2/y2=1300,得出?x2=4192.54,y2=3.22?。
如果用户选择HODL,则?x2'=4500,y2'=3,我们分别计算两种情况下的资产价值:
LP:4192.54+3.22*1300=8378.54
HODL:4500+3*1300=8400
资产减少:8400-8378.54=21.46→无常损失
无常损失率:21.46/8400=0.26%
当价格变为2200DAI/ETH时,x2=5449.77,y2=2.48,资产减少194.23,损失率为1.75%。
模型分析:
根据恒定乘积公式$xy=k$,令$k=L^2$,其中L表示流动性,则有$xy=L^2$,再根据价格$S=x/y$,可以得到$x=L/sqrt{S}$,$y=Lsqrt{S}$。
考虑LP在流动性池X-Y中添加流动性$L$,池的初始价格为$S_0$,所以LP需要向流动性池中提供$x_0=L/sqrt{S_0}$的X代币和$y_0=Lsqrt{S_0}$的Y代币。
当池的价格变为$S_1$时,LP的资产价值为
$$V_{v2,pos}(L,S_1)=S_1cdotx_1+y_1=frac{L}{sqrt{S_1}}S_1+Lsqrt{S_1}=2Lsqrt{S_1}$$
其中$x_1$和$y_1$是LP在池中的资产。
LP初始时的资产如果一直拿手里,则价值为
$$V_{v2,hold}(L,S_0,S_1)=S_1cdotx_0+y_0=frac{L}{sqrt{S_0}}S_1+Lsqrt{S_0}$$
所以,无常损失为:
$$begin{aligned}mathrm{IL}{mathrm{v}2}left(S_0,S_1right)&=frac{V{mathrm{v}2,text{pos}}-V_{mathrm{v}2,text{hold}}}{V_{mathrm{v}2,text{hold}}}&=frac{2Lsqrt{S_1}-left(frac{L}{sqrt{S_0}}S_1+Lsqrt{S_0}right。{frac{L}{sqrt{S_0}}S_1+Lsqrt{S_0}}&=left(frac{2cdotsqrt{frac{S_1}{S_0}}}{1+frac{S_1}{S_0}}-1right)end{aligned}$$
令$r=S_1/S_0$,则有:
$$mathrm{IL}_{v2}=frac{2cdotsqrt{r}}{1+r}-1$$
用之前的例子计算,r=1300/1500=0.87时,IL=0.0026=0.26%,r=2200/1500=1.47时,IL=0.018=1.8%,与上述计算相符合。
图像:
Untitled2
www.desmos.comwww.desmos.com
可以看到,当$S_0=S_1$时无常损失为0,其他时候无常损失都为负数。列一个表:
0.25x20.0%0.5x5.7%0.75x1.0%101.25x0.6%1.5x2.0%1.75x3.8%2x5.7%3x13.4%4x20.0%5x25.5%
Uniswapv3
用同样的过程,我们分析Uniswapv3的无常损失。假设LP向价格区间$$提供流动性$L$,初始价格为$P_0(in)$,之后价格变为$P_1(in)$。
首先我们从Uniswapv3的白皮书中可以知道,集中流动性的资产储备曲线的公式为:
$$left(x+frac{L}{sqrt{p_b}}right)left(y+Lsqrt{p_a}right)=L^2$$
Untitled1
对于虚拟曲线:$x_{virtual}cdoty_{virtual}=L^2$,可以得到:
$$begin{aligned}&y=y_{text{virtual}}-Lsqrt{p_a}=Lleft(sqrt{P}-sqrt{p_a}right)&x=x_{text{virtual}}-frac{L}{sqrt{p_b}}=Lleft(frac{1}{sqrt{P}}-frac{1}{sqrt{p_b}}right)end{aligned}$$
初始时资产价值为:
$$begin{aligned}V_{v3}(P_0)&=y_0+x_0cdotP_0&=Lleft(sqrt{P_0}-sqrt{p_a}right)+Lleft(sqrt{P_0}-frac{P_0}{sqrt{p_b}}right)&=2Lsqrt{P_0}-Lleft(sqrt{p_a}+frac{P_0}{sqrt{p_b}}right)end{aligned}$$
同样,则在价格$P_1$时流动池中的资产价值为:
$$begin{aligned}V_{v3,pos}(P_1)&=2Lsqrt{P_1}-Lleft(sqrt{p_a}+frac{P_1}{sqrt{p_b}}right)&=2Lsqrt{rP_0}-Lleft(sqrt{p_a}+frac{rP_0}{sqrt{p_b}}right)end{aligned}$$
在价格为$P_1$时的,选择HODL的资产价值为:
$$begin{aligned}V_{text{v3,hold}}(P_1)&=y_0+x_0P_1&=Lleft(sqrt{P_0}-sqrt{p_a}right)+P_1cdotLleft(frac{1}{sqrt{P_0}}-frac{1}{sqrt{p_b}}right)&=Lleft(sqrt{P_0}-sqrt{p_a}right)+LcdotrP_0left(frac{1}{sqrt{P_0}}-frac{1}{sqrt{p_b}}right)&=Lsqrt{P_0}(1+r)-Lleft(sqrt{p_a}+frac{rP_0}{sqrt{p_b}}right)end{aligned}$$
所以无常损失为:
$$begin{aligned}mathrm{IL}{a,b}?&=frac{V{pos}-V_{text{hold}}}{V_{text{hold}}}&=frac{2Lsqrt{rP}-Lsqrt{P}(1+r。{Lsqrt{P}(1+r)-Lleft(sqrt{p_a}+frac{rP}{sqrt{p_b}}right。&=frac{2sqrt{r}-1-r}{1+r-sqrt{frac{p_a}{P}}-rsqrt{frac{P}{p_b}}}&=operatorname{IL}?cdotleft(frac{1}{1-frac{sqrt{frac{p_a}{P}}+rsqrt{frac{P}{p_b}}}{1+r}}right)end{aligned}$$
我们可以通过价格区间$$的变化看到:
在$P_a=P_b=P$时,IL=0;当$r=1$时,IL=0;与v2的联系:$$p_a=0,p_brightarrowinfty,mathrm{IL}{v3}=frac{2cdotsqrt{r}-1-r}{1+r}=mathrm{IL}{v2}$$
趋近于$mathrm{IL}_{v2}$。
画图
Untitled3
www.desmos.comwww.desmos.com
同样我们可以看到:当价格区间越小时,无常损失越大:
Untitled
数值比较
我们比较在不同的价格区间下Uniswapv3的无常损失:
Screen_Shot_2022-08-31_at_095606
具体数据:
(Uniswapv2)-0.56%0-0.46%-0.86%0-0.70%-1.5%0-1.22%-2.34%0-1.91%-4.75%0-3.8%
提问:既然无常损失总是为负,为什么还是会有人愿意做LP?
我们的计算忽略了两个问题:
手续费:不同的池子提供不同的手续费,需要在原来的计算上加上手续费。集中流动性增加了池的深度:例如:ETH-USDC-0.3%池的流动性
一些流行的token对的深度比中心化交易所更高。linklarge-cap:ETH/dollarmid-cap-cross-chainpairs
-稳定币与稳定币对:USDC/USDT
从资产价值的角度
比较以下五种资产持有策略
100%持有ETH100%持有USDC50%持有ETH,50%持有USDC使用50%ETH与50%USDC参与做市-Uniswapv2使用50%ETH与50%USDC参与做市-Uniswapv3比较这五种策略的资产价值。
无手续费时:
Untitled6
包含手续费时:
Untitled7
UniswapV3既是投资者收益的放大器,也是风险的放大器。在享受更高投资收益的同时,也必然要承担当价格脱离安全范围时更多的无常损失。
如何通过策略降低损失,或者说增加收益?
策略0:在不主动调整的情况下选择比v2表现更好的池子
在不主动调整情况下,全范围的Uniswapv3头寸和价格限定的稳定币头寸的手续费回报平均比Uniswapv2好约54%。其中
100基点手续费的全范围v3头寸比v2平均好?~80%。1基点,范围限定的v3稳定币对,v2,平均好?~160%.30基点,全范围v3头寸,v2平均好?~16%.5基点,全范围v3头寸,v2平均差?~68%.通常建议LPers选择v3。link
选择哪个池?
Untitled8
v3表现更好的是100基点费率或1基点费率的稳定币对。
100bps的token对通常流动性较差,部署时间较晚且波动性较大。对于1-bp费用等级,代币对价格波动较小,但Uniswapv3的交易量远高于v2。1-bp池上的集中流动性实现了超过v2的高回报。
策略一:主动的被动策略
如果初始投入是50%ETH和50%USDC,当价格变化时,池中剩余的资产比例可能变成80%ETH和20%USDC,这时你需要手动调整库存来防止出现一种资产在一侧耗尽,可以持续提供两边的库存。
根据价格变动周期性地再平衡两种资产之间的比例。
利用范围订单被动执行的,在现在价格的预测方向放置一个窄的订单,这样就避免了swap费用和价格影响。如果主动使用swap达到50/50,会有0.3%的费用。
如何操作:
对于Uniswap上为某个矿池,例如ETH/USDC,它有两个主要参数:
BR该策略始终保持两个有效的范围订单:
基本定单:以当前价格X为中心,范围。如果B较低,它将从交易费用中获得更高的收益。再平衡订单:刚好高于或低于当前价格。在或范围内,具体取决于在基本订单下达后它持有的更多的代币是哪一种。此订单有助于策略重新平衡并接近50/50以降低库存风险。每24小时,进行再平衡,根据价格和token数量提交订单。如果策略表现优秀,则时间区间可以被减少。再平衡并不能保证完全50/50。
举例:
Untitled9
比如,ETH目前价格150USDC,B=50,R=20,策略拥有资金1ETH和160USDC。则在放置一个基础订单,使用1ETH和150USDC。剩余的10USDC用来在放置一个在平衡订单,用来购买ETH以达到50/50。
Untitled10
如果价格提升到180,再平衡之后,基础订单为,若此时策略有1.2ETH和90USDC,则策略会使用0.5EHT和90USDC放入基础订单中,剩余0.7ETH会用于在之间的再平衡订单。
实际操作:https://dune.com/queries/78325/155734?Number%20of%20days=200
效果
蓝色曲线
Untitled11
实际效果:
策略二:预期价格范围策略
从历史数据中预测未来10分钟的价格走势,得到一个价格范围区间,在这个价格范围区间中提供流动性。直到当前价格超出价格范围,重复上述过程,重新预测价格范围并添加流动性。这个价格范围称为“预期价格范围”。同时我们可以在当前价格没有完全超出预期价格范围时调整价格区间,称这个价格范围为“移动策略范围”,这个范围指示了什么时候需要移动。
Untitled12
如何设置
2018年3月~2020年4月的十分钟数据得出价格移动分布在之间。可以设置百分比作为价格波动区间。
Untitled13
进一步策略:在预期价格范围内不采用一致的流动性,而是采用多个连续的流动性多头,每个多头存入不同数量的资产。
三种策略:
均匀策略:在价格区间内均匀分布,Uniswapv3默认;比例策略:在价格区间内分成子价格区间,权重对应价格可能的变化概率放置;最优策略:使用决策理论,计算一个模型来估算“最佳”范围来提供流动性,使用LP的“风险规避”程度作为参数。比例策略:
Ba:预期价格范围Bt:移动策略范围蓝线为概率分布,使用小的价格区间实现
Untitled14
结论
对于厌恶风险的投资者,均匀策略最优,对于其他所有人来说是次优的;比例策略对于大部分厌恶风险的投资者来说的接近最优的;对于最厌恶风险的投资者而言,均匀策略可获利。
Untitled15
比例策略对于风险偏向LP提供者是最优的,而均匀分配对于风险规避LP提供者是最优的。
这意味着,在Uniswapv3中被动管理的头寸可能不足以以资本效率和平衡风险赚取费用,积极的流动性提供策略既是机遇也是挑战。
其他主动的流动性管理
其他主动策略dapp
xTokenprojectGelatoNetworkVisorFinanceteamCharm.fi’s?AlphaVaultsMellowProtocol
Untitled16
参考
HowtoavoidImpermanentLossGoingBanklesswithUniswapHowtomakemoneywithUniswapV3AGuidetoUniswaponOptimismUniswapLiquidityProvision:IstheYieldWorththeRisk?:https://medium.com/gammaswap-labs/uniswap-liquidity-provision-is-the-yield-worth-the-risk-c45a4a850700https://betterprogramming.pub/uniswap-v2-in-depth-98075c826254https://liaoph.com/uniswap-v3-1/https://www.theblockbeats.info/news/24654https://medium.com/charmfinance/introducing-alpha-vaults-an-lp-strategy-for-uniswap-v3-ebf500b67796https://medium.com/@DeFiScientist/rebalancing-vs-passive-strategies-for-uniswap-v3-liquidity-pools-754f033bdabchttps://uniswap.org/blog/fee-returnshttps://uniswapv3.flipsidecrypto.com/https://newsletter.banklesshq.com/p/how-to-automate-uniswap-v3-liquidityhttps://kydo.substack.com/p/palm-protocol-owned-active-liquidity
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。