限价单不等于挂单。你的限价单一下单就能和对面已经挂着的单子成交,成交的那部分就按吃单收费。
决定挂单还是吃单的,不是你选了「限价」还是「市价」,而是这笔成交发生时,你的单子是不是已经在订单簿里等着了。先等着、后被别人成交的,是挂单(Maker);一进来就去成交别人挂着的单子的,是吃单(Taker)。市价单永远是吃单,限价单两种都可能,同一张限价单甚至可以一半是吃单、一半是挂单。
怎么看一笔成交是挂单还是吃单:成交记录里有一栏
想知道已经成交的那一笔算哪种,不用自己推。打开交易所的成交记录,现货一般叫「历史成交」,找到那一笔看角色那一栏。以本文引用的那家交易所为例,它的帮助中心《如何查看我的现货交易活动》写明,「历史成交」里除了交易详情,还能看到手续费详情和「您扮演的挂单/吃单角色」。网页版在现货交易页下方的订单面板切到【历史成交】,App 在【交易】→【现货】页点交易历史的标志。
如果你用的平台记录里没有这一栏,再用手续费反推,最后一节讲怎么算。下面先讲为什么会是吃单,知道原因,下一笔才能避开。
挂单、吃单看的是「谁先在订单簿里等着」
订单簿就是交易页面上那两列数字,一列是挂着等人买的卖单,按价格从低到高排;一列是挂着等人卖的买单,按价格从高到低排。卖单里最便宜的那个价叫卖一,买单里出价最高的那个叫买一。
挂单方是给市场「留下」一张单子的人,价格还没到,单子先放进订单簿,等别人来成交。吃单方是把订单簿里现成的单子「拿走」的人,你一下单,就和别人早已挂好的单子成交了。交易所一般给挂单更低的费率,因为挂单让订单簿变厚,后来的人才有东西可以成交。
以币安帮助中心为例,原文的定义是「如果下达的订单在进入订单簿之前已立即成交,则您就是吃单方。无论您成交部分或全部订单,都是如此。」反过来,下达后部分或全部进入了订单簿的订单,比如限价单,之后由它产生的成交都算挂单方。同一页还写明,来自市价单的交易总是吃单方,IOC、FOK 这两类订单也属于吃单(那页注明这两种可通过 API 下单),用限价单并不能确保自己成为挂单方。
挂单、吃单的定义,这里对照的原文是:什么是市场挂单方和吃单方(币安帮助中心),2026 年 10 月核对
这几句话读下来,关键词只有一个,就是进入订单簿之前。至于你点的是「限价」还是「市价」,只决定你能不能控制成交价格,不决定你是哪一方。
限价单为什么也收了吃单费:看你填的价够不够得着对面
拿一个具体的盘口来看。假设某个交易对此刻卖一是 100.0,买一是 99.9。你要买入,下一张限价买单,价格填多少决定了结果。
| 你填的买入价 | 下单那一刻会发生什么 | 这笔算 |
|---|---|---|
| 99.8 | 比买一还低,没有人愿意按这个价卖给你,单子进入订单簿排队 | 之后成交时是挂单 |
| 99.9 | 和买一一样,排在已有的买单后面,同样进入订单簿 | 之后成交时是挂单 |
| 100.0 | 正好等于卖一,立刻和那张卖单成交 | 吃单 |
| 100.5 | 高于卖一,立刻和卖一、乃至更高价位的卖单成交 | 吃单 |
卖出时方向反过来,卖出价填得低于或等于买一,立刻成交,算吃单;高于买一,进入订单簿等待,之后成交算挂单。
记一条就够,买入价够得着卖一,或者卖出价够得着买一,就是吃单。
市价单为什么永远是吃单,用这张表也能看明白。市价单不带价格,意思是「按对面现有的最好价格马上成交」,它从来不会在订单簿里停留,自然只能是拿走别人挂单的那一方。
限价单常被当成「省手续费的单子」。可如果你为了马上成交,把买入价填得比卖一还高一点,单子是成交了,但从规则上说你做的就是吃单,付的也是吃单费率。限价帮你守住的是价格上限,不是费率。
还有一种情况容易被忽略。你挂的单本来在排队,后来你看价格跑了,改了价格,改到够得着对面。改价以后立刻成交的那部分,同样算吃单。挂单身份不是下单时就定死的,看的是每一笔成交发生的那一刻。
部分成交时,一张单子可以一半吃单、一半挂单
假设你在某个合约上挂一张限价买单,价格 100.0,数量 50。下单那一刻,卖一 100.0 的位置只挂着 20 个,结果分三步。
- 这 20 个立刻和卖一成交,算吃单。
- 剩下的 30 个在 100.0 进入订单簿排队。
- 之后有人按 100.0 卖给你,这 30 个陆续成交,算挂单。
费用分开算。以 2026 年 10 月币安 U 本位合约费率页上普通用户的费率为例(页面会调整,实际下单以当时页面上的数为准),挂单 0.0200%、吃单 0.0500%。吃单部分 20 × 100.0 = 2,000,手续费 2,000 × 0.0500% = 1.00;挂单部分 30 × 100.0 = 3,000,手续费 3,000 × 0.0200% = 0.60;合计 1.60。如果整张单都是吃单,是 5,000 × 0.0500% = 2.50;整张都是挂单,是 5,000 × 0.0200% = 1.00。
算例里的合约费率取自:U 本位合约费率表,2026 年 10 月核对
同一张单子、同一个价格,手续费在 1.00 到 2.50 之间,差别全在下单那一刻对面挂着多少。所以对账时看到一张限价单的手续费比你预想的高,先别怀疑费率错了,去看它有没有一部分是立刻成交的。
这个算例用的是合约,因为合约的挂单、吃单费率差得多,看得清楚。合约带杠杆,价格朝不利方向走时可能亏掉全部保证金,这里的几块钱手续费只是总成本里最小的一项;资金费用、强平清算手续费这些,见永续合约要付哪几笔钱。
想确保挂单,可以用「只做 Maker」,但有代价
如果你确实想让单子只以挂单身份成交,很多交易所提供一个专门的选项,通常叫「只做 Maker」或 Post Only。它的作用是确保订单在成交之前先进入订单簿。前面引用的那页帮助中心也是这样建议的,并注明这个选项目前仅适用于其网站和桌面 App。手机 App 上叫什么、有没有,那一页没有写,所以真要确保挂单,就在网页版或桌面 App 上下这一单。
代价也很直接。你填的价格如果下单那一刻就能成交,这张单子就没法以挂单身份进入订单簿。这种单子会被怎么处理,前面那页帮助中心没写。稳妥的做法是买入价填得低于当前卖一、卖出价填得高于当前买一,就碰不到这个问题。更大的代价是成交本身。价格朝你想要的方向走开了,挂着的单子就一直不成交,你省下的那点手续费,可能抵不过错过的行情。
IOC(立即成交否则取消)和 FOK(全部成交否则取消)正好相反,它们的设计就是不在订单簿里停留,所以按定义都是吃单。想挂单却选了这两种,等于自己把挂单的可能性关掉了。
差多少钱?有的账户根本不差
挂单、吃单值不值得费心,先看你那一级的费率表上两个数差多少。
| 情况(2026 年 10 月费率页上的普通用户) | 挂单 | 吃单 | 差别 |
|---|---|---|---|
| 现货 | 0.100% | 0.100% | 没有差别 |
| 现货,开 BNB 抵扣后 | 0.075% | 0.075% | 没有差别 |
| U 本位合约 | 0.0200% | 0.0500% | 吃单是挂单的 2.5 倍 |
| U 本位合约,开 BNB 抵扣后 | 0.0180% | 0.0450% | 吃单是挂单的 2.5 倍 |
表中现货两行取自同一家的:现货及杠杆费率一览,2026 年 10 月核对
这张表里最值得记的是第一行。在这个费率表上,普通用户做现货,挂单和吃单是同一个价。我的判断是,如果你只做现货、又是普通等级,没必要为了「当挂单」把价格填得离盘口很远,等半天不成交,省下的手续费是零。
挂单真正省钱的地方有三处,分别是合约、VIP 等级以后的现货(挂单、吃单开始拉开),以及只免挂单费的零手续费交易对。最后一种在交易所的活动页上能看到,有的交易对挂单 0%、吃单照收,在那里挂单成交和吃单成交,手续费一个是 0,一个是全价。
成交记录里如果没有角色那一栏,可以用两个数反推,也能拿来核对:用这笔的手续费除以这笔的成交额。在上面的合约费率下,算出来约 0.02% 是挂单,约 0.05% 是吃单;开了 BNB 抵扣,就分别对 0.018% 和 0.045%。现货普通用户两边都是 0.1%,算不出区别,也不需要区别。
合约上这笔差额有多大,用一个月的量估一下。假设每月合约成交名义价值 100,000 USDT,全部吃单是 100,000 × 0.0500% = 50 USDT,全部挂单是 100,000 × 0.0200% = 20 USDT,差 30 USDT。真实情况多半落在两者之间,取决于你有多少单子是挂着等来的。
想把挂单比例、BNB 抵扣和返现一起算进每月成本,可以用手续费减免计算器,BNB 抵扣和返现怎么叠在一起,BNB 抵扣叠加返现那篇有逐步算例。
如果你只做现货、还是普通等级,挂单还是吃单可以先不管。开始做合约以后,每隔一阵打开历史成交,看看角色那一栏里挂单占几成;吃单占多数,就把下单价往回收一点,别去够对面的价。