all_lessons/市场的逻辑/04第 5 课 / 共 32 课

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

做市商与价差:谁来兜住每一笔单

上一课结尾留下一个问题:谁愿意一直站在那儿,同时挂着买价和卖价,接住每一笔飞来的小单的另一边,随时提供流动性?这听起来吃力不讨好。可正是有这么一类玩家专门在做它——他们就是做市商。这一课讲清他们靠什么活、又怕什么,顺便把第一部分「价格怎么被做出来」收个尾。

本课路线
(1) 引入做市商 (market maker):双边报价、赚价差 (spread),价差是「即时成交 (immediacy)」的价格;(2) 第一种风险——库存风险 (inventory risk):被一边单子持续成交会累积库存,逼着他挪动报价;(3) 动手玩一台「做市商台」,看随机单流如何让他既赚价差、又被库存推着走;(4) 第二种风险——逆向选择 (adverse selection):和「知情者」成交会吃亏,价差也在为信息不对称定价。最后把这一切接回引擎:做市商既是价格机器的供血者,本身也已经是一类玩家

一、做市商:同时报买价和卖价,赚中间那条缝

回想 03 课那张订单簿。我们一直把它当成「天上掉下来、固定摆好」的。但每一档限价单都是某个人挂上去的。其中有一类参与者,做的事情很特别:他同时在买一挂出愿意买入的价、在卖一挂出愿意卖出的价,而且持续地挂、随时准备成交。这类人就是做市商 (market maker),也叫流动性提供者 (liquidity provider)。

举个最小的例子。某只股票「公允」价格大约在 100.00。做市商不直接报 100.00,而是报一对价:

买价 (bid) 99.95 │ 卖价 (ask) 100.05

意思是:「你想,我用 99.95 接;你想,我用 100.05 给。」这两个价之间的缝隙,就是上一课提到的价差 (spread)

价差 = 卖价 − 买价 = 100.05 − 99.95 = 0.10

现在想象一前一后来了两个人:第一个想买,从做市商手里以 100.05 买走 100 股;过一会儿第二个想卖,把 100 股以 99.95 卖给做市商。一来一回,做市商转手了这 100 股,净赚了 0.10 × 100 = 10(一个价差)。它对价格往哪走毫无看法,只是收过路费

价差 = 即时成交的价格
价差不是「黑心中间商的盘剥」,而是一项服务的定价:做市商承诺「你随时想交易,我立刻接」。这份「即时成交 (immediacy)」是有价值的——没有它,你得自己挂限价单、苦等另一个方向的人出现。价差,就是你为「现在就能成交」付的钱。这正是主线二(流动性)的一个核心侧面:03 课讲的是流动性的「深度」,这一课讲的是它的「价差」——谁来提供流动性、又凭什么收费。

这也解释了一个表面矛盾:做市商似乎「买进的永远比卖价低、卖出的永远比买价高」,稳赚不赔。如果世界真这么简单,谁都去做市了。但他要承担两类真实的风险,正是这两类风险决定了价差该有多宽——下面两节就是它们。

二、库存风险:被一边单子喂饱,就得挪报价

上面那个「一买一卖正好抵消」的例子太理想了。现实里订单流是随机的:可能连着来五个卖单、却一个买单都没有。每接一个卖单,做市商就用 99.95 买进 100 股——他手里的库存 (inventory) 越堆越多,变成了一个被动的多头

这就是库存风险 (inventory risk):做市商本不想持有方向性头寸(他想做的是「转手收过路费」),可单边的订单流会他攒下一大堆库存。万一这时价格突然下跌,他手里这堆刚以 99.95 买来的货就会亏钱——他被迫承担了自己根本不想要的风险。

做市商怎么自救?办法很巧妙:整体挪动自己的报价中枢。如果库存太多(手里货堆积、偏多头),他就把买价和卖价一起往下调,比如从「99.95 / 100.05」挪到「99.90 / 100.00」。这样做有两个效果:

反过来,如果他被买单喂成了空头(库存为负,老有人从他手里买走),他就把报价一起往上抬,鼓励别人来卖、补回他的空缺。注意:做市商挪报价,往往和「他看好/看空这只股票」毫无关系——纯粹是在平衡库存。这是一个很重要的祛魅点:盘口价格的移动,常常只是某个做市商在倒腾自己的仓位。

一个可选的类比:易逝的库存
如果你读过《旅行的逻辑》里航司/酒店的收益管理,这里的直觉是相通的:一个航班的空座位、一间今晚卖不掉的房间,都是会过期的库存,所以航司靠动态调价去「填座」。做市商也一样——他手里堆积的股票就是必须尽快出清的库存,于是靠挪动报价来「调价去填座」。机制不同,逻辑同构:有易逝库存的人,会用价格当方向盘去管理它。(这是弱类比,点到为止。)

三、动手:做市商台

