all_lessons/市场的逻辑/02第 3 课 / 共 32 课

第一部分 · 价格是怎么形成的(市场怎么动)

订单簿:买卖盘到底怎么相遇

上一课把「价格」还原成了「最后一笔成交」——一个属于过去的数。那它就逼出一个绕不开的问题:「下一笔」的成交价由什么决定?是谁挂在那儿等着卖、谁等着买,它们又按什么规矩相遇?这一课,我们把所有「正在等待成交」的订单摊开来排成两摞,看清价格是怎么从这堆排队的意愿里,一笔一笔被「撞」出来的。

本课路线
(1) 把所有等待成交的买单、卖单按价格排成两摞——这就是订单簿(order book);(2) 分清两种下单方式:限价单(limit order)挂在某价等着、向市场供给流动性,市价单(market order)立刻吃掉对手挂单、消耗流动性;(3) 认识订单簿的几个关键读数——买一(best bid)/ 卖一(best ask)/ 价差(spread)/ 中间价(mid);(4) 弄清价格究竟何时跳动,以及撮合凭什么排序(价格优先、时间优先)。

一、把「等待成交的意愿」排成两摞

上一课我们说,一笔成交需要「两个人刚刚同意」。但现实里,买家和卖家几乎从不在同一瞬间、同一价格凭空相遇——他们是先把自己的意愿挂出来,排队等对手出现。交易所要做的,就是把这些排队的意愿组织起来。组织的方式简单得惊人:按价格排序,分成买、卖两摞。

这两摞合起来,就是订单簿(order book)——一份实时更新的、市场上所有「我愿意在某价买 / 卖多少股」的公开清单。它长这样:

注意这两摞天然是错开的:愿意卖的,要价总是高于愿意买的出价(否则他们早就成交、从簿子上消失了)。于是簿子中间留出一道缝——卖方最低的要价,和买方最高的出价之间,有一段空隙。理解这道缝,是理解价格的关键。

二、两种订单:一种「供给」流动性,一种「消耗」它

你想买这只股票,有两种截然不同的下单方式,它们对订单簿做的事正好相反——这个区分是整个第一部分的枢纽:

限价单(limit order):你说「我愿意买,但最多出 100.00,不到这个价我就等着」。这张单不会立刻成交,它被挂进订单簿,加进买盘那一摞、排在 100.00 这一档,静静等一个愿意按 100.00 卖给你的人。换句话说,你为市场新增了一份「随时可被成交」的库存——你在供给流动性(providing liquidity)。挂卖单同理。限价单的人不急,用「等待」换「更好的价」。

市价单(market order):你说「我现在就要买,多少钱无所谓,立刻成交」。这张单挂进簿子等待,它直接冲向卖盘那一摞,从最低的要价开始往上吃——吃掉卖一、不够就吃卖二……直到买够数量。你消耗掉了别人挂出来的库存——你在消耗流动性(taking liquidity)。市价单的人急,用「更差的价」换「立刻成交」。

为什么市场非要这两种单不可
因为交易者天生分两种诉求:一种在乎价格、不在乎时间(「便宜我才买,等多久无所谓」)——他们挂限价单、当流动性的供给方;另一种在乎时间、不在乎几分钱(「现在就要,差一点没关系」)——他们打市价单、当流动性的消耗方。市场把这两种人配成一对:耐心的人挂着等,急的人付一点代价立刻成交。没有挂着等的限价单,急单就没有对手可吃;没有急着吃的市价单,挂单就永远不会成交。价格,正是在这两种人相撞的地方诞生的。

三、订单簿的四个读数:买一、卖一、价差、中间价

订单簿可以有几十档深,但每时每刻,只有「最前面那两档」在直接决定你能成交的价。给它们起好名字:

价差为什么重要?因为它把上一课那个抽象的「流动性」变成了一个看得见、付得起的数字:价差越窄,「立刻成交」越便宜,市场越有流动性;价差越宽,急着成交的代价越高。一只天天有人交易的大盘股,价差可能只有几个基点(basis point,万分之一);一只没人问津的冷门股,价差可能宽到吓人。价差,就是「即时性」的标价。——是谁愿意常年挂着窄价差、当那个随时接单的对手方?这正是第 04 课「做市商」的主题。

四、价格到底「何时」跳动

现在回答本课最初的问题——「下一笔的成交价由什么决定」。把前面的零件拼起来,答案变得异常清晰:「最后成交价」只在两种时刻移动,其余时间它一动不动。

