市场微观结构:订单簿深度解析
做高频交易,说白了就是在跟市场微观结构打交道。你不需要知道这家公司基本面怎么样,也不需要关心宏观经济数据——你只需要读懂订单簿里每一笔挂单的意图。我个人习惯把订单簿比作「市场的X光片」,它能让你看到价格背后真实的博弈状态。
订单簿(Order Book)到底是什么?
订单簿就是交易所维护的一个实时挂单列表。它记录了所有交易者当前愿意买入或卖出的价格和数量。我刚开始做量化时,以为订单簿就是简单的「买一卖一」,后来才发现——嗯,这里面的门道深着呢。
一个典型的订单簿结构是这样的:
| 方向 | 价格 | 数量 | 累计 |
|---|---|---|---|
| 卖5 | 100.20 | 200 | 1,500 |
| 卖4 | 100.15 | 300 | 1,300 |
| 卖3 | 100.10 | 400 | 1,000 |
| 卖2 | 100.05 | 350 | 600 |
| 卖1 | 100.00 | 250 | 250 |
| 买1 | 99.95 | 300 | 300 |
| 买2 | 99.90 | 500 | 800 |
| 买3 | 99.85 | 200 | 1,000 |
| 买4 | 99.80 | 400 | 1,400 |
| 买5 | 99.75 | 100 | 1,500 |
买1和卖1之间的差距,就是买卖价差。这个价差越小,说明市场越活跃。我在实盘中发现,很多新手只看最新成交价,却忽略了订单簿深度的变化——这其实是个大坑。
核心要点:订单簿的每一层都代表一个「价格-数量」承诺。卖单是流动性提供者愿意卖出的价格,买单是他们愿意买入的价格。你看到的每一笔挂单,背后都是一个真实的交易决策。
限价单 vs 市价单
这两种订单类型,是高频交易里最基础也最重要的概念。你想想看,如果你连订单类型都搞不清楚,怎么设计策略?
限价单(Limit Order):你指定一个价格,只有市场价格达到这个价位时才会成交。优点是你能控制成交价格,缺点是不一定能成交。
市价单(Market Order):你不指定价格,直接以当前最优价格成交。优点是立即成交,缺点是你得承受滑点。
我遇到过不少交易者,觉得市价单方便就一直用。结果呢?在流动性差的时候,一个市价单打下去,价格直接滑了好几个tick,亏得莫名其妙。
| 特性 | 限价单 | 市价单 |
|---|---|---|
| 成交确定性 | 低(可能不成交) | 高(立即成交) |
| 价格确定性 | 高(指定价格) | 低(可能滑点) |
| 对市场影响 | 提供流动性 | 消耗流动性 |
| 适用场景 | 做市、挂单策略 | 追单、止损 |
我的经验:在高频策略中,我通常用限价单做「被动挂单」,用市价单做「主动吃单」。两者比例要根据市场状态动态调整。比如在波动率飙升时,我会减少限价单,因为容易被「钓鱼」——价格瞬间打到你的挂单然后反弹,你就被套住了。
买卖价差(Bid-Ask Spread)
买卖价差就是买1和卖1之间的价格差。它直接反映了市场的交易成本。你想想看,如果你买进然后立刻卖出,你亏掉的就是这个价差。
价差的大小受几个因素影响:
- 流动性:交易量大的品种,价差通常很小。比如EUR/USD在活跃时段可能只有0.1个tick。
- 波动性:市场剧烈波动时,做市商会扩大价差来保护自己。
- 时间:开盘和收盘时段,价差往往较大。
- 消息面:重要数据公布前后,价差可能瞬间扩大数倍。
我曾经在非农数据公布时做过一个策略,结果价差从0.5个tick瞬间跳到5个tick——我的止损单直接被打在了一个极差的价格上。从那以后,我所有策略都加了一个「价差过滤器」:如果当前价差超过阈值,就暂停交易。
避坑指南:千万不要在价差异常时用市价单。我曾经见过一个交易员,在价差扩大到10个tick时还下市价单,结果成交价比预期差了整整一个百分点。这种亏损,完全是可以避免的。
市场深度与流动性
市场深度,说白了就是订单簿上各个价位的挂单总量。深度越大,说明市场越能承受大额交易而不产生大的价格波动。
我习惯用「深度图」来观察市场。横轴是价格,纵轴是累计挂单量。一个健康的深度图应该是「阶梯状」的,买卖两侧相对均衡。
流动性则是一个更综合的概念。它不光看深度,还要看订单簿的「弹性」——也就是大单吃掉后,价格恢复的速度。我常用的一个流动性指标是「Amihud非流动性指标」:
# 计算Amihud非流动性指标
def amihud_illiquidity(returns, volume):
"""
returns: 价格收益率序列
volume: 成交量序列
"""
illiq = np.abs(returns) / volume
return np.nanmean(illiq)
# 值越小,流动性越好
# 我一般用这个指标来筛选交易品种
# 流动性太差的品种,直接排除
实战建议:在做高频策略时,我至少会监控三个流动性指标:买卖价差、订单簿前5层深度、以及最近1分钟的成交笔数。这三个指标结合起来,基本能判断当前市场是否适合交易。
订单簿的动态变化
订单簿不是静止的。每一毫秒都有新的挂单进来,旧的挂单被撤掉。我见过最快的撤单速度——挂单进来不到100微秒就被撤了。这种「闪电挂单」通常是做市商在探测市场。
我个人习惯把订单簿的变化分为几类:
- 新增挂单:新的限价单进入订单簿
- 撤单:已有的限价单被取消
- 成交:市价单与限价单匹配
- 修改:挂单价格或数量被调整
每一类变化都包含信息。比如,在某个价位频繁出现「挂单-撤单」行为,说明有人在试探这个价位的支撑或阻力。我曾经利用这个规律,设计了一个「挂单撤单比」指标,在股指期货上取得了不错的收益。
一个小技巧:你可以通过监控订单簿的「不平衡度」来预判短期价格方向。比如,如果买1到买5的总量远大于卖1到卖5的总量,说明买方力量更强,价格大概率会上涨。公式很简单:
imbalance = (bid_volume - ask_volume) / (bid_volume + ask_volume)
当imbalance大于0.3时,我倾向于做多;小于-0.3时,倾向于做空。当然,这个阈值要根据具体品种调整。
总结一下
市场微观结构是高频交易的基石。你不需要成为做市商,但你必须理解订单簿的语言。限价单和市价单是两种最基本的武器,买卖价差是你的交易成本,市场深度和流动性决定了你能做多大的仓位。
嗯,这些概念看起来简单,但真正在实盘中用好它们,需要大量的练习和复盘。我建议你从模拟交易开始,先盯着订单簿看一周,感受一下价格和挂单之间的互动关系。相信我,这个投入绝对值得。