Files
PolyHermes/docs/zh/nba-game-data-sources-comparison.md
WrBug e9e1111df9 feat: 实现 NBA 量化交易系统
- 后端实现:
  - 实现 NBA 比赛数据服务,从 Polymarket API 获取数据
  - 实现数据库存储和增量拉取逻辑(优先从 DB 获取,数据不足时增量拉取)
  - 使用 sports_market_types 参数直接筛选 moneyline 类型
  - 实现分页拉取逻辑(基于 gameStartTime 和 createdAt)
  - 移除 nba_markets 相关的外键约束(V12 迁移)
  - 修复数据拉取逻辑:超过 3 天的数据不拉取

- 前端实现:
  - 实现策略创建/编辑/列表页面
  - 实现交易信号展示页面和统计页面
  - 修复重复请求问题(使用 useCallback 包装 fetchGames)
  - 支持选择单场比赛进行配置
  - 使用西8区时间格式化显示

- 数据库:
  - 创建 NBA 量化交易相关表(V11 迁移)
  - 移除外键约束(V12 迁移)

- 文档:
  - 添加产品需求文档、技术方案、算法文档等
2025-12-13 08:05:08 +08:00

2.7 KiB
Raw Permalink Blame History

NBA 比赛数据来源对比

一、数据来源对比

1.1 NBA Stats API

优势

  • 官方数据源,数据准确可靠
  • 包含完整的比赛数据(实时比分、状态、统计等)
  • 实时更新,数据最新
  • 免费使用
  • 支持历史数据查询

劣势

  • 不包含 Polymarket 市场信息
  • 需要额外的匹配逻辑来关联 Polymarket 市场

适用场景

  • 获取比赛基本信息(球队、日期、时间)
  • 获取实时比分和比赛状态
  • 获取比赛统计数据

1.2 Polymarket API

优势

  • 直接获取交易市场信息
  • 包含市场 ID、价格、流动性等交易相关数据
  • 市场名称可能包含比赛信息

劣势

  • 不包含实时比分和比赛状态
  • 无法直接搜索或筛选 NBA 市场(需要知道 condition_ids
  • 市场名称格式不统一,解析困难
  • 数据不完整(缺少比赛详细信息)

适用场景

  • 获取可交易的市场列表
  • 获取市场价格和流动性信息
  • 匹配比赛和交易市场

二、推荐方案

2.1 混合方案(推荐)

策略:结合两种数据源,发挥各自优势

实现方式

  1. 主要数据源:NBA Stats API

    • 获取完整的比赛数据(球队、日期、时间、比分、状态等)
    • 实时更新比赛状态
  2. 补充数据源:Polymarket API

    • 获取市场信息(市场 ID、价格、流动性等)
    • 通过球队名称和日期匹配比赛和市场
  3. 数据匹配

    • 使用球队名称和比赛日期匹配
    • 建立比赛和市场的关联关系

2.2 数据流程

1. 从 NBA Stats API 获取比赛列表
   ↓
2. 从 Polymarket API 获取市场列表(如果知道 condition_ids)
   ↓
3. 解析市场名称,提取球队和日期信息
   ↓
4. 匹配比赛和市场(通过球队名称和日期)
   ↓
5. 合并数据,返回完整的比赛和市场信息

三、当前实现

当前系统使用 NBA Stats API 作为主要数据源,原因:

  • 数据完整可靠
  • 实时更新
  • 免费使用
  • 无需预先知道 condition_ids

如果需要 Polymarket 市场信息,可以:

  1. 在获取比赛数据后,通过球队名称和日期匹配 Polymarket 市场
  2. 或者单独维护一个 Polymarket 市场列表,定期同步

四、建议

对于获取比赛数据

  • 使用 NBA Stats API(当前实现)
  • 实时、准确、完整

对于获取市场信息

  • 使用 Polymarket API(需要知道 condition_ids
  • 或者从市场名称解析(如果格式统一)

最佳实践

  • 主要使用 NBA Stats API 获取比赛数据
  • 使用 Polymarket API 获取市场信息并匹配
  • 建立比赛和市场的关联关系