第二章:市场微观结构——订单簿、买卖价差、市场深度与流动性

各位同学,大家好。今天我们来聊聊市场微观结构。

很多人做量化,一上来就研究各种复杂的统计模型、机器学习。但我个人习惯,第一步永远是先搞清楚“市场到底是怎么运作的”。你想想看,如果你连订单簿长什么样都不清楚,那策略再花哨,也像是蒙着眼睛开车。

这一章,我们就来拆解市场的“毛细血管”——订单簿、买卖价差、市场深度和流动性。这些东西,说白了就是市场的“心跳”和“脉搏”。

2.1 订单簿:市场的实时“心电图”

订单簿(Order Book)是什么?

简单说,它就是交易所用来记录所有未成交买单和卖单的电子账本。每一笔挂单,都像是一个“报价承诺”。

我举个例子。假设现在某只股票,订单簿长这样:

方向 价格(元) 数量(股)
卖单 10.05 200
卖单 10.04 500
卖单 10.03 300
—— —— ——
买单 10.02 400
买单 10.01 600
买单 10.00 1000

这里,10.03元是“卖一价”,10.02元是“买一价”。中间的差价,就是买卖价差。

我在项目中遇到过一件事。有一次,我们监控一个流动性很差的币种,订单簿上买一和卖一之间差了整整5个tick。当时我就意识到,这种品种根本不适合做高频套利。为什么?因为你的滑点成本,可能比利润还高。

嗯,这里要注意:订单簿是动态的。每一秒都在变化。所以,我们做策略时,不能只看“当前”的订单簿,还要看它的“变化趋势”。

2.2 买卖价差:你的“隐形交易成本”

买卖价差(Bid-Ask Spread),就是买一价和卖一价之间的差值。

它有多重要?

说白了,它就是你的“入场门票”。你每做一笔交易,都要先“亏”掉这个价差。比如上面那个例子,价差是0.01元。如果你买1000股,一进一出,光价差就亏了10块钱。

为什么会存在价差?

因为市场需要“做市商”来提供流动性。做市商不是做慈善的,他们赚的就是这个价差。你想想看,如果价差为零,谁还愿意做市?

我建议,在做任何套利策略之前,先算一笔账:

  • 你的预期利润是多少?
  • 价差成本占利润的百分比?
  • 如果价差突然扩大一倍,你的策略还能盈利吗?

我曾经有一个学生,他设计了一个看起来很完美的跨期套利策略。回测年化收益30%。结果实盘一跑,亏了。为什么?因为他回测时用的是“中间价”,而实盘交易时,他必须吃“卖一价”和“买一价”。价差直接吃掉了所有利润。

避坑指南: 回测时,千万不要用“中间价”作为成交价。一定要用“卖一价”买,“买一价”卖。否则,你的回测就是“自欺欺人”。

2.3 市场深度:你能“吃”下多少单?

市场深度(Market Depth),指的是在某个价格水平上,有多少挂单量。

深度越大,说明市场越“厚实”。你下个大单,价格不会剧烈波动。

深度越小,市场越“薄”。你稍微买多一点,价格可能就冲上去了。

我举个例子。假设你想买10000股。如果市场深度只有5000股,那你只能吃掉“卖一”到“卖三”的所有单子。成交均价会远高于“卖一价”。

这就是“滑点”的来源。

我个人习惯,在做策略之前,一定会先拉一份“深度分布图”。看看在距离当前价格0.1%、0.5%、1%的位置,分别有多少挂单量。这能帮我判断:这个市场,到底能不能容纳我的资金量。

核心观点: 市场深度决定了你的“资金容量”。深度不够的市场,大资金进去就是“搬起石头砸自己的脚”。

2.4 流动性:市场的“血液”

流动性,是一个综合概念。它包含了价差、深度、成交速度等多个维度。

一个流动性好的市场,通常具备以下特征:

  • 价差小: 买卖双方竞争激烈,报价紧贴。
  • 深度大: 每个价位都有足够的挂单量。
  • 成交快: 你的订单能迅速被吃掉。
  • 价格冲击小: 大单不会导致价格剧烈波动。

反过来,流动性差的市场,就是“鬼城”。挂单稀疏,价差巨大,一买就涨,一卖就跌。

你想想看,套利策略最怕什么?

最怕的就是“流动性陷阱”。你发现了一个价差机会,兴冲冲地冲进去。结果发现,另一边根本没有足够的对手盘。或者,你的订单成交了,但价格已经滑到了你的成本线以下。

我曾经在某个小交易所做过一次套利。那个交易所的流动性极差,买一和卖一之间差了0.5%。我以为捡到了便宜,结果我的买单成交后,卖单那边直接撤单了。我被迫持有了一个“流动性极差”的仓位,整整三天才平掉。那三天,我每天都提心吊胆。

小技巧: 判断流动性好不好,可以看“订单簿斜率”。如果订单簿的挂单量从买一到买五,呈“陡峭”下降,说明深度集中在头部,流动性其实一般。如果挂单量分布比较“平缓”,说明深度分布均匀,流动性更好。

2.5 知识体系总览

为了让大家更直观地理解这些概念之间的关系,我画了一张图。

市场微观结构 订单簿 买卖价差 市场深度 流动性 记录所有未成交挂单 买一价与卖一价之差 各价位的挂单量分布 价差+深度+成交速度 决定 影响 构成 体现

这张图展示了它们之间的关系。订单簿是基础,它直接决定了买卖价差和市场深度。而价差和深度,共同构成了流动性。流动性,则是我们做套利策略时,最需要关注的“宏观指标”。

2.6 实战中的“微观结构”应用

说了这么多理论,我们来点实际的。

在写代码时,我通常会这样处理订单簿数据:

# 伪代码示例:计算买卖价差和深度
def analyze_order_book(bids, asks):
    # bids: 买单列表 [(价格, 数量), ...]
    # asks: 卖单列表 [(价格, 数量), ...]
    
    best_bid = bids[0][0]  # 买一价
    best_ask = asks[0][0]  # 卖一价
    spread = best_ask - best_bid
    
    # 计算前5档的总深度
    bid_depth = sum([qty for price, qty in bids[:5]])
    ask_depth = sum([qty for price, qty in asks[:5]])
    
    return {
        'spread': spread,
        'bid_depth': bid_depth,
        'ask_depth': ask_depth,
        'mid_price': (best_bid + best_ask) / 2
    }

这段代码很简单,但它是我所有套利策略的“起点”。每次实盘前,我都会先跑这个函数,看看当前市场的“健康状况”。

如果spread大于某个阈值,或者depth小于某个阈值,我会直接放弃交易。宁可错过,不要做错。

我的经验: 对于高频套利策略,我要求spread不超过中间价的0.01%。对于中低频套利,可以放宽到0.05%。超过这个范围,策略的胜率会急剧下降。

好了,这一章的内容就到这里。市场微观结构,是量化交易的“内功”。内功练好了,后面的招式才能发挥威力。

专注资料整理