Skip to content

基于CrewAI框架构建的智能股票分析系统,利用多Agent协作和智能流程控制,提供全面的股票投资分析服务。 🚀 特性 : 智能股票分析 基于AI的多维度股票分析, 批量处理 高效的批量股票分析, 实时监控 股票价格和指标实时监控 , 预警系统 智能预警和通知, Web界面 直观的Web管理界面

Notifications You must be signed in to change notification settings

sun-hui1/crewai_stock_analysis_system

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🚀 CrewAI 股票分析系统

基于 CrewAI 框架构建的智能股票分析系统,采用多 Agent 协作架构和智能流程控制,提供全面的股票投资分析服务。系统充分利用 CrewAI 的 Crews(团队模式)Flows(流程模式) 实现高效的股票分析。

📊 系统特性

🔥 核心功能

  • 智能股票分析: 基于 AI 的多维度股票分析,包括基本面、技术面、行业分析
  • 批量处理: 支持多只股票并行分析,提高效率
  • 实时监控: 股票价格和指标实时监控与预警
  • 智能决策: 基于综合分析的投资建议生成
  • 报告生成: 自动生成详细的投资分析报告
  • Web界面: 直观的 Web 管理界面和监控面板

🛠️ 技术亮点

  • 多 Agent 协作: 9 个专业化 Agent 分工协作
  • 双重架构模式: Crews 模式(团队协作)+ Flows 模式(流程控制)
  • 智能数据源: 集成 AkShare、OpenAI、Serper 等数据源
  • 缓存机制: 智能缓存提高分析效率
  • 错误处理: 完善的异常处理和重试机制
  • 扩展性: 模块化设计,易于扩展新功能

🏗️ 系统架构

Agent 团队结构

┌─────────────────────────────────────────────────────────────┐
│                    CrewAI 股票分析系统                        │
├─────────────────────────────────────────────────────────────┤
│  ┌─────────────────┐  ┌─────────────────┐  ┌─────────────────┐ │
│  │  数据收集团队   │  │    分析团队     │  │    决策团队     │ │
│  │                 │  │                 │  │                 │ │
│  │ • 市场研究员    │  │ • 基本面分析师  │  │ • 投资顾问      │ │
│  │ • 财务数据专家  │  │ • 风险评估师    │  │ • 报告生成器    │ │
│  │ • 技术分析师    │  │ • 行业专家      │  │ • 质量监控员    │ │
│  │ • 数据验证专家  │  │                 │  │                 │ │
│  └─────────────────┘  └─────────────────┘  └─────────────────┘ │
│           │                     │                     │        │
│           └─────────────────────┼─────────────────────┘        │
│                                 │                              │
│  ┌─────────────────────────────────────────────────────────────┐ │
│  │                  核心工具集                               │ │
│  │ • AkShare数据工具 • 技术分析工具 • 基本面分析工具        │ │
│  │ • 报告生成工具 • 风险评估工具 • 市场情绪分析            │ │
│  └─────────────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────┘

核心组件说明

1. 数据收集团队 (DataCollectionCrew)

  • 市场研究员: 收集市场新闻、行业信息和公司动态
  • 财务数据专家: 获取财务报表、关键财务指标
  • 技术分析师: 收集价格数据、技术指标
  • 数据验证专家: 验证数据质量、处理异常值

2. 分析团队 (AnalysisCrew)

  • 基本面分析师: 评估公司基本面、财务健康状况
  • 风险评估师: 分析投资风险、风险因素识别
  • 行业专家: 分析行业地位、竞争环境

3. 决策团队 (DecisionCrew)

  • 投资策略顾问: 生成投资建议、策略制定
  • 报告生成器: 生成详细分析报告
  • 质量监控员: 质量控制、结果验证

🔄 核心流程

1. 单股票分析流程

