現貨成交機制
OCO 訂單怎麼運作?用互斥委託規劃停損與止盈
理解 One-Cancels-the-Other 的兩組條件、觸發後取消邏輯,以及跳空、部分成交與餘額不足風險。

OCO 是 One Cancels the Other:把兩個條件不同的子委託連成一組,一邊成交或觸發指定條件後,系統取消另一邊。它能減少無人盯盤時的操作空窗,但不能把價格跳空、部分成交或餘額不足變成零風險。
OCO 解決的是委託衝突,不是市場風險
持有資產時,常見組合是:
- 上方限價賣單:價格上漲時止盈;
- 下方停止限價賣單:價格下跌時啟動防守。
兩張單若完全獨立,第一張成交後,第二張仍可能留下並意外建立新的賣出曝險。OCO 的價值是把兩者綁定,讓其中一邊生效後處理另一邊。
用完整價格鏈理解 OCO
假設持有 0.01 BTC,現價 60,000 USDT:
- 止盈限價:66,000;
- 防守 Stop:55,000;
- 防守 Limit:54,500。
可能發生三種結果:
- 價格上漲並在 66,000 完全成交,防守單被取消。
- 價格跌至 Stop,系統送出 54,500 的限價賣單;若市場仍有買方願意支付 54,500 或更高,才會成交。
- 市場直接跳到 53,000,防守限價可能無法成交。OCO 完成了觸發和取消邏輯,卻沒有保證離場。
四個容易被忽略的邊界
部分成交
有些平台在一邊部分成交時就取消另一邊,有些會按剩餘數量調整,規則不一定相同。建立 OCO 前要確認「部分成交」是觸發取消,還是只有完全成交才觸發。
例如止盈端先成交 0.004 BTC,而原始持倉為 0.01 BTC。理想狀態是防守端自動調整為剩餘 0.006 BTC;若平台直接取消整個防守端,剩餘部位會失去保護;若仍保留 0.01 BTC,則可能出現超量賣出。這是 OCO 最需要事前確認的狀態轉換。
餘額鎖定
系統通常需要為這組委託保留可賣數量。若資產已被其他委託、借貸或轉帳占用,OCO 可能建立失敗,或後續因可用餘額不足無法按預期執行。
觸發價格來源
Stop 可能參考最新成交價、標記價格或其他規則。若沒有確認觸發來源,就可能出現「K 線看似碰到,委託卻沒觸發」的誤解。
還要確認觸發後建立的是市價單還是限價單。兩者的風險完全不同:市價單優先成交但可能滑價;限價單控制最差價格但可能留在簿上。
手動取消
手動取消其中一邊,通常會連動取消整組,但仍應到委託與成交紀錄核對,而不是只看畫面提示。
使用前的壓力測試
- 若價格直接穿越 Limit,未成交的替代方案是什麼?
- 若只成交一部分,剩餘部位是否仍受保護?
- 止盈與防守數量是否等於實際持有數量?
- 觸發價格、有效期限和費用是否已確認?
OCO 最適合處理互斥條件,不適合被當成保證成交或保證最大損失。
延伸閱讀
核對資料
各平台的 OCO、部分成交和觸發規則可能不同;本文不代替當前產品規格。
