diff --git a/docs/superpowers/specs/2026-07-07-phase3b-vue-frontend-design.md b/docs/superpowers/specs/2026-07-07-phase3b-vue-frontend-design.md new file mode 100644 index 0000000..8cc8ce8 --- /dev/null +++ b/docs/superpowers/specs/2026-07-07-phase3b-vue-frontend-design.md @@ -0,0 +1,279 @@ +# Phase 3b:投研 + 回测 Web 控制台(Vue 前端)设计 + +> 日期:2026-07-07 +> 阶段:Phase 3b(B 期) +> 状态:设计待审阅 +> 维护:Main Agent + +--- + +## 1. 背景与目标 + +已交付: +- Phase 1 数据层(A 股 K 线 / SQLite 读取) +- Phase 2 因子 + 回测引擎(`sanguo_factor` / `sanguo_backtest`,真数据跑通) +- Phase 3a 研究 API(`sanguo_api`:JWT / 异步任务 / WebSocket / 结果查询),本机 + 容器 pytest 通过 + +两个缺口: +1. **没有前端**——只有 API,用户无法在网页上操作。 +2. **`sanguo_api` 未挂公网**——实机查证:公网 `vnpy.mysanguo.top` → 容器:8000 现在跑的是**旧 `sanguo_web`(实盘交易 API,44 路由)**,没有回测/因子接口;Phase 3a 的 `sanguo_api` 只在容器里 pytest 跑过。 + +**本期目标**:建一个 Vue 前端控制台,对齐 vnpy 桌面 client 的**回测模块**功能 + 投研(因子)自有模块,并把 `sanguo_api` 切到公网 8000,使整条链路从 `vnpy.mysanguo.top` 可用。 + +--- + +## 2. 范围 + +**完整愿景(用户确认,4 期递进)**:投研 → 回测 → 模拟 → 实盘(实盘最后,走**国金证券 QMT** / xtquant)。 + +**本期 B(= B1)范围**: + +| 类别 | 内容 | +|---|---| +| ✅ 投研 | 因子分析(多标的 / 多因子 / 日期)→ IC 表 + tears 报告 | +| ✅ 回测 | CTA 策略回测(对齐 vnpy client 回测模块:统计全表 / 资金曲线 / 每日盈亏 / 成交记录 / K线+买卖点)+ 参数优化 | +| ✅ 前端 | Vue 3 SPA | +| ✅ 后端补 | 5 类新接口 + 现有接口扩展 | +| ✅ 部署 | 切 `sanguo_api` 到 8000,Vue 静态挂 FastAPI | + +**不在本期(out of scope)**: +- ❌ 模拟盘(C 期,后端模拟引擎尚未建) +- ❌ 实盘交易(D 期,国金 QMT;旧 `sanguo_web` 交易路由本期下线,D 期合并回来) +- 导航**预留 4 入口**,模拟/实盘灰显"敬请期待",避免日后重写布局。 + +--- + +## 3. 整体架构 + +``` +浏览器 (Vue 3 SPA) + ↕ HTTPS vnpy.mysanguo.top ← 外网链路不动(frpc/socat/Caddy 不碰) +FastAPI sanguo_api (容器:8000,从 sanguo_web 切过来) + ├─ / → Vue 静态文件 (StaticFiles,SPA history fallback) + ├─ /api/v1/* → 研究 API(auth / backtest / factor / task / ws) + └─ 调后端引擎 → sanguo_backtest / sanguo_factor / sanguo_data + ↕ + SQLite + A 股 K 线 (NAS /volume1/stock) +``` + +--- + +## 4. 前端技术栈 + +| 层 | 选型 | 备注 | +|---|---|---| +| 框架 | Vue 3 + `