Files
PolyHermes/docs/zh/nba-backend-implementation-summary.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

5.2 KiB
Raw Permalink Blame History

NBA 量化交易系统后端实现总结

已完成部分

1. 数据库设计

迁移文件: V11__create_nba_quantitative_trading_tables.sql

创建了以下表:

  • nba_markets: NBA 市场表(Polymarket 市场信息)
  • nba_games: NBA 比赛表
  • nba_quantitative_strategies: 量化策略配置表
  • nba_trading_signals: 交易信号表
  • nba_strategy_statistics: 策略执行统计表

2. 实体类

已创建以下实体类:

  • NbaMarket.kt: NBA 市场实体
  • NbaGame.kt: NBA 比赛实体
  • NbaQuantitativeStrategy.kt: 量化策略配置实体
  • NbaTradingSignal.kt: 交易信号实体
  • NbaStrategyStatistics.kt: 策略统计实体

3. Repository 层

已创建以下 Repository

  • NbaMarketRepository.kt
  • NbaGameRepository.kt
  • NbaQuantitativeStrategyRepository.kt
  • NbaTradingSignalRepository.kt
  • NbaStrategyStatisticsRepository.kt

4. DTO 层

已创建:

  • NbaQuantitativeStrategyDto.kt: 包含创建、更新、列表请求和响应 DTO

5. Service 层(部分完成)

已创建:

  • NbaQuantitativeStrategyService.kt: 策略管理服务
    • 创建策略
    • 更新策略
    • 获取策略列表
    • 获取策略详情
    • 删除策略
    • 获取启用的策略列表

6. Controller 层(部分完成)

已创建:

  • NbaQuantitativeStrategyController.kt: 策略管理 API
    • POST /api/nba/strategies/create: 创建策略
    • POST /api/nba/strategies/update: 更新策略
    • POST /api/nba/strategies/list: 获取策略列表
    • POST /api/nba/strategies/detail: 获取策略详情
    • POST /api/nba/strategies/delete: 删除策略

待完成部分

1. NBA 市场数据获取服务

需要创建:

  • NbaMarketService.kt:
    • 从 Polymarket API 获取市场列表
    • 同步市场数据到数据库
    • 根据条件查询市场
    • 匹配 NBA 比赛和市场

参考文档: docs/zh/polymarket-nba-markets-fetching-solution.md

2. NBA 比赛数据获取服务

需要创建:

  • NbaGameService.kt:
    • 从 NBA API 获取比赛数据
    • 同步比赛数据到数据库
    • 实时更新比赛状态
    • 匹配比赛和市场

需要集成: NBA Stats API 或第三方 NBA 数据 API

3. 量化分析服务

需要创建:

  • NbaQuantitativeAnalysisService.kt:
    • 综合评分计算
    • 对位分析
    • 实时状态分析
    • 获胜概率计算
    • 交易价值计算

参考文档: docs/zh/nba-quantitative-strategy-algorithm.md

4. 交易信号生成服务

需要创建:

  • NbaTradingSignalService.kt:
    • 生成买入信号
    • 生成卖出信号
    • 风险控制检查
    • 信号验证

5. WebSocket 推送服务

需要创建:

  • NbaTradingSignalPushService.kt:
    • WebSocket 连接管理
    • 信号推送
    • 订阅管理

参考: 现有的 OrderPushService.kt

6. 定时任务和同步服务

需要创建:

  • NbaMarketSyncScheduler.kt: 同步 NBA 市场数据
  • NbaGameSyncScheduler.kt: 同步 NBA 比赛数据
  • NbaQuantitativeAnalysisScheduler.kt: 定时执行量化分析

7. 其他 Controller

需要创建:

  • NbaMarketController.kt: 市场数据 API
  • NbaGameController.kt: 比赛数据 API
  • NbaTradingSignalController.kt: 交易信号 API
  • NbaStatisticsController.kt: 统计 API

8. 其他 DTO

需要创建:

  • NbaMarketDto.kt
  • NbaGameDto.kt
  • NbaTradingSignalDto.kt
  • NbaStatisticsDto.kt

实现优先级

第一阶段(核心功能)

  1. 数据库设计和实体类
  2. 策略管理服务(CRUD
  3. NBA 市场数据获取服务
  4. NBA 比赛数据获取服务

第二阶段(量化分析)

  1. 量化分析服务
  2. 交易信号生成服务
  3. 风险控制逻辑

第三阶段(实时推送)

  1. WebSocket 推送服务
  2. 定时任务和同步服务

第四阶段(完善功能)

  1. 统计服务
  2. 其他 API 接口
  3. 错误处理和日志

技术要点

1. 数据同步策略

  • 市场数据:每天全量同步,每小时增量同步
  • 比赛数据:实时更新(比赛进行中)
  • 分析频率:根据策略配置(默认 30 秒)

2. 量化分析算法

  • 综合评分计算(基础实力、近期状态、阵容完整度等)
  • 对位分析(球星对位、阵容克制)
  • 实时状态分析(分差、势头)
  • 获胜概率计算
  • 交易价值计算

3. 风险控制

  • 持仓限制检查
  • 每日限制检查
  • 价格容忍度检查
  • 概率置信度检查

4. WebSocket 推送

  • 实时推送交易信号
  • 支持订阅/取消订阅
  • 连接管理和重连机制

下一步工作

  1. 实现 NBA 市场数据获取服务

    • 参考 polymarket-nba-markets-fetching-solution.md
    • 实现批量查询和过滤逻辑
  2. 实现 NBA 比赛数据获取服务

    • 集成 NBA Stats API
    • 实现比赛数据同步和更新
  3. 实现量化分析服务

    • 参考 nba-quantitative-strategy-algorithm.md
    • 实现综合评分、对位分析、概率计算等核心算法
  4. 实现交易信号生成服务

    • 集成量化分析结果
    • 实现买入/卖出信号生成逻辑
  5. 实现 WebSocket 推送服务

    • 参考现有的 OrderPushService
    • 实现信号推送和订阅管理

文档结束