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股——这种失衡,基本就是短期方向信号。
  • 订单簿斜率:从买一到买五,挂单量是递增还是递减?这能反映市场的「耐心」程度。

核心观点:订单簿不是静态的,它是动态博弈的实时投影。每一秒的挂单变化,都是市场参与者用真金白银投票的结果。

成交量预测:从订单簿到未来

成交量预测,听起来很玄乎,其实有迹可循。我个人习惯用三个维度来估算:

  1. 挂单消耗速度:如果买一档的600股在10秒内被吃掉,说明买方意愿很强。接下来大概率会继续向上吃单。
  2. 订单簿失衡度:计算买盘总量与卖盘总量的比值。比值大于1.2,我倾向于认为短期成交量会放大。
  3. 大单痕迹:如果某档突然出现远超其他档的挂单,比如卖二突然挂了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分钟,往往能帮我避开当天的很多坑。

好了,关于订单簿和成交量的内容就聊到这儿。记住一句话:订单簿是市场的「骨架」,订单流是市场的「血液」。两者都看懂了,你才算真正理解了价格是怎么被发现的。