Skip to content

Latest commit

 

History

History
605 lines (497 loc) · 24.8 KB

File metadata and controls

605 lines (497 loc) · 24.8 KB

智能股票分析系统项目结构说明

这是一个基于Tushare数据源的专业股票筛选和分析系统,通过多维度技术指标分析和热点板块挖掘,实现智能选股和投资决策支持。本文档详细描述了系统的项目结构和架构设计。

🏗️ 总体架构

系统采用现代化的分层架构设计,具有以下特点:

  • 模块化设计:各功能模块职责清晰,松耦合
  • 可扩展性:支持新指标、新策略的快速接入
  • 高性能:多级缓存机制,支持大数据量处理
  • 用户友好:基于Streamlit的现代化Web界面

架构层次:

  • 核心层(Core):系统基础设施 - 配置管理、异常处理、日志记录
  • 数据层(Data):数据处理核心 - 数据模型、提供者、服务
  • 分析层(Analysis):智能分析引擎 - 技术指标、筛选策略、工作流
  • 用户界面层(UI):交互展示 - 页面组件、图表可视化
  • 工具层(Utils):辅助支持 - 缓存机制、性能监控、数据验证
  • 可视化层(Visualization):图表展示 - 专业金融图表和主题

📁 详细目录结构

to-share-pro_-analysis/
├── src/                                    # 主要源代码目录
│   ├── core/                              # 🏛️ 核心基础模块
│   │   ├── __init__.py                    # 核心模块统一接口和系统初始化
│   │   ├── config.py                      # 配置管理系统(支持多环境)
│   │   ├── constants.py                   # 系统常量和枚举定义
│   │   ├── exceptions.py                  # 异常定义和错误处理
│   │   └── logger.py                      # 结构化日志记录系统
│   ├── data/                              # 💾 数据处理层
│   │   ├── models/                        # 数据模型定义
│   │   │   ├── __init__.py
│   │   │   ├── concept.py                 # 概念板块数据模型
│   │   │   ├── market.py                  # 市场和指数数据模型
│   │   │   └── stock.py                   # 股票数据模型
│   │   ├── providers/                     # 数据提供者
│   │   │   ├── __init__.py
│   │   │   ├── base.py                    # 数据提供者抽象基类
│   │   │   ├── cache_provider.py          # 多级缓存提供者
│   │   │   └── tushare_provider.py        # Tushare API数据提供者
│   │   ├── services/                      # 高级数据服务
│   │   │   ├── __init__.py
│   │   │   ├── concept_cache_manager.py   # 概念数据缓存管理
│   │   │   ├── concept_service.py         # 概念板块服务(含限流)
│   │   │   ├── concept_service_rate_limit_methods.py # 限流方法
│   │   │   ├── optimized_concept_service.py # 优化的概念服务
│   │   │   ├── ths_concept_service.py     # 同花顺概念板块服务
│   │   │   └── stock_service.py           # 股票数据服务
│   │   └── __init__.py
│   ├── analysis/                          # 🧠 智能分析引擎
│   │   ├── engines/                       # 分析引擎
│   │   │   ├── __init__.py
│   │   │   └── refined_screening_engine.py # 精细化筛选引擎
│   │   ├── indicators/                    # 技术指标计算
│   │   │   ├── __init__.py                # 指标统一接口
│   │   │   ├── base.py                    # 指标基类和框架
│   │   │   ├── momentum.py                # 动量指标(RSI,MACD,KDJ等)
│   │   │   ├── trend.py                   # 趋势指标(MA,EMA,BOLL等)
│   │   │   ├── volume.py                  # 成交量指标
│   │   │   ├── chanlun.py                 # 缠论指标
│   │   │   └── __init__.py
│   │   ├── metrics/                       # 分析指标扩展
│   │   ├── services/                      # 分析服务
│   │   │   ├── __init__.py
│   │   │   ├── hot_sector_service.py      # 热点板块分析服务
│   │   │   ├── ths_technical_service.py   # 同花顺技术分析服务
│   │   │   ├── chanlun_analysis_service.py # 缠论分析服务
│   │   │   └── __init__.py
│   │   ├── strategies/                    # 投资策略
│   │   │   ├── __init__.py
│   │   │   ├── base.py                    # 策略基类和框架
│   │   │   ├── factory.py                 # 策略工厂模式
│   │   │   └── technical.py               # 技术分析策略
│   │   ├── workflows/                     # 分析工作流
│   │   │   ├── __init__.py
│   │   │   ├── data_structures.py         # 工作流数据结构
│   │   │   ├── multi_step_screening.py    # 多步筛选工作流
│   │   │   └── step_executor.py           # 步骤执行器
│   │   ├── hot_sector_analyzer.py         # 热点板块分析器
│   │   └── __init__.py
│   ├── ui/                                # 🖥️ 用户界面层
│   │   ├── components/                    # UI组件库
│   │   │   ├── __init__.py
│   │   │   ├── base.py                    # 基础UI组件
│   │   │   ├── log_display.py             # 日志显示组件
│   │   │   ├── stock.py                   # 股票相关UI组件
│   │   │   └── ths_technical_analysis.py  # 同花顺技术分析组件
│   │   ├── pages/                         # 应用页面
│   │   │   ├── __init__.py
│   │   │   ├── base.py                    # 页面基类
│   │   │   ├── decision_support.py        # 投资决策支持页面
│   │   │   ├── main_app.py                # 主应用页面(150KB+)
│   │   │   ├── main_app_refactored.py     # 重构的主应用页面
│   │   │   ├── stock.py                   # 股票分析页面
│   │   │   ├── ths_analysis_page.py       # 同花顺分析页面
│   │   │   └── workflow_page.py           # 工作流页面
│   │   └── __init__.py
│   ├── utils/                             # 🔧 工具支持层
│   │   ├── cache/                         # 缓存工具
│   │   │   ├── __init__.py
│   │   │   └── cache.py                   # 高级缓存管理
│   │   ├── helpers/                       # 辅助工具
│   │   │   ├── __init__.py
│   │   │   ├── common.py                  # 通用辅助函数
│   │   │   └── stock.py                   # 股票专用工具
│   │   ├── performance/                   # 性能监控
│   │   │   ├── __init__.py
│   │   │   └── time_estimator.py          # 时间估算和性能监控
│   │   ├── validators/                    # 数据验证
│   │   │   ├── __init__.py
│   │   │   └── validator.py               # 数据验证器
│   │   └── __init__.py
│   ├── visualization/                     # 📊 可视化模块(预留)
│   │   ├── charts/                        # 图表组件(空)
│   │   └── themes/                        # 主题配置(空)
│   └── __init__.py
├── tests/                                 # 🧪 测试体系
│   ├── unit/                             # 单元测试
│   │   ├── __init__.py
│   │   └── test_core.py                   # 核心模块测试
│   ├── integration/                       # 集成测试
│   │   ├── __init__.py
│   │   ├── test_fix.py                    # 系统修复测试
│   │   └── test_fix_ndarray_head.py       # 数组处理修复测试
│   ├── fixtures/                          # 测试数据
│   │   └── __init__.py
│   ├── 🧪 功能测试文件 (30+个)
│   │   ├── test_analysis_details.py       # 分析详情测试
│   │   ├── test_concept_analysis.py       # 概念分析测试
│   │   ├── test_hot_analysis.py           # 热点分析测试
│   │   ├── test_performance_optimization.py # 性能优化测试
│   │   ├── test_tushare_connection.py     # API连接测试
│   │   └── ... (更多专项测试文件)
│   ├── conftest.py                        # pytest全局配置
│   ├── README.md                          # 测试说明文档
│   └── run_tests.py                       # 测试运行脚本
├── cache/                                 # 📦 缓存数据目录 (16K+文件)
├── logs/                                  # 📋 日志文件目录
├── docs/                                  # 📚 文档目录
├── scripts/                               # 🔨 工具脚本目录
├── config/                                # ⚙️ 配置文件目录
├── 🚀 应用入口和脚本
│   ├── run_main_app.py                    # 主应用程序入口
│   ├── run_main_app_refactored.py         # 重构版主应用程序入口
│   ├── add_rate_limit_to_concept_service.py # API限流配置脚本
│   ├── check_service_version.py           # 服务版本检查
│   ├── debug_concept_service.py           # 概念服务调试
│   ├── fix_api_rate_limit.py              # API限流修复
│   └── quick_concept_check.py             # 快速概念检查
├── 📋 配置文件
│   ├── .env.example                       # 环境变量示例
│   └── pytest.ini                        # pytest配置
├── 📖 文档资料 (20+个文档)
│   ├── README.md                          # 项目主要说明
│   ├── DEVELOPER_GUIDE.md                 # 开发者指南
│   ├── FUNCTIONS_REFERENCE.md             # 函数参考手册
│   ├── README_MAIN_APP.md                 # 主应用说明
│   ├── 🔧 修复报告文档
│   │   ├── COMPREHENSIVE_FIX_ANALYSIS_REPORT.md
│   │   ├── PERFORMANCE_OPTIMIZATION_REPORT.md
│   │   ├── PLOTLY_CONFIG_FIX_REPORT.md
│   │   └── ... (更多修复报告)
│   └── project_structure.md               # 项目结构说明(本文件)
└── 🗃️ 版本控制
    └── .git/                              # Git版本控制

