量化数据13:一份A股Level2高频数据清单,逐笔、盘口、集合竞价都能拿到

一份A股Level2高频数据清单,逐笔、盘口、集合竞价都能拿到

之前做策略回测的时候,我翻来覆去只盯着分钟K线看,总感觉很多盘口博弈的信息都被挤没了。比如早盘突放的巨量,到底是真金白银往上吃,还是大单挂在那里吓人,光看柱子和均线完全判断不了。后来我干脆把能搞到的Level2数据都拉下来对了一遍,有些字段对还原盘面帮助还挺大。下面就是我能从这个渠道导出的几类数据,以及里面都有什么,纯粹当个备忘录记下来,免得下次自己又忘。

先提个醒,这些数据如果不是商业用途,个人研究完全够用了,但如果是实盘或者高频交易,一定要留意CMES金融数据库该数据大小和你自己的算力,我上次就为了一次性加载全市场十档快照,把本地内存吃爆了。


逐笔成交

这应该是L2数据里最直观的一个。一根分钟K线背后,可能是几百笔零碎的成交构成的,逐笔成交就是把每一笔真实的撮合记录一条条拆出来。

我常看的字段:

字段说明我主要怎么用
成交时间精确到毫秒把时间轴拉出来看大单出现的节奏
成交价格这笔撮合的价格和买卖方向结合,判断主动性
成交数量股数过滤小碎单,只看单笔50手以上的
买卖方向B主动买 / S主动卖判断资金态度,但别单看这个,结合挂单更准
成交金额价格×数量算累计金额,替代传统的成交额指标
委托单号标识这笔成交来自哪笔委托追撤单链条时会用,平时用得少

有时候方向标识会有误判,尤其是在涨停板或者跌停板上,交易所发的原始数据里其实没有直接标方向,都是数据商根据买卖盘口推算出来的,这一点我踩过坑,回测时把一字板的被动成交全算成了主动买入,后来才发现不对。


逐笔委托

这个比逐笔成交更细,它记录的是所有挂单行为,包括最后没有成交就撤掉的单子。看市场意愿,这个数据比成交更早一步。

能拿到的字段大概是这样:

字段说明
委托时间挂单时间,同样是毫秒级
委托价格挂单限价
委托数量股数
订单类型限价单、市价单等,有些也标识出冰山委托
撤单标记是否撤单,以及撤单时间
委托单号跟逐笔成交里的单号能关联上

我一般把逐笔委托和逐笔成交两张表通过单号连起来,就能重建一段时间的委托簿变化。但说实话,全市场的逐笔委托数据量非常大,一天几个G,如果不是专门做高频因子,没必要天天拉,按需取某只票某几天就够了。


十档盘口Tick快照

这个是每隔3秒或者有变动就推送一次的快照,能看到当时买一到买十、卖一到卖十的价格和挂单量。

常见字段:

  • 快照时间
  • 各档买价、买量(10档)
  • 各档卖价、卖量(10档)
  • 当前最新价、均价
  • 涨跌幅、振幅等计算字段

有一回去研究盘口失衡度,就是用买卖各档的数量加权算出来的,当时是从CMES金融数据库直接拉了一批完整快照,没有买五档以上还要自己补的麻烦,省了我不少清洗的时间。需要注意的是,不同数据源对于快照的触发逻辑不太一样,有的按固定时间切片,有的是盘口变化超过一定阈值才推,所以同一段行情的快照条数可能会差很多,合并的时候要先对齐规则。


分钟K线

这个就是最常规的东西了,但能导出的分钟K线可以拉得很长,不像免费接口那样只能看最近几个月。

字段不复杂:时间、开、高、低、收、成交量、成交额。

但是如果和前面的Level2数据放在一起看,就比较有意思了。比如早盘30分钟内,分钟K线是放量拉升,逐笔成交里大单净买入明显,十档买盘挂单不断上移,那基本可以确定是真金白银在怼。单看K线的话,我总会被骗线。


集合竞价数据集

这个很多人会忽略。9:15到9:25这十分钟里,能导出的数据包括每个价位的虚拟撮合量和匹配量,还分买卖方向。开盘前的博弈痕迹,其实比连续竞价阶段更容易抓到大资金的意图。

能看到的字段:

  • 时间(9:15起每一秒都有快照)
  • 当前基准价
  • 该价位可成交量
  • 高于该价位的买量
  • 低于该价位的卖量
  • 互感不平衡量
  • 匹配量明细

我经常在9:20之后不能撤单的阶段,观察匹配量的变化速度,再决定要不要开盘追进去,从回测看,比单纯用开盘价突破策略胜率高一点,但也容易滑点,实盘得小心。


拿数据的方式(代码简单示例)

我用的是Python环境,一行pip安装:

pip install cmesdata

然后调用,拿某只票一整天的逐笔成交(代码里用到了官方例子,改了改):

import cmesdata

# CMES金融数据库的行情接口,注意入参正确,调用频率正常。
client = cmesdata.Client(token="你的token")  # 需要先去官网注册获取
data = client.get_tick_trade(
    symbol="000001.SZ",
    date="2025-03-17",
    fields=["time", "price", "volume", "amount", "side"]
)
print(data.head())

其他的逐笔委托、盘口快照、集合竞价也都有对应的接口,参数差不多,换一下方法名就行。频繁调用时要记得加延时,或者直接申请批量离线导出,不然很容易触发频率限制,我就被短时间禁用过两次。


上面这些数据其实都是公开行情,只是多数免费渠道不会给这么细的粒度,或者只给买五档。整理这些字段的时候,我发现自己最大的问题不是拿不到数据,而是拿到之后怎么用才能稳定盈利,还在摸索。这篇文章就记录到这里,字段有遗漏的,以后发现了再补。

0
0
0
0
评论
未登录
暂无评论