┌─────────────────────────────────────────────────────────────────────────────┐
│                          单股票分析主流程                                    │
├─────────────────────────────────────────────────────────────────────────────┤
│                                                                             │
│  📥 INPUT: [公司名称, 股票代码]                                            │
│      │                                                                     │
│      ▼                                                                     │
│  ┌─────────────────────────────────────────────────────────────────────┐   │
│  │                    StockAnalysisSystem                             │   │
│  │                          分析协调器                                  │   │
│  └─────────────────────────────────────────────────────────────────────┘   │
│      │                                                                     │
│      ▼                                                                     │
│  ┌─────────────────────────────────────────────────────────────────────┐   │
│  │                    🏗️ 系统初始化                                      │   │
│  │  • 加载环境变量                                                       │   │
│  │  • 初始化三个Crew团队                                                │   │
│  │  • 设置缓存机制                                                       │   │
│  └─────────────────────────────────────────────────────────────────────┘   │
│      │                                                                     │
│      ▼                                                                     │
│  ┌─────────────────────────────────────────────────────────────────────┐   │
│  │                  🔍 缓存检查 (可选)                                    │   │
│  │  • 检查是否有缓存结果                                                 │   │
│  │  • 验证缓存是否过期                                                   │   │
│  └─────────────────────────────────────────────────────────────────────┘   │
│      │                                                                     │
│      ▼ (缓存未命中)                                                       │
│  ┌─────────────────────────────────────────────────────────────────────┐   │
│  │           📊 第一阶段:数据收集 (DataCollectionCrew)                 │   │
│  │  ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐           │   │
│  │  │   市场研究员   │ │  财务数据专家   │ │   技术分析师   │           │   │
│  │  │                 │ │                 │ │                 │           │   │
│  │  │ • 收集市场新闻   │ │ • 获取财务报表   │ │ • 获取价格数据   │           │   │
│  │  │ • 行业信息分析   │ │ • 关键指标提取   │ │ • 技术指标计算   │           │   │
│  │  │ • 公司动态跟踪   │ │ • 同行业对比     │ │ • 趋势分析       │           │   │
│  │  └─────────────────┘ └─────────────────┘ └─────────────────┘           │   │
│  │                    │                    │                           │   │
│  │                    └────────────────────┼───────────────────────────┘   │
│      │                                        │                            │
│      │              ┌─────────────────────────┴─────────────────────────┐   │
│      │              │              数据验证专家                       │   │
│      │              │              • 数据质量验证                    │   │
│      │              │              • 异常值处理                      │   │
│      │              │              • 数据清洗                        │   │
│      │              └─────────────────────────────────────────────────┘   │
│      │                                                                              │
│      ▼                                                                              │
│  ┌─────────────────────────────────────────────────────────────────────┐            │
│  │              📈 第二阶段:综合分析 (AnalysisCrew)                     │            │
│  │  ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐           │            │
│  │  │  基本面分析师   │ │   风险评估师   │ │    行业专家    │           │            │
│  │  │                 │ │                 │ │                 │           │            │
│  │  │ • 财务比率分析   │ │ • 风险识别       │ │ • 行业地位分析   │           │            │
│  │  │ • 盈利能力评估   │ │ • 风险量化       │ │ • 竞争环境分析   │           │            │
│  │  │ • 成长性预测     │ │ • 风险因素分析   │ │ • 发展趋势预测   │           │            │
│  │  │ • 估值分析       │ │ • 风险控制建议   │ │ • 政策影响评估   │           │            │
│  │  └─────────────────┘ └─────────────────┘ └─────────────────┘           │            │
│  │          │                     │                     │                    │            │
│  │          └─────────────────────┼─────────────────────┘                    │            │
│  │                                │                                        │            │
│  │  ┌─────────────────────────────────────────────────────────────────────┐   │            │
│  │  │                      综合评分计算                                   │   │            │
│  │  │  • 基本面评分 (40%)  • 风险评分 (30%)  • 行业评分 (30%)              │   │            │
│  │  └─────────────────────────────────────────────────────────────────────┘   │            │
│      │                                                                              │
│      ▼                                                                              │
│  ┌─────────────────────────────────────────────────────────────────────┐            │
│  │              🎯 第三阶段:投资决策 (DecisionCrew)                    │            │
│  │  ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐           │            │
│  │  │   投资顾问     │ │   报告生成器   │ │   质量监控员   │           │            │
│  │  │                 │ │                 │ │                 │           │            │
│  │  │ • 投资建议生成   │ │ • 报告撰写       │ │ • 质量检查       │           │            │
│  │  │ • 目标价位设定   │ │ • 格式标准化     │ │ • 准确性验证     │           │            │
│  │  │ • 置信度评估     │ │ • 可读性优化     │ │ • 完整性检查     │           │            │
│  │  │ • 策略建议       │ │ • 数据可视化     │ │ • 一致性验证     │           │            │
│  │  └─────────────────┘ └─────────────────┘ └─────────────────┘           │            │
│      │                                                                              │
│      ▼                                                                              │
│  ┌─────────────────────────────────────────────────────────────────────┐            │
│  │                      📋 结果整合与输出                              │            │
│  │  • 投资评级 (强烈买入/买入/增持/持有/减持/卖出)                    │            │
│  │  • 综合评分 (0-100分)                                               │            │
│  │  • 详细分析报告                                                     │            │
│  │  • 投资建议和风险提示                                               │            │
│  │  • 数据导出 (JSON/Markdown)                                          │            │
│  └─────────────────────────────────────────────────────────────────────┘            │
│      │                                                                              │
│      ▼                                                                              │
│  ┌─────────────────────────────────────────────────────────────────────┐            │
│  │                      💾 缓存存储                                      │            │
│  │  • 存储分析结果到缓存                                               │            │
│  │  • 设置过期时间 (1小时)                                               │            │
│  │  • 记录分析历史                                                     │            │
│  └─────────────────────────────────────────────────────────────────────┘            │
│      │                                                                              │
│      ▼                                                                              │
│  ┌─────────────────────────────────────────────────────────────────────┐            │
│  │                      📤 OUTPUT: 分析结果                              │            │
│  │  {                                                                     │            │
│  │    'success': true/false,                                            │            │
│  │    'company': '公司名称',                                             │            │
│  │    'ticker': '股票代码',                                              │            │
│  │    'overall_score': 75.5,                                            │            │
│  │    'investment_rating': {'rating': '买入', 'code': 'BUY'},        │            │
│  │    'report_path': 'reports/report_XXX.md',                          │            │
│  │    'data_path': 'data/data_XXX.json',                               │            │
│  │    'timestamp': '2024-01-01 12:00:00'                              │            │
│  │  }                                                                     │            │
│  └─────────────────────────────────────────────────────────────────────┘            │
│                                                                             │
└─────────────────────────────────────────────────────────────────────────────┘

