# 新闻公告分析师集成完成 ✅ ## 📋 任务概述 已成功在市场情绪分析师后面增加新闻公告分析师,使用pywencai获取最新新闻和公告,并将所有数据喂给新闻公告分析师进行专业分析。 ## ✨ 完成的工作 ### 1. 创建新闻公告数据模块 ✅ **文件:** `news_announcement_data.py` **功能:** - ✅ 使用pywencai查询"股票代码新闻" - ✅ 使用pywencai查询"股票代码公告" - ✅ 提取所有返回的文字数据 - ✅ 格式化为AI可读的文本 - ✅ 最多获取20条新闻/公告(可配置) **核心方法:** ```python class NewsAnnouncementDataFetcher: def get_news_and_announcements(symbol) # 获取新闻和公告 def _get_news_data(symbol) # 获取新闻 def _get_announcement_data(symbol) # 获取公告 def format_news_announcements_for_ai() # 格式化为AI文本 ``` ### 2. 创建新闻公告分析师 ✅ **修改文件:** `ai_agents.py` **新增方法:** ```python def news_announcement_analyst_agent(stock_info, news_announcement_data) ``` **分析维度:** 1. **新闻分析** - 梳理最新重要新闻 - 分析新闻性质(利好/利空/中性) - 评估对股价的影响 - 识别市场热点 2. **公告分析** - 梳理最新重要公告 - 分析公告类型(业绩、重组、增持等) - 评估实质性影响 - 解读战略意图 3. **重大事件识别** - 识别影响股价的重大事件 - 评估紧迫性和重要性 - 预判后续发展 4. **市场反应分析** - 分析市场反应 - 判断预期差 - 识别交易机会 5. **风险提示** - 识别风险信号 - 评估负面影响 6. **投资建议** - 基于新闻公告的操作建议 - 关键时间节点提示 ### 3. 集成到分析流程 ✅ **修改文件:** `app.py` **流程更新:** ``` 旧流程(5位分析师): 技术 → 基本面 → 资金 → 风险 → 情绪 → 讨论 → 决策 新流程(6位分析师): 技术 → 基本面 → 资金 → 风险 → 情绪 → 新闻公告 → 讨论 → 决策 ``` **进度条更新:** - 40%:资金流向数据 - 45%:市场情绪数据 - 50%:新闻公告数据 ⭐ 新增 - 55%:初始化AI - 75%:AI分析完成 - 88%:团队讨论 - 100%:最终决策 ### 4. 更新团队讨论 ✅ **修改:** `ai_agents.py` 中的 `conduct_team_discussion` 方法 **更新内容:** - ✅ 加入新闻公告分析师的报告 - ✅ 讨论中考虑新闻公告的影响和时效性 - ✅ 团队成员从5位增加到6位 ## 📊 实际效果 ### 数据获取示例 ``` 📰 正在获取最新新闻数据... 使用问财查询: 000001新闻 ✓ 成功获取 15 条新闻 📢 正在获取最新公告数据... 使用问财查询: 000001公告 ✓ 成功获取 12 条公告 ✅ 新闻公告数据获取完成 ``` ### 格式化数据示例 ``` 【最新新闻】 查询时间:2025-10-07 15:30:22 新闻数量:15条 新闻 1: 股票简称: 平安银行 新闻标题: 平安银行三季度业绩超预期 发布时间: 2025-10-06 新闻内容: ...(完整新闻内容) 新闻 2: ... 【最新公告】 查询时间:2025-10-07 15:30:25 公告数量:12条 公告 1: 公告标题: 关于2025年第三季度业绩预告 公告类型: 业绩预告 发布日期: 2025-10-05 公告摘要: ...(完整公告内容) 公告 2: ... ``` ### 新闻公告分析师输出 ``` 📰 新闻公告分析师正在分析中... ✓ 已获取 15 条新闻,12 条公告 【新闻公告分析报告】 一、新闻分析 1. 最新重要新闻梳理 - 业绩超预期新闻(利好) - 行业政策变化(中性偏利好) ... 二、公告分析 1. 业绩预告公告 - 第三季度净利润增长25% - 超出市场预期... 三、重大事件识别 ... 四、市场反应分析 ... 五、风险提示 ... 六、投资建议 ... ``` ## 🎯 核心特点 ### 1. 数据全面 - ✅ 使用pywencai获取实时新闻 - ✅ 使用pywencai获取最新公告 - ✅ 所有文字数据完整传递给AI - ✅ 最多获取20条(避免数据过载) ### 2. 分析专业 - ✅ 6个分析维度全面覆盖 - ✅ 识别利好利空性质 - ✅ 评估实质性影响 - ✅ 提供操作建议 ### 3. 流程完整 - ✅ 数据获取 → AI分析 → 团队讨论 → 最终决策 - ✅ 新闻公告分析融入整体分析框架 - ✅ 与其他分析师协同工作 ### 4. 用户友好 - ✅ 清晰的进度提示 - ✅ 详细的数据统计(X条新闻,X条公告) - ✅ 友好的错误处理 ## 🚀 使用方法 ### 自动使用(推荐) 1. 启动应用: ```bash streamlit run app.py ``` 2. 输入A股代码(如:000001) 3. 点击"开始分析" 4. 系统会自动: - 获取新闻公告数据 - 传递给新闻公告分析师 - 生成专业分析报告 - 参与团队讨论 - 影响最终决策 ### 单独测试模块 ```bash python news_announcement_data.py ``` ### 代码中使用 ```python from news_announcement_data import NewsAnnouncementDataFetcher # 创建获取器 fetcher = NewsAnnouncementDataFetcher() # 获取新闻公告数据 data = fetcher.get_news_and_announcements("000001") # 检查是否成功 if data.get("data_success"): # 查看新闻数量 news_count = data['news_data']['count'] announcement_count = data['announcement_data']['count'] print(f"获取了 {news_count} 条新闻,{announcement_count} 条公告") # 格式化为AI文本 formatted_text = fetcher.format_news_announcements_for_ai(data) print(formatted_text) ``` ## 📈 分析师团队 ### 更新后的团队结构(6位分析师) | 序号 | 分析师 | 职责 | 数据来源 | |------|--------|------|----------| | 1 | 技术分析师 | 技术指标、趋势 | yfinance/akshare | | 2 | 基本面分析师 | 财务、估值 | yfinance/akshare | | 3 | 资金面分析师 | 资金流向 | pywencai | | 4 | 风险管理师 | 风险识别 | 技术指标 | | 5 | 市场情绪分析师 | ARBR、情绪 | akshare | | 6 | 新闻公告分析师 ⭐ | 新闻、公告 | pywencai ⭐ | ### 团队讨论 现在团队讨论包含6位分析师的观点: ``` 主持人:现在进行投资决策团队会议,参会人员包括: - 技术分析师 - 基本面分析师 - 资金面分析师 - 风险管理师 - 市场情绪分析师 - 新闻公告分析师 ⭐ 新增 各位,针对XX股票,请发表你们的观点... ``` ## 📁 修改的文件列表 ### 新增文件 - `news_announcement_data.py` - 新闻公告数据模块(核心) - `新闻公告分析师集成完成说明.md` - 本文档 ### 修改的文件 - `ai_agents.py` - 新增 `news_announcement_analyst_agent` 方法 - 更新 `run_multi_agent_analysis` 方法(加入news_announcement_data参数) - 更新 `conduct_team_discussion` 方法(加入新闻公告报告) - `app.py` - 新增新闻公告数据获取步骤(步骤5) - 更新进度条百分比 - 更新步骤编号(6→7, 7→8, 8→9) - 更新侧边栏帮助信息 ## ⚙️ 配置选项 ### 调整获取数量 编辑 `news_announcement_data.py`: ```python class NewsAnnouncementDataFetcher: def __init__(self): self.max_items = 20 # 改为你想要的数量 ``` **建议值:** - 10-15条:快速分析,响应快 - 20-30条:全面分析(默认20) - 30+条:深度分析,但AI处理时间更长 ## ⚠️ 注意事项 ### 1. 仅支持A股 - 当前仅支持中国A股(6位代码) - 美股暂不支持新闻公告功能 ### 2. 数据依赖 - 依赖pywencai库和问财数据源 - 需要稳定的网络连接 - 可能受到API频率限制 ### 3. 数据量控制 - 默认最多获取20条新闻/公告 - 过多数据会增加AI处理时间 - 过少数据可能信息不全 ### 4. 数据时效性 - 新闻公告数据为实时获取 - 建议及时分析,避免过时 ## 🎯 使用建议 ### 1. 关注重点 - **利好新闻**:业绩增长、政策支持、战略合作等 - **利空新闻**:业绩下滑、监管处罚、重大亏损等 - **重要公告**:业绩预告、增持减持、重大重组等 ### 2. 时效把握 - 新闻公告往往有时效性 - 重大事件前后是关键时期 - 结合技术分析判断介入时机 ### 3. 风险意识 - 注意公告中的风险提示 - 识别可能的负面影响 - 谨慎对待炒作性新闻 ## 📊 分析流程对比 ### 之前(5位分析师) ``` 技术分析 → 基本面分析 → 资金分析 → 风险管理 → 市场情绪 → 团队讨论 → 最终决策 ``` ### 现在(6位分析师) ``` 技术分析 → 基本面分析 → 资金分析 → 风险管理 → 市场情绪 → 新闻公告 ⭐ → 团队讨论(6人) → 最终决策 ``` ## ✅ 测试验证 已通过测试: - ✅ 新闻数据获取正常 - ✅ 公告数据获取正常 - ✅ 数据格式化正常 - ✅ AI分析正常 - ✅ 团队讨论包含新闻公告观点 - ✅ 无语法错误 ## 🎉 总结 ✅ **任务完成**!现在系统拥有6位专业分析师: 1. **技术分析师** - 技术指标和趋势 2. **基本面分析师** - 财务和估值 3. **资金面分析师** - 资金流向和主力行为 4. **风险管理师** - 风险识别和控制 5. **市场情绪分析师** - ARBR等情绪指标 6. **新闻公告分析师** ⭐ - 新闻事件和公司公告 **新闻公告分析师的加入使得:** - ✅ 分析更全面(增加事件驱动维度) - ✅ 时效性更强(实时新闻公告) - ✅ 风险识别更准确(及时发现利空) - ✅ 机会把握更精准(及时发现利好) 系统现在能够从**技术、基本面、资金、风险、情绪、新闻**6个维度进行全方位分析!🎯📈 --- **完成日期:** 2025年10月7日 **功能状态:** ✅ 已完成并测试通过 **分析师数量:** 5 → 6 ⭐