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 价差的诞生:一场博弈
价差不是凭空产生的。它是买卖双方博弈的结果。我画了一张图,帮你理解这个过程:
你看,买方和卖方之间隔着一道「价差鸿沟」。市价单就像炮弹,从两边轰击对方的城墙。如果买方炮弹多,卖一档被吃掉,价差可能缩小。如果卖方炮弹多,买一档被砸穿,价差也可能缩小。但更多时候,双方都在试探,价差就维持在一个相对稳定的水平。
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分钱,但深度极差,你一个市价单下去,直接打穿好几档。这种「假流动性」最坑人。我曾经吃过这个亏,后来加了一个深度检测模块,才避免再次踩雷。
好了,这一章的内容就到这里。订单簿的微观结构,说白了就是限价单和市价单的博弈。价差是这场博弈的直接结果。理解了这个,你就能看懂市场里每一笔交易背后的逻辑。