Files
sanguo_vnpy/archive/2026-04-29-cleanup/sanguo_vnpy目录整理提案.md
T
2026-04-29 20:16:20 +08:00

193 lines
9.6 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.
# sanguo_vnpy 项目目录整理提案(修订版)
**提案人**: 姜维(平台总督)
**日期**: 2026-04-29
**状态**: 待确认
---
## 一、项目定位理解
**sanguo_vnpy = 基于vnpy框架构建的三国量化全流程平台**
### 核心目标
基于vnpy开源框架进行适配,构建投研→策略开发→模拟→实盘的全流程量化交易平台。
### 已完成的适配成果
1. **vnpy 4.x 回测服务**:基于BacktestingEngine封装的API化回测服务(scripts/backtest-service/
2. **本地数据适配器**vnpy_local_data_adapter.py,本地数据集成方案
3. **Docker容器化部署**Dockerfile + entrypoint.shNAS群晖Docker运行
4. **NAS多用户架构**config/nginx+systemd),7个用户隔离配置
5. **edict任务管理集成**:浅集成方案,看板可视化
6. **自动化部署流程**jiangwei-platform/deploy/nas/ 部署全流程脚本
### 远期目标
- 聚宽/QMT多风格兼容适配
- 策略开发标准化流程
- 模拟交易验证
- 实盘交易接入
---
## 二、现状分析
### 目录与文件统计
| 目录 | 文件数 | 大小 | 成果物? | 说明 |
|------|--------|------|---------|------|
| `scripts/backtest-service/` | 9 | 核心 | ✅ | **回测服务核心代码**vnpy 4.x适配 |
| `scripts/start_*.py` | 3 | 核心 | ✅ | 启动脚本(RPC/Web/回测) |
| `scripts/utils/` | 30 | 辅助 | ⚠️ | 数据适配器+调试工具混杂 |
| `scripts/deployment/` | 37 | 辅助 | ⚠️ | 部署脚本(部分仍在用,部分过时) |
| `scripts/verify/` | 2 | 辅助 | ⚠️ | 验证脚本 |
| `docker/` | 5 | 核心 | ✅ | Dockerfile+entrypoint+requirements |
| `config/` | 21 | 核心 | ✅ | NAS多用户nginx+systemd配置 |
| `jiangwei-platform/deploy/` | 11 | 核心 | ✅ | NAS部署全流程(脚本+模板+文档) |
| `research/` | 39 | 参考 | ⚠️ | 调研报告+过程文件混杂 |
| `test/` | 88 | 调试 | ❌ | 大量v2/v3/v4重复测试脚本 |
| `archives/` | 4 | 废弃 | ❌ | 旧Docker镜像tar(90M)+pid文件 |
| `logs/` | 8 | 废弃 | ❌ | 历史调试日志 |
| `backup/` | 0 | 空目录 | ❌ | 空目录 |
| 根目录*.log | 3 | 废弃 | ❌ | auto-sync日志(4.6M) |
| `data/` | 1 | 数据 | ✅ | quant_trading.db |
---
## 三、整理提案
### 设计原则
1. **面向vnpy适配开发**:目录结构要体现"基于vnpy构建"的定位
2. **保留所有有价值成果物**:核心代码、配置、调研报告
3. **只移动不删除**:清理的文件进archive/,保持原结构可追溯
4. **不涉及NAS端**:只整理本地仓库
### 目标目录结构
```
sanguo_vnpy/
├── README.md # 项目总说明(新建,描述项目定位和架构)
├── docker/ # Docker镜像构建
│ ├── Dockerfile # 镜像定义
│ ├── entrypoint.sh # 容器启动脚本(含pip自动安装)
│ └── requirements/ # Python依赖
├── src/ # 🔥 平台核心代码(新增顶层目录)
│ ├── backtest-service/ # vnpy 4.x回测服务(从scripts/提升)
│ │ ├── main.py # FastAPI入口
│ │ ├── api.py # API路由
│ │ ├── executor.py # vnpy回测执行器
│ │ ├── models.py # 数据模型
│ │ ├── config.py # 配置
│ │ ├── task_queue.py # 任务队列
│ │ └── result_storage.py # 结果存储
│ ├── adapters/ # vnpy适配层(从scripts/utils/提取)
│ │ └── vnpy_local_data_adapter.py # 本地数据适配器
│ └── scripts/ # 启动脚本
│ ├── start_backtest_service.py
│ ├── start_rpc_server.py
│ └── start_web_trader.py
├── config/ # NAS部署配置(原位保留)
│ ├── nginx/ # 7个用户nginx配置
│ └── systemd/ # 14个systemd服务文件
├── deploy/ # 部署相关(从jiangwei-platform/提升)
│ └── nas/ # NAS部署全流程
│ ├── create-user.sh
│ ├── create-all-users.sh
│ ├── generate-all-configs.sh
│ ├── deploy-plan.md
│ ├── deploy-log.md
│ ├── port-allocation.md
│ └── templates/
├── research/ # 调研文档(清理后保留)
│ ├── vnpy/ # vnpy框架调研
│ │ ├── vnpy本地数据集成方案.md
│ │ ├── edict集成完成总结.md
│ │ ├── 服务使用说明文档.md
│ │ ├── edict-adapter-scheme.md # (从research/根目录移入)
│ │ ├── 三国edict浅集成执行流程.md
│ │ ├── 安装vnpy解决方案.md
│ │ ├── 回测API_bug修复报告.md
│ │ ├── final_fix_summary.md
│ │ ├── 修复完成通知.md
│ │ ├── 赵云数据转换指南.md
│ │ └── final/ # (从vnpy/删除空目录,保留现有文件)
│ ├── nas/ # NAS部署调研
│ ├── docker/ # Docker相关调研
│ ├── jq_essence_articles/ # 聚宽精华文章
│ └── webtrader/ # (从task-20260331重命名)
│ ├── vnpy-webtrader-research-report.md
│ └── nas-deployment-architecture-analysis.md
├── data/ # 数据(原位保留)
├── archive/ # 归档(新增,存放清理出的历史文件)
│ └── 2026-04-29-cleanup/ # 按日期归档,保持原目录结构
│ ├── test/ # 88个测试脚本
│ ├── scripts/deployment/ # 37个部署脚本
│ ├── scripts/utils/ # 30个工具脚本(非核心的)
│ ├── scripts/verify/ # 2个验证脚本
│ ├── logs/ # 历史日志
│ └── research/ # 过程文件
└── .gitignore # (更新,忽略*.log等)
```
### 操作清单
| # | 操作 | 文件数 | 风险 | 说明 |
|---|------|--------|------|------|
| **1** | **新建 src/ 核心目录** | - | 无 | 体现vnpy适配开发结构 |
| **2** | **scripts/backtest-service/ → src/backtest-service/** | 9 | 低 | 回测服务核心代码提升到src/ |
| **3** | **scripts/utils/vnpy_local_data_adapter.py → src/adapters/** | 1 | 低 | 数据适配器归入适配层 |
| **4** | **scripts/start_*.py → src/scripts/** | 3 | 低 | 启动脚本提升 |
| **5** | **jiangwei-platform/deploy/ → deploy/** | 11 | 低 | 部署相关提升到顶层 |
| **6** | **research/edict-adapter-scheme.md → research/vnpy/** | 1 | 无 | 归类到vnpy目录 |
| **7** | **research/task-20260331-vnpy-webtrader-research/ → research/webtrader/** | 2 | 无 | 重命名为更清晰的名称 |
| **8** | **test/ 全部 → archive/2026-04-29-cleanup/test/** | 88 | 低 | 重复测试脚本归档 |
| **9** | **scripts/deployment/ → archive/** | 37 | 低 | 过时部署脚本归档 |
| **10** | **scripts/utils/(非核心)→ archive/** | 29 | 低 | 保留vnpy_local_data_adapter.py后归档 |
| **11** | **scripts/verify/ → archive/** | 2 | 低 | 验证脚本归档 |
| **12** | **删除 archives/(旧镜像tar** | 4 | 无 | 90M旧文件,已无用 |
| **13** | **删除根目录 *.log + logs/** | 11 | 无 | 垃圾日志 |
| **14** | **删除 backup/ 空目录** | 0 | 无 | 空目录 |
| **15** | **删除 models.py.bak** | 1 | 无 | 备份文件 |
| **16** | **新建 README.md** | 1 | 无 | 项目总说明 |
| **17** | **更新 .gitignore** | 1 | 无 | 忽略*.log等 |
### 关键说明
1. **NAS端兼容**NAS上挂载的是 `/volume1/stock/sanguo_vnpy/bt-service/``entrypoint.sh`,与本地 `scripts/backtest-service/` 是独立的两份。本地目录调整不影响NAS运行。但后续需要同步更新entrypoint.sh中的路径引用。
2. **scripts/deployment/ 中的有用脚本**`nas_manager.sh``copy_and_start.sh` 等可能仍在使用,整理时会检查并保留活跃脚本到 `deploy/` 目录。
3. **研究文档保留策略**:research/下的文档按主题归入子目录(vnpy/nas/docker/webtrader/jq),删除散落在根目录的过程文件(如scrape脚本移到archive)。
---
## 四、预计效果
| 指标 | 整理前 | 整理后 |
|------|--------|--------|
| 总文件数 | 279 | ~80 |
| 根目录内容 | 4个log + 1个md + 9个目录 | 1个README + 7个目录 |
| 核心代码位置 | scripts/backtest-service/ | src/backtest-service/ |
| 目录语义 | 混乱,大量调试噪音 | 清晰,体现vnpy适配开发定位 |
| 磁盘占用 | ~95M | ~5M |
---
## 五、需要注意的点
1. **git历史保留**:所有操作通过 `git mv` 执行,保留完整历史
2. **NAS同步检查**:整理后确认auto-sync不会破坏NAS上的文件
3. **README.md内容**:需要描述项目定位(基于vnpy的全流程量化平台)、已完成适配、架构设计、使用方法
---
**请确认是否同意此方案,或需要调整的地方。确认后立即执行。**