skills/windpy-sdk/references/sectorid-catalog.md
wangyitong a65adcc2e5 Initial commit: merged, deduplicated, and vetted skill collection
Sources: extracted from two upstream archives (skill-repo, skills-main),
merged with the following policy:

- 15 broken symlinks (pointing to /Users/jameslee/.cc-switch/skills or
  ../../.agents/skills on a foreign machine) discarded
- 3 real name collisions with identical content (ai-pair, ifind-http-api,
  zhipu-websearch) kept as one copy
- Functional overlaps deduped keeping the strongest variant:
  - docx family: kept docx (official, full toolchain) + docx-cn
    (GB/T 9704 Chinese official-document constants),
    dropped docx_writer (no scripts, name collided with docx)
  - humanizer family: kept humanizer-zh (6 zh reference docs),
    dropped humanizer (en, redundant for CN workflow)
- Skills that only ran in a foreign environment removed:
  ablemind-ops, app-publish, hlb-design-system, openclaw-adj-skill,
  claude-driver
- alphapai excluded from this public repo because its SKILL.md hard-coded
  live credentials

Result: 25 skills, 572 files, ~7.5 MB.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-13 14:47:12 +08:00

421 lines
15 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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")` 测试验证。