三条界限,取最严的
这个界限取三个独立推导出的价格中最保守的那个。你的滑点容忍度买单取最优卖价 × (1 + s),卖单取最优买价 × (1 − s)默认 10%,可在 0.01% 到 10% 之间设定。这是你能控制的那条。
该市场的价格带任何订单都不得在带外挂出或成交保护的是市场,不是你——区块内拿不到指数价格时,宁可拒单,也不让保护失效。
你的数量能触及的最差价格按你的订单实际会消耗的深度推出盘口报价不会告诉你的那条界限。
取三者中最严的
提交订单上的限价买单取三者最低,卖单取最高
你的滑点容忍度
容忍度默认 10%,可在 0.01% 到 10% 之间设定。这是你能控制的那条界限,它表达的是一个简单的指令:不要让我成交在离盘口比这更远的地方。该市场的价格带
每个市场都围绕其参考价格强制执行一个价格带,任何订单都不得在带外挂出或成交。这对市价单同样适用——你的容忍度无法把成交推到超出市场对所有人的限制之外。 这条界限保护的是市场,不是你。没有它,一笔大额市价单打进真空,就可能打出一个价格,而这个价格还会流进别的系统。 价格带同时对标记价格和指数价格评估;配置了价格带的市场,一旦某个区块拿不到指数价格,就宁可拒单,也不退而求其次——已经配置好的保护,不允许悄无声息地失效。 带宽按市场配置,存在price_limit_ppm 里,另有 price_limit_x_ppm 和 price_limit_y_ppm 做两段式细化。请从合约规格里读,不要从本页读。
算一遍
你向下面这个订单簿提交一笔市价买单,用 4,000 USDC 买 ETH:
引擎一档一档往下走,把预算花完为止:
- 第 1 档花掉 1,000,剩 3,000
- 第 2 档花掉 1,503,剩 1,497
- 第 3 档有 2,008 可吃,但只剩 1,497,于是部分成交:1,497 ÷ 50,200 = 0.0298207 ETH
你的数量能触及的最差价格
提交之前,系统会按你的订单数量所需消耗的深度去走一遍订单簿,把触及到的最深档位的价格作为一条界限。 这是三条里最微妙的一条,它处理的是另外两条覆盖不到的情形。你的容忍度是从盘口起算的,而这并不说明订单簿是否有足够深度在那附近把你填满。按你的实际数量走一遍订单簿,就把离盘口有多远换算成了这笔具体的订单实际会落到哪里。这对你意味着什么
你的订单可能无法完全成交。 如果订单簿在界限之内的流动性用光了,剩余部分会被撤销,而不是以更差的价格成交。市价单部分成交是保护在起作用,不是失败。 容忍度越紧,未成交的订单越多。 在波动市场上设 0.01%,会频繁得到部分成交甚至完全不成交。默认的 10% 是宽松的,因为没成交往往比几个基点的滑点更糟——但它确实宽松,而在薄市场里 10% 是一笔实实在在的钱。 数量比容忍度更重要。 第三条界限是从你的数量推出来的,所以不管容忍度设得多慷慨,大额订单还是被订单簿的实际深度卡住。拆分大额订单才是降低冲击的可靠办法——参见 TWAP 和阶梯订单。这次转换发生在提交时,使用的是那一刻的订单簿。在提交与执行之间,订单簿可能移动。这个界限保护你不去扫穿本就不存在的深度;它并不冻结市场。
提交前先看一眼
这个界限可以由公开数据算出来,所以客户端能在你确认之前把预期成交价和最坏情况摆给你看。只要订单相对可见的订单簿算大,就值得先算一次——盘口价和最差可触及价之间的差额,正是市价单藏起来的那个数。后续阅读
订单类型
限价单、订单有效期,以及各自如何处理未成交的剩余部分。
订单簿
读懂深度,以及为什么盘口价不是成交价。
TWAP
把大额订单沿时间拆分以降低冲击。
市场
各市场的价格带与最小价格变动单位。