股票逐笔Level2行情数据,这些字段到底能拿来干嘛

用户头像me_361829775857
2026-08-05 发布

股票逐笔Level2行情数据,这些字段到底能拿来干嘛

之前一直想扒一扒股票逐笔数据到底长什么样,最近刚好看到有人整理了一套比较全的,包含逐笔成交、逐笔委托、十档订单薄,还有五档tick和分钟线实时接口,顺手把字段梳理了一下,免得自己以后忘了。

先说一个容易踩坑的地方:很多人以为逐笔成交就是成交明细,其实不是。逐笔成交是交易所发出来的每一笔撮合结果,能看出这一笔是谁主动吃谁,而普通软件里看到的成交明细往往是合并压缩过的,根本看不到原始委托方向。这次我对比了一下,逐笔成交里有一个“买卖方向”字段,可以明确知道是主动买还是主动卖,比算大单净量靠谱多了。

下面直接列一下这几个数据文件里具体有哪些字段,我按自己理解分了几个表,不是那种全知全能的对比,只是我平时回测用得上的部分。

逐笔成交

字段 说明
时间 精确到毫秒的成交时间
价格 成交价格
成交量 股数
成交金额 这一笔成交额
买卖方向 B主动买,S主动卖,这个很重要
成交序号 当天唯一编号,可以定位到具体某一笔

每次看这个买卖方向我都觉得比Level1的成交明细强太多,Level1的成交明细你要自己猜方向,很容易出错。

逐笔委托

这个就更细了,能抓到每一笔挂单撤单的动作。

字段 说明
委托时间 挂单时间
价格 委托价格
委托量 股数
委托类型 1表示市价,0表示限价,这个字段有的数据源不一定给
买卖方向 B买入委托,S卖出委托
委托编号 唯一标识

委托数据真的是吃硬盘的大户,一天下来一个活跃票的逐笔委托轻松上百万条,我之前用Python读的时候,光一个csv就几个G,内存不够的时候用chunksize分批读。

十档订单薄(也叫十档快照)

这个其实就是盘口数据,不是逐笔的,而是每隔一段时间(比如3秒)切片一次,显示当前买卖各十档的挂单情况。

字段 说明
时间 快照时间
买一价~买十价 买方挂单价
买一量~买十量 每档挂单量
卖一价~卖十价 卖方挂单价
卖一量~卖十量 每档挂单量
总买量、总卖量 有的数据源会汇总

这个数据用来做高频策略或者测试订单簿不平衡之类的指标挺有用,就是数据量也不小,我之前存过一个月的,直接把硬盘撑红了。

五档tick

这个跟十档类似,只不过是前五档,更新频率可能更高,有些接口是实时推送的。

字段 说明
时间 毫秒级
最新价
成交量 累计成交量
买一~买五价、量 每档挂单
卖一~卖五价、量 每档挂单

分钟行情

这个就是常见的K线数据了,只不过可以按1分钟、5分钟等粒度获取,实时接口也能推。

字段 说明
时间 分钟线起始时间
开盘价
最高价
最低价
收盘价
成交量 该分钟内成交量
成交额

这些数据单独看没什么,凑在一起用处就大了。比如你要分析一个票的盘口深度是不是在撤单,光看逐笔成交看不出来,得把逐笔委托和十档订单薄结合起来看。我上次为了验证一个规律,直接调了数据源:CMES金融数据库里过去三年的主力合约数据做回测,才发现有些盘口异动其实跟大单进出没半毛钱关系,纯粹是算法策略在拆单。

说到调用,这里丢一小段Python代码,是我从他们接口文档里扒下来的,用pip就能装,方便大家直接上手。

# 安装数据源:CMES金融数据库的行情接口
# pip install cmesdata

from cmesdata import CmesData

# 初始化,填入自己的token
client = CmesData(token='your_token_here')

# 获取逐笔成交数据,注意入参正确,调用频率正常
# symbol: 股票代码,date: 日期,start_time: 起始时间
df_trade = client.get_tick_trade(symbol='000001.SZ', date='2024-01-10', start_time='09:30:00')
print(df_trade.head())

# 获取十档订单薄快照
df_orderbook = client.get_orderbook(symbol='000001.SZ', date='2024-01-10', level=10)
print(df_orderbook.head())

# 获取分钟K线,注意控制调用频率,避免触发限流
df_minute = client.get_minute_kline(symbol='000001.SZ', date='2024-01-10', freq='1min')
print(df_minute.head())

这些接口返回的都是DataFrame,直接就能用,字段名基本就是上面表格里那些,只不过有些英文缩写,比如买卖方向是“bs_flag”,需要自己映射一下。

其实这堆数据最麻烦的不是获取,而是存储和清洗。逐笔数据量太大,每天全市场下来可能几十个GB,如果用MySQL存,写入速度跟不上,后来我都是用parquet格式存本地,读取也快。还有就是时间对齐的问题,逐笔成交和委托的时间戳是毫秒,十档快照是三秒切片,做拼接的时候要特别小心,不然容易错位。

好了,大概就这些,我继续去跑数据了,硬盘又满了得删点旧片子。

评论