下面这台机器让你看着一个做市商工作。它以 0.10 的固定价差挂出双边报价,随机的买单/卖单不断流过来。每成交一笔,他就赚半个价差(相对中枢 0.05),同时库存朝相反方向变动。关键看点:当库存偏离 0 超过阈值(这里设为 ±400 股),他会自动整体平移报价中枢去把库存拉回来——这就是库存风险在驱动价格,而不是任何「看法」。盯住三个 KPI:累计价差收入(长期向上)、当前库存(在 0 附近来回荡)、报价中枢(随库存反向漂移)。

做市商台 · 赚价差,但被库存推着走
点「开始」让随机单流跑起来。绿色买价红色卖价夹着报价中枢。买单(↑)从做市商手里买走、让他变空(库存↓);卖单(↓)塞给他、让他变多(库存↑)。库存超过 ±400,他就把整对报价反向平移去自救。看「累计价差收入」一路爬升,而「当前库存」被压在 0 附近——这就是做市的本质:收过路费 + 管库存。
累计价差收入
0.00
当前库存(股)
0
报价中枢
100.00
买价 / 卖价
99.95 / 100.05
点「开始」,看做市商一边收价差、一边和自己的库存搏斗。

玩一会儿你会发现:价差收入几乎是稳稳向上的(只要单流两边大致均衡,他就靠转手持续赚钱);可库存像钟摆一样来回荡,每次荡得太远,报价中枢就被拽着反向漂移。做市不是「躺着收钱」,而是「一边收过路费、一边不停地把自己的仓位扳平」的手艺活。

四、逆向选择:和「知情者」成交会吃亏

还有第二类、也更隐蔽的风险。做市商对每一个来交易的人都一视同仁地报同一对价——但来的人并不一样。大多数是「噪声交易者」:因为发工资要定投、因为要付学费而卖出,他们的买卖和这家公司的真实前景无关,做市商赚他们的价差赚得安心。

可偶尔来的是知情交易者 (informed trader):他可能刚得知一个还没公开的坏消息,于是疯狂地给做市商。做市商照旧用 99.95 接了货——然后消息公开,价格直接跳到 95,他手里这堆货巨亏。问题在于:做市商总是在「价格马上要朝不利方向走」的时候,被知情者喂一肚子货。这种「专挑你报错价的时候找你成交」的现象,叫逆向选择 (adverse selection)

这立刻解释了价差为什么不能太窄:价差必须足够宽,用从大量噪声交易者那里赚到的小钱,去覆盖偶尔被知情者「割」的大亏。于是——

价差到底在为什么定价
价差 = 即时成交服务费 + 库存风险补偿 + 逆向选择(信息不对称)保费。所以价差的宽窄不是随意的:越是信息满天飞、越容易遇到知情者的股票(比如财报前夜、小盘冷门股),价差就越宽;越是公开透明、噪声交易者占多数的大盘股,价差就越窄。价差,是市场为「不确定对手是谁」开出的价。(信息不对称如何系统性地影响价格,会在后面 17、21 课继续回扣。)

五、收尾:做市商既是供血者,也已经是一类玩家

把这一课接回中心引擎。前四课我们造出了一台「价格机器」:01 价格只是最后一笔成交;02 这笔成交在订单簿里被撮合;03 大单吃穿订单簿、产生冲击成本,于是「流动性」成了核心约束;04(本课)做市商站在订单簿的两边持续供给流动性,靠价差获得报酬、被库存与逆向选择两类风险约束。是做市商让那张订单簿时时刻刻有挂单可吃——他是这台价格机器的供血者

但请注意一件事:做市商本身已经是一类「玩家」了。他有自己的目标(赚价差、不留方向头寸)、自己的约束(库存上限、逆向选择)、自己的行为逻辑(看库存挪报价)。这就把我们悄悄推到了下一个大问题的门口——既然连「兜底的人」都是带着自己目标和约束的玩家,那飞进订单簿的那些订单,又分别是谁送的、各自图什么?第一部分「价格怎么被做出来」到此讲完;第二部分「谁在交易」,正要登场。

六、常见误解

一句话带走
做市商同时挂买价和卖价、赚价差,作为提供「即时成交」的报酬——价差就是即时性的价格(主线二 · 流动性)。但他要扛两类风险:单边订单流逼出的库存风险(被迫挪报价去平衡),和被知情者专挑报错价成交的逆向选择(价差因此为信息不对称定价)。做市商既是这台价格机器的供血者,本身也已经是一类带目标与约束的玩家——这正好把我们送进第二部分。
下一步
到这里,「一个价格是怎么被做出来的」就讲完整了:订单簿撮合、流动性约束、做市商兜底。可这些订单都是从外面飞进来的——是谁在送这些单,又为什么送?做市商只是其中一类玩家,市场里还挤着散户、共同基金、养老金、对冲基金、指数基金、公司自己、乃至央行,每一类的体量、时间尺度、目标和约束都天差地别。 → 第 05 课《玩家地图:市场里到底有谁》会用「规模 × 时限 × 目标 × 约束」四把尺子把他们排开,正式进入第二部分「谁在交易」。