这是一个基于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版本控制
职责概述:提供系统基础设施,确保系统稳定运行和配置管理
-
config.py (8.1KB)
- 🔧 配置管理系统:支持多环境配置(开发/测试/生产)
- 🔑 TuShare API配置:Token管理、超时设置、重试机制
- 💾 缓存配置:内存缓存和磁盘缓存设置
- 🎨 UI配置:界面布局、主题、样式配置
- 📊 数据库配置:连接池、事务管理
-
constants.py (9.9KB)
- 📏 枚举类型定义:数据源、市场类型、指标类型
- 🎯 筛选参数:默认筛选条件、评分权重
- 🌈 UI常量:颜色方案、图表配色、主题设置
- ❌ 错误码定义:标准化错误处理机制
- ⏰ 时间常量:交易时间、缓存过期时间
-
exceptions.py (14.1KB)
- 🚨 分层异常体系:基础异常、业务异常、技术异常
- 🔍 智能错误处理:异常分类、错误恢复、日志记录
- 🛠️ 异常工具函数:异常创建、包装、转换
-
logger.py (13.3KB)
- 📝 结构化日志:JSON格式、分级记录、性能监控
- 🏷️ 上下文过滤:请求追踪、用户会话、业务流程
- ⚡ 性能日志:函数执行时间、数据操作监控
- 📊 业务事件记录:关键操作、决策过程、用户行为
职责概述:构建统一的数据访问和处理平台
- stock.py (11.4KB): 股票数据模型,包含价格、基本面、技术指标
- concept.py (10.0KB): 概念板块模型,热点分析、成分股管理
- market.py (11.7KB): 市场数据模型,指数、行业、宏观数据
- base.py (12.3KB): 数据提供者抽象基类,定义统一接口
- tushare_provider.py (23.1KB): TuShare API集成,数据获取、错误处理
- cache_provider.py (17.1KB): 多级缓存系统,内存+磁盘缓存
- 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限流控制
职责概述:提供专业的量化分析和投资策略支持
- refined_screening_engine.py (15.5KB): 精细化筛选引擎,多维度评分
- 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): 指标统一接口,工厂模式实现
- base.py (13.9KB): 策略框架基类,信号生成、风险控制
- technical.py (14.9KB): 技术分析策略,多因子模型
- chanlun_strategy.py (新增): 缠论交易策略,买点识别和评估
- factory.py (1.9KB): 策略工厂,动态创建策略实例
- step_executor.py (21.4KB): 步骤执行器,工作流调度
- multi_step_screening.py (5.0KB): 多步筛选流程
- data_structures.py (3.0KB): 工作流数据结构
- hot_sector_service.py (19.3KB): 热点板块分析服务
- ths_technical_service.py (新增): 同花顺技术分析服务,提供专业的技术分析功能
- chanlun_analysis_service.py (新增): 缠论分析服务,提供缠论技术分析功能
- hot_sector_analyzer.py (59.8KB): 热点板块分析器,包含增强的板块热度分析算法
职责概述:提供现代化、响应式的Web交互界面
- base.py (13.1KB): 基础UI组件,布局、样式、交互
- stock.py (19.0KB): 股票专用组件,选股器、数据表格、图表
- log_display.py (14.1KB): 日志显示组件,实时监控
- ths_technical_analysis.py (新增): 同花顺技术分析组件,专业图表和技术指标展示
- 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): 页面基类框架
职责概述:提供系统运行的基础工具和性能优化
- cache.py (15.4KB): 多级缓存管理,LRU策略、过期控制
- common.py (13.4KB): 通用工具函数,日期处理、数据转换
- stock.py (15.3KB): 股票专用工具,代码转换、数据清洗
- time_estimator.py (19.4KB): 时间估算器,执行时间预测、性能监控
- validator.py (16.4KB): 数据验证器,输入验证、业务规则检查
职责概述:专业金融图表和可视化支持(预留扩展)
- charts/: 图表组件库(待开发)
- themes/: 可视化主题配置(待开发)
职责概述:确保系统质量和功能正确性
- 单元测试 (unit/): 核心模块功能测试
- 集成测试 (integration/): 模块间协作测试
- 功能测试: 30+个专项测试文件
- API连接测试、概念分析测试、性能优化测试
- 热点分析测试、按钮导航测试、进度回调测试
- 数据修复测试、缓存优化测试等
- 缠论功能测试: 新增缠论指标、策略、服务测试
- .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限流、服务检查、概念调试等
第一步:热点板块发现 🔥
- 智能识别市场热点概念板块
- 多维度评估板块强度和持续性
- 基于涨幅、成交量、个股表现的综合分析
第二步:强势个股筛选 💪
- 在热点板块中精选强势个股
- 技术面+基本面双重筛选
- 量价配合、趋势突破等多重验证
第三步:多维度精选 🔍
- 基本面评估:PE、PB、市值、成长性
- 技术面分析:MACD、RSI、均线系统
- 风险控制:回撤、波动性、流动性
第四步:投资决策支持 📊
- 综合评分排序(0-100分体系)
- 投资组合权重建议
- 风险提示和操作建议
多层次技术指标体系:
- 趋势指标:MA族、EMA、布林带、趋势强度
- 动量指标:RSI、MACD、KDJ、CCI、威廉指标
- 成交量指标:量比、OBV、价量背离、能量潮
- 综合评分:基于多指标的智能评分系统
高级筛选算法:
- 多因子选股模型
- 动态权重调整
- 自适应阈值设定
- 风险分散优化
多级缓存系统:
- L1缓存:内存缓存,毫秒级响应
- L2缓存:磁盘缓存,数据持久化
- 智能缓存失效和更新机制
API限流和优化:
- 智能请求频率控制
- 批量数据获取优化
- 异常恢复和重试机制
丰富的图表类型:
- K线图:价格、均线、技术指标
- 散点图:板块表现分析
- 雷达图:多维度股票对比
- 热力图:相关性分析
交互式界面:
- 实时数据更新
- 响应式设计
- 多设备适配
全面的测试覆盖:
- 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
- 高内聚低耦合:各模块职责明确,接口清晰
- 可插拔架构:支持数据源、指标、策略的动态扩展
- 统一抽象:标准化的数据模型和服务接口
- 多级缓存:内存+磁盘,最大化数据复用
- 智能限流:避免API频率限制,提高成功率
- 异步处理:非阻塞数据获取,提升用户体验
- 批量优化:减少API调用次数,提高效率
- 完善异常处理:分层异常体系,优雅降级
- 数据验证:多层验证机制,确保数据质量
- 容错设计:API失败自动重试,数据缺失智能补充
- 监控日志:全链路监控,问题快速定位
- 响应式界面:适配不同设备和屏幕尺寸
- 实时反馈:进度显示、状态更新、操作确认
- 交互式图表:支持缩放、筛选、悬停详情
- 智能提示:参数建议、风险警告、操作指导
- 单次筛选:支持3000+股票同时分析
- 响应时间:热门数据 < 2秒,复杂分析 < 30秒
- 缓存命中率:常用数据 > 80%
- 并发支持:多用户同时使用
- 数据完整性:> 95%的数据覆盖率
- 实时性:交易时间内数据延迟 < 5分钟
- 指标准确性:与主流分析软件一致性 > 99%
ths_concept_service.py - 同花顺概念板块服务
- 获取同花顺概念板块指数数据
- 获取同花顺概念成分股数据
- 分析同花顺概念板块行情表现
- 搜索同花顺概念板块
ths_technical_service.py - 同花顺技术分析服务
- 板块技术分析(趋势、动量、成交量、资金流向)
- 多时间框架技术分析
- 热点板块技术筛选
- 股票技术信号生成
ths_technical_analysis.py - 同花顺技术分析UI组件
- 板块技术分析展示
- 多时间框架分析界面
- 技术信号可视化
- 热点板块筛选界面
ths_analysis_page.py - 同花顺分析页面
- 四步技术分析流程
- 板块技术分析 → 热点板块筛选 → 多时间框架分析 → 综合分析报告
main_app_refactored.py - 重构版主应用
- Tab页面隔离传统流程和同花顺功能
- 模块化架构设计
- 统一入口和导航管理
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 - 缠论分析示例
- 缠论分析使用示例
- 批量分析示例
- 筛选功能示例