1. 订单簿基础:Level1与Level2数据区别、买卖盘口结构、Tick级数据特征

做高频交易,第一关就是搞懂订单簿。说白了,订单簿就是交易所里那个实时更新的「挂单大屏」。我刚开始接触这个领域时,以为就是看看买一卖一的价格,结果第一次回测就被真实数据狠狠教育了一顿。嗯,今天咱们就把这个基础打扎实。

1.1 Level1 与 Level2:一个看表面,一个看内里

先问个问题:你在普通交易软件上看到的行情,和量化机构用的行情,是一回事吗?

当然不是。这里就要区分两个概念:Level1Level2

对比维度 Level1(浅层数据) Level2(深度数据)
数据深度 仅最优买卖盘口(买一、卖一) 多档位盘口(通常 5-10 档甚至全量)
更新频率 快照式,秒级或百毫秒级 逐笔事件驱动,微秒级
信息量 价格、成交量、涨跌幅 每档挂单量、委托编号、买卖方向
典型用途 散户看盘、简单策略 高频策略、订单流分析、做市

我个人习惯把 Level1 比作「冰山一角」。你只能看到海面上那一小块,但水下藏着多大的体积,你完全不知道。而 Level2 就是给你一副透视镜,让你看清整个冰山的轮廓。

核心观点:高频交易必须用 Level2 数据。用 Level1 做高频,就像蒙着眼睛开车。

1.2 买卖盘口结构:订单簿的骨架

订单簿的结构其实不复杂。你可以把它想象成一个「价格-挂单量」的二维表格。买盘在左边,卖盘在右边,中间是当前最新成交价。

举个例子,某时刻的 BTC/USDT 订单簿长这样:

卖五: 50000.00   (12.3 BTC)
卖四: 49990.00   (8.1 BTC)
卖三: 49980.00   (15.7 BTC)
卖二: 49970.00   (5.2 BTC)
卖一: 49960.00   (10.0 BTC)
-------------------------------
最新成交价: 49955.00
-------------------------------
买一: 49950.00   (20.5 BTC)
买二: 49940.00   (7.8 BTC)
买三: 49930.00   (3.2 BTC)
买四: 49920.00   (11.4 BTC)
买五: 49910.00   (6.6 BTC)

这里面有几个关键指标,我在项目中经常用到:

  • 买卖价差(Spread):卖一价 - 买一价。价差越小,流动性越好。我记得有一次做 ETH 的做市策略,价差突然从 0.01 扩大到 0.05,我立马暂停了策略——这往往是剧烈波动的先兆。
  • 深度(Depth):每个价位上的挂单总量。深度越厚,价格越难被推动。
  • 订单簿不平衡(Order Book Imbalance):买盘总量 vs 卖盘总量。这个指标我用来判断短期方向,准确率还不错。
小技巧:别只看买一卖一。有时候买二到买五的挂单突然撤掉,比买一的变化更有信号意义。这叫「冰山订单」的伪装。

1.3 Tick 级数据特征:高频交易的「心跳」

Tick 数据,就是每一笔成交或每一次订单簿变化的记录。它不像 K 线那样聚合,而是原汁原味的市场微观结构。

一个典型的 Tick 数据长这样:

时间戳: 2024-01-15 09:30:00.123456
类型: 成交
价格: 49955.00
数量: 0.5 BTC
方向: 主动卖出

或者:

时间戳: 2024-01-15 09:30:00.123789
类型: 挂单
价格: 49960.00
数量: 2.0 BTC
方向: 卖盘新增

Tick 数据有几个特征,你想想看:

  • 高频爆发性:行情平静时可能几秒才一个 Tick,但突发事件时,一秒钟能涌进来几百个 Tick。我处理过最极端的一次,某币种在 1 秒内产生了 2000+ 个 Tick,直接把我的本地队列撑爆了。
  • 时间戳精度:交易所给的时间戳通常是微秒级(μs)甚至纳秒级(ns)。但要注意,不同交易所的时间戳含义不同——有的是「到达交易所时间」,有的是「撮合完成时间」。这个坑我曾经踩过,导致回测结果和实盘差了十万八千里。
  • 数据冗余:Tick 数据里有很多「噪音」。比如同一个价格上反复挂单、撤单,其实对策略没有意义。所以清洗的第一步,就是去重和过滤。
避坑指南:我曾经以为 Tick 数据越多越好,结果把全量数据喂给模型,训练速度慢得像蜗牛,而且过拟合严重。后来我学会了「降采样」——只保留关键事件(如价格变动、大单成交),效果反而更好。

1.4 知识体系总览

下面这张图,是我自己梳理的订单簿数据知识框架。你可以把它当作本章的「地图」:

订单簿数据知识体系 数据层级 数据结构 Level1 Level2 盘口结构 Tick数据 关键指标 • 买卖价差 (Spread) • 市场深度 (Depth) • 订单簿不平衡 (OBI) 数据特征 • 高频爆发性 • 时间戳精度 • 数据冗余与噪音 最终目标:干净、对齐、可回测的订单簿数据

这张图把整个知识体系串起来了。从数据层级出发,到具体的结构和特征,最后落到清洗目标上。你每次做数据清洗前,都可以对照这张图,问问自己:我现在处理的是 Level1 还是 Level2?我需要关注哪些指标?

我的习惯:每次拿到新的交易所数据,我会先画一张类似的图,把数据字段、更新频率、时间戳格式都标出来。磨刀不误砍柴工,这一步能省掉后面 80% 的 debug 时间。

公众号:蓝海资料掘金营,微信deep3321