Files
aiagents-stock/新闻公告分析师集成完成说明.md
T

401 lines
9.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 新闻公告分析师集成完成 ✅
## 📋 任务概述
已成功在市场情绪分析师后面增加新闻公告分析师,使用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 ⭐