基于 Flask 的股票预测管理系统

最近完成了一个股票分析预测系统,今天来分享一下这个项目的设计思路和实现细节。

cover

项目背景

作为一个对金融市场和编程都感兴趣的人,一直想做一个能够自动分析股票、预测走势的工具。经过一段时间的学习和实践,终于完成了这个 Stock Prediction Management System

项目地址:https://spms.riordon.xyz

核心功能

1. 实时快讯首页

首页集成了实时财经快讯功能:

  • 时间线展示:默认显示近2天的快讯,最多支持500条
  • 智能过滤:支持按关键词筛选重要快讯
  • 自动刷新:每5分钟自动更新数据
  • 底部滚动:最新3条快讯无缝循环滚动
  • 今日热榜:集成 TopHub 热榜数据

2. 股票分析模块

分析页面提供了丰富的技术分析功能:

  • 价格趋势:收盘价折线图 + MA5/MA20/MA60 均线
  • 技术指标:RSI 相对强弱指数、MACD 指标(含 Signal 线和 Histogram)
  • 成交量分析:柱状图 + 20日均量线
  • 支撑压力位:自动计算并标注关键价位
  • 雷达图评分:多维度综合评分可视化
  • AI 分析报告:智能生成分析报告

3. 股票预测模块

这是项目最核心的功能:

  • 使用 GRU(门控循环单元) 模型进行预测
  • 支持预测未来 10/20/30 天的走势
  • 可视化展示历史数据与预测结果的对比

技术架构

后端技术

Flask          # Web 框架
pandas         # 数据处理
numpy          # 数值计算
TensorFlow     # GRU 模型训练与推理

数据源

项目采用了多数据源故障转移机制:

  • akshare:主要数据源,数据丰富且更新及时
  • baostock:备用数据源,当主数据源不可用时自动切换

前端图表

使用 ApexCharts 通过 CDN 引入,支持:

  • 响应式图表
  • 交互式缩放
  • 多种图表类型

项目结构

Stock Prediction Management System/
├─ app/
│  ├─ web/           # Web 服务层
│  ├─ core/          # 核心业务逻辑
│  └─ adapters/      # 数据源适配器
├─ data/             # 数据存储
├─ forecasting/      # 预测模型
└─ run.py            # 启动入口

GRU 模型训练

模型训练脚本位于 forecasting/train_gru.py,主要步骤:

  1. 获取历史股票数据
  2. 数据预处理与归一化
  3. 构建 GRU 网络结构
  4. 训练并保存模型权重

训练完成后,预测接口会自动加载模型进行推理。

部署说明

项目支持通过环境变量配置:

PORT=8888
LOG_LEVEL=INFO
LOG_FILE=data/logs/server.log

启动命令:

python run.py

免责声明

本系统仅用于学习研究目的,不构成任何投资建议。股票市场存在风险,预测结果仅供参考。


如果你对这个项目感兴趣,欢迎访问 https://spms.riordon.xyz 体验,也欢迎交流讨论!