2. 批量分析流程

┌─────────────────────────────────────────────────────────────────────────────┐
│                          批量分析流程                                    │
├─────────────────────────────────────────────────────────────────────────────┤
│                                                                             │
│  📥 INPUT: [股票列表, 并发数]                                              │
│      │                                                                     │
│      ▼                                                                     │
│  ┌─────────────────────────────────────────────────────────────────────┐   │
│  │                 BatchStockAnalyzer                                  │   │
│  │                      批量分析器                                    │   │
│  └─────────────────────────────────────────────────────────────────────┘   │
│      │                                                                     │
│      ▼                                                                     │
│  ┌─────────────────────────────────────────────────────────────────────┐   │
│  │                    📋 任务队列管理                                    │   │
│  │  • 解析股票列表                                                       │   │
│  │  • 创建任务队列                                                       │   │
│  │  • 设置并发限制                                                       │   │
│  └─────────────────────────────────────────────────────────────────────┘   │
│      │                                                                     │
│      ▼                                                                     │
│  ┌─────────────────────────────────────────────────────────────────────┐   │
│  │            🔀 智能策略选择                                           │   │
│  │  ┌─────────────────┐                                               │   │
│  │  │  并发策略       │  ←─ 股票数量多,系统负载低                    │   │
│  │  │  • 多线程处理   │                                               │   │
│  │  │  • 资源利用率高 │                                               │   │
│  │  └─────────────────┘                                               │   │
│      │                ┌─────────────────┐                               │   │
│      │                │  串行策略       │  ←─ 股票数量少,需要精确控制    │   │
│      │                │  • 顺序处理     │                               │   │
│      │                │  • 错误易追踪     │                               │   │
│      │                └─────────────────┘                               │   │
│      │                                                                     │
│      ▼ (根据策略选择)                                                      │
│  ┌─────────────────────────────────────────────────────────────────────┐   │
│  │                    ⚡ 并发执行                                        │   │
│  │                                                                             │
│  │  ┌─────────────────┐  ┌─────────────────┐  ┌─────────────────┐        │   │
│  │  │   Worker 1     │  │   Worker 2     │  │   Worker 3     │        │   │
│  │  │                 │  │                 │  │                 │        │   │
│  │  │  Stock 1       │  │  Stock 2       │  │  Stock 3       │        │   │
│  │  │  • 数据收集     │  │  • 数据收集     │  │  • 数据收集     │        │   │
│  │  │  • 分析处理     │  │  • 分析处理     │  │  • 分析处理     │        │   │
│  │  │  • 决策生成     │  │  • 决策生成     │  │  • 决策生成     │        │   │
│  │  └─────────────────┘  └─────────────────┘  └─────────────────┘        │   │
│  │          │                     │                     │                  │   │
│  │          └─────────────────────┼─────────────────────┘                  │   │
│  │                                │                                       │   │
│  │  ┌─────────────────────────────────────────────────────────────────────┐   │
│  │  │                      进度监控                                       │   │
│  │  │  • 实时进度回调                                                       │   │
│  │  │  • 错误处理与重试                                                     │   │
│  │  │  • 资源使用监控                                                       │   │
│  │  └─────────────────────────────────────────────────────────────────────┘   │
│      │                                                                     │
│      ▼                                                                     │
│  ┌─────────────────────────────────────────────────────────────────────┐   │
│  │                    📊 结果聚合                                        │   │
│  │  • 收集所有分析结果                                                   │   │
│  │  • 统计成功率/失败率                                                  │   │
│  │  • 计算平均评分                                                       │   │
│  │  • 识别最佳/最差表现                                                 │   │
│  └─────────────────────────────────────────────────────────────────────┘   │
│      │                                                                     │
│      ▼                                                                     │
│  ┌─────────────────────────────────────────────────────────────────────┐   │
│  │                    📈 批量报告生成                                     │   │
│  │  • 生成摘要报告                                                       │   │
│  │  • 排行榜分析                                                         │   │
│  │  • 投资组合建议                                                       │   │
│  │  • 数据导出                                                           │   │
│  └─────────────────────────────────────────────────────────────────────┘   │
│      │                                                                     │
│      ▼                                                                     │
│  ┌─────────────────────────────────────────────────────────────────────┐   │
│  │                      📤 OUTPUT: 批量结果                              │   │
│  │  {                                                                     │   │
│  │    'success': true,                                                   │   │
│  │    'total_stocks': 5,                                                │   │
│  │    'successful': 4,                                                  │   │
│  │    'failed': 1,                                                      │   │
│  │    'success_rate': 80.0,                                             │   │
│  │    'average_score': 72.5,                                            │   │
│  │    'top_performers': [...],                                          │   │
│  │    'bottom_performers': [...],                                       │   │
│  │    'summary_path': 'reports/batch_XXX.md'                            │   │
│  │  }                                                                     │   │
│  └─────────────────────────────────────────────────────────────────────┘   │
│                                                                             │
└─────────────────────────────────────────────────────────────────────────────┘

