3. 行业分类体系与轮动标的池构建
动量轮动策略的第一道工程决策,不是选什么动量指标,而是"在什么范围内轮动"。这个范围由两个东西共同决定:一套行业分类标准,以及由该标准映射出的可交易标的池。分类标准决定"行业边界怎么划",标的池决定"边界内的行业能不能真的买到"。两者不匹配,策略回测再漂亮也无法落地。
一、分类标准的选择:先看口径,再看可用性
国内常用的行业分类主要有申万、中信、中证、国证几套体系,海外常用 GICS。它们在层级深度、成分调整频率和行业粒度上差异明显。申万分类在卖方研究和指数产品中覆盖面最广,一级行业约 31 个,二级约 130 余个,且申万行业指数有较长历史,适合做中长周期动量回测;中信分类同样有一级、二级、三级层级,行业数量与申万接近但边界划分不同,例如对新能源产业链的归属处理就有差异;中证与国证分类更贴近指数产品的编制口径,若标的池以 ETF 为主,用中证/国证口径往往能减少"分类与产品不对应"的摩擦。
选择时建议按三个问题排序:第一,策略的轮动粒度是一级行业还是二级行业?一级行业约 30 个,轮动组合通常持有 3~6 个,换手可控;二级行业上百个,动量信号更锐利但噪声和交易成本显著上升。第二,回测所需的历史长度是否被该分类覆盖?部分细分行业指数编制较晚,会导致早期样本缺失。第三,分类口径是否与可交易产品一致?如果分类用申万、产品却跟踪中证行业指数,成分差异会带来跟踪偏差。实务中较稳妥的做法是:以一套分类作为研究主口径,用另一套做交叉验证,避免单一分类的边界争议影响结论稳健性。
二、从行业分类到可交易标的池
分类只是"名单",标的池才是"弹药"。构建标的池的核心动作是建立"行业—指数—产品"的映射,并对每个候选标的做可投资性筛查。筛查维度至少包括:产品是否存续、日均成交额是否足够、规模是否过小、跟踪误差是否可接受、是否有涨跌停或流动性断层、费率水平。一个常见的量化门槛示例(属教学假设,非实测标准):日均成交额不低于 5000 万元、基金规模不低于 2 亿元、上市满 6 个月、近一年跟踪误差不超过 2%。这些阈值应按策略资金规模和换手频率调整,资金量大或换手高时应更严格。
映射关系并非一一对应。有的行业有多个 ETF 跟踪不同指数,需要择优保留一只作为代表;有的细分行业没有对应产品,只能用更粗的一级行业替代,或在标的池中标记为"不可交易"并从轮动候选中剔除。这一步必须显式记录,否则回测会在"信号存在但无法成交"的行业上产生虚假收益。
三、分类变更的处理:不能回溯改写历史
行业分类并非一成不变。指数公司会定期调整成分股,也会因产业演进合并或拆分行业。例如某细分行业在早期被归入传统制造,后来独立成新行业,若直接把新分类回溯套用到全部历史,就会产生"未来信息泄漏"——回测时用到了当时并不存在的行业划分。正确做法是按生效日切换映射,历史区间保留当时的分类口径,并维护一张变更日志表,字段包括:旧行业代码、新行业代码、变更类型(合并/拆分/更名/成分调整)、生效日期、影响的标的代码。回测引擎在每个交易日读取"当日有效映射",而不是最新映射。
另一个易被忽略的问题是产品层面的变更:ETF 跟踪的指数可能调整、基金可能清盘或转型、场内流动性可能阶段性枯竭。因此标的池不应是静态名单,而应是按日可重建的动态集合。建议在数据层保留每个标的的"上市日、退市日、跟踪指数、规模、成交额"时间序列,回测时逐日判断该标的是否满足可投资条件,不满足则从当日候选中剔除,而不是简单用"当前存续产品"回填历史。
四、一个可执行的构建流程
把上述要点串起来,标的池构建可以落成如下步骤:
- 确定主分类口径:以申万一级为研究主口径,记录版本号与生效日期。
- 导出行业名单:拉取全部一级行业代码与名称,形成候选清单。
- 建立产品映射:为每个行业匹配跟踪指数与 ETF,一行业多产品时按规模与成交额择优保留一只,并记录备选。
- 逐日筛查可投资性:按成交额、规模、存续期、跟踪误差四项阈值逐日打标,生成"可交易/观察/剔除"三态。
- 维护变更日志:分类调整与产品变更均按生效日入表,回测按日读取有效映射。
- 输出标的池快照:每个交易日生成一份"行业→标的→状态"快照,供动量计算与组合构建调用。
需要强调的是,分类标准与标的池的选择会直接改变动量信号的截面排序。同一套动量算法,在申万一级 31 个行业与中信一级行业上跑出的轮动结果可能明显不同,这不是策略失效,而是口径差异。因此在本课程后续的回测与参数讨论中,应始终固定一套主口径,并把分类版本、标的池快照日期作为策略配置的一部分一并记录,保证结果可复现、可审计。