317 lines
8.8 KiB
Markdown
317 lines
8.8 KiB
Markdown
# 资金流向功能说明 v2.0
|
||
|
||
## 🎯 设计理念(重大改进)
|
||
|
||
### v2.0 的核心改变
|
||
|
||
**从"手动提取"到"AI智能分析"**
|
||
|
||
- ❌ **旧方法**:代码硬编码提取特定字段(区间资金流向、主力资金流向等)
|
||
- ✅ **新方法**:将问财返回的**所有原始数据**直接喂给AI,让AI自己识别、提取和分析
|
||
|
||
### 为什么这样更好?
|
||
|
||
1. **更简单**:不需要手动匹配列名,代码更简洁
|
||
2. **更灵活**:问财字段变化时不需要修改代码
|
||
3. **更智能**:AI可以发现我们没想到的数据关联
|
||
4. **更全面**:不会遗漏任何有价值的数据
|
||
5. **更强大**:AI能理解数据的深层含义和相互关系
|
||
|
||
## 📊 工作流程
|
||
|
||
```
|
||
问财查询 → 获取所有原始数据 → 格式化为易读文本 → 喂给AI分析师 → 生成专业报告
|
||
```
|
||
|
||
### 详细流程
|
||
|
||
1. **查询问财**
|
||
- 问句:`{股票代码}近20个交易日区间资金流向、区间主力资金流向、区间涨跌幅`
|
||
- 返回:DataFrame 或 字典
|
||
|
||
2. **数据处理**(`stock_data.py`)
|
||
- 统一转换为 DataFrame
|
||
- 提取所有字段和数值
|
||
- 大数字自动转换为亿元显示
|
||
- 保存为易读的字典格式
|
||
|
||
3. **数据传递**(`ai_agents.py`)
|
||
- 将原始数据传递给资金面分析师
|
||
- 不做任何过滤或筛选
|
||
|
||
4. **AI分析**(`deepseek_client.py`)
|
||
- AI收到所有问财数据
|
||
- AI自己识别关键字段
|
||
- AI自己提取数值
|
||
- AI自己计算比例关系
|
||
- AI基于实际数据生成分析报告
|
||
|
||
## 🔧 代码改动说明
|
||
|
||
### 1. stock_data.py - 简化数据获取
|
||
|
||
```python
|
||
def get_fund_flow_data(self, symbol):
|
||
"""获取问财数据 - 返回所有原始数据"""
|
||
|
||
# 查询问财
|
||
result = pywencai.get(query=query, loop=True)
|
||
|
||
# 转换为DataFrame
|
||
df_result = pd.DataFrame([result]) if isinstance(result, dict) else result
|
||
|
||
# 提取所有数据
|
||
raw_data_dict = {}
|
||
for col in df_result.columns:
|
||
value = data.get(col)
|
||
# 大数字转换为亿元便于阅读
|
||
if abs(value) > 100000000:
|
||
raw_data_dict[col] = f"{value} ({value/100000000:.2f}亿元)"
|
||
else:
|
||
raw_data_dict[col] = value
|
||
|
||
# 返回所有原始数据
|
||
return {
|
||
"query_success": True,
|
||
"raw_data": raw_data_dict,
|
||
"columns": df_result.columns.tolist()
|
||
}
|
||
```
|
||
|
||
**关键点**:
|
||
- ✅ 不手动提取特定字段
|
||
- ✅ 保留所有问财返回的数据
|
||
- ✅ 只做格式化,不做数据筛选
|
||
|
||
### 2. deepseek_client.py - AI智能分析
|
||
|
||
```python
|
||
def fund_flow_analysis(self, stock_info, indicators, fund_flow_data):
|
||
"""资金面分析 - 让AI自己分析所有数据"""
|
||
|
||
# 构建包含所有原始数据的提示词
|
||
raw_data = fund_flow_data.get('raw_data', {})
|
||
|
||
fund_flow_section = "\n【问财资金流向完整数据】\n"
|
||
for key, value in raw_data.items():
|
||
fund_flow_section += f"- {key}: {value}\n"
|
||
|
||
prompt = f"""
|
||
你是资金面分析师。
|
||
|
||
以下是问财返回的所有数据:
|
||
{fund_flow_section}
|
||
|
||
请你:
|
||
1. 自己识别哪些是资金流向字段
|
||
2. 自己提取关键数值
|
||
3. 自己计算占比和关系
|
||
4. 基于实际数据进行分析
|
||
|
||
给出专业的资金面分析报告。
|
||
"""
|
||
```
|
||
|
||
**关键点**:
|
||
- ✅ 将所有数据都给AI
|
||
- ✅ 明确要求AI自己提取和分析
|
||
- ✅ 强调基于实际数据而非假设
|
||
|
||
## 💡 使用示例
|
||
|
||
### 问财返回的数据示例
|
||
|
||
```
|
||
【问财资金流向完整数据(近20个交易日)】
|
||
数据来源:同花顺问财
|
||
股票名称:歌尔股份
|
||
股票代码:002241
|
||
|
||
- 近20个交易日区间资金流向[20240101]: 12345678900 (123.46亿元)
|
||
- 近20个交易日区间主力资金流向[20240101]: 9876543210 (98.77亿元)
|
||
- 近20个交易日区间涨跌幅[20240101]: 15.23
|
||
- 近20个交易日区间大单净流入[20240101]: 5000000000 (50.00亿元)
|
||
- 近20个交易日区间中单净流入[20240101]: 2000000000 (20.00亿元)
|
||
- 近20个交易日区间小单净流入[20240101]: -3000000000 (-30.00亿元)
|
||
- 近20个交易日区间换手率[20240101]: 45.6
|
||
...(所有其他字段)
|
||
|
||
以上是问财返回的所有资金流向相关数据,请仔细分析这些数据的含义和相互关系。
|
||
```
|
||
|
||
### AI分析师的工作
|
||
|
||
AI会自动:
|
||
1. 识别出"区间资金流向"、"主力资金流向"等关键字段
|
||
2. 提取数值并注意单位(亿元)
|
||
3. 计算主力资金占比 = 98.77 / 123.46 = 80%
|
||
4. 分析大单、中单、小单的分布
|
||
5. 结合涨跌幅判断资金效率
|
||
6. 给出主力行为判断(吸筹/派发/洗盘等)
|
||
|
||
## ✅ 优势总结
|
||
|
||
### 技术优势
|
||
|
||
1. **代码简洁**
|
||
- 数据获取逻辑从 ~200行 减少到 ~100行
|
||
- 不需要维护字段映射表
|
||
- 不需要处理列名变化
|
||
|
||
2. **容错性强**
|
||
- 问财字段名变化?没关系,AI会自己找
|
||
- 新增字段?自动包含在分析中
|
||
- 缺失字段?AI会注意到并说明
|
||
|
||
3. **扩展性好**
|
||
- 要分析更多维度?直接改查询语句
|
||
- 要调整分析角度?修改AI提示词
|
||
- 要支持新数据源?只需统一格式
|
||
|
||
### 分析优势
|
||
|
||
1. **更全面**
|
||
- 不会遗漏任何字段
|
||
- AI能发现数据间的隐藏关联
|
||
- 可以分析我们没想到的角度
|
||
|
||
2. **更智能**
|
||
- AI理解数据的业务含义
|
||
- 自动识别异常值
|
||
- 能做出逻辑推理
|
||
|
||
3. **更灵活**
|
||
- 不同股票可能有不同字段,AI都能处理
|
||
- 可以根据实际数据调整分析重点
|
||
- 能适应各种数据格式
|
||
|
||
## 🧪 测试方法
|
||
|
||
### 运行测试脚本
|
||
|
||
```bash
|
||
python test_fund_flow.py
|
||
```
|
||
|
||
### 预期输出
|
||
|
||
```
|
||
正在使用问财查询资金流向数据: 002241近20个交易日区间资金流向、区间主力资金流向、区间涨跌幅
|
||
问财返回的数据类型: <class 'dict'>
|
||
问财返回字典,转换为DataFrame
|
||
成功转换,形状: (1, 25)
|
||
问财返回的列名: ['股票代码', '股票简称', '近20个交易日区间资金流向[20240101]', ...]
|
||
成功获取 002241 的问财数据,共 23 个字段
|
||
|
||
✅ 成功获取问财数据
|
||
|
||
【基本信息】
|
||
股票简称: 歌尔股份
|
||
股票代码: 002241
|
||
数据字段数量: 23 个
|
||
|
||
【问财返回的所有字段】
|
||
1. 股票代码
|
||
2. 股票简称
|
||
3. 近20个交易日区间资金流向[20240101]
|
||
4. 近20个交易日区间主力资金流向[20240101]
|
||
5. 近20个交易日区间涨跌幅[20240101]
|
||
...
|
||
|
||
【问财原始数据】
|
||
近20个交易日区间资金流向[20240101]: 12345678900 (123.46亿元)
|
||
近20个交易日区间主力资金流向[20240101]: 9876543210 (98.77亿元)
|
||
近20个交易日区间涨跌幅[20240101]: 15.23
|
||
...
|
||
```
|
||
|
||
## 🎯 最佳实践
|
||
|
||
### 查询语句优化
|
||
|
||
可以根据需要调整问财查询语句,获取更多数据:
|
||
|
||
```python
|
||
# 基础查询
|
||
query = f"{symbol}近20个交易日区间资金流向、区间主力资金流向、区间涨跌幅"
|
||
|
||
# 扩展查询(获取更多维度)
|
||
query = f"{symbol}近20个交易日区间资金流向、区间主力资金流向、区间大单净流入、区间中单净流入、区间小单净流入、区间换手率、区间涨跌幅"
|
||
```
|
||
|
||
AI会自动分析所有返回的字段!
|
||
|
||
### AI提示词优化
|
||
|
||
如果需要特别关注某些方面,可以在提示词中强调:
|
||
|
||
```python
|
||
prompt = f"""
|
||
{fund_flow_section}
|
||
|
||
请特别关注:
|
||
1. 主力资金的进出节奏
|
||
2. 大单与中小单的博弈
|
||
3. 资金流向与股价的背离情况
|
||
|
||
基于以上数据进行深度分析...
|
||
"""
|
||
```
|
||
|
||
## 🔄 版本对比
|
||
|
||
| 特性 | v1.0(手动提取) | v2.0(AI智能) |
|
||
|------|----------------|----------------|
|
||
| 代码行数 | ~200行 | ~100行 |
|
||
| 字段匹配 | 硬编码 | AI自动识别 |
|
||
| 列名变化 | 需修改代码 | 无需修改 |
|
||
| 新增字段 | 需添加代码 | 自动包含 |
|
||
| 分析深度 | 预定义 | AI自主判断 |
|
||
| 容错能力 | 弱 | 强 |
|
||
| 扩展性 | 差 | 好 |
|
||
|
||
## 📝 注意事项
|
||
|
||
1. **数据质量依赖问财**
|
||
- 如果问财返回数据不完整,AI会指出缺失
|
||
- 如果问财数据异常,AI会识别并说明
|
||
|
||
2. **AI理解能力**
|
||
- 使用 DeepSeek 等高质量模型效果更好
|
||
- 提示词要明确,避免AI假设数据
|
||
|
||
3. **数据格式**
|
||
- 大数字自动转为亿元显示,便于AI理解
|
||
- 保留原始数值供AI精确计算
|
||
|
||
## 🚀 未来优化方向
|
||
|
||
1. **多时间周期**
|
||
- 同时获取5日、10日、20日数据
|
||
- AI分析资金流向的时间趋势
|
||
|
||
2. **数据对比**
|
||
- 与同行业股票对比
|
||
- 与大盘资金流向对比
|
||
|
||
3. **可视化**
|
||
- 生成资金流向图表
|
||
- AI基于图表进行分析
|
||
|
||
4. **实时监控**
|
||
- 定期查询资金流向
|
||
- AI识别异常资金变化
|
||
|
||
## 更新日期
|
||
|
||
2025年10月6日 - v2.0
|
||
|
||
## 作者
|
||
|
||
AI股票分析系统开发团队
|
||
|
||
---
|
||
|
||
**结论**:v2.0 通过"让AI自己分析"的设计理念,实现了更简单、更智能、更强大的资金面分析功能!🎉
|
||
|