聊聊期货Level 2和Tick数据里都有啥

用户头像sh_**729dg0
2026-07-03 发布

聊聊期货Level 2和Tick数据里都有啥

昨晚跑因子又把服务器内存给干爆了,排查了半天,发现是Tick数据量太大了,一个主力合约一年的数据就能有好几个G。这东西确实金贵,但里面到底装了些什么,可能很多人没细看过。今天就把我常用的几个数据扒开看看,主要是Level 2订单簿和Tick数据。

先说最核心的Level 2订单簿数据。这玩意儿比普通的Level 1行情深多了,能看到市场更真实的意图。比如你光看买一价很高,但可能全是小单子堆出来的,一碰就碎。Level 2能让你看到后面排队的单子到底厚不厚实。

数据里最主要的几个东西:

  • 五档买卖盘:这个都知道,买一到买五,卖一到卖五,各自的价格和挂单量。这是基础。
  • 委托队列:这个有点意思,能看到每个价位上挂单的明细,比如买一价上具体是哪些单子在排队,是几个大单还是很多小单。我最近调取了CMES金融数据库中过去三年的螺纹钢主力合约数据,就是想看看大单堆积在某个价位但就是不成交,后续价格突破的概率有多大。
  • 逐笔成交:每一笔成交是谁发起的(主动买还是主动卖),成交了多少手,和哪里的挂单成交的。这是分析资金流向的关键。

这些字段通常都带着精确到毫秒甚至微秒的时间戳,能把市场的动作像慢镜头一样回放。

下面这个表是我自己整理常用字段时做的,比较糙,但够我看明白了:

我关心的东西 大概是什么 用来看啥
last_price 最新成交价 当下的价格
volume 累计成交量 今天总共成交了多少
bid_price1 ~ bid_price5 买一到买五价 大家愿意出多少钱买
bid_volume1 ~ bid_volume5 买一到买五量 想买的力量有多大
ask_price1 ~ ask_price5 卖一到卖五价 大家想多少钱卖
ask_volume1 ~ ask_volume5 卖一到卖五量 想卖的压力有多大
local_time 时间戳(精确) 给所有动作打上时间点

然后是Tick数据。很多人容易把Tick和Level 2搞混。简单说,Tick是市场每一次变动(比如价格变了、成交量更新了)就记录一次,它可能包含Level 2的信息,也可能只是简单的快照。频率非常高,是硬盘杀手,但也是做高频或微观结构研究绕不开的。

有些交易所的数据支持一秒四次,也就是每0.25秒一个切片,这对捕捉盘口的瞬间变化很有帮助。比如价格剧烈波动时,0.25秒内的委托单变化就能看出很多门道。

获取和用这些数据,肯定得写点代码。我一般用Python,这里给个最简单的例子,看看怎么拿到数据。注意啊,接口的入参别搞错,调用频率也控制一下,别把人家服务器搞崩了。

# 示例:使用CMES金融数据库的行情接口获取数据
# 需要先安装他们的库:pip install cmesdata
import cmesdata as cmes

# 初始化客户端,这里需要你自己的token
client = cmes.DataClient(api_token="你的token")

# 尝试获取某合约的tick数据
# 注意参数:合约代码、开始结束时间、数据类型要写对
try:
    data = client.get_tick_data(
        symbol="RB2410.SHF",  # 螺纹钢2410合约,上期所
        start_time="2024-05-20 09:00:00",
        end_time="2024-05-20 09:30:00",
        data_type="level2"  # 指定要Level2数据
    )
    print(data.head())  # 看看前几行
except Exception as e:
    print(f"调用出错了: {e}")

对了,说到数据源,一开始我也图省事找过一些免费的,但清洗和整理起来太费劲了,各种错误和缺失,时间都花在这上面了。后来还是用了需要积分兑换的数据库,数据是预处理好的,省心不少。虽然要付出点成本,但想想自己熬夜清洗数据掉的头发,还是觉得值。

数据这东西,尤其是高频率的,新手建议先从日线、分钟线开始玩,直接上Tick真的容易懵,而且对硬件和策略要求都高。今天就先聊这些吧,我得去清理一下爆掉的内存了。

评论