FAK order explained: how Fill-And-Kill works on Polymarket
針對積極交易者深入解析在 Polymarket 上 FAK(Fill-And-Kill)訂單的運作、執行機制、邊緣情況,及用於 intra-market 仲裁和緊張價差市場的實務策略。
FAK order explained: how Fill-And-Kill works on Polymarket
簡短回答:在 Polymarket 上,FAK 訂單(Fill-And-Kill)是一種市場型指令,會嘗試立即在 CLOB 上執行,並取消任何未成交的剩餘部位。此指南為積極交易者撰寫,說明執行機制、FAK 在 tick 級別的行為、常見失敗模式,以及用於 intra-market 仲裁和緊價差市場的實務策略。
重點摘要
- FAK 會立即對 Polymarket 的 CLOB 上的掛單執行,並取消任何剩餘數量;可把它視為帶有自動取消剩餘數量的市價單。
- SDK 中的 CLOB helper 暴露一個 createMarketOrder 工具,該工具返回 FAK 行為;相較於簡單的市價吃單,FAK 內建滑點保護。
- 近 tick 與 tick-size 變動(0.01 vs 0.001)會改變實際執行。下單前務必檢查 tick size 與 midpoint。
- FAK 消除了 maker 風險,但會讓你暴露於部分成交、滑點、taker 費、結算與 oracle 爭議風險——在不列出這些風險的情況下,切勿將 FAK 執行稱為「無風險」。
- 對於 intra-market 仲裁,FAK 對於捕捉瞬間 edge 很有用,但你必須為部分成交、手續費和結算時序留出預算。
為何 Polymarket 採用 FAK(實務理由)
Polymarket 的 CLOB 同時支援限價單與一個表現為 FAK 的市價單輔助工具。這個設計符合該交易所的無 gas、以使用者體驗為先的思路:多數使用者在選擇市價路由時預期會立即成交,但協議也必須避免侵入性的市價單造成持續留在掛單簿上的進攻性掛單。FAK 同時滿足這兩個需求——它會立即執行並取消剩餘部位,防止侵入性掛單長時間停留在委託簿上。
執行機制(逐步說明)
- 你指示客戶端或 SDK 建立市價訂單。輔助工具會對 CLOB 發出一個 FAK。
- 訂單會沿著委託簿走,對掛單依價格層級(買入時為升序價格層、賣出時為降序價格層)逐級配對,直到達成目標數量或在允許的價格範圍內再無流動性可用為止。
- 任何未立即配對的數量會被取消(killed)。你不會留下未成交的進攻性限價單在簿上。
- 交易所會對已成交數量收取 taker 費。你吃到的 resting liquidity 的 maker 費為零。
Tick size 及其對 FAK 的影響
Polymarket 使用動態 tick size。通常為 $0.01,但當價格接近極端(高於 0.96 或低於 0.04)時,tick 會收緊到 $0.001。兩個實務後果:
- 在走簿時你可能跨越的價格步幅會改變。在收緊 tick 時,FAK 能在更細的價格點執行,對於極度偏斜的市場可降低滑點。
- 當 tick size 改變時,你的 midpoint 與感知的 edge 可能會改變。下單前務必檢查當前 tick。
滑點、部分成交,以及 SDK 輔助工具的角色
FAK 的設計是為了避免留下未成交數量,但它不保證全部成交。當送單時掛單簿深度不足,即會發生部分成交。SDK 的 createMarketOrder 輔助常會返回已成交數量與平均價格,以便你程式化地回應。
交易者常用的兩種模式:
- 小量、重複 FAK:將大目標拆成多個小 FAK 並快速連續送出,以消耗可見流動性,同時降低每筆訂單對價格的衝擊。
- 激進單筆 FAK:當你需要立即暴露頭寸並接受可能的滑點和 taker 費時使用。
費用與經濟性
Polymarket 依類別收取 taker 費(可變,目前在 0% 到 1.8% 範圍內)。maker 費為零。對於短時仲裁且利潤薄弱的情形,務必在 edge 計算中明確包含 taker 費。如果你透過 Builder 路由訂單,builder fee(以基點計)與 Builder Program 的階級也會影響經濟性。
你必須考量的風險
在未列出下列風險前,切勿稱 FAK 執行為「無風險」:
- 解決與 oracle 爭議:UMA 爭議會暫停結算並改變實現損益的時間。
- 滑點與部分成交:FAK 可能部分成交或以比預期更差的價格成交,同時取消剩餘部位。
- 費率變動與 builder fee:taker 費與 builder fee 會降低實際利潤。
- 結算時序與 split/merge/redeem 延遲:代幣為 ERC-1155,需要透過 CTF 操作來建立與贖回完整集合。
- 智能合約與營運風險:雖然 Polymarket 透過 Relayer 贊助 gas,但智能合約漏洞或 relayer 中斷仍屬協議層風險。
常見失敗模式與如何偵測
- 立即部分成交:回傳的執行量小於請求量——以程式化方式處理,重新評估剩餘目標。
- 零成交:在你提交前委託簿已移動。檢查 best_bid_ask 與 last_trade_price(透過 Market WebSocket 或 CLOB 讀取)並考慮重送邏輯。
- 意外的 tick 變更:若你的策略假設 $0.01 步幅但 tick 收緊,預期的滑點曲線可能失效。請訂閱 Market WS 的 tick_size_change 事件。
用於仲裁與緊價差市場的實務策略
- 對於 intra-market binary 仲裁(當 Σ bestAsk < $1.00 時購買雙邊),偏好同時對兩邊使用小額的 FAK,以避免一邊成交而另一邊未成交。若一邊只部分成交,你可能會被留下淨多或淨空頭寸——需準備對沖或平倉。
- 離線監控委託簿:使用 Market WS 的 best_bid_ask 與 last_trade_price 確認在送出 FAK 前預期的流動性仍在。
- 在接近解決或非常緊的點差中,降低單筆尺寸並提高頻率。在流動市場中,點差行為短暫且可能在數秒內關閉。
- 在計算 edge 時把 taker fee 與 builder fee 列入考量。名義上的 edge 在算入費用與部分成交風險後可能消失。
這對你的交易有何影響
如果你頻繁交易或運行仲裁機器人,將 FAK 視為在 Polymarket 上的預設市價執行原語。它的即時取消特性可防止你在委託簿上留下被動且具攻擊性的價格掛單,但它會帶來執行不確定性。請建立下列邏輯:
- 在每次 FAK 前立即檢查 tick size 與 best_bid_ask。
- 將訂單大小限制在可見深度的合理比例;當委託簿薄弱時,偏好多個小 FAK 而非單筆大 FAK。
- 記錄已成交數量與平均價格以便事後會計;SDK 輔助會返回這些值。
- 在獲利檢查中始終包含 taker 與 builder fee,並在事後對帳時計入解決與結算風險。
資源與下一步閱讀
- Polymarket CLOB explainer: /guides/polymarket-clob-explained
- Intra-market arbitrage mechanics: /guides/intra-market-binary-arbitrage-explained
- Full arbitrage primer: /guides/polymarket-arbitrage-complete-guide
結語
FAK order 簡明說明:它是在 Polymarket 的 CLOB 上立即執行並取消任何剩餘數量的市場型 FAK。用它來捕捉瞬間的 edge,但在設計時務必考量部分成交、tick 變化與手續費。
Frequently asked questions
What's the difference between a FAK and a plain market order on Polymarket?
Polymarket 暴露了一個市價單輔助工具,該工具實作 Fill-And-Kill 語意:它會立即對 resting liquidity 執行,並取消任何未成交的剩餘部位。實務上,這表示在提交後你不會在簿上留下進攻性的限價單;剩餘數量會被取消。SDK 的 createMarketOrder 會返回已成交數量與平均價格,方便你處理部分成交。
How should I size FAK orders for arbitrage?
根據可見簿深度為 FAK 定義大小。當點差很薄時,將目標拆成多個小 FAK 以減少每筆訂單對價格的衝擊。對於 binary intra-market 仲裁,同時提交兩腿,尺寸應為你合理預期頂部簿會成交的量;若其中一腿僅部分成交,需準備對沖。
Do FAK orders pay maker or taker fees?
FAK 執行被視為 taker 吃單,會受到 Polymarket 的 taker 費(按類別可變)扣費。resting liquidity 的 maker 費為零。若你透過 Builder 路由,可能還需支付以基點計的 builder fee。
Can a FAK execution be reversed if UMA disputes resolution?
不會——UMA 爭議影響的是交易完成後的解決與結算時序。使用 FAK 執行的交易在鏈上是最終的;然而,解決爭議會延遲 redeem/settle 操作,從而影響實際損益實現的時機。
How can I detect a tick-size change before sending a FAK?
訂閱 Market WS (wss://ws-subscriptions-clob.polymarket.com/ws/market) 並監聽 tick_size_change 事件。也可查詢 CLOB 的公開讀取以取得當前 tick metadata。當 tick 從 $0.01 收緊到 $0.001 時,請調整尺寸與滑點預期。
參考術語
相關指南
僅作教育用途。非財務、法律或稅務建議。Polymarket 可能在你的司法管轄區無法使用。