10、Delta与订单簿:订单簿买卖挂单与Delta的联动、吃单力度分析

聊到Delta,很多人第一反应就是「红绿柱子」。但说实话,只看Delta柱状图,你只能看到结果——谁在主动买、谁在主动卖。真正的高手,会盯着订单簿看过程。

订单簿和Delta,就像拳击手的左右手。左手是挂单(订单簿),右手是吃单(Delta)。左手摆好架势,右手出拳。你光看右手出拳有多重,不看左手怎么摆,那永远看不懂对手的意图。

我个人习惯,是把订单簿的挂单变化和Delta的逐笔成交结合起来看。嗯,这里有个关键点:Delta是结果,订单簿是过程。两者联动,才能看清市场的真实博弈。

10.1 订单簿的「挂单」与「吃单」到底在说什么?

先理清概念。订单簿上挂着的,是限价单——有人想买,但不想追高,就挂个低价等着;有人想卖,但不想杀跌,就挂个高价等着。

而吃单,是市价单——不管价格,直接吃掉对手盘。你想想看,市价单才是推动价格变动的力量。限价单只是「被动等待」。

Delta统计的,就是这些市价单的净成交量。买盘吃单,Delta为正;卖盘吃单,Delta为负。

但问题来了:同样的Delta数值,在不同的订单簿结构下,意义完全不同

举个例子。我在项目中遇到过这种情况:某合约Delta显示+500手,看起来多头很猛。但如果你看订单簿,买一档只有200手挂着,卖一档却有800手。这500手的Delta,其实是把买一档的200手吃完后,又往上吃了卖一档的300手。价格从买一价跳到了卖一价,涨了2个tick。

同样的+500手,如果订单簿是买一档800手、卖一档200手呢?那这500手Delta,只是把卖一档的200手吃完,剩下的300手还在买一档挂着。价格几乎没动。

你看,同样的Delta,不同的订单簿结构,价格影响完全不同。这就是联动的意义。

10.2 吃单力度:Delta与挂单量的比值

我习惯用一个指标来衡量吃单的「真实力度」——吃单比率

吃单比率 = 当前Delta / 对手盘挂单总量

这个比值告诉你:当前这波吃单,到底能不能打穿对手的防线。

核心逻辑:

  • 吃单比率 > 1:说明吃单量超过了对手盘挂单量,价格必然突破
  • 吃单比率在0.5~1之间:说明吃单在消耗对手盘,但还没打穿,价格会震荡
  • 吃单比率 < 0.5:说明吃单力度弱,对手盘防线稳固,价格很难动

我曾经踩过一个坑。当时看到某币Delta连续3根大绿柱,累计-2000手,觉得空头要砸穿了,直接追空。结果价格就在原地晃悠,最后还拉回去了。

后来复盘才发现,那2000手Delta对应的卖一档挂单有5000手。吃单比率才0.4,根本打不穿。说白了,就是空头在「虚张声势」,看着量很大,其实连第一道防线都没破。

从那以后,我每次看Delta,都会同步看一眼订单簿的挂单深度。这个习惯救了我很多次。

10.3 订单簿的「动态变化」才是关键

静态的订单簿没太大意义。真正有价值的是订单簿的动态变化——挂单在撤、在加、在移动。

我总结了几种常见的联动模式:

模式 Delta表现 订单簿变化 含义
强攻模式 Delta持续为正,且数值大 卖一档挂单被快速消耗,新的卖单跟不上 多头真打,价格大概率上涨
诱多模式 Delta为正,但数值不大 买一档挂单突然增加,然后撤单 主力挂大单吸引跟风,然后撤单反手做空
护盘模式 Delta为负,价格却不跌 买一档不断出现大单托底 有人在下面接货,可能是主力护盘或吸筹
踩踏模式 Delta突然放大,方向一致 对手盘挂单瞬间消失(撤单) 市场情绪一边倒,流动性枯竭

嗯,这里要注意:订单簿的挂单是可以随时撤的。你看到买一档挂了1000手,下一秒可能就撤得干干净净。这就是为什么不能只看静态数据。

避坑指南:

我曾经在交易中吃过这个亏。看到买一档有500手大单托着,觉得跌不下去,就做多了。结果那500手瞬间撤单,价格直接砸穿。后来我才明白,那些大单可能是「幽灵单」——挂上去吓人的,根本不是真想买。

所以我现在看订单簿,会关注挂单的「存活时间」。如果一个大单挂了很久都不撤,那才是真金白银。如果刚挂上就撤,十有八九是烟雾弹。

10.4 实战中的联动分析框架

我个人的分析流程是这样的:

  1. 先看Delta方向:是正还是负?绝对值大不大?
  2. 再看订单簿结构:对手盘挂单厚不厚?有没有明显的「墙」?
  3. 计算吃单比率:这波Delta能不能打穿对手盘?
  4. 观察订单簿动态:挂单在增加还是减少?有没有大单在撤?
  5. 综合判断:是真突破还是假突破?是诱多还是真多?

举个例子。假设我看到BTC的Delta在1分钟内累计了+300手,同时卖一档挂单从200手减少到50手。吃单比率从1.5上升到6.0。这说明多头在持续吃单,而且卖盘防线在崩溃。这种情况下,我会毫不犹豫地跟多。

