現貨成交機制
Maker、Taker 怎麼判斷?部分成交、平均價格與實際費用完整教學
從 Binance 真實訂單簿與成交區判斷 Maker、Taker,還原一張委託的部分成交、加權平均價格、逐筆費用與實得資產。
讀完這篇,你應該能在 Binance 現貨交易中判斷一筆成交是 Maker 還是 Taker,理解為什麼同一張限價單可能先成為 Taker、剩餘部分再成為 Maker,並從逐筆成交紀錄算出平均成交價、總費用與實得資產。完成後,你不會再用「限價單就是 Maker」或「委託已送出就是全部成交」判斷結果。
Maker、Taker 描述的是成交角色,不是帳戶身分
- Maker:委託先進入訂單簿等待,增加其他人可以成交的流動性;日後被對手方成交的部分是 Maker。
- Taker:委託送出後立刻與訂單簿中既有委託成交,取走可用流動性;立即成交的部分是 Taker。
同一個使用者今天可以是 Maker,下一筆又是 Taker。判斷依據不是帳戶名稱、買入或賣出方向,也不是單看 Market/Limit 標籤,而是每一部分成交發生前,委託是否已經留在簿上。
在 Binance 真實交易頁看流動性如何被提供與取走

截圖中的左側 Order Book 是尚未成交的限價委託:它們提供可被取用的流動性。右側 Market Trades 是已經發生的逐筆成交。當一張新委託立即吃掉左側既有價位時,新委託是 Taker;原本留在訂單簿、被它成交的委託是 Maker。
畫面來自未登入的 Binance 公開 SOL/USDT 現貨頁,沒有帳戶、餘額或個人資料。數字只用來認識欄位,不是即時報價或交易建議。
市價單通常是 Taker,但限價單不一定是 Maker
市價單以當下可得價格立即成交,通常會取走訂單簿流動性,因此一般按 Taker 處理。
限價單則要看價格是否穿過對手方最佳價。假設:
- Best Bid = 99.90
- Best Ask = 100.10
三張買單會有不同結果:
| 買入委託 | 送出時的行為 | 可能角色 |
|---|---|---|
| 限價 99.80 | 低於 Best Bid,留在簿上等待 | 日後成交部分為 Maker |
| 限價 100.00 | 高於 Best Bid、低於 Best Ask,留在價差中 | 日後成交部分為 Maker |
| 限價 100.30 | 先與 100.10 至 100.30 的賣盤成交 | 立即成交部分為 Taker |
第三張仍叫「限價單」,但它的價格允許立即成交,因此不能按 Maker 費率預估全部成本。
一張 GTC 限價單可以同時有 Taker 與 Maker 成交
假設要買入 1 BTC,限價 100.30;送出時賣盤只有:
| Ask 價格 | 可成交量 |
|---|---|
| 100.10 | 0.20 BTC |
| 100.20 | 0.30 BTC |
| 100.30 | 0.10 BTC |
委託先立即成交 0.60 BTC,這三部分取走既有流動性,屬於 Taker。剩下 0.40 BTC 若有效期限是 GTC,可能以 100.30 留在簿上;日後由另一張委託來成交時,剩餘成交可按 Maker 處理。
因此一張委託可能得到多個 Fill,而且各 Fill 的價格、數量、時間與費用角色不完全相同。必須查看成交明細,不能只看原始委託類型。
Post Only/Limit Maker 能做什麼
Post Only(Binance API 中常見為 LIMIT_MAKER)的目的,是阻止委託在送出時立即成為 Taker。如果你的價格會直接與既有委託成交,系統通常拒絕該委託,而不是把它悄悄變成一般 Taker 限價單。
Post Only 只處理「送出瞬間是否吃單」,不保證一定成交,也不保證掛單後價格會回來。為了 Maker 費率把委託掛得太遠,可能得到零成交;反覆取消重掛又可能失去同價位的時間順位。
部分成交是正常狀態,不是系統錯誤
假設限價買入 1 BTC,但對手方目前只有 0.35 BTC:
- 已成交量 Executed = 0.35 BTC;
- 剩餘量 Remaining = 0.65 BTC;
- 委託狀態可能是 Partially Filled;
- 可用餘額已因成交、費用及剩餘委託占用而改變。
此時你真正持有的是成交後的淨數量,不是原始 1 BTC。若立刻建立賣出風控、OCO 或轉帳,都應以實際成交與可用餘額為準。剩餘 0.65 BTC 可能稍後繼續成交,除非你取消它。
為什麼同價位仍可能等很久
集中式訂單簿通常採價格優先,同價位再按時間優先。即使市場已經成交到你的限價,前方較早掛入的數量也可能先被撮合。你看到該價位有成交,不等於自己的整張委託已成交。
修改價格或取消後重掛,常等同建立新委託,原本的時間順位可能消失。是否追價,應同時考慮未成交後果、價差、費用與新價格的市場深度,而不是只想縮短等待時間。
用成交量加權平均價格還原整張委託
假設一張買單得到:
- 0.20 BTC 成交於 99.90;
- 0.30 BTC 成交於 100.00;
- 0.50 BTC 成交於 100.40。
成交總額是:
0.20 × 99.90 + 0.30 × 100.00 + 0.50 × 100.40 = 100.18
加權平均成交價:
100.18 ÷ 1.00 = 100.18
不能把 99.90、100.00、100.40 直接除以三,也不能拿最後一筆 100.40 代表整張委託。若只成交 0.70 BTC,分母必須使用 0.70,而不是原始委託 1 BTC。
費用要按每筆 Fill 的角色計算
基本公式是:
單筆交易費 = 該筆成交額 × 該筆適用費率
假設只做教學試算:
- Taker 成交額 40,000 USDT,示例費率 0.06%,費用為 24 USDT;
- Maker 成交額 60,000 USDT,示例費率 0.02%,費用為 12 USDT;
- 總費用為 36 USDT。
這些百分比不是本站宣稱的當前 Binance 固定費率。實際費率會受市場、產品、VIP 等級、活動、BNB 扣費設定及所在地影響;應使用成交當下帳戶顯示的費率與成交紀錄。
費用扣在哪一種資產,會改變實得數量
買入 0.10 ETH 不代表餘額必定增加完整 0.10 ETH。若費用從買入資產扣除,實得 ETH 會少於成交量;若使用 USDT 或 BNB 扣費,ETH 實得量可能不同。
因此驗收一筆買入要同時記錄:
- 成交總量;
- 成交總額;
- 費用金額;
- 費用資產;
- 帳戶實際增加的淨資產。
只看到成交數量,還不足以計算實際持有成本。
有效買入價與有效賣出價怎麼算
若買入相關費用能換算到計價資產:
有效買入價 =(成交總額 + 買入費用)÷ 實得基礎資產
賣出則可用:
有效賣出價 =(成交總額 − 賣出費用)÷ 實際賣出數量
例如成交總額 1,000 USDT,費用 1 USDT,實得 0.3996 ETH:
有效買入價 = 1,001 ÷ 0.3996 ≈ 2,505.01 USDT/ETH
這比只看畫面平均價更接近真實取得成本。若費用使用 BNB 支付,先按一致的記帳規則換算後再比較,不要直接把不同資產數字相加。
Maker 費率較低,不等於總成本一定較低
交易總成本至少包含:
- 明示 Maker/Taker 費用;
- 買賣價差;
- 跨多檔成交造成的滑價;
- 等待期間價格離開帶來的機會成本;
- 取消重掛或追價造成的執行差異。
如果為了省一小部分 Maker 費把買單掛得太低,最後市場上漲後用更高價格追入,總成本可能遠大於費率差。選擇 Maker 或 Taker 的重點,是價格控制、成交速度與未成交後果的整體取捨。
從委託紀錄與成交紀錄完成驗收
委託送出後,依次核對:
- 原始委託數量與限價;
- 狀態是 New、Partially Filled、Filled、Canceled 或 Expired;
- Executed Quantity 與 Remaining Quantity;
- 每一筆 Fill 的價格、數量和時間;
- 每一筆 Fill 的 Maker/Taker 角色或對應費率;
- Commission 與 Commission Asset;
- 加權平均成交價、總費用與淨取得資產;
- 剩餘委託是否仍在 Open Orders 占用餘額。
介面名稱可能改版,但「原始委託、逐筆成交、費用、剩餘量」四組資料缺一不可。
部分成交後的決策流程
| 你的目標 | 應先做的事 | 風險 |
|---|---|---|
| 繼續等完整成交 | 保留剩餘單並監控價格與可用餘額 | 市場離開、後續成交時間不確定 |
| 不再增加部位 | 取消剩餘單並確認狀態為 Canceled | 取消前可能又產生新成交 |
| 改價追近市場 | 先記錄已成交量,再取消重掛剩餘量 | 失去順位,可能變 Taker 或重複下單 |
| 立即建立退出保護 | 只用實際可用持倉設定數量 | 原剩餘買單稍後成交會使持倉再增加 |
取消與新委託之間存在時間差。操作前後都要重新整理成交紀錄,避免用過期數量建立風控。
常見錯誤與修正方式
| 錯誤 | 為什麼不對 | 修正方式 |
|---|---|---|
| 限價單一律按 Maker 費估算 | 積極限價可以立即吃單 | 比較限價與 Best Ask/Bid,成交後看 Fill |
| 委託顯示成功就當作全部成交 | 成功可能只代表已接受 | 核對 Executed 與 Remaining |
| 用最後成交價當平均價 | 忽略各 Fill 的不同數量 | 用成交量加權計算 |
| 只看百分比費率 | 不知道費用資產與實際金額 | 按每筆成交額計算並查看 Commission Asset |
| 為省費用反覆重掛 | 不斷失去時間順位 | 先量化未成交與追價成本 |
| 部分成交後按原始數量設 OCO | 可賣餘額可能不足 | 以淨持倉和可用餘額重新設定 |
完成檢查表
- 我能從委託是否先留在訂單簿判斷 Maker/Taker。
- 我知道一張限價單可能先 Taker、剩餘部分再 Maker。
- 我能區分原始數量、已成交量、剩餘量與實得數量。
- 我能用逐筆成交算出加權平均價格。
- 我會按各 Fill 的角色、費率和扣費資產計算總費用。
- 我會先處理剩餘委託,再按可用持倉建立後續風控。
六項都能完成,才算真正理解這筆委託的執行品質,而不是只知道 Maker 費率可能較低。
延伸閱讀
核對資料
- Binance Academy:Market Maker 與 Market Taker
- Binance Academy:交易費如何計算
- Binance 官方現貨交易費率
- Binance Developer Docs:新委託與 LIMIT_MAKER
本文說明訂單簿成交與費用核算,不構成投資建議。費率與折扣會變動,實際結果以帳戶成交紀錄及當前費率頁為準。
