跳至主要内容

取消委託單

important
  • 提供 OrderID (37)ClOrdID (11) 其中之一來識別委託單。若兩者均提供,以 OrderID 為準。
  • 僅可取消未成交部分成交的委託單。
  • 對於現貨交易,請使用 OrderFilter (30024) 區分普通委託、止盈止損委託與條件委託。
  • 最終 OrdStatus 取決於取消時的成交狀態:若無任何成交則為 4(Canceled);若有部分成交則為 F(PartiallyFilledCanceled)。

訊息類型

OrderCancelRequest — MsgType F

請求欄位

Tag欄位必填類型說明
30010CategoryYString產品類型,目前僅支援 spot
55SymbolYString交易對名稱,例如 BTCUSDT
37OrderIDNString伺服器委託單 ID,OrderIDClOrdID 至少填一個
11ClOrdIDNString用戶端委託單 ID,OrderIDClOrdID 至少填一個
30024OrderFilterNString僅限現貨。Order(預設);tpslOrderStopOrder

回應

伺服器回應 OrderCancelAck (XCA)

Tag欄位必填說明
37OrderIDN伺服器委託單 ID。拒絕時不返回
11ClOrdIDN若請求帶了 ClOrdID,響應原樣回傳;若請求未帶,則回帶原始訂單orderLinkId拒絕時不返回,需依發送順序關聯
150ExecTypeN受理成功時為 6(PendingCancel)。拒絕時不返回 —— 收到 XCA 但缺少 150/39、且帶有 103/58,即代表本次撤單被拒
39OrdStatusN受理成功時為 6(PendingCancel)。拒絕時不返回
103OrdRejReasonNBybit 內部錯誤碼(例如 170213)。僅在拒絕時存在
58TextN可讀的拒絕說明。僅在拒絕時存在
信息

OrderCancelAck 僅為受理確認ExecType=6 PendingCancel),僅包含最小狀態欄位。最終取消狀態(ExecType=4 Canceled 或 F PartiallyFilledCanceled)由後續 ExecutionReport (35=8) 推送給出,攜帶完整訂單欄位及 30040 CancelType;該推送僅在 ResponseMode=1(Everything)模式下發送。


請求範例

8=FIX.4.4|9=105|35=F|49=FIX_CLIENT|56=BYBIT_FIX_SERVER|34=4|52=20240101-08:02:00.000|
30002=1704096120000|30001=5000|
30010=spot|55=BTCUSDT|37=1234567890123456|10=xxx|

注意:| 在實際傳輸格式中代表 SOH(0x01)字元。

取消中(PendingCancel) Ack(ExecType=6)

  • OnlyAcks 模式下這是唯一的回應。
  • Everything 模式下這條先到,隨後會推送 ExecutionReportExecType=4 Canceled 或 F PartiallyFilledCanceled)確認最終狀態。
  • 速率限制標頭(30005 TraceId、30007 BapiLimit、30008 BapiLimitStatus、30009 BapiLimitResetTimestamp)僅出現在這條 ack 上,後續狀態推播不再攜帶。
  • 若請求攜帶 30006 ReqId,此 ack 會原樣回帶;後續狀態推送則不會攜帶 30006
8=FIX.4.4|9=265|35=XCA|34=2|49=BYBIT_FIX_SERVER|52=20260824-10:13:20.321|56=FIX_CLIENT|
30005=56fc3d7313c3739e7ca1f36ddda54c65|30006=f15d0d96-a643-4b13-9186-1a9f3138752a|30007=20|30008=19|30009=1787566400320|
11=b52e9783-1a34-4264-aae3-bd5e6ca3f522|37=2288666911934089984|150=6|39=6|10=108|

取消失敗回應範例 ACK(已拒絕)

拒絕時 XCA 不返回 150/39/37/11,客戶端需依發送順序關聯本次撤單請求,並透過 103 內部錯誤碼與 58 錯誤描述判斷失敗原因。

8=FIX.4.4|9=184|35=XCA|34=2|49=BYBIT_FIX_SERVER|52=20260820-06:28:36.328|56=FIX_CLIENT|
30005=2119c192fd5916fa6d5f065567a73293|30007=20|30008=19|30009=1787207316327|
58=Order does not exist.|103=170213|10=121|

已取消終態推送範例(ExecType=4)

Everything 模式下,PendingCancel Ack 之後由 ExecutionReport (35=8) 推送最終狀態,攜帶完整訂單欄位及 30040 CancelType 說明取消原因(如 CancelByUser);OrdRejReason (103) 承載內部原因碼(如 EC_PerCancelRequest)。

8=FIX.4.4|9=402|35=8|34=3|49=BYBIT_FIX_SERVER|52=20260824-10:13:20.325|56=FIX_CLIENT|
11=b52e9783-1a34-4264-aae3-bd5e6ca3f522|37=2288666911934089984|150=4|39=4|
30010=spot|55=BTCUSDT|54=1|40=2|38=0.001000|44=50000.0|59=1|30013=UNKNOWN|30014=N|
151=0.001|30041=50.0000000|14=0|30038=0.0000000|
60=20260824-10:13:20.320|30039=20260824-10:12:36.590|
103=EC_PerCancelRequest|30040=CancelByUser|
30018=None|30019=N|30046=77297.5|10=146|