反过来,如果Delta是+300手,但卖一档挂单从200手增加到500手。吃单比率从1.5降到0.6。这说明有人在卖一档不断加单,多头吃不动。这时候追多就是送人头。

10.5 用SVG画一张联动逻辑图

下面这张图,是我自己总结的Delta与订单簿联动分析框架。你看一遍应该就能记住。

Delta与订单簿联动分析框架 Delta数据 逐笔成交净量 订单簿数据 买卖挂单深度 联动分析 吃单比率计算 吃单方向 挂单厚度 挂单变化 价格位置 综合判断 真突破 / 假突破 / 诱多 / 护盘 核心:Delta是结果,订单簿是过程,两者结合才能看清市场博弈 吃单比率 = 当前Delta / 对手盘挂单总量

10.6 代码实现:实时计算吃单比率

下面是我写的一个简化版代码,用于实时计算吃单比率。你可以根据自己的数据源调整。

class OrderBookDeltaAnalyzer:
    def __init__(self):
        self.delta_buffer = []  # 存储最近N笔Delta
        self.order_book = {}    # 订单簿快照
    
    def update_order_book(self, bids, asks):
        """更新订单簿,bids和asks是列表,格式为[[price, size], ...]"""
        self.order_book['bids'] = bids
        self.order_book['asks'] = asks
    
    def update_delta(self, delta_value):
        """更新Delta数据"""
        self.delta_buffer.append(delta_value)
        if len(self.delta_buffer) > 100:
            self.delta_buffer.pop(0)
    
    def calculate_eat_ratio(self, direction='buy'):
        """计算吃单比率"""
        # 获取最近1分钟的累计Delta
        recent_delta = sum(self.delta_buffer[-60:]) if len(self.delta_buffer) >= 60 else sum(self.delta_buffer)
        
        if direction == 'buy':
            # 多头吃单:看卖一档到卖五档的总挂单量
            ask_volume = sum([ask[1] for ask in self.order_book.get('asks', [])[:5]])
            if ask_volume == 0:
                return 0
            return abs(recent_delta) / ask_volume
        else:
            # 空头吃单:看买一档到买五档的总挂单量
            bid_volume = sum([bid[1] for bid in self.order_book.get('bids', [])[:5]])
            if bid_volume == 0:
                return 0
            return abs(recent_delta) / bid_volume
    
    def analyze(self):
        """综合分析"""
        buy_ratio = self.calculate_eat_ratio('buy')
        sell_ratio = self.calculate_eat_ratio('sell')
        
        result = {
            'buy_eat_ratio': round(buy_ratio, 2),
            'sell_eat_ratio': round(sell_ratio, 2),
            'delta': sum(self.delta_buffer[-60:]) if len(self.delta_buffer) >= 60 else sum(self.delta_buffer)
        }
        
        # 判断模式
        if buy_ratio > 1.5 and result['delta'] > 0:
            result['pattern'] = '强攻模式 - 多头真打'
        elif buy_ratio > 0.8 and result['delta'] > 0:
            result['pattern'] = '试探模式 - 多头在消耗卖盘'
        elif sell_ratio > 1.5 and result['delta'] < 0:
            result['pattern'] = '强攻模式 - 空头真打'
        elif sell_ratio > 0.8 and result['delta'] < 0:
            result['pattern'] = '试探模式 - 空头在消耗买盘'
        else:
            result['pattern'] = '震荡模式 - 双方都在试探'
        
        return result

# 使用示例
analyzer = OrderBookDeltaAnalyzer()

# 模拟数据
bids = [[100.0, 500], [99.9, 800], [99.8, 1200]]  # 买盘
asks = [[100.1, 300], [100.2, 600], [100.3, 900]]  # 卖盘
analyzer.update_order_book(bids, asks)

# 模拟Delta更新
for delta in [50, 80, 120, 60, 90]:
    analyzer.update_delta(delta)

result = analyzer.analyze()
print(f"吃单比率(买): {result['buy_eat_ratio']}")
print(f"吃单比率(卖): {result['sell_eat_ratio']}")
print(f"累计Delta: {result['delta']}")
print(f"模式判断: {result['pattern']}")

个人经验:

这个代码我用了很久,但后来发现一个问题——只看前5档不够。有时候主力会在第6档、第7档挂大单,你看不到就会误判。所以我后来改成了「动态深度」,根据当前Delta的大小,自动调整看的档位数。Delta越大,看的档位越深。

另外,吃单比率的阈值不是固定的。在流动性好的市场,1.5可能就算强攻;在流动性差的市场,0.8可能就能打穿。你需要根据具体品种调整。

10.7 总结一下

Delta和订单簿的联动,说白了就是「看结果,更要看过程」。Delta告诉你谁在主动交易,订单簿告诉你交易的成本和阻力。

我个人最常用的三个指标:

  • 吃单比率:衡量吃单的真实力度
  • 挂单变化率:看对手盘是在加单还是撤单
  • Delta与价格背离:Delta大但价格不动,说明有人在控盘

记住一句话:不要只看Delta的大小,要看Delta相对于订单簿的「分量」。同样的Delta,在不同的订单簿结构下,意义天差地别。

嗯,这一章的内容就到这里。下一章我们会聊Delta与成交量的关系,看看这两个指标怎么配合使用。


无相订单流研究社 微信Lucian808555