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>" 表示主队不胜。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,剩余 $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"— 有部分流动性成交,但未达到你的全部数量。这些成交已被回滚。
剩余量 **1,000 的
fillOrKill 若成交 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 的全成或全撤对应物。一笔 400 流动性会成交 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。
滚球延迟
在标记为滚球的赛事上下单时,遵循以下规则:- 若订单不与任何已有流动性成交,则立即挂单。
- 若订单会与已有流动性成交,则在执行前会有一段延迟。
- 不同联赛的滚球延迟不同:
- NFL、UFCMMA、NCAAF — 3 秒。
- NCAAB、NBA — 5 秒。
- ATP、WTA — 8 秒。
- 默认 — 10 秒。
- 延迟结束后,订单尝试执行:
- 若赔率变得更优,则立即成交。
- 若赔率变差,则不成交。
错误响应
当服务器未能下一笔单独订单时,data[] 中对应的单笔条目会以下列形态返回:
data 数组中,与输入 orders 数组中对应订单的下标一致。
error未标准化;它是描述性字符串,可能会变化。error_type是可用于程序化处理的枚举:validation_error— 载荷或状态未通过校验(例如缺少字段、赔率/盘口数值无效、方向无效、赛事未激活)。rejected_liability— 用户/账户/负债约束阻止了挂单或执行。rejected_order_type_rules— 订单类型规则禁止执行(例如fillAndKill找不到可执行流动性,因此无法成交并被拒绝;fillOrKill无法全部成交;post发现成交但该类型不允许成交;或postArb因你的美式赔率与将被成交的挂单相差超过 1% 而被拒绝)。system_error— 瞬时/内部错误;重试可能成功。