Files
lhbfx/docs/技术文档.md
2026-05-02 18:27:36 +08:00

5.3 KiB
Raw Permalink Blame History

lhbfx 技术文档

1. 技术栈

  • 前端Vue 3、TypeScript、Vite
  • 后端FastAPI、PyMySQL、PyYAML、Requests、BeautifulSoup、ReportLab
  • 数据库MySQL 8+
  • 运行脚本PowerShell、Python scripts

2. 工程结构

lhbfx/
├─ backend/
│  ├─ config.example.yaml
│  ├─ config.yaml
│  ├─ pyproject.toml
│  ├─ scripts/
│  │  ├─ init_db.py
│  │  ├─ run_api.py
│  │  ├─ import_ths_daily.py
│  │  ├─ rematch_traders.py
│  │  ├─ generate_warnings.py
│  │  ├─ after_market_update.py
│  │  └─ daily_report.py
│  └─ src/lhbfx/
├─ frontend/
│  ├─ package.json
│  ├─ vite.config.ts
│  └─ src/
├─ docs/
├─ start-dev.ps1
└─ README.md

3. 后端架构

3.1 应用入口

  • backend/scripts/run_api.py:命令行启动入口。
  • backend/src/lhbfx/app.pyFastAPI 应用、API 路由、静态前端挂载、启动时数据检查与调度启动。

3.2 配置

  • backend/config.example.yaml:共享配置模板。
  • backend/config.yaml:本地运行配置,包含数据库、邮件、调度等信息。
  • backend/src/lhbfx/config.py:配置模型与加载逻辑。

3.3 数据访问

  • backend/src/lhbfx/db.pyMySQL 连接与 cursor 上下文。
  • backend/src/lhbfx/schema.sql:表结构。
  • backend/src/lhbfx/queries.py:面向 API 的查询与聚合,包含摘要、游资详情、个股详情、关注池、股票搜索、预警查询等。

3.4 数据导入与处理

  • backend/src/lhbfx/pipeline.py:龙虎榜导入、游资席位匹配、预警生成、指定交易日刷新。
  • backend/src/lhbfx/sources/tonghuashun.py:同花顺龙虎榜数据源。
  • backend/src/lhbfx/sources/eastmoney.py东方财富行情、K 线与个股资料兜底数据源。
  • backend/src/lhbfx/sources/tencent.py:腾讯行情快照兜底数据源。
  • backend/src/lhbfx/sources/sina.py:新浪 K 线兜底数据源。

3.5 盘后任务与日报

  • backend/src/lhbfx/after_market.py:盘后更新编排,负责导入、匹配、预警、日报与邮件。
  • backend/src/lhbfx/scheduler.pyAPI 常驻调度,工作日 17:00 后尝试补齐当日数据。
  • backend/src/lhbfx/reporting.py:日报数据聚合与邮件正文。
  • backend/src/lhbfx/pdf_export.pyPDF 日报生成。
  • backend/src/lhbfx/mailer.py:邮件发送。

4. 前端架构

4.1 入口与状态

  • frontend/src/main.tsVue 应用入口。
  • frontend/src/App.vue:页面路由状态、股票搜索、全局数据初始化。
  • frontend/src/composables/useDashboardData.ts:统一封装 API 调用、选择状态、关注池派生数据与页面数据加载。
  • frontend/src/types.tsAPI 响应类型。

4.2 页面组件

  • AppHero.vue:顶部状态、导航与股票搜索。
  • HomeControlScreen.vue:首页总控台,包含关注池流水与候选关注股票。
  • TraderDetailScreen.vue:游资详情。
  • StockDetailScreen.vue:个股详情容器、基础信息、预警入口、游资参与概览。
  • StockDetailKlinePanel.vue:日 K、MA5、买卖点与预警标记。
  • StockActionTimelineChart.vue:买卖力度趋势图。
  • WarningCenterScreen.vue:预警中心。
  • home/CandidateWatchCard.vue:候选关注股票卡片。

4.3 工具模块

  • frontend/src/utils/format.ts:金额、涨跌、日期和预警标签格式化。
  • frontend/src/utils/stockDetailKline.ts:个股 K 线面板的数据转换与坐标计算。

5. 主要数据流

  1. 用户启动后端,app.py 加载配置、创建 FastAPI 应用,并启动盘后调度。
  2. 前端 useDashboardData.initialize() 拉取摘要、状态、游资、预警、关注池和操作流水。
  3. 首页筛选条件变化后,前端重新请求 /api/actions,并在本地派生关注池流水、候选关注列表和指标。
  4. 用户选择个股时,前端请求 /api/stocks/{stock_code}后端聚合数据库数据、K 线、行情快照、游资操作和预警。
  5. 盘后任务导入龙虎榜数据后,执行席位匹配、预警生成、日报生成与邮件发送。

6. 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:刷新指定交易日。

7. 生成物与清理规则

以下目录或文件属于生成物、本地依赖或运行产物,不应提交:

  • frontend/node_modules/
  • frontend/dist/
  • logs/
  • __pycache__/
  • *.pyc
  • *.egg-info/

清理时优先删除这些生成物;源码删除必须先确认无引用、无入口、无文档约定。

8. 验证命令

# 前端类型检查与构建
cd frontend
npm run build

# 后端语法检查
cd ..
python -m compileall backend\src backend\scripts