成交以后
币安市价单按成交额买入,为什么实际花的比填的少一点
填的是预算;数量步长可能留下零头,订单未成交完也会剩钱。先看状态,再对成交记录。

按【成交额】下的市价买单,你填的数字是这单打算花的金额,实际成交额不一定正好相等。数量要符合交易对的步长;如果再买一格就超过预算,这点钱会留在可用余额里。下面用 100 USDT 买入、实际花掉约 99.86 USDT 的假设算例看这笔差额。
步长留下的 USDT 零头要和手续费分开看。普通现货买入默认从收到的币里扣费;账户与交易对适用 BNB 抵扣、且 BNB 余额足够时才扣 BNB,实际扣费资产看成交记录,扣法见买到的币为什么少一点。剩下的钱明显不止一点零头,那是另一种情况:订单可能没成交完,放在后面单独说。
币安市价单的【数量】和【成交额】各填什么
币安帮助中心《市价单和限价单简介以及下单方式》写着:下市价单时,可以选【数量】或【成交额】进行买入或卖出。想买卖一定数量的 BTC,建议选【数量】;想拿一笔固定金额去买,比如一万 USDT 买 BTC,用【成交额】更合适。同一页还有一句提醒:选「数量」是常规市价单,选「成交额」是反向市价单,两种都算市价单。

拿买入来说,两种填法定下来的东西正好相反:
- 选【数量】:你定买多少个币,最后花多少 USDT 由成交价决定。
- 选【成交额】:你定花多少 USDT,最后买到多少个币由成交价和数量规则决定。
币安公开的现货接口文档把后一种叫 quoteOrderQty,解释更直白:买入时是用户想花的金额,卖出时是想收到的金额,具体成交数量由市场流动性和这个金额一起决定。
填了 100 USDT,成交额为什么是 99.86
接口文档在新下单接口的说明里写了两条:按金额下的市价单不会违反 LOT_SIZE 规则,包括其中的数量步长要求;成交数量会让成交额尽可能接近你填的金额。当步长大于零时,数量只能取它的整数倍;若再买一格就超过预算,成交额便会略少于输入金额。
假设一笔:交易对 AAA/USDT,数量步长 0.1 AAA。你选【成交额】,填 100 USDT 市价买入。卖盘上价格 2.000 的一档挂着 30 AAA,往上一档 2.003 的量足够多(价格单位都是 USDT)。
| 成交价(USDT) | 成交数量 | 这一笔花掉(USDT) | 预算还剩(USDT) |
|---|---|---|---|
| 2.000 | 30 AAA | 60.0000 | 40.0000 |
| 2.003 | 19.9 AAA | 39.8597 | 0.1403 |
| 2.003(再加一格) | 20.0 AAA | 40.0600 | 超出 0.0600,买不了 |
剩下的 40 USDT 按 2.003 算,能买约 19.97 个 AAA;步长是 0.1,只能取到 19.9。合计成交 49.9 AAA,花掉 99.8597 USDT,0.1403 USDT 原样留在余额里。成交均价是 99.8597 ÷ 49.9 ≈ 2.0012。
在这个卖盘和价格不变的算例里,零头小于下一格的成本:0.1 × 2.003 = 0.2003 USDT。真实订单可以用「步长 × 对应价格」估算一格的金额,但盘口变化、深度不足或交易规则限制也会留下未花的钱,不能仅凭差额大小定原因。步长粗、币价高的交易对,这截零头看着就大一些。某个交易对的步长现在是多少,可以用现货下单规则查询查,步长和小数位的区别在数量步长那篇里。
再把手续费算进去
接着上面的例子,假设费率按 0.1% 算、从买到的 AAA 里扣:49.9 × 0.1% = 0.0499 AAA,到账 49.8501 AAA。这 0.0499 AAA 和那 0.1403 USDT 是两笔各管各的差,一笔少在币上,一笔留在 USDT 里。核对时分开记,别把两样加在一起去找原因。你账户的实际费率去费率页看。
按成交额下单后,在订单记录里对这几个数
帮助页写的是,买到多少币和均价都可以在【订单历史记录】里查。打开这张订单,按顺序对:
- 抄下成交额、成交数量、均价三项。
- 成交数量 × 均价,应当约等于成交额。若有很小的差异,先检查页面显示的均价是否经过舍入。
- 你填的金额减去成交额,就是没花出去的部分。先看订单状态,再用当时的步长和成交价格估算一格的金额;差额接近这个量级,只能作为核查步长的线索。
- 手续费去【历史成交】里逐笔看。一张订单拆成几笔成交时,每笔各有自己的手续费和币种,均价怎么合起来见多条成交的均价。
剩下的钱远不止一格:先看订单是不是没成交完
没花出去的金额比一格的钱多出一大截,先排查是否有未成交部分。先看订单状态:部分成交、已撤销、已过期,都说明有一部分没成交。
市价单不会挂在盘口上慢慢等,没成交的部分随着订单结束而结束,对应的 USDT 回到可用余额,不会被扣走。下单时开了滑点容差的,超过容差价的那部分会直接取消,这种情况在滑点容差那篇里有专门的算例;订单结束后钱和币分别去了哪里,可以按部分成交那篇的顺序核。
拉到「买入 100%」时,选成交额还是选数量
帮助页拿这个场景各举了一个例子。
选【数量】再拉满:系统按当时的卖单先算出你的余额能买多少个币,把这个数量填进订单。下单那一刻价格要是涨了,这些 USDT 就不够买那么多,订单无法成交。帮助页给的办法是手动改小数量重下,或者改用【成交额】。
选【成交额】再拉满:帮助页的说法是,系统根据你持有的 USDT 金额按市场现价执行,事先没法确定能买到多少。想按一笔预算买入,可以选这种填法;成交结果仍受流动性和交易规则影响,订单结束后要看实际成交额及状态。
卖出也能按成交额:填的是想收到多少 USDT
反过来卖的时候,【成交额】填的是想收到多少报价资产。卖出数量同样要落在步长上,接口文档的说法仍是「尽可能接近」,所以收到的成交额和你填的数不一定分毫不差。卖出的手续费按默认扣法从收到的 USDT 里扣,到账还会再少一截;这一步怎么算,见卖出后到手多少 USDT。
来源:币安帮助中心《市价单和限价单简介以及下单方式》(页面标注最后更新 2024 年 6 月 28 日)、币安现货接口文档 rest-api.md 中新下单接口的说明(英文),另参照币安现货手续费说明核对扣费资产及 BNB 余额条件,2026 年 11 月查阅。