# stock_model_decast **Repository Path**: mortal350/stock_model_decast ## Basic Information - **Project Name**: stock_model_decast - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-07-08 - **Last Updated**: 2026-07-08 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 基于LSTM神经网络的股票行情趋势智能预测系统 ## 项目简介 本系统使用LSTM(长短期记忆网络)神经网络对股票价格进行预测。核心预测思路是:**使用前n天的收盘价(close)数据预测第n+1天的收盘价**。 ## 技术栈 | 模块 | 技术 | |------|------| | 前端 | Vue 3 + Element Plus + ECharts | | 后端 | Spring Boot 3.x + MyBatis + MySQL | | 预测 | TensorFlow + LSTM + baostock | | 数据库 | MySQL 8.0 (Docker) | ## 项目结构 ``` stock_project/ ├── frontend/ # Vue前端 │ ├── src/ │ │ ├── api/ # API请求 │ │ ├── views/ # 页面组件 │ │ ├── stores/ # Pinia状态管理 │ │ └── router/ # 路由配置 │ └── package.json │ ├── backend/ # Spring Boot后端 │ ├── src/main/java/com/stock/ │ │ ├── controller/ # 控制器 │ │ ├── service/ # 服务层 │ │ ├── mapper/ # MyBatis Mapper │ │ ├── entity/ # 实体类 │ │ └── config/ # 配置类 │ └── pom.xml │ ├── python/ # Python预测模块 │ ├── fetch_data.py # 数据爬取 │ ├── train_model.py # 模型训练 │ ├── api/ # Flask API │ ├── data/ # 股票数据 │ └── models/ # 训练好的模型 │ └── stock.sql # 数据库脚本 ``` ## 快速开始 ### 1. 启动MySQL数据库 ```bash # 启动MySQL容器 docker start stock-mysql # 或创建新容器 docker run -d --name stock-mysql -e MYSQL_ROOT_PASSWORD=root -e MYSQL_DATABASE=stock -p 3307:3306 mysql:8.0 # 导入SQL docker exec -i stock-mysql mysql -uroot -proot stock < stock.sql ``` ### 2. 启动Python预测服务 ```bash # 激活环境 conda activate tensorflow # 爬取数据(首次) python fetch_data.py # 训练模型(首次) python train_model.py # 启动API服务 python api/predict_api.py ``` ### 3. 启动Spring Boot后端 ```bash cd backend mvn spring-boot:run ``` ### 4. 启动Vue前端 ```bash cd frontend npm run dev ``` ## 模型说明 ### 预测思路 使用**前30天的收盘价(close)**预测**第31天的收盘价(close)**。 ``` 输入: [day1_close, day2_close, ..., day30_close] 输出: day31_close ``` ### 模型架构 ``` LSTM(64 units) → Dropout(0.2) LSTM(32 units) → Dropout(0.2) Dense(16, relu) Dense(1) ``` ### 训练结果 | 指标 | 值 | |------|-----| | MSE | 256.32 | | RMSE | 16.01 | | MAE | 94.48 | | R² | 0.8191 | | MAPE | 8.49% | | 方向准确率 | 55.56% | ### 预测示例 ``` 当前价格: ¥1389.55 预测未来5天: - 2026-07-09: ¥1365.14 - 2026-07-10: ¥1361.07 - 2026-07-11: ¥1355.58 - 2026-07-12: ¥1349.30 - 2026-07-13: ¥1342.32 ``` ## API接口 ### 预测接口 **POST** `http://localhost:5000/api/predict` ```json { "stock_code": "sh.688256", "stock_name": "寒武纪", "days": 5 } ``` ### 响应 ```json { "code": 200, "data": { "stock_code": "sh.688256", "stock_name": "寒武纪", "current_price": 1389.55, "predictions": [ {"date": "2026-07-09", "price": 1365.14}, {"date": "2026-07-10", "price": 1361.07}, ... ], "predict_time": "2026-07-08 16:30:00" } } ``` ## 账号信息 | 服务 | 账号 | 密码 | |------|------|------| | 系统登录 | admin | 123456 | | MySQL | root | root | ## 访问地址 | 服务 | 地址 | |------|------| | 前端 | http://localhost:5173 | | 后端 | http://localhost:8080 | | Python API | http://localhost:5000 | | MySQL | localhost:3307 |