2. 封单数据的采集与清洗

横向比较连板股票的封单强弱,第一步不是画图,而是把“封单”这个原始字段变成一张干净、对齐、可比较的数据表。很多初学者直接打开行情软件截图,看到买一位置挂着几十万手就认为封单强,却忽略了不同股票的流通盘、股价、涨停时间、封单撤换情况完全不同。若数据本身没有经过采集规范化和清洗,后续任何强弱排序都不可信。本节围绕“取什么、怎么取、怎么对齐、怎么处理脏数据”四个环节展开,并给出可直接套用的字段结构与判断规则。

一、明确采集对象与字段口径

封单强弱比较所需的原始数据,至少应覆盖以下字段:股票代码、股票名称、交易日、涨停价、最新价、封单量(手)、封单金额(元)、首次涨停时间、最后封板时间、开板次数、成交额、流通市值、换手率。其中“封单量”与“封单金额”是两个不同口径:封单量是买一价位挂出的手数,封单金额等于封单量×100×涨停价,后者剔除了股价高低的影响,更适合横向比较。例如A股股价5元、封单量20万手,封单金额约1亿元;B股股价50元、封单量3万手,封单金额约1.5亿元,若只看手数会误判A更强。

采集来源通常有两类。第一类是行情软件导出,如同花顺、通达信、东方财富的“涨停板行情”或“封单额”排序页面,可导出CSV;优点是直观、含人工标注的涨停时间,缺点是字段名不统一、盘中数据为快照、收盘后可能不再更新。第二类是数据接口,如通过行情API按代码批量请求实时或历史快照,优点是字段规范、可定时采集,缺点是需要处理请求频率限制与字段映射。无论哪种来源,都应在采集时记录“采集时间戳”,因为封单是随时间变化的量,14:55的封单与09:35的封单含义完全不同。

二、数据对齐:让不同来源说同一种语言

多源数据合并时最常见的错误是“按行拼接”而非“按主键对齐”。正确做法是以“交易日+股票代码”作为联合主键进行左连接或全连接,而不是简单地把两个表格上下拼在一起。字段名需要建立映射表,例如行情软件导出的“封单量(手)”映射为 seal_vol,“封成比”映射为 seal_ratio;单位也要统一,手与股之间乘以100,万元与元之间乘以10000。时间字段应统一为 YYYY-MM-DD HH:MM:SS 格式,避免“9:35”与“09:35:00”无法排序。

另一个对齐要点是“时点对齐”。若封单数据取自收盘快照,而成交额取自全天累计,两者尚可配合使用;但若封单取自10:00快照、涨停时间取自收盘统计,则封单与涨停时间不在同一时点,比较会失真。实践中建议统一采用“收盘封单快照”作为横向比较基准,并在字段中注明 snapshot_time,保证所有股票在同一时点口径下比较。

三、缺失值处理与异常值识别

缺失值分三种情况区别对待。第一种是“非涨停股”导致的封单为空,这类记录应在筛选阶段就排除,不应填补。第二种是接口未返回某字段,如部分股票缺少“首次涨停时间”,此时可用“最后封板时间”近似替代,或标记为缺失并在比较时降权,而不是填0——填0会把“未知”误判为“极弱”。第三种是停牌、新股上市首日等特殊状态,应单独标记 status 字段后剔除。

异常值识别要结合业务逻辑,而非只看统计分布。常见异常包括:封单量为0却标记为涨停(多为数据延迟或字段错位);封单金额远大于流通市值(单位错误,如把“万元”当“元”);封单量出现负数(接口异常);同一股票同一交易日出现两条不同封单记录(快照重复采集)。可用如下规则做初筛:封单金额/流通市值大于1视为可疑;封单量为负直接置空;同一主键重复记录保留时间戳最新的一条。对识别出的异常,应保留原始值到 raw_seal_vol 字段,清洗后的值写入 seal_vol_clean,保证可追溯。

封单数据采集与清洗流程 行情软件导出 涨停板页面 CSV 字段名不统一 数据接口请求 按代码批量快照 字段规范、需限频 字段映射与单位统一 封单量(手)→seal_vol 手×100=股;万元×10000=元 时间统一为完整时间戳 主键对齐 交易日 + 股票代码 左连接,非上下拼接 统一 snapshot_time 清洗判断 封单为负→置空 金额/市值>1→可疑 重复主键→留最新 非涨停→剔除 清洗后可比数据表(示例字段) 代码 封单金额(元) 流通市值(元) 封单/市值 首次涨停 状态 600001 1.02亿 38亿 2.68% 09:32:15 正常 600002 0.86亿 52亿 1.65% 10:05:40 正常 600003 — 21亿 异常 — 待复核 清洗原则 • 缺失≠0,标记后降权 • 保留原始值可追溯 • 异常先标记再复核 • 同一时点统一比较 • 金额口径优于手数 • 剔除停牌与新股

四、从清洗结果到可比指标

清洗完成后,建议直接派生两个横向比较指标:封单市值比 = 封单金额 ÷ 流通市值,以及封单成交比 = 封单金额 ÷ 当日成交额。前者衡量封单相对盘子的大小,后者衡量封单相对当日换手的坚决程度。以示例数据说明:某股封单金额1.02亿元、流通市值38亿元,封单市值比约2.68%;另一股封单0.86亿元、流通市值52亿元,封单市值比约1.65%。在封板时间接近的前提下,前者封单相对更强。这两个指标都建立在“金额口径”和“同一时点快照”之上,正是清洗环节要保障的。

采集时务必同时保存原始字段与清洗后字段,并记录采集时间戳与数据来源。横向比较的结论一旦被质疑,可以回溯到原始快照复核,这是数据工作可复现的基本要求。
不要把“封单量为0”直接当作“封单极弱”。它可能是接口延迟、字段错位或停牌状态。先判断该股是否真实处于涨停状态,再决定是剔除还是标记缺失,否则会系统性低估部分股票。

最后给出一份可直接套用的采集检查清单,用于每次横向比较前自检:主键是否为“交易日+代码”且无重复;封单金额是否已由手数换算并乘以涨停价;时间字段是否统一格式且与快照时点一致;缺失值是否已区分“非涨停”与“接口缺失”;异常值是否已标记并保留原始值;是否已剔除停牌、新股首日等特殊状态。六项全部通过,这张表才具备横向比较封单强弱的资格。