一、项目概述

1.1

        本项目基于Python,Streamlit开发的一款轻量化、高交互性的股票行业分析系统,重点实现市场总览、申万行业分类分析及国防军工行业深度量化分析功能。

1.2项目目标:

        构建可视化交互界面、支持市场核心指数(沪深300、上证A股、深证A股)走势展示与日期区间筛选;实现申万一级行业财务数据(营业收入、营业利润)统计分析与增长率可视化;针对国防军工行业,完成指数走势、个股表现、PCA综合评价及收益率对比分析;设计量化投资策略,结合技术指标与机器学习模型预测股票涨跌趋势,提供投资决策参考。

二、系统构建

2.1 数据加载模块

  • 使用pd.read_excel加载申万行业分类数据
  • 实现日期范围选择功能(2022-2025年)
  • 包含通用指数数据加载函数load_index_data,支持日期格

2.2 可视化模块:Matplotlip

  • 配置Matplotlib中文字体显示
  • 展示子图(如沪深300复权交易指数走势图)

2.3 交互设计:Streamlit

  • 侧边栏行业选择下拉菜单
  • 日期筛选
  • 结果展示

2.4 数据集

三、核心模块

3.1 环境配置与核心配置

3.2 主函数 st_fig()

3.3 市场总览模块

3.3.1 指数数据读取函数 load_index_data()

3.3.2 行业数据加载函数 load_industry_data()

3.4 国防军工行业分析模块

3.4.1 基础数据读取函数 st_data() 

3.4.2 PCA分析函数 Fr()

3.4.3 收益率计算函数 calculate_hs300_return()

3.4.4 复权数据读取函数 read_real_hfq_data()

四、技术亮点

4.1 交互式可视化设计

  1. 多子图布局:采用 1×3、3×2 等多种子图布局,提升数据展示效率
  2. 专业配色:使用金融行业常用的配色方案,增强视觉体验
  3. 动态交互:通过日期选择器、下拉框等组件实现数据的动态筛选

4.2 数据处理最佳实践

  1. 缓存机制:使用@st.cache_data减少重复数据加载
  2. 异常处理:全覆盖的 try-except 块,保证程序健壮性
  3. 数据标准化:使用 StandardScaler 消除量纲影响
  4. 缺失值处理:合理的缺失值过滤和填充策略

4.3 量化分析模块

  1. PCA 综合评价:基于主成分分析的股票综合评分模型
  2. 收益率计算:支持复权数据的收益率计算
  3. 量化策略回测:实现简单的量化投资策略设计与回测
  4. 技术指标计算:包含 MA、MACD、KDJ 等经典技术指标

五、页面展示

六、总结

该项目展示了如何使用 Streamlit 构建专业的金融数据分析系统,通过模块化的函数设计、完善的异常处理、专业的数据可视化,实现了从数据加载、清洗、分析到可视化的全流程。特别是针对国防军工行业的深度分析,结合了 PCA 降维、收益率计算、量化策略等量化分析技术,为金融数据分析提供了完整的解决方案。

项目的代码结构清晰,函数职责明确,是学习金融数据分析和 Streamlit 开发的优秀案例。通过对代码的深入理解和扩展,可以构建更加强大的金融分析系统。

七、视频

2

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