增强资金面mcp数据支撑

This commit is contained in:
oficcejo
2025-10-06 10:30:22 +08:00
parent 7a58400e9e
commit 64524f4e15
9 changed files with 907 additions and 320 deletions
+302
View File
@@ -0,0 +1,302 @@
# 资金流向功能集成说明
## 概述
本次更新成功引入了 `pywencai`(问财)库,为资金面分析师提供真实的资金流向数据支撑,包括近20个交易日的区间资金流向、区间主力资金流向和区间涨跌幅数据。
## 功能特点
### 1. 数据来源
- **数据源**:同花顺问财(pywencai)
- **数据范围**:近20个交易日
- **支持市场**:仅支持中国A股(美股暂不支持)
### 2. 获取的数据指标
问财资金流向数据包括:
- **区间资金流向**
- 总资金流向(元)
- 总资金流向(亿元)
- **区间主力资金流向**
- 主力资金流向(元)
- 主力资金流向(亿元)
- 主力资金占比(%
- **区间涨跌幅**
- 近20日涨跌幅(%
- **额外资金数据**(根据问财返回的数据动态提取)
- 可能包含大单、中单、小单资金流向
- 其他资金相关指标
## 代码改动说明
### 1. requirements.txt
添加了 `pywencai>=0.7.0` 依赖。
### 2. stock_data.py
新增方法:
- `get_fund_flow_data(symbol)`: 使用问财获取资金流向数据
- `_safe_convert(value)`: 安全地转换数值
- `_calculate_main_fund_ratio(main_fund, total_fund)`: 计算主力资金占比
### 3. deepseek_client.py
修改了 `fund_flow_analysis` 方法:
- 新增 `fund_flow_data` 参数
- 将问财数据整合到分析提示词中
- 增强了资金面分析的维度和深度
分析维度包括:
1. 资金流向趋势分析
2. 主力资金行为分析
3. 成交量变化分析
4. 资金面与技术面结合
5. 市场情绪和资金偏好
6. 资金面风险与机会
7. 投资建议
### 4. ai_agents.py
修改了 `fund_flow_analyst_agent` 方法:
- 新增 `fund_flow_data` 参数
- 在分析结果中保存资金流向数据
- 添加数据来源提示信息
修改了 `run_multi_agent_analysis` 方法:
- 新增 `fund_flow_data` 参数
- 将资金流向数据传递给资金面分析师
### 5. app.py
`run_stock_analysis` 函数中:
- 添加获取资金流向数据的步骤
- 仅对A股股票获取问财数据
- 显示数据获取状态提示
- 将数据传递给AI分析系统
## 使用方法
### 安装依赖
```bash
pip install pywencai>=0.7.0
```
或者重新安装所有依赖:
```bash
pip install -r requirements.txt
```
### 运行系统
```bash
streamlit run app.py
```
### 分析A股股票
1. 在输入框中输入A股代码(如 `600519``000001`
2. 点击"开始分析"按钮
3. 系统会自动:
- 获取股票基本信息
- 获取技术指标数据
- 获取财务数据
- **获取问财资金流向数据**(新增)
- 调用AI分析师团队进行分析
4. 在"资金面分析师"标签页查看基于真实资金流向数据的分析报告
### 分析美股
- 美股暂不支持问财资金流向数据
- 资金面分析师将基于技术指标进行分析
- 系统会显示"ℹ️ 美股暂不支持问财资金流向数据"提示
## 数据解读
### 主力资金行为判断
资金面分析师会结合以下情况进行分析:
1. **主力资金持续流入 + 股价上涨**
- 说明主力看好后市
- 资金推动股价上涨
- 是较强的买入信号
2. **主力资金流出 + 股价上涨**
- 需警惕散户接盘风险
- 可能是主力出货
- 上涨动力不足
3. **主力资金流入 + 股价下跌**
- 可能是主力在低位吸筹
- 或是市场整体弱势
- 需结合其他指标判断
4. **主力资金流出 + 股价下跌**
- 主力看空
- 卖出压力大
- 应回避或止损
### 主力资金占比
- **占比 > 70%**: 主力高度控盘
- **占比 50-70%**: 主力参与度较高
- **占比 30-50%**: 主力参与适中
- **占比 < 30%**: 散户为主导
## 注意事项
1. **网络要求**
- pywencai 需要访问同花顺问财网站
- 确保网络连接正常
- 可能受到访问频率限制
2. **数据时效性**
- 资金流向数据为T-1数据(前一交易日)
- 非实时数据
3. **异常处理**
- 如果问财数据获取失败,系统会自动降级
- 资金面分析师将基于技术指标进行分析
- 不会影响其他分析师的正常工作
4. **仅支持A股**
- 问财数据仅支持中国A股
- 美股、港股暂不支持
## 示例查询
问财使用的查询语句格式:
```
{股票代码}近20个交易日区间资金流向、区间主力资金流向、区间涨跌幅
```
例如:
- `600519近20个交易日区间资金流向、区间主力资金流向、区间涨跌幅`
- `000001近20个交易日区间资金流向、区间主力资金流向、区间涨跌幅`
## 效果展示
### 分析流程提示
```
📈 正在获取股票数据...
📊 正在获取财务数据...
💰 正在获取资金流向数据(问财)...
✅ 成功获取问财资金流向数据
🤖 正在初始化AI分析系统...
🔍 AI分析师团队正在分析...
💰 资金面分析师正在分析中...
✓ 已获取问财资金流向数据
```
### 资金面分析报告示例
资金面分析师将基于以下数据进行分析:
```
【问财资金流向数据(近20个交易日)】
区间资金流向:
- 总资金流向:12345678900 元
- 总资金流向(亿元):123.46 亿元
主力资金流向:
- 主力资金流向:9876543210 元
- 主力资金流向(亿元):98.77 亿元
- 主力资金占比:80.00%
区间涨跌幅:
- 近20日涨跌幅:15.23%
```
## 故障排查
### 常见问题
#### 1. 提示 "'dict' object has no attribute 'empty'"
**原因**pywencai.get() 返回了字典而不是DataFrame
**解决方案**:已在最新版本中修复,代码会自动检测返回类型并处理
#### 2. 提示 "问财查询返回None"
**原因**
- 网络连接问题
- 问财服务暂时不可用
- 查询语句不符合问财格式
**解决方案**
- 检查网络连接
- 稍后重试
- 查看控制台输出的详细错误信息
#### 3. 提示 "未能获取问财资金流向数据"
**原因**
- 问财API访问限制
- 股票代码不存在或停牌
- 数据暂时不可用
**解决方案**
- 系统会自动降级到技术指标分析
- 不影响其他分析功能
- 可以尝试其他股票代码
### 测试脚本
使用测试脚本快速验证功能:
```bash
python test_fund_flow.py
```
测试脚本会:
1. 测试多只股票的资金流向数据获取
2. 显示详细的调试信息
3. 打印完整的返回数据
### 调试信息
运行时会输出以下调试信息:
```
正在使用问财查询资金流向数据: 002241近20个交易日区间资金流向、区间主力资金流向、区间涨跌幅
问财返回的数据类型: <class 'dict'> 或 <class 'pandas.DataFrame'>
问财返回DataFrame,形状: (1, 10)
问财返回的列名: ['股票代码', '股票简称', '区间资金流向', ...]
找到的列名 - 资金流向: 区间资金流向, 主力资金: 区间主力资金流向, 涨跌幅: 区间涨跌幅
成功获取 002241 的资金流向数据
```
### 版本兼容性
- **pywencai >= 0.7.0**:支持最新的问财API
- **pandas >= 2.0.3**:数据处理
- **Python >= 3.8**:推荐使用Python 3.10+
## 技术支持
如遇到问题,可:
1. **查看日志**:运行时会在控制台输出详细的调试信息
2. **运行测试脚本**:使用 `test_fund_flow.py` 独立测试
3. **检查依赖**:确保 pywencai 版本正确
4. **网络检查**:确保可以访问同花顺问财
5. **股票代码**:确认是6位数字的A股代码
## 未来优化方向
1. 支持更多时间周期的资金流向数据
2. 增加资金流向的可视化图表
3. 支持资金流向的历史趋势分析
4. 尝试集成其他数据源(如东方财富)
5. 探索美股资金流向数据来源
## 更新日期
2025年10月6日
## 作者
AI股票分析系统开发团队