# 数据源体系建设 - 项目汇总报告 **任务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* *庞统(副军师)🐦*