盘口数据结构:Level-2行情数据、买卖十档、逐笔成交、委托队列、盘口深度分析
做量化交易这些年,我见过太多人盯着K线图猛看,却忽略了盘口这个「金矿」。说实话,盘口才是市场最真实的博弈现场。今天我们就来拆解Level-2行情的数据结构,这些东西是我每天盯盘必看的内容。
一、Level-2行情 vs Level-1行情
先说说基础概念。Level-1行情就是咱们平时在普通交易软件上看到的——买一卖一、最新价、涨跌幅这些。但做做市交易,Level-1根本不够用。
Level-2行情多了什么?我列个表你就明白了:
| 数据项 | Level-1 | Level-2 |
|---|---|---|
| 买卖盘口 | 仅买一卖一 | 买卖十档 |
| 逐笔成交 | 无 | 有(含成交方向) |
| 委托队列 | 无 | 前50笔委托明细 |
| 更新频率 | 3秒快照 | 实时推送(毫秒级) |
嗯,这里要注意:Level-2的数据量是Level-1的几十倍。我刚开始接入时,光解析数据就把程序搞崩了好几次。所以处理Level-2,你得先做好性能优化。
二、买卖十档:盘口的「骨架」
买卖十档,说白了就是当前市场上挂着的所有限价单。买一到买十是等着买入的,卖一到卖十是等着卖出的。
我个人习惯把买卖十档分成三层来看:
- 表层(买一卖一):当前最优价格,流动性最好
- 中层(买二卖二到买五卖五):主力资金经常在这里埋伏
- 深层(买六卖六到买十卖十):大单挂单的「藏身之处」
我在项目中遇到过一种情况:某ETF的买一只有100手,但买二到买五突然堆了5000手。这种「阶梯式挂单」往往是机构在托底。如果你做做市,看到这种结构就要小心了——别傻乎乎地往上冲。
关键指标:盘口价差
买一价和卖一价的差值,就是盘口价差。做市交易的核心利润来源就是这个价差。一般ETF的价差在0.001-0.01元之间,如果价差突然拉大,说明流动性出问题了。
三、逐笔成交:市场的「心跳」
逐笔成交数据,记录的是每一笔实际成交的订单。它包含:
- 成交时间(精确到毫秒)
- 成交价格
- 成交数量
- 成交方向(主动买还是主动卖)
为什么要看逐笔成交?因为买卖十档是「挂单」,而逐笔成交是「吃单」。挂单可以撤,但成交是实打实的。
我曾经靠逐笔成交抓过一次机会:某ETF在3分钟内连续出现大额主动买单,每次都是500手以上。虽然价格没怎么涨,但我知道有人在吸筹。果然后面半小时拉了一波。这就是逐笔成交的威力——它能提前暴露主力意图。
我的小技巧:把逐笔成交按方向累加,算出「主动买量 - 主动卖量」的差值。这个差值连续为正,说明买方力量强;连续为负,说明卖方在砸盘。
四、委托队列:看穿「挂单陷阱」
委托队列是Level-2独有的数据。它展示了买一和卖一位置上前50笔委托的明细。说白了,就是你能看到谁在「排队」。
举个例子:
卖一:10.00元 委托队列:
第1笔:100手(机构席位)
第2笔:50手(散户席位)
第3笔:200手(机构席位)
...
如果卖一位置全是机构席位的大单,那这个卖压就是真实的。但如果全是散户的小单,那可能就是「纸老虎」——一拉就破。
我记得有一次做ETF做市,看到卖一挂了5000手,但委托队列里全是100手以下的小单。我判断这是散户跟风挂的,直接一口吃掉。果然,吃完后卖二到卖五都没什么大单,价格直接上去了。
避坑指南:我曾经被「虚假挂单」坑过。有些做市商会挂大单但不成交,等你撤单时他再撤。所以一定要结合逐笔成交来看——挂单多但成交少,大概率是虚挂。
五、盘口深度分析:把数据串起来
前面说的都是单个数据项,但真正做交易,你得把它们串起来看。我一般会构建一个「盘口深度分析框架」:
- 流动性评估:买卖十档的总挂单量,判断市场深度
- 资金流向:逐笔成交的主动买卖方向,判断多空力量
- 挂单真实性:委托队列的席位分布,判断大单是否真实
- 价差变化:实时监控价差,判断做市机会
下面是我常用的一个盘口深度分析流程图:
这个流程看起来简单,但实际跑起来很考验代码性能。我建议你用C++或者Rust来处理Level-2数据,Python做回测还行,实盘的话延迟太高。
核心要点总结:
- 买卖十档看「流动性分布」
- 逐笔成交看「真实资金流向」
- 委托队列看「挂单是否真实」
- 三者结合才能做出正确的做市决策
好了,盘口数据结构就讲到这里。这些东西你看着可能觉得简单,但真正用起来,每个细节都能挖出不少门道。我建议你找个Level-2数据源,自己动手跑一遍,感受一下数据流动的感觉。比看一百遍理论都管用。