3. 智能投资流程 (Flows模式)

┌─────────────────────────────────────────────────────────────────────────────┐
│                         智能投资流程 (Flows)                               │
├─────────────────────────────────────────────────────────────────────────────┤
│                                                                             │
│  📥 INPUT: [用户输入]                                                      │
│      │                                                                     │
│      ▼                                                                     │
│  ┌─────────────────────────────────────────────────────────────────────┐   │
│  │                  SmartInvestmentFlow                                 │   │
│  │                     智能投资流程                                     │   │
│  └─────────────────────────────────────────────────────────────────────┘   │
│      │                                                                     │
│      ▼                                                                     │
│  ┌─────────────────────────────────────────────────────────────────────┐   │
│  │                  🎯 初始化分析 (@start)                              │   │
│  │  • 获取用户输入 (公司名称)                                           │   │
│  │  • 初始化分析状态                                                    │   │
│  │  • 设置分析参数                                                      │   │
│  └─────────────────────────────────────────────────────────────────────┘   │
│      │                                                                     │
│      ▼                                                                     │
│  ┌─────────────────────────────────────────────────────────────────────┐   │
│  │                 🔍 数据质量评估 (@router)                             │   │
│  │  • 评估数据可获得性                                                   │   │
│  │  • 检查数据完整性                                                     │   │
│  │  • 分析公司重要性                                                     │   │
│  └─────────────────────────────────────────────────────────────────────┘   │
│      │                                                                     │
│      ├─── 数据质量高 ──► ┌─────────────────────────────────────────────────┐   │
│      │                │          📊 深度分析                             │   │
│      │                │  • 完整基本面分析                                 │   │
│      │                │  • 详细风险评估                                   │   │
│      │                │  • 行业深度分析                                   │   │
│      │                │  • 竞争对手分析                                   │   │
│      │                └─────────────────────────────────────────────────┘   │
│      │                                                                             │
│      └─── 数据质量中等 ─► ┌─────────────────────────────────────────────────┐   │
│                       │          📈 标准分析                             │   │
│                       │  • 基本面分析                                     │   │
│                       │  • 基础风险评估                                   │   │
│                       │  • 行业概况分析                                   │   │
│                       └─────────────────────────────────────────────────┘   │
│                                                                             │
│      └─── 数据质量低 ──► ┌─────────────────────────────────────────────────┐   │
│                       │          📋 快速分析                             │   │
│                       │  • 关键指标分析                                   │   │
│                       │  • 简单风险评估                                   │   │
│                       │  • 基本面快照                                     │   │
│                       └─────────────────────────────────────────────────┘   │
│                                                                             │
│      ▼ (根据分析深度)                                                      │
│  ┌─────────────────────────────────────────────────────────────────────┐   │
│  │                  🎯 智能决策 (@router)                                 │   │
│  │  • 基于分析结果评分                                                   │   │
│  │  • 评估投资价值                                                       │   │
│  │  • 风险收益分析                                                       │   │
│  └─────────────────────────────────────────────────────────────────────┘   │
│      │                                                                     │
│      ├─── 评分 ≥ 80 ──► ┌─────────────────────────────────────────────────┐   │
│      │                │         💰 强烈买入                              │   │
│      │                │  • 详细投资建议                                 │   │
│      │                │  • 目标价位设定                                 │   │
│      │                │  • 持有时间建议                                 │   │
│      │                └─────────────────────────────────────────────────┘   │
│      │                                                                             │
│      ├─── 评分 60-79 ──► ┌─────────────────────────────────────────────────┐   │
│      │                │          📈 买入                                  │   │
│      │                │  • 适度投资建议                                 │   │
│      │                │  • 风险提示                                     │   │
│      │                │  • 分批建仓建议                                 │   │
│      │                └─────────────────────────────────────────────────┘   │
│      │                                                                             │
│      └─── 评分 < 60 ──► ┌─────────────────────────────────────────────────┐   │
│                       │          ⚠️ 观望/卖出                             │   │
│                       │  • 风险警告                                     │   │
│                       │  • 减持建议                                     │   │
│                       │  • 替代方案                                     │   │
│                       └─────────────────────────────────────────────────┘   │
│      │                                                                     │
│      ▼                                                                     │
│  ┌─────────────────────────────────────────────────────────────────────┐   │
│  │                  📋 报告生成 (@listen)                                │   │
│  │  • 生成结构化报告                                                     │   │
│  │  • 包含图表和数据                                                     │   │
│  │  • 投资建议总结                                                       │   │
│  └─────────────────────────────────────────────────────────────────────┘   │
│      │                                                                     │
│      ▼                                                                     │
│  ┌─────────────────────────────────────────────────────────────────────┐   │
│  │                  📤 OUTPUT: 个性化分析结果                            │   │
│  │  • 根据用户风险偏好调整建议                                           │   │
│  │  • 提供多种投资策略选择                                               │   │
│  │  • 持续监控建议                                                       │   │
│  └─────────────────────────────────────────────────────────────────────┘   │
│                                                                             │
└─────────────────────────────────────────────────────────────────────────────┘

