市场微观结构基础:订单簿、买卖价差、市场深度、流动性度量

大家好,我是你们的量化交易工程师讲师。今天我们来聊聊市场微观结构——说白了,就是市场到底是怎么「动」起来的。

很多人做量化交易,上来就研究各种策略、回测、因子。但我个人习惯是,先搞清楚市场本身的运作机制。你想想看,如果你连订单簿都看不懂,怎么知道你的大单进去会不会把价格打飞?

这一章,我们就从最基础的四个概念入手:订单簿、买卖价差、市场深度、流动性度量。这些都是我每天盯盘时必看的东西。

1. 订单簿:市场的「实时账本」

订单簿,英文叫 Order Book。它记录了当前市场上所有未成交的买单和卖单。

你可以把它想象成一个「排队系统」:

  • 买单(Bid):大家愿意出多少钱买,价格从高到低排列
  • 卖单(Ask):大家愿意多少钱卖,价格从低到高排列

举个例子,假设某只股票当前的订单簿长这样:

价格 买单数量 卖单数量
10.05 0 500
10.04 0 300
10.03 100 0
10.02 200 0
10.01 400 0

这里,最优买价(Best Bid)是 10.03,最优卖价(Best Ask)是 10.04。中间的差价就是买卖价差。

我的经验: 我在做高频策略时,经常盯着订单簿的前几档看。如果买单突然变厚,说明有大资金在托底,这时候做多胜率会高一些。但要注意,有些「假单」会挂上去又撤掉,俗称「虚挂」。

2. 买卖价差:交易成本的「隐形杀手」

买卖价差(Bid-Ask Spread)就是最优卖价减去最优买价。它代表了你在市场上「立即成交」需要付出的成本。

公式很简单:

Spread = Ask_Price - Bid_Price

比如上面例子中,价差 = 10.04 - 10.03 = 0.01 元。

价差越小,说明市场越活跃,流动性越好。反之,价差越大,说明市场冷清,交易成本高。

避坑指南: 我曾经在某个冷门币种上做套利,看着价差只有0.1%,结果一进去发现深度极差,我的单子直接把价格打穿了。后来我才明白,价差小不代表流动性好,还要看深度。

3. 市场深度:你能「吃」多少而不被察觉

市场深度(Market Depth)衡量的是在某个价格水平上,有多少订单等着成交。

深度越大,说明你能在不显著影响价格的情况下,交易更大的数量。

我们通常用深度图来可视化:

市场深度示意图 0 500 1000 买价 卖价 价差 买单深度 卖单深度

从图中可以看到,买单深度在低价位更厚,卖单深度在高价位更厚。中间那个「缺口」就是价差。

4. 流动性度量:到底好不好「进出」

流动性是个综合概念。光看价差或深度都不够,我们需要一些量化指标。

常用的流动性度量指标有:

  1. 买卖价差:越小越好
  2. 市场深度:越大越好
  3. Amihud 非流动性指标:衡量价格对成交量的敏感度
  4. 成交额/换手率:越高说明越活跃

其中,Amihud 指标的计算公式是:

Amihud = 平均(|日收益率| / 日成交额)

这个值越大,说明「花同样的钱,价格波动越大」,流动性越差。

核心观点: 流动性不是非黑即白的。一只股票可能价差很小但深度很浅,也可能深度很深但价差很大。做执行算法时,必须综合考虑。

5. 实战:如何用 Python 获取订单簿数据

嗯,这里我给大家一个简单的代码示例,用 ccxt 库从交易所拉取订单簿数据:

import ccxt

exchange = ccxt.binance()
symbol = 'BTC/USDT'

# 获取订单簿
orderbook = exchange.fetch_order_book(symbol)

# 提取买卖价差
bid = orderbook['bids'][0][0]  # 最优买价
ask = orderbook['asks'][0][0]  # 最优卖价
spread = ask - bid

print(f"最优买价: {bid}")
print(f"最优卖价: {ask}")
print(f"买卖价差: {spread}")

# 计算前5档深度
bid_depth = sum([b[1] for b in orderbook['bids'][:5]])
ask_depth = sum([a[1] for a in orderbook['asks'][:5]])
print(f"前5档买单深度: {bid_depth}")
print(f"前5档卖单深度: {ask_depth}")

这段代码很简单,但很实用。我经常用它来监控多个交易对的流动性状况。

一个小技巧: 如果你发现某个交易对的价差突然扩大,同时深度变薄,那很可能是有大消息要出来了。这时候我会暂停策略,等市场稳定再说。

6. 总结:微观结构是执行算法的「地基」

好了,这一章的内容就到这里。我们讲了订单簿的结构、买卖价差的含义、市场深度的可视化,以及几个流动性度量指标。

我个人觉得,理解这些概念是做好执行算法的第一步。你想想看,如果你连市场是怎么「撮合」的都不清楚,那你的算法再漂亮也是空中楼阁。

下一章我们会深入讨论市场冲击模型,到时候这些微观结构知识都会用上。

一句话记住本章: 订单簿是市场的「心电图」,价差是交易成本,深度是你能「吃」多少,流动性是综合评估。

专注资料整理