2. 板块数据获取与清洗
板块量价强度综合评分模型的第一道关口不是建模,而是数据。评分模型最终输出的是每个板块在每个交易日的强度分值,这个分值由板块行情、成交量、成分股聚合结果共同决定。如果输入数据存在缺失、异常或复权口径不一致,后续无论用什么权重和算法,得到的排名都不可信。本节围绕三个问题展开:数据从哪里来、原始数据有哪些典型问题、如何把它们清洗成口径统一、可直接进入计算的面板数据。
一、三类数据的获取渠道与字段口径
板块评分需要的数据可以归为三层。第一层是板块行情数据,包括板块指数或板块加权价格的开盘、最高、最低、收盘,以及板块层面的涨跌幅。第二层是板块成交量数据,包括成交量、成交额、换手率,部分数据源还提供板块内上涨家数、下跌家数。第三层是成分股聚合数据,即板块内每只成分股的行情与成交数据,按市值或等权聚合后形成板块的辅助指标,例如成分股涨幅中位数、成交额集中度、领涨股贡献度。
获取渠道上,常见做法有三类:一是行情终端或数据接口直接提供板块指数日线,字段齐全但板块编制口径由数据商定义;二是通过成分股列表加个股日线自行聚合,口径可控但需要处理成分股调整;三是交易所或指数公司公布的官方板块指数文件,权威性高但更新频率和字段有限。实际工程中通常以第一类为主数据源,第二类作为交叉校验和补充字段来源。无论用哪种渠道,都必须先固定字段口径:收盘价是收盘价还是复权收盘价、成交额单位是元还是万元、板块涨跌幅是按成分股市值加权还是等权,这些口径一旦混用,清洗阶段就会产生难以追溯的偏差。
二、缺失值的识别与处理策略
板块数据的缺失有三种典型形态。第一种是整行缺失,即某板块在某交易日没有记录,常见于停牌板块、新设板块或数据源当日未更新。第二种是字段缺失,行存在但成交额或换手率为空。第三种是结构性缺失,例如某板块在成分股调整后一段时间内成分股聚合数据为空。
处理策略要按缺失原因区分,不能一律填充。对于整行缺失,先判断是交易日历问题还是数据源问题:若该日全市场正常交易而该板块无记录,应标记为待补并在下一交易日从备用源补齐;若确认是板块停牌或尚未成立,则保留为空并在计算窗口内剔除,不做前值填充,否则会把停牌期的价格“冻结”成虚假的零波动。对于字段缺失,成交额缺失可用成交量乘以当日均价近似,但必须在数据质量日志中记录近似标记;换手率缺失则优先用成交额除以流通市值重算,而不是简单用均值填充。对于结构性缺失,应回到成分股层面检查,确认是成分股列表未更新还是聚合脚本漏算。
三、异常值检测:从涨跌幅与成交额入手
板块数据的异常值主要来自数据源错误和口径突变。最直接的检测对象是板块日涨跌幅:正常板块单日涨跌幅极少超过 ±10%,若出现 ±15% 以上的跳变,且成分股中并无对应数量的涨跌停个股,基本可判定为数据错误或复权断点。第二个检测对象是成交额:某日成交额相对前 20 日均值放大 10 倍以上,同时价格无明显波动,往往是单位错误(元与万元混用)或重复记录。
检测方法上,可采用滚动窗口的稳健统计量。以 20 个交易日为窗口,计算板块涨跌幅的中位数与绝对中位差,将偏离中位数超过 6 倍绝对中位差的记录标记为可疑;对成交额则用对数化后的滚动均值加三倍标准差做上界判断。标记之后不要直接删除,而是逐条核对:若是单位错误则统一换算,若是重复记录则去重,若是复权断点则转入复权处理流程,只有确认无法修复的记录才置空。
四、复权问题:板块价格序列的连续性
复权是板块数据清洗中最容易被忽视、后果最严重的一环。板块指数本身通常已由数据商做过处理,但如果是用成分股自行聚合板块价格,就必须先对每只成分股做复权,再聚合。否则某只权重股除权除息当日价格跳空,会被错误地计入板块跌幅,污染强度评分。
复权的核心是保持价格序列的连续性。前复权以当前价格为基准向前调整历史价格,适合用于计算收益率和绘制走势;后复权以历史价格为基准向后调整,适合用于计算持有期收益。对评分模型而言,我们关心的是板块的收益率序列和量价关系,因此推荐对成分股统一采用前复权收盘价计算日收益率,再用市值权重聚合为板块收益率。需要特别注意的是,复权因子必须与成分股权重同日期对齐:若某成分股在 t 日除权,复权因子在 t 日切换,而权重使用的是 t-1 日数据,就会产生一天的错配,表现为聚合收益率出现无法解释的尖峰。
五、成分股聚合数据的对齐与校验
当板块指标由成分股聚合而来时,对齐是清洗的最后一环。聚合前需要确认三件事:成分股列表的生效日期与行情日期一致、每只成分股的复权口径一致、权重之和归一。以市值加权为例,若某板块有 50 只成分股,其中 3 只当日停牌无成交,则这 3 只的权重应保留在分母中但成交额按零计入,而不是把权重重新归一,否则会高估剩余成分股的成交占比。
聚合完成后应做交叉校验:用成分股聚合出的板块涨跌幅与数据源直接提供的板块指数涨跌幅比较,若两者在正常交易日偏差超过 0.5 个百分点,说明成分股列表或权重存在滞后,需要回查。这个校验步骤能发现大部分口径问题,是进入评分计算前最值得保留的一道检查。
六、可直接执行的数据质量检查表
下面给出一份可落地的检查表,建议在每次数据更新后逐项执行,并把结果写入数据质量日志,作为评分模型的可追溯依据。
| 检查项 | 检查方法 | 通过标准 | 不通过时的处理 |
|---|---|---|---|
| 交易日覆盖 | 统计板块记录数 / 交易日历天数 | ≥ 99% | 定位缺失日期,从备用源补齐或标记停牌 |
| 涨跌幅跳变 | 20 日滚动中位数 ± 6 倍绝对中位差 | 无未解释跳变 | 核对成分股涨跌停数量,确认后修正或置空 |
| 成交额单位 | 与前 20 日均值比较 | 无 10 倍以上突变 | 统一换算为元,去重 |
| 复权连续性 | 检查除权日前后收益率是否异常 | 无未解释断点 | 重算复权因子,对齐权重日期 |
| 聚合一致性 | 聚合涨跌幅 vs 主源板块涨跌幅 | 偏差 < 0.5 个百分点 | 回查成分股列表与权重生效日期 |
| 权重归一 | 成分股权重求和 | 等于 1(误差 < 1e-6) | 重新归一,停牌股保留权重 |
完成上述清洗后,得到的是一个以“板块 × 交易日”为索引、字段口径统一、修改可追溯的面板数据集。它不追求把每个空值都填满,而是保证进入评分模型的每一个数值都有明确来源和明确含义。下一阶段的量价强度计算,正是建立在这个干净面板之上。