📋 详细功能说明

1. 数据收集功能

AkShare数据集成

  • 实时数据获取: 通过 AkShare 获取 A 股实时数据
  • 历史数据: 支持多种时间周期的历史数据查询
  • 财务数据: 财务报表、财务指标、行业对比数据
  • 市场数据: 行情数据、资金流向、市场情绪

数据验证与清洗

  • 质量评估: 自动评估数据质量和完整性
  • 异常检测: 识别和处理异常数据点
  • 数据标准化: 统一数据格式和单位
  • 缓存机制: 智能缓存减少重复请求

2. 分析功能

基本面分析

  • 财务比率分析: PE、PB、ROE、ROA 等关键比率
  • 盈利能力: 营收增长、净利润率、毛利率分析
  • 估值分析: DCF估值、相对估值、行业对比
  • 财务健康: 负债率、现金流、偿债能力评估

技术分析

  • 趋势分析: 移动平均线、趋势线、支撑阻力位
  • 技术指标: RSI、MACD、KDJ、BOLLINGER 等指标
  • 图表分析: K线形态、成交量分析、价格形态
  • 交易信号: 买入/卖出信号生成

行业分析

  • 行业地位: 市场份额、竞争力分析
  • 行业趋势: 发展前景、政策影响、技术变革
  • 对比分析: 同行业公司对比分析
  • SWOT分析: 优势、劣势、机会、威胁分析

3. 风险评估功能

风险识别

  • 市场风险: 系统性风险、市场波动风险
  • 财务风险: 偿债风险、流动性风险、盈利风险
  • 经营风险: 管理风险、战略风险、运营风险
  • 行业风险: 政策风险、技术风险、竞争风险

风险量化

  • 风险评分: 0-100分风险量化评分
  • VaR计算: 风险价值评估
  • 压力测试: 极端情况下的风险评估
  • 敏感性分析: 关键因素变动影响分析

4. 投资决策功能

投资建议生成

  • 评级系统: 六级评级体系(强烈买入到卖出)
  • 目标价位: 基于估值的目标价格设定
  • 投资策略: 长期持有、波段操作、价值投资等策略
  • 资产配置: 建议配置比例和分散化建议

智能推荐

  • 个性化推荐: 基于用户风险偏好的个性化建议
  • 时机选择: 买入/卖出时机建议
  • 组合优化: 投资组合优化建议
  • 替代方案: 备选投资标的建议

