Uniswap中的执行价格是如何计算的



我已经花了几个小时试图了解执行价格。

我理解中间价的概念,因为它是两对鞋之间的储备比率。

根据Uniswap sdk文档,执行价格是发送/接收资产的比率。我很难理解计算是如何进行的。此外,Uniswap对的交换似乎是基于执行价格而非中间价格。为什么在交易中使用执行价而不是中间价?

在Uniswap等自动化做市商中,您将收到的代币数量取决于您将以非线性方式发送的代币数量:您从池中移除的流动性越多,最终收到的代币就越少。

如果你不考虑费用,对X和Y的储备必须在每次交换中满足以下不变量:

Xold Yold = Xnew Ynew

因此,通过将ΔX发送到池,您将根据公式接收ΔY:

ΔY = (Y ΔX)/(X + ΔX)

执行价格定义为ΔY/ΔX,即

Execution price = Y/(X+ΔX)

请注意,中间价(定义为Y/X(近似于执行价格,ΔX近似于0。这就是为什么Uniswap指出;表示理论上可以用无穷小量(ε(的一个代币换取另一个代币的价格;。然而,在实践中,您将支付执行价格,因为您还需要为从池中移除流动性支付费用。

自动化做市商使用Constant Function Market Makers公式。根据这个公式,数量的乘积总是恒定的。假设最初您有4000个A和4000个B代币。金额的乘积

// 16.000.000 will always be constant
4000 X 4000 = 16.000.000

假设一个用户带来了1000个A代币。现在,代币A的总金额将为5000。我们必须决定要向用户转移多少令牌B。

代币的乘积必须始终为16.000.000。我们有5000个代币A,池中应该保留多少代币B

16.000.000 / 5000 = 3.200

3.200令牌B应保留在池中。因此我们必须向用户转移4000-3200=800令牌B。

相关内容

  • 没有找到相关文章

最新更新