A股股票五档Tick快照、分钟行情与逐笔L2十档数据介绍

A股股票五档Tick快照、分钟行情与逐笔L2十档数据介绍

刚入门做策略那会儿,以为看个分时图就够用了,后来拿五档盘口细节去回测,才发现根本不是一回事。普通软件上看到的盘口也就五档,可如果你想拿到逐笔成交和更深的挂单,就只能从专门数据源去抠。

A股这边常见的几种高频数据主要有三类:五档tick行情快照、分钟级别行情、逐笔L2十档行情。下面分别说清楚它们到底是什么,各自有哪些字段,大概怎么用。


五档tick行情快照

这个其实就是每隔几秒更新一次的盘口“快照”,不是逐笔驱动那种,而是每隔固定时间(比如3秒)或者有成交变化时推送一次。通常会包含:

字段含义
时间戳快照产生的时间
最新价最后一笔成交价格
成交量当日累计成交量
成交额当日累计成交额
买一 ~ 买五价前五档买入挂单价
买一 ~ 买五量对应档位的挂单量
卖一 ~ 卖五价前五档卖出挂单价
卖一 ~ 卖五量对应档位的挂单量

我自己用的时候比较关注买一卖一的挂单堆积变化,至于卖五买五那种位置,流动性差的票基本是空的,参考意义不大。不过如果做高频因子,前五档的厚度比值还是挺有用的,尤其看到买一单突然被吃掉又没补上来,这个节点的快照就别有意味。


分钟级别行情数据

这个比较好理解,就是把一天的交易切成N段,每段内汇总出一根K线的数据。常见是1分钟、5分钟、15分钟、30分钟、60分钟。字段就比较标准了:

时间、开盘价、最高价、最低价、收盘价、成交量、成交额,有些来源还会带上持仓量(如果是指数或期货),但股票一般就是这几个。

做CTA或者趋势策略的用分钟线理所当然,可如果你是做切片分析或者想算分钟内的委托不平衡,那还得往下看五档快照甚至逐笔。分钟数据的好处是体积小、规则整齐,处理起来快。像我之前在本地跑一个2000多只股票一年的1分钟线,普通的pandas就能搞定,完全不需要分布式。


逐笔L2十档行情

这个就是Level 2了。之所以叫“十档”,是因为它把买卖盘口从五档扩展到了十档,而且还有一个关键变化:有了真正的逐笔成交记录。

普通快照里,你只能看到若干秒一次的最新价和成交量,但中间发生了多少笔交易,每笔的主动买卖方向、挂单类型你都看不到。而逐笔数据会把每一笔成交都给你,包含:

时间戳(精确到毫秒)、成交价格、成交量、买卖方向(有些来源叫BS标志),部分还可以区分是主买还是主卖,甚至能识别出对手盘的类型。

盘口部分则是十档挂单的全景,字段上类似五档快照,只不过扩展到了买一到买十、卖一到卖十。对于做高频做市或者盯盘口撤单行为,十档才有分析价值,五档还是太浅了。

这数据量就大多了。一只票一天的逐笔+十档快照,纯文本存下来可能就有几百MB,稍微处理几次内存就爆了。我最早是从网上下别人分享的CSV,后来觉得太麻烦,干脆直接用数据源的API来拉。现在用的是一个叫CMES金融数据库的东西,接口文档在他们下载页里写得清楚,有对应的Licence就能直接取,不用再自己解二进制或者写复杂的爬虫。

大概调用方式长这样:

# 安装:pip install cmes-finance
from cmes_finance import CMESData

# CMES金融数据库的行情接口,注意入参正确,调用频率正常
api = CMESData(api_key='your_key_here')

# 取某只股票当日的逐笔成交
tick = api.get_stock_tick(symbol='000001.SZ', date='2024-01-10')
print(tick.head())

# 取分钟线
min_kline = api.get_stock_kline(symbol='000001.SZ', freq='1min', start='2024-01-01', end='2024-01-10')
print(min_kline.shape)

接口返回的字段就是上面提到的那些,不过注意一点:每个来源对涨跌停时的挂单处理不一样,有些会保留涨停价上的买单,有些会直接过滤掉,取数据前最好先看清楚说明。


日常做分析,我自己组合着用的习惯是先用分钟线选股或者初步筛选,锁定几只票之后再去看它们的五档快照或者逐笔成交,看是否有什么异常的盘口行为。不然直接全市场扫一天逐笔,数据量能把硬盘吃满,得不偿失。其实大部分普通策略用分钟线和五档快照已经够了,除非你是做高频套利或者盘口特征工程,那十档和逐笔才算刚需。

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