2. 开盘五分钟的时间切片与数据采集
开盘五分钟之所以值得单独研究,是因为它同时叠加了三重特殊性:隔夜信息集中释放、集合竞价与连续竞价的机制切换、以及日内流动性从极薄到逐步恢复的过程。在这五分钟里,价格往往完成一次方向试探,成交量呈现典型的“脉冲—衰减”形态,持仓量则暴露出多空双方是增仓对攻还是减仓离场。如果只把这五分钟当成一根K线来看,这些内部结构会被完全压缩掉。因此,本节的核心任务不是判断涨跌,而是把五分钟拆成可对齐、可比较、可复用的数据切片,为后续的对照图集建立标准化的数据底座。
为什么必须做时间切片
一根5分钟K线只保留开、高、低、收、量、额六个字段,无法回答“第一分钟是放量上冲还是缩量假突破”“第二分钟的回踩是否伴随持仓下降”这类问题。切片的意义在于把连续时间离散成固定粒度的观测窗口,使不同交易日、不同品种之间可以逐格对照。常用的切片粒度有三种:1分钟切片(5格)、30秒切片(10格)、以及以逐笔或快照为基础的10秒切片(30格)。粒度越细,越能捕捉开盘瞬间的冲击结构,但对数据完整性和时钟同步的要求也越高。
选择粒度时遵循一条实用原则:先保证切片边界与交易所快照节奏对齐,再考虑加密。国内商品期货的行情快照通常为每秒两次(500毫秒),股指期货与部分期权品种更快;股票Level-1为3秒一笔,Level-2逐笔委托则更密。若用30秒切片,边界落在整分和半点上,与绝大多数快照节奏天然对齐,是性价比最高的选择。1分钟切片适合做日间对照,10秒切片只在有逐笔数据且需要研究瞬时冲击时使用。
采集哪些字段
每个切片至少需要采集以下字段,才能支撑后续的量价结构对照:
- 价格类:切片开盘价、最高价、最低价、收盘价、以及该切片内的成交均价(成交额÷成交量)。均价与收盘价的偏离能反映切片内的成交重心。
- 成交量类:切片成交量、相对前一交易日同时段切片成交量的比值(量比)、以及切片成交量占全日预估量的比例。
- 持仓量类:切片末持仓量、切片内持仓变化量(ΔOI)。ΔOI为正表示增仓,为负表示减仓,是区分“新资金进场”与“旧仓位平仓”的关键。
- 衍生字段:切片振幅((高−低)/前收)、切片涨跌幅、主动买卖方向(若有逐笔数据,可按成交方向拆分主动买量与主动卖量)。
需要特别强调持仓量的采集口径:持仓量是时点值而非流量值,因此每个切片只能取该切片最后一个快照的持仓量作为切片末值,切片内变化量等于本切片末值减去上一切片末值。若误用切片内最大值或平均值,ΔOI将失去意义。
构建标准化数据表
把上述字段组织成一张长表,是后续所有对照分析的前提。表的主键应为“交易日 + 品种 + 切片号”,每行记录一个切片。上图的示例行展示了两个相邻切片:S1在开盘30秒内成交4210手、量比2.31、持仓增加1860手、主动买占比0.62,说明开盘瞬间是增仓放量上攻;S2成交量降至2380手、持仓仅增570手、主动买占比回落到0.44,说明上攻动能在衰减。这两行数据本身就已经讲出了一个完整的开盘故事,而这正是单根5分钟K线无法提供的信息。
建表时有几个容易出错的细节需要固定下来:
- 时间边界采用左闭右开,即S1为[09:30:00, 09:30:30),S2为[09:30:30, 09:31:00),避免边界快照被重复计入两个切片。
- 前收基准统一。振幅、涨跌幅的分母一律使用前一交易日的结算价或收盘价,全文保持一致,不可混用。
- 缺失切片标记而非删除。若某切片因停牌、无成交或数据丢包而无记录,保留该行并将成交量置0、价格字段沿用上一有效值,同时加“数据质量”标记列,防止后续统计时样本数不一致。
- 持仓量口径注明。商品期货的持仓量有单边和双边两种统计口径,建表时必须在元数据中写明,否则跨品种对照会出现系统性偏差。
采集流程与校验
实际采集时,建议按“原始快照落库 → 切片聚合 → 字段派生 → 质量校验”四步走。原始快照按交易所时间戳原样保存,切片聚合用时间窗口函数完成,派生字段在聚合后计算,最后做三项校验:切片成交量之和是否等于5分钟总成交量(允许因边界快照产生的极小误差)、持仓变化量之和是否等于5分钟末持仓减5分钟初持仓、以及价格高低是否落在切片内实际成交范围内。三项校验通过,该交易日的数据才进入对照图集。
resample('30S', closed='left', label='left')对带时间索引的快照做聚合,价格取first/max/min/last,成交量取sum,持仓量取last,即可一次性得到切片表。注意先按交易日分组再resample,避免跨日聚合。