3. 订单簿的微观结构:限价单、市价单与价差的诞生

各位同学,今天我们聊点真正核心的东西——订单簿的微观结构。说白了,就是市场里那些买和卖的单子,到底是怎么挤在一起,又怎么把价差给挤出来的。

我刚开始做量化的时候,总觉得价差就是个数字。后来自己搭高频回测系统,才发现这玩意儿背后全是博弈。你想想看,每一笔成交背后,都有人在犹豫,有人在抢跑,有人在挂单钓鱼。

3.1 订单簿的基本骨架

订单簿,其实就是一张大表。左边是买单,右边是卖单。每一档价格上,都堆着一些单子。

举个例子,假设现在某股票的最新成交价是100.00元。订单簿可能长这样:

买价 买量 卖价 卖量
99.99 1,200 100.01 800
99.98 2,500 100.02 1,500
99.97 3,000 100.03 2,000
99.96 1,800 100.04 2,200

看到没?最高买价是99.99,最低卖价是100.01。这两个价格之间的空隙,就是价差——2分钱。

价差怎么来的?就是没人愿意在100.00这个价格上同时挂买单和卖单。买方觉得100.00太贵,卖方觉得100.00太便宜。双方僵住了,价差就诞生了。

3.2 限价单:市场的基石

限价单,就是「我只愿意在这个价格或更好的价格成交」。挂买单的人说:「我只出99.99,多了不要。」挂卖单的人说:「我只卖100.01,少了不卖。」

这些单子堆在订单簿里,构成了市场的深度。我个人习惯把限价单比作「城墙」——每一档价格都是一道防线。

为什么有人愿意挂限价单?说白了,是为了赚价差。你挂一个买单在99.99,等别人用市价单砸到你,你就低价买到了。然后你再挂一个卖单在100.01,等别人用市价单拉上去,你就高价卖出了。一来一回,赚的就是那2分钱。

但这里有个坑。我曾经在实盘里挂过一个大买单,结果市场突然跳水,我的单子全成交了,价格却继续往下砸。嗯,那叫一个惨。所以限价单不是无风险的,你得考虑「被套」的可能。

3.3 市价单:流动性杀手

市价单就简单了——「不管什么价格,我现在就要成交」。你下了一个买入市价单,系统会直接吃掉订单簿上最便宜的卖单。

比如刚才那个例子,你下了一个买入市价单,数量是1,000股。系统会先吃掉100.01上的800股,然后剩下的200股去吃100.02上的1,500股。你实际成交的平均价格是:

成交均价 = (800 * 100.01 + 200 * 100.02) / 1000 = 100.012

看到了吗?你本来想买100.00的股票,结果因为流动性不够,你多花了钱。这就是「冲击成本」。

市价单是价差的直接推动力。大量市价单涌入,会把订单簿打穿,价差瞬间扩大。我记得有一次做股指期货的套利,一个巨量市价单直接把价差从0.2个点打到了0.8个点,我的套利策略差点爆仓。

3.4 价差的诞生:一场博弈

价差不是凭空产生的。它是买卖双方博弈的结果。我画了一张图,帮你理解这个过程:

价差诞生过程示意图 买方(限价单) 卖方(限价单) 买一:99.99 (1,200股) 买二:99.98 (2,500股) 买三:99.97 (3,000股) 卖一:100.01 (800股) 卖二:100.02 (1,500股) 卖三:100.03 (2,000股) 价差 = 0.02 (100.01 - 99.99) 市价卖单冲击 市价买单冲击

你看,买方和卖方之间隔着一道「价差鸿沟」。市价单就像炮弹,从两边轰击对方的城墙。如果买方炮弹多,卖一档被吃掉,价差可能缩小。如果卖方炮弹多,买一档被砸穿,价差也可能缩小。但更多时候,双方都在试探,价差就维持在一个相对稳定的水平。

3.5 影响价差的核心因素

根据我的经验,价差的大小主要取决于三个因素:

  • 流动性:参与者越多,订单越密集,价差越小。比如沪深300成分股,价差通常只有1分钱。而一些小盘股,价差可能到5分甚至1毛。
  • 波动性:市场越动荡,做市商越不敢挂单,价差就会扩大。我记得2020年3月美股熔断那会儿,很多股票的价差扩大了10倍以上。
  • 信息不对称:如果有人知道内幕消息,他会用市价单快速成交,导致价差瞬间扩大。这也是为什么财报发布前后,价差通常会变大。

核心规律:价差 = 流动性成本 + 逆向选择成本 + 订单处理成本

其中,流动性成本占比最大,通常超过60%。

3.6 实战中的价差观察

我建议你打开交易软件,盯着订单簿看5分钟。你会发现一个有趣的现象:价差不是固定的,它在不断跳动。

为什么会这样?因为有人在撤单,有人在加单,有人在吃单。每一秒,订单簿都在变化。价差就像市场的「心跳」,反映着买卖双方的实时博弈。

我曾经写过一个脚本,专门记录某只股票一天的价差变化。结果发现,开盘和收盘时价差最大,中午休息时价差最小。为什么?因为开盘和收盘时信息最多,大家都不敢轻易挂单。

个人技巧:如果你想做高频交易,最好在价差稳定的时候进场。我一般会等开盘后15分钟,等价差稳定了再动手。别在开盘第一分钟就冲进去,那是送钱。

3.7 价差的数学表达

从量化角度,价差可以写成:

Spread = Ask_Price - Bid_Price

其中:
- Ask_Price = 最低卖价
- Bid_Price = 最高买价

但实际交易中,我们更关心「有效价差」——也就是你实际成交的价格和中间价之间的差距。中间价是买一和卖一的平均值:

Mid_Price = (Ask_Price + Bid_Price) / 2
Effective_Spread = |Trade_Price - Mid_Price| * 2

这个有效价差,才是你真正付出的成本。我建议你在回测时用有效价差,而不是名义价差。因为很多时候,你挂的限价单不一定能成交,实际成本比名义价差高得多。

注意:别以为价差小就好做。有些股票价差只有1分钱,但深度极差,你一个市价单下去,直接打穿好几档。这种「假流动性」最坑人。我曾经吃过这个亏,后来加了一个深度检测模块,才避免再次踩雷。

好了,这一章的内容就到这里。订单簿的微观结构,说白了就是限价单和市价单的博弈。价差是这场博弈的直接结果。理解了这个,你就能看懂市场里每一笔交易背后的逻辑。

专注资料整理