tracepu
简体中文

规则与费用

币安限价单提示价格超出范围:委托价最多能离现价多远

下单时一道关,成交时一道关;认出是哪道拦的,再决定改价还是等。

参考价两侧划出允许区间、区间外的委托被拒的规则示意图
参考价两侧各划一段允许区间,落在区间外的委托被拒。

想在远低于现价的地方挂一张买单等着接货:余额够,金额过了最小门槛,价格也按步长填了,点下去却被拒。拦住它的多半是一条专管价格的规则——委托价不能离系统认定的基准价太远,买单、卖单各有一组上下限倍数,超出就不接这张单。它没进订单簿,也就没有成交。

另一种情况看着像,其实是两回事:单子接下了,成交了一截,剩下的状态变成过期。这通常和币安 2026 年 4 月 14 日起逐步推出的现货价格区间保护机制有关。它盯的是每一笔成交价,不看你挂单时填了什么。两道关的检查时刻、基准和后果都不一样,下面分开讲。

“离现价太远”,是跟哪个价比

币安现货过滤规则文档里,管这件事的一项叫 PERCENT_PRICE_BY_SIDE。名字不用记,它做的事是:取一个基准价,分别乘上买单、卖单的倍数,划出两段能填的价格区间。

基准价:交易对有非空的参考价(reference price)时,用参考价;没有时,用过去 avgPriceMins 分钟的成交量加权均价;这个分钟数设为 0 时,直接用最新成交价。

也就是说,你盯着的那一口最新价,和系统拿来比较的数,不一定是同一个。参考价是一段时间里成交价的平均,比最新价走得慢。贴着边界填价格的单子,这一刻被拒、过几分钟又能挂上,或者反过来,都不奇怪。

通过条件按方向分开:

  • 买单:委托价不低于基准价 × bidMultiplierDown,也不高于基准价 × bidMultiplierUp。
  • 卖单:委托价不低于基准价 × askMultiplierDown,也不高于基准价 × askMultiplierUp。

同一份文档里还有一项 PRICE_FILTER,给价格定了绝对的最低值、最高值和价格步长。那是另一道检查,和“离现价多远”无关,这里不展开。

通过接口下单时,价格不满足这条规则,返回的错误是 Filter failure: PERCENT_PRICE_BY_SIDE。App 和网页上会提示价格不符合要求之类的信息,具体文字以页面为准。分辨时看提示说的是价格,还是金额、数量:说金额太小的,去看下单金额太小那篇,那是另一条规则。

用 BTC/USDT 查到的一组数,算能挂到哪里

下面的倍数是 2026 年 9 月从币安公开接口查到的 BTC/USDT 值,倍数官方可以调整。参考价每隔几秒就在更新,本例不用某一刻的实时值,而是取一个整数 84,000 USDT 当示例输入,方便你自己复算。拿来学算法,别当成固定答案。

字段本例用的值含义
bidMultiplierUp1.2买单最高能填到基准价的几倍
bidMultiplierDown0.5买单最低能填到基准价的几倍
askMultiplierUp2卖单最高能填到基准价的几倍
askMultiplierDown0.8卖单最低能填到基准价的几倍
avgPriceMins5没有参考价时,取几分钟的成交量加权均价
参考价84,000 USDT(示例输入)实际值查 /api/v3/referencePrice,每隔几秒就变

接口给 BTC/USDT 参考价标注的计算方式是算术平均(ARITHMETIC_MEAN),窗口为 80 个桶、每桶 3.75 秒,合起来就是最近 5 分钟的成交价。BTC/USDT 有参考价,所以用的是它,而不是成交量加权均价。

方向最低能填最高能填
买单84,000 × 0.5 = 42,00084,000 × 1.2 = 100,800
卖单84,000 × 0.8 = 67,20084,000 × 2 = 168,000

表里的上下限只是参考价乘倍数,没有按价格步长取整。真下单时,先查当时的参考价换进去算,价格还得同时对得上步长。