🏗️ 模块职责详解

1. 核心基础模块 (src/core/) 🏛️

职责概述:提供系统基础设施,确保系统稳定运行和配置管理

  • config.py (8.1KB)

    • 🔧 配置管理系统:支持多环境配置(开发/测试/生产)
    • 🔑 TuShare API配置:Token管理、超时设置、重试机制
    • 💾 缓存配置:内存缓存和磁盘缓存设置
    • 🎨 UI配置:界面布局、主题、样式配置
    • 📊 数据库配置:连接池、事务管理
  • constants.py (9.9KB)

    • 📏 枚举类型定义:数据源、市场类型、指标类型
    • 🎯 筛选参数:默认筛选条件、评分权重
    • 🌈 UI常量:颜色方案、图表配色、主题设置
    • 错误码定义:标准化错误处理机制
    • 时间常量:交易时间、缓存过期时间
  • exceptions.py (14.1KB)

    • 🚨 分层异常体系:基础异常、业务异常、技术异常
    • 🔍 智能错误处理:异常分类、错误恢复、日志记录
    • 🛠️ 异常工具函数:异常创建、包装、转换
  • logger.py (13.3KB)

    • 📝 结构化日志:JSON格式、分级记录、性能监控
    • 🏷️ 上下文过滤:请求追踪、用户会话、业务流程
    • 性能日志:函数执行时间、数据操作监控
    • 📊 业务事件记录:关键操作、决策过程、用户行为

