一、订单簿基础与数据特征
做量化交易这些年,我越来越觉得订单簿是市场的「心跳」。你想想看,每一笔成交、每一次挂单,都是真金白银堆出来的信号。今天我们就从最基础的东西聊起。
1.1 限价单与市价单
这两种订单类型,说白了就是「我要买,但我愿意等」和「我要买,现在就要」的区别。
- 限价单(Limit Order):你指定一个价格,比如「我出100块买,低于100不买」。这单子挂上去,就等着有人来成交。我习惯把限价单叫做「被动单」——你在提供流动性。
- 市价单(Market Order):你不管价格,直接说「给我买100股,按市场上最好的价格成交」。这是「主动单」,你在消耗流动性。
嗯,这里要注意一个坑:市价单虽然成交快,但在流动性差的时候,你可能吃到很差的价位。我曾经在某个小币种上吃过这个亏,一单下去滑了三个档位,直接亏掉手续费好几倍。
1.2 订单簿的构建逻辑
订单簿其实就是个「排队系统」。买方排一队,卖方排一队,价格优先、时间优先。
我画个图帮你理解:
这张图你应该能看懂。左边是买方,价格从高到低排;右边是卖方,价格从低到高排。中间那个缺口就是「价差」(Spread)。
核心概念:订单簿的深度 = 每个价位上的挂单总量。深度越厚,市场越不容易被大单打穿。
1.3 Level2 数据解析
Level2 数据,说白了就是「更细的订单簿」。普通行情只给你看最优的买一卖一,Level2 能给你看好几层甚至几十层。
我拿一个典型的 Level2 数据快照举例:
{
"ts": 1628000000123, // 时间戳(毫秒)
"bids": [ // 买方深度
[99.50, 200], // [价格, 数量]
[99.30, 150],
[99.10, 300]
],
"asks": [ // 卖方深度
[99.60, 180],
[99.80, 220],
[100.00, 350]
]
}
这里要注意的是,不同交易所的 Level2 数据格式可能不一样。有的给你增量更新(只发变化的部分),有的给你全量快照。我在对接某所的时候,就遇到过增量数据丢包导致本地订单簿错乱的问题——嗯,后来我加了个定时全量校验的逻辑才解决。
1.4 盘口深度与价差分析
盘口深度和价差,是判断市场流动性的两个核心指标。
| 指标 | 计算公式 | 含义 |
|---|---|---|
| 价差(Spread) | 最低卖价 - 最高买价 | 越小说明流动性越好 |
| 深度(Depth) | 各价位挂单量之和 | 越大说明市场越抗冲击 |
| 加权深度 | ∑(价格 × 数量) / ∑数量 | 考虑价格后的真实深度 |
我个人习惯用「深度斜率」来判断市场的支撑/阻力位。比如买方深度突然在某价位附近堆积,那这个价位很可能是个强支撑。
实战技巧:价差突然扩大 + 深度骤减,往往是重大消息要出来的前兆。我曾在某次数据回测中发现,这种信号出现后5分钟内,价格波动幅度平均达到0.8%。
避坑指南:我曾经在分析盘口深度时,只看了前5档数据就下了结论。结果一个大单直接吃穿10档,我的止损单被触发在很差的价位。后来我养成了习惯——至少看20档深度,尤其是做高频策略的时候。
好了,订单簿的基础就聊到这儿。这些概念虽然基础,但它们是后续所有降噪和信号增强工作的地基。你想想看,如果连原始数据都理解不透,后面那些滤波算法、特征工程又怎么能做好呢?
公众号:蓝海资料掘金营,微信deep3321