diff --git a/auto-sync-cron.log b/auto-sync-cron.log index 09d2a194..92aa956c 100644 --- a/auto-sync-cron.log +++ b/auto-sync-cron.log @@ -69373,3 +69373,5 @@ fatal: refusing to merge unrelated histories /bin/sh: ./management/sanguo_auto_sync/auto-sync.sh: No such file or directory /bin/sh: ./management/sanguo_auto_sync/auto-sync.sh: No such file or directory /bin/sh: ./management/sanguo_auto_sync/auto-sync.sh: No such file or directory +/bin/sh: ./management/sanguo_auto_sync/auto-sync.sh: No such file or directory +/bin/sh: ./management/sanguo_auto_sync/auto-sync.sh: No such file or directory diff --git a/jiangwei-platform/research/sanguo_vnpy目录整理提案.md b/jiangwei-platform/research/sanguo_vnpy目录整理提案.md index b7b76392..5124abb0 100644 --- a/jiangwei-platform/research/sanguo_vnpy目录整理提案.md +++ b/jiangwei-platform/research/sanguo_vnpy目录整理提案.md @@ -1,4 +1,4 @@ -# sanguo_vnpy 项目目录整理提案 +# sanguo_vnpy 项目目录整理提案(修订版) **提案人**: 姜维(平台总督) **日期**: 2026-04-29 @@ -6,113 +6,166 @@ --- -## 一、现状扫描 +## 一、项目定位理解 -| 目录 | 文件数 | 大小 | 现状评估 | -|------|--------|------|---------| -| archives/ | 4 | 90M | ⚠️ 含两个90M的旧Docker镜像tar + 过时pid文件 | -| config/ | 21 | 84K | ✅ 成果物,NAS部署用的nginx+systemd配置 | -| data/ | 1 | 8K | ✅ 成果物,quant_trading.db | -| docker/ | 5 | 20K | ✅ 成果物,Dockerfile+entrypoint+requirements | -| jiangwei-platform/ | 11 | 60K | ✅ 成果物,NAS部署脚本+模板+日志 | -| logs/ | 8 | 32K | ⚠️ 历史调试日志,大部分无用 | -| research/ | 39 | 360K | ⚠️ 混杂,有成果也有过程文件 | -| scripts/ | 99 | 580K | ❌ **重灾区**:大量一次性修复/调试脚本 | -| test/ | 88 | 772K | ❌ **重灾区**:大量重复测试脚本(v2/v3/v4/v5/v6) | -| backup/ | 0 | 0 | 空目录 | -| *.log(根目录) | 3 | 4.6M | ❌ 垃圾日志 | +**sanguo_vnpy = 基于vnpy框架构建的三国量化全流程平台** -**总计**:279个文件,其中约170+是一次性调试/修复脚本,需要清理 +### 核心目标 +基于vnpy开源框架进行适配,构建投研→策略开发→模拟→实盘的全流程量化交易平台。 + +### 已完成的适配成果 +1. **vnpy 4.x 回测服务**:基于BacktestingEngine封装的API化回测服务(scripts/backtest-service/) +2. **本地数据适配器**:vnpy_local_data_adapter.py,本地数据集成方案 +3. **Docker容器化部署**:Dockerfile + entrypoint.sh,NAS群晖Docker运行 +4. **NAS多用户架构**:config/(nginx+systemd),7个用户隔离配置 +5. **edict任务管理集成**:浅集成方案,看板可视化 +6. **自动化部署流程**:jiangwei-platform/deploy/nas/ 部署全流程脚本 + +### 远期目标 +- 聚宽/QMT多风格兼容适配 +- 策略开发标准化流程 +- 模拟交易验证 +- 实盘交易接入 --- -## 二、分类判定 +## 二、现状分析 -### ✅ 保留(核心成果物) +### 目录与文件统计 -| 目录 | 内容 | 保留理由 | -|------|------|---------| -| config/ | nginx(7) + systemd(14) | NAS多用户部署配置,直接使用 | -| data/ | quant_trading.db | 回测数据库 | -| docker/ | Dockerfile + entrypoint.sh + requirements | Docker镜像构建核心文件 | -| jiangwei-platform/deploy/nas/ | 部署脚本+模板+日志+计划 | NAS部署全流程成果物 | - -### ⚠️ 需要整理(有价值的混杂在垃圾里) - -| 目录 | 保留 | 归档/清理 | -|------|------|----------| -| research/ | NAS部署报告(7)、vnpy调研报告(5)、jq文章分析(1) | 过程文件、临时爬虫脚本 | -| scripts/backtest-service/ | 回测服务核心代码(9) → **这是最重要的成果物** | models.py.bak | -| scripts/start_*.py | 3个启动脚本 | - | - -### ❌ 建议清理(垃圾/一次性文件) - -| 目录 | 文件数 | 说明 | -|------|--------|------| -| archives/ | 4 | 旧Docker镜像tar(90M)+ pid文件,已无用 | -| test/backtest/ | 70 | 大量v2/v3/v4重复测试脚本,调试完成不再需要 | -| test/rpc/ | 6 | RPC测试脚本,调试完成 | -| scripts/deployment/ | 37 | 大量一次性修复/部署脚本 | -| scripts/utils/ | 30 | 大量一次性检查/修复工具 | -| scripts/verify/ | 2 | 验证脚本 | -| logs/ | 8 | 历史日志 | -| 根目录*.log | 3 | auto-sync日志(4.6M) | -| backup/ | 0 | 空目录 | +| 目录 | 文件数 | 大小 | 成果物? | 说明 | +|------|--------|------|---------|------| +| `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 # 项目总说明(新建) +├── README.md # 项目总说明(新建,描述项目定位和架构) +│ ├── docker/ # Docker镜像构建 -│ ├── Dockerfile -│ ├── entrypoint.sh -│ └── requirements/ -├── scripts/ -│ ├── backtest-service/ # 🔥 回测服务核心代码(最重要) -│ ├── start_backtest_service.py -│ ├── start_rpc_server.py -│ └── start_web_trader.py -├── config/ # NAS部署配置 -│ ├── nginx/ -│ └── systemd/ -├── jiangwei-platform/ -│ └── deploy/nas/ # NAS部署全流程 -├── data/ # 数据 -├── research/ # 调研报告(整理后) -│ ├── nas/ # NAS部署相关调研 -│ ├── vnpy/ # vnpy框架调研 -│ └── jq_essence_articles/ # 聚宽精华文章 -└── archive/ # 归档(清理后的历史文件) - └── 2026-04-29-cleanup/ # 按日期归档 +│ ├── 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 | 删除 `archives/`(90M旧镜像+pid) | 释放90M | 无 | -| 2 | 删除根目录 `*.log`(4.6M同步日志) | 释放4.6M | 无 | -| 3 | 删除 `logs/` 历史日志 | 释放32K | 无 | -| 4 | 删除 `backup/` 空目录 | 0 | 无 | -| 5 | 整理 `test/` → 归档到 `archive/2026-04-29-cleanup/test/` | 移动88个文件 | 低 | -| 6 | 整理 `scripts/deployment/` → 归档 | 移动37个文件 | 低 | -| 7 | 整理 `scripts/utils/` → 归档 | 移动30个文件 | 低 | -| 8 | 整理 `scripts/verify/` → 归档 | 移动2个文件 | 低 | -| 9 | 删除 `scripts/backtest-service/models.py.bak` | 删除1个文件 | 无 | -| 10 | 清理 `research/` 中的过程文件 | 移动少量文件 | 低 | -| 11 | 新建 `README.md` 项目总说明 | 新增1个文件 | 无 | +| # | 操作 | 文件数 | 风险 | 说明 | +|---|------|--------|------|------| +| **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. **只清理不删除**:所有清理的文件移到 `archive/2026-04-29-cleanup/` 保持原有目录结构,万无一失 -2. **保留全部成果物**:核心代码、配置、调研报告全部原位保留 -3. **不涉及NAS端**:只整理本地仓库,NAS上的文件不受影响 -4. **整理后git提交**:一次清晰的commit记录 +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)。 --- @@ -120,12 +173,20 @@ sanguo_vnpy/ | 指标 | 整理前 | 整理后 | |------|--------|--------| -| 总文件数 | 279 | ~70 | -| 根目录文件 | 4个log + 1个md | 1个README.md | -| scripts/ | 99个(大量噪音) | ~12个(核心+启动脚本) | -| test/ | 88个 | 0(全部归档) | -| 磁盘占用 | ~95M | ~5M(归档另计) | +| 总文件数 | 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的全流程量化平台)、已完成适配、架构设计、使用方法 + +--- + +**请确认是否同意此方案,或需要调整的地方。确认后立即执行。** diff --git a/logs/auto-sync.log b/logs/auto-sync.log index 3ff8de49..80b95df8 100644 --- a/logs/auto-sync.log +++ b/logs/auto-sync.log @@ -5779,5 +5779,6 @@ +