5. 报告生成功能

自动报告生成

  • 结构化报告: 标准化的分析报告格式
  • 图表可视化: 自动生成图表和数据可视化
  • 多格式输出: 支持 Markdown、PDF、HTML 等格式
  • 模板定制: 可定制的报告模板

智能摘要

  • 执行摘要: 关键结论和投资建议摘要
  • 亮点突出: 重点关注的数据和发现
  • 风险提示: 重要风险因素提示
  • 行动建议: 具体的投资行动建议

6. 监控预警功能

实时监控

  • 价格监控: 实时价格变动监控
  • 指标监控: 关键指标变动监控
  • 新闻监控: 相关新闻和公告监控
  • 情绪监控: 市场情绪变化监控

智能预警

  • 价格预警: 价格突破预警
  • 指标预警: 技术指标信号预警
  • 新闻预警: 重要新闻公告预警
  • 组合预警: 投资组合风险预警

通知系统

  • 邮件通知: 邮件预警通知
  • 短信通知: 短信预警通知
  • App推送: 移动端推送通知
  • Webhook: 自定义 Webhook 通知

🛠️ 安装和配置

1. 环境要求

  • Python: 3.8+
  • 操作系统: Windows/MacOS/Linux
  • 内存: 建议 4GB 以上
  • 网络: 需要访问 OpenAI API 和数据源

2. 依赖安装

# 克隆项目
git clone <repository-url>
cd crewai_stock_analysis_system

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

# 安装 AkShare (可选,用于 A 股数据)
pip install akshare

3. 环境配置

创建 .env 文件:

# OpenAI 配置
OPENAI_API_KEY=your-openai-api-key-here
OPENAI_MODEL_NAME=gpt-4o

# Serper API (可选,用于网络搜索)
SERPER_API_KEY=your-serper-api-key-here

# 系统配置
CACHE_TTL=3600
MAX_WORKERS=5
LOG_LEVEL=INFO

4. 验证安装

# 运行系统测试
python test_final_system.py

# 检查系统信息
python main.py info

📖 使用指南

1. 命令行界面

单股票分析

# 基本用法
python main.py single --company "贵州茅台" --ticker "600519"
python main.py single --company "紫光股份" --ticker "000938"

# 不使用缓存
python main.py single --company "贵州茅台" --ticker "600519" --no-cache

批量分析

# 使用默认股票列表
python main.py batch

# 使用自定义股票列表文件
python main.py batch --stocks-file stocks.txt

# 设置并发数
python main.py batch --max-workers 5

交互式流程

# 启动智能投资流程
python main.py interactive

# 启动批量分析流程
python main.py batch-flow

股票列表文件格式 (stocks.txt):

# 公司名,股票代码
苹果公司,AAPL
微软,MSFT
谷歌,GOOGL
亚马逊,AMZN
特斯拉,TSLA

2. Web界面使用

# 启动Web应用
python src/web_app.py

# 访问地址
http://localhost:5000

Web界面功能:

  • 实时监控面板: 显示监控股票的实时状态
  • 分析管理: 创建和管理分析任务
  • 报告查看: 查看和下载分析报告
  • 系统设置: 配置系统参数和预警规则

3. 编程接口使用

基础使用

from src.stock_analysis_system import StockAnalysisSystem

# 创建系统实例
system = StockAnalysisSystem()

# 分析单只股票
result = system.analyze_stock("贵州茅台", "600519")

if result['success']:
    print(f"投资评级: {result['investment_rating']['rating']}")
    print(f"综合评分: {result['overall_score']:.1f}/100")
    print(f"报告路径: {result['report_path']}")

批量分析

# 批量分析
stocks = [
    {'company': '微软', 'ticker': 'MSFT'},
    {'company': '谷歌', 'ticker': 'GOOGL'},
    {'company': '亚马逊', 'ticker': 'AMZN'}
]

results = system.analyze_multiple_stocks(stocks, max_workers=3)

# 处理结果
for result in results:
    if result['success']:
        print(f"{result['company']}: {result['investment_rating']['rating']}")

实时监控

from src.utils.monitor import StockMonitor

# 创建监控器
monitor = StockMonitor()

# 添加监控股票
monitor.add_stock_to_monitor("苹果公司", "AAPL", interval=300)

# 添加预警规则
monitor.add_alert_rule(
    "price_alert",
    "AAPL",
    "price",
    "above",
    180.0,
    "苹果股价突破180美元"
)

# 启动监控
monitor.start_monitoring()

4. 高级功能使用

自定义分析流程

from src.flows.investment_flow import SmartInvestmentFlow

# 创建智能流程
flow = SmartInvestmentFlow()

