Uniswap V2池Price Impact计算方法咨询:未找到相关参考文档
Uniswap V2 价格滑点(Price Impact)计算方法
Uniswap V2的价格滑点基于恒定乘积做市商模型(x * y = k)计算,核心逻辑是交易导致池内代币比例变化,进而偏离初始基准价格,滑点就是这个偏差的百分比。
核心公式推导
先明确池内初始状态:
- 代币A的数量:
x - 代币B的数量:
y - 恒定乘积:
k = x * y - 基准价格(1单位A可兑换的B数量):
P₀ = y / x
- 代币A的数量:
假设用户用
Δx数量的代币A兑换代币B:- 交易后池内A的数量变为:
x + Δx - 根据恒定乘积,交易后池内B的数量变为:
k / (x + Δx) - 用户实际获得的B数量:
Δy = y - k/(x + Δx) - 实际成交价格:
P₁ = Δy / Δx
- 交易后池内A的数量变为:
滑点计算公式化简后:
Price Impact = (Δx / (x + Δx)) * 100%(如果是用代币B兑换A,公式同理:
Price Impact = (Δy / (y + Δy)) * 100%)
实际例子
比如池内有1000个A和1000个B,用户要兑换100个A:
- 滑点 =
100 / (1000 + 100) * 100% ≈ 9.09% - 初始价格是1A换1B,实际成交价格是1A换≈0.909B,偏差约9.09%,和计算结果一致。
注意事项
- 价格滑点不包含交易手续费(Uniswap V2的0.3%手续费是单独扣除的,不影响滑点计算)。
- UI显示滑点是为了让用户直观了解大额交易对池内价格的影响,滑点越高,用户实际兑换到的代币数量与基准价格下的预期数量差距越大。
内容的提问来源于stack exchange,提问作者Anthony
相关产品推荐
相关产品推荐

