Skip to main content
要透過 WebSocket 連線下一筆或多筆訂單,傳送 placeV3 訊息。單次請求可包含一批訂單;每筆結果在 data 陣列中回傳,並與你的 orders 陣列按位置對應。
每個訂單物件包含:
string
必填
賽事的唯一 ID。
number
必填
本筆投注願意承擔的本金。
string
必填
盤口型別 — moneyline、spread、total 或 moneyline1x2 之一。moneyline1x2 僅用於足球(三項獨贏:主勝 / 客勝 / 平局)。
string
必填
取決於 type:
  • moneyline、spread — 你支援的參賽者 ID。
  • total — "over" 或 "under"。
  • moneyline1x2 — 對 market 所指定結果的 "yes" 或 "no"。
string
僅 moneyline1x2 時必填。為 "draw" 或參賽者 ID — 指定你按是/否投注的結果。例如,side: "yes" + market: "draw" 表示比賽以平局結束;side: "no" + market: "<homeTeamId>" 表示主隊不勝。
string
必填
limit、post、postArb、fillAndKill 或 fillOrKill 之一。參見下方訂單型別。
number
必填
美式賠率(例如 +150 或 -110)。
number
讓分或大小球盤口數值。spread 和 total 必填;moneyline 和 moneyline1x2 不使用。
string
用戶端自定義識別符號,便於你在己方追蹤該訂單。

訂單型別

limit

預設訂單型別。作為 taker(收取 taker 佣金)按你的價格或更優價格吃掉任何可匹配流動性,未成交部分作為 maker 留在訂單簿上。limit 訂單最終可以是全部成交、全部掛單,或部分成交、剩餘掛單。

post

建立一筆掛單。如果下單時該訂單會與已有流動性成交,伺服器會拒絕它(通常為 rejected_order_type_rules,例如 "post order cannot have matches")。

postArb

行為類似 post,但即使訂單會成交也可以掛單,前提是你的美式賠率與將被成交的掛單賠率相差不超過 1%。若價差超過 1%,下單會被拒絕。 示例:
  • 最優報價 +100,你掛 +100 — post 會被拒絕(會成交);postArb 可以允許。
  • 最優報價 +200 — 以 +190 提交的 postArb 會被拒絕(距離 +200 過遠)。約 +198 處於相對 +200 的 1% 區間邊緣。
  • 最優訂單 −200 — 負向一側區間大約延伸到 −202(同一條 1% 規則)。
  • 訂單簿上有 +100 時,對側的 1% 容差參考限價為 −101(依產品規則)。
postArb 可避免普通成交中的 taker 手續費 — 走該流程時,不會像作為 taker 主動吃掉或撞擊掛單流動性那樣被收取 taker 手續費。 以 postArb 下的訂單,會在其使用者推送和行情推送更新中帶有 isPostArb: true;其他訂單型別會省略該欄位。下單回應本身不包含該標誌。

fillAndKill

立即作為 taker 按你的價格或更優價格吃掉當前可成交數量,並取消剩餘部分。fillAndKill 永遠不會留在訂單簿上。 部分成交也是成功結果:向 400可匹配流動性傳送‘bet:1000‘,將成交400 可匹配流動性傳送 `bet: 1000`,將成交 400,剩餘 $600 被取消——這是成功,而非錯誤。僅當完全沒有可匹配流動性時,訂單才會被拒絕("fill and kill has no matches")。參見下方示例中的 Fill And Kill 場景。

fillOrKill

全成或全撤。你的整筆 bet 必須立即按你的價格或更優價格成交,否則整筆訂單被拒絕——包括途中已發生的成交,都會復原。fillOrKill 永遠不會留在訂單簿上,也不會留下部分倉位。 適用於部分倉位還不如沒有倉位的情形,例如該訂單是一筆必須整筆執行的對沖腿。 拒絕時 errorType: rejected_order_type_rules,並帶有以下兩條訊息之一,用於區分「完全沒有流動性」和「流動性不足」:
  • "fill or kill has no matches" — 你的價格上沒有任何可匹配流動性。
  • "fill or kill matched but not fully" — 有部分流動性成交,但未達到你的全部數量。這些成交已被復原。