# 自定义分析参数
flow.set_analysis_depth("deep")
flow.set_risk_tolerance("medium")
flow.set_investment_horizon("long_term")

# 运行流程
result = flow.kickoff()

批量分析优化

from src.utils.batch_analyzer import BatchStockAnalyzer

# 创建批量分析器
analyzer = BatchStockAnalyzer(max_workers=5)

# 设置进度回调
def progress_callback(progress):
    print(f"进度: {progress['percentage']:.1f}%")
    print(f"已完成: {progress['completed']}/{progress['total']}")

analyzer.set_progress_callback(progress_callback)

# 执行分析
stocks = [
    {'company': '苹果公司', 'ticker': 'AAPL'},
    {'company': '微软', 'ticker': 'MSFT'},
    # ... 更多股票
]

result = analyzer.analyze_multiple_stocks(
    stocks,
    strategy="adaptive",  # 自适应策略
    timeout=300           # 超时时间
)

📊 工具和Agent详解

1. 核心工具列表

数据获取工具

  • AkShareTool: A股数据获取,支持实时和历史数据
  • MarketDataTool: 市场数据获取,包括行情和资金流向
  • NewsSearchTool: 新闻搜索,获取相关新闻和公告

分析工具

  • FundamentalAnalysisTool: 基本面分析,财务指标和估值分析
  • TechnicalAnalysisTool: 技术分析,技术指标和图表分析
  • RiskAssessmentTool: 风险评估,风险识别和量化分析
  • SentimentAnalysisTool: 情绪分析,市场情绪和新闻情绪分析

决策工具

  • InvestmentAdvisorTool: 投资建议,策略制定和目标价位设定
  • ReportGenerationTool: 报告生成,自动化报告生成和格式化
  • QualityControlTool: 质量控制,分析结果验证和质量评估

2. Agent配置说明

数据收集团队Agent

market_researcher:
  role: "市场研究员"
  goal: "收集{company}的市场新闻、行业信息和公司动态"
  backstory: "资深市场分析师,精通市场研究和行业分析"
  tools: [akshare_tool, serper_dev_tool, sentiment_analysis_tool]

financial_data_expert:
  role: "财务数据专家"
  goal: "获取并分析{company}的财务报表和关键财务指标"
  backstory: "金融数据专家,精通财务数据分析和处理"
  tools: [akshare_tool, financial_calculator_tool]

分析团队Agent

fundamental_analyst:
  role: "基本面分析师"
  goal: "评估{company}的财务状况和内在价值"
  backstory: "基本面分析专家,擅长财务分析和价值评估"
  tools: [fundamental_analysis_tool, financial_calculator_tool]

risk_assessment_specialist:
  role: "风险评估师"
  goal: "识别和量化{company}的投资风险"
  backstory: "风险管理专家,精通风险识别和量化分析"
  tools: [risk_assessment_tool, financial_calculator_tool]

决策团队Agent

investment_advisor:
  role: "投资策略顾问"
  goal: "基于综合分析为{company}提供投资建议"
  backstory: "资深投资顾问,擅长投资策略制定和风险控制"
  tools: [investment_advisor_tool, risk_assessment_tool]

report_generator:
  role: "报告生成器"
  goal: "生成{company}的详细投资分析报告"
  backstory: "专业报告撰写员,擅长数据可视化和报告撰写"
  tools: [report_generation_tool, charting_tool]

🔧 高级配置

1. 性能优化

缓存配置

# 在 StockAnalysisSystem 中配置
system = StockAnalysisSystem()
system.cache_ttl = 7200  # 2小时缓存
system.max_cache_size = 1000  # 最大缓存数量

并发配置

# 批量分析并发配置
analyzer = BatchStockAnalyzer(
    max_workers=10,     # 最大并发数
    timeout=600,        # 超时时间(秒)
    retry_count=3,      # 重试次数
    strategy="adaptive" # 自适应策略
)

2. 自定义工具开发

创建自定义工具

from src.tools.base_tool import BaseTool

class CustomAnalysisTool(BaseTool):
    name: str = "Custom Analysis Tool"
    description: str = "自定义分析工具"

    def _run(self, input_data: str) -> str:
        # 实现自定义分析逻辑
        result = self.custom_analysis(input_data)
        return result

    def custom_analysis(self, data):
        # 自定义分析实现
        return "分析结果"

注册自定义工具

# 在 config/tools.yaml 中添加
custom_analysis_tool:
  name: "自定义分析工具"
  description: "执行自定义分析逻辑"
  module: "src.tools.custom_tools"
  class: "CustomAnalysisTool"

3. 预警规则配置

价格预警

