Files
stock_cursor_v0/README.md
2026-06-14 11:54:45 +08:00

266 lines
12 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Blackdata StockTerminal
个人/小团队 A 股分析·复盘·智能专业分析系统。后端提供行情、回测、AI 诊断与定时任务;前端为纯 HTML + ECharts 原型界面,由 FastAPI 统一托管。
## 功能概览
| 模块 | 能力 |
|---|---|
| **大盘行情** | 三大指数、情绪温度计、板块云图、热股榜、龙虎榜、涨跌停统计 |
| **盘中监控** | 异动雷达(快速拉升/放量突破/涨停打开/连板追踪/大单异动)、实时扫描与推送 |
| **自选股** | 自选列表、分组管理、内置 8 种策略选股、多因子条件过滤 |
| **智能选股** | 可视化条件组合器、选股策略保存/分享、选股结果回测验证、条件预警集成 |
| **复盘中心** | 每日复盘(板块/资金/龙虎榜、AI 七段式日报、个股 K 线回放MA 买卖点标注) |
| **策略回测** | MA 交叉/多因子策略回测、参数优化网格搜索、策略对比(并排净值曲线)、交易明细导出 |
| **板块轮动** | 板块强弱趋势、资金流向桑基图、龙头股识别、生命周期判断、板块联动性分析 |
| **AI 分析** | 个股诊断6 维证据链、AI 对话式分析、信号历史胜率、预测留痕与准确率核验 |
| **组合交易** | 持仓 P&L、资金曲线、交易日志理由/情绪标签)、持仓归因分析(选股/择时/运气分解) |
| **智能预警** | 价格/涨跌幅/量能/技术信号规则、选股策略预警、多通道推送(邮件/微信/企微)、触发记录 |
| **资讯中心** | 财经快讯、AI 情绪判断与摘要、自选股相关资讯、关联个股分析 |
| **社区情绪** | 热帖采集(东方财富/雪球)、情绪指数计算、热议股票排行、关键词云图、情绪与股价相关性 |
| **事件驱动** | 财报发布前后规律、高管增减持跟踪、限售解禁影响、行业政策事件库、事件驱动选股 |
| **财报解读** | 关键指标趋势、AI 财报摘要、同行对比、财报异常预警、发布日历、排行榜 |
| **涨跌停分析** | 涨停/跌停股票追踪、连板股监控、炸板率统计、涨停敢死队排行 |
| **数据中台** | 数据入库状态、任务日志、全市场历史回填、定时调度监控 |
更完整的架构说明见 [架构总结.md](./架构总结.md)。
## 技术栈
- **前端**HTML + CSS + 原生 JSECharts 5CDN
- **后端**Python 3.12 · FastAPI · uvicorn
- **数据库**PostgreSQL · SQLAlchemy 2.0
- **数据源**AkShare行情/情绪/资讯Sina 实时报价
- **调度**APScheduler
- **AI**OpenAI 兼容接口DeepSeek / 通义 / Kimi 等),无 Key 时规则降级
## 项目结构
```
stock_cs/
├── backend/ # FastAPI 后端
│ ├── main.py # API 入口 + 路由定义
│ ├── cli.py # 建库/入库命令行工具
│ ├── models.py # SQLAlchemy 数据模型
│ ├── db.py # 数据库连接管理
│ ├── config.py # 配置项
│ ├── scheduler.py # APScheduler 定时任务
│ ├── akshare_service.py # 数据源接口封装
│ ├── ai.py # AI 分析核心
│ ├── ai_chat.py # AI 对话式分析
│ ├── llm.py # 大模型调用封装
│ ├── backtest.py # 基础回测引擎
│ ├── backtest_advanced.py # 增强回测(多因子/参数优化/策略对比)
│ ├── signals.py # 信号胜率统计
│ ├── report.py # AI 复盘日报生成
│ ├── portfolio.py # 组合与持仓计算
│ ├── attribution_analysis.py # 持仓归因分析
│ ├── alerts.py # 智能预警核心
│ ├── notifier.py # 多通道推送
│ ├── intraday_radar.py # 盘中异动雷达
│ ├── sector_rotation.py # 板块轮动分析
│ ├── smart_selector.py # 智能选股增强
│ ├── sentiment_monitor.py # 社区情绪监控
│ ├── event_driven.py # 事件驱动策略
│ ├── financial_analysis.py # 财报深度解读
│ ├── limit_analysis.py # 涨跌停分析
│ ├── .env.example # 环境变量模板
│ └── requirements.txt # Python 依赖
├── prototype/ # 前端原型HTML + JS + CSS
├── 架构总结.md # 架构设计文档
├── 功能架构.md # 功能模块详解
├── 待优化.md # 已知问题与优化方向
└── 功能扩展.md # 扩展功能建议
```
## 环境要求
- Python 3.12+
- PostgreSQL 14+(本地或远程均可)
- 可选:大模型 API Key、推送渠道密钥见下方配置
## 快速开始
以下命令以 **WSLLinux** 为例。项目在 Windows 盘时,路径一般为 `/mnt/e/project/stock_cs_v1`;若在 WSL 家目录,则替换为实际路径即可。
### 1. 安装 PostgreSQLWSL首次
```bash
sudo apt update
sudo apt install -y postgresql postgresql-contrib
sudo service postgresql start
# 设置 postgres 用户密码(与 backend/.env 中 PG_PASSWORD 一致)
sudo -u postgres psql -c "ALTER USER postgres PASSWORD 'your_password';"
```
WSL 每次重启后若数据库未自动运行,需先执行:
```bash
sudo service postgresql start
```
### 2. 安装 Python 依赖(首次)
```bash
cd /mnt/e/project/stock_cs_v1/backend # 按实际路径修改
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
```
**Windows 原生(非 WSL** 激活虚拟环境:
```powershell
cd backend
python -m venv .venv
.venv\Scripts\activate
pip install -r requirements.txt
```
### 3. 配置环境变量
```bash
cd backend
cp .env.example .env
```
编辑 `backend/.env`,至少确认 PostgreSQL 连接信息PostgreSQL 装在 WSL 内时使用 `localhost`
```env
PG_USER=postgres
PG_PASSWORD=your_password
PG_HOST=localhost
PG_PORT=5432
PG_DB=stock_cs
```
也可通过环境变量 `PG_USER` / `PG_PASSWORD` / `PG_HOST` / `PG_PORT` / `PG_DB` 设置,无需改文件。
可选:填入 `LLM_API_KEY` 启用大模型分析;填入 SMTP / Server酱 / 企业微信 / PushPlus 启用推送。
### 4. 初始化数据库并入库(首次)
```bash
cd backend
source .venv/bin/activate # WSL / Linux
# 建库建表
python cli.py init
# 抓取当日板块/资金流/情绪/龙虎榜等快照
python cli.py ingest
# 全市场日线历史入库(默认 250 交易日,耗时较长,可选)
python cli.py ingest_all
python cli.py ingest_all 500 # 指定天数
```
指定股票入库:
```bash
python cli.py ingest 600519 000001
```
### 5. 启动服务
**日常启动WSL**
```bash
sudo service postgresql start
cd /mnt/e/project/stock_cs_v1/backend # 按实际路径修改
source .venv/bin/activate
python main.py
```
一键命令(已配置好后):
```bash
sudo service postgresql start && cd /mnt/e/project/stock_cs_v1/backend && source .venv/bin/activate && python main.py
```
浏览器访问:**http://127.0.0.1:8000**WSL2 下 Windows 浏览器可直接访问)
健康检查:`GET /api/health`
### 常见问题WSL
| 现象 | 处理 |
|---|---|
| `connection refused` | 执行 `sudo service postgresql start` |
| `password authentication failed` | 检查 `.env``PG_PASSWORD` 是否与 `ALTER USER` 设置一致 |
| `python: command not found` | 使用 `python3` |
| 每次新开终端 | 先 `source .venv/bin/activate` 再运行命令 |
## 定时任务
服务启动后APScheduler 会在工作日自动执行(可在 `config.py` 或环境变量中调整时间):
| 任务 | 默认时间 | 说明 |
|---|---|---|
| `daily_ingest` | 15:35 | 收盘后增量入库(板块/资金/情绪/龙虎榜/个股行情) |
| `alert_check` | 每 60 秒 | 实时报价预警核查(价格/涨跌幅/量能等规则) |
| `intraday_scan` | 交易时段每 5 分钟 | 盘中异动扫描(快速拉升/放量突破/涨停打开/连板追踪) |
| `daily_report` | 15:45 | 生成 AI 复盘日报并推送(需配置大模型 API |
| `verify_pred` | 15:50 | 核验到期 AI 预测,更新准确率统计 |
| `signal_stats` | 周六 09:00 | 全市场信号胜率回测MACD 金叉/突破等技术信号) |
| `selector_check` | 15:40 | 选股策略预警检查,符合条件时推送 |
## 推送渠道
`.env` 中配置任意一种即可启用,互不依赖:
| 渠道 | 配置项 |
|---|---|
| SMTP 邮件 | `SMTP_HOST` / `SMTP_PORT` / `SMTP_USER` / `SMTP_PASSWORD` / `SMTP_TO` |
| Server酱 | `SERVERCHAN_KEY` |
| 企业微信 | `WECOM_WEBHOOK` |
| PushPlus | `PUSHPLUS_TOKEN` |
## 开发说明
- 前端静态资源由 `main.py` 挂载 `prototype/` 目录,修改前端后刷新浏览器即可。
- 自选股列表持久化在 `backend/watchlist.json`
- AkShare 不可用时部分接口会降级为 mock 数据,详见 `/api/health` 中的 `akshare` 字段。
- 敏感文件(`.env`、虚拟环境等)已在 `.gitignore` 中排除,请勿提交密钥。
## 核心功能说明
### 1. 智能选股增强
可视化条件组合器,支持技术面、资金面、基本面多因子拖拽组合,选股结果可一键回测验证历史表现,策略可保存/分享并设置条件预警。详见 [智能选股增强使用说明.md](./智能选股增强使用说明.md)
### 2. 盘中异动雷达
交易时段自动扫描快速拉升、放量突破、涨停打开、连板股等异动信号,支持多通道实时推送。详见 [盘中异动雷达使用说明.md](./盘中异动雷达使用说明.md)
### 3. 板块轮动分析
板块强弱趋势、资金流向桑基图、生命周期判断(启动期/加速期/衰退期)、龙头股自动识别、板块联动性分析。详见 [板块轮动分析使用说明.md](./板块轮动分析使用说明.md)
### 4. 策略回测增强
多因子组合回测、仓位管理策略、参数优化网格搜索、策略对比(并排净值曲线)、完整风险指标(夏普/最大回撤/胜率)。详见 [策略回测增强使用说明.md](./策略回测增强使用说明.md)
### 5. 持仓归因分析
收益归因分解(选股能力 vs 择时能力 vs 运气成分)、持仓时长分析、买入理由有效性验证、情绪标签相关性、对标指数超额收益拆解。详见 [持仓归因分析深化使用说明.md](./持仓归因分析深化使用说明.md)
### 6. AI 对话式分析
与大模型深度结合,支持自然语言选股、持仓诊断、策略建议、实时问答,多轮对话记住用户偏好。详见 [AI对话式分析使用说明.md](./AI对话式分析使用说明.md)
### 7. 社区情绪监控
爬取东方财富/雪球热帖,计算情绪指数(乐观/悲观比例)、热议股票排行、关键词云图、情绪与股价相关性回测。详见 [社区情绪监控使用说明.md](./社区情绪监控使用说明.md)
### 8. 事件驱动策略
财报发布前后统计规律、高管增减持跟踪、限售解禁影响分析、行业政策事件库、事件驱动选股。详见 [事件驱动策略使用说明.md](./事件驱动策略使用说明.md)
### 9. 财报深度解读
财报关键指标趋势、AI 一句话摘要、同行对比、财报异常预警(存货激增/应收账款占比过高)、发布日历提醒。详见 [财报深度解读使用说明.md](./财报深度解读使用说明.md)
## 文档
- [架构总结.md](./架构总结.md) — 分层设计、数据模型、AI 分析流程
- [功能架构.md](./功能架构.md) — 功能模块详细说明
- [待优化.md](./待优化.md) — 已知问题与优化方向
- [功能扩展.md](./功能扩展.md) — 扩展功能建议
## 许可证
本项目仅供学习与研究使用。行情数据来源于第三方公开接口,请遵守相应数据源的使用条款。