4、行业分类体系:申万行业分类、中信行业分类、GICS行业分类、自定义行业聚类

行业分类,说白了就是给股票贴标签。

你想想看,A股市场几千只股票,如果没有一套分类体系,你怎么做轮动?怎么知道哪些板块在涨?我个人习惯把行业分类比作「地图」——没有地图,你连自己在哪都不知道,更别提规划路线了。

4.1 为什么行业分类这么重要?

做行业轮动策略,第一步就是确定「轮什么」。

我记得刚入行那会儿,有个同事直接用Wind的一级行业做轮动,结果回测效果很差。后来发现,Wind一级行业里「信息技术」包含了硬件、软件、半导体,这些细分板块的驱动逻辑完全不同。混在一起做轮动,信号早就被噪声淹没了。

⚠️ 避坑指南: 我曾经犯过一个错误——直接用申万一级行业做轮动,结果发现「综合」这个行业里啥都有,轮动信号基本是随机游走。后来我学乖了,至少要用二级行业,甚至自己聚类。

4.2 主流行业分类体系对比

目前国内量化圈常用的分类体系,主要有四种。我列个表,你一看就明白。

分类体系 发布方 层级 特点 适用场景
申万行业分类 申万宏源 一级(31)、二级(134)、三级(346) 国内最常用,更新及时,贴合A股 A股行业轮动、因子分析
中信行业分类 中信证券 一级(30)、二级(109)、三级(285) 与申万类似,但部分行业划分不同 机构研报、跨市场对比
GICS行业分类 MSCI/标普 一级(11)、二级(24)、三级(69)、四级(158) 全球统一标准,适合跨市场 全球资产配置、港股/美股
自定义行业聚类 你自己 任意层级 灵活,可针对策略定制 特定策略、高频轮动

嗯,这里要注意:申万和中信虽然都是国内主流,但它们的行业划分逻辑有细微差别。比如「食品饮料」在申万里是单独的一级行业,但在中信里被归到了「消费」下面。做轮动时,这种差异会影响你的信号计算。

4.3 申万行业分类详解

我个人用得最多的是申万行业分类。为什么?因为它更新快,而且细分行业足够多。

申万一级行业有31个,二级行业有134个。做行业轮动,我建议至少用二级行业。一级行业太粗,很多轮动信号被平均掉了。举个例子,同样是「电子」一级行业,二级行业里的「半导体」和「消费电子」走势经常相反。你用一级行业做轮动,可能两边都抓不住。

💡 我的经验: 做中低频轮动(月频)用申万一级就够了。做高频轮动(周频或日频),必须用二级甚至三级行业。我有个策略就是用申万三级行业做聚类,效果比一级行业提升了30%以上。

4.4 中信行业分类的特点

中信行业分类和申万很像,但有几个关键区别。

  • 行业数量:中信一级行业30个,比申万少1个。少了「综合」这个垃圾行业。
  • 划分逻辑:中信更偏向「产业链」逻辑,比如把「钢铁」「有色」「煤炭」归到「周期」大类下。
  • 更新频率:中信的更新速度略慢于申万,但胜在稳定。

我记得有一次做跨市场对比,A股用申万,港股用GICS,结果发现两个市场的行业对应不上。后来改用中信,因为中信有港股分类,方便多了。

4.5 GICS行业分类:全球通用标准

如果你做全球资产配置,GICS是绕不开的。

GICS只有11个一级行业,但细分到四级有158个。它的优势在于全球统一——你在A股、港股、美股看到的GICS分类是一样的。这对于做跨市场轮动策略非常关键。

但GICS也有个问题:它不太贴合A股。比如A股的「白酒」在GICS里被归到「食品饮料」,但白酒的驱动逻辑和普通食品完全不同。你想想看,茅台和伊利能放在一起做轮动吗?显然不行。

📌 小技巧: 如果你做A股策略,我建议用申万。如果你做港股或美股,用GICS。如果做跨市场,可以用GICS作为统一标准,但要对A股部分做调整。

4.6 自定义行业聚类:量化人的终极武器

说实话,主流分类体系都有各自的局限性。真正做量化的人,最后都会走向自定义聚类。

为什么?因为行业分类的本质是「相似性」。两只股票如果走势高度相关,它们就应该属于同一个行业,不管官方怎么分类。

我常用的聚类方法有两种:

  1. 基于收益率相关性:计算股票之间的历史收益率相关系数,然后用层次聚类或K-Means分组。
  2. 基于基本面因子:用PE、PB、ROE等因子做聚类,把基本面相似的股票归到一起。

下面是我写的一个简单聚类代码,用收益率相关性做行业聚类:

import pandas as pd
import numpy as np
from sklearn.cluster import KMeans

# 假设 returns 是股票收益率矩阵,行为日期,列为股票
corr_matrix = returns.corr()
dist_matrix = 1 - corr_matrix  # 距离矩阵

# K-Means聚类,设定20个行业
kmeans = KMeans(n_clusters=20, random_state=42)
labels = kmeans.fit_predict(dist_matrix)

# 输出聚类结果
cluster_result = pd.DataFrame({
    'stock': returns.columns,
    'cluster': labels
})
print(cluster_result.head())
⚠️ 注意: 自定义聚类虽然灵活,但有个坑——聚类结果会随着时间变化。今天聚在一起的股票,半年后可能就分开了。所以你需要定期重新聚类,比如每季度一次。

4.7 四种分类体系的选择建议

说了这么多,到底该用哪个?我给出一个简单的决策逻辑:

  • 刚入门:用申万一级行业,简单直接,数据好拿。
  • 做中低频轮动:用申万二级行业,平衡了精细度和稳定性。
  • 做高频轮动:用自定义聚类,或者申万三级行业。
  • 做全球配置:用GICS,统一标准。
  • 做机构研报:用中信,因为很多券商研报都用中信分类。

我个人习惯是:先用申万二级行业做初步筛选,然后用自定义聚类做精细化调整。这样既保留了官方分类的稳定性,又加入了量化聚类的灵活性。

4.8 本章知识体系图

下面这张图,帮你理清四种分类体系的关系和选择路径:

行业分类体系选择路径 行业分类体系 申万行业分类 中信行业分类 GICS行业分类 自定义行业聚类 A股行业轮动 因子分析 机构研报 跨市场对比 全球资产配置 港股/美股 特定策略 高频轮动 推荐层级 一级(入门) 二级(中低频) 推荐层级 一级(机构) 二级(研报) 推荐层级 一级(全球) 二级(细分) 推荐层级 任意层级 按需定制 核心原则:先官方分类做基准,再自定义聚类做优化 没有完美的分类体系,只有最适合你策略的分类
📌 最后说一句: 行业分类没有绝对的对错。我见过有人用申万一级行业做出年化20%的轮动策略,也见过有人用自定义聚类亏得底朝天。关键不在于你用哪个分类,而在于你理解每个分类背后的逻辑,以及它是否匹配你的策略频率和投资周期。

公众号:蓝海资料掘金营,微信deep3321