2. 数据处理层 (src/data/) 💾

职责概述:构建统一的数据访问和处理平台

models/ - 数据模型定义

  • stock.py (11.4KB): 股票数据模型,包含价格、基本面、技术指标
  • concept.py (10.0KB): 概念板块模型,热点分析、成分股管理
  • market.py (11.7KB): 市场数据模型,指数、行业、宏观数据

providers/ - 数据提供者抽象

  • base.py (12.3KB): 数据提供者抽象基类,定义统一接口
  • tushare_provider.py (23.1KB): TuShare API集成,数据获取、错误处理
  • cache_provider.py (17.1KB): 多级缓存系统,内存+磁盘缓存

services/ - 高级数据服务

  • stock_service.py (18.0KB): 股票数据服务,技术分析、基本面分析
  • concept_service.py (32.6KB): 概念板块服务,热点挖掘、成分分析
  • optimized_concept_service.py (23.0KB): 优化的概念服务,性能提升
  • ths_concept_service.py (新增): 同花顺概念板块服务,提供更精准的板块数据
  • concept_cache_manager.py (6.3KB): 概念数据缓存管理
  • concept_service_rate_limit_methods.py (7.4KB): API限流控制

3. 智能分析引擎 (src/analysis/) 🧠

职责概述:提供专业的量化分析和投资策略支持

engines/ - 分析引擎核心

  • refined_screening_engine.py (15.5KB): 精细化筛选引擎,多维度评分

