auto-sync: 2026-05-02 13:32:05

This commit is contained in:
cfdaily
2026-05-02 13:32:05 +08:00
parent 8c1855b932
commit 98d8074b36
+141
View File
@@ -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 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*
*庞统(副军师)🐦*