Files
stock_cursor_v0/README.md
2026-06-13 02:50:13 +08:00

155 lines
4.4 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.
# 智策 StockTerminal
个人/小团队 A 股分析·复盘·智能辅助系统。后端提供行情、回测、AI 诊断与定时任务;前端为纯 HTML + ECharts 原型界面,由 FastAPI 统一托管。
## 功能概览
| 模块 | 能力 |
|---|---|
| 大盘行情 | 三大指数、情绪温度计、板块云图、热股榜、龙虎榜 |
| 自选股 | 自选列表、内置策略选股、多因子条件过滤 |
| 复盘中心 | 每日复盘、AI 七段式日报、个股 K 线回放 |
| 策略与中台 | MA 交叉回测、数据入库状态、任务日志 |
| AI 分析 | 个股诊断6 维证据链)、信号胜率、预测留痕与核验 |
| 组合交易 | 持仓 P&L、资金曲线、交易日志、盈亏归因 |
| 智能预警 | 价格/涨跌幅规则、多通道推送、触发记录 |
| 资讯中心 | 财经快讯、情绪标注、自选相关资讯 |
更完整的架构说明见 [架构总结.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 # 建库 / 入库命令行工具
│ ├── .env.example # 环境变量模板
│ └── requirements.txt
├── prototype/ # 前端原型index.html / app.js / style.css
├── 架构总结.md
└── 功能架构.md
```
## 环境要求
- Python 3.12+
- PostgreSQL 14+(本地或远程均可)
- 可选:大模型 API Key、推送渠道密钥见下方配置
## 快速开始
### 1. 安装依赖
```bash
cd backend
python -m venv .venv
# Windows
.venv\Scripts\activate
# Linux / macOS
source .venv/bin/activate
pip install -r requirements.txt
```
### 2. 配置环境变量
```bash
cp .env.example .env
```
编辑 `backend/.env`,至少确认 PostgreSQL 连接信息(也可通过环境变量 `PG_USER` / `PG_PASSWORD` / `PG_HOST` / `PG_PORT` / `PG_DB` 设置):
```env
PG_USER=postgres
PG_PASSWORD=your_password
PG_HOST=localhost
PG_PORT=5432
PG_DB=stock_cs
```
可选:填入 `LLM_API_KEY` 启用大模型分析;填入 SMTP / Server酱 / 企业微信 / PushPlus 启用推送。
### 3. 初始化数据库并入库
```bash
cd backend
# 建库建表
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
```
### 4. 启动服务
```bash
cd backend
python main.py
```
浏览器访问:**http://127.0.0.1:8000**
健康检查:`GET /api/health`
## 定时任务
服务启动后APScheduler 会在工作日自动执行(可在 `config.py` 或环境变量中调整时间):
| 任务 | 默认时间 | 说明 |
|---|---|---|
| `daily_ingest` | 15:35 | 收盘后增量入库 |
| `alert_check` | 每 60 秒 | 实时报价预警核查 |
| `daily_report` | 15:45 | 生成 AI 复盘日报并推送 |
| `verify_pred` | 15:50 | 核验到期 AI 预测 |
| `signal_stats` | 周六 09:00 | 全市场信号胜率回测 |
## 推送渠道
`.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` 中排除,请勿提交密钥。
## 文档
- [架构总结.md](./架构总结.md) — 分层设计、数据模型、AI 分析流程
- [功能架构.md](./功能架构.md) — 功能模块说明
## 许可证
本项目仅供学习与研究使用。行情数据来源于第三方公开接口,请遵守相应数据源的使用条款。