8.8 KiB
8.8 KiB
资金流向功能说明 v2.0
🎯 设计理念(重大改进)
v2.0 的核心改变
从"手动提取"到"AI智能分析"
- ❌ 旧方法:代码硬编码提取特定字段(区间资金流向、主力资金流向等)
- ✅ 新方法:将问财返回的所有原始数据直接喂给AI,让AI自己识别、提取和分析
为什么这样更好?
- 更简单:不需要手动匹配列名,代码更简洁
- 更灵活:问财字段变化时不需要修改代码
- 更智能:AI可以发现我们没想到的数据关联
- 更全面:不会遗漏任何有价值的数据
- 更强大:AI能理解数据的深层含义和相互关系
📊 工作流程
问财查询 → 获取所有原始数据 → 格式化为易读文本 → 喂给AI分析师 → 生成专业报告
详细流程
-
查询问财
- 问句:
{股票代码}近20个交易日区间资金流向、区间主力资金流向、区间涨跌幅 - 返回:DataFrame 或 字典
- 问句:
-
数据处理(
stock_data.py)- 统一转换为 DataFrame
- 提取所有字段和数值
- 大数字自动转换为亿元显示
- 保存为易读的字典格式
-
数据传递(
ai_agents.py)- 将原始数据传递给资金面分析师
- 不做任何过滤或筛选
-
AI分析(
deepseek_client.py)- AI收到所有问财数据
- AI自己识别关键字段
- AI自己提取数值
- AI自己计算比例关系
- AI基于实际数据生成分析报告
🔧 代码改动说明
1. stock_data.py - 简化数据获取
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智能分析
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会自动:
- 识别出"区间资金流向"、"主力资金流向"等关键字段
- 提取数值并注意单位(亿元)
- 计算主力资金占比 = 98.77 / 123.46 = 80%
- 分析大单、中单、小单的分布
- 结合涨跌幅判断资金效率
- 给出主力行为判断(吸筹/派发/洗盘等)
✅ 优势总结
技术优势
-
代码简洁
- 数据获取逻辑从 ~200行 减少到 ~100行
- 不需要维护字段映射表
- 不需要处理列名变化
-
容错性强
- 问财字段名变化?没关系,AI会自己找
- 新增字段?自动包含在分析中
- 缺失字段?AI会注意到并说明
-
扩展性好
- 要分析更多维度?直接改查询语句
- 要调整分析角度?修改AI提示词
- 要支持新数据源?只需统一格式
分析优势
-
更全面
- 不会遗漏任何字段
- AI能发现数据间的隐藏关联
- 可以分析我们没想到的角度
-
更智能
- AI理解数据的业务含义
- 自动识别异常值
- 能做出逻辑推理
-
更灵活
- 不同股票可能有不同字段,AI都能处理
- 可以根据实际数据调整分析重点
- 能适应各种数据格式
🧪 测试方法
运行测试脚本
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
...
🎯 最佳实践
查询语句优化
可以根据需要调整问财查询语句,获取更多数据:
# 基础查询
query = f"{symbol}近20个交易日区间资金流向、区间主力资金流向、区间涨跌幅"
# 扩展查询(获取更多维度)
query = f"{symbol}近20个交易日区间资金流向、区间主力资金流向、区间大单净流入、区间中单净流入、区间小单净流入、区间换手率、区间涨跌幅"
AI会自动分析所有返回的字段!
AI提示词优化
如果需要特别关注某些方面,可以在提示词中强调:
prompt = f"""
{fund_flow_section}
请特别关注:
1. 主力资金的进出节奏
2. 大单与中小单的博弈
3. 资金流向与股价的背离情况
基于以上数据进行深度分析...
"""
🔄 版本对比
| 特性 | v1.0(手动提取) | v2.0(AI智能) |
|---|---|---|
| 代码行数 | ~200行 | ~100行 |
| 字段匹配 | 硬编码 | AI自动识别 |
| 列名变化 | 需修改代码 | 无需修改 |
| 新增字段 | 需添加代码 | 自动包含 |
| 分析深度 | 预定义 | AI自主判断 |
| 容错能力 | 弱 | 强 |
| 扩展性 | 差 | 好 |
📝 注意事项
-
数据质量依赖问财
- 如果问财返回数据不完整,AI会指出缺失
- 如果问财数据异常,AI会识别并说明
-
AI理解能力
- 使用 DeepSeek 等高质量模型效果更好
- 提示词要明确,避免AI假设数据
-
数据格式
- 大数字自动转为亿元显示,便于AI理解
- 保留原始数值供AI精确计算
🚀 未来优化方向
-
多时间周期
- 同时获取5日、10日、20日数据
- AI分析资金流向的时间趋势
-
数据对比
- 与同行业股票对比
- 与大盘资金流向对比
-
可视化
- 生成资金流向图表
- AI基于图表进行分析
-
实时监控
- 定期查询资金流向
- AI识别异常资金变化
更新日期
2025年10月6日 - v2.0
作者
AI股票分析系统开发团队
结论:v2.0 通过"让AI自己分析"的设计理念,实现了更简单、更智能、更强大的资金面分析功能!🎉