3、市场微观结构与偏离度:订单簿深度、买卖价差、流动性分层

好,我们直接进入正题。

做市商报价偏离度,说白了就是你的报价跟「合理价格」之间差了多少。但问题来了——什么是合理价格?

很多人以为看个最新成交价就行了。我刚开始做市的时候也这么想,结果被市场狠狠教育了一顿。后来我才明白,合理价格不是某个点,而是一个由订单簿结构决定的区间。

这一节,我们就来拆解这个区间。

3.1 订单簿深度:你的对手盘在哪里

订单簿,就是所有挂单的集合。买一、买二、卖一、卖二……每一档都对应着一定数量的挂单。

我个人习惯把订单簿想象成一个「多层水池」。水面是当前价格,水面以下是买单,水面以上是卖单。每一层的厚度,就是该价位的挂单量。

核心观点: 订单簿深度决定了你的报价能走多远而不影响价格。

举个例子。假设卖一挂了100手,卖二挂了50手。你想买入200手。如果你直接吃卖一,只能吃到100手,剩下的100手就得去卖二成交,价格自然就上去了。

这就是深度不够带来的滑点。滑点越大,你的实际成交价偏离「理想价」就越远。

深度与偏离度的关系:

  • 深度越厚,你的报价偏离度可以越小——因为市场能吸收你的订单
  • 深度越薄,偏离度必须放大——否则你就是在给市场送钱

我在项目中遇到过一种情况:某个小币种,订单簿深度只有几百个ETH。我按正常策略报了个价,结果一单下去直接把价格打穿了3个tick。嗯,从那以后我学乖了——做市之前先看深度。

3.2 买卖价差:做市商的利润来源

买卖价差(Bid-Ask Spread),就是买一价和卖一价之间的差值。这是做市商最直接的收入来源。

你想想看,你同时挂买单和卖单,赚的就是这个差价。但问题来了——价差越大,你的报价偏离度就越大。

价差与偏离度的关系:

  • 价差小,说明市场流动性好,你的报价可以更贴近中间价
  • 价差大,说明市场流动性差,你的报价必须拉开距离

我建议你记住一个经验值:在主流交易所,BTC/USDT的价差通常在0.01%以内。而一些小币种,价差可能高达0.5%甚至1%。

小技巧: 如果你发现某个品种的价差突然扩大,别急着报价。先看看是不是有大单在砸盘或者拉盘。我曾经因为没注意这个,一单亏了半个月的利润。

3.3 流动性分层:市场不是均匀的

市场流动性不是均匀分布的。它是有层次的。

我习惯把流动性分成三层:

  1. 表层流动性: 订单簿前几档的挂单。这部分流动性最容易被吃掉,也最不稳定。
  2. 中层流动性: 订单簿中间几档的挂单。这部分相对稳定,但深度有限。
  3. 深层流动性: 订单簿远端的大单。这部分流动性很难被触发,但一旦触发,价格会剧烈波动。

为什么要分这个?因为你的报价偏离度策略,必须针对不同的流动性层进行调整。

举个例子。如果你只盯着表层流动性报价,一旦市场出现大单,你的报价会被瞬间吃掉,然后价格就跑了。反过来,如果你只看深层流动性,你的报价会离市场太远,根本成交不了。

注意: 流动性分层不是固定的。它会随着市场情绪、时间、事件而变化。比如,重大新闻发布前后,表层流动性会急剧减少,深层流动性会变得活跃。

我曾经在某个山寨币上吃过这个亏。平时流动性很好,我按表层流动性报价,赚得挺开心。结果有一天项目方发了个利好公告,表层流动性瞬间被抽干,我的报价全被吃了,价格直接飞了。嗯,那次之后我加了个流动性分层检测模块。

3.4 三者如何影响偏离度

好,我们把这三个概念串起来。

订单簿深度、买卖价差、流动性分层,这三者共同决定了你的报价偏离度应该设多大。

我总结了一个简单的判断逻辑:

市场状态 深度 价差 流动性分层 建议偏离度
高流动性 均匀 小(0.01%~0.05%)
中等流动性 中等 中等 有分层 中等(0.05%~0.2%)
低流动性 不均匀 大(0.2%~1%)

说白了,流动性越好,你的报价可以越「激进」;流动性越差,你的报价必须越「保守」。

你想想看,如果你在流动性差的市场报一个很小的偏离度,结果会怎样?你的单子会被瞬间吃掉,然后价格就跑了。反过来,如果你在流动性好的市场报一个很大的偏离度,你的单子根本成交不了,白白浪费机会。

3.5 一个简单的检测方法

我个人习惯用「订单簿斜率」来判断流动性状态。斜率越大,说明深度越薄,流动性越差。

代码实现很简单:

def orderbook_slope(orderbook, levels=5):
    """
    计算订单簿斜率
    orderbook: 订单簿数据,包含 bids 和 asks
    levels: 计算前几档
    """
    bids = orderbook['bids'][:levels]
    asks = orderbook['asks'][:levels]
    
    # 计算买单斜率
    bid_prices = [b[0] for b in bids]
    bid_volumes = [b[1] for b in bids]
    bid_slope = (bid_volumes[-1] - bid_volumes[0]) / (bid_prices[-1] - bid_prices[0])
    
    # 计算卖单斜率
    ask_prices = [a[0] for a in asks]
    ask_volumes = [a[1] for a in asks]
    ask_slope = (ask_volumes[-1] - ask_volumes[0]) / (ask_prices[-1] - ask_prices[0])
    
    return bid_slope, ask_slope

斜率越大,说明深度越薄,你的偏离度就要放大。斜率越小,说明深度越厚,偏离度可以缩小。

经验值: 在主流交易所,BTC/USDT的订单簿斜率通常在0.1~0.5之间。如果斜率超过1,我建议你暂停做市,或者把偏离度放大到0.1%以上。

3.6 知识体系总览

为了让你更直观地理解这三者的关系,我画了一张图:

市场微观结构与偏离度控制 订单簿深度 买卖价差 流动性分层 共同决定报价偏离度 偏离度策略 深度厚 → 偏离度小 | 价差小 → 偏离度小 | 流动性均匀 → 偏离度小 高流动性 → 激进报价 中等流动性 → 平衡报价 低流动性 → 保守报价

这张图把整个逻辑串起来了。你从左边三个输入开始,经过中间的分析,最后输出不同的报价策略。

嗯,这一节的内容就到这里。记住一句话:市场微观结构不是背景知识,它是你做市策略的底层逻辑。忽略它,你的偏离度控制就是空中楼阁。


专注资料整理