反过来说:只要没有市价单来吃、也没人改挂更优价,哪怕簿子上有成千上万张挂单在排队,最后成交价也纹丝不动。这印证了上一课的恒等式——价格不是被「人多人少」推动的,而是被一笔愿意成交的订单、撞上对手挂单的那一刻做出来的。屏幕跳一下,背后必有一次「撞击」。

五、撮合的规矩:价格优先,时间优先

最后一个零件:当一笔市价买单冲进来,卖盘里那么多挂单,谁的单先被成交?现代交易所用的是连续竞价撮合(continuous auction)下的价格优先、时间优先(price-time priority)两条规矩:

  1. 价格优先: 对卖方,要价越低越先成交(买家当然先吃最便宜的);对买方,出价越高越先成交。这保证了急单总是从「最优档」开始吃。
  2. 时间优先: 同一个价位上有好几张单时,挂得越早越先成交——先到先得。这就是为什么「在同一档,早挂一秒」也是一种优势,它在第 17 课(高频交易)里会被放大成微秒级的战争。

这套「按价格和时间排队、撮合相遇」的机制,并不是股市独有的。任何需要把「想买的」和「想卖的」高效配对的地方,都会长出类似的结构——比如网络广告的竞价拍卖:广告位是「卖方」,无数广告主的出价排成一摞,按出价高低实时撮合,胜出者付费展示。它和订单簿是同构的两套机器。《搜索 · 广告 · 推荐系统》那门课里的广告竞价机制,正好可以和这里对照着看:同样是「排队的意愿 + 一套撮合规则 = 一个被撞出来的价」。

六、动手:一座互动订单簿

下面是一座可以亲手拨动的订单簿。买卖各五档,用条形长度表示每档的挂单量。三个按钮让你亲自验证本课的每一个论断:「市价买 / 市价卖」会从最优档开始逐档吃掉挂单——看价差、中间价、最后成交价怎么随之跳动;「挂限价单」会在最优档内侧加一档新挂单——看它怎样收窄价差、为市场供给流动性,而且不会产生成交、最后成交价纹丝不动。把这两类操作交替着玩,本课的「市价单消耗、限价单供给、成交才跳价」就成了你指尖的肌肉记忆。

互动订单簿 · 价格是怎么被一笔单撞出来的
先看初始簿子:卖盘(红)在上、由低到高,买盘(绿)在下、由高到低,中间是价差。点「市价买 N 股」→ 从卖一往上逐档吃、价差与中间价更新、最后成交价向上跳;点「市价卖」→ 反向。点「挂限价买单」→ 在买一上方加一档、收窄价差不成交、最后成交价不动。对照右边读数,验证「市价单消耗流动性、限价单供给流动性、只有成交才跳价」。
300 股
买一 best bid
卖一 best ask
价差 = 卖一 − 买一
中间价 mid
最后成交价 last
点上面的按钮:注意只有「市价单吃掉一档」或「挂出更优价」时,最优档才会变;而「最后成交价」只在真的发生成交时才跳。

把玩一会儿你会发现一件事:限价单让簿子变厚、价差变窄,却从不直接移动「最后成交价」;只有市价单真的吃掉挂单,价格才跳。这就是「供给」与「消耗」的区别在数字上的样子。而当你把 N 调大、一笔市价单连吃好几档时,你已经撞上了下一课的问题——

七、常见误解

一句话带走
「下一笔」的价不是凭空冒出来的:所有等待成交的买卖单按价格优先、时间优先排成一座订单簿限价单挂着供给流动性,市价单冲进来消耗流动性;只有当一笔市价单吃掉最优档、或有人改挂更优价时,最后成交价才跳动。这一课把第一问「价格怎么被做出来」从「意愿」落到了「机制」——价格是一笔订单撞上对手挂单的产物。
下一步
玩 widget 时你已经撞见了那个缺口:当你要买的股数,比卖一那一档挂出来的还多,市价单会怎样?它会吃穿卖一、接着吃更贵的卖二、卖三……你买到的平均价越来越高,而你自己的这笔单,把价格往不利于自己的方向了上去。 → 第 03 课《流动性与冲击成本:为什么大单会自己推高价格》会把这个「自己推动自己」的现象讲透——它就是主线二「流动性是核心约束」的正式登场,也是全程绕不开的那道墙。