4. 成分股映射的基本概念与数据来源

在行业板块研究中,真正决定分析质量的往往不是分类规则本身,而是“哪只股票属于哪个行业”这一层映射关系。申万行业分类给出了三级行业目录,但目录只是骨架,成分股映射才是把骨架落到具体证券上的血肉。所谓成分股映射,是指以某一时点的申万行业分类标准为依据,将全市场证券逐一归属到行业代码(一级、二级、三级)上的过程及其结果数据集。它至少包含三个要素:分类版本(如申万2021版)、时点(如2024年6月末)、以及证券与行业代码的对应关系。缺少任何一个要素,映射结果都可能不可比。

理解映射,需要先区分两个容易混淆的概念:行业归属与行业权重。归属回答“这只股票属于哪个行业”,是一个多对一的分类关系;权重回答“这个行业里各股票占多大比重”,通常由自由流通市值或总市值计算。前者是分类问题,后者是聚合问题。成分股映射表一般只承载归属关系,权重需要另行计算。很多初学者拿到一张“股票—行业”对照表就以为可以直接做行业指数,实际上还必须补充市值字段和调整规则,否则得到的只是等权或简单加总的近似结果。

从数据结构看,一张可用的成分股映射表通常包含以下字段:证券代码(如600519.SH)、证券简称、申万一级行业代码与名称(如340000 食品饮料)、二级行业代码与名称、三级行业代码与名称、纳入日期、调出日期、分类版本号。其中纳入与调出日期是常被忽略但极其关键的字段——申万分类会定期调整,某只股票可能在2023年属于“计算机”,2024年因主营业务变化被调入“通信”。如果映射表只有当前快照而没有历史区间,回测时就会产生“前视偏差”,用今天的行业归属去解释三年前的行情,结论自然失真。

成分股映射的数据来源与字段结构 申万官网 分类目录 + 成分股清单 更新:随分类调整发布 权威、免费、字段较简 Wind 行业归属 + 历史区间 更新:日频/事件驱动 含纳入调出日期 Choice 行业分类 + 市值字段 更新:日频 便于直接算权重 成分股映射表(示例结构) 证券代码 一级行业 纳入日期 600519.SH 食品饮料 2021-12-13 000858.SZ 食品饮料 2021-12-13 002415.SZ 计算机 2021-12-13 300750.SZ 电力设备 2021-12-13 601318.SH 非银金融 2021-12-13 … 全市场约5000余条 关键字段:代码、三级行业、 纳入/调出日期、版本号 缺失调出日期 → 回测前视偏差 缺失版本号 → 跨期不可比 行业成分股集合 某行业下全部证券 用于指数构建/归因 行业权重序列 需叠加自由流通市值 按日或按调仓日计算 历史区间快照 支持时点回溯与回测 避免未来信息泄露

三类常见数据源各有侧重。申万官网发布的是分类标准与成分股清单,权威性最高、免费可得,但字段相对精简,通常只给当前快照,历史区间需要自行按版本存档。Wind 的行业归属字段带有纳入与调出日期,适合做时点回溯,更新频率接近日频并随分类调整事件驱动,但需要终端权限。Choice 同样提供日频行业分类,且市值字段齐全,便于在映射之后直接计算权重。实务中常见的做法是:以申万官网的分类目录为“标准答案”,用 Wind 或 Choice 补齐历史区间与市值字段,两者交叉校验,发现差异时以官网最新公告为准。

更新频率需要分两层理解。第一层是分类标准版本的更新,申万分类大约每几年修订一次,2021版是当前主流版本,版本切换时全市场映射需要整体重算,不能新旧混用。第二层是成分股个体的调整,包括新股上市纳入、退市剔除、主营业务变更导致的行业迁移,这类调整通常按月或按事件发生。做行业轮动或归因分析时,建议至少按月对齐一次映射快照;做长周期回测时,则必须保留每个调仓日的映射版本,形成“时点—版本—成分”的三维索引。

校验映射质量的一个实用方法:抽取若干只已知主营业务的股票,检查其三级行业是否落在合理位置;再统计各一级行业成分股数量与总市值占比,与公开行业指数成分对比,若某行业数量或权重出现数量级偏差,多半是版本混用或调出日期缺失所致。

最后要强调映射的“时点一致性”。同一张分析表里,行业归属、市值、行情日期必须对齐到同一交易日。若用6月末的行业归属去匹配7月的行情,而该股票恰在7月初发生行业迁移,结果就会把新行业的涨幅记到旧行业头上。规范做法是先确定分析时点,再从映射库中取出该时点生效的记录,过滤掉已调出且未重新纳入的证券,最后才与行情数据连接。这一步看似琐碎,却是行业研究结论能否站得住脚的分水岭。