e9e1111df9
- 后端实现: - 实现 NBA 比赛数据服务,从 Polymarket API 获取数据 - 实现数据库存储和增量拉取逻辑(优先从 DB 获取,数据不足时增量拉取) - 使用 sports_market_types 参数直接筛选 moneyline 类型 - 实现分页拉取逻辑(基于 gameStartTime 和 createdAt) - 移除 nba_markets 相关的外键约束(V12 迁移) - 修复数据拉取逻辑:超过 3 天的数据不拉取 - 前端实现: - 实现策略创建/编辑/列表页面 - 实现交易信号展示页面和统计页面 - 修复重复请求问题(使用 useCallback 包装 fetchGames) - 支持选择单场比赛进行配置 - 使用西8区时间格式化显示 - 数据库: - 创建 NBA 量化交易相关表(V11 迁移) - 移除外键约束(V12 迁移) - 文档: - 添加产品需求文档、技术方案、算法文档等
5.2 KiB
5.2 KiB
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.ktNbaGameRepository.ktNbaQuantitativeStrategyRepository.ktNbaTradingSignalRepository.ktNbaStrategyStatisticsRepository.kt
4. DTO 层 ✅
已创建:
NbaQuantitativeStrategyDto.kt: 包含创建、更新、列表请求和响应 DTO
5. Service 层(部分完成)✅
已创建:
NbaQuantitativeStrategyService.kt: 策略管理服务- 创建策略
- 更新策略
- 获取策略列表
- 获取策略详情
- 删除策略
- 获取启用的策略列表
6. Controller 层(部分完成)✅
已创建:
NbaQuantitativeStrategyController.kt: 策略管理 APIPOST /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: 市场数据 APINbaGameController.kt: 比赛数据 APINbaTradingSignalController.kt: 交易信号 APINbaStatisticsController.kt: 统计 API
8. 其他 DTO ⏳
需要创建:
NbaMarketDto.ktNbaGameDto.ktNbaTradingSignalDto.ktNbaStatisticsDto.kt
实现优先级
第一阶段(核心功能)
- ✅ 数据库设计和实体类
- ✅ 策略管理服务(CRUD)
- ⏳ NBA 市场数据获取服务
- ⏳ NBA 比赛数据获取服务
第二阶段(量化分析)
- ⏳ 量化分析服务
- ⏳ 交易信号生成服务
- ⏳ 风险控制逻辑
第三阶段(实时推送)
- ⏳ WebSocket 推送服务
- ⏳ 定时任务和同步服务
第四阶段(完善功能)
- ⏳ 统计服务
- ⏳ 其他 API 接口
- ⏳ 错误处理和日志
技术要点
1. 数据同步策略
- 市场数据:每天全量同步,每小时增量同步
- 比赛数据:实时更新(比赛进行中)
- 分析频率:根据策略配置(默认 30 秒)
2. 量化分析算法
- 综合评分计算(基础实力、近期状态、阵容完整度等)
- 对位分析(球星对位、阵容克制)
- 实时状态分析(分差、势头)
- 获胜概率计算
- 交易价值计算
3. 风险控制
- 持仓限制检查
- 每日限制检查
- 价格容忍度检查
- 概率置信度检查
4. WebSocket 推送
- 实时推送交易信号
- 支持订阅/取消订阅
- 连接管理和重连机制
下一步工作
-
实现 NBA 市场数据获取服务
- 参考
polymarket-nba-markets-fetching-solution.md - 实现批量查询和过滤逻辑
- 参考
-
实现 NBA 比赛数据获取服务
- 集成 NBA Stats API
- 实现比赛数据同步和更新
-
实现量化分析服务
- 参考
nba-quantitative-strategy-algorithm.md - 实现综合评分、对位分析、概率计算等核心算法
- 参考
-
实现交易信号生成服务
- 集成量化分析结果
- 实现买入/卖出信号生成逻辑
-
实现 WebSocket 推送服务
- 参考现有的
OrderPushService - 实现信号推送和订阅管理
- 参考现有的
文档结束