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