2. 市场微观结构:订单簿深度、买卖价差、市场深度、交易量分布、订单类型与撮合机制

做跨交易所套利,说白了就是在跟市场微观结构打交道。你想想看,如果两个交易所的订单簿长得一模一样,那还套什么利?正是因为有差异,才有我们的饭吃。

我个人习惯,在搭建任何套利策略之前,先花一周时间把目标交易所的微观结构摸透。这一步偷懒了,后面策略跑起来全是坑。

2.1 订单簿深度:市场的真实面貌

订单簿是什么?就是所有挂单的集合。买一、买二、买三……卖一、卖二、卖三……每一档都对应一个价格和数量。

我见过不少新手,只看最新成交价就做决策。结果呢?一进去才发现,那个价格只有0.1个BTC的深度,根本吃不到量。

核心概念:订单簿深度 = 每个价格层级上的挂单总量。深度越厚,市场越抗冲击。

举个例子,BTC/USDT在交易所A的卖一价是50000,挂了2个BTC;卖二价是50001,挂了5个BTC。你想买3个BTC,对不起,你得把卖一吃光,再吃一部分卖二。实际成交均价就不是50000了,而是(50000*2 + 50001*1)/3 ≈ 50000.33。

这0.33的滑点,就是深度不足带来的成本。套利本身利润就薄,滑点一吃,可能就亏了。

2.2 买卖价差:套利的隐形门槛

买卖价差,就是买一价和卖一价之间的差值。这个指标我每天必看。

为什么?因为价差直接决定了你的入场成本。假设交易所A的价差是0.01%,交易所B的价差是0.05%。你在A买、B卖,光价差就吃掉你0.06%的利润。如果套利空间只有0.1%,那你实际只赚了0.04%。

交易所 买一价 卖一价 价差(bps)
Binance 50000.00 50000.10 2.0
OKX 50000.20 50000.50 6.0
Bybit 50000.05 50000.15 2.0

你看,OKX的价差明显偏大。我在项目中遇到过这种情况:明明价差信号出来了,但一算扣除手续费和价差后,利润为负。嗯,这就是典型的「看得见吃不着」。

避坑指南:我曾经在价差大的交易所吃过亏。后来我养成了一个习惯——在策略里加入「最小价差过滤」逻辑。如果目标交易所的当前价差超过阈值,直接跳过这笔交易。

2.3 市场深度:你能吃下多少量

市场深度和订单簿深度有点像,但侧重点不同。市场深度衡量的是:在某个价格范围内,市场能吸收多少成交量。

我通常看「1%深度」——也就是距离当前价格1%范围内,所有挂单的总量。这个指标能告诉我:如果我要做一笔大单,会不会把价格打穿。

举个例子:

def calculate_market_depth(order_book, price_range_pct=0.01):
    """
    计算指定价格范围内的市场深度
    :param order_book: 订单簿数据,包含bids和asks
    :param price_range_pct: 价格范围百分比,默认1%
    """
    mid_price = (order_book['bids'][0][0] + order_book['asks'][0][0]) / 2
    upper_price = mid_price * (1 + price_range_pct)
    lower_price = mid_price * (1 - price_range_pct)
    
    bid_depth = sum(qty for price, qty in order_book['bids'] if price >= lower_price)
    ask_depth = sum(qty for price, qty in order_book['asks'] if price <= upper_price)
    
    return {
        'bid_depth': bid_depth,
        'ask_depth': ask_depth,
        'total_depth': bid_depth + ask_depth
    }

这段代码我用了好几年。每次接入新交易所,第一件事就是跑这个函数,看看它的深度分布是否均匀。

2.4 交易量分布:谁在主导市场

交易量分布,说白了就是看大单和小单的比例。我个人习惯把单子分成三类:

  • 小单(< 0.1 BTC):散户行为,噪音多
  • 中单(0.1 - 1 BTC):可能是大户,也可能是机器人
  • 大单(> 1 BTC):机构或鲸鱼,值得关注

为什么会这样?因为大单往往意味着有人在做方向性交易。如果你看到某个交易所突然出现连续的大单买入,而另一个交易所没有,那价差可能很快就会被拉大。

我记得有一次,我在监控中发现Binance上连续出现5个2BTC的买单,而OKX上毫无动静。我立刻在OKX上挂买单,在Binance上挂卖单。5分钟后,价差从0.02%扩大到0.08%,我吃到了这波利润。

2.5 订单类型与撮合机制

订单类型这块,我建议你至少搞清楚这几种:

  • 限价单:指定价格,不急着成交,挂在那里等
  • 市价单:立即成交,但价格不确定
  • IOC(Immediate-or-Cancel):立即成交,没成交的部分取消
  • FOK(Fill-or-Kill):要么全部成交,要么全部取消

撮合机制呢?大部分交易所都是「价格优先、时间优先」。价格好的先成交,价格一样的先到先得。

注意:不同交易所的撮合规则可能有细微差别。比如,有的交易所支持「自成交预防」,有的不支持。我曾经因为没注意这个,导致自己的两个订单互相成交,白白损失了手续费。

做套利时,我强烈建议用限价单+IOC的组合。为什么?因为市价单的滑点不可控,而限价单可以精确控制入场价格。加上IOC,可以避免订单挂在那里被市场波动吃掉。

2.6 知识体系总览

下面这张图,是我自己总结的市场微观结构知识体系。每次带新人,我都会先让他们看这张图。

市场微观结构 订单簿深度 买卖价差 市场深度 交易量分布 订单类型与撮合 每档挂单量 价格层级分布 挂单更新频率 买一卖一差值 价差波动率 交易成本计算 限价单/市价单/IOC/FOK 价格优先时间优先 自成交预防规则 1%深度计算 大单冲击成本 流动性评估 小单/中单/大单 成交量时间分布 异常大单监控 套利策略的核心:理解差异,利用差异 深度差异 → 滑点控制 | 价差差异 → 入场时机 | 订单类型 → 执行效率

这张图把五个核心概念串起来了。你仔细看,每个概念都不是孤立的——订单簿深度影响价差,价差影响交易成本,市场深度决定你能吃多少量,交易量分布告诉你市场情绪,订单类型和撮合机制则决定了你的执行策略。

做套利,说白了就是在这五个维度上找不对称。哪个交易所深度好?哪个价差小?哪个适合挂限价单?把这些搞清楚,策略就成功了一半。

我的建议:刚开始别贪多。先盯一个交易对,在两个交易所上同时拉取订单簿数据,手动分析一周。等你能闭着眼睛说出这两个交易所的微观结构差异了,再开始写代码。

专注资料整理