价格带外的那笔挂单:AMM限价单功能的成交与过期机制 图 1
价格带外的那笔挂单:AMM限价单功能的成交与过期机制 · 图 1

在自动做市商里挂一张”到价才成交”的订单,直觉上是个矛盾:AMM 的定价跟着池子储备连续漂移,没有挂单的容身之处。但一些做市协议确实提供了限价单功能,它们不是把订单簿搬到链上,而是把”你的意图”编码进一个可以被任何人触发的状态——一个优雅的工程妥协。理解这套触发机制,你就能解释为什么有时挂单完美成交、有时永远沉睡、有时成交得很难看。

机制的内核是把挂单变成区间数学。以集中流动性版本为例:你选择价格带和方向,等于登记了一段”只愿意在某个价格以上卖出、某个价格以下买入”的意愿,合约替你持有单边资产,当前价格穿过你指定的边界时,任何执行者都可以触发这笔成交——触发人拿到协议约定的奖励,你的资产按约定换到另一侧。换句话说,链上没有值守的服务器在盯行情,“到价”这件事的实现方式是:行情推到边界,第一个来按按钮的人帮协议完成状态转换,顺便领工钱。

由此产生限价单功能的第一个特性:触发价格是从状态推导的,不是被观测的。执行者调用触发函数时,合约读的是那一刻的池子储备折算出的当前价——所以限价单永远用池子的眼睛看世界。如果行情剧烈、池子被单边打穿,触发价与外部交易所行情可以有一眼可见的偏差;如果该池子深度很薄,你的存在本身也会影响别人触发时的报价。挂单前问一句”我用的是哪口池子的价格做触发源”,等于选定了你的成交世界。

第二特性是单腿成交的滑点归属。市价 swap 你当场吃滑点;限价触发时,你的成交价锚定在你设定的边界附近,但触发那笔交易在池子里造成的边际影响,取决于触发时刻的池子状态。行情穿越边界时如果带着动量,触发价可能优于你的挂单位(跳空穿过),也可能因为同方向其他订单排队触发而劣于挂单位(边界堆积)。横盘时你的单子安静,暴涨暴跌日你的单子最可能被”顺便”执行——这两件事是同一枚硬币。

第三种失败是永不触发。价格永远差一口气不碰你的边界,你的挂单就是长期持有的单边资产加零手续费——挂单不产息,等待有机会成本。挂出前先诚实回答:相对直接持有资产等待上涨,这张单子的差异价值是什么?如果答案是”到价我就走”,那它是纪律工具;如果答案含糊,它只是一个更贵的执念。

执行与取消的权限边界也要说清:在纯状态推导的实现里,挂单是你与合约之间的约定,取消是你的单方权利——一笔交易把状态解除即可,没有撮合中心,也不存在”部分成交后剩余继续挂着”的经典语义,很多实现要么全额触发、要么等下一段行情再触发。另一些实现把触发做成公开的无许可任务,于是出现了专门的触发者机器人:他们监控边界、抢先执行对自己最顺的订单,你的订单排在队列里,被服务的质量取决于协议给触发者的激励设计。

对新手的最短建议:先在一口流动性充分的池子里挂一张金额小到可笑、边界近到大概率会被碰到的单,完整观察一次触发或取消,读懂那笔交易的事件日志,再谈把真仓位交给这个功能。

本文为触发机制的一般说明,不指涉具体协议当前版本的功能差异,不构成投资建议;挂单期间资产价格波动带来的损失由挂单人自行承担。

价格带外的那笔挂单:AMM限价单功能的成交与过期机制 图 2
价格带外的那笔挂单:AMM限价单功能的成交与过期机制 · 图 2