diff --git a/docs/data-platform/summary-p1.md b/docs/data-platform/summary-p1.md new file mode 100644 index 00000000..dd8284e1 --- /dev/null +++ b/docs/data-platform/summary-p1.md @@ -0,0 +1,141 @@ +# 数据源体系建设 - 项目汇总报告 + +**任务ID**: data-platform-20260502 +**汇总人**: 庞统(副军师) +**日期**: 2026-05-02 +**状态**: P1完成,P2-P4待后续任务 + +--- + +## 一、项目目标 + +打通从数据获取到vnpy回测的完整数据通路:**NAS Parquet → vnpy SQLite DB → 回测引擎** + +核心问题:vnpy回测服务的 quant_trading.db 是空的(8KB),所有回测任务必然失败。 + +--- + +## 二、各节点产出汇总 + +| 节点 | 负责人 | 核心产出 | 结论 | +|------|--------|---------|------| +| pangtong_requirements | 庞统 | 需求规格文档(7个维度、4个阶段、9项不确定项) | ✅ 通过 | +| zhaoyun_acquire | 赵云 | vnpy DB Schema确认 + 全量日线导入(1281万行)+ P0限频验证 | ✅ 通过 | +| jiangwei_storage | 姜维 | Docker数据通路打通 + executor bug修复 + 端到端回测验证 | ✅ 通过 | +| simayi_verify | 司马懿 | 数据完整性/正确性/回测可用性逐项验证 | ✅ 通过 | + +--- + +## 三、P1 完成成果 + +### 3.1 数据导入 + +| 指标 | 数值 | +|------|------| +| 总行数 | **12,811,513** | +| 股票数 | **5,191** | +| 日期范围 | 2010-01-04 ~ 2026-03-27 | +| DB文件大小 | 1.4 GB(NAS)/ 1.51 GB(Docker内) | +| 导入耗时 | ~45 分钟 | + +### 3.2 回测验证 + +| 验证项 | 结果 | +|--------|------| +| vnpy load_data() | ✅ 加载237根日K线(000001.SZSE 2025年) | +| 回测服务API | ✅ 提交→执行→返回统计 | +| 回测统计 | total_days=237, return=1.30%, sharpe=0.857 | +| 数据质量 | 6条异常(占比0.00005%),源自原始Parquet | + +### 3.3 解决的关键问题 + +1. **vnpy DB Schema确认**:DbBarData表11个字段,唯一索引(symbol,exchange,interval,datetime) +2. **SMB写入SQLite锁库**:先写本地/tmp,完成后复制到NAS +3. **Docker未挂载数据目录**:通过Mac HTTP服务从Docker内wget DB文件到~/.vntrader/ +4. **executor date→datetime bug**:修补版executor.py,字符串转datetime后再传给vnpy + +--- + +## 四、产出的文件清单 + +### 代码文件(sanguo_vnpy/data_platform/) + +| 文件 | 说明 | 行数 | +|------|------|------| +| import_vnpy_daily_fast.py | 全量日线导入脚本(pandas向量化) | 126 | + +### 数据文件 + +| 文件 | 大小 | 路径 | +|------|------|------| +| quant_trading.db | 1.4 GB | /Volumes/stock/sanguo_vnpy/data/ | +| quant_trading.db.bak | 8 KB | /Volumes/stock/sanguo_vnpy/data/(原始空库备份) | +| database.db(Docker内) | 1.51 GB | /home/vnpy/.vntrader/ | + +### 修复文件 + +| 文件 | 说明 | +|------|------| +| executor_patched.py | executor.py date→datetime 修复版 | +| restore_backtest_service.sh | 容器重启后恢复脚本 | +| start_backtest.sh | Docker内回测服务启动脚本 | + +### 文档文件 + +| 文件 | 路径 | +|------|------| +| 01-requirements.md | ~/.openclaw/sanguo_projects/sanguo_vnpy/docs/data-platform/ | + +--- + +## 五、P0 腾讯API限频验证结果 + +| 指标 | 数值 | +|------|------| +| 测试规模 | 100只股票15分钟线 | +| 成功率 | **100%** | +| 平均响应时间 | 0.19秒/请求 | +| 封禁 | **无** | +| 预估全市场下载 | ~17分钟(5500只) | + +**结论**:腾讯API限频不构成阻塞,P3分钟线可执行。 + +--- + +## 六、遗留问题(不阻塞P1) + +| # | 问题 | 影响 | 建议处理 | +|---|------|------|---------| +| 1 | **容器重启需手动恢复回测服务** | 回测不自动启动 | 修改Docker entrypoint或Synology配置 | +| 2 | NAS数据停在2026-03-27 | 缺34天日线 | P2增量更新 | +| 3 | 6条异常数据(原始Parquet) | 影响极小 | P4全量校验 | +| 4 | DB导入非全自动(/tmp手动复制) | 运维不便 | 优化导入脚本 | + +--- + +## 七、P2-P4 待后续任务推进 + +| 阶段 | 内容 | 状态 | +|------|------|------| +| P2: 数据基础设施 | 降级管理器+校验层+实时行情+增量更新+cron | 待创建任务 | +| P3: 分钟线数据 | 限频已验证通过,下载+导入 | 待创建任务 | +| P4: 配套skill | skill更新+全量校验+周维护 | 待创建任务 | + +--- + +## 八、数据流架构(当前状态) + +``` +NAS Parquet (5191只×17年) + ↓ import_vnpy_daily_fast.py +SQLite DB (1281万行, 1.4GB) + ↓ Mac HTTP → Docker wget +Docker ~/.vntrader/database.db (1.51GB) + ↓ engine.load_data() +vnpy BacktestingEngine → 回测结果 ✅ +``` + +--- + +*汇总完成:2026-05-02* +*庞统(副军师)🐦*