Skip to main content

数据流内容

针对特定 fixtureId 的盘口结果实时赔率更新。 赔率按博彩商分组,并通过每个结果的唯一 oddsId 进行键控。 每条记录代表单个 oddsId(一个结果的一个价格)。

路由

  • 实体键:payload.fixtureId
  • 过滤器:sportIds、tournamentIds、fixtureIds、bookmakers
  • 访问权限:由您的 apiKey 决定
  • 博彩商授权:✅ 是

传输语义

赔率频道在固定的约 10 毫秒批处理窗口上传输合并后的状态:同一 oddsId 在一个窗口内出现多次更新时,只发送最新值。
  • 状态不会丢失 —— 每次价格变动的最终值始终会被送达
  • 陈旧度有界 —— 送达的价格落后于我们对博彩商的观察不会超过一个批处理窗口
  • 窗口是固定的性能参数,而非负载卸除机制
不会送达的内容:同一窗口内被后续更新取代的中间报价。将每条消息视为状态更新,而非账本。
需要每一次价格变动或收盘价?如需完整逐笔变动请使用历史赔率,如需开盘/收盘价请使用 CLV。

负载结构

oddsId:

结果对象(完整架构)

每个赔率条目是一个结果(outcome),包含以下字段:

时间戳说明

每条更新都携带完整的传输链路: changedAt − bookmakerChangedAt 即该条更新的观察延迟。各博彩商的新鲜度上限发布在 GET /bookmakers —— 参见可靠性与运维。

投注限额

limit 是当前价格下的最大接受投注额 —— 对交易系统而言,某一价格下能下多少与价格本身同样重要。OddsPapi 将限额跨博彩商归一化,几乎覆盖所有 sharp 博彩商(见下方 Pinnacle 示例中的 "limit": 19354)。限额变化作为常规赔率更新送达。 limit 与 meta 阶梯约束的是不同的东西:limit 约束单笔订单,阶梯约束成交结果。在传统博彩商上 limit 是唯一的规模信号;在交易所上您两者兼有,且二者各自独立地构成约束。 如何将限额与各博彩商延迟、主盘筛选和收盘线价值结合使用,参见 sharp 盘口交易与 CLV。

高级元数据(meta)

某些博彩商(如预测市场/交易所)提供丰富的元数据。 示例:
典型的 meta 内容可能包括:
  • 订单簿阶梯(back / lay)
  • 流动性提示
  • 内部规模或刻度元数据
保证核心。 对于每个交易所和预测市场,meta.back 和 meta.lay 是统一的:{ price, size } 数组,最优价格在前,跨场馆语义一致。该结构是稳定的。 场馆扩展。 meta 中的其他键是场馆特定的、只增不改 —— 请保留未知键。back / lay 核心不会被移除或改变用途。
仅剩一个场馆 betfair-ex 仍使用场馆特定的 meta 结构,将在未来版本中迁移到统一的 back / lay 核心。
如何读取阶梯、推导最优报价,以及用 bookmakerMarketId / bookmakerOutcomeId 将订单路由回场内,参见在预测市场与交易所上构建。

示例:传统博彩商赔率


示例:预测市场赔率(扩展字段)


实现指南

  • 始终使用以下格式作为存储键
  • 按 marketId 分组结果(参见概念)用于:
    • 套利检测
    • 超额回报计算
    • 概率归一化
  • 将 active=false 或 marketActive=false 视为硬停止
  • 保留 meta 中的未知字段以保持向前兼容性
基于本频道的端到端方案:预测市场与交易所、sharp 盘口交易与 CLV、作为第二数据源运行,以及支撑体育博彩。