数据流内容
针对特定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中的未知字段以保持向前兼容性