智策 StockTerminal

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

功能概览

模块 能力
大盘行情 三大指数、情绪温度计、板块云图、热股榜、龙虎榜
自选股 自选列表、内置策略选股、多因子条件过滤
复盘中心 每日复盘、AI 七段式日报、个股 K 线回放
策略与中台 MA 交叉回测、数据入库状态、任务日志
AI 分析 个股诊断6 维证据链)、信号胜率、预测留痕与核验
组合交易 持仓 P&L、资金曲线、交易日志、盈亏归因
智能预警 价格/涨跌幅规则、多通道推送、触发记录
资讯中心 财经快讯、情绪标注、自选相关资讯

更完整的架构说明见 架构总结.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         # 建库 / 入库命令行工具
│   ├── .env.example   # 环境变量模板
│   └── requirements.txt
├── prototype/         # 前端原型index.html / app.js / style.css
├── 架构总结.md
└── 功能架构.md

环境要求

  • Python 3.12+
  • PostgreSQL 14+(本地或远程均可)
  • 可选:大模型 API Key、推送渠道密钥见下方配置

快速开始

1. 安装依赖

cd backend
python -m venv .venv

# Windows
.venv\Scripts\activate

# Linux / macOS
source .venv/bin/activate

pip install -r requirements.txt

2. 配置环境变量

cp .env.example .env

编辑 backend/.env,至少确认 PostgreSQL 连接信息(也可通过环境变量 PG_USER / PG_PASSWORD / PG_HOST / PG_PORT / PG_DB 设置):

PG_USER=postgres
PG_PASSWORD=your_password
PG_HOST=localhost
PG_PORT=5432
PG_DB=stock_cs

可选:填入 LLM_API_KEY 启用大模型分析;填入 SMTP / Server酱 / 企业微信 / PushPlus 启用推送。

3. 初始化数据库并入库

cd backend

# 建库建表
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

4. 启动服务

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 中排除,请勿提交密钥。

文档

许可证

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

Description
No description provided
Readme 530 KiB
Languages
Python 95.7%
CSS 3.1%
Shell 0.7%
HTML 0.5%