Uniswap V3新特性解析系列二:范围订单是限价单吗?
在 Uniswap V2 版本中,交易者只能选择以当前的市场价格进行交易。由于 V2 版本在协议层面缺乏原生的限价单功能,导致用户很难在 Uniswap 上应用常见的止盈或止损策略。
这个问题,在 V3 版本最新的升级中终于得到了解决。
如何在 AMM 上构造「限价单」
上一篇我们提到过,当 LP 设定的做市价格范围完全高于或低于市场价格时,LP 必须提供单一币种进行做市。那么,如果我们在完全高于现货价格的范围中提供流动性,并将做市的价格区间不断缩小,会发生什么?
我们依然以 ETH-USDC 交易对为例。
假设 ETH 现货价格为 2000 美元,LP 在 2300-2310 美元的范围内,全部以 ETH 提供流动性。那么当 ETH 价格上涨到 2300 美元时,LP 提供的 ETH 开始被逐渐兑换为 USDC。若此后 ETH 的价格继续上涨,LP 资产中的 USDC 比例便会不断升高,直到现货价格达到 2310 美元时,资产被全部兑换为 USDC。
此外我们也可以在数学上证明, 以这种方式卖出 ETH 的平均成交价格,等于 LP 做市范围的几何平均数 ,
也就是
2304.99 美元。
这时我们发现,如果 LP 做市的最初目的,就是在 2300 到 2310 美元左右的价格,将自己手中的 ETH 头寸全部卖出止盈。那么他在 V3 中提供的流动性,居然很好地完成了这个目标。
延续之前的例子,如果我们将 LP 的做市价格范围继续缩小,缩小到极限的 2300.00-2300.01 美元的范围内。此时,我们就可以近似的认为,LP 以大约 2300 美元的价格,挂出了一张 ETH 的限价卖单。只要市场价格高过 2300.01 美元,LP 提供的 ETH,就会被全部卖出兑换为 USDC。这种操作也可以视为,帮助 LP 完成了在限定价格卖出 ETH 的操作。
这种 将 LP 的做市价格范围无限缩小,在现货价格之上或之下,以单一币种提供的聚合流动性,便是我们说的「范围订单」(Range Orders) 。同时我们可以将上文例子中,帮助 LP 在一定范围内止盈的范围订单,称为 「止盈范围订单」(Profit-taking range orders) 。
所以,其实 「范围订单」本质上并不是真正的订单,而是 LP 向资金池某个特定价格点提供的聚合流动性 。虽然不是真正的订单,但「范围订单」所表现出的特性,却很好地模拟了限价单的基本功能。
范围订单与限价单有什么区别
既然「范围订单」在功能上与限价单如此类似,那么为什么不直接称其为「限价单」,而要另外再取一个名字呢?
我们知道, 在传统的订单簿交易所,当一张限价单被成交后,资金或资产便会自动返回投资者的交易账户,直到投资者发出下一张限价单指令。而 V3 版本中的「范围订单」则不同,当此订单被全部执行后,LP 的资金依然会被锁定在原先的资金池中,并可以被再次反向执行。
也就是说,如果投资者希望通过范围订单在 2300 美元卖出 ETH 止盈,那么在「范围订单」被全部成交后,LP 必须在 ETH 价格重新回落到 2300 美元前尽快撤回流动性。否则价格一旦重新跌到 2300 美元以下,「范围订单」将帮你自动「抄底」,将已经出售的 ETH,在 2300 美元处重新买入,「回滚」之前的卖出交易。
V3 版的 Uniswap 是不是订单簿交易所
到这里可能不少读者已经感觉到,V3 中的「范围订单」与普通的流动性做市之间,似乎并没有特别明确的界限。
比如我们可以认为,在 2000.00-2000.10 美元范围内的做市,是一个独立的「范围订单」。但同时也可以说,这种流动性做市,相当于在 10 个更小的价格范围内,同时提交了 10 个不同价格的「范围订单」(如 2000.00-2000.01、2000.01-2000.02......)。
(备注:V3 在具体实现中并不是以 0.01 美元作为基本单位,而是以 1.0001 的倍数计算,此处为便于理解简化了模型)
如果我们这样思考,那么整个 Uniswap 的流动性,都可以以最小价格变动单位为基点,被拆分成无数个「范围订单」。 任何形状的价格曲线,都可以被完全等价地映射为一个由众多最小「范围订单」组成的订单簿 。也就是说, V3 版本的 Uniswap,已经在底层逻辑上,具有了部分订单簿交易所的特征 。
然而,由于 V3 中的「范围订单」,依然与真实订单簿交易所的限价单存在区别,如果想要在 V3 版本中完整地模拟订单簿交易所的状态,就必须在每一个最小「范围订单」被执行后,及时将资金撤出流动性资金池。而撤出流动性的操作,预计仍然需要 LP 们手动完成。这不但增加了操作的频率,同时也改变了目前 LP 们被动管理的习惯。所以, V3 版本的 Uniswap 还不能算作订单簿交易所,其交易逻辑的核心,依然是基于 AMM 的自动做市机制 。但不得不承认,V3 版本在经典 AMM 的底层逻辑之上,最大程度地融合了订单簿机制的优点,为交易者提供了更好的使用体验。
此外,笔者预计在 Uniswap V3 上线后,大部分 LP 依然会采用传统的被动做市策略,即选定一个价格范围,并长期的提供流动性。毕竟提交和撤回「范围订单」,都需要实打实地支付 gas 费,这对于目前的以太坊交易成本来说,显然还不是一个经济的选择。
可以看出,在 Uniswap 完成 V3 版升级后,新的协议不但吸收了部分订单簿交易所的优点,同时也保留了经典 AMM 的优势,可以说在产品形态上又完成了一次重要的进化。
那么,当 Uniswap 获得了聚合流动性与范围订单功能后,其代表性的经典价格曲线还会不会保持原来的形态呢?下一篇,我们详细的讨论下价格曲线的问题。