2、市场微观结构:订单簿深度、买卖价差、市场深度与流动性、订单类型与撮合机制
做市策略的核心,说白了就是跟市场微观结构打交道。你如果不理解订单簿怎么变,价差怎么跳,那策略写得再漂亮也是白搭。我刚开始做量化那会儿,就吃过这个亏——策略回测曲线漂亮得不行,一上实盘就亏成狗。后来才发现,我压根没搞懂订单簿的「脾气」。
这一节,咱们就把这些底层的东西掰开揉碎。你理解了这些,后面写策略才有底气。
2.1 订单簿深度:市场的「实时快照」
订单簿是什么?你可以把它想象成一个实时更新的「买卖意愿清单」。买方出价(Bid),卖方要价(Ask),每一档价格上都挂着对应的委托数量。
举个例子,一个简单的订单簿长这样:
| 档位 | 买价 (Bid) | 买量 | 卖价 (Ask) | 卖量 |
|---|---|---|---|---|
| 1 | 100.00 | 500 | 100.01 | 300 |
| 2 | 99.99 | 800 | 100.02 | 600 |
| 3 | 99.98 | 1200 | 100.03 | 900 |
这里有个关键点:订单簿的深度,不是看总共有多少单子,而是看「价格-数量」的分布结构。我个人习惯把订单簿分成三层来看:
- 表层(Top of Book):就是买一卖一。这是流动性最好的地方,也是我们做市策略最常「交手」的地方。
- 中层(Mid Book):买二到买五,卖二到卖五。这里藏着市场的「真实意图」。如果买二突然堆了巨量,说明有大资金在下面托底。
- 深层(Deep Book):再往下的档位。这些单子通常是为了「挂单等机会」,或者是一些算法策略的「冰山订单」露出来的部分。
核心认知:订单簿不是静止的。它每毫秒都在变化。做市策略的本质,就是预测这个「变化」的方向和速度。
2.2 买卖价差:做市商的「利润来源」
买卖价差(Spread),就是买一价和卖一价之间的差值。说白了,这就是做市商赚的「过路费」。
你想想看,你同时挂买单和卖单,如果成交了,你赚的就是这个价差。比如你买一挂100.00,卖一挂100.01,如果两边都成交了,你每股就赚了0.01。
但价差不是固定的。它受几个因素影响:
- 波动性:市场越动荡,价差越大。因为做市商需要更高的风险补偿。
- 流动性:交易量越大的品种,价差越小。比如比特币的价差通常比一些小币种小得多。
- 时间:开盘和收盘时段,价差通常较大。中午时段相对平稳。
我的经验:我在做ETH做市策略时,发现一个规律——价差在重大新闻发布前会突然收窄,然后瞬间扩大。这是因为做市商在「撤单避险」。如果你能捕捉到这个信号,就能提前调整仓位。
2.3 市场深度与流动性:硬币的两面
很多人把市场深度和流动性混为一谈。其实它们有区别:
- 流动性:指的是你「快速成交」的能力。流动性好,你大单砸下去,价格几乎不动。
- 市场深度:指的是订单簿上「各档位的挂单总量」。深度好,说明有足够的对手盘。
但两者是正相关的。深度越厚,流动性通常越好。不过也有例外——我记得有一次,某个小币种订单簿上挂了几百万的买单,但全是「虚假挂单」,一成交就撤。这种深度就是「假深度」。
怎么衡量市场深度?我常用一个指标叫「深度斜率」:
# 计算深度斜率
def depth_slope(order_book, levels=5):
"""
计算订单簿前N档的深度斜率
斜率越小,说明深度越均匀,流动性越好
"""
bid_prices = [level['price'] for level in order_book['bids'][:levels]]
bid_volumes = [level['volume'] for level in order_book['bids'][:levels]]
# 简单线性回归求斜率
import numpy as np
x = np.array(bid_prices)
y = np.array(bid_volumes)
slope = np.polyfit(x, y, 1)[0]
return slope
这个斜率如果突然变大,说明买单集中在某个价格区间,市场可能在这个位置有「支撑」或「阻力」。
2.4 订单类型与撮合机制:你的「武器库」
做市策略离不开订单类型。你如果只用限价单,那就像只带了一把刀上战场。咱们来看看常见的几种:
| 订单类型 | 特点 | 做市策略中的应用 |
|---|---|---|
| 限价单 (Limit Order) | 指定价格,不保证成交 | 提供流动性,赚取价差 |
| 市价单 (Market Order) | 立即成交,不保证价格 | 紧急平仓、对冲风险 |
| 冰山订单 (Iceberg Order) | 只显示部分数量 | 隐藏真实意图,避免被「狙击」 |
| 止损单 (Stop Order) | 触发后变成市价单 | 控制最大亏损 |
撮合机制呢?现在主流交易所都是「价格优先、时间优先」。什么意思?
- 价格优先:买单出价高的先成交,卖单要价低的先成交。
- 时间优先:同样价格,先挂单的先成交。
这里有个坑,我曾经踩过——订单的「排队位置」。你挂了一个限价单,以为很快能成交,结果前面排了几百手。这时候如果价格突然变动,你的单子可能永远成交不了。所以做市策略里,我通常会加一个「超时撤单重挂」的逻辑。
避坑指南:我曾经在回测里忽略了「排队时间」,结果策略在模拟环境里赚得飞起,实盘却因为单子排不上队,错过了最佳成交时机。后来我加了一个「队列位置预估」模块,才把这个问题解决。
2.5 知识体系总览
说了这么多,咱们用一张图把这一节的核心逻辑串起来。这张图是我自己画的结构图,你看完应该能对市场微观结构有个整体认知。
嗯,这张图把咱们刚才讲的内容都串起来了。你仔细看看,每个分支之间其实都有联系。比如订单簿深度直接影响价差,而价差又反过来影响流动性。做市策略就是在这些变量之间找平衡。
好了,这一节的内容就到这儿。你把这些基础打牢了,后面讲策略模型的时候,你就能理解为什么有些参数要那样设,为什么有些逻辑要那样写。
公众号:蓝海资料掘金营,微信deep3321