如何计算Uniswap V3的兑换滑点?

OKEX欧易API入门量化交易机器人,完全免费,办公环境运行,适合小白入门,支持币安和欧易。


    此前笔者uniswap V2的兑换滑点做了详细计算,而由于uniswap V3的流动性是关于价格的分段函数,因此它的滑点计算则相对比较复杂,当然我们也可以通过在uniswap网页前端获取到滑点情况:

    uniswap V3的滑点

    那么如何通过自己计算获得这个滑点呢?下面我们对他进行详细的分析,以ETH-USDT为例,我们知道uniswap V3上的价格是由tick表示的,即 p(i)= 1.0001^i,, i为tick顺序,那么我们首先对他的流动性进行分段处理,假设分成n段,那么n段中包括的每一个tick space中的流动性均相同,我们他标记为L1,L2………Ln,每段的价格范围为[Pan,Pbn],当前价格为P0,,我们需要计算你有u0个usdt能兑换出多少个ETH,那么先计算出当前段中USDT和Ep的数量分别为

    uniswap V3的滑点

    显然的在当前段的端点Pan和Pbn将具有Epn个ETH和Upn个USDT

    uniswap V3的滑点

    当u0+up<=up时,将本段内兑换完成,此时满足:

    uniswap V3的滑点

    根据(1)到(6)可以计算得到

    uniswap V3的滑点

    那么兑换价格Pswap


    uniswap V3的滑点

    那么即可得到滑点slipgage(%)

    uniswap V3的滑点

    当u0+up>up时,即出现tickcross的时候,只需在本段兑换后剩余的部分在下一段中进行重复的计算,最后也可以计算出最终的滑点。



      admin   2022-6-11