2. 行业板块分类体系与数据获取
要识别行业板块的领涨与补涨关系,第一步不是看行情,而是先确定“板块”到底由谁定义。不同分类标准下,同一个行业名称可能对应完全不同的成分股集合,进而导致涨幅排名、轮动节奏和补涨判断出现系统性偏差。因此,本节围绕三条主线展开:主流行业分类标准的差异、板块行情数据的来源与频率、以及把原始数据清洗成可比较面板的具体做法。
一、三套主流分类标准的定位差异
国内投研中最常用的是申万行业分类与中信行业分类,国际比较与外资视角常用 GICS。三者的设计目标不同,使用时应先明确用途再选标准。
申万行业分类由申万宏源研究所维护,采用三级结构(一级、二级、三级),一级行业约 31 个,覆盖全部 A 股,历史上经历过多次修订(如 2014 版、2021 版)。它的特点是行业划分贴近 A 股产业结构,对周期、制造、消费的拆分较细,是国内行业轮动研究的事实标准之一。做 A 股板块轮动、领涨补涨统计时,申万一级通常是首选口径。
中信行业分类由中信证券维护,同样为三级结构,一级行业数量与申万接近但边界不同,例如对部分中游制造和科技子行业的归属处理存在差异。它的行业指数体系与中信风格指数配套较完整,适合与中信风格因子研究结合使用。
GICS(全球行业分类标准)由 MSCI 与标普联合制定,采用四级结构(11 个一级行业、25 个行业组、74 个行业、163 个子行业),是全球机构投资者的通用语言。它的划分逻辑偏向全球可比性,例如把互联网平台归入通信服务而非信息技术,这与国内习惯差异明显。做跨市场对比或阅读外资研报时必须使用 GICS 口径。
二、板块行情数据的来源与频率
板块行情数据可分为两类:指数行情与成分股聚合行情。前者直接取行业指数(如申万一级行业指数、中信行业指数、GICS 对应的行业指数)的日线 OHLCV;后者先取成分股行情,再按市值加权或等权聚合。两者在极端行情下会出现差异,指数行情受编制规则(如自由流通市值加权、调整股本)影响,聚合行情则取决于你选择的权重方案。
常见数据来源包括:交易所与中证指数公司公布的行业指数日行情;Wind、Choice、同花顺等终端提供的行业指数与成分股映射表;以及开源数据接口(如 AkShare、Tushare)提供的申万行业分类与日线行情。频率上,日频数据足以支撑领涨补涨识别,若做盘中轮动可下沉到 5 分钟或 15 分钟,但需注意行业指数的分钟级数据可得性较差,通常只能用成分股聚合近似。
关键字段至少包括:交易日期、行业代码、行业名称、开高低收、成交量、成交额、成分股数量。若做补涨判断,还需要区间累计涨幅与相对强弱(RS)序列,这些应由日频收盘价自行计算,而不是依赖终端现成指标,以便统一口径。
三、数据清洗:把原始表变成可比较面板
原始行业行情表常见四类问题,处理顺序建议如下:
- 对齐交易日历。不同来源的节假日处理不一致,先以交易所日历为准做外连接,缺失交易日标记为 NaN 而非填 0,避免把停市误判为平盘。
- 处理成分股变更。行业分类修订或成分调整会造成指数不可比。做法是保留“分类版本”字段,跨版本比较时只用同一版本区间内的数据,或在修订日做断点标记。
- 复权与异常值。行业指数一般无需复权,但成分股聚合行情必须用后复权价;对单日涨跌幅超过合理阈值(如 ±11%,考虑涨跌停与新股)的记录做核查,区分真实异动与数据错误。
- 统一涨幅计算基准。明确区间起点:领涨补涨通常以某一轮行情的启动日为基准日,累计涨幅 = 期末收盘 / 基准日收盘 − 1。基准日必须全行业统一,否则排名失真。
下面给出一个可复用的清洗与聚合示例(Python + pandas 伪代码,参数为示例假设):
import pandas as pd
# 示例:df 含 date, ind_code, ind_name, close, amount, version
df = df.sort_values(['ind_code', 'date'])
# 1) 对齐交易日历(trade_days 为交易所日历)
panel = (df.set_index(['date', 'ind_code'])['close']
.unstack('ind_code')
.reindex(trade_days))
# 2) 标记分类版本断点,跨版本不计算区间涨幅
panel = panel.ffill(limit=1) # 仅容忍单日缺失
panel = panel.dropna(how='all')
# 3) 以启动日 base_date 为基准计算累计涨幅
base = panel.loc['2024-09-24'] # 示例基准日
cum_ret = panel / base - 1
# 4) 计算 20 日相对强弱(示例窗口)
rs20 = panel.pct_change(20)
清洗完成后,应做一次口径自检:同一行业内成分股数量在时间轴上是否突变、行业累计涨幅排名是否与指数官方排名方向一致、缺失率是否集中在某几个行业。若某行业缺失率显著偏高,多半是分类映射表未更新,而不是行情本身的问题。
四、分类标准与数据口径的对应关系
下图把三套分类标准、数据来源与清洗后的可用面板串起来,重点表达“标准选择—数据获取—口径统一”之间的对应关系,而不是操作步骤。
需要强调的是,分类标准一旦选定,整条分析链路都应锁定同一口径:成分股映射、指数行情、累计涨幅基准日、相对强弱窗口。领涨与补涨的判断本质上是“同一集合内不同行业的相对位置比较”,口径漂移会直接改变排名,进而改变结论。实际工作中建议把分类版本号、基准日、权重方案作为三个必填元数据随数据表一起保存,后续复盘时才能解释排名变化究竟来自行情还是来自口径调整。