# 板块资金流向分析方案
## 💰 评估方法
### 方案1: 通过ETF资金流向评估板块资金(推荐)
**原理**:ETF是被动跟踪某个板块/行业指数的基金,其资金流入流出能直接反映该板块的资金动向。
#### 📊 A股主要板块ETF
| 板块 | ETF代码 | ETF名称 | 追踪指数 |
|-----|---------|---------|---------|
| **科技板块** |
| 半导体 | 512480 | 半导体ETF | 中华半导体指数 |
| 人工智能 | 515070 | 人工智能ETF | 中证人工智能 |
| 芯片 | 159995 | 芯片ETF | 国证芯片指数 |
| 5G | 515050 | 5G ETF | 中证5G通信 |
| **消费板块** |
| 白酒 | 512690 | 酒ETF | 中证白酒指数 |
| 消费 | 159928 | 消费ETF | 中证消费指数 |
| 医药 | 512010 | 医药ETF | 中证医药指数 |
| **金融板块** |
| 证券 | 512880 | 证券ETF | 中证全指证券 |
| 银行 | 512800 | 银行ETF | 中证银行指数 |
| 保险 | 512910 | 保险ETF | 中证保险指数 |
| **新能源板块** |
| 新能源车 | 515030 | 新能源车ETF | 中证新能源汽车 |
| 光伏 | 515790 | 光伏ETF | 中证光伏产业 |
| 锂电池 | 159755 | 电池ETF | 中证电池指数 |
#### 🇭🇰 港股主要板块ETF
| 板块 | ETF代码 | ETF名称 |
|-----|---------|---------|
| 恒生科技 | 3033.HK | 南方恒生科技ETF |
| 互联网 | 3022.HK | 恒生互联网科技ETF |
| 医疗保健 | 3067.HK | 恒生医疗保健ETF |
| 金融 | 2828.HK | 恒生金融ETF |
#### 🇺🇸 美股主要板块ETF
| 板块 | ETF代码 | ETF名称 |
|-----|---------|---------|
| 科技 | QQQ | 纳斯达克100 ETF |
| 金融 | XLF | 金融板块ETF |
| 能源 | XLE | 能源板块ETF |
| 医疗 | XLV | 医疗保健ETF |
---
### 方案2: 通过板块成分股涨跌+成交量评估
**原理**:统计板块内龙头股的涨跌幅、成交量变化,综合判断资金流向。
#### 评估指标
1. **平均涨跌幅**:板块内成分股的平均涨幅
2. **成交量比**:今日成交量 vs 昨日成交量
3. **资金流入额** ≈ 成交额 × 涨跌幅系数
4. **强势股占比**:上涨股票数 / 总股票数
---
### 方案3: 通过行业指数评估
**原理**:使用行业分类指数的走势判断板块资金流向。
#### 中证行业指数
- 中证信息技术指数 (930651)
- 中证医药卫生指数 (930652)
- 中证可选消费指数 (930653)
- 中证金融地产指数 (930654)
- 等等...
---
## 🛠️ 实现方案
### 推荐实现方式:ETF资金流向分析
#### 优点
- ✅ 数据直接准确(ETF净流入/流出)
- ✅ 易于实现(只需获取ETF行情和K线)
- ✅ 实时性好
- ✅ 可跨市场对比(A股、港股、美股)
#### 核心逻辑
```python
# 1. 获取ETF实时行情
quote = get_stock_quote(region, etf_code)
price_change_pct = quote['chp'] # 涨跌幅
volume = quote['v'] # 成交量
turnover = quote['tu'] # 成交额
# 2. 获取历史K线计算量能变化
kline = get_stock_kline(region, etf_code, limit=5)
today_volume = kline[-1]['v']
yesterday_volume = kline[-2]['v']
volume_ratio = today_volume / yesterday_volume # 量能比
# 3. 估算资金净流入
# 简化公式:涨跌幅为正且放量 = 资金流入
# 更精确需要逐笔成交数据
if price_change_pct > 0 and volume_ratio > 1:
money_flow = turnover * 0.5 # 估算净流入
else:
money_flow = -turnover * 0.3 # 估算净流出
# 4. 综合评分
score = price_change_pct * 0.5 + (volume_ratio - 1) * 50
```
---
## 📊 数据需求
### 已有功能(可直接使用)
- ✅ `get_stock_quote()` - 获取ETF实时行情
- ✅ `get_stock_kline()` - 获取ETF历史K线
- ✅ `get_stock_tick()` - 获取ETF逐笔数据(精确计算)
### 需要新增的工具
- 📝 `analyze_sector_money_flow()` - 板块资金流向分析工具
- 📝 `compare_sectors()` - 多板块资金流向对比
- 📝 `get_sector_stocks()` - 获取板块成分股列表
---
## 💡 使用示例
### 示例1: A股科技板块资金流向
```python
sectors = [
{"name": "半导体", "etf": "SH.512480"},
{"name": "人工智能", "etf": "SH.515070"},
{"name": "5G通信", "etf": "SH.515050"},
{"name": "新能源车", "etf": "SH.515030"}
]
result = await analyze_sector_money_flow(sectors, days=5)
```
**预期输出**:
```
📊 板块资金流向分析
板块 今日涨跌 成交额 量能比 资金评分 流向判断
半导体 +2.5% 85.3亿 1.45 ⭐⭐⭐⭐ 🟢 强势流入
人工智能 +1.8% 62.1亿 1.28 ⭐⭐⭐ 🟢 持续流入
5G通信 -0.5% 31.2亿 0.85 ⭐⭐ 🔴 小幅流出
新能源车 +0.3% 48.6亿 0.92 ⭐⭐ ⚪ 震荡
```
### 示例2: 港股vs美股科技板块对比
```python
sectors = [
{"name": "恒生科技", "region": "HK", "code": "3033"},
{"name": "纳斯达克100", "region": "US", "code": "QQQ"}
]
result = await compare_sectors(sectors, days=10)
```
---
## 🎯 下一步计划
1. **立即可做**(使用现有API):
- ✅ 基于ETF行情计算板块资金流向
- ✅ 对比多个板块的强弱
- ✅ 生成资金流向报告
2. **需要优化**:
- 📝 添加板块ETF代码库
- 📝 精确计算资金净流入(需要逐笔数据)
- 📝 历史资金流向趋势分析
3. **进阶功能**:
- 📝 主力资金vs散户资金分析
- 📝 北向资金流向(港股通)
- 📝 南向资金流向(沪港通)
---
## 🔗 相关工具
- `src/tools/money_flow.py` - 资金流向工具(已存在)
- `src/tools/sector_analysis.py` - 板块分析工具(已存在)
- 可以扩展这两个工具支持ETF分析
---
## 💭 补充说明
### 为什么用ETF评估板块资金?
1. **直观准确**:ETF价格和成交量直接反映市场资金对该板块的态度
2. **数据易得**:ETF就是普通股票,用现有API即可获取
3. **可比性强**:不同市场的同类ETF可以横向对比
4. **实时性好**:行情实时更新
### 局限性
1. **覆盖不全**:不是所有板块都有对应ETF
2. **存在溢价**:ETF价格可能与净值有偏差
3. **流动性**:小ETF成交量低,数据可能失真
### 替代方案
如果没有合适的ETF,可以:
1. 使用行业指数(需要Indices API)
2. 统计板块龙头股(需要批量获取个股数据)
3. 参考同类板块股票的平均表现