2、市场微观结构:订单簿(Order Book)深度解析
做高频做市,说白了就是在跟订单簿打交道。你盯着的那些跳动的数字,背后是无数交易者的博弈。我刚开始接触这个领域时,觉得订单簿不就是一堆买单卖单嘛,有什么好研究的?后来被市场狠狠教育了几次,才明白这里面门道深得很。
2.1 订单簿的本质
订单簿,就是交易所用来记录所有未成交订单的电子账本。它实时反映了市场上所有参与者挂出的限价单。我个人习惯把订单簿想象成一个「价格-数量」的二维矩阵,每一档价格上堆积着多少筹码,一目了然。
举个例子,假设某只股票当前订单簿长这样:
| 卖五 | 10.05 | 2000 |
|---|---|---|
| 卖四 | 10.04 | 1500 |
| 卖三 | 10.03 | 3000 |
| 卖二 | 10.02 | 2500 |
| 卖一 | 10.01 | 1000 |
| —— | —— | —— |
| 买一 | 10.00 | 800 |
| 买二 | 9.99 | 1200 |
| 买三 | 9.98 | 2000 |
| 买四 | 9.97 | 1800 |
| 买五 | 9.96 | 2500 |
这里卖一10.01元就是当前最低的卖出报价,买一10.00元是最高的买入报价。两者之间的价差,就是做市商最关心的「Spread」。我在项目中遇到过,有些流动性差的品种,Spread能大到几个tick,这时候做市策略就得格外小心。
2.2 限价单与市价单
这两种订单类型,是订单簿运转的基础。你想想看,没有它们,市场就没法撮合了。
限价单(Limit Order)
限价单就是你指定一个价格,只有市场达到这个价格时才会成交。它提供了流动性,挂在订单簿上等着别人来吃。做市商主要就是靠挂限价单来赚取价差收益的。
限价单有个特点:价格优先,时间优先。同样价格,先挂的单子先成交。我建议做高频的朋友,一定要关注自己的订单在队列中的位置。有时候就差那么几微秒,你的单子就被排在后面了。
市价单(Market Order)
市价单就是「不管价格,立即成交」。它会直接吃掉订单簿上最优的对手盘挂单。市价单消耗流动性,是限价单的对手方。
为什么会这样?因为市价单的成交价格是不确定的。如果订单簿上卖一只有1000股,你市价买入2000股,那剩下的1000股就得用卖二的价格成交。这就是所谓的「滑点」。我曾经吃过这个亏,一次大单下去,成交均价比预期高了两个tick,利润直接打没了。
2.3 盘口数据:Bid/Ask/Last
盘口数据是交易者最常看的三个数字:
- Bid(买价):当前最高的买入报价,即买一的价格
- Ask(卖价):当前最低的卖出报价,即卖一的价格
- Last(最新成交价):最近一笔成交的价格
这三个数据构成了市场最基本的快照。我个人习惯用Bid和Ask的中间价(Mid Price)作为「公允价格」的参考。但要注意,中间价并不等于真实成交价,它只是理论上的均衡点。
举个例子,如果Bid=10.00,Ask=10.02,那中间价就是10.01。但实际成交价可能在10.00到10.02之间波动,取决于买卖双方的博弈。
2.4 Tick数据与Level2数据
这两个概念,很多新手容易搞混。我简单说说它们的区别。
Tick数据
Tick数据记录的是每一笔成交的详细信息,包括:
- 成交时间(精确到毫秒甚至微秒)
- 成交价格
- 成交量
- 成交方向(买方主动还是卖方主动)
Tick数据是「事后」的,它告诉你已经发生了什么。做回测时,Tick数据是黄金标准,因为它包含了最细粒度的市场信息。
Level2数据
Level2数据是订单簿的深度快照,它告诉你「现在」市场上挂着什么单子。通常包括:
- 前10档或前50档的买卖挂单
- 每档价格上的挂单数量
- 有些交易所还会提供逐笔委托数据
Level2数据是「实时」的,做市策略主要依赖它来决策。我建议做高频的朋友,一定要接入Level2数据,只看盘口那三档是远远不够的。
2.5 订单簿的核心逻辑
说了这么多,我们来画一张图,把订单簿的核心逻辑串起来。
这张图把整个流程串起来了。限价单和市价单进入订单簿,订单簿产生盘口数据、Tick数据和Level2数据,这些数据再输入到做市策略中,策略根据这些信息决定如何调整报价。
嗯,这里要注意一点:做市策略不是简单地看盘口数据就完事了。你需要同时分析Tick数据中的成交方向,以及Level2数据中的挂单变化,才能判断市场的真实意图。我见过不少新手,只看Bid/Ask就敢下单,结果被大单砸得头破血流。
1. 买卖价差(Spread)—— 决定你的利润空间
2. 订单簿深度(Depth)—— 判断市场承接能力
3. 成交方向(Trade Direction)—— 识别主力意图
好了,这一章的内容就到这里。市场微观结构是高频做市的基石,理解透了,后面的策略才能站得住脚。