monitor.add_alert_rule(
    "price_breakout",
    "AAPL",
    "price",
    "above",
    180.0,
    "苹果股价突破180美元"
)

技术指标预警

monitor.add_alert_rule(
    "rsi_oversold",
    "AAPL",
    "indicator",
    "below",
    30,
    "RSI指标低于30,超卖信号"
)

评分预警

monitor.add_alert_rule(
    "score_drop",
    "AAPL",
    "score",
    "below",
    60,
    "综合评分低于60分"
)

🧪 测试和调试

1. 单元测试

# 运行所有测试
python -m pytest tests/

# 运行特定测试
python -m pytest tests/test_stock_analysis_system.py -v

# 运行性能测试
python -m pytest tests/test_performance.py -v

2. 集成测试

# 运行系统集成测试
python test_final_system.py

# 测试特定功能
python main.py single --company "测试公司" --ticker "TEST"

3. 调试模式

# 启用调试日志
export LOG_LEVEL=DEBUG
python main.py single --company "苹果公司" --ticker "AAPL"

# 查看详细执行过程
python src/flows/investment_flow.py

🔒 安全和合规

1. API密钥管理

  • 使用环境变量存储敏感信息
  • 定期轮换API密钥
  • 监控API使用情况
  • 设置使用限额

2. 数据安全

  • 本地数据加密存储
  • 安全的文件权限设置
  • 敏感信息脱敏处理
  • 访问日志记录

3. 合规性考虑

  • 遵守数据使用条款
  • 投资建议免责声明
  • 风险提示和警示
  • 监管合规要求

📈 性能监控

1. 系统监控

  • CPU和内存使用率
  • 网络请求延迟
  • API调用成功率
  • 缓存命中率

2. 业务监控

  • 分析成功率
  • 平均响应时间
  • 错误率和异常
  • 用户满意度

3. 性能优化

  • 数据库查询优化
  • 缓存策略优化
  • 并发处理优化
  • 内存使用优化

🚨 故障排除

1. 常见错误

API密钥错误

错误:缺少必要的环境变量: OPENAI_API_KEY
解决方案:在.env文件中设置正确的API密钥

网络连接错误

错误:网络请求失败
解决方案:检查网络连接,设置代理,或重试

数据获取失败

错误:数据获取失败
解决方案:检查股票代码格式,确认数据源可用

2. 性能问题

响应缓慢

  • 减少并发数量
  • 启用缓存机制
  • 优化数据查询
  • 升级硬件配置

内存不足

  • 减少批量处理数量
  • 清理缓存数据
  • 优化数据结构
  • 增加虚拟内存

3. 数据质量问题

数据不完整

  • 检查数据源状态
  • 验证股票代码
  • 重试数据获取
  • 使用备用数据源

数据异常

  • 启用数据验证
  • 设置异常阈值
  • 手动数据修正
  • 质量监控报警

🤝 贡献指南

1. 开发环境设置

# 克隆项目
git clone <repository-url>
cd crewai

# 创建虚拟环境
python -m venv venv
source venv/bin/activate  # Linux/Mac
venv\Scripts\activate     # Windows

# 安装开发依赖
pip install -r requirements-dev.txt

2. 代码规范

  • 遵循PEP 8代码规范
  • 使用类型注解
  • 编写单元测试
  • 添加文档注释

3. 提交流程

  1. Fork 项目
  2. 创建功能分支
  3. 提交代码变更
  4. 创建 Pull Request
  5. 代码审查和合并

📄 许可证

本项目采用 MIT 许可证 - 详见 LICENSE 文件。

🙏 致谢

📞 支持和反馈


⚠️ 免责声明

重要提醒:本系统提供的分析结果和建议仅供参考,不构成投资建议。投资有风险,决策需谨慎。

  • 本系统基于公开数据和AI模型分析,可能存在误差
  • 股票市场具有不确定性,历史表现不代表未来结果
  • 用户应根据自身风险承受能力做出投资决策
  • 建议结合多方信息和专业投资顾问建议
  • 开发者不对使用本系统造成的投资损失负责

使用本系统即表示您已理解并同意以上免责声明。


最后更新时间:2025-09-18 版本号:v1.0.0 维护者:CrewAI股票分析系统团队

About

基于CrewAI框架构建的智能股票分析系统,利用多Agent协作和智能流程控制,提供全面的股票投资分析服务。 🚀 特性 : 智能股票分析 基于AI的多维度股票分析, 批量处理 高效的批量股票分析, 实时监控 股票价格和指标实时监控 , 预警系统 智能预警和通知, Web界面 直观的Web管理界面

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Python 96.8%
  • HTML 3.2%