indicators/ - 技术指标体系

  • base.py (10.5KB): 指标计算框架,统一接口设计
  • trend.py (26.0KB): 趋势指标 - MA、EMA、BOLL、趋势判断
  • momentum.py (20.3KB): 动量指标 - RSI、MACD、KDJ、CCI
  • volume.py (11.1KB): 成交量指标 - 量比、OBV、价量配合
  • chanlun.py (新增): 缠论指标 - 分型、笔段、中枢、买点识别
  • init.py (10.1KB): 指标统一接口,工厂模式实现

strategies/ - 投资策略模块

  • base.py (13.9KB): 策略框架基类,信号生成、风险控制
  • technical.py (14.9KB): 技术分析策略,多因子模型
  • chanlun_strategy.py (新增): 缠论交易策略,买点识别和评估
  • factory.py (1.9KB): 策略工厂,动态创建策略实例

workflows/ - 分析工作流

  • step_executor.py (21.4KB): 步骤执行器,工作流调度
  • multi_step_screening.py (5.0KB): 多步筛选流程
  • data_structures.py (3.0KB): 工作流数据结构

services/ - 分析服务

  • hot_sector_service.py (19.3KB): 热点板块分析服务
  • ths_technical_service.py (新增): 同花顺技术分析服务,提供专业的技术分析功能
  • chanlun_analysis_service.py (新增): 缠论分析服务,提供缠论技术分析功能

其他分析模块

  • hot_sector_analyzer.py (59.8KB): 热点板块分析器,包含增强的板块热度分析算法

4. 用户界面层 (src/ui/) 🖥️

职责概述:提供现代化、响应式的Web交互界面

components/ - UI组件库

  • base.py (13.1KB): 基础UI组件,布局、样式、交互
  • stock.py (19.0KB): 股票专用组件,选股器、数据表格、图表
  • log_display.py (14.1KB): 日志显示组件,实时监控
  • ths_technical_analysis.py (新增): 同花顺技术分析组件,专业图表和技术指标展示

pages/ - 应用页面

  • main_app.py (150.9KB): 🚀 主应用页面 - 四步选股完整流程
    • 第一步:热点板块发现
    • 第二步:强势个股筛选
    • 第三步:多维度精选
    • 第四步:投资决策支持
  • main_app_refactored.py (新增): 重构版主应用页面,优化了代码结构和用户体验
  • decision_support.py (23.2KB): 投资决策支持页面
  • stock.py (18.0KB): 股票分析页面
  • ths_analysis_page.py (新增): 同花顺分析页面,提供专业的同花顺技术分析流程
  • workflow_page.py (新增): 工作流页面,展示分析工作流的执行过程
  • base.py (11.2KB): 页面基类框架

5. 工具支持层 (src/utils/) 🔧

职责概述:提供系统运行的基础工具和性能优化

cache/ - 高级缓存系统

  • cache.py (15.4KB): 多级缓存管理,LRU策略、过期控制

helpers/ - 辅助工具集

  • common.py (13.4KB): 通用工具函数,日期处理、数据转换
  • stock.py (15.3KB): 股票专用工具,代码转换、数据清洗

performance/ - 性能监控

  • time_estimator.py (19.4KB): 时间估算器,执行时间预测、性能监控

validators/ - 数据验证

  • validator.py (16.4KB): 数据验证器,输入验证、业务规则检查

6. 可视化模块 (src/visualization/) 📈

职责概述:专业金融图表和可视化支持(预留扩展)

  • charts/: 图表组件库(待开发)
  • themes/: 可视化主题配置(待开发)

7. 测试体系 (tests/) 🧪

职责概述:确保系统质量和功能正确性

完整的测试覆盖

  • 单元测试 (unit/): 核心模块功能测试
  • 集成测试 (integration/): 模块间协作测试
  • 功能测试: 30+个专项测试文件
    • API连接测试、概念分析测试、性能优化测试
    • 热点分析测试、按钮导航测试、进度回调测试
    • 数据修复测试、缓存优化测试等
  • 缠论功能测试: 新增缠论指标、策略、服务测试

8. 项目配置和文档 📚

配置文件

  • .env.example: 环境变量模板
  • pytest.ini: 测试框架配置

