在 Uniswap V2 版本中,交易者只能选择以当前的市场价格进行交易。由于 V2 版本在协议层面缺乏原生的限价单功能,导致用户很难在 Uniswap 上应用常见的止盈或止损策略。
这个问题,在 V3 版本最新的升级中终于得到了解决。
上一篇我们提到过,当 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 中的「范围订单」与普通的流动性做市之间,似乎并没有特别明确的界限。
比如我们可以认为,在 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 获得了聚合流动性与范围订单功能后,其代表性的经典价格曲线还会不会保持原来的形态呢?下一篇,我们详细的讨论下价格曲线的问题。