自己开发的系统,纯属娱乐,全程使用openclaw开发调试。涵盖实时行情、智能选股、技术指标分析、七维预警系统、资产组合管理与操盘笔记等功能模块。开源仓库地址:https://github.com/sunclchina/stock-analysis,欢迎高手指正。

系统架构
┌──────────────────────────────────────────────────────────┐
│ 前端(React + Ant Design) │
│ ┌──────┐ ┌──────┐ ┌──────┐ ┌──────┐ ┌──────┐ ┌──────┐ │
│ │仪表盘│ │行情 │ │选股 │ │预警 │ │分析 │ │配置 │ │
│ └──────┘ └──────┘ └──────┘ └──────┘ └──────┘ └──────┘ │
│ WebSocket(实时推送) │
├──────────────────────────────────────────────────────────┤
│ FastAPI 后端(Python) │
│ ┌──────┐ ┌──────┐ ┌──────┐ ┌──────┐ ┌──────┐ ┌──────┐ │
│ │行情 │ │选股 │ │预警 │ │分析 │ │配置 │ │笔记 │ │
│ │API │ │引擎 │ │引擎 │ │引擎 │ │管理 │ │系统 │ │
│ └──────┘ └──────┘ └──────┘ └──────┘ └──────┘ └──────┘ │
│ SQLite 数据库 │
├──────────────────────────────────────────────────────────┤
│ 多源数据接入层 │
│ 新浪财经 ← 东方财富 ← AKShare ← Baostock+ ← 其他 │
│ (按模块优先级自动降级:主数据源失效时无缝切换) │
└──────────────────────────────────────────────────────────┘
设计原则:
- 前端开发(8080)+ 后端开发(8000)分离;Docker 单端口 8081 部署
- 多源按模块优先级自动降级
- 全异步 I/O,行情推送走 WebSocket
- 缓存分层:内存缓存 → SQLite 磁盘缓存 → 原始 API
- 无人使用时自动静默(无 WebSocket 连接且 10 分钟无 HTTP 请求则跳过行情轮询)
模块详解
仪表盘
系统首页,聚合关键信息的一站式概览。
- A股概况 — 沪市、深市、北交所、ETF 数量统计(按代码前缀归类)
- 决策参考 — 监控池个股量化评分、买卖建议、评分明细(趋势/动量/量价/风控)
- 实时行情监控 — 监控池股票涨跌分布(上涨/下跌数量)
- 自选股概览 — 自选股涨跌统计
- 资产管理 — 总资产、可用资金、仓位、收益统计
- 系统资源 — CPU、内存使用率、运行时长
实时行情
A股全市场实时行情查询与展示。
- 行情概览 — 沪深主要指数实时行情(含涨跌幅、成交额)+ 涨跌分布统计
- 行业TOP10 — 行业板块涨跌排行(自动降级:QQ Finance → akshare)
- 概念TOP10 — 概念板块涨跌排行(akshare)
- 个股详情 — 分时图、K线图(支持多周期:日/周/月)、技术指标(MA/MACD/KDJ/RSI)
全球指数/行业(MarketExt)
- 全球指数 — 主要国际指数(美/欧/亚)、商品/外汇行情
- 行业排名 — A股行业板块涨幅排名
- 个股资金流向 — 个股主力资金流入流出排名
智能选股
多策略选股引擎,支持固定规则与指标选股。
① 固定规则选股 内置预定义策略,一键执行:
| 策略 | 说明 |
|---|---|
| 稳健趋势 | 均线多头 + 成交量配合 |
| 反转突破 | 底部放量 + 突破关键阻力 |
| 短线强势 | 近期涨幅 + 高换手率 |
筛选结果包含评分(趋势强度、风险评分、财务等级、综合得分)和操作建议。
② 指标选股(自然语言) 通过东方财富选股器,使用自然语言描述筛选条件:
MACD金叉、连续3年ROE大于15%、PE小于20- 热门策略可保存/管理,支持模糊搜索
③ 形态选股 技术形态识别筛选(K线形态、量价关系等),支持自定义形态参数。
④ 自定义指标选股 四大维度组合筛选:
| 维度 | 可配置指标 |
|---|---|
| 技术面 | MA排列(多头/空头/纠缠)、MACD状态、RSI、布林带位置、量比、换手率 |
| 基本面 | ROE、ROE同比增长、资产负债率、PE/PB、毛利率、经营现金流 |
| 共振维度 | 资金共振、多周期共振 |
| 盘面范围 | 行业选择、成交额区间、市值区间 |
研究中心
个股研究报告、公司公告、盘前提示、涨停梯队等数据的集中查阅中心。
| 标签页 | 功能 |
|---|---|
| 个股研报 | 券商研究报告摘要 |
| 公司公告 | 上市公司公告查阅 |
| 行业研究 | 行业研究报告 |
| 盘前提示 | AI 生成盘前市场预测 |
| 涨停梯队 | 涨停梯队(连板数统计)、跌停梯队 |
| 风险监控 | ST/负面事件股票监控 |
| 快讯公告 | 实时新闻快讯 |
智能分析
AI 驱动的个股深度分析(需配置 DEEPSEEK_API_KEY)。
- 个股研报 — 多维度的股票研究报告
- 股吧/新闻情绪分析 — 自然语言处理舆情数据
- 技术面综合研判 — K线形态识别、技术指标综合分析
- 基本面分析 — 财务数据解读、估值分析
- 智能分析结论 — 综合生成买入/持有/卖出建议
智能预警
七维预警系统,多维度监控持仓/自选股异动。
| 维度 | 说明 | 示例 |
|---|---|---|
| 价格预警 | 价格突破/跌破关键位 | 跌穿MA20、突破前期高点 |
| 涨跌预警 | 单日涨跌幅异常 | 单日涨幅>7%、跌幅>5% |
| 趋势预警 | 趋势形态识别 | MACD金叉/死叉、均线多头/空头排列 |
| 共振预警 | 多维度信号共振 | 技术+资金+事件三重共振 |
| 财务预警 | 财务数据异常 | ROE骤降、资产负债率突变 |
| 事件预警 | 负面事件检测 | 减持公告、监管问询、立案调查 |
| 风险预警 | 综合风险评估 | 质押强平、债务违约、欺诈识别 |
- 监控池管理(添加/移除监控标的)
- 预警记录列表(按类型/时间/级别筛选)
- 综合决策矩阵(多维度信号聚合展示,量化评分)
- WebSocket 实时推送预警
资产组合
投资组合管理与绩效跟踪(功能实现中,后端 API 就绪,前端展示中)。
- 创建/管理多个投资组合
- 记录买入/卖出交易
- 持仓市值、盈亏统计
- 收益率曲线、绩效指标
操盘笔记
个人交易笔记系统,记录交易思路和复盘内容。
- 创建/编辑/删除笔记
- 关联股票代码
- 标签分类(逗号分隔)
- 关键词搜索
- 置顶功能
- 分页浏览
系统配置
系统的集中配置管理中心。
| 配置页 | 功能 |
|---|---|
| 个人资料 | 修改昵称、密码 |
| 自选股管理 | 添加/删除自选股,从通达信导入、从选股结果导入 |
| 监控池管理 | 管理预警监控标的 |
| 数据源管理 | 查看数据源状态、连接测试、手动切换主力/备用源 |
| 偏好设置 | 主题切换(暗色/亮色)、东财选股器标识(qgqp_b_id)、预警声音开关 |
| 模板管理 | 管理智能分析报告模板、选股结果模板 |
| 系统状态 | 后端运行状态、数据库健康检查 |
| 自定义数据源 | 添加第三方数据源(预留) |
用户管理
用户管理功能(仅管理员角色可见)。
- 用户列表与搜索
- 用户角色管理(普通用户/管理员)
- 用户启/禁用
数据源系统
系统内置多层数据源,按模块配置独立优先级顺序,自动降级。
数据源架构
外部数据源(网络 API)
├── 东方财富 (eastmoney) — 主力行情/基本面/选股器
├── 新浪财经 (sina) — 备用行情/全市场代码
├── AkShare — 概念板块/资金流/ETF/补充数据
├── Baostock — 历史K线/分钟线(本地环境兼容)
└── 通达信本地 (tdx_local) — 本地缓存文件解析(需配置,Docker 环境禁用)
内部数据缓存
├── 内存缓存 — 6小时 TTL,减少重复请求
└── SQLite 磁盘缓存 — kline_cache 等
模块优先级
每个模块有独立的数据源优先级顺序:
| 模块 | 优先顺序 |
|---|---|
| 市场行情 | sina → eastmoney → baostock |
| K线数据 | baostock → eastmoney → sina |
| 板块涨跌 | akshare → eastmoney |
| 涨停股池 | akshare → eastmoney |
| 北向资金 | akshare |
| 盘前数据 | eastmoney → sina |
| 智能选股池 | tdx_local → sina → eastmoney |
| 预警行情 | eastmoney → sina → tdx_local |
| 选股基本面 | akshare |
| 股票名称查询 | eastmoney → sina → tdx_local |
主数据源连续失败自动切换至下一优先级源,主源恢复后自动切回。
开发环境启动
前提条件
| 组件 | 最低版本 |
|---|---|
| Python | 3.10+ |
| Node.js | 18+ |
1. 配置环境变量
# 从模板创建(项目根目录)
cp .env.example .env
.env唯一配置文件位于项目根目录,后端自动从根目录读取。
2. 启动后端
cd dev-team\backend-dev\stock-analysis-backend
pip install -r requirements.txt
python -m uvicorn backend.main:app --host 0.0.0.0 --port 8000 --reload
3. 启动前端(开发模式)
cd dev-team\frontend-dev\stock-analysis-frontend
npm install
npx vite --port 8080 --host
4. 一键启动(开发环境)
# 后端 + 前端同时启动
.\dev-team\devops\start-all.ps1
环境配置(部署前必读)
⚠️ 必须配置的项
| 优先级 | 配置项 | 说明 | 不配的后果 | 获取方式 |
|---|---|---|---|---|
| 🔴 必须 | JWT_SECRET | JWT 签名密钥 | Token 可被伪造,安全风险 | python -c "import secrets; print(secrets.token_hex(32))" 生成 |
| 🟡 推荐 | DEEPSEEK_API_KEY | DeepSeek AI 密钥 | AI 智能分析不可用,核心功能不受影响 | DeepSeek 开放平台 |
| 🟡 推荐 | DEFAULT_ADMIN_PASSWORD | 管理员密码 | 默认弱密码,安全风险 | 自行设置 |
编辑项目根目录下的
.env文件完成配置,编辑后重启服务生效。
其他配置项
| 配置项 | 默认值 | 说明 |
|---|---|---|
BACKEND_PORT | 8081 | 后端端口(Docker 默认 8081,开发环境可覆盖为 8000) |
PRIMARY_DATA_SOURCE | eastmoney | 主力数据源 |
FALLBACK_DATA_SOURCE | sina | 备用数据源 |
TDX_ENABLED | false | 是否启用通达信本地数据源(Docker 环境默认关闭) |
CORS_ORIGINS | ["http://localhost:8000"] | 跨域白名单(开发前端 8080 时需改为 8080) |
LOG_LEVEL | INFO | 日志级别(可选 DEBUG/INFO/WARNING/ERROR) |
Docker 构建与部署
构建镜像
# 从仓库根目录构建
docker build -t stock-analysis -f Dockerfile .
# 或使用 docker-compose
docker compose up -d
运行容器
docker run -d --name stock-analysis \
-p 8081:8081 \
-v /path/to/.env:/app/.env \
-v /path/to/data:/app/data \
stock-analysis
端口说明:Docker 版本使用 8081 端口(避开 8080 常见端口冲突)。 开发环境:前端 8080 + 后端 8000 分离运行。
数据卷挂载
# 持久化数据(数据库、缓存、笔记等)
-v /host/data/path:/app/data
# 配置文件
-v /host/path/.env:/app/.env
未挂载数据卷时,数据存储在容器临时文件系统中,容器删除后丢失。

