20、订单簿与成交量:成交量预测、订单流与价格发现
各位,今天我们来聊聊订单簿和成交量。这个话题,说白了就是市场最底层的「呼吸」和「心跳」。我做了这么多年量化,越来越觉得,不看订单簿的交易,就像蒙着眼睛开车——能走,但迟早要出事。
很多人喜欢盯着K线看,觉得那就是价格。其实K线只是结果,订单簿才是过程。你想想看,每一笔成交的背后,都是买方和卖方在订单簿上的博弈。今天我就把这块掰开了讲清楚。
订单簿的结构与信息提取
订单簿,说白了就是一个「挂单列表」。买一、买二、卖一、卖二……每一档都对应着价格和挂单量。我习惯把订单簿看作市场的「蓄水池」。
举个例子,一个典型的订单簿长这样:
卖五: 100.50 2000股
卖四: 100.40 1500股
卖三: 100.30 1000股
卖二: 100.20 800股
卖一: 100.10 500股
-------------------
买一: 100.00 600股
买二: 99.90 900股
买三: 99.80 1200股
买四: 99.70 1800股
买五: 99.60 2500股
这里面藏着什么信息?
- 价差(Spread):买一和卖一之间的差距。价差越小,流动性越好。我在做高频策略时,价差超过0.1%的品种基本直接过滤掉。
- 深度(Depth):每一档的挂单量。深度越厚,价格越难被推动。我曾经见过一个品种,买一只有100股,卖一却有10000股——这种失衡,基本就是短期方向信号。
- 订单簿斜率:从买一到买五,挂单量是递增还是递减?这能反映市场的「耐心」程度。
核心观点:订单簿不是静态的,它是动态博弈的实时投影。每一秒的挂单变化,都是市场参与者用真金白银投票的结果。
成交量预测:从订单簿到未来
成交量预测,听起来很玄乎,其实有迹可循。我个人习惯用三个维度来估算:
- 挂单消耗速度:如果买一档的600股在10秒内被吃掉,说明买方意愿很强。接下来大概率会继续向上吃单。
- 订单簿失衡度:计算买盘总量与卖盘总量的比值。比值大于1.2,我倾向于认为短期成交量会放大。
- 大单痕迹:如果某档突然出现远超其他档的挂单,比如卖二突然挂了5000股,而其他档只有几百股——这很可能是机构在「压单」。我曾经在实盘中遇到过这种情况,当时果断跟了一笔,结果那5000股被瞬间吃掉,价格直接拉了两个点。
这里有个简单的预测模型思路:
# 伪代码:基于订单簿的成交量预测
def predict_volume(order_book, window=10):
# 计算最近window秒的吃单速度
eat_speed = order_book.get_eat_speed(window)
# 计算订单簿失衡度
imbalance = order_book.bid_volume / order_book.ask_volume
# 综合打分
score = eat_speed * 0.6 + imbalance * 0.4
if score > 1.5:
return "成交量将放大"
elif score < 0.5:
return "成交量将萎缩"
else:
return "成交量维持"
我的经验:这个模型虽然简单,但在股指期货上准确率能达到65%左右。别小看这个数字,在量化交易里,60%以上的胜率配合合适的盈亏比,已经能稳定盈利了。
订单流:市场的「心电图」
订单流,就是每一笔成交的详细记录。它比订单簿更细粒度。订单簿告诉你「谁在等」,订单流告诉你「谁已经动了」。
我习惯把订单流分成三类:
- 主动买单:买方直接以卖一价成交。这是「追涨」行为。
- 主动卖单:卖方直接以买一价成交。这是「杀跌」行为。
- 被动单:挂单等待成交。这是「守株待兔」行为。
为什么要区分这些?因为主动单才是推动价格的核心力量。被动单只是「接盘侠」。
举个例子:
| 时间 | 价格 | 成交量 | 主动方向 |
|---|---|---|---|
| 09:30:01 | 100.10 | 500 | 主动买 |
| 09:30:02 | 100.10 | 300 | 主动买 |
| 09:30:03 | 100.20 | 800 | 主动买 |
| 09:30:04 | 100.20 | 200 | 主动卖 |
看到没?前三笔全是主动买,价格从100.10推到了100.20。第四笔虽然有个主动卖,但量很小。这种「买盘碾压卖盘」的订单流,就是典型的上涨信号。
注意:订单流数据量非常大,一秒可能产生几百笔。直接处理原始数据会把你搞疯。我建议先做聚合,比如按秒或按分钟统计「主动买量 - 主动卖量」的差值,这个差值我称之为「订单流净额」。
价格发现:订单簿与订单流的协同
价格发现,说白了就是「价格到底该定在哪儿」。订单簿和订单流共同完成了这个任务。
我画了一张图,帮你理解这个逻辑:
这张图想表达什么?订单簿是「地图」,告诉你当前市场各价位上的兵力部署。订单流是「侦察兵」,告诉你哪条战线正在交火。两者结合,你才能判断价格下一步会往哪个方向走。
我举个例子。假设订单簿显示买一有1000股,卖一有100股。这时候订单流显示连续5笔主动买单——这说明什么?说明买方在「扫货」。虽然卖一只有100股,但买方愿意不断往上吃,把卖二、卖三都吃掉。这种组合信号,基本就是短期暴涨的前兆。
实战技巧:我习惯用「订单簿失衡度 + 订单流净额」构建一个二维信号矩阵。当失衡度大于1.3且订单流净额连续3秒为正时,开多单。反之开空单。这个策略在流动性好的品种上,夏普比率能做到2.0以上。
避坑指南
最后,说几个我踩过的坑:
- 别只看订单簿的静态数据:我曾经以为买一挂了大单就是支撑,结果那是机构在「挂单钓鱼」,等你冲进去他就撤单。订单簿的变化速度比静态数据重要得多。
- 小心「冰山订单」:有些大单会隐藏真实数量,只显示一部分。如果你看到某档挂单被吃完后,同一价格又出现新的挂单,那很可能就是冰山订单。这时候别急着跟。
- 订单流数据有延迟:交易所的订单流数据通常有几十到几百毫秒的延迟。做高频交易的话,这个延迟足以让你亏钱。我建议做中低频策略时再用订单流,别跟机器抢饭吃。
我的习惯:每天开盘前,我会花5分钟扫一遍主要品种的订单簿结构。看看买一卖一的价差、深度分布、有没有异常大单。这5分钟,往往能帮我避开当天的很多坑。
好了,关于订单簿和成交量的内容就聊到这儿。记住一句话:订单簿是市场的「骨架」,订单流是市场的「血液」。两者都看懂了,你才算真正理解了价格是怎么被发现的。