按这组示例数试几种填法。想在 40,000 挂买单等回落:低于 42,000,被拒。改到 42,500:进了区间,能挂上。卖单手滑少打一位,83,000 填成 8,300:远低于 67,200,被拒。买单多打一位,填成 838,000:高过 100,800,同样被拒。

两边的倍数不对称,值得多看一眼。买单往下放到 0.5 倍,往上只到 1.2 倍;卖单往上放到 2 倍,往下只到 0.8 倍。收得紧的恰好是对下单人不利的那一侧:出价太高地买、要价太低地卖,这种单一提交多半马上和对手盘成交,吃亏当场兑现。放得宽的是挂着慢慢等的那一侧。官方文档没解释为什么这样设,但从数字上看,打错一位数的单子大多会被它挡在门外。

回到开头那个场景:买单的委托价低于参考价的一半,按这组倍数就是跌破了 0.5 倍,下单那一刻直接被拒。比的是参考价,不是屏幕上那口最新价,贴着这条线填的单子,要拿当时的参考价来算。这条线跟着参考价移动,BTC 跌下来,能挂的最低价也跟着往下走。

想自己查倍数,要注意本站的现货下单规则查询会显示交易对的公开状态、数量上下限和步长、金额门槛、价格步长以及固定最高最低价,这组价格倍数它不显示。能看到倍数的是币安公开接口返回的交易对过滤规则;不查接口的话,就按下单页面的提示把价格往区间里挪。

成交了一截、剩下过期:这是成交那一刻的关

币安在 2026 年 4 月 7 日发布公告,推出现货价格区间保护机制(英文缩写 PRER),自 4 月 14 日起逐步推出。它和上一节那条规则不在同一时刻起作用:上一节在提交订单时检查你填的委托价;这个机制在撮合时看实际成交价,只让成交落在一个动态区间里。

公告里的要点有三条:订单只能在动态价格区间内执行;任何类型的订单在作为吃单方成交时,若执行价格将超出指定范围,就会过期;正常市场价格下,这项机制对日常交易没有影响。

币安简体中文公告页截图:标题为《币安推出现货价格区间保护机制(PRER)》,发布时间 2026-04-07 15:00,下方是公告首段和「主要特点」的前两条
2026 年 9 月 · 币安公告《币安推出现货价格区间保护机制(PRER)》:可对照公告标题、发布时间,以及首段和「主要特点」前两条怎样描述这项机制。

吃单方,指的是下单后立刻去和订单簿上已有挂单成交的那一方。英文版官方 FAQ 讲得更细:

  • 吃单时要继续成交就得碰到区间外的挂单,剩余未成交部分直接过期,不会转成挂单留在订单簿上;
  • 先在区间内成交了一部分、剩下的要越界才能成交,剩下那部分过期;
  • 对所有订单类型都适用;
  • 新上线的交易对,要等积累了足够成交数据、参考价可靠之后才启用。

区间的算法和上一节相似,也是参考价乘倍数,只是换了一组字段:买的一侧 bidLimitMultUp / bidLimitMultDown,卖的一侧 askLimitMultUp / askLimitMultDown。2026 年 9 月从 /api/v3/executionRules 查到,BTC/USDT 这一项买卖两边都是 0.85 ~ 1.15 倍。仍按 84,000 USDT 的示例参考价算,吃单成交价只能落在 84,000 × 0.85 = 71,400 到 84,000 × 1.15 = 96,600 USDT 之间。

举个例子:某个冷门交易对订单簿很薄,一张数量偏大的市价买单一路往上吃卖单。低于区间上沿的几档照常成交;再往上的卖单已经在区间外,剩下的数量不再成交,订单以过期收尾。前面成交的那截已经结算,不会因为后半段过期而退回。

公告的说法是,正常市场价格下这项机制对日常交易没有影响。它针对的是价格突然大幅偏离的时候,比如行情剧烈波动的那几分钟,或者订单簿很薄、一张单就能把价格推远的交易对。

通过接口看,这类订单的状态是 EXPIRED,过期原因是 EXECUTION_RULE_PRICE_RANGE_EXCEEDED。App 里对应显示哪几个中文字,以你屏幕上显示的状态文字为准。已成交那截怎么对账、剩下的去了哪里,订单只成交一部分那篇有逐项核对的办法。

