Files
sanguo_vnpy/docs/data-platform/summary-p1.md
T
2026-05-02 13:32:05 +08:00

142 lines
4.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 数据源体系建设 - 项目汇总报告
**任务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 GBNAS/ 1.51 GBDocker内) |
| 导入耗时 | ~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.dbDocker内) | 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*
*庞统(副军师)🐦*