4. 首次封板时间的分布统计
上一节我们把每只涨停样本的首次封板时间从行情明细中提取出来,得到了一个以“分钟”为单位的连续变量。本节要做的,是把这个变量从一堆散点变成可读的分布结构:先算频数分布与累积分布,再用直方图和箱线图把形态画出来,最后从图形中识别早盘、午盘、尾盘三个时段的聚集特征。这一步是后续所有时间分组统计的基础,分布没看清,后面的分组对比就容易建立在错误的切分点上。
一、先确定时间轴与分箱口径
统计前必须先固定参照约定,否则不同人算出的结果无法比较。本课程统一采用交易日连续分钟轴:以 9:30 为第 0 分钟,11:30 为第 120 分钟,13:00 为第 150 分钟,15:00 为第 240 分钟。也就是说,上午 120 分钟、下午 120 分钟,中间 90 分钟休市不占轴长。封板时间取“首次触及涨停价并封住的时刻”,精确到分钟,落在 9:30 即记为 0,落在 14:57 即记为 237。
分箱不宜过粗也不宜过细。经验上以 15 分钟为一箱比较合适:全天 240 分钟得到 16 个箱,既能看出聚集,又不至于每箱样本太少而抖动剧烈。若样本量在数百以上,可细化为 5 分钟一箱;若样本不足百只,建议直接用 30 分钟一箱,避免频数图出现大量 0 或 1 的锯齿。分箱边界采用左闭右开,即 [0,15)、[15,30)……最后一箱 [225,240],保证每个样本只落入一个箱。
二、频数分布与累积分布的计算
频数分布就是逐箱计数。设第 i 箱的样本数为 ni,总样本为 N,则频率 fi=ni/N,累积频率 Fk=Σi≤kfi。累积分布回答的是“有多少比例的涨停在某个时刻之前完成封板”,它比频数更稳健,也更适合做跨样本期的横向比较。
下面给出一段可直接运行的计算示例,输入是一列封板分钟数,输出频数表与累积频率。示例数据为教学假设,仅用于演示计算过程:
import numpy as np
import pandas as pd
# 假设已提取的首次封板分钟数(0=9:30, 240=15:00)
seal_min = np.array([2, 5, 8, 12, 15, 18, 21, 25, 30, 33,
40, 46, 52, 58, 63, 70, 78, 85, 95, 105,
118, 130, 145, 160, 175, 190, 205, 220, 232, 238])
bins = np.arange(0, 241, 15) # 16 个箱,左闭右开
cnt, edges = np.histogram(seal_min, bins=bins)
freq = cnt / cnt.sum()
cum = np.cumsum(freq)
df = pd.DataFrame({
"箱区间": [f"[{int(edges[i])},{int(edges[i+1])})" for i in range(len(cnt))],
"频数": cnt,
"频率": np.round(freq, 3),
"累积频率": np.round(cum, 3)
})
print(df.to_string(index=False))
运行后应重点看三列:频数最高的箱落在哪个区间、累积频率在哪个时刻越过 50%、以及尾盘是否出现第二个小峰。这三项直接对应后文的聚集特征判断。若累积频率在 30 分钟处已超过 0.5,说明样本以早盘秒板、快板为主;若在 120 分钟处仍低于 0.4,则午盘封板占比偏高,需要单独拆开分析。
三、直方图与箱线图的分工
直方图看“形状”,箱线图看“位置与离散”。直方图把 16 个箱的频数画成柱,横轴是分钟轴,能直观看到单峰、双峰还是长尾;箱线图则用五数概括(最小值、下四分位 Q1、中位数、上四分位 Q3、最大值)压缩整个分布,并标出离群点。两者配合,可以避免只看均值被极端值带偏。
读箱线图时有几个固定判断:中位数越靠近 Q1,说明分布右偏,即多数样本集中在较早时段、少数晚封板把尾巴拉长;箱体(Q3−Q1)越窄,说明封板时间越集中;上须之外的点就是晚封的离群样本,通常对应尾盘偷袭或反复开板后回封的情形。若中位数落在 30 分钟以内、Q3 不超过 60 分钟,可判定为典型的早盘聚集型分布。
四、识别三个时段的聚集特征
把直方图按 0–120、120–180、180–240 切成三段后,聚集特征通常表现为三种典型形态。第一种是早盘单峰型:频数集中在 0–60 分钟,累积频率曲线前陡后平,箱线图中位数小于 40 分钟、箱体窄。这类样本多来自集合竞价高开、开盘快速拉板或一字板,封板质量相对稳定,但也要区分“秒板”与“开板后回封”,后者需结合开板次数一起看。
第二种是午盘低谷型:120–180 分钟频数明显低于两侧,形成 U 形或双峰之间的凹陷。午盘封板往往对应上午震荡后的二次拉升,样本量少但个股特征鲜明,统计时不宜与早盘样本混在一起算均值,否则会把午盘的低频特征稀释掉。
第三种是尾盘次峰型:180 分钟之后频数回升,尤其在 210–240 分钟出现小峰。尾盘封板常伴随资金抢筹或消息刺激,封板时间晚、留给次日验证的窗口短,是风险与机会都较集中的一类。箱线图上的离群点大多落在这里,处理时应保留而非简单剔除,因为离群本身就是一种需要解释的市场行为。
五、统计口径上的两个易错点
第一是休市时间的处理。若直接把 11:30 到 13:00 也计入分钟轴,午盘样本会被整体后移 90 分钟,直方图出现一段虚假空白,箱线图的中位数也会被抬高。务必在提取阶段就按“交易分钟”折算,而不是用自然时钟相减。
第二是样本期与涨停制度的匹配。不同板块涨跌幅限制不同,封板难度和封板时间分布差异明显。统计时应先按板块分层,再各自做频数与累积分布,最后才考虑合并。合并前至少检查各层的中位数是否接近,若相差超过 30 分钟,合并后的直方图会出现双峰假象,误导后续判断。