基于 CrewAI 框架构建的智能股票分析系统,采用多 Agent 协作架构和智能流程控制,提供全面的股票投资分析服务。系统充分利用 CrewAI 的 Crews(团队模式) 和 Flows(流程模式) 实现高效的股票分析。
- 智能股票分析: 基于 AI 的多维度股票分析,包括基本面、技术面、行业分析
- 批量处理: 支持多只股票并行分析,提高效率
- 实时监控: 股票价格和指标实时监控与预警
- 智能决策: 基于综合分析的投资建议生成
- 报告生成: 自动生成详细的投资分析报告
- Web界面: 直观的 Web 管理界面和监控面板
- 多 Agent 协作: 9 个专业化 Agent 分工协作
- 双重架构模式: Crews 模式(团队协作)+ Flows 模式(流程控制)
- 智能数据源: 集成 AkShare、OpenAI、Serper 等数据源
- 缓存机制: 智能缓存提高分析效率
- 错误处理: 完善的异常处理和重试机制
- 扩展性: 模块化设计,易于扩展新功能
┌─────────────────────────────────────────────────────────────┐
│ CrewAI 股票分析系统 │
├─────────────────────────────────────────────────────────────┤
│ ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ │
│ │ 数据收集团队 │ │ 分析团队 │ │ 决策团队 │ │
│ │ │ │ │ │ │ │
│ │ • 市场研究员 │ │ • 基本面分析师 │ │ • 投资顾问 │ │
│ │ • 财务数据专家 │ │ • 风险评估师 │ │ • 报告生成器 │ │
│ │ • 技术分析师 │ │ • 行业专家 │ │ • 质量监控员 │ │
│ │ • 数据验证专家 │ │ │ │ │ │
│ └─────────────────┘ └─────────────────┘ └─────────────────┘ │
│ │ │ │ │
│ └─────────────────────┼─────────────────────┘ │
│ │ │
│ ┌─────────────────────────────────────────────────────────────┐ │
│ │ 核心工具集 │ │
│ │ • AkShare数据工具 • 技术分析工具 • 基本面分析工具 │ │
│ │ • 报告生成工具 • 风险评估工具 • 市场情绪分析 │ │
│ └─────────────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────┘
- 市场研究员: 收集市场新闻、行业信息和公司动态
- 财务数据专家: 获取财务报表、关键财务指标
- 技术分析师: 收集价格数据、技术指标
- 数据验证专家: 验证数据质量、处理异常值
- 基本面分析师: 评估公司基本面、财务健康状况
- 风险评估师: 分析投资风险、风险因素识别
- 行业专家: 分析行业地位、竞争环境
- 投资策略顾问: 生成投资建议、策略制定
- 报告生成器: 生成详细分析报告
- 质量监控员: 质量控制、结果验证
┌─────────────────────────────────────────────────────────────────────────────┐
│ 单股票分析主流程 │
├─────────────────────────────────────────────────────────────────────────────┤
│ │
│ 📥 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' │ │
│ │ } │ │
│ └─────────────────────────────────────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────────────────────┐
│ 批量分析流程 │
├─────────────────────────────────────────────────────────────────────────────┤
│ │
│ 📥 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' │ │
│ │ } │ │
│ └─────────────────────────────────────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────────────────────┐
│ 智能投资流程 (Flows) │
├─────────────────────────────────────────────────────────────────────────────┤
│ │
│ 📥 INPUT: [用户输入] │
│ │ │
│ ▼ │
│ ┌─────────────────────────────────────────────────────────────────────┐ │
│ │ SmartInvestmentFlow │ │
│ │ 智能投资流程 │ │
│ └─────────────────────────────────────────────────────────────────────┘ │
│ │ │
│ ▼ │
│ ┌─────────────────────────────────────────────────────────────────────┐ │
│ │ 🎯 初始化分析 (@start) │ │
│ │ • 获取用户输入 (公司名称) │ │
│ │ • 初始化分析状态 │ │
│ │ • 设置分析参数 │ │
│ └─────────────────────────────────────────────────────────────────────┘ │
│ │ │
│ ▼ │
│ ┌─────────────────────────────────────────────────────────────────────┐ │
│ │ 🔍 数据质量评估 (@router) │ │
│ │ • 评估数据可获得性 │ │
│ │ • 检查数据完整性 │ │
│ │ • 分析公司重要性 │ │
│ └─────────────────────────────────────────────────────────────────────┘ │
│ │ │
│ ├─── 数据质量高 ──► ┌─────────────────────────────────────────────────┐ │
│ │ │ 📊 深度分析 │ │
│ │ │ • 完整基本面分析 │ │
│ │ │ • 详细风险评估 │ │
│ │ │ • 行业深度分析 │ │
│ │ │ • 竞争对手分析 │ │
│ │ └─────────────────────────────────────────────────┘ │
│ │ │
│ └─── 数据质量中等 ─► ┌─────────────────────────────────────────────────┐ │
│ │ 📈 标准分析 │ │
│ │ • 基本面分析 │ │
│ │ • 基础风险评估 │ │
│ │ • 行业概况分析 │ │
│ └─────────────────────────────────────────────────┘ │
│ │
│ └─── 数据质量低 ──► ┌─────────────────────────────────────────────────┐ │
│ │ 📋 快速分析 │ │
│ │ • 关键指标分析 │ │
│ │ • 简单风险评估 │ │
│ │ • 基本面快照 │ │
│ └─────────────────────────────────────────────────┘ │
│ │
│ ▼ (根据分析深度) │
│ ┌─────────────────────────────────────────────────────────────────────┐ │
│ │ 🎯 智能决策 (@router) │ │
│ │ • 基于分析结果评分 │ │
│ │ • 评估投资价值 │ │
│ │ • 风险收益分析 │ │
│ └─────────────────────────────────────────────────────────────────────┘ │
│ │ │
│ ├─── 评分 ≥ 80 ──► ┌─────────────────────────────────────────────────┐ │
│ │ │ 💰 强烈买入 │ │
│ │ │ • 详细投资建议 │ │
│ │ │ • 目标价位设定 │ │
│ │ │ • 持有时间建议 │ │
│ │ └─────────────────────────────────────────────────┘ │
│ │ │
│ ├─── 评分 60-79 ──► ┌─────────────────────────────────────────────────┐ │
│ │ │ 📈 买入 │ │
│ │ │ • 适度投资建议 │ │
│ │ │ • 风险提示 │ │
│ │ │ • 分批建仓建议 │ │
│ │ └─────────────────────────────────────────────────┘ │
│ │ │
│ └─── 评分 < 60 ──► ┌─────────────────────────────────────────────────┐ │
│ │ ⚠️ 观望/卖出 │ │
│ │ • 风险警告 │ │
│ │ • 减持建议 │ │
│ │ • 替代方案 │ │
│ └─────────────────────────────────────────────────┘ │
│ │ │
│ ▼ │
│ ┌─────────────────────────────────────────────────────────────────────┐ │
│ │ 📋 报告生成 (@listen) │ │
│ │ • 生成结构化报告 │ │
│ │ • 包含图表和数据 │ │
│ │ • 投资建议总结 │ │
│ └─────────────────────────────────────────────────────────────────────┘ │
│ │ │
│ ▼ │
│ ┌─────────────────────────────────────────────────────────────────────┐ │
│ │ 📤 OUTPUT: 个性化分析结果 │ │
│ │ • 根据用户风险偏好调整建议 │ │
│ │ • 提供多种投资策略选择 │ │
│ │ • 持续监控建议 │ │
│ └─────────────────────────────────────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────────────────┘
- 实时数据获取: 通过 AkShare 获取 A 股实时数据
- 历史数据: 支持多种时间周期的历史数据查询
- 财务数据: 财务报表、财务指标、行业对比数据
- 市场数据: 行情数据、资金流向、市场情绪
- 质量评估: 自动评估数据质量和完整性
- 异常检测: 识别和处理异常数据点
- 数据标准化: 统一数据格式和单位
- 缓存机制: 智能缓存减少重复请求
- 财务比率分析: PE、PB、ROE、ROA 等关键比率
- 盈利能力: 营收增长、净利润率、毛利率分析
- 估值分析: DCF估值、相对估值、行业对比
- 财务健康: 负债率、现金流、偿债能力评估
- 趋势分析: 移动平均线、趋势线、支撑阻力位
- 技术指标: RSI、MACD、KDJ、BOLLINGER 等指标
- 图表分析: K线形态、成交量分析、价格形态
- 交易信号: 买入/卖出信号生成
- 行业地位: 市场份额、竞争力分析
- 行业趋势: 发展前景、政策影响、技术变革
- 对比分析: 同行业公司对比分析
- SWOT分析: 优势、劣势、机会、威胁分析
- 市场风险: 系统性风险、市场波动风险
- 财务风险: 偿债风险、流动性风险、盈利风险
- 经营风险: 管理风险、战略风险、运营风险
- 行业风险: 政策风险、技术风险、竞争风险
- 风险评分: 0-100分风险量化评分
- VaR计算: 风险价值评估
- 压力测试: 极端情况下的风险评估
- 敏感性分析: 关键因素变动影响分析
- 评级系统: 六级评级体系(强烈买入到卖出)
- 目标价位: 基于估值的目标价格设定
- 投资策略: 长期持有、波段操作、价值投资等策略
- 资产配置: 建议配置比例和分散化建议
- 个性化推荐: 基于用户风险偏好的个性化建议
- 时机选择: 买入/卖出时机建议
- 组合优化: 投资组合优化建议
- 替代方案: 备选投资标的建议
- 结构化报告: 标准化的分析报告格式
- 图表可视化: 自动生成图表和数据可视化
- 多格式输出: 支持 Markdown、PDF、HTML 等格式
- 模板定制: 可定制的报告模板
- 执行摘要: 关键结论和投资建议摘要
- 亮点突出: 重点关注的数据和发现
- 风险提示: 重要风险因素提示
- 行动建议: 具体的投资行动建议
- 价格监控: 实时价格变动监控
- 指标监控: 关键指标变动监控
- 新闻监控: 相关新闻和公告监控
- 情绪监控: 市场情绪变化监控
- 价格预警: 价格突破预警
- 指标预警: 技术指标信号预警
- 新闻预警: 重要新闻公告预警
- 组合预警: 投资组合风险预警
- 邮件通知: 邮件预警通知
- 短信通知: 短信预警通知
- App推送: 移动端推送通知
- Webhook: 自定义 Webhook 通知
- Python: 3.8+
- 操作系统: Windows/MacOS/Linux
- 内存: 建议 4GB 以上
- 网络: 需要访问 OpenAI API 和数据源
# 克隆项目
git clone <repository-url>
cd crewai_stock_analysis_system
# 安装依赖
pip install -r requirements.txt
# 安装 AkShare (可选,用于 A 股数据)
pip install akshare创建 .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# 运行系统测试
python test_final_system.py
# 检查系统信息
python main.py info# 基本用法
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
# 启动Web应用
python src/web_app.py
# 访问地址
http://localhost:5000Web界面功能:
- 实时监控面板: 显示监控股票的实时状态
- 分析管理: 创建和管理分析任务
- 报告查看: 查看和下载分析报告
- 系统设置: 配置系统参数和预警规则
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()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 # 超时时间
)- AkShareTool: A股数据获取,支持实时和历史数据
- MarketDataTool: 市场数据获取,包括行情和资金流向
- NewsSearchTool: 新闻搜索,获取相关新闻和公告
- FundamentalAnalysisTool: 基本面分析,财务指标和估值分析
- TechnicalAnalysisTool: 技术分析,技术指标和图表分析
- RiskAssessmentTool: 风险评估,风险识别和量化分析
- SentimentAnalysisTool: 情绪分析,市场情绪和新闻情绪分析
- InvestmentAdvisorTool: 投资建议,策略制定和目标价位设定
- ReportGenerationTool: 报告生成,自动化报告生成和格式化
- QualityControlTool: 质量控制,分析结果验证和质量评估
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]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]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]# 在 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" # 自适应策略
)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"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分"
)# 运行所有测试
python -m pytest tests/
# 运行特定测试
python -m pytest tests/test_stock_analysis_system.py -v
# 运行性能测试
python -m pytest tests/test_performance.py -v# 运行系统集成测试
python test_final_system.py
# 测试特定功能
python main.py single --company "测试公司" --ticker "TEST"# 启用调试日志
export LOG_LEVEL=DEBUG
python main.py single --company "苹果公司" --ticker "AAPL"
# 查看详细执行过程
python src/flows/investment_flow.py- 使用环境变量存储敏感信息
- 定期轮换API密钥
- 监控API使用情况
- 设置使用限额
- 本地数据加密存储
- 安全的文件权限设置
- 敏感信息脱敏处理
- 访问日志记录
- 遵守数据使用条款
- 投资建议免责声明
- 风险提示和警示
- 监管合规要求
- CPU和内存使用率
- 网络请求延迟
- API调用成功率
- 缓存命中率
- 分析成功率
- 平均响应时间
- 错误率和异常
- 用户满意度
- 数据库查询优化
- 缓存策略优化
- 并发处理优化
- 内存使用优化
错误:缺少必要的环境变量: OPENAI_API_KEY
解决方案:在.env文件中设置正确的API密钥
错误:网络请求失败
解决方案:检查网络连接,设置代理,或重试
错误:数据获取失败
解决方案:检查股票代码格式,确认数据源可用
- 减少并发数量
- 启用缓存机制
- 优化数据查询
- 升级硬件配置
- 减少批量处理数量
- 清理缓存数据
- 优化数据结构
- 增加虚拟内存
- 检查数据源状态
- 验证股票代码
- 重试数据获取
- 使用备用数据源
- 启用数据验证
- 设置异常阈值
- 手动数据修正
- 质量监控报警
# 克隆项目
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- 遵循PEP 8代码规范
- 使用类型注解
- 编写单元测试
- 添加文档注释
- Fork 项目
- 创建功能分支
- 提交代码变更
- 创建 Pull Request
- 代码审查和合并
本项目采用 MIT 许可证 - 详见 LICENSE 文件。
- 📧 邮箱支持:support@example.com
- 🐛 问题报告:GitHub Issues
- 📖 文档:项目Wiki
- 💬 社区讨论:GitHub Discussions
重要提醒:本系统提供的分析结果和建议仅供参考,不构成投资建议。投资有风险,决策需谨慎。
- 本系统基于公开数据和AI模型分析,可能存在误差
- 股票市场具有不确定性,历史表现不代表未来结果
- 用户应根据自身风险承受能力做出投资决策
- 建议结合多方信息和专业投资顾问建议
- 开发者不对使用本系统造成的投资损失负责
使用本系统即表示您已理解并同意以上免责声明。
最后更新时间:2025-09-18 版本号:v1.0.0 维护者:CrewAI股票分析系统团队