現貨成交機制

OCO 訂單怎麼運作?用互斥委託規劃停損與止盈

理解 One-Cancels-the-Other 的兩組條件、觸發後取消邏輯,以及跳空、部分成交與餘額不足風險。

OCO 訂單怎麼運作?用互斥委託規劃停損與止盈

OCO 互斥委託:止盈限價 66000 與防守 Stop-Limit 55000/54500,一邊生效另一邊取消的流程圖

OCO 是 One Cancels the Other:把兩個條件不同的子委託連成一組,一邊成交或觸發指定條件後,系統取消另一邊。它能減少無人盯盤時的操作空窗,但不能把價格跳空、部分成交或餘額不足變成零風險。

OCO 解決的是委託衝突,不是市場風險

持有資產時,常見組合是:

  • 上方限價賣單:價格上漲時止盈;
  • 下方停止限價賣單:價格下跌時啟動防守。

兩張單若完全獨立,第一張成交後,第二張仍可能留下並意外建立新的賣出曝險。OCO 的價值是把兩者綁定,讓其中一邊生效後處理另一邊。

用完整價格鏈理解 OCO

假設持有 0.01 BTC,現價 60,000 USDT:

  • 止盈限價:66,000;
  • 防守 Stop:55,000;
  • 防守 Limit:54,500。

可能發生三種結果:

  1. 價格上漲並在 66,000 完全成交,防守單被取消。
  2. 價格跌至 Stop,系統送出 54,500 的限價賣單;若市場仍有買方願意支付 54,500 或更高,才會成交。
  3. 市場直接跳到 53,000,防守限價可能無法成交。OCO 完成了觸發和取消邏輯,卻沒有保證離場。

四個容易被忽略的邊界

部分成交

有些平台在一邊部分成交時就取消另一邊,有些會按剩餘數量調整,規則不一定相同。建立 OCO 前要確認「部分成交」是觸發取消,還是只有完全成交才觸發。

例如止盈端先成交 0.004 BTC,而原始持倉為 0.01 BTC。理想狀態是防守端自動調整為剩餘 0.006 BTC;若平台直接取消整個防守端,剩餘部位會失去保護;若仍保留 0.01 BTC,則可能出現超量賣出。這是 OCO 最需要事前確認的狀態轉換。

餘額鎖定

系統通常需要為這組委託保留可賣數量。若資產已被其他委託、借貸或轉帳占用,OCO 可能建立失敗,或後續因可用餘額不足無法按預期執行。

觸發價格來源

Stop 可能參考最新成交價、標記價格或其他規則。若沒有確認觸發來源,就可能出現「K 線看似碰到,委託卻沒觸發」的誤解。

還要確認觸發後建立的是市價單還是限價單。兩者的風險完全不同:市價單優先成交但可能滑價;限價單控制最差價格但可能留在簿上。

手動取消

手動取消其中一邊,通常會連動取消整組,但仍應到委託與成交紀錄核對,而不是只看畫面提示。

使用前的壓力測試

  • 若價格直接穿越 Limit,未成交的替代方案是什麼?
  • 若只成交一部分,剩餘部位是否仍受保護?
  • 止盈與防守數量是否等於實際持有數量?
  • 觸發價格、有效期限和費用是否已確認?

OCO 最適合處理互斥條件,不適合被當成保證成交或保證最大損失。

延伸閱讀

核對資料

各平台的 OCO、部分成交和觸發規則可能不同;本文不代替當前產品規格。