订单状态
币安市价单开了滑点容差,为什么只成交一部分
开启后的市价单按限价 IOC 执行:容差价以内能成交多少算多少,其余当场取消,不会留在当前委托里继续等。

打开历史委托,想买 100 个币的市价单只成交了 50 个,类型那一栏写着“有滑点的市价单”。这个类型说明下单时开了【滑点容差】:币安帮助中心《币安现货滑点容差简介》写明,若订单金额超出市场在该滑点范围内的可用深度,剩余未成交部分将被取消。
也就是说,这张单已经结束了。没买到的 50 个不会继续排队,当前委托里等不到它们;已经成交的 50 个也不会退回。
开了滑点容差的市价单,其实是一张限价 IOC 单
普通市价单依次与盘口上的对手单成交,后面的成交价可能更差;遇到深度不足或交易规则限制,也可能只成交一部分。开了滑点容差,币安先替你算一个价格上限(卖出时是下限),再按帮助页说的方式执行:以限价单的形式执行,有效期设置为 IOC(立即成交或取消)。
IOC 的意思是提交后立刻能成交多少就成交多少,剩下的不留在订单簿上。这解释了两件容易让人意外的事:
- 它不像普通限价单那样继续等价格回来,取消就是当场取消。
- 帮助页说这类订单成交后“将作为限价单(而非市价单)显示在订单历史记录中”,网页和 App 的订单记录里则标“有滑点的市价单”,网页版还会注明容差百分比。所以在记录里看到“限价”字样,不代表你下错了单。

滑点容差在哪里开
入口只在市价单的下单区里,网页和 App 走法差不多:
- 网页:现货交易页面的【市价】区域,选【买入】或【卖出】,填好订单,选【滑点容差】,再填百分比。
- App:【交易】-【现货】,在【市价单】里选买入或卖出,填好后选【滑点容差】。
- 两边都要核对后点【确认】,再到【历史委托】查结果;官方网页端说明也列了【当前委托】入口,但 IOC 撮合结束后,未成交部分会取消,不会留作挂单继续等。
刚上架的交易对可能用不了。帮助页的解释是新交易对刚开盘时暂时拿不到最新市场价,容差价格算不出来,这种单提交不了。
容差价格怎么算,为什么可能一个也没成交
帮助页给的公式很短:
买入:滑点容差价格 = 最新市场价 × (1 + 滑点容差百分比)
卖出:滑点容差价格 = 最新市场价 × (1 − 滑点容差百分比)
假设 AAA/USDT 最新市场价 2.00 USDT,容差 0.5%,买入上限是 2.00 × 1.005 = 2.01 USDT;同样的价格容差 1% 卖出,下限是 2.00 × 0.99 = 1.98 USDT。结果还要符合这个交易对的最小价格单位,比如算出 1.237702 而价格只能到三位小数时,就得落到某个合法价位上。帮助页没写往哪边取整,边缘情况别按理论值去卡。
注意公式的基准是最新市场价,不是卖一价。行情急的时候两者可能拉开:假设最新市场价仍是 2.00,卖一已经到 2.03,那么 2.01 的上限够不到任何卖单。按 IOC 的规则推下来,这张单会一个都不成交,整张取消。
算一笔:同一个盘口,开和不开差在哪
还是这个假设:买入 100 AAA,下单时卖盘是 2.00 有 30 个、2.01 有 20 个、2.02 有 500 个,且没有碰到其他下单限制。
容差 0.5%(上限 2.01):30 × 2.00 + 20 × 2.01 = 100.20 USDT,买到 50 AAA,均价 100.20 ÷ 50 = 2.004,剩下 50 AAA 取消。
不开容差:再加 50 × 2.02 = 101 USDT,合计 201.20 USDT,买到 100 AAA,均价 2.012。
开了容差,均价低了 2.012 − 2.004 = 0.008 USDT,但只买到 50 AAA;两种情况下,前 50 AAA 花的钱相同。很窄的容差会减少能成交的价位;放宽或关闭它能接受更多价位,也不能保证买够全部数量。下单前看一眼你这笔数量要吃到盘口第几档,比照抄别人的数字可靠。
手续费只对实际成交的部分计收,取消的部分不产生成交。这种单只吃盘口现成的挂单,按 Maker、Taker 的定义应归吃单方;具体扣多少、扣哪种资产,看成交明细,区别见限价单为什么也会收 Taker 费。
按数量下单,成交数量为什么和填的不一样
帮助页常见问题专门提到:以数量下单且启用滑点容差时,“最终成交数量取决于滑点容差价格”,可能和输入数量有差异。因此,确认买到了多少,要直接看这张单的已成交数量。
把“已成交数量”和“累计成交额”当作结果,把下单时填的数字当作请求。若有多条成交,均价要按多条成交的平均价算法自己合一遍,别用容差上限 2.01 当成交价。
只成交一部分之后,按这个顺序处理
- 认状态:先看已成交数量。接口文档的订单状态说明把 IOC 部分成交后剩余数量结束的情况归为
EXPIRED;因自成交保护而过期则是EXPIRED_IN_MATCH。类型一栏的“有滑点的市价单”只说明启用了容差,不能单凭它判定未成交的原因;记录指向自成交保护时,按自成交保护造成的过期继续查。 - 对成交:在成交历史里核对笔数、价格和手续费,买到的数量减去扣在币上的手续费,才是到账数量。
- 看余额:未成交部分对应的资金应回到可用余额。对不上时看可用余额和锁定余额怎么看。
- 补单前重算:还想买,就只下差额,这里是 100 − 50 = 50 AAA,并重新看盘口,别把原单再提交一遍。差额太小时可能过不了最小下单金额,要改数量或用现货下单规则查询先查门槛。
IOC 执行结束后,没有剩余挂单可撤。若你的普通限价单仍在等待成交,处理办法见订单只成交一部分,撤单以后剩下什么。