来源:币安公告《币安推出现货价格区间保护机制(PRER)》;PRER 官方 FAQ(英文);订单状态与过期原因的字段名见币安现货 API 文档「Price Range Execution Rules」一节。

被拒,还是过期?对着这张表认

对照项下单时:委托价范围成交时:价格区间保护
什么时候检查提交订单那一刻撮合时,每一笔成交发生前
检查哪个价你填的委托价实际成交价
拿什么当基准参考价;没有参考价时用近几分钟成交量加权均价,分钟数为 0 时用最新成交价参考价
BTC/USDT 当时的倍数买 0.5 ~ 1.2,卖 0.8 ~ 2买卖都是 0.85 ~ 1.15
过不去会怎样整张单不被接受越界那部分过期,已成交部分照常结算
记录里看到什么没进订单簿,当前委托里找不到历史里留下一条过期记录,可能带着已成交数量

记录上最好认。被拒的单从没进过订单簿,没有任何成交,当前委托里找不到它。过期的单会在历史里留下一条记录,前面成交的那截照常结算,余额也按成交结果变动。

开头那种挂远价买单被拒的情况,只和第一道关有关。第二道关碰到的一般是吃单:市价单,或者价格已经越过对手盘、一提交就成交的限价单。

官方没单独说明的两处

止损限价这类条件单,是在提交时就检查价格区间,还是等触发、真正进入撮合时才检查,官方文档没单独说明,本文不下结论。

已经挂在订单簿上的挂单,后来行情走远了,它的价格落到区间外会不会被处理,官方文档同样没有单独说明,以你订单记录里实际显示的状态为准。公开说明的对象是吃单方,挂单这一侧不能照着推。碰上看不懂的状态,先记下订单号、时间和页面原始提示,再回到上面那张表,对一遍它是被拒还是过期。

被拒以后,能改的只有价格

下单时被拒,病根是价格离基准太远,能动的就是价格本身:低过下限的往上挪,高过上限的往下挪,买单卖单都是这样,挪回区间里。按上面那组示例数,参考价 84,000 USDT 时 BTC/USDT 的买单不能低于 42,000,也不能高于 100,800;参考价一变,这两条线就跟着变。

如果心里那个价就是挂不进去,比如非要在参考价四成的位置接货,那就是这一刻挂不了。这是交易对的规则,不是账户出了问题,也不是余额不够。可以等价格走近再挂,或者先挂在区间内自己能接受的价位。

下面几种常见的改法,解决不了问题。

拆成几张小单

这条规则看的是价格,不是金额。每张小单的价格一样离得远,一样被拒。拆得太碎,还可能再撞上最小金额那道线。

刷新页面、连点重试

基准价是几分钟的平均,价格没真正移动之前,重试的结果不会变。规则也不会因为提交次数多而放宽。

改成市价单

市价单按盘口当时的价格成交,等于放弃了想要的低价,和挂单接货的本意正好反着。价格区间保护对所有订单类型都生效,市价单打穿区间,越界那部分一样过期。

换成条件单碰运气

条件单在什么时候检查价格区间,前面说过官方没单独说明。拿它当绕路的办法,等于把结果交给一个没人讲清的环节,触发那一刻照样可能被拒。

价格挪进区间、单子挂上以后,它也可能很久不成交。那是挂单价和盘口之间的距离问题,跟这两道关已经没有关系。

被拒的单会不会扣费,挂着的单会不会被撤

限价单因为价格超出范围被拒,会扣手续费吗?
被拒的委托没有进入订单簿,也没有任何成交,所以不会产生成交手续费。它也不会出现在当前委托里。
这些价格倍数每个交易对都一样吗,会不会变?
不应假设一样。倍数按交易对设定,官方可以调整,参考价也在持续更新,所以要按当时查到的这个交易对的规则来算。
已经挂在订单簿上的限价单,会因为价格区间保护被撤掉吗?
官方文档没有单独说明挂单落到区间外会怎样处理,本文不下结论。公开说明的对象是吃单方:越界那部分过期,已成交部分照常结算。