# 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 + `