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

12 KiB
Raw Blame History

Blackdata StockTerminal

个人/小团队 A 股分析·复盘·智能专业分析系统。后端提供行情、回测、AI 诊断与定时任务;前端为纯 HTML + ECharts 原型界面,由 FastAPI 统一托管。

功能概览

模块 能力
大盘行情 三大指数、情绪温度计、板块云图、热股榜、龙虎榜、涨跌停统计
盘中监控 异动雷达(快速拉升/放量突破/涨停打开/连板追踪/大单异动)、实时扫描与推送
自选股 自选列表、分组管理、内置 8 种策略选股、多因子条件过滤
智能选股 可视化条件组合器、选股策略保存/分享、选股结果回测验证、条件预警集成
复盘中心 每日复盘(板块/资金/龙虎榜、AI 七段式日报、个股 K 线回放MA 买卖点标注)
策略回测 MA 交叉/多因子策略回测、参数优化网格搜索、策略对比(并排净值曲线)、交易明细导出
板块轮动 板块强弱趋势、资金流向桑基图、龙头股识别、生命周期判断、板块联动性分析
AI 分析 个股诊断6 维证据链、AI 对话式分析、信号历史胜率、预测留痕与准确率核验
组合交易 持仓 P&L、资金曲线、交易日志理由/情绪标签)、持仓归因分析(选股/择时/运气分解)
智能预警 价格/涨跌幅/量能/技术信号规则、选股策略预警、多通道推送(邮件/微信/企微)、触发记录
资讯中心 财经快讯、AI 情绪判断与摘要、自选股相关资讯、关联个股分析
社区情绪 热帖采集(东方财富/雪球)、情绪指数计算、热议股票排行、关键词云图、情绪与股价相关性
事件驱动 财报发布前后规律、高管增减持跟踪、限售解禁影响、行业政策事件库、事件驱动选股
财报解读 关键指标趋势、AI 财报摘要、同行对比、财报异常预警、发布日历、排行榜
涨跌停分析 涨停/跌停股票追踪、连板股监控、炸板率统计、涨停敢死队排行
数据中台 数据入库状态、任务日志、全市场历史回填、定时调度监控

更完整的架构说明见 架构总结.md

技术栈

  • 前端HTML + CSS + 原生 JSECharts 5CDN
  • 后端Python 3.12 · FastAPI · uvicorn
  • 数据库PostgreSQL · SQLAlchemy 2.0
  • 数据源AkShare行情/情绪/资讯Sina 实时报价
  • 调度APScheduler
  • AIOpenAI 兼容接口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首次

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 每次重启后若数据库未自动运行,需先执行:

sudo service postgresql start

2. 安装 Python 依赖(首次)

cd /mnt/e/project/stock_cs_v1/backend   # 按实际路径修改
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt

Windows 原生(非 WSL 激活虚拟环境:

cd backend
python -m venv .venv
.venv\Scripts\activate
pip install -r requirements.txt

3. 配置环境变量

cd backend
cp .env.example .env

编辑 backend/.env,至少确认 PostgreSQL 连接信息PostgreSQL 装在 WSL 内时使用 localhost

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. 初始化数据库并入库(首次)

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   # 指定天数

指定股票入库:

python cli.py ingest 600519 000001

5. 启动服务

日常启动WSL

sudo service postgresql start
cd /mnt/e/project/stock_cs_v1/backend   # 按实际路径修改
source .venv/bin/activate
python main.py

一键命令(已配置好后):

sudo service postgresql start && cd /mnt/e/project/stock_cs_v1/backend && source .venv/bin/activate && python main.py

浏览器访问:http://127.0.0.1:8000WSL2 下 Windows 浏览器可直接访问)

健康检查:GET /api/health

常见问题WSL

现象 处理
connection refused 执行 sudo service postgresql start
password authentication failed 检查 .envPG_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

2. 盘中异动雷达

交易时段自动扫描快速拉升、放量突破、涨停打开、连板股等异动信号,支持多通道实时推送。详见 盘中异动雷达使用说明.md

3. 板块轮动分析

板块强弱趋势、资金流向桑基图、生命周期判断(启动期/加速期/衰退期)、龙头股自动识别、板块联动性分析。详见 板块轮动分析使用说明.md

4. 策略回测增强

多因子组合回测、仓位管理策略、参数优化网格搜索、策略对比(并排净值曲线)、完整风险指标(夏普/最大回撤/胜率)。详见 策略回测增强使用说明.md

5. 持仓归因分析

收益归因分解(选股能力 vs 择时能力 vs 运气成分)、持仓时长分析、买入理由有效性验证、情绪标签相关性、对标指数超额收益拆解。详见 持仓归因分析深化使用说明.md

6. AI 对话式分析

与大模型深度结合,支持自然语言选股、持仓诊断、策略建议、实时问答,多轮对话记住用户偏好。详见 AI对话式分析使用说明.md

7. 社区情绪监控

爬取东方财富/雪球热帖,计算情绪指数(乐观/悲观比例)、热议股票排行、关键词云图、情绪与股价相关性回测。详见 社区情绪监控使用说明.md

8. 事件驱动策略

财报发布前后统计规律、高管增减持跟踪、限售解禁影响分析、行业政策事件库、事件驱动选股。详见 事件驱动策略使用说明.md

9. 财报深度解读

财报关键指标趋势、AI 一句话摘要、同行对比、财报异常预警(存货激增/应收账款占比过高)、发布日历提醒。详见 财报深度解读使用说明.md

文档

许可证

本项目仅供学习与研究使用。行情数据来源于第三方公开接口,请遵守相应数据源的使用条款。