3、快照数据结构解析:Level2快照数据字段详解
Level2 行情快照是交易所每隔固定时间(通常为 3 秒或 5 秒)发布的当前市场全貌数据。与 Level1 相比,Level2 快照提供了更深的委托队列、更细的统计指标以及更精确的逐笔撮合信息。理解每个字段的含义、计算方式和业务逻辑,是进行策略推演的基础。
3.1 核心行情字段
以下字段是每笔快照中最基础、最常用的数据项,直接反映当前市场的价格与成交状态。
| 字段名称 | 数据类型 | 说明 | 策略应用 |
|---|---|---|---|
| 最新价 | float64 | 当前时刻最后一笔成交的价格 | 判断当前价格位置,触发条件单 |
| 成交量 | int64 | 从开盘到当前时刻的累计成交股数(手数×100) | 计算换手率、成交量异动 |
| 成交额 | float64 | 从开盘到当前时刻的累计成交金额(元) | 资金流向分析、大单识别 |
| 开盘价 | float64 | 当日第一笔集合竞价成交价 | 计算涨跌幅、缺口分析 |
| 最高价 | float64 | 从开盘到当前时刻的最高成交价 | 压力位判断、突破策略 |
| 最低价 | float64 | 从开盘到当前时刻的最低成交价 | 支撑位判断、止损参考 |
| 昨收价 | float64 | 上一个交易日的收盘价 | 计算涨跌幅、隔夜跳空 |
策略提示: 最新价与成交量是高频策略中最敏感的字段。当最新价在短时间内连续突破最高价或最低价时,往往意味着趋势加速或反转信号,需要结合成交量确认。
3.2 委托队列字段(买卖十档)
Level2 快照最显著的优势在于提供了买卖各 10 档的委托价格与委托量,而 Level1 通常只提供 5 档或 3 档。这为分析市场深度和订单簿形态提供了数据基础。
3.2.1 委买委卖与买卖十档
- 委买(Bid): 买方委托队列,按价格从高到低排列(最高买价排第一档)。
- 委卖(Ask): 卖方委托队列,按价格从低到高排列(最低卖价排第一档)。
- 买卖十档: 分别展示买一到买十、卖一到卖十的价格和委托量。
以下是一个典型的买卖十档数据结构示例:
{
"bid_prices": [10.05, 10.04, 10.03, 10.02, 10.01, 10.00, 9.99, 9.98, 9.97, 9.96],
"bid_volumes": [1500, 2300, 1800, 3200, 2100, 4500, 1200, 800, 600, 400],
"ask_prices": [10.06, 10.07, 10.08, 10.09, 10.10, 10.11, 10.12, 10.13, 10.14, 10.15],
"ask_volumes": [1200, 1900, 2500, 1100, 3000, 800, 600, 500, 300, 200]
}
3.2.2 买卖十档的深度分析
通过买卖十档的委托量分布,可以计算以下关键指标:
- 买卖盘口厚度: 各档位委托量的总和,反映市场承接能力。
- 委托量斜率: 相邻档位委托量的变化率,判断支撑/压力强度。
- 价差分布: 买卖第一档之间的价差(Spread),衡量流动性。
实战案例: 当买一档委托量远大于卖一档,且买二、买三档委托量也显著堆积时,表明下方有强支撑,价格短期内难以跌破。反之,卖盘堆积则形成强压力。
3.3 统计与衍生字段
除了基础行情和委托队列,Level2 快照还包含一些经过交易所计算的统计字段,这些字段对策略推演具有重要参考价值。
| 字段名称 | 计算方式 | 策略含义 |
|---|---|---|
| 总买总卖 | 所有买档委托量之和 vs 所有卖档委托量之和 | 判断市场整体买卖力量对比,总买 > 总卖偏多 |
| 加权均价 | 成交额 ÷ 成交量(从开盘到当前) | 市场平均持仓成本,价格偏离加权均价时易回归 |
| 委比 | (委买量 - 委卖量) / (委买量 + 委卖量) × 100% | 正值表示买方意愿强,负值表示卖方意愿强 |
| 换手率 | 成交量 / 流通股本 × 100% | 衡量交投活跃度,高换手率常伴随趋势行情 |
| 量比 | 当前每分钟平均成交量 / 过去5日每分钟平均成交量 | 判断成交量是否异常放大,量比 > 1.5 为活跃 |
3.4 快照数据结构总览
为了更直观地理解各字段之间的层级关系,下图展示了 Level2 快照数据的完整结构:
3.5 加权均价的策略意义
加权均价(VWAP)是机构交易者最关注的指标之一,它代表了市场参与者的平均持仓成本。在策略推演中,加权均价有以下应用:
- 价格回归效应: 当最新价大幅偏离加权均价时,价格有向加权均价回归的倾向,可用于均值回归策略。
- 趋势确认: 在上升趋势中,价格应始终运行在加权均价之上;若跌破加权均价,可能意味着趋势转弱。
- 算法交易基准: 机构常以加权均价作为交易执行成本的基准,追求低于加权均价的买入和高于加权均价的卖出。
注意: 加权均价是累计值,随着交易时间的推移,其变化速度会逐渐变慢。在开盘初期,加权均价对价格波动更为敏感;在收盘前,加权均价趋于稳定,此时的价格偏离更具参考价值。
3.6 总买总卖与委比的实战解读
总买总卖和委比是衡量市场即时买卖意愿的重要指标,但需要结合具体场景解读:
| 场景 | 总买 > 总卖 | 总买 < 总卖 | 策略建议 |
|---|---|---|---|
| 上涨趋势中 | 买方持续强势,趋势延续概率大 | 可能出现获利回吐,注意回调风险 | 顺势持仓,但需设置移动止盈 |
| 下跌趋势中 | 可能有抄底资金介入,但需确认 | 卖方主导,下跌动能充足 | 避免逆势抄底,等待企稳信号 |
| 横盘震荡中 | 下方承接有力,支撑较强 | 上方抛压较重,压力明显 | 高抛低吸,参考总买总卖边界 |
| 尾盘异动 | 主力资金抢筹,次日高开概率大 | 主力资金出逃,次日低开概率大 | 尾盘跟随或反向操作需谨慎 |
3.7 快照数据字段的代码解析示例
以下 Python 代码展示了如何解析一个 Level2 快照 JSON 数据,并提取关键字段用于策略计算:
import json
# 模拟一个 Level2 快照数据
snapshot = {
"code": "600519",
"timestamp": 1630000000,
"latest_price": 1850.00,
"volume": 1250000,
"amount": 2312500000.00,
"open": 1840.00,
"high": 1865.00,
"low": 1835.00,
"pre_close": 1845.00,
"bid_prices": [1849.99, 1849.98, 1849.97, 1849.96, 1849.95],
"bid_volumes": [500, 800, 1200, 600, 900],
"ask_prices": [1850.01, 1850.02, 1850.03, 1850.04, 1850.05],
"ask_volumes": [400, 700, 1000, 500, 800]
}
# 计算加权均价
vwap = snapshot["amount"] / snapshot["volume"] if snapshot["volume"] > 0 else 0
# 计算总买总卖
total_bid = sum(snapshot["bid_volumes"])
total_ask = sum(snapshot["ask_volumes"])
# 计算委比
if total_bid + total_ask > 0:
ratio = (total_bid - total_ask) / (total_bid + total_ask) * 100
else:
ratio = 0
# 输出策略信号
print(f"最新价: {snapshot['latest_price']}")
print(f"加权均价: {vwap:.2f}")
print(f"总买: {total_bid}, 总卖: {total_ask}")
print(f"委比: {ratio:.2f}%")
# 判断价格偏离
deviation = (snapshot['latest_price'] - vwap) / vwap * 100
if deviation > 1.0:
print("信号: 价格高于加权均价1%以上,注意回调风险")
elif deviation < -1.0:
print("信号: 价格低于加权均价1%以上,关注反弹机会")
else:
print("信号: 价格在加权均价附近,正常波动")
推演要点: 在实际策略中,不应单独依赖某一个字段。例如,委比为正但价格下跌,可能是大单在卖一价位持续出货,此时委比失真。需要结合买卖十档的委托量分布和逐笔成交数据综合判断。