繁体   English   中英

如何在 Uniswap V3 中计算增加流动性的存款金额

[英]How to calculate Deposit Amounts for Adding Liquidity within Uniswap V3

为 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 资料来源: uniswap-deep-dive-into-v3-technical-white-paper

这个问题对于 SO 来说可能有点题外话,但我相信它无论如何对人们都有用。 这是我的答案...

Uniswap 使用预言机价格为您提供了您输入的 ETH 金额的美元价值,只是为了方便起见。 它不是此存款操作的参数。

这里只有3个参数:

  • 资产A金额
  • 资产B金额
  • 价格范围

资产 A(在您的实例中为 ETH)与资产 B(在您的实例中为 USDC)的比率决定了平衡点。 例如,如果您存入 1 个 Ether 和 1000 USDC,那么均衡点将为ETH = 1000 USDC 最后,您定义一个价格范围以指定您希望存款有效的范围。 通过限制您存款的价格范围,您可以在给定范围内提高资金(存款)的效率。 这涉及到相当多的数学来解释,但让我试着简单地解释一下:基本上,自动化做市商处理这个等式: a * b = k 这意味着当a趋于无穷时b趋于零,反之亦然。 因为这种“流动性”均匀地分布在 0 到无穷大范围内。 相反,当您设置价格范围时,您将流动性“集中”在范围内,而牺牲了范围外的流动性。 因此,您提高了资本的效率。

计算证明

完整的解决方案已添加到 Excel 表中:

Uniswap 添加流动性代币计算

在向 Uniswap V3 中的新池添加流动性的同时,我正在尝试计算任何给定货币对的“存款金额”的公式。

向池中添加流动性对价格没有影响。 这是增加流动性的制约因素。 假设我们有 A 和 B 代币,它们的数量分别是 x 和 y。 因为我们想增加流动性,所以我们添加了“dx”和“dy”。 这些“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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM