2. 盘口数据基础与异常时段界定
要自动生成盘口异常时段摘要,第一步不是写摘要模板,而是把“数据从哪来、每个字段代表什么、时间戳按什么口径对齐”这三件事定死。盘口数据通常由三类流构成:逐笔委托、逐笔成交和快照。三者的字段语义与时间语义不同,混用会直接导致异常时段被误判。本节围绕这三类数据的字段结构、时间对齐方式,以及波动、撤单、成交速率、价差四个判定维度展开,并给出可落地的标注方法。
三类盘口数据的字段与时间语义
逐笔委托描述订单簿的“意图变化”,核心字段包括:证券代码、委托序号(交易所内唯一递增)、买卖方向、委托价格、委托数量、委托类型(限价/市价/本方最优等)、委托时间。它回答的是“谁在什么价位挂了多少量”。逐笔成交描述“意图的兑现”,核心字段包括:成交序号、买卖方向(主动方方向)、成交价格、成交数量、成交时间,部分行情还带买方委托序号与卖方委托序号,可用于把成交回溯到具体委托。快照则是按固定频率(常见 3 秒,部分场景 1 秒或更细)对订单簿做的切片,字段包括:快照时间、最新价、成交量/成交额累计值、买一至买十价与量、卖一至卖十价与量、委托笔数等。
时间语义是本节最容易出错的地方。逐笔数据的时间通常是“事件发生时间”,精度到毫秒甚至微秒;快照时间是“切片生成时间”,代表该时刻订单簿的状态。二者不能简单按字符串相等去匹配,而应以“快照时间戳 ≥ 事件时间戳”的最近切片作为该事件的归属切片。此外,逐笔委托与逐笔成交的序号是各自独立递增的,不能跨流比较大小;跨流关联只能依赖时间与价格、数量的逻辑匹配。实际工程中建议统一转换为同一时区的毫秒时间戳,并明确“以事件时间为准、快照仅作状态参照”的对齐原则。
四个判定维度的计算口径
波动关注价格变化的剧烈程度。常用做法是在滑动窗口内计算收益率绝对值或振幅:以 1 分钟窗口为例,取窗口内最高价与最低价之差除以窗口起始价,得到振幅;或取相邻快照最新价的对数收益绝对值累加。阈值应结合标的自身波动率设定,例如以过去 20 个交易日同时段振幅的 95 分位数作为基准线,超过 1.5 倍基准即视为异常候选。这样可避免用固定百分比一刀切,导致高波动标的频繁误报。
撤单关注订单簿“虚假深度”的收缩。核心指标是撤单率:窗口内撤单笔数除以委托笔数;以及撤单量占比:撤单量除以委托量。逐笔委托中若带“撤单”类型标识,可直接统计;若只有委托与成交两类,则需通过“委托序号出现后未成交即消失”的逻辑推断撤单,此时应结合快照中对应价位挂单量的下降来交叉验证。撤单率突然从常态的 20% 升至 60% 以上,往往意味着挂单方在快速撤离。
成交速率关注流动性兑现的节奏。用逐笔成交在窗口内的笔数或成交量除以窗口时长,得到每秒成交笔数与每秒成交量。与波动不同,成交速率异常既可能是放量突破,也可能是缩量停滞,因此应同时保留“上穿”和“下穿”两个方向的判定。例如以同时段历史均值的 3 倍标准差为上下界,超出上界记为放量异常,低于下界记为流动性枯竭异常。
价差关注买卖报价的松紧。绝对价差为卖一价减买一价,相对价差为绝对价差除以中间价。价差突然走阔说明做市意愿下降或订单簿变薄;价差收敛至接近最小报价单位则说明竞争激烈。计算时应剔除涨跌停等报价受限状态,否则会把制度性限制误判为异常。
异常时段的标注方法
四个维度各自产生候选时间点后,需要合并为“时段”。推荐做法是:先以固定粒度(如 10 秒)打标,每个粒度内只要任一维度越阈即标记为候选;再对连续候选做合并,允许中间存在不超过 2 个粒度的空档,避免把同一事件切成碎片;最后为每个时段记录起止时间、触发维度、强度等级和证据字段。强度等级可按越阈维度的数量与超出幅度综合评定,例如单维度轻微越阈为一级,双维度同时越阈为二级,三维度及以上为三级。
下面给出一个可直接套用的标注记录示例,字段均为示例值,用于说明结构而非真实行情结果:
时段ID: A-20240612-0935
起止时间: 09:35:10 ~ 09:36:40
触发维度: 撤单(撤单率 68%) + 价差(相对价差 0.42%)
强度等级: 二级
证据字段: 逐笔委托撤单 214 笔 / 委托 315 笔;
快照买一量由 8.6 万股降至 1.2 万股;
卖一买一价差由 0.01 元走阔至 0.05 元
备注: 未伴随显著成交放量,判定为挂单撤离型异常
标注完成后还应做一次回溯校验:把生成的时段与原始逐笔流对照,确认起止边界确实落在事件密集区,且没有把集合竞价、午间休市、涨跌停封板等制度性时段误纳入。只有经过这一步,后续自动摘要才有可靠的输入,摘要中的“何时、为何、多强”才能与数据一一对应。