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>
15 KiB
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 为行业编号。
申万行业正确使用方法(两步查询)
申万行业需要通过两步查询获取成分股:
第一步:获取申万行业指数代码
result = w.wset("sectorconstituent", "date=20260209;sectorid=a39901011g000000")
# 返回申万行业的指数代码,如 801010.SI (农林牧渔)
第二步:使用指数代码获取成分股
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 | 农林牧渔 |
获取方法:
# 直接查询二级行业成分股
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 | 农林牧渔 > 养殖业 |
获取方法:
# 第一步:获取所有申万三级行业指数代码
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个)
正确使用方法(两步查询)
中信一级行业需要通过两步查询获取成分股:
第一步:获取中信行业指数代码
result = w.wset("sectorconstituent", "date=20260209;sectorid=a39901012e000000")
# 返回中信行业指数代码列表,如 CI005001.WI (石油石化)
第二步:使用指数代码获取成分股
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 |
景气度指数 |
使用方法:
# 获取指数点位和名称
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 |
欧元区蓝筹指数 |
使用方法:
# 获取全球指数实时行情
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(香港指数)
使用示例
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()
获取板块成分股的函数
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') # 食品饮料
注意事项
- 日期格式: wset 使用
date=YYYYMMDD,wss 使用tradeDate=YYYYMMDD - 成分股变化: 指数成分股定期调整,历史数据需指定日期
- 申万行业: 每年会有行业分类调整,2021年后使用申万2021版分类
- 数据权限: 部分板块(如科创板、北交所)需要相应权限
已验证的核心板块汇总
| 类别 | 数量 | 代表代码 |
|---|---|---|
| 市场板块 | 6 | 全部A股、上证、深证、创业板、科创板、北交所 |
| 主要指数 | 9 | 沪深300、中证500、上证50、中证1000等 |
| 申万行业 | 31 | 食品饮料、医药、银行、电子等 |
| 概念板块 | 6 | 新能源车、芯片、5G、人工智能、光伏、锂电池 |
| 其他行业 | 2 | 有色金属、钢铁 |
待补充
以下 SectorID 需要进一步探索验证:
| 类别 | 待探索内容 | 预计代码格式 |
|---|---|---|
| 申万二级/三级行业 | 完整行业分类体系 | a39901XXXX000000 |
| 中信行业 | 30个一级行业完整权限配置 | c00101XX00000000 |
| 概念板块 | 半导体、医药、白酒、券商、储能等 | 10000566XX000000 |
| 地域板块 | 北京、上海、广东、浙江、江苏等 | a0010101XX000000 |
注意: 部分板块代码需要特定数据权限才能获取成分股数据。建议在使用前先用 w.wset("sectorconstituent", "date=YYYYMMDD;sectorid=xxx") 测试验证。