[英]How to calculate Deposit Amounts for Adding Liquidity within Uniswap V3
在向 Uniswap V3 中的新池添加流动性的同时,我正在尝试计算任何给定货币对的“存款金额”的公式。
例如,让我们以 ETH/USDC 对为例
当前价格:2172.05 设置价格范围 -20% 和 +20%
最低价:1747.7 最高价:2612.4
ETH:0.394064(854.888 美元)USDC:1000(1000 美元)
ETH 美元金额是如何计算的,公式是什么? ( Uniswap 是如何让 ETH 达到 854.888 美元的??? )
ps:我已经看过 Uniswap V3 白皮书https://uniswap.org/whitepaper-v3.pdf但需要一步一步的外行解释。 干杯!
我一直在阅读以下文章,答案就在下面的公式中: 资料来源: uniswap-deep-dive-into-v3-technical-white-paper
这个问题对于 SO 来说可能有点题外话,但我相信它无论如何对人们都有用。 这是我的答案...
Uniswap 使用预言机价格为您提供了您输入的 ETH 金额的美元价值,只是为了方便起见。 它不是此存款操作的参数。
这里只有3个参数:
资产 A(在您的实例中为 ETH)与资产 B(在您的实例中为 USDC)的比率决定了平衡点。 例如,如果您存入 1 个 Ether 和 1000 USDC,那么均衡点将为ETH = 1000 USDC
。 最后,您定义一个价格范围以指定您希望存款有效的范围。 通过限制您存款的价格范围,您可以在给定范围内提高资金(存款)的效率。 这涉及到相当多的数学来解释,但让我试着简单地解释一下:基本上,自动化做市商处理这个等式: a * b = k
。 这意味着当a
趋于无穷时b
趋于零,反之亦然。 因为这种“流动性”均匀地分布在 0 到无穷大范围内。 相反,当您设置价格范围时,您将流动性“集中”在范围内,而牺牲了范围外的流动性。 因此,您提高了资本的效率。
在向 Uniswap V3 中的新池添加流动性的同时,我正在尝试计算任何给定货币对的“存款金额”的公式。
向池中添加流动性对价格没有影响。 这是增加流动性的制约因素。 假设我们有 A 和 B 代币,它们的数量分别是 x 和 y。 因为我们想增加流动性,所以我们添加了“dx”和“dy”。 这些“dx”和“dy”数量不会影响价格。 否则任何增加流动性都会对池产生价格影响
如果您想将“dx”数量的 A 代币添加到池中,我们如何计算“dy”数量的 B 代币。 在增加流动性之前,我们假设我们有“x”和“y”的数量,所以 x 的价格是
x / y
由于增加流动性对价格没有影响,增加流动性后,价格应该等于x/y
x / y = (x+dx) / (y+dy)
然后
xy + xdy = xy + ydx // xy cancels out
x * dy = y * dx
我们正在寻找“dy”
dy = (y * dx) / x
类似地,您可以计算给定“dy”的“dx”
从这个等式
x * dy = y * dx
我们也可以得到这个
dx / dy = x / y
存款金额的比例应等于增加流动性前代币数量的比例
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.