剩餘量 **10及以下∗∗視為已完成:一筆10 及以下** 視為已完成:一筆 1,000 的 fillOrKill 若成交 992即算成功,因為未能成交的992 即算成功,因為未能成交的 8 低於訂單簿上可掛單的最小數量。剩餘量大於 $10 則會拒絕該訂單。

回應

伺服器會回傳你的 requestID 以及每筆訂單的結果列表。

示例

場景 1:訂單全部成交、無剩餘掛單

下 3 筆訂單,均立即與可用流動性成交。
回應:

場景 2:限價單有剩餘掛單

下一筆數量為 300 的訂單,立即部分成交,剩餘流動性掛在訂單簿上。回應會同時給出已成交部分和未成交部分。

場景 3:Fill and Kill 訂單有成交

一筆全部成交的 fill-and-kill 訂單。

場景 4:Fill and Kill 訂單無成交

一筆沒有成交的 fill-and-kill 訂單。伺服器回傳 error 和 error_type。

場景 5:無法全部成交的 Fill or Kill 訂單

fillOrKill 是 fillAndKill 的全成或全撤對應物。一筆 1,000的‘fillAndKill‘面對1,000 的 `fillAndKill` 面對 400 流動性會成交 400並取消剩餘;而‘fillOrKill‘會拒絕整筆訂單並復原那400 並取消剩餘;而 `fillOrKill` 會拒絕整筆訂單並復原那 400——你不會留下部分倉位。
若完全沒有可匹配流動性,同一筆訂單會改為以 "fill or kill has no matches" 被拒絕。

場景 6:訂單簿會成交時的 postArb 與 post

post 會拒絕將與掛單流動性成交的訂單(例如最優報價 +100,你嘗試掛 +100)。當你的賠率與將被成交訂單相差不超過 1% 時,postArb 允許這種情況——因此同樣掛 +100 可以作為 postArb 成功,並避免作為 taker 吃掉該流動性時在普通成交中需支付的 taker 手續費。若你的價格距離掛單報價過遠(例如最優報價 +200 但你傳送 +190),postArb 會被拒絕;相對 +200,約 +198 接近限價。在訂單物件中使用 "orderType": "postArb",方式與 limit、post、fillAndKill 或 fillOrKill 相同。

場景 7:moneyline1x2(足球三項盤)

moneyline1x2 是足球三項盤——主勝 / 客勝 / 平局——以 market 所指定結果的是/否投注形式下單。以下為平局 yes,賠率 +250。
若要投注主隊不勝,傳送 side: "no",並將 market 設為主隊參賽者 ID。

滾球延遲

在標記為滾球的賽事上下單時,遵循以下規則:
  1. 若訂單不與任何已有流動性成交,則立即掛單。
  2. 若訂單會與已有流動性成交,則在執行前會有一段延遲。
  3. 不同聯賽的滾球延遲不同:
    • NFL、UFCMMA、NCAAF — 3 秒。
    • NCAAB、NBA — 5 秒。
    • ATP、WTA — 8 秒。
    • 預設 — 10 秒。
  4. 延遲結束後,訂單嘗試執行:
    • 若賠率變得更優,則立即成交。
    • 若賠率變差,則不成交。

錯誤回應

當伺服器未能下一筆單獨訂單時,data[] 中對應的單筆條目會以下列形態回傳:
如果收到錯誤訊息,該訂單尚未被處理,可以安全地再次提交。 錯誤按位置回傳在 data 陣列中,與輸入 orders 陣列中對應訂單的下標一致。
  • error 未標準化;它是描述性字串,可能會變化。
  • error_type 是可用於程式化處理的列舉:
    • validation_error — 酬載或狀態未透過校驗(例如缺少欄位、賠率/盤口數值無效、方向無效、賽事未啟用)。
    • rejected_liability — 使用者/帳戶/負債約束阻止了掛單或執行。
    • rejected_order_type_rules — 訂單型別規則禁止執行(例如 fillAndKill 找不到可執行流動性,因此無法成交併被拒絕;fillOrKill 無法全部成交;post 發現成交但該型別不允許成交;或 postArb 因你的美式賠率與將被成交的掛單相差超過 1% 而被拒絕)。
    • system_error — 瞬時/內部錯誤;重試可能成功。
多筆下單、部分回傳錯誤回應的示例: