第一部分 · 价格是怎么形成的(市场怎么动)
订单簿:买卖盘到底怎么相遇
上一课把「价格」还原成了「最后一笔成交」——一个属于过去的数。那它就逼出一个绕不开的问题:「下一笔」的成交价由什么决定?是谁挂在那儿等着卖、谁等着买,它们又按什么规矩相遇?这一课,我们把所有「正在等待成交」的订单摊开来排成两摞,看清价格是怎么从这堆排队的意愿里,一笔一笔被「撞」出来的。
一、把「等待成交的意愿」排成两摞
上一课我们说,一笔成交需要「两个人刚刚同意」。但现实里,买家和卖家几乎从不在同一瞬间、同一价格凭空相遇——他们是先把自己的意愿挂出来,排队等对手出现。交易所要做的,就是把这些排队的意愿组织起来。组织的方式简单得惊人:按价格排序,分成买、卖两摞。
这两摞合起来,就是订单簿(order book)——一份实时更新的、市场上所有「我愿意在某价买 / 卖多少股」的公开清单。它长这样:
- 卖盘(asks,卖方那一摞):一群人说「我愿意卖,但不肯低于某价」。价格从低到高排——要价最低的那个最容易被买到,排在最前面。
- 买盘(bids,买方那一摞):一群人说「我愿意买,但不肯高于某价」。价格从高到低排——出价最高的那个最容易买到货,排在最前面。
注意这两摞天然是错开的:愿意卖的,要价总是高于愿意买的出价(否则他们早就成交、从簿子上消失了)。于是簿子中间留出一道缝——卖方最低的要价,和买方最高的出价之间,有一段空隙。理解这道缝,是理解价格的关键。
二、两种订单:一种「供给」流动性,一种「消耗」它
你想买这只股票,有两种截然不同的下单方式,它们对订单簿做的事正好相反——这个区分是整个第一部分的枢纽:
限价单(limit order):你说「我愿意买,但最多出 100.00,不到这个价我就等着」。这张单不会立刻成交,它被挂进订单簿,加进买盘那一摞、排在 100.00 这一档,静静等一个愿意按 100.00 卖给你的人。换句话说,你为市场新增了一份「随时可被成交」的库存——你在供给流动性(providing liquidity)。挂卖单同理。限价单的人不急,用「等待」换「更好的价」。
市价单(market order):你说「我现在就要买,多少钱无所谓,立刻成交」。这张单不挂进簿子等待,它直接冲向卖盘那一摞,从最低的要价开始往上吃——吃掉卖一、不够就吃卖二……直到买够数量。你消耗掉了别人挂出来的库存——你在消耗流动性(taking liquidity)。市价单的人急,用「更差的价」换「立刻成交」。
三、订单簿的四个读数:买一、卖一、价差、中间价
订单簿可以有几十档深,但每时每刻,只有「最前面那两档」在直接决定你能成交的价。给它们起好名字:
- 卖一(best ask / best offer):卖盘里最低的要价。你想立刻买,就得付这个价——这是市场此刻肯卖给你的最便宜的价。
- 买一(best bid):买盘里最高的出价。你想立刻卖,就只能拿这个价——这是市场此刻肯从你手里买的最贵的价。
- 价差(bid-ask spread):两者之差。价差 = 卖一 − 买一。这就是上面那道「缝」。它是「立刻成交」要付的隐形过路费——你按卖一买进、转手按买一卖出,一来一回先亏掉一个价差。
- 中间价(mid / mid-price):两者的中点。中间价 = (买一 + 卖一) ÷ 2。它不是任何一笔真实成交价,而是一个「公允参考」——常被用来代表「现在大致值多少」。
价差为什么重要?因为它把上一课那个抽象的「流动性」变成了一个看得见、付得起的数字:价差越窄,「立刻成交」越便宜,市场越有流动性;价差越宽,急着成交的代价越高。一只天天有人交易的大盘股,价差可能只有几个基点(basis point,万分之一);一只没人问津的冷门股,价差可能宽到吓人。价差,就是「即时性」的标价。——是谁愿意常年挂着窄价差、当那个随时接单的对手方?这正是第 04 课「做市商」的主题。
四、价格到底「何时」跳动
现在回答本课最初的问题——「下一笔的成交价由什么决定」。把前面的零件拼起来,答案变得异常清晰:「最后成交价」只在两种时刻移动,其余时间它一动不动。
- 情形一:一笔市价单吃掉了当前最优档。 你打一个市价买单,把卖一全吃光了。卖一这一档消失,下一档(更高的价)递补上来成为新的卖一。如果你的单还没吃饱、继续吃下一档,那么每吃穿一档,成交价就往上跳一格。最后印在屏幕上的「最后成交价」,就是你吃到的最高那一档。价格被一笔急单「推」着走了。
- 情形二:有人挂出 / 撤掉一张更优的限价单,改写了买一或卖一。 比如原本卖一是 100.20,突然有人挂出一张 100.10 的卖单——新的卖一变成 100.10,整个簿子的最优档被刷新。虽然还没发生成交,但「现在能买到的最便宜价」已经变了,价差随之收窄。
反过来说:只要没有市价单来吃、也没人改挂更优价,哪怕簿子上有成千上万张挂单在排队,最后成交价也纹丝不动。这印证了上一课的恒等式——价格不是被「人多人少」推动的,而是被一笔愿意成交的订单、撞上对手挂单的那一刻做出来的。屏幕跳一下,背后必有一次「撞击」。
五、撮合的规矩:价格优先,时间优先
最后一个零件:当一笔市价买单冲进来,卖盘里那么多挂单,谁的单先被成交?现代交易所用的是连续竞价撮合(continuous auction)下的价格优先、时间优先(price-time priority)两条规矩:
- 价格优先: 对卖方,要价越低越先成交(买家当然先吃最便宜的);对买方,出价越高越先成交。这保证了急单总是从「最优档」开始吃。
- 时间优先: 同一个价位上有好几张单时,挂得越早越先成交——先到先得。这就是为什么「在同一档,早挂一秒」也是一种优势,它在第 17 课(高频交易)里会被放大成微秒级的战争。
这套「按价格和时间排队、撮合相遇」的机制,并不是股市独有的。任何需要把「想买的」和「想卖的」高效配对的地方,都会长出类似的结构——比如网络广告的竞价拍卖:广告位是「卖方」,无数广告主的出价排成一摞,按出价高低实时撮合,胜出者付费展示。它和订单簿是同构的两套机器。《搜索 · 广告 · 推荐系统》那门课里的广告竞价机制,正好可以和这里对照着看:同样是「排队的意愿 + 一套撮合规则 = 一个被撞出来的价」。
六、动手:一座互动订单簿
下面是一座可以亲手拨动的订单簿。买卖各五档,用条形长度表示每档的挂单量。三个按钮让你亲自验证本课的每一个论断:「市价买 / 市价卖」会从最优档开始逐档吃掉挂单——看价差、中间价、最后成交价怎么随之跳动;「挂限价单」会在最优档内侧加一档新挂单——看它怎样收窄价差、为市场供给流动性,而且不会产生成交、最后成交价纹丝不动。把这两类操作交替着玩,本课的「市价单消耗、限价单供给、成交才跳价」就成了你指尖的肌肉记忆。
把玩一会儿你会发现一件事:限价单让簿子变厚、价差变窄,却从不直接移动「最后成交价」;只有市价单真的吃掉挂单,价格才跳。这就是「供给」与「消耗」的区别在数字上的样子。而当你把 N 调大、一笔市价单连吃好几档时,你已经撞上了下一课的问题——
七、常见误解
- 误解:限价单和市价单只是「能不能指定价格」的小区别。 (澄清:它们对市场做的事正相反——限价单挂进簿子供给流动性、用等待换更好的价;市价单立刻吃掉挂单消耗流动性、用更差的价换即时成交。这是第一部分的枢纽。)
- 误解:只要订单簿上挂单很多,价格就会动。 (澄清:挂着的限价单再多也不动价。最后成交价只在市价单吃掉最优档或有人改挂更优价时才变——没有「撞击」就没有跳动。)
- 误解:价差是券商或交易所偷偷收的费。 (澄清:价差是买一和卖一之间天然的缝,是「立刻成交」要付的即时性代价;谁愿意常年挂窄价差当对手方、靠它谋生,是第 04 课做市商的事。)
- 误解:中间价就是「真实价格」。 (澄清:中间价 (买一+卖一)/2 是个参考中点,并非任何一笔真实成交价。你真要立刻买得付卖一、立刻卖只拿买一——你永远成交在缝的两边,不在中点。)