自动做市商:算出一次兑换能得到多少
自动做市商依据定价规则和可用流动性兑换资产。它不会保证订单中每个代币都按最新市场价格成交。了解为什么大额兑换会影响自己的成交价格,以及如何核对最终报价。
你的任务:计算一次简单兑换,区分价格影响与滑点,并检查最低收到数量。
兑换会改变你正在交易的池
兑换前:1,000 A + 1,000 B
在这个虚构、无手续费的恒定乘积池中,x × y = 1,000,000。初始边际价格为每A兑换1 B。A和B只是示例代币,不是推荐。
交易:加入100 A
A储备增至1,100。为维持乘积,B储备变为1,000,000 ÷ 1,100 = 909.09。交易者收到差额,约90.91 B。
兑换后:价格已经不同
平均成交价为每A兑换0.9091 B。新的边际价格约为每A兑换0.8264 B。两者都不是初始的1比1报价。相对于池深度越大的交易,价格变化越大。
操作练习:用模型检查报价
识别交易路径
核对网络、代币合约及路由器使用的池。一次交易可能经过多个池,也可能分配到多条路径。不是所有DEX都使用AMM,也不是所有AMM都使用这条公式。
查看实际成本
比较输入量、预计输出、池手续费、价格影响和网络费用。若示例收取0.3%输入手续费,只有99.7 A参与定价计算,输出约90.66 B。实际费率取决于池和版本。
设置有意义的边界
阅读最低收到数量及可用的交易截止时间。滑点容忍度允许成交结果偏离报价,并不会消除报价中已有的价格影响。单独检查授权,拒绝意外的钱包请求。
计算实例:输出等于储备的减少量
输入Δx时,无手续费输出为y − k ÷ (x + Δx)。90.91 B比固定1比1价格所暗示的100 B少约9.09%。这是交易本身造成的价格影响。滑点是报价与实际成交之间的差异。k约束储备乘积,不是池的美元价值;存入、提款及留在池内的手续费可以改变它。
三个会得出错误结论的捷径
用总TVL代替交易深度
集中流动性在价格区间内运作:很高的TVL可能包含不活跃头寸。加权池和稳定资产池采用其他曲线。应使用当前可执行的路径报价,而非将这个简化公式用于所有池。
提高容忍度来修复差报价
更大的容忍度只是允许更差的结果,并不改善流动性。比较其他路径或较小金额,并计入所有费用。在其他条件不变的池内拆分交易,不会自动消除累计价格影响。
认为套利保证公平价格
交易者通过寻找价差,可以推动池价格靠近其他市场。这是激励,不是保证。流动性薄弱、费用、延迟和交易排序可能使报价不利,或使交易暴露于MEV。
试一试:扩大订单
把无手续费池重置为1,000 A和1,000 B。兑换250 A。会收到多少B,平均每A得到多少B,报价上设置1%容忍度后的最低数量是多少?
查看推理
新B储备:1,000,000 ÷ 1,250 = 800。输出:200 B。平均:200 ÷ 250 = 0.8 B/A。1%容忍度对应最低198 B。与初始现货价格相比20%的差距,在应用容忍度之前就已存在。



