2、市场微观结构:订单簿深度、买卖价差、滑点、流动性分层

做市商策略,说白了就是跟市场微观结构打交道。你想想看,我们每天盯着K线,其实看到的都是「结果」。真正决定你能不能赚钱的,是订单簿里那一层层的挂单——这才是市场的「内脏」。

我个人习惯,在搭建任何做市策略之前,先花一周时间把目标交易所的微观结构摸透。为什么?因为同样的策略,在币安和OKX上跑,结果可能天差地别。今天我们就来拆解这四个核心概念。

2.1 订单簿深度:市场的「承重墙」

订单簿深度,说白了就是某个价位上挂了多少钱。深度越厚,说明这个价位越「硬」,不容易被击穿。

我在项目中遇到过最典型的案例:一个做市策略在深度只有20个BTC的交易所上跑,结果一个大户砸了50个BTC,直接把价格打穿了3个档位。策略瞬间亏损。后来我加了一个深度过滤条件——深度低于某个阈值,直接暂停做市。

核心指标:
  • 深度分布:前5档、前10档的总挂单量
  • 深度斜率:价格每变动0.1%,挂单量变化多少
  • 深度不对称:买盘深度 vs 卖盘深度的比值

怎么量化?我一般用这个公式:

# 计算前N档的加权深度
def weighted_depth(order_book, levels=5):
    total_depth = 0
    for i in range(levels):
        price = order_book['asks'][i][0]
        volume = order_book['asks'][i][1]
        total_depth += price * volume
    return total_depth

嗯,这里要注意:不同交易所的订单簿结构不一样。有的交易所是「价格优先、时间优先」,有的则是「做市商优先」。你直接拿同一套代码去跑,会出问题的。

2.2 买卖价差:做市商的「饭碗」

买卖价差(Spread),就是买一价和卖一价之间的差距。这是做市商最主要的收入来源。你赚的就是这个差价。

但价差不是固定的。我记得有一次在Deribit上做期权做市,平时价差只有0.5个点,结果非农数据公布前5分钟,价差瞬间扩大到5个点。如果你还按原来的策略挂单,要么吃不到单,要么被套。

市场状态 典型价差(BTC/USDT) 做市策略调整
正常交易时段 0.01% - 0.05% 正常挂单,赚取价差
重大新闻发布 0.1% - 0.5% 扩大挂单间距,降低风险
市场剧烈波动 0.5% - 2% 暂停做市,或只挂被动单
我的经验:价差不是越小越好。价差过小说明竞争激烈,你的单子可能根本吃不到。我一般会找一个「舒适区」——价差在0.02%-0.05%之间,既能吃到单,又有足够的利润空间。

2.3 滑点:看不见的成本

滑点,就是你下单时的预期价格和实际成交价格之间的差距。很多人只盯着手续费,却忽略了滑点——这才是做市商最大的隐形杀手。

为什么会这样?因为你的订单在到达交易所的路上,市场已经变了。尤其是高频做市,几百微秒的延迟就能让你多亏几个基点。

我曾经做过一个测试:在同一个策略下,使用不同的服务器位置,滑点差异能达到3倍。服务器在交易所机房的,滑点只有0.01%;服务器在另一个城市的,滑点高达0.03%。别小看这0.02%,一年下来就是几十万的差距。

避坑指南:我曾经因为忽略了滑点,导致一个做市策略在回测中盈利,实盘却亏损。后来发现,回测时用的是「理想成交价」,而实盘里每次成交都有滑点。解决方案:在回测中加入滑点模型,至少按0.01%计算。

滑点的计算公式:

# 计算预期滑点
def expected_slippage(order_size, order_book):
    # 假设你要买入10个BTC
    remaining = 10
    slippage = 0
    for price, volume in order_book['asks']:
        if remaining <= 0:
            break
        trade_volume = min(remaining, volume)
        slippage += trade_volume * (price - order_book['asks'][0][0])
        remaining -= trade_volume
    return slippage / 10

2.4 流动性分层:市场的「地层结构」

流动性不是均匀分布的。它像地质结构一样,有明显的分层。最上面一层是「高频流动性」——那些几毫秒就撤单的做市商。中间层是「机构流动性」——挂单时间几分钟到几小时。最底层是「散户流动性」——挂单可能几天都不动。

你想想看,如果你是一个做市商,你的对手方是谁?如果是高频流动性,你们俩都在抢跑,拼的是速度。如果是机构流动性,拼的是对市场方向的判断。如果是散户流动性,那基本就是「捡钱」。

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

  • L1(0-1档):高频流动性,撤单率极高,不适合做方向性交易
  • L2(2-5档):机构流动性,相对稳定,适合做市策略
  • L3(6档以上):散户流动性,深度大但反应慢,适合大单交易

怎么识别流动性分层?看撤单率。高频流动性的撤单率通常在80%以上,机构流动性在30%-50%,散户流动性低于10%。

核心逻辑:做市商策略的核心,就是识别你当前在哪个流动性层,然后选择对应的策略。在L1层拼速度,在L2层拼价差,在L3层拼深度。

2.5 知识体系总览

下面这张图,是我自己总结的市场微观结构知识体系。你可以把它当作一个检查清单——每次搭建策略前,先过一遍这些维度。

市场微观结构 订单簿深度 买卖价差 滑点 流动性分层 深度分布 深度斜率 价差计算 价差预测 预期滑点 实际滑点 L1高频层 L2机构层 L3散户层 核心:识别流动性层 → 选择对应策略 → 控制滑点成本 做市商策略 = 深度 × 价差 × (1 - 滑点)

这张图里,四个维度是相互关联的。深度影响滑点,价差影响流动性分层,流动性分层又反过来影响深度。你没法单独优化某一个维度——必须整体考虑。

好了,这一章的内容就到这里。记住一句话:市场微观结构不是理论,是你每天实盘操作中要面对的现实。多花时间看订单簿,少花时间看K线。你会发现,赚钱的机会其实就藏在那些挂单里。


公众号:蓝海资料掘金营,微信deep3321