Add README with setup, config, and usage guide.
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
154
README.md
Normal file
154
README.md
Normal file
@@ -0,0 +1,154 @@
|
|||||||
|
# 智策 StockTerminal
|
||||||
|
|
||||||
|
个人/小团队 A 股分析·复盘·智能辅助系统。后端提供行情、回测、AI 诊断与定时任务;前端为纯 HTML + ECharts 原型界面,由 FastAPI 统一托管。
|
||||||
|
|
||||||
|
## 功能概览
|
||||||
|
|
||||||
|
| 模块 | 能力 |
|
||||||
|
|---|---|
|
||||||
|
| 大盘行情 | 三大指数、情绪温度计、板块云图、热股榜、龙虎榜 |
|
||||||
|
| 自选股 | 自选列表、内置策略选股、多因子条件过滤 |
|
||||||
|
| 复盘中心 | 每日复盘、AI 七段式日报、个股 K 线回放 |
|
||||||
|
| 策略与中台 | MA 交叉回测、数据入库状态、任务日志 |
|
||||||
|
| AI 分析 | 个股诊断(6 维证据链)、信号胜率、预测留痕与核验 |
|
||||||
|
| 组合交易 | 持仓 P&L、资金曲线、交易日志、盈亏归因 |
|
||||||
|
| 智能预警 | 价格/涨跌幅规则、多通道推送、触发记录 |
|
||||||
|
| 资讯中心 | 财经快讯、情绪标注、自选相关资讯 |
|
||||||
|
|
||||||
|
更完整的架构说明见 [架构总结.md](./架构总结.md)。
|
||||||
|
|
||||||
|
## 技术栈
|
||||||
|
|
||||||
|
- **前端**:HTML + CSS + 原生 JS,ECharts 5(CDN)
|
||||||
|
- **后端**: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) — 功能模块说明
|
||||||
|
|
||||||
|
## 许可证
|
||||||
|
|
||||||
|
本项目仅供学习与研究使用。行情数据来源于第三方公开接口,请遵守相应数据源的使用条款。
|
||||||
Reference in New Issue
Block a user