skills/windpy-sdk/references/sectorid-catalog.md

421 lines
15 KiB
Markdown
Raw Permalink Normal View History

# WindPy 板块 SectorID 参考
板块数据用于 `w.wset()``w.wses()` 函数。
## 常用板块 SectorID
| 板块名称 | SectorID | 说明 |
|----------|----------|------|
| 全部A股 | `a001010100000000` | 沪深两市全部A股 |
| 上证A股 | `a001010200000000` | 上海证券交易所A股 |
| 深证A股 | `a001010300000000` | 深圳证券交易所A股 |
| 创业板 | `1000006528000000` | 创业板股票 |
| 科创板 | `a001010l00000000` | 科创板股票 |
| 北交所 | `a001010m00000000` | 北交所股票 |
## 主要指数 SectorID
| 指数名称 | SectorID | 成分数 | 说明 |
|----------|----------|--------|------|
| 上证50 | `1000000087000000` | 50 | 沪市大蓝筹 |
| 上证180 | `1000000096000000` | 180 | 沪市大中盘 |
| 沪深300 | `1000000098000000` | 300 | 跨市场大盘 |
| 中证500 | `1000000099000000` | 500 | 中盘成长 |
| 中证1000 | `1000000088000000` | 1000 | 小盘成长 |
| 深证成指 | `1000000104000000` | 500 | 深市大盘 |
| 深证100 | `1000000105000000` | 100 | 深市蓝筹 |
| 创业板指 | `1000000465000000` | 100 | 创业板核心 |
| 科创50 | `1000000686000000` | 50 | 科创板龙头 |
## 申万一级行业 SectorID (31个)
| 行业名称 | SectorID |
|----------|----------|
| 农林牧渔 | `a39901010g000000` |
| 基础化工 | `a39901020g000000` |
| 钢铁 | `a39901030g000000` |
| 有色金属 | `a39901040g000000` |
| 建筑材料 | `a39901050g000000` |
| 建筑装饰 | `a39901060g000000` |
| 机械设备 | `a39901070g000000` |
| 电子 | `a39901080g000000` |
| 计算机 | `a39901090g000000` |
| 家用电器 | `a39901100g000000` |
| 纺织服装 | `a39901110g000000` |
| 轻工制造 | `a39901120g000000` |
| 食品饮料 | `a39901130g000000` |
| 医药生物 | `a39901150g000000` |
| 公用事业 | `a39901160g000000` |
| 交通运输 | `a39901170g000000` |
| 房地产 | `a39901180g000000` |
| 商贸零售 | `a39901190g000000` |
| 社会服务 | `a39901200g000000` |
| 银行 | `a39901210g000000` |
| 非银金融 | `a39901220g000000` |
| 综合 | `a39901230g000000` |
| 建筑材料(2021版) | `a39901240g000000` |
| 建筑装饰(2021版) | `a39901250g000000` |
| 电力设备 | `a39901260g000000` |
| 机械设备(2021版) | `a39901270g000000` |
| 国防军工 | `a39901280g000000` |
| 汽车 | `a39901290g000000` |
| 传媒 | `a39901300g000000` |
| 通信 | `a39901310g000000` |
| 煤炭 | `a39901320g000000` |
| 石油石化 | `a39901330g000000` |
| 环保 | `a39901340g000000` |
| 美容护理 | `a39901350g000000` |
**格式说明:** 申万行业代码格式为 `a39901XXXg000000`,其中 XXX 为行业编号。
### 申万行业正确使用方法(两步查询)
申万行业需要通过**两步查询**获取成分股:
**第一步:获取申万行业指数代码**
```python
result = w.wset("sectorconstituent", "date=20260209;sectorid=a39901011g000000")
# 返回申万行业的指数代码,如 801010.SI (农林牧渔)
```
**第二步:使用指数代码获取成分股**
```python
result = w.wset("sectorconstituent", "date=20260209;windcode=801010.SI")
# 返回该行业的所有成分股
```
### 常用申万行业指数代码
| 行业名称 | SectorID | 指数代码 | 成分数 |
|----------|----------|----------|--------|
| 农林牧渔 | `a39901010g000000` | `801010.SI` | ~100 |
| 钢铁 | `a39901030g000000` | `801030.SI` | ~400 |
| 有色金属 | `a39901040g000000` | `801040.SI` | ~40 |
| 建筑材料 | `a39901050g000000` | `801050.SI` | ~130 |
| 电子 | `a39901080g000000` | `801080.SI` | ~470 |
| 家用电器 | `a39901100g000000` | `801110.SI` | ~90 |
| 食品饮料 | `a39901130g000000` | `801120.SI` | ~120 |
| 医药生物 | `a39901150g000000` | `801150.SI` | ~470 |
| 公用事业 | `a39901160g000000` | `801160.SI` | ~130 |
| 房地产 | `a39901180g000000` | `801180.SI` | ~100 |
| 银行 | `a39901210g000000` | `801210.SI` | ~80 |
**说明:** 申万一级行业对应的指数代码格式为 `801XXX.SI`,其中 XXX 为行业编号。使用 `windcode=801XXX.SI` 可直接获取该行业成分股。
### 申万二级行业
申万二级行业指数代码格式为 `801XXXX.SI`5位数字在一级行业代码后增加一位
| 二级行业示例 | 指数代码 | 成分数 | 所属一级 |
|--------------|----------|--------|----------|
| 农产品加工II | `801012.SI` | ~20 | 农林牧渔 |
| 饲料II | `801014.SI` | ~15 | 农林牧渔 |
| 渔业II | `801015.SI` | ~5 | 农林牧渔 |
| 林业II | `801011.SI` | 0 | 农林牧渔 |
**获取方法:**
```python
# 直接查询二级行业成分股
result = w.wset("sectorconstituent", "date=20260209;windcode=801012.SI")
```
**说明:** 申万二级行业共有约200+个,可通过申万一级行业下的细分获取完整列表。
### 申万三级行业
申万三级行业 SectorID`a39901011i000000`
| 三级行业示例 | 指数代码 | 成分数 | 所属分类 |
|--------------|----------|--------|----------|
| 种子 | `850111.SI` | ~8 | 农林牧渔 > 种植业 |
| 其他种植业 | `850113.SI` | ~5 | 农林牧渔 > 种植业 |
| 水产养殖 | `850122.SI` | ~10 | 农林牧渔 > 渔业 |
| 食品及饲料添加剂 | `850135.SI` | ~15 | 基础化工 |
| 有机硅 | `850136.SI` | ~20 | 基础化工 |
| 畜禽饲料 | `850142.SI` | ~15 | 农林牧渔 > 饲料 |
| 果蔬加工 | `850151.SI` | ~8 | 农林牧渔 > 农产品加工 |
| 粮油加工 | `850152.SI` | ~10 | 农林牧渔 > 农产品加工 |
| 生猪养殖 | `850172.SI` | ~15 | 农林牧渔 > 养殖业 |
**获取方法:**
```python
# 第一步:获取所有申万三级行业指数代码
result = w.wset("sectorconstituent", "date=20260209;sectorid=a39901011i000000")
# 返回 259 个三级行业指数代码,格式为 85XXXX.SI
# 第二步:获取某个三级行业的成分股
result = w.wset("sectorconstituent", "date=20260209;windcode=850111.SI")
# 返回该三级行业的所有成分股
```
**说明:**
- 申万三级行业共有 **259**
- 指数代码格式:`85XXXX.SI`6位数字
- 通过 `a39901011i000000` 可获取完整的三级行业列表
---
### 申万行业代码体系总结
| 层级 | SectorID | 指数代码格式 | 数量 | 用途 |
|------|----------|--------------|------|------|
| 一级 | `a39901011g000000` | `801XXX.SI` | 31 | 宏观行业分类 |
| 二级 | `801XXXX.SI` | `801XXXX.SI` | 200+ | 细分行业 |
| 三级 | `a39901011i000000` | `85XXXX.SI` | 259 | 精细分类 |
**使用建议:**
- 一级用于宏观分析
- 二级用于行业比较
- 三级用于精细化选股
---
## 其他行业板块 (已验证)
以下行业板块代码使用 `a00101XX00000000` 格式,可直接获取成分股(无需额外权限):
| 行业名称 | SectorID | 成分数 | 使用示例 |
|----------|----------|--------|----------|
| 钢铁 | `a001010300000000` | ~2800 | `w.wset("sectorconstituent", "date=20260108;sectorid=a001010300000000")` |
| 有色金属 | `a001010400000000` | ~900 | `w.wset("sectorconstituent", "date=20260108;sectorid=a001010400000000")` |
**注意:** 这些是 Wind 内置的行业分类,与申万行业不同。申万行业需要通过两步查询(先获取指数代码再查询成分股),而这些可以直接查询。
---
## 中信一级行业 SectorID (30个)
### 正确使用方法(两步查询)
中信一级行业需要通过**两步查询**获取成分股:
**第一步:获取中信行业指数代码**
```python
result = w.wset("sectorconstituent", "date=20260209;sectorid=a39901012e000000")
# 返回中信行业指数代码列表,如 CI005001.WI (石油石化)
```
**第二步:使用指数代码获取成分股**
```python
result = w.wset("sectorconstituent", "date=20260209;windcode=CI005001.WI")
# 返回该行业的所有成分股
```
### 中信一级行业 SectorID 和指数代码
| 行业名称 | SectorID | 指数代码 | 成分数 |
|----------|----------|----------|--------|
| 石油石化 | `a39901012e000000` | `CI005001.WI` | ~50 |
| 煤炭 | `a39901012e000000` | `CI005002.WI` | ~30 |
| 有色金属 | `a39901012e000000` | `CI005003.WI` | ~70 |
| 电力及公用事业 | `a39901012e000000` | `CI005004.WI` | ~130 |
| 钢铁 | `a39901012e000000` | `CI005005.WI` | ~40 |
| 基础化工 | `a39901012e000000` | `CI005006.WI` | ~300 |
| 建筑 | `a39901012e000000` | `CI005007.WI` | ~80 |
| 建材 | `a39901012e000000` | `CI005008.WI` | ~80 |
| 轻工制造 | `a39901012e000000` | `CI005009.WI` | ~130 |
| 机械 | `a39901012e000000` | `CI005010.WI` | ~280 |
| 电力设备 | `a39901012e000000` | `CI005011.WI` | ~200 |
| 国防军工 | `a39901012e000000` | `CI005012.WI` | ~90 |
| 汽车 | `a39901012e000000` | `CI005013.WI` | ~180 |
| 商贸零售 | `a39901012e000000` | `CI005014.WI` | ~160 |
| 消费者服务 | `a39901012e000000` | `CI005015.WI` | ~70 |
| 家电 | `a39901012e000000` | `CI005016.WI` | ~50 |
| 纺织服装 | `a39901012e000000` | `CI005017.WI` | ~90 |
| 医药 | `a39901012e000000` | `CI005018.WI` | ~350 |
| 食品饮料 | `a39901012e000000` | `CI005019.WI` | ~110 |
| 农林牧渔 | `a39901012e000000` | `CI005020.WI` | ~90 |
| 银行 | `a39901012e000000` | `CI005021.WI` | ~40 |
| 非银行金融 | `a39901012e000000` | `CI005022.WI` | ~60 |
| 房地产 | `a39901012e000000` | `CI005023.WI` | ~120 |
| 交通运输 | `a39901012e000000` | `CI005024.WI` | ~110 |
| 电子 | `a39901012e000000` | `CI005025.WI` | ~350 |
| 通信 | `a39901012e000000` | `CI005026.WI` | ~120 |
| 计算机 | `a39901012e000000` | `CI005027.WI` | ~280 |
| 传媒 | `a39901012e000000` | `CI005028.WI` | ~130 |
| 综合 | `a39901012e000000` | `CI005029.WI` | ~20 |
| 综合金融 | `a39901012e000000` | `CI005030.WI` | ~10 |
**说明:**
- SectorID: `a39901012e000000` 返回所有30个中信一级行业指数代码
- 指数代码格式: `CI005XXX.WI`,其中 XXX 为 001-030
- 所有30个行业共用一个 SectorID通过返回的不同指数代码区分
## 概念板块 SectorID
| 板块名称 | SectorID | 成分数 | 验证状态 |
|----------|----------|--------|----------|
| 新能源车 | `1000056679000000` | ~400 | ✅ 已验证 |
| 芯片 | `1000056680000000` | ~300 | ✅ 已验证 |
| 5G | `1000056681000000` | ~200 | ✅ 已验证 |
| 人工智能 | `1000056682000000` | ~150 | ✅ 已验证 |
| 光伏 | `1000056684000000` | ~150 | ✅ 已验证 |
| 锂电池 | `1000056685000000` | ~100 | ✅ 已验证 |
**格式说明:** 概念板块代码格式为 `10000566XX000000`
**待探索概念:** 半导体、医药、白酒、银行、券商、保险等概念板块代码格式需要进一步验证。
---
## 国联民生多策略指数
国联民生多策略指数系列,代码格式为 `CI168XXX.WI`
| 指数名称 | 指数代码 | 说明 |
|----------|----------|------|
| GLMS情绪指标 | `CI168666.WI` | 市场情绪指标 |
| GLMS景气 | `CI168001.WI` | 景气度指数 |
**使用方法:**
```python
# 获取指数点位和名称
result = w.wss("CI168666.WI", "sec_name,close", "")
# 获取实时行情
result = w.wsq("CI168666.WI", "rt_last,rt_pct_chg", usedf=True)
```
**说明:** 国联民生多策略指数是通过 `w.wss``w.wsq` 获取的,不需要通过 `w.wset` 查询成分股。
---
## 全球主要股票指数
### 美股指数
| 指数名称 | 指数代码 | 说明 |
|----------|----------|------|
| 标普500 | `SPX.GI` | 美国大盘指数 |
| 纳斯达克 | `IXIC.GI` | 美国科技股指数 |
| 道琼斯 | `DJI.GI` | 美国蓝筹股指数 |
| VIX | `VIX.GI` | 波动率指数 |
### 亚太指数
| 指数名称 | 指数代码 | 说明 |
|----------|----------|------|
| 恒生指数 | `HSI.HI` | 香港大盘指数 |
| 日经225 | `N225.GI` | 日本大盘指数 |
| 韩国KOSPI | `KS11.GI` | 韩国综合指数 |
| 澳洲ASX200 | `AXJO.GI` | 澳大利亚指数 |
| 印度Sensex | `SENSEX.GI` | 印度孟买指数 |
### 欧洲指数
| 指数名称 | 指数代码 | 说明 |
|----------|----------|------|
| 英国富时100 | `FTSE.GI` | 英国大盘指数 |
| 德国DAX | `GDAXI.GI` | 德国蓝筹股指数 |
| 法国CAC40 | `FCHI.GI` | 法国大盘指数 |
| 欧洲Stoxx50 | `SX5E.GI` | 欧元区蓝筹指数 |
**使用方法:**
```python
# 获取全球指数实时行情
result = w.wsq("SPX.GI,IXIC.GI,HSI.HI,N225.GI", "rt_last,rt_pct_chg", usedf=True)
# 获取历史数据
result = w.wsd("SPX.GI", "close", "-30D", "", "", usedf=True)
```
**说明:** 全球指数代码后缀说明:
- `.GI` - Global Index全球指数
- `.HI` - Hong Kong Index香港指数
---
## 使用示例
```python
from WindPy import w
w.start()
# 获取全部A股成分股列表
data = w.wset("sectorconstituent", "date=20260108;sectorid=a001010100000000")
# 返回: date, wind_code, sec_name
stocks = data.Data[1] # wind_code 列表
# 获取沪深300成分股
err, df = w.wset("sectorconstituent",
"date=20260108;sectorid=100000009800000000", usedf=True)
# 获取板块历史序列数据
err, df = w.wses("1000000098000000", "sec_close_avg",
"2024-01-01", "2024-06-30", "", usedf=True)
# 多板块截面数据对比
err, df = w.wsee("a001010200000000,a001010300000000",
"sec_close_avg,sec_pct_chg_avg,sec_pe_ttm_median",
"tradeDate=20260108", usedf=True)
# 获取申万行业成分股
err, df = w.wset("sectorconstituent",
"date=20260108;sectorid=a39901130g000000", usedf=True) # 食品饮料
w.stop()
```
## 获取板块成分股的函数
```python
def get_sector_constituents(sectorid, date=None):
"""
获取板块成分股列表
Parameters:
-----------
sectorid : str
板块代码,如 '1000000098000000' (沪深300)
date : str, optional
日期,格式 '20260108',默认当前日期
Returns:
--------
list : wind_code 列表
"""
if date is None:
from datetime import datetime
date = datetime.now().strftime('%Y%m%d')
data = w.wset("sectorconstituent", f"date={date};sectorid={sectorid}")
if data.ErrorCode == 0 and len(data.Data) > 1:
return data.Data[1] # wind_code 列表
return []
# 使用示例
hs300 = get_sector_constituents('1000000098000000')
food_beverage = get_sector_constituents('a39901130g000000') # 食品饮料
```
## 注意事项
1. **日期格式:** wset 使用 `date=YYYYMMDD`wss 使用 `tradeDate=YYYYMMDD`
2. **成分股变化:** 指数成分股定期调整,历史数据需指定日期
3. **申万行业:** 每年会有行业分类调整2021年后使用申万2021版分类
4. **数据权限:** 部分板块(如科创板、北交所)需要相应权限
## 已验证的核心板块汇总
| 类别 | 数量 | 代表代码 |
|------|------|----------|
| 市场板块 | 6 | 全部A股、上证、深证、创业板、科创板、北交所 |
| 主要指数 | 9 | 沪深300、中证500、上证50、中证1000等 |
| 申万行业 | 31 | 食品饮料、医药、银行、电子等 |
| 概念板块 | 6 | 新能源车、芯片、5G、人工智能、光伏、锂电池 |
| 其他行业 | 2 | 有色金属、钢铁 |
---
## 待补充
以下 SectorID 需要进一步探索验证:
| 类别 | 待探索内容 | 预计代码格式 |
|------|------------|--------------|
| 申万二级/三级行业 | 完整行业分类体系 | `a39901XXXX000000` |
| 中信行业 | 30个一级行业完整权限配置 | `c00101XX00000000` |
| 概念板块 | 半导体、医药、白酒、券商、储能等 | `10000566XX000000` |
| 地域板块 | 北京、上海、广东、浙江、江苏等 | `a0010101XX000000` |
**注意:** 部分板块代码需要特定数据权限才能获取成分股数据。建议在使用前先用 `w.wset("sectorconstituent", "date=YYYYMMDD;sectorid=xxx")` 测试验证。