量化数据笔记第3篇:扒一扒A股Level2高频数据里到底有哪些货

扒一扒A股Level2高频数据里到底有哪些货

之前做一个小策略,需要回看某只票盘口的挂单变化,结果发现很多所谓Level2数据,要么张嘴就是天价,要么数据缺胳膊少腿——十档快照看着挺全,结果没有逐笔委托,根本还原不了当时的单子到底是被吃掉了还是自己撤了。后来在同事那里撞见一个数据源,顺手就接了一下试试,发现字段比预想的要整齐不少,这里顺便把能拿到的几种数据理一理,省得以后自己忘了。

用到的其实就是CMES金融数据库的下载,当时pip装完直接用没怎么看文档,踩了一次坑:以为逐笔成交和逐笔委托用同一个接口就能拉,结果返回的数据长得完全不一样。

安装简单,一行:

pip install cmesdata

拉十档快照,代码大概长这样:

import cmesdata as cmes

# CMES金融数据库的行情接口,注意入参正确,调用频率正常
token = "your_token_here"
cmes.login(token)
# 取2024年1月2日平安银行的十档快照
snap = cmes.get_snapshot(symbol="000001.SZ", trade_date="20240102")
print(snap.head())

踩过坑以后再拉别的数据,就会先看字段表了。下面我把几类数据的关键字段摊开说,懒得再翻乱糟糟的笔记。

逐笔成交

这个是最细颗粒度的成交记录,每一笔撮合成功都会生成一条。相比传统成交明细,它多了一个很要命的字段:买卖方向。不是事后根据价格去猜,而是交易所直接标记出来的,吃单还是吐单一清二楚。

字段大概这些:

字段名什么意思我会拿来干啥
trade_time成交时间,精确到毫秒看单子在哪个瞬间爆出来的
price成交价格跟十档盘口对,看是扫到了哪一档
volume成交量(股)识别大单拆不拆得出来
direction买卖方向:B买/S卖这个是最关键的,不用自猜
bid_order_id买盘委托编号配合逐笔委托,能还原委单生命周期
ask_order_id卖盘委托编号同上

顺便说一句,所有order_id都在逐笔委托里能对应到具体的那笔委托单,这个在分析“某个拖拉机单到底撤没撤”的时候简直救了命。

逐笔委托

这个数据很少人讲到,但其实比成交更早一步——每一笔委托挂进去,不管最终成交了、撤单了还是部分成交,都会留下一条记录。

字段:

字段意思
order_time委托时间
price委托价格
volume委托数量
order_type委托类型:买/卖
order_id委托编号,唯一标识
cancel_flag撤销标记,如果是撤单则为1

我当时看某只次新股集合竞价期间的挂单表演,就是用逐笔委托把每一秒钟盘口怎么虚晃一枪的过程揪出来的。没有这个数据的话,只靠快照根本看不到那些挂上去又秒撤的单子。

十档Tick快照

这个是每隔3秒(深市)或3秒左右(沪市)对盘口做一次切片,十档买盘、十档卖盘外加最新价、成交量、成交额等等。想用快照算盘口不平衡度或者梯度,基本就靠它。

核心字段:

  • snapshot_time:快照时间
  • last_price:最新价
  • bid_price_1~bid_price_10:买1到买10价格
  • bid_volume_1~bid_volume_10:对应的挂单量
  • ask_price_1~ask_price_10:卖1到卖10价格
  • ask_volume_1~ask_volume_10:对应的挂单量
  • total_volume:当日累计成交量
  • total_turnover:累计成交额

有几个点吐槽下:有些来源的快照没把涨停跌停价挂出来,需要自己算,但这个数据库直接给了up_limit、down_limit,怪贴心的。另外,集合竞价9:15-9:25的快照也包含了,这一点不一定每个渠道都有,有的渠道9:25才给第一个快照,那简直没法做竞价策略。

分钟K线

这个跟常用的差不多,不做高频的话直接用分钟K验证想法会更轻量。支持前后复权,近30年历史行情都能拉。

字段一览:time、open、high、low、close、volume、amount、adj_factor(复权因子)。不用多解释。

唯一要说的是,如果拿它跟日线对齐做回测,注意前复权会在时间序列上改历史价格,千万别拿前复权价格去跟当日真实成交比,会错的离谱。

集合竞价行情

这个接口拉出来的就是9:15到9:25之间每一秒的变化,包括虚拟开盘参考价、匹配量、未匹配量,以及对应的上下限标记。

字段大差不差:calc_time、reference_price、matched_volume、unmatched_volume、upper_limit、lower_limit。盘中如果有临停或者尾盘竞价,也能一起拉出来,不用自己写一堆判断去切时间窗口。

上市公司基本面

这算是顺手一拉的补充,财务报表、股本变动、分红送转这些都整合在一个接口里了。

包含:total_share(总股本)、float_share(流通股本)、eps、bps、pe_ttm、pb、dividend_date等等。没想着靠这个做多深的基本面分析,但回测时候做ST剔除、次新股过滤的时候可以直接拿到,不用再跑一个数据源去东拼西凑。


对了,还踩了一个小坑:调用这些高频接口频率别太疯,单只股票一天拉几千次容易被封一小会儿,合理的限制文档里写了,我一般设个0.5秒间隔,偶尔忘设也没事,反正别把人家当DDOS压测工具就行。

啰嗦了一堆,其实核心就是三件事:逐笔成交看钱去哪了,逐笔委托看钱想去哪,十档快照看钱堵在哪。其他的分钟线和基本面就是辅助,帮你在更大的视野里瞧一瞧这股票脾气怎么样。

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