feat: improve stock detail view and update docs

This commit is contained in:
wanghep
2026-05-02 18:27:36 +08:00
parent a492c73cc6
commit 597aef1271
21 changed files with 1739 additions and 1481 deletions

153
README.md
View File

@ -1,51 +1,33 @@
# lhbfx
`lhbfx` 是一个围绕 A 股龙虎榜数据构建的“顶级游资监控系统”,当前聚焦盘后分析、游资席位跟踪、关注池管理、预警提示与个股复盘。
`lhbfx` 是一个围绕 A 股龙虎榜数据构建的盘后游资监控系统。当前工程聚焦龙虎榜导入、游资席位匹配、关注池管理、个股复盘、风险预警、盘后自动更新以及 PDF/邮件日报
## 项目结构
- `backend/`
- FastAPI 服务
- 龙虎榜导入、席位映射、预警生成脚本
- MySQL schema 与查询逻辑
- `frontend/`
- Vue 3 + TypeScript + Vite 单页应用
- 首页总控台、游资详情、个股详情、预警中心
- `docs/`
- 需求文档
- 技术文档
- 历史说明与 UI 草稿
```text
lhbfx/
├─ backend/ # FastAPI 后端、数据导入脚本、MySQL schema
├─ config.example.yaml # 配置模板
│ ├─ config.yaml # 本地运行配置
├─ scripts/ # 命令行脚本入口
└─ src/lhbfx/ # 后端应用源码
├─ frontend/ # Vue 3 + TypeScript + Vite 前端
├─ public/
└─ src/
├─ docs/ # 需求、技术与 UI 文档
├─ logs/ # 本地运行日志,已忽略
└─ start-dev.ps1 # 一键启动前后端
```
## 当前核心能力
## 当前能力
- 首页支持“关注池与操作流水”联动展示
- 待加入关注列表支持按买卖结构着色、净额重点突出、快速加入关注
- 关注池写入数据库,支持新增和删除
- 个股详情支持 K 线、MA5、买卖点与预警信息展示
- 预警中心支持卖出预警、慢流出观察等风险信息查看
- 已明确新增“每日 17:00 自动更新 + 邮件日报 + PDF 附件”需求,待后续实现
## 最近界面与数据调整
- 个股详情页的“买卖明细”已改为“买卖力度趋势”图:
- 柱形图按日期展示买入和卖出,买入为正、卖出为负。
- 折线展示“当日净额”和“累计净额”。
- 明细仅在鼠标悬浮图表时显示。
- 个股详情页顶部新增“预警列表”按钮:
- 有预警时红色高亮提示。
- 点击后以弹层方式展示当前个股预警,不再挤占右侧图表区域。
- 个股详情、首页候选股、游资详情页的数据补全逻辑已增强:
- 优先读取数据库中的股票元数据。
- 外部快照失败时增加备用行情源兜底。
- 收盘后更新流程会同步补全行业、市值、流通市值等字段。
- 后端 API 启动时会自动检查最近龙虎榜数据:
- 如果数据库最新交易日已经是当天,则跳过。
- 如果发现最近工作日数据缺失,会尝试自动补齐并重新生成预警。
- 检查失败不会阻塞 API 启动,避免服务不可用。
- 后端服务内置收盘后调度:
- 工作日 17:00 之后会自动尝试执行收盘后更新。
- 如果 17:00 时数据源尚未准备好,会按固定间隔重试,直到当天数据补齐。
- 本地和服务器使用同一套调度逻辑,不再依赖本机 Codex 自动任务。
- 首页总控台:按日期、游资、买卖方向筛选,联动关注池与候选关注股票
- 关注池:支持新增、取消关注,并按股票、日期、游资、席位合并展示流水
- 个股详情:展示日 K、MA5、买卖点、游资参与概览、买卖力度趋势与预警弹层
- 游资详情:展示游资档案、席位、历史参与股票与净额变化
- 预警中心:展示卖出预警、慢流出观察等风险信
- 盘后流程:支持导入指定交易日数据、重匹配游资、生成预警、生成 PDF 日报并可发送邮件
- 后端调度API 启动后会按工作日 17:00 之后的窗口尝试补齐当日数据。
## 环境要求
@ -55,37 +37,27 @@
## 后端启动
1. 复制配置文件
-`backend/config.example.yaml` 复制为 `backend/config.yaml`
- 按实际数据库连接信息修改
- 当前仓库已允许提交 `backend/config.yaml`,服务器部署默认读取该文件
1. 准备配置
```powershell
Copy-Item backend\config.example.yaml backend\config.yaml
```
按实际 MySQL、邮件等信息修改 `backend/config.yaml`
2. 初始化数据库:
```powershell
python backend/scripts/init_db.py
python backend\scripts\init_db.py
```
3. 启动 API
```powershell
python backend/scripts/run_api.py
python backend\scripts\run_api.py
```
4. 收盘后更新并发送邮件:
```powershell
python backend/scripts/after_market_update.py --trade-date 2026-04-17 --send-email
```
默认约定:
-`Asia/Shanghai` 取当天日期
- 预期定时为 A 股交易日 `17:00`
- 只有当日成功拉到新的龙虎榜数据才会继续生成预警、PDF 并发邮件;否则自动跳过
默认地址:
- `http://127.0.0.1:8000`
默认地址:`http://127.0.0.1:8000`
## 前端启动
@ -95,49 +67,78 @@ npm install
npm run dev -- --host 127.0.0.1 --port 5173
```
默认地址:
- `http://127.0.0.1:5173`
默认地址:`http://127.0.0.1:5173`,开发服务器会把 `/api` 代理到后端。
## 一键开发启动
根目录提供了 `start-dev.ps1`
在项目根目录运行
```powershell
powershell -ExecutionPolicy Bypass -File .\start-dev.ps1
```
脚本会同时拉起
脚本会同时启动
- 后端:`127.0.0.1:8000`
- 前端:`127.0.0.1:5173`
- 后端:`http://127.0.0.1:8000`
- 前端:`http://127.0.0.1:5173`
- 日志:`logs/`
日志输出目录:
## 常用脚本
- `logs/`
```powershell
# 导入同花顺指定日期龙虎榜数据
python backend\scripts\import_ths_daily.py --trade-date 2026-04-17
## 常用后端接口
# 重跑游资席位匹配
python backend\scripts\rematch_traders.py
# 重新生成预警
python backend\scripts\generate_warnings.py
# 盘后更新,可选邮件发送
python backend\scripts\after_market_update.py --trade-date 2026-04-17 --send-email
# 生成日报,可选发送
python backend\scripts\daily_report.py --trade-date 2026-04-17 --send
```
## 常用 API
- `GET /api/summary`
- `GET /api/pipeline/status`
- `GET /api/traders`
- `GET /api/traders/{trader_id}`
- `GET /api/stocks/search`
- `GET /api/stocks/{stock_code}`
- `GET /api/actions`
- `GET /api/watchlist`
- `POST /api/watchlist`
- `DELETE /api/watchlist/{stock_code}`
- `GET /api/warnings`
- `POST /api/pipeline/rematch-traders`
- `POST /api/pipeline/generate-warnings`
- `POST /api/pipeline/refresh-trade-date`
## 构建与检查
```powershell
# 前端类型检查与生产构建
cd frontend
npm run build
# 后端语法检查
cd ..
python -m compileall backend\src backend\scripts
```
## 文档索引
- 需求文档:`docs/需求文档.md`
- 技术文档:`docs/技术文档.md`
- UI 设计说明:`docs/UI设计说明.md`
- 历史需求梳理:`docs/需求梳理-今日游资操作优先.md`
- 历史 UI 说明:`docs/UI设计说明.md`
- 完整早期需求:`docs/顶级游资监控系统需求文档.md`
## 仓库说明
- 仓库已补充 `.gitignore``.gitattributes`
- 本地敏感配置 `backend/config.yaml` 已忽略,不会推送
- 提交前建议使用 `backend/config.example.yaml` 作为共享配置模板
生成物和本地运行产物不进入版本库,包括 `logs/``frontend/dist/``frontend/node_modules/``__pycache__/``*.egg-info/`。提交前建议运行前端构建和后端编译检查。