丰富的文档体系

  • README.md: 项目概述和快速入门
  • DEVELOPER_GUIDE.md: 开发者技术指南
  • FUNCTIONS_REFERENCE.md: 函数参考手册
  • 20+修复报告: 详细记录系统改进历程

运行脚本

  • run_main_app.py (12.8KB): 主应用启动入口
  • run_main_app_refactored.py (新增): 重构版主应用启动入口
  • 多个调试和修复脚本: API限流、服务检查、概念调试等

🌟 系统特色功能

1. 四步智能选股流程 🎯

第一步:热点板块发现 🔥

  • 智能识别市场热点概念板块
  • 多维度评估板块强度和持续性
  • 基于涨幅、成交量、个股表现的综合分析

第二步:强势个股筛选 💪

  • 在热点板块中精选强势个股
  • 技术面+基本面双重筛选
  • 量价配合、趋势突破等多重验证

第三步:多维度精选 🔍

  • 基本面评估:PE、PB、市值、成长性
  • 技术面分析:MACD、RSI、均线系统
  • 风险控制:回撤、波动性、流动性

第四步:投资决策支持 📊

  • 综合评分排序(0-100分体系)
  • 投资组合权重建议
  • 风险提示和操作建议

2. 智能分析引擎 🤖

多层次技术指标体系

  • 趋势指标:MA族、EMA、布林带、趋势强度
  • 动量指标:RSI、MACD、KDJ、CCI、威廉指标
  • 成交量指标:量比、OBV、价量背离、能量潮
  • 综合评分:基于多指标的智能评分系统

高级筛选算法

  • 多因子选股模型
  • 动态权重调整
  • 自适应阈值设定
  • 风险分散优化

3. 高性能数据处理 ⚡

多级缓存系统

  • L1缓存:内存缓存,毫秒级响应
  • L2缓存:磁盘缓存,数据持久化
  • 智能缓存失效和更新机制

API限流和优化

  • 智能请求频率控制
  • 批量数据获取优化
  • 异常恢复和重试机制

4. 专业的可视化展示 📈

丰富的图表类型

  • K线图:价格、均线、技术指标
  • 散点图:板块表现分析
  • 雷达图:多维度股票对比
  • 热力图:相关性分析

交互式界面

  • 实时数据更新
  • 响应式设计
  • 多设备适配

5. 完善的质量保证 🛡️

全面的测试覆盖

  • 30+个功能测试文件
  • 单元测试和集成测试
  • 性能测试和压力测试

详细的文档体系

  • 开发者指南
  • 函数参考手册
  • API使用说明
  • 20+个详细的修复报告

🚀 快速开始指南

环境要求

# Python 版本要求
Python 3.8+

# 主要依赖包
streamlit >= 1.28.0
tushare >= 1.2.89
pandas >= 1.3.0
numpy >= 1.21.0
plotly >= 5.0.0

安装和启动

# 1. 克隆项目
git clone <project-url>
cd to-share-pro_-analysis

# 2. 安装依赖
pip install -r requirements.txt

# 3. 配置环境变量(可选)
cp .env.example .env
# 编辑 .env 文件,添加您的 TUSHARE_TOKEN

# 4. 启动应用
streamlit run run_main_app.py --server.port 8501

# 或启动重构版应用
streamlit run run_main_app_refactored.py --server.port 8502

开发环境设置

# 运行测试
python run_tests.py

# 或使用 pytest
pytest tests/ -v

# 检查代码质量
flake8 src/
pylint src/

📊 核心业务流程

选股算法核心

1. 热点板块评分算法

强度评分 = min(10, 
    (平均涨幅 × 0.4) + 
    (强势股比例 × 0.3) + 
    (成交活跃度 × 0.2) + 
    (持续性指标 × 0.1)
)

2. 综合评分体系

总分 = 技术评分(40%) + 基本面评分(30%) + 风险评分(30%)

# 操作建议生成
90-100: 强烈推荐 ⭐⭐⭐⭐⭐
80-89:  推荐买入 ⭐⭐⭐⭐
70-79:  可以考虑 ⭐⭐⭐
60-69:  谨慎观望 ⭐⭐
<60:    不建议买入

