4. 数据获取与板块口径统一

在进入“板块成交额放大与价格响应”的量化研究之前,最容易被低估、却最影响结论可靠性的环节,是数据本身。同一句“某板块成交额放大”,在不同数据源、不同板块分类、不同时间频率、不同复权方式下,可能得到完全相反的结论。本节的任务不是分析行情,而是把原始数据整理成一份口径一致、可复现、可比较的干净研究数据集。只有口径统一,后续的“放大”与“响应”才有意义。

一、板块口径为什么必须先统一

板块并不是一个天然存在的客观对象,而是一种人为归类。常见口径至少有三类:交易所或数据商定义的行业板块(如申万一级、二级行业)、主题概念板块(如人工智能、低空经济)、以及自定义成分股池。三者的成分股数量、调整频率、权重方式都不同。若研究区间内板块成分发生调整,而数据源又未做回溯处理,就会出现“历史成交额被当前成分股重算”的失真,表现为某日成交额突然跳变,被误判为放量信号。

因此第一步是明确并固定口径,建议在数据集中显式记录以下元信息:板块编码与名称、分类标准来源、成分股清单及其生效日期、权重方式(等权或市值加权)、数据供应商。研究期内若必须更换口径,应在数据中打上“口径版本”标记,并在分析时按版本分段处理,而不是简单拼接。

二、实操获取板块行情与成交额

以常见的 Python 数据接口为例,获取板块日线行情与成交额的基本流程是:先取板块列表,再按板块编码逐日拉取行情,最后合并成面板数据。下面是一段可直接参考的示例代码(接口名称以实际使用的数据源为准,此处为教学示例结构):

import pandas as pd

# 1. 获取板块列表(示例:行业板块)
sector_list = get_sector_list(type="industry")   # 返回 code, name

frames = []
for code in sector_list["code"]:
    df = get_sector_daily(
        code=code,
        start="2022-01-01",
        end="2024-12-31",
        fields=["trade_date", "close", "amount", "pct_chg"]
    )
    df["sector_code"] = code
    frames.append(df)

panel = pd.concat(frames, ignore_index=True)
panel = panel.sort_values(["sector_code", "trade_date"]).reset_index(drop=True)

关键点有三个。其一,成交额字段要确认单位:有的接口返回“元”,有的返回“万元”或“亿元”,混用会导致放大倍数计算错误。其二,交易日历要统一:不同板块可能因停牌、新上市等原因出现缺失交易日,应在统一交易日历上做前向填充或标记缺失,而不是让各板块各自为政。其三,拉取后立即做完整性校验:检查每个板块的记录数、首末日期、是否存在重复日期与空值。

建议在拉取阶段就保存原始快照(raw 层),后续所有清洗都在副本上进行。这样一旦发现口径问题,可以回溯重算,而不必重新请求接口。

三、时间频率与复权处理

成交额是流量指标,本身不受复权影响;但价格响应必须复权。若用未复权收盘价计算涨跌幅,除权除息日会出现虚假大跌,直接污染“价格响应”的判断。因此价格序列应统一采用后复权或前复权中的一种,并在全数据集内保持一致。研究历史区间时推荐后复权,因为它不会因未来分红而改变历史值;若只做近期展示,前复权更直观。无论选哪种,都要在元数据中写明。

时间频率方面,成交额放大通常在日频上观察,但也可聚合到周频以降低噪声。聚合规则必须明确:周成交额取周内交易日成交额之和,周收盘价取周内最后一个交易日收盘价,周涨跌幅由复权价计算,而不是把日涨跌幅简单相加。频率一旦确定,全数据集不得混用。

板块研究数据集的口径统一与校验链 原始数据源 板块列表 / 日线行情 成分股清单 含生效日期与版本 口径统一处理 · 固定板块分类标准 · 统一成交额单位 · 统一交易日历 · 价格统一复权 · 频率聚合规则固定 完整性校验 · 记录数与首末日期 · 重复日期 / 空值 · 成交额单位一致性 · 复权价连续性 · 成分调整日跳变检查 干净研究数据集(面板结构) 板块编码 | 交易日 | 复权收盘价 | 成交额 | 涨跌幅 | 口径版本 常见失真 成分调整未回溯 → 假放量 未复权 → 假大跌

四、形成干净数据集与质量检查

完成上述处理后,最终数据集应是一张长表(面板结构),每行对应“某板块某交易日”,字段至少包括:板块编码、交易日、复权收盘价、成交额、涨跌幅、口径版本。在此基础上做三项质量检查,能提前拦截绝大多数后续分析错误。

检查项判断方法异常处理
记录完整性各板块记录数应接近统一交易日历长度缺失日标记,不盲目填充
成交额单位抽样对比不同板块量级是否合理统一换算为同一单位
复权连续性复权价相邻日涨跌幅不应出现极端跳变核对除权日与复权因子
成分调整日调整日前后成交额是否异常跳变按口径版本分段或回溯重算

举个教学示例:假设某主题板块在 2023 年 6 月新增 8 只成分股,若数据源用当前成分回溯历史,则 6 月前后成交额会出现台阶式抬升。此时若直接计算“成交额较 20 日均值放大 1.8 倍”,就会把成分扩容误读为资金涌入。正确做法是记录该调整日,在分析时以调整日为界分段,或使用供应商提供的回溯口径数据。这个例子说明,口径统一不是形式工作,而是结论成立的前提。

不要在同一张分析表中混用不同供应商、不同分类标准、不同复权方式的数据。即使字段名相同,口径不同也会让“放大倍数”和“价格响应”失去可比性。

当数据集通过上述检查后,就可以进入下一步:在统一口径的基础上定义“成交额放大”的度量方式,并观察其与价格响应的对应关系。本节交付的成果,是一份字段清晰、口径可追溯、经过完整性校验的面板数据集,以及一份记录分类标准、复权方式、频率规则和口径版本的数据说明。后续所有分析都应基于这份数据集展开,确保研究结论可复现、可比较。