3. 风险控制指标

  • 最大回撤控制:< 15%
  • 波动率过滤:合理范围内
  • 流动性要求:日均成交额 > 5000万
  • 基本面筛选:PE < 50, PB < 5.0

🔧 技术架构优势

1. 模块化设计 🏗️

  • 高内聚低耦合:各模块职责明确,接口清晰
  • 可插拔架构:支持数据源、指标、策略的动态扩展
  • 统一抽象:标准化的数据模型和服务接口

2. 性能优化 ⚡

  • 多级缓存:内存+磁盘,最大化数据复用
  • 智能限流:避免API频率限制,提高成功率
  • 异步处理:非阻塞数据获取,提升用户体验
  • 批量优化:减少API调用次数,提高效率

3. 可靠性保证 🛡️

  • 完善异常处理:分层异常体系,优雅降级
  • 数据验证:多层验证机制,确保数据质量
  • 容错设计:API失败自动重试,数据缺失智能补充
  • 监控日志:全链路监控,问题快速定位

4. 用户体验 🎨

  • 响应式界面:适配不同设备和屏幕尺寸
  • 实时反馈:进度显示、状态更新、操作确认
  • 交互式图表:支持缩放、筛选、悬停详情
  • 智能提示:参数建议、风险警告、操作指导

📈 性能指标

数据处理能力

  • 单次筛选:支持3000+股票同时分析
  • 响应时间:热门数据 < 2秒,复杂分析 < 30秒
  • 缓存命中率:常用数据 > 80%
  • 并发支持:多用户同时使用

准确性指标

  • 数据完整性:> 95%的数据覆盖率
  • 实时性:交易时间内数据延迟 < 5分钟
  • 指标准确性:与主流分析软件一致性 > 99%

🔕 新增同花顺功能模块

1. 同花顺数据集成 🎆

ths_concept_service.py - 同花顺概念板块服务

  • 获取同花顺概念板块指数数据
  • 获取同花顺概念成分股数据
  • 分析同花顺概念板块行情表现
  • 搜索同花顺概念板块

2. 同花顺技术分析 📊

ths_technical_service.py - 同花顺技术分析服务

  • 板块技术分析(趋势、动量、成交量、资金流向)
  • 多时间框架技术分析
  • 热点板块技术筛选
  • 股票技术信号生成

3. 同花顺界面组件 🖥️

ths_technical_analysis.py - 同花顺技术分析UI组件

  • 板块技术分析展示
  • 多时间框架分析界面
  • 技术信号可视化
  • 热点板块筛选界面

ths_analysis_page.py - 同花顺分析页面

  • 四步技术分析流程
  • 板块技术分析 → 热点板块筛选 → 多时间框架分析 → 综合分析报告

4. 重构版主应用 🎯

main_app_refactored.py - 重构版主应用

  • Tab页面隔离传统流程和同花顺功能
  • 模块化架构设计
  • 统一入口和导航管理

5. 缠论技术分析模块 🧮

chanlun.py - 缠论核心指标模块

  • 分型识别算法(顶分型、底分型)
  • 笔段识别算法
  • 中枢识别算法
  • 背驰识别算法
  • 三类买点识别算法

chanlun_strategy.py - 缠论交易策略

  • 基于缠论的交易策略实现
  • 买点有效性评估
  • 交易信号生成
  • 风险评估

chanlun_analysis_service.py - 缠论分析服务

  • 股票缠论结构分析
  • 批量股票分析
  • 基于买点的股票筛选

test_chanlun_indicators.py - 缠论指标测试

  • 分型识别测试
  • 笔段识别测试
  • 中枢识别测试
  • 买点识别测试

test_chanlun_strategy.py - 缠论策略测试

  • 策略分析测试
  • 信号生成测试
  • 评分计算测试

test_chanlun_analysis_service.py - 缠论服务测试

  • 服务功能测试
  • 批量分析测试
  • 筛选功能测试

chanlun_analysis_example.py - 缠论分析示例

  • 缠论分析使用示例
  • 批量分析示例
  • 筛选功能示例