量化交易中文教材

第 14 章 买卖价差

对应 Harris《Trading and Exchanges》第 14 章 Bid/Ask Spreads 及其附录。这是本册对量化交易最重要的一章:做市报价、交易成本模型、限价单还是市价单的选择、回测中的成本假设,都建立在本章的价差理论之上。原书给出了价差的两个成分、Glosten–Milgrom 定理的简化版本、指令驱动市场的均衡价差和横截面价差预测;本教材补充了完整的序贯 Glosten–Milgrom 模型、Roll 模型和基于交易方向的价差分解回归,并配了模拟代码。补充内容会明确标出。

学习目标

读完本章,你应当能够:

  1. 把价差分解为交易成本(暂时性)成分与逆向选择(永久性)成分,写出交易商的报价公式,并说明成交后报价如何移动。
  2. 从"信息视角"和"会计视角"两条路推导出相同的逆向选择价差 \(2PE\)(Glosten–Milgrom 定理),并推导序贯 Glosten–Milgrom 模型中的贝叶斯报价公式,解释价差为何随学习收窄、成交价为何是鞅。
  3. 推导 Roll 模型 \(s=2\sqrt{-\mathrm{Cov}(\Delta p_t,\Delta p_{t-1})}\),知道它在存在逆向选择时估计的是什么,并会用交易方向回归估计两个成分。
  4. 解释"本书最重要的一课":不知情交易者无论用限价单还是市价单都会输给知情交易者。
  5. 推导指令驱动市场的均衡价差:理想条件下为零,现实中等于佣金差、限价单管理成本、两倍择时期权价值等的组合,并算出 Lisbet–Tim–Dieter 例子中的数字。
  6. 用三个主要决定因素(信息不对称、波动率、功利性交易兴趣)及其代理变量预测横截面相对价差,并把它变成回测和组合优化中的交易成本模型。

读前导读

**这一章在解决什么问题。**你在 CFA 里把买卖价差当作一个给定的交易成本输入,本章回答它为什么是这个数、由哪几块组成、能不能从数据里估出来。答案是两块:一块是交易商的“经营成本”(暂时性成分,成交价在 bid 和 ask 之间来回跳),一块是“输给知情者的保险费”(逆向选择成分,成交后价格永久移动)。第 13 章用文字讲了逆向选择,本章用 Glosten–Milgrom 模型把它算出来,用 Roll 模型和回归把它从数据里分离出来,再用指令驱动市场的均衡分析说明:即使没有交易商,限价单交易者之间也会自发形成同样结构的价差。

对量化工作,这一章直接决定三件事:回测里的成本假设应该怎么设、做市报价的骨架是什么、为什么高换手的无 alpha 策略必然亏钱。

需要先想起来的数学。

  • 贝叶斯公式与条件期望:\(P(A\mid B)=\dfrac{P(B\mid A)P(A)}{P(B)}\),其中分母 \(P(B)=P(B\mid A)P(A)+P(B\mid A^c)P(A^c)\)(全概率公式,\(A^c\) 表示 \(A\) 不发生)。例:疾病发病率 1%,检测准确率 90%,阳性者真有病的概率 \(=0.9\times0.01/(0.9\times0.01+0.1\times0.99)\approx8\%\)。Glosten–Milgrom 模型里,“疾病”换成“价值高”,“阳性”换成“有人来买”。见 第 00 册第 07 章 概率中的分析工具。
  • 鞅与塔性质:若 \(p_t=E[V\mid\mathcal F_t]\)(\(\mathcal F_t\) 表示到第 \(t\) 笔为止看到的全部交易历史),则 \(E[p_{t+1}\mid\mathcal F_t]=p_t\),价格变化不可预测。第 10 章已用过同样的论证。
  • 协方差的双线性:\(\mathrm{Cov}(aX+bY,\,Z)=a\,\mathrm{Cov}(X,Z)+b\,\mathrm{Cov}(Y,Z)\),独立变量的协方差为零。Roll 模型的推导只用这一条,加上 \(\mathrm{Cov}(X,X)=\mathrm{Var}(X)\)。
  • OLS 回归系数的含义:在 \(y=\beta_1x_1+\beta_2x_2+e\) 中,若 \(x_1,x_2\) 互不相关且与 \(e\) 无关,OLS 能无偏地估出 \(\beta_1,\beta_2\)。14.5.2 的价差分解回归就是这种最简单的情形。CFA 二级多元回归的知识足够。
  • 期权的视角:一张挂在 20 元的卖出限价单,等于免费送给市场一张执行价 20 的看涨期权(谁都可以按 20 买走);买入限价单等于送出一张看跌期权。14.7 的“择时期权”就是这个意思。

**怎么读这一章。**14.3 的两个成分和报价公式 (14.1)、(14.2) 是全章骨架,必读。14.4 是核心:先读 14.4.1 的直观,再按讲解框把 14.4.2 和 14.4.3 的推导亲手走一遍,这两节读懂了,第 10 章的 Kyle 模型和第 13 章的做市逻辑会连成一体。14.5 的 Roll 模型和分解回归是微观结构计量的入门,做高频或交易成本分析的读者必读。14.6 是“最重要的一课”,务必读。14.7 的均衡价差篇幅长,第一次可以只读 14.7.1 的结论、(14.5) 式和例 14.1。14.9 的横截面预测与代码 4 合起来读,是搭建交易成本模型的直接起点。


14.1 价差是即时性的价格

买卖价差是急躁交易者为即时性支付的价格。 急躁的人在 ask 买、在 bid 卖;价差是交易商和限价单交易者提供即时性的补偿。

价差在两个决策中起核心作用:

  • 交易者选择限价单还是市价单。价差宽,即时性贵,市价单成本高,限价单更有吸引力;价差窄,市价单更划算。要优化订单提交策略,就要知道在当前市况下价差算宽还是算窄,所以必须理解价差的决定因素。
  • 交易商决定是否在某个市场提供流动性。价差太窄,做市无利可图,交易商退出;价差宽,新交易商进入。

本章的结论可以先列出来:价差最重要的决定因素是知情交易带来的逆向选择、波动率和市场活跃度。而 Harris 称之为"本书对多数读者最重要的一课"的结论是:不知情交易者无论用限价单还是市价单都会输给知情交易者;他们输,仅仅因为他们在交易。不想输,就尽量少交易。

14.2 交易商如何设定价差

交易商设定价差以最大化利润:要宽到足以覆盖经营成本,否则只能退出;又不能宽到没人和他交易。收入取决于往返交易的有效价差(effective spread)、存货周转频率以及输给知情者的损失;费用包括存货融资成本、人员薪酬、交易所会员费、通讯、研究、系统开发、清算结算、会计、场地等。

垄断交易商可以报宽价差。最优垄断价差满足经济学教科书上的"边际收入 = 边际成本":价差略降带来的边际收入,等于提供由此增加的流动性的边际成本。但金融市场的交易商很少能成为垄断者:进入壁垒低,超额利润会吸引新交易商;进入的威胁本身就可能约束唯一的交易商。此外,交易商还面临公共限价单交易者的竞争,限价单本质上和交易商报价一样,都是供他人随时成交的交易要约。原书举例说,NYSE 专家是所负责股票的唯一交易商,但并非垄断者,因为他面对公共限价单和其他交易所的竞争。

竞争性市场中,自由进出使价差调整到交易商恰好赚取正常利润:收入恰好覆盖全部经济成本,即上述各项成本加上资本的公平回报和企业家努力的公平报酬。此时经济利润为零。

14.3 价差的两个成分

经济学家把价差分成两个成分,二者之和是总价差:

  • 交易成本成分(transaction cost component):补偿交易商的正常经营成本,也包括可能的垄断利润和承担存货风险所需的风险溢价。
  • 逆向选择成分(adverse selection component):补偿与知情者交易的损失,让交易商能从不知情者身上赚回输给知情者的部分。

交易商从不分开报这两个成分,只报 bid 和 ask。要估计它们,需要计量方法(14.5 节)。

14.3.1 交易成本成分:暂时性

如果所有人都确切知道价值,交易成本成分就是全部价差:价格在略低于价值的 bid 与略高于价值的 ask 之间来回跳动。竞争使它等于正常经营成本。

它又叫暂时性成分(transitory component),因为相关的价格变化是暂时的、会规律性地反转:从 bid 跳到 ask 之后,最常见的下一步是从 ask 跳回 bid。这种来回跳动叫买卖反弹(bid/ask bounce),是急躁交易者引起的一种轻微价格波动,会使成交价变化出现负自相关。

14.3.2 逆向选择成分:永久性

交易商不太了解基本面价值,所以暴露于更知情者的逆向选择。只覆盖正常成本的价差,最终会让交易商被知情者逼出市场,所以价差必须进一步加宽:一是从不知情者那里收回输给知情者的部分;二是让知情者以更差的价格成交,减少损失。这部分加宽就是逆向选择成分。

它又叫永久性成分(permanent component),因为相关的价格变化不会系统性反转。它反映交易商对价值估计的修正。若交易商有效利用了全部信息,估计的修正序列就应该不可预测(若可预测,说明早该纳入那些信息了)。不可预测变化构成的过程本质上是随机游走,每一次变化都是永久的,影响此后所有的水平。

14.3.3 交易商的报价公式

原书在"总价差"边栏中描述了交易商在原理上如何报价(实践中交易商凭经验,但会经常思考这些问题):

  1. 用全部现有信息估计价值 \(V_0\),作为报价的中心;
  2. 分别估计"下一个是买方"时的价值 \(V_B\) 和"下一个是卖方"时的价值 \(V_S\),两者之差就是逆向选择成分 \(S_{AS}\)。若知情买卖概率相等、两种情形下的期望定价误差相等,则 \(V_B=V_0+\tfrac12 S_{AS}\),\(V_S=V_0-\tfrac12 S_{AS}\);
  3. 再在两侧各加半个交易成本成分 \(S_{TC}\):
\[\text{Ask}_0=V_0+\tfrac12 S_{AS}+\tfrac12 S_{TC},\qquad \text{Bid}_0=V_0-\tfrac12 S_{AS}-\tfrac12 S_{TC}. \tag{14.1}\]

成交后报价如何移动:如果下一个交易者是买方(成交价 \(P_0=\text{Ask}_0\)),而交易商没有学到别的东西,新的无条件价值估计就是之前的条件估计 \(V_1=V_B\),于是 bid 和 ask 都上移半个逆向选择成分 \(\tfrac12 S_{AS}\)。卖方到来时对称地下移。

把这个过程写成时间序列:记 \(q_t=+1\)(买方发起)或 \(-1\)(卖方发起),\(c=\tfrac12 S_{TC}\),\(\lambda=\tfrac12 S_{AS}\),\(m_t\) 为第 \(t\) 笔成交后的价值估计(报价中点),则

\[m_t=m_{t-1}+\lambda q_t+\varepsilon_t,\qquad p_t=m_t+c\,q_t, \tag{14.2}\]

其中 \(\varepsilon_t\) 是公共信息带来的变化。第 \(t\) 笔的成交价相对成交前中点偏离 \((\lambda+c)q_t\),正是半个总价差。这个式子把原书的定性描述变成了可以估计的模型,14.5 节会用到。

推导拆解:(14.2) 怎样对应 (14.1),逐项看。 第一步,约定每一期先到公共新闻、后到交易。新闻把报价中心从 \(m_{t-1}\) 移到 \(m_{t-1}+\varepsilon_t\),这就是第 \(t\) 笔成交前的中点(相当于 (14.1) 里的 \(V_0\))。 第二步,若第 \(t\) 笔是买单(\(q_t=+1\)),按 (14.1) 成交价是 ask \(=(m_{t-1}+\varepsilon_t)+\tfrac12S_{AS}+\tfrac12S_{TC}=(m_{t-1}+\varepsilon_t)+\lambda+c\)。 第三步,成交后,交易商把价值估计上移半个逆向选择成分:\(m_t=(m_{t-1}+\varepsilon_t)+\lambda\),这就是 (14.2) 第一式(14.3.3 “成交后报价如何移动”那句话的公式版)。 第四步,把第三步代入第二步:成交价 \(=m_t+c\),即 \(p_t=m_t+cq_t\)。卖单时所有符号反过来,用 \(q_t=-1\) 统一表示。 两个成分在式子里的位置揭示了它们的性质:\(\lambda q_t\) 进入了 \(m_t\),以后每一期的 \(m\) 都带着它,所以是“永久的”;\(cq_t\) 只出现在当期成交价上,下一笔就没了,所以是“暂时的”。 注意记号:这里的 \(\lambda\) 是“每笔交易”的永久冲击(半个逆向选择成分),单位是价格;第 10 章 Kyle 模型的 \(\lambda\) 是“每股”的冲击系数。两者思想相同,量纲不同。

14.4 Glosten–Milgrom 定理

14.4.1 两种解释,同一个大小

逆向选择成分有两种解释:

  • 信息视角:以下一个交易者是买方或卖方为条件,交易商价值估计之差。
  • 会计视角:交易商为从不知情者那里收回预期输给知情者的损失,而必须报出的那部分价差。

两者大小相同,这就是 Glosten–Milgrom 定理。原书先给了直观理解(简化假设:知情者交易时交易商确知价值,但不知道何时是知情者在交易;结论不依赖这一假设):

  • 信息视角:与已知的不知情者交易,什么也学不到;与已知的知情者交易,就应把报价调整到正确价值,调整量是定价误差。由于不知道谁知情,每笔交易后只部分调整:逆向选择成分 = 定价误差 × 对手为知情者的概率。
  • 会计视角:只有与知情者交易才会亏损,亏损额是原估计与正确价值之差,所以每笔平均损失 = 与知情者交易的损失 × 与知情者交易的概率。

当"与知情者交易的损失 = 定价误差"时两者相等,这在交易商来不及在价格反映信息之前恢复存货时成立。即使交易商能及时恢复存货,结论也基本成立:如果他没意识到与知情者交易而调价不足,知情者会反复来交易,交易商持续亏损,直到价格反映信息,累计损失恰好等于原来的定价误差。

白话解释:两种视角为什么必然相等,可以这样想。交易商像一个按“平均风险”收保费的保险公司。信息视角问的是:“看到这笔买单后,我对价值的估计应该改多少?”答案是“如果他知情我错了多少 × 他知情的概率”。会计视角问的是:“我每笔平均要赔多少?”答案是“如果他知情我赔多少 × 他知情的概率”。只要“错了多少”和“赔多少”是同一个数(定价误差),两个答案就一模一样。前者是精算师算的“期望赔付”,后者是会计记的“实际赔付的平均值”,在大数定律下它们必须相等,否则保费就定错了。

14.4.2 原书附录:单期模型的推导

设定:交易商认为证券的无条件价值为 \(V\);下一个交易者是买方或卖方的概率各 \(\tfrac12\);是知情者的概率为 \(P\);若知情者想买,价值为 \(V+E\),若想卖,价值为 \(V-E\)。交易商既不知道下一个人是否知情,也不知道他要买还是卖。

信息视角:给定下一个是买方,若他不知情,交易商学不到东西,估计仍为 \(V\);若知情,价值为 \(V+E\)。所以

\[E[V\mid\text{买}]=(1-P)V+P(V+E)=V+PE,\qquad E[V\mid\text{卖}]=V-PE,\]

两者之差 \(2PE\) 就是逆向选择价差成分。

推导拆解:上面这一行省掉了一个关键步骤:为什么“看到买单”之后,对手是知情者的概率仍然是 \(P\)? 第一步,用贝叶斯公式:\(P(\text{知情}\mid\text{买})=\dfrac{P(\text{买}\mid\text{知情})\,P}{P(\text{买})}\)。 第二步,设定里“知情者想买或想卖”各占一半(价值高、低等可能),所以 \(P(\text{买}\mid\text{知情})=\tfrac12\);不知情者也是买卖各半,\(P(\text{买}\mid\text{不知情})=\tfrac12\)。全概率公式给出 \(P(\text{买})=\tfrac12P+\tfrac12(1-P)=\tfrac12\)。 第三步,代回:\(P(\text{知情}\mid\text{买})=\tfrac12P/\tfrac12=P\)。正因为两类人买的倾向一样,“看到一笔买单”本身不改变“他是知情者”的概率,只改变“如果知情,价值在哪一边”的判断。 第四步,用全期望公式(把期望按情形拆开再加权):\(E[V\mid\text{买}]=P(\text{知情}\mid\text{买})\cdot E[V\mid\text{买},\text{知情}]+P(\text{不知情}\mid\text{买})\cdot E[V\mid\text{买},\text{不知情}]=P(V+E)+(1-P)V\)。第二项里,不知情者的买单与价值无关,所以条件期望还是 \(V\)。 第五步,同理 \(E[V\mid\text{卖}]=V-PE\),相减得 \(2PE\)。 如果第二步的对称性不成立(比如知情者更可能是买方),\(P(\text{知情}\mid\text{买})\) 就不等于 \(P\),ask 与 bid 也不再关于 \(V\) 对称,这就是练习 7 要处理的推广。

会计视角(忽略经营成本,求使交易商期望盈亏平衡的价差):

  • 下一个是卖方,交易商以 bid \(B\) 买入:卖方不知情时期望利润 \(V-B\),知情时 \((V-E)-B\)。加权得 \((1-P)(V-B)+P(V-E-B)=V-B-PE\)。
  • 下一个是买方,交易商以 ask \(A\) 卖出:不知情时 \(A-V\),知情时 \(A-(V+E)\)。加权得 \(A-V-PE\)。(原书正文此处把知情买方对应的价值误印为 \(V-E\),按设定应为 \(V+E\);原书给出的结果 \(A-V-PE\) 是正确的。)
  • 买卖等概率,期望利润为
\[\tfrac12(V-B-PE)+\tfrac12(A-V-PE)=\tfrac12(A-B)-PE .\]

令其为零,得盈亏平衡价差 \(A-B=2PE\),与信息视角相同。

这个结果还说明了钱的流向:报价 \(A=V+PE\)、\(B=V-PE\) 时,交易商在每笔不知情交易上赚半价差 \(PE\)(概率 \(1-P\)),在每笔知情交易上亏 \(E-PE\)(概率 \(P\)),期望为 \((1-P)PE-P(E-PE)=0\)。不知情者支付的半价差,原封不动地转移给了知情者,交易商只是中介。逆向选择成分与知情者比例 \(P\) 和信息价值 \(E\) 都成正比。

推导拆解:把上面那个期望展开验算一遍:\((1-P)PE-P(E-PE)=PE-P^2E-PE+P^2E=0\)。知情者每笔平均赚 \(E-PE=(1-P)E\),不知情者每笔平均亏 \(PE\);按人数加权,知情者总收益 \(P(1-P)E\),不知情者总损失 \((1-P)PE\),两者相等。 数值例(与代码 1 第一行相同):\(V=100\)、\(E=2\)、\(P=0.25\)。报价 \(100.5/99.5\),价差 1。不知情者每笔亏 0.5,知情者每笔赚 1.5;每 100 笔里 75 笔不知情、25 笔知情,\(75\times0.5=25\times1.5=37.5\)。

金融直觉:这一模型也解释了为什么零售订单流值钱(第 13 章 PFOF):如果批发商能确定某批订单的 \(P\) 接近 0,他报出的价差就可以接近只覆盖经营成本的 \(S_{TC}\),比交易所里面对全体订单流的报价更好,同时还有利可图。

14.4.3 补充:序贯 Glosten–Milgrom 模型

(本小节是对原书附录的扩展,原模型见 Glosten 和 Milgrom 1985 年发表于 Journal of Financial Economics 的论文。)

原书的单期模型回答了"价差有多大",但没有回答"价差如何随交易演化"。序贯模型把它推广到多笔交易。

设定:证券的真实价值 \(V\in\{V_L,V_H\}\),在交易开始前确定,交易结束后公开。交易商当前认为 \(V=V_H\) 的概率为 \(\delta\)。每次到来一个交易者,交易一单位:以概率 \(\mu\) 是知情者,\(V=V_H\) 时买、\(V=V_L\) 时卖;以概率 \(1-\mu\) 是不知情者,买卖各半。交易商是竞争性的、风险中性的,期望利润为零。

条件概率:

\[P(\text{买}\mid V_H)=\mu+\tfrac{1-\mu}{2}=\tfrac{1+\mu}{2},\qquad P(\text{买}\mid V_L)=\tfrac{1-\mu}{2}.\]

报价 = 条件期望:零利润意味着 ask 必须等于"给定有人来买"时的价值期望,bid 等于"给定有人来卖"时的价值期望。由贝叶斯公式,

\[\delta^{+}\equiv P(V_H\mid\text{买})=\frac{\delta(1+\mu)}{\delta(1+\mu)+(1-\delta)(1-\mu)},\qquad \delta^{-}\equiv P(V_H\mid\text{卖})=\frac{\delta(1-\mu)}{\delta(1-\mu)+(1-\delta)(1+\mu)},\]
\[\text{Ask}=V_L+(V_H-V_L)\,\delta^{+},\qquad \text{Bid}=V_L+(V_H-V_L)\,\delta^{-}. \tag{14.3}\]

推导拆解:(14.3) 的每一块从哪里来。 第一步(似然):先算“价值为高/低时出现买单的概率”。价值高时,知情者(概率 \(\mu\))一定买,不知情者(概率 \(1-\mu\))一半买,合计 \(\mu+\tfrac{1-\mu}{2}=\tfrac{1+\mu}{2}\);价值低时知情者一定卖,只有不知情者的一半买,合计 \(\tfrac{1-\mu}{2}\)。这就是上面的“条件概率”。 第二步(全概率):交易商眼中出现买单的总概率 \(P(\text{买})=\delta\cdot\tfrac{1+\mu}{2}+(1-\delta)\cdot\tfrac{1-\mu}{2}\)。 第三步(贝叶斯):\(\delta^+=P(V_H\mid\text{买})=\dfrac{P(\text{买}\mid V_H)\,\delta}{P(\text{买})}=\dfrac{\delta\cdot\frac{1+\mu}{2}}{\delta\cdot\frac{1+\mu}{2}+(1-\delta)\cdot\frac{1-\mu}{2}}\),分子分母同乘 2,约掉 \(\tfrac12\),即得正文公式。\(\delta^-\) 把“买”的似然换成“卖”的似然 \(\tfrac{1-\mu}{2}\)、\(\tfrac{1+\mu}{2}\) 即可。 第四步(条件期望):\(V\) 只有两个取值,\(E[V\mid\text{买}]=V_H\delta^++V_L(1-\delta^+)=V_L+(V_H-V_L)\delta^+\)。零利润竞争使 Ask 等于它。Bid 同理。 数值例:\(V_L=99\)、\(V_H=101\)、\(\mu=0.2\)、\(\delta=0.5\)。\(\delta^+=\frac{0.5\times1.2}{0.5\times1.2+0.5\times0.8}=0.6\),Ask \(=99+2\times0.6=100.2\);\(\delta^-=0.4\),Bid \(=99.8\)。这与第 13 章导读里的数值例一致。

白话解释:贝叶斯更新还有一个更好记的“赔率”写法。把概率换成赔率 \(\delta/(1-\delta)\)(价值高对价值低的赔率),由第三步直接得到

\[\frac{\delta^+}{1-\delta^+}=\frac{\delta}{1-\delta}\times\frac{1+\mu}{1-\mu},\qquad \frac{\delta^-}{1-\delta^-}=\frac{\delta}{1-\delta}\times\frac{1-\mu}{1+\mu}.\]
也就是说,每看到一笔买单,赔率乘以固定倍数 \(\tfrac{1+\mu}{1-\mu}\);每看到一笔卖单,除以这个倍数。\(\mu=0.2\) 时倍数是 1.5。一买一卖正好抵消,回到原来的信念。所以交易商的信念只取决于“净买单笔数”,这和第 12 章“永久冲击只依赖累计净订单流”的无操纵条件是一致的。 继续上面的数值例:一笔买单后 \(\delta=0.6\)(赔率 1.5)。下一次报价时,\(\delta^+\) 对应赔率 \(2.25\),即 \(\delta^+=0.692\),Ask \(=100.385\);\(\delta^-\) 对应赔率 1,即 0.5,Bid \(=100.0\)。价差从 0.4 缩到 0.385,中心上移到约 100.19。

与原书的对应:在 \(\delta=\tfrac12\) 时,\(\delta^{\pm}=\tfrac{1\pm\mu}{2}\),所以

\[\text{Ask}-\text{Bid}=\mu\,(V_H-V_L).\]

令 \(V=\tfrac{V_L+V_H}{2}\)、\(E=\tfrac{V_H-V_L}{2}\)、\(P=\mu\),这正是 \(2PE\)。

更新规则:成交后,交易商把信念更新为 \(\delta^{+}\)(若是买)或 \(\delta^{-}\)(若是卖),然后按 (14.3) 重新报价。由此得到模型的四个重要性质:

  1. 交易商零期望利润。每一笔的成交价都是"给定这笔交易及以往全部历史"的价值条件期望。
  2. 成交价是鞅。因为成交价 \(p_t=E[V\mid\mathcal F_t]\),由迭代期望 \(E[p_{t+1}\mid\mathcal F_t]=p_t\),价格变化不可预测,相邻价格变化不相关。这正是 14.3.2 节"永久性成分是随机游走"的严格表述。
  3. 价差随学习收窄。价差是 \(\delta\) 的函数,在 \(\delta=\tfrac12\)(最不确定)时最大;交易越多,信念越接近 0 或 1,价差越窄。知情者比例 \(\mu\) 越大,初始价差越宽,但学习也越快。
  4. 知情者的盈利 = 不知情者的亏损。交易商只是中介。

推导拆解:性质 2 和性质 3 的细节。 性质 2(鞅):记 \(\mathcal F_t\) 为到第 \(t\) 笔为止的全部交易记录。第 \(t\) 笔成交价是在“已知此前历史 + 本笔方向”下的价值期望,即 \(p_t=E[V\mid\mathcal F_t]\)。对下一笔:\(E[p_{t+1}\mid\mathcal F_t]=E\big[E[V\mid\mathcal F_{t+1}]\mid\mathcal F_t\big]=E[V\mid\mathcal F_t]=p_t\),中间一步是塔性质(信息只增不减,用少的信息去预测“多的信息下的预测”,等于直接用少的信息预测)。所以价格变化的条件期望为零,相邻变化不相关,代码 1 中“中间价变化自相关”约为 0 验证了这一点。 性质 3(价差收窄):价差 \(=(V_H-V_L)(\delta^+-\delta^-)\)。由上面的赔率写法,\(\delta\) 越接近 0 或 1,乘以或除以同一个倍数造成的概率变化越小(赔率 99 乘以 1.5 是 148.5,对应概率只从 0.990 变到 0.993),\(\delta^+-\delta^-\) 越小。\(\delta=\tfrac12\) 时同样的赔率变化造成的概率变化最大,价差最宽。真实价值为 \(V_H\) 时,买单出现得更频繁(概率 \(\tfrac{1+\mu}{2}>\tfrac12\)),净买单数随交易笔数稳定增长,赔率按指数趋于无穷,\(\delta\to1\),价差趋于零。 一个读模型时容易混淆的地方:性质 1 说交易商“每笔都不亏”,是以交易商自己掌握的信息为条件的期望:对每一笔,与不知情者成交的期望盈利正好抵消与知情者成交的期望亏损。站在知道真实价值的旁观者角度,在某一条具体路径上交易商可能明显盈利或亏损,只是在所有他无法区分的路径上平均为零。

极端情形与市场失灵:当 \(\mu\to1\) 时,价差趋于 \(V_H-V_L\),ask 等于最高可能价值、bid 等于最低可能价值,不知情者没有任何理由交易,市场不复存在。这就是 14.9 节"市场失灵"的模型版本。

14.5 区分两个成分:Roll 模型与交易方向回归

原书指出,计量经济学家能估计两个成分,因为它们赋予价格不同的统计性质:交易成本成分使价格在 bid 与 ask 之间反弹,带来负自相关;逆向选择成分带来随机游走式的不可预测变化。最常见的方法是用每笔交易是买方还是卖方发起(交易方向,trade sign)去解释当前和未来的价格变化。原书的结论是:多数市场中,逆向选择成分占总价差的比例大于交易成本成分。 原书没有给出具体模型,下面两小节为补充内容。

14.5.1 补充:Roll 模型

Roll(1984)给出了一个只用成交价就能估计价差的方法。假设:

  • 有效价格 \(m_t\) 是随机游走,其变化与交易方向无关(即没有逆向选择,\(\lambda=0\));
  • 成交价 \(p_t=m_t+c\,q_t\),\(q_t\) 独立同分布,以各 \(\tfrac12\) 的概率取 \(\pm1\);半价差 \(c=s/2\)。

于是

\[\Delta p_t=\Delta m_t+c\,(q_t-q_{t-1}).\]

由于 \(\Delta m_t\) 与所有 \(q\) 独立、\(\mathrm{Var}(q)=1\),

\[\mathrm{Cov}(\Delta p_t,\Delta p_{t-1})=c^2\,\mathrm{Cov}(q_t-q_{t-1},\,q_{t-1}-q_{t-2})=-c^2=-\frac{s^2}{4},\]

所以

\[\boxed{\,s=2\sqrt{-\mathrm{Cov}(\Delta p_t,\Delta p_{t-1})}\,} \tag{14.4}\]

推导拆解:中间那一步只用了协方差的双线性和独立性,逐项写出来。 第一步,写出两期价格变化:\(\Delta p_t=\Delta m_t+c\,q_t-c\,q_{t-1}\),\(\Delta p_{t-1}=\Delta m_{t-1}+c\,q_{t-1}-c\,q_{t-2}\)。 第二步,按双线性把 \(\mathrm{Cov}(\Delta p_t,\Delta p_{t-1})\) 展开成 \(3\times3=9\) 项。凡是含 \(\Delta m\) 的项都为零:\(\Delta m_t\) 与 \(\Delta m_{t-1}\) 不相关(随机游走的增量独立),\(\Delta m\) 与所有 \(q\) 独立(假设没有逆向选择)。 第三步,剩下 4 项:\(c^2[\mathrm{Cov}(q_t,q_{t-1})-\mathrm{Cov}(q_t,q_{t-2})-\mathrm{Cov}(q_{t-1},q_{t-1})+\mathrm{Cov}(q_{t-1},q_{t-2})]\)。不同时刻的 \(q\) 独立,只有第三项不为零,它是 \(-\mathrm{Var}(q_{t-1})=-1\)(\(q\) 取 \(\pm1\),均值 0,方差 1)。 第四步,所以 \(\mathrm{Cov}=-c^2\),\(c=\sqrt{-\mathrm{Cov}}\),价差 \(s=2c\)。 直观上:\(q_{t-1}\) 同时出现在两期价格变化里,在前一期带正号(价格从中点跳到 ask),在后一期带负号(从 ask 跳回中点),这个“共享的一跳”造成负自协方差。用数字看:中点不动、半价差 0.05 时,一笔从 bid 到 ask 的变化 \(+0.10\) 后,下一笔变化只可能是 0(又一笔买)或 \(-0.10\)(一笔卖),平均 \(-0.05\),确实倾向于反转。

推导拆解:有逆向选择时的协方差 \(-c(c+\lambda)\)。由 (14.2),\(\Delta p_t=\Delta m_t+c(q_t-q_{t-1})=(\lambda+c)q_t-c\,q_{t-1}+\varepsilon_t\),同理 \(\Delta p_{t-1}=(\lambda+c)q_{t-1}-c\,q_{t-2}+\varepsilon_{t-1}\)。两式中唯一共享的随机变量是 \(q_{t-1}\),系数分别是 \(-c\) 和 \(\lambda+c\),所以 \(\mathrm{Cov}=-c(\lambda+c)\mathrm{Var}(q_{t-1})=-c(c+\lambda)\)。Roll 估计量 \(2\sqrt{c(c+\lambda)}\) 是 \(2c\) 与 \(2(c+\lambda)\) 的几何平均,必然夹在两者之间。代码 2 中 \(c=0.03\)、\(\lambda=0.02\),得 \(2\sqrt{0.0015}\approx0.0775\)。

它估计的到底是什么:若存在逆向选择,按 (14.2) 有 \(\Delta p_t=(\lambda+c)q_t-c\,q_{t-1}+\varepsilon_t\),此时

\[\mathrm{Cov}(\Delta p_t,\Delta p_{t-1})=-c(c+\lambda),\]

Roll 估计量变成 \(2\sqrt{c(c+\lambda)}\),介于暂时性价差 \(2c\) 与总有效价差 \(2(c+\lambda)\) 之间。也就是说,Roll 模型主要捕捉买卖反弹,系统性地低估存在逆向选择时的总价差。另一个实际问题是:样本自协方差为正时,公式无定义,这在日频数据中很常见。

14.5.2 补充:用交易方向回归分解价差

若能观察到交易方向 \(q_t\)(有逐笔数据时可用 Lee–Ready 等算法推断),可以直接对 (14.2) 做回归:

\[\Delta p_t=\beta_1 q_t+\beta_2 q_{t-1}+e_t,\qquad \beta_1=\lambda+c,\;\beta_2=-c .\]

于是 \(\hat c=-\hat\beta_2\),\(\hat\lambda=\hat\beta_1+\hat\beta_2\),逆向选择占半价差的比例为 \(\hat\lambda/(\hat\lambda+\hat c)\)。这是 Glosten–Harris(1988)、Huang–Stoll(1997)等一类模型的最简形式;实际研究中还会加入交易规模、订单流自相关等项。

推导拆解:回归系数为什么能读出两个成分,以及方向误判为什么造成衰减。 第一步,上一个讲解框已得到 \(\Delta p_t=(\lambda+c)q_t-c\,q_{t-1}+\varepsilon_t\)。把它与回归式逐项对照,\(\beta_1=\lambda+c\),\(\beta_2=-c\),误差项就是公共信息 \(\varepsilon_t\)。 第二步,OLS 能正确估计这两个系数,需要自变量与误差项无关:\(q_t\)、\(q_{t-1}\) 与 \(\varepsilon_t\) 独立,且 \(q_t\) 与 \(q_{t-1}\) 互不相关(这里假设交易方向独立同分布)。 第三步,解出 \(c=-\beta_2\),\(\lambda=\beta_1-c=\beta_1+\beta_2\)。 第四步(误判):若观察到的方向 \(\tilde q_t\) 以概率 \(f\) 与真实方向相反,则 \(\mathrm{Cov}(\tilde q_t,q_t)=(1-f)\cdot1+f\cdot(-1)=1-2f\),而 \(\mathrm{Var}(\tilde q_t)=1\)。用 \(\tilde q\) 回归时,每个系数都乘以 \(\mathrm{Cov}(\tilde q,q)/\mathrm{Var}(\tilde q)=1-2f\)。\(f=0.2\) 时乘以 0.6,正是代码 2 最后一行的结果。由于两个系数按同一比例缩小,\(\lambda/(\lambda+c)\) 不受影响。这与 CFA 二级回归里“自变量有测量误差导致系数向零偏”是同一种现象。

金融直觉:用这个回归可以给自己的执行做“体检”。拿自己的成交记录(方向确定、无需推断),对成交后的中间价变化回归:若永久成分 \(\lambda\) 占比很高,说明你的订单在市场眼里“像知情者”,冲击会留在价格里,大单要更耐心地拆;若暂时成分 \(c\) 占比高,说明你主要在支付流动性费用,价格会反弹,挂限价单等待更划算。

14.6 本书最重要的一课:不知情者为什么总会输

逆向选择解释了为什么不知情者无论用什么订单都会输给知情者。

用限价单:

  • 如果 bid 定得过高或 offer 定得过低,订单很快成交,因为知情者急于和它交易,事后不知情者后悔成交(像交易商一样直接遭受逆向选择);
  • 如果和知情者站在同一侧竞争,限价单常常不成交;知情者通常判断正确,价格会远离限价单,不知情者后悔没成交。

用市价单:保证成交,但交易商已经把价差加宽了,以便从不知情者身上收回输给知情者的部分。逆向选择价差实际上是交易商向市价单交易者收取的、承担逆向选择风险的费用。

不知情者输,并不是因为系统性地站错了边:即使抛硬币决定方向,也有一半时间是对的,但成交成本使他们平均亏损。

表 14-1 不知情者无论如何交易都倾向于输给知情者

不知情者的订单 知情者 订单结果 随后价格 对不知情者的后果
限价单 想在另一侧交易 知情者迅速成交该订单 朝不利于新头寸的方向变动 后悔成交
限价单 想在同一侧交易 与知情者竞争而不成交 远离限价单 后悔未成交
市价单 无关 以被知情交易加宽的价差成交 买卖反弹使价格朝不利方向变动 损失半个价差

结论:不知情者唯一避免输钱的办法是不交易。 对量化交易者,这条结论的含义很具体:一个没有 alpha 的再平衡交易,期望收益就是负的半价差加冲击成本;换手本身就是成本,任何策略都要先证明其信号的期望收益能覆盖它。

14.7 指令驱动市场中的均衡价差

在连续指令驱动拍卖市场里,没有专门的交易商,价差由交易者自己选择限价单还是市价单决定。分析基础是 Cohen、Maier、Schwartz 和 Whitcomb(1981)关于均衡价差的论文。回顾第 04a 章:市价单立即成交但支付价差;限价单若成交则价格好,但市场离开时可能不成交,届时若仍想交易,只能改用更激进的订单,结果可能比一开始就用市价单更差。

14.7.1 理想情形:均衡价差为零

先做一组极不现实的假设:所有交易者本质相同(交易规模相同,无人更知情,无人风险厌恶,不看重时间,不急于交易);人人瞬间得知价值变化但无人能预测;可瞬间、零成本地下单和撤单;佣金与订单类型无关。唯一的差别是有人想买、有人想卖。

两个推论:

  1. 选择订单策略时只关心期望交易成本;
  2. 每笔成交价都等于当前价值:限价单交易者知道价值并可免费撤改单,会持续调整限价;市价单交易者无法以偏离价值的价格成交。

于是市价单的期望成本恰为半个价差(择时无利可图)。均衡要求两种策略同样有吸引力,否则人人都选更好的那种:价差太窄,人人用市价单,没人挂单;太宽,人人挂单,没人成交。

结论:此时均衡价差为零。 推理是:交易是零和的,限价单交易者的期望成本恰等于市价单交易者的期望利润;均衡要求两种策略的期望成本相等,所以都为零;市价单的期望成本是半个价差,所以价差为零。

推导拆解:把这个论证写成两行代数。记半价差为 \(h\)。市价单交易者相对价值多付 \(h\),成本为 \(+h\);与之成交的限价单交易者相对价值多赚 \(h\),成本为 \(-h\)(零和)。均衡要求两种策略成本相等:\(h=-h\),所以 \(h=0\)。 加入佣金差后同样做:市价单成本 \(h+C_M\),限价单成本 \(-h+C_L\)(\(C_M\)、\(C_L\) 分别为市价单和限价单佣金),令两者相等得 \(2h=C_L-C_M\),价差 \(S^*=2h=C_L-C_M\),即下面 14.7.2 的第一个公式。 这种“让两个可选策略的期望成本相等”的论证,与 CFA 里用“无差异”求解远期价格、利率平价的思路相同:如果一边更便宜,所有人都会涌向那一边,直到价格调整到两边无差异。

原书在这里插了一个"经济学家与开罐器"的笑话:荒岛上三个饥饿的人要开罐头,化学家建议加热,工程师建议用石头砸,经济学家说"假设我们有一个开罐器……"。不现实的假设是为了构造一个能完全理解的基准,然后逐一替换成现实的假设,看结果如何变化。下面就这样做。

14.7.2 逐一放松假设

差别佣金:若限价单佣金高于市价单,没有补偿就没人挂单。均衡时价差必须扩大,使两类交易者平摊佣金差:市价单成本为半个价差,须等于佣金差的一半,所以

\[S^*=\text{限价单佣金}-\text{市价单佣金}.\]

原书的边栏"对报价价差的操纵"由此推出:只对市价单收佣金的市场,报价价差会恰好收窄"佣金差"那么多,但这不改变交易者的实际成本。只有能控制全体买卖双方佣金的市场(经营自己市场的经纪人、能规定佣金的交易所)才能这样做。当时 Cantor Fitzgerald 的子公司 eSpeed 在政府债券市场只对市价单收佣金;Archipelago 等 ECN 也对两类订单收不同费用。这就是今天 maker-taker 收费模式的雏形。

现状补充:maker-taker(对挂单方返佣、对吃单方收费)已是美国股票交易所的主流收费模式。Reg NMS 规则 610 长期把访问费上限定为每股 0.3 美分;2024 年 SEC 修订 Reg NMS,下调了这一上限,并对部分报价价差很窄的股票引入半美分的最小报价单位。按本节的逻辑,比较不同交易所的报价价差时,应使用含费后的价差。

昂贵的限价单管理:现实中撤单重下有成本(撤单费、注意力的机会成本),限价单交易者只在价值显著偏离限价时才调整。更重要的是,不持续更新的限价单向市价单交易者赠送了有价值的择时期权(timing option):想买的市价单交易者可以等着看,若价值涨过某张卖出限价单的限价,就按限价买入赚差价;若价值下跌,就等卖方降价。择时期权让限价单交易者遭受一种逆向选择:成交时后悔没改价,没成交时后悔没成交。从这个意义上,市价单交易者"更知情",因为他们掌握的信息比限价单交易者设定限价时更新。

择时期权在两种情况下最有价值:市价单交易者反应快于限价单交易者;竞争行使同一期权的市价单交易者少。均衡价差为

\[S^*=E[\text{限价单管理成本}]+2\times(\text{择时期权价值}). \tag{14.5}\]

因为价差是用两笔市价单完成一次往返的总成本,均衡必须补偿限价单交易者赠出的择时期权,并让两类交易者平摊管理成本。现实中限价单交易者无法在最优时刻瞬间改价:注意力成本、下单路由延迟都使择时期权更值钱。所以撤单越慢,均衡价差越宽;品种越波动,择时期权越值钱,均衡价差也越宽。

金融直觉:(14.5) 中的“2 倍”来自期权的两条腿。一张挂在 ask 的卖出限价单,等于向全市场免费卖出一张执行价为 ask 的看涨期权(价值涨过 ask 时,谁都可以按 ask 买走);挂在 bid 的买入限价单,等于免费卖出一张执行价为 bid 的看跌期权。价差是一次完整往返的成本,覆盖买卖两边,所以要补偿两张期权。期权价值随波动率和期限上升:期限在这里就是“限价单交易者发现价值变化、撤单改价所需的时间”。撤单延迟从 1 秒降到 1 毫秒,相当于把期权期限缩短了 1000 倍,期权价值大约按 \(\sqrt{T}\) 缩小(布朗运动下价值偏离的幅度与 \(\sqrt{T}\) 成正比),这就是做市商愿意为低延迟花大钱的原因。

例 14.1(简单择时期权):合约价值 20 美元,接下来 5 分钟价值可能不变、涨 12 美分或跌 12 美分,各 \(\tfrac13\)。

  • Lisbet 挂了限价 20 的卖单;
  • Mark 是对价格不敏感的市价单买方,5 分钟内到达的概率为 \(\tfrac12\),与价值变化无关;
  • Tim 伺机行使择时期权:若价值上涨而 Mark 未先到,就从 Lisbet 处买入;
  • Dieter 是交易商,总愿以低于当前价值 6 美分的价格买入;5 分钟后若 Lisbet 未成交,她就卖给 Dieter。

无 Tim:\(\tfrac12\) 概率卖给 Mark 得 20;否则卖给 Dieter,价值跌、不变、涨时分别得 19.82、19.94、20.06,平均 19.94。期望卖价 \((20+19.94)/2=19.97\)。

有 Tim:Mark 不来时,价值跌得 19.82(Dieter),不变得 19.94(Dieter),涨则被 Tim 以 20.00 买走,平均 19.92。期望卖价 \((20+19.92)/2=19.96\)。

Tim 的期望利润是 \(\tfrac13\times\tfrac12\times12=2\) 美分。其中 1 美分来自 Lisbet:她在 \(\tfrac16\) 的时间里(价值上涨且 Mark 未到)以 20 而不是 20.06 成交,\(\tfrac16\times6=1\) 美分。(原书此处误写为"Mark arrives"。)另 1 美分来自 Dieter:无 Tim 时 Dieter 以 \(\tfrac12\) 的概率成交、每次赚 6 美分,期望 3 美分;有 Tim 时只在 Mark 不来且价值跌或不变时成交(概率 \(\tfrac13\)),期望 2 美分。也就是说,Tim 一半是在对 Lisbet 行使择时期权,一半是在 Dieter 的报价前面做报价匹配。

时间价值与风险厌恶:交易者看重时间时,限价单策略更费时、更贵,均衡价差必须扩大。所以价差就是即时性的价格,交易员说"市价单交易者买时间,限价单交易者卖时间"。风险方面,限价单交易者面临不成交的执行风险,市价单交易者面临成交价意外的价格风险。对小交易者限价单风险更大,对大交易者市价单风险可能更大。内部价差处的挂单量往往很小,可以合理推断内部价差主要由小交易者设定,所以限价单执行风险对价差的影响可能更强。均衡时,最风险厌恶、最看重时间的人用市价单,最能承受风险、监控成本最低的人用限价单。

原书还介绍了两类降低限价单成本的工具:指数化(浮动)限价单(indexed / floating limit orders,按指定指数自动调整限价,今天的盯住订单 pegged orders 即此类)和自动限价单管理系统(如 ITG 的 Quantex,可编程实现"限价单在指定时间后未成交即改为市价单"等规则)。它们降低了挂单成本,从而降低均衡价差。

价值估计的共同不确定性:只要所有人总是同样知情,结论不变。唯一的例外涉及波动率:条件期望的方差不超过原变量的方差,\(\mathrm{Var}(E[V\mid\mathcal F])\le\mathrm{Var}(V)\),所以价值估计的波动率低于价值本身的波动率,模型推出"交易者对价值了解越少,价差越小"。这与现实(价值不确定时价差通常更大)相反,差别在于现实中信息是不对称分布的。

白话解释:\(\mathrm{Var}(E[V\mid\mathcal F])\le\mathrm{Var}(V)\) 来自“总方差分解”:\(\mathrm{Var}(V)=\mathrm{Var}(E[V\mid\mathcal F])+E[\mathrm{Var}(V\mid\mathcal F)]\),即总波动 = 可解释的波动 + 剩余的不确定性,后一项非负。和回归里“总平方和 = 回归平方和 + 残差平方和”是一回事。信息越少,你的估计越“平滑”,越少随新信息跳动;而择时期权的价值取决于估计的跳动幅度,所以在“人人同样无知”的世界里,择时期权反而更不值钱。现实中价差随不确定性扩大,说明起作用的是信息不对称,而不是不确定性本身。

信息不对称:知情者之间互相竞争,都必须快速交易,所以知情者倾向于用市价单。这使限价单交易者遭受逆向选择:站错边的限价单迅速成交,站对边的不成交。均衡价差必须为此额外扩大,这部分就是逆向选择价差。对多数品种,信息不对称程度与交易者的估值能力成反比:多数人估值很差时,能估好的人优势巨大。所以多数人难以估值的品种,价差更宽。

表 14-2 连续指令驱动市场中均衡价差的决定因素

因素 对价差的影响 重要性
交易者间信息不对称程度 扩大 很大
撤销限价单所需时间 扩大 高
波动率 扩大 高
限价单管理成本 扩大 中
交易者的时间价值 扩大 中
限价单与市价单佣金之差 一比一 取决于差额
交易者风险厌恶程度 扩大 低

小结:所有交易者相同时,均衡价差使他们在两种策略间无差异;交易者不同时,均衡价差使流动性供给等于需求。平均而言,限价单策略的成交价略优于市价单策略,因为市价单交易者必须补偿限价单交易者额外付出的管理时间、价格风险和择时期权。

14.8 公共交易者与交易商竞争

两者的竞争并不对等:

  • 公共限价单交易者没有交易商的经营成本,可以报更激进的价格。决心成交的公共交易者可能用激进定价的限价单代替市价单,由此形成的价差可能小到交易商无法覆盖成本,把交易商挤出市场。
  • 但交易商看到的订单流更多,改价通常也更快。在价差极窄的市场中,交易商可以靠分析订单流发现的投机机会生存,尤其是报价匹配、订单预期、择时等公共交易者无法识别或无法足够快实施的策略(第 11、24 章)。交易商越多地使用这些策略,限价单对公共交易者越没有吸引力,公共交易者更多改用市价单,价差反而比交易商不利用订单流时更宽。

这段分析几乎就是今天高频做市商与普通挂单者关系的写照。

14.9 横截面价差预测

14.9.1 三个主要决定因素

价差的三个主要决定因素是:交易者间的信息不对称、波动率、功利性交易兴趣(utilitarian trading interest,第 08 章:功利型交易者因交易带来的利润以外的好处而交易)。知道这三者,就能预测价差。难点在于只有波动率容易测量,另外两个都不能直接观测,必须从可观察的特征推断,这些特征称为次要决定因素。原书幽默地说,实证经济学就是经济学家努力让大家相信自己找到了好的代理变量(proxy)的竞赛。

比较不同证券时要用相对价差 = 价差 / 价格:1 美元股票 10 美分价差(10%)比 100 美元股票 1 美元价差(1%)贵得多。

  • 信息不对称:知情者掌握重大信息时价差最宽。
  • 波动率:波动增加限价单的期权价值;使可分散存货风险对风险厌恶的交易商更可怕,需要风险溢价;还是信息不对称的良好代理,因为基本面变化快的品种难以估值。所以波动品种的逆向选择成分一般较大。
  • 功利性交易兴趣:没有功利型交易者就没有市场,纯逐利的交易者彼此交易不可能都赚钱。功利性兴趣通过两条途径收窄价差:兴趣强则市场活跃;功利型交易者不知情,稀释了订单流中的信息。市场活跃使价差变窄的原因有四:固定成本摊到更多成交量上;存货失衡能迅速转移,存货风险小;限价单成交概率高、赠出的择时期权价值低(很多人竞争行使),公共交易者更愿意挂单;不活跃市场容纳不了很多交易商,交易商可能有定价权。

三者并不独立:信息不对称高 → 价差宽 → 劝退不知情投资者 → 成交量下降 → 价差更宽。

14.9.2 次要决定因素(代理变量)

表 14-3 横截面相对价差的代理变量

主要因素 代理变量 预测(其他条件相同)
信息不对称 信息披露规则严格 价差更窄
政府发布商品市场供求报告 价差更窄
分析师覆盖多、媒体报道多 价差更窄
代表整体经济风险的合约(石油、黄金、利率、外汇、股指期货) 价差很窄
分散化组合(股指期货 vs 个股)、多元化经营公司 价差更窄
成熟行业(价值股)vs 新兴行业(成长股);老公司 vs 年轻公司 前者更窄
内幕交易规则执行有效 价差更窄
财报公告前后、预期出现重大信息时 价差扩大
波动率 财务杠杆、经营杠杆、增长不确定(股票);易腐、库存低、依赖天气(商品);政治与通胀不确定(货币);通胀、利率、信用风险(债券) 价差更宽
功利性交易兴趣 成交量、成交笔数 越活跃越窄
公司规模 越大越窄
债券发行规模;新券(on-the-run)vs 老券(off-the-run) 大额新券最窄,随老化变宽
合约能否复制众多对冲者的风险 能则更窄
波动率(次级效应:吸引赌徒和对冲者) 与主要效应方向相反

几个边栏值得一提:

  • 德国 GAAP 与美国 GAAP:德国公司历来使用的会计准则允许大量隐藏准备金平滑利润,分析师难以准确估值,所以其股票价差应更宽。NYSE 当时要求上市公司使用美国 GAAP 或基本相似的准则。
  • 为什么美联储主席的讲话很少有意思:宏观合约价差很窄,因为很少有人对利率有可靠的私人信息;唯一可能准确预测利率的是美联储主席和 FOMC 成员,他们不能利用这些信息交易,也不想透露任何能让人预测利率走向的东西。
  • 橙汁期货:寒潮南下佛罗里达时,气象学家和当地农民有信息优势,期货价差扩大。

现状补充:欧盟自 2005 年起要求上市公司合并报表采用国际财务报告准则(IFRS);SEC 于 2007 年起允许外国私人发行人直接用 IFRS 报告而无需调节到美国 GAAP。原书的会计准则对比如今已基本成为历史,但"信息披露质量影响价差"的结论仍然成立。

原书提醒,次要因素之间常常相关,分类也有些随意(如公司规模与投资者兴趣正相关、与波动率负相关)。例如,新兴行业因信息不对称应当价差更宽,但新兴行业常有大量投资兴趣,带来大成交量和更窄的价差。因素相关时,需要用多元回归来分离相互冲突的效应,下面的量化实战会演示。

14.9.3 流动性与资本结构:市场失灵

信息不对称特别严重或功利性兴趣极小时,价差可能宽到没人交易:交易商预期输给知情者的损失(以及为避免损失而研究价值的成本)大于交易收入,就不会做市。经济学家称之为市场失灵(market failure),意思不是市场出了故障,而是市场根本不存在。这正是序贯 Glosten–Milgrom 模型中 \(\mu\to1\) 的情形。

市场失灵解释了小企业为什么很少发行公开交易的股票:投资者不会买无法交易的股票。小企业只能向银行(私人债务)和风险投资(私募股权)融资,这些机构花大量时间做尽职调查,并对管理层施加限制,最重要的是监督权,而这只有在保密、互信的私人关系中才可行。原书的例子是 Tommy 的汉堡店:单店小生意想扩张,投行朋友告诉他几乎没人会买他的股票,因为交易商害怕与更知情者交易而不会做市;最后他从为他提供结算服务的银行融到了钱,银行可以持续监控他的支票账户。


量化实战

本章是量化交易中交易成本建模的理论基础,用途至少有五个:

  1. 回测中的成本假设:至少用"相对半价差 + 冲击"计算成本;高频回测中要用中间价而不是成交价计算收益,否则买卖反弹会制造虚假的负自相关和虚假的反转 alpha。
  2. 交易成本模型:横截面价差预测(规模、成交量、波动率、分析师覆盖、财报窗口)可以直接作为成本模型的解释变量,用于组合优化中的成本惩罚项和策略容量估计。财报前后价差扩大,意味着事件驱动策略在这些窗口的执行成本更高。
  3. 限价 vs 市价的决策:均衡价差模型给出"何时挂单、何时吃单"的框架。挂单的期望收益必须覆盖择时期权损失(被更快的人"挑走")和不成交风险。撤单延迟和波动率决定挂单的期望 markout,这正是高频交易追求低延迟的经济原因;Tim 的例子就是"陈旧报价狙击"(stale quote sniping)。
  4. 做市报价:(14.1)–(14.3) 就是做市报价的骨架:中心 = 价值估计,半价差 = 半个交易成本成分 + 半个逆向选择成分,成交后按 \(\lambda q_t\) 移动中心。Glosten–Milgrom 给出了 \(\lambda\) 的贝叶斯基础。
  5. 微观结构计量:Roll 估计、交易方向回归、Hasbrouck 向量自回归、PIN/VPIN 等指标都建立在本章暂时性/永久性成分的区分之上。

代码 1:Glosten–Milgrom,从单期到序贯

import numpy as np
import pandas as pd

# ---------- (1) Harris 附录的单期模型:两种视角给出同一个价差 2PE ----------
V, E, P = 100.0, 2.0, 0.25
ask_info = (1 - P) * V + P * (V + E)          # 信息视角:E[V | 买]
bid_info = (1 - P) * V + P * (V - E)          # 信息视角:E[V | 卖]
def dealer_profit(A, B):                      # 会计视角:交易商期望利润
    sell_to_buyer = (1 - P) * (A - V) + P * (A - (V + E))
    buy_from_seller = (1 - P) * (V - B) + P * ((V - E) - B)
    return 0.5 * sell_to_buyer + 0.5 * buy_from_seller
print(f"信息视角价差 = {ask_info - bid_info:.3f};2PE = {2*P*E:.3f};"
      f"以 V±PE 报价时交易商期望利润 = {dealer_profit(V + P*E, V - P*E):.1e}")

# ---------- (2) 序贯 Glosten–Milgrom 模型 ----------
def gm_quotes(delta, mu, VL, VH):
    """delta = P(V=VH)。知情者比例 mu,不知情者买卖各半。
    返回 bid, ask 以及成交后的后验 P(VH|买)、P(VH|卖)。"""
    pb_H, pb_L = mu + (1 - mu) / 2, (1 - mu) / 2          # P(买|VH), P(买|VL)
    pH_buy = delta * pb_H / (delta * pb_H + (1 - delta) * pb_L)
    pH_sell = delta * (1 - pb_H) / (delta * (1 - pb_H) + (1 - delta) * (1 - pb_L))
    return VL + (VH - VL) * pH_sell, VL + (VH - VL) * pH_buy, pH_buy, pH_sell

def simulate_gm(mu, VL=99.0, VH=101.0, n_trades=60, n_paths=20000, seed=14):
    rng = np.random.default_rng(seed)
    spreads = np.zeros((n_paths, n_trades))
    mids = np.zeros((n_paths, n_trades + 1))
    gain = {"知情者": [], "不知情者": []}
    for i in range(n_paths):
        Vtrue = VH if rng.random() < 0.5 else VL
        delta = 0.5
        mids[i, 0] = VL + (VH - VL) * delta
        for t in range(n_trades):
            bid, ask, pHb, pHs = gm_quotes(delta, mu, VL, VH)
            spreads[i, t] = ask - bid
            if rng.random() < mu:
                who, buy = "知情者", Vtrue == VH
            else:
                who, buy = "不知情者", rng.random() < 0.5
            price = ask if buy else bid
            gain[who].append((Vtrue - price) if buy else (price - Vtrue))
            delta = pHb if buy else pHs                         # 贝叶斯更新
            mids[i, t + 1] = VL + (VH - VL) * delta
    gi, gu = np.array(gain["知情者"]), np.array(gain["不知情者"])
    dealer = -(gi.sum() + gu.sum()) / (n_paths * n_trades)
    d = np.diff(mids, axis=1)
    rho = np.corrcoef(d[:, 1:].ravel(), d[:, :-1].ravel())[0, 1]
    sp = spreads.mean(axis=0)
    return dict(mu=mu, 价差_第1笔=sp[0], 价差_第10笔=sp[9], 价差_第40笔=sp[39],
                交易商每笔=dealer, 知情者每笔=gi.mean(), 不知情者每笔=gu.mean(),
                中间价变化自相关=rho)

pd.set_option("display.width", 200)
print(pd.DataFrame([simulate_gm(mu) for mu in [0.1, 0.3, 0.5]]).round(4).to_string(index=False))

输出:

信息视角价差 = 1.000;2PE = 1.000;以 V±PE 报价时交易商期望利润 = 0.0e+00
 mu  价差_第1笔  价差_第10笔  价差_第40笔   交易商每笔  知情者每笔  不知情者每笔  中间价变化自相关
0.1     0.2   0.1834   0.1422  0.0006 0.7024 -0.0786    0.0005
0.3     0.6   0.3044   0.0511 -0.0002 0.1737 -0.0743   -0.0014
0.5     1.0   0.1738   0.0014 -0.0000 0.0470 -0.0469   -0.0021

解读:

  1. 第一行验证了原书附录:\(P=0.25\)、\(E=2\) 时两种视角都给出价差 \(2PE=1\),以 \(V\pm PE\) 报价时交易商期望利润恰为零。
  2. 首笔价差恰为 \(\mu(V_H-V_L)\),与 \(2PE\) 对应。
  3. 价差随交易收窄,知情者越多收窄越快:\(\mu=0.5\) 时第 40 笔价差几乎为零,因为交易商已基本确定了真实价值。
  4. 交易商每笔利润约为零(模拟误差内),知情者赚的就是不知情者亏的:以 \(\mu=0.1\) 为例,\(0.1\times0.7024\approx0.9\times0.0786\approx0.07\)。
  5. 中间价变化自相关约为零:价格是鞅,逆向选择造成的价格变化是永久的。
  6. 一个容易忽略的细节:\(\mu\) 越大,不知情者的每笔平均亏损在这 60 笔里反而更小。原因是知情者多时交易商学得快,价格很快接近真实价值,后面的交易价差很窄。不知情者最吃亏的,是信息刚出现、价格还远未反映信息的那段时间。

代码 2:Roll 模型与价差分解回归

按 (14.2) 模拟逐笔数据:暂时性半价差 \(c=0.03\),永久冲击 \(\lambda=0.02\)。

import numpy as np
import statsmodels.api as sm

rng = np.random.default_rng(140)
N = 100_000
c, lam, sig = 0.03, 0.02, 0.02     # 暂时性半价差、永久冲击(逆向选择)、公共信息噪声
q = rng.choice([-1, 1], N)          # 交易方向:买 +1,卖 -1
m = 50 + np.cumsum(lam * q + rng.normal(0, sig, N))   # 有效价格(成交后的中间价)
p = m + c * q                                          # 成交价
dp = np.diff(p)

def roll(dp):
    cov = np.cov(dp[1:], dp[:-1])[0, 1]
    return 2 * np.sqrt(-cov) if cov < 0 else np.nan

print(f"真实有效价差 2(c+λ) = {2*(c+lam):.4f};暂时性部分 2c = {2*c:.4f}")
print(f"理论 Roll 值 2√(c(c+λ)) = {2*np.sqrt(c*(c+lam)):.4f};样本 Roll 估计 = {roll(dp):.4f}")

# 纯买卖反弹情形(λ=0):Roll 估计应恢复 2c
m0 = 50 + np.cumsum(rng.normal(0, sig, N))
print(f"λ=0 时样本 Roll 估计 = {roll(np.diff(m0 + c*q)):.4f}(真值 {2*c:.4f})")

# 用交易方向回归分解价差:Δp_t = (λ+c) q_t − c q_{t−1} + e_t
X = np.column_stack([q[1:], q[:-1]])
res = sm.OLS(dp, X).fit()
b1, b2 = res.params
c_hat, lam_hat = -b2, b1 + b2
print(f"\n回归系数 b1={b1:.4f} (理论 {lam+c:.3f}), b2={b2:.4f} (理论 {-c:.3f})")
print(f"估计 c = {c_hat:.4f},λ = {lam_hat:.4f};逆向选择占半价差比例 = {lam_hat/(lam_hat+c_hat):.2%}"
      f"(真值 {lam/(lam+c):.0%})")

# 交易方向误判 20% 时的影响
flip = rng.random(N) < 0.20
q_obs = np.where(flip, -q, q)
res2 = sm.OLS(dp, np.column_stack([q_obs[1:], q_obs[:-1]])).fit()
print(f"20% 方向误判时:估计 c = {-res2.params[1]:.4f},λ = {res2.params.sum():.4f}")

输出:

真实有效价差 2(c+λ) = 0.1000;暂时性部分 2c = 0.0600
理论 Roll 值 2√(c(c+λ)) = 0.0775;样本 Roll 估计 = 0.0769
λ=0 时样本 Roll 估计 = 0.0596(真值 0.0600)

回归系数 b1=0.0501 (理论 0.050), b2=-0.0300 (理论 -0.030)
估计 c = 0.0300,λ = 0.0200;逆向选择占半价差比例 = 40.02%(真值 40%)
20% 方向误判时:估计 c = 0.0178,λ = 0.0121

结论:没有逆向选择时 Roll 估计准确;有逆向选择时它落在 \(2c\) 与 \(2(c+\lambda)\) 之间,低估了总价差。交易方向回归能准确分离两个成分。最后一行提醒:交易方向推断有误差时,两个系数都会按 \(1-2\times\)误判率(这里是 0.6)被衰减,各成分的绝对值被低估,但两者的比例不受影响。实际研究中,Lee–Ready 算法的误判率不可忽视,这一点要心中有数。

代码 3:择时期权例子的精确计算

from itertools import product
from fractions import Fraction as F

# 原书"简单择时期权例子":价值 20,5 分钟内变为 19.88 / 20 / 20.12,各 1/3;
# Mark(不看价格的市价买单)到达概率 1/2;Dieter 总以"当前价值 - 0.06"买入。
values = [F(1988, 100), F(20), F(2012, 100)]
def outcome(with_tim):
    lis = tim = die = F(0)
    for v, mark in product(values, [True, False]):
        pr = F(1, 3) * F(1, 2)
        if mark:                                   # Mark 先到,以 20 买走
            lis += pr * 20
        elif with_tim and v > 20:                  # Tim 行使择时期权
            lis += pr * 20; tim += pr * (v - 20)
        else:                                      # 5 分钟后卖给 Dieter
            lis += pr * (v - F(6, 100)); die += pr * F(6, 100)
    return lis, tim, die
for flag in [False, True]:
    lis, tim, die = outcome(flag)
    print(f"{'有' if flag else '无'} Tim:Lisbet 期望卖价 {float(lis):.4f},"
          f"Tim 期望利润 {float(tim)*100:.1f} 美分,Dieter 期望利润 {float(die)*100:.1f} 美分")

输出:

无 Tim:Lisbet 期望卖价 19.9700,Tim 期望利润 0.0 美分,Dieter 期望利润 3.0 美分
有 Tim:Lisbet 期望卖价 19.9600,Tim 期望利润 2.0 美分,Dieter 期望利润 2.0 美分

与例 14.1 完全一致:Tim 的 2 美分中,Lisbet 和 Dieter 各贡献 1 美分。

代码 4:横截面价差模型(交易成本模型的雏形)

下面用模拟的横截面数据演示如何把 14.9 节的预测变成成本模型。数据生成机制是假设的,系数符号按本章的横截面预测设定,目的是演示方法,而不是给出真实市场的系数。

import numpy as np
import pandas as pd
import statsmodels.formula.api as smf

rng = np.random.default_rng(1406)
n = 3000
log_mcap = rng.normal(9, 1.5, n)                              # 对数市值
log_vol = 0.8 * log_mcap + rng.normal(0, 0.8, n)              # 对数成交额,与规模相关
log_sigma = -3.5 - 0.15 * (log_mcap - 9) + rng.normal(0, 0.3, n)   # 对数日波动率,大公司更低
analysts = rng.poisson(np.exp(0.4 * (log_mcap - 7)))          # 分析师覆盖数
earn = rng.random(n) < 0.08                                   # 处于财报窗口
# 假设的"真实"相对价差生成机制(单位:基点),符号与第 14 章的横截面预测一致
log_rs = (2.0 - 0.25 * (log_mcap - 9) - 0.20 * (log_vol - 7.2) + 0.60 * (log_sigma + 3.5)
          - 0.10 * np.log1p(analysts) + 0.15 * earn + rng.normal(0, 0.25, n)) + np.log(10)
df = pd.DataFrame(dict(log_rs=log_rs, log_mcap=log_mcap, log_vol=log_vol,
                       log_sigma=log_sigma, log_analysts=np.log1p(analysts), earn=earn.astype(int)))

full = smf.ols("log_rs ~ log_mcap + log_vol + log_sigma + log_analysts + earn", df).fit()
only_size = smf.ols("log_rs ~ log_mcap", df).fit()
print(full.params.round(3).to_string())
print(f"R2 = {full.rsquared:.3f};只用规模时 log_mcap 系数 = {only_size.params['log_mcap']:.3f}"
      f"(吸收了成交量、波动率、覆盖度的效应)")

# 用模型预测两只股票的相对半价差(基点),作为回测/优化中的成本输入
new = pd.DataFrame(dict(log_mcap=[11.0, 7.0], log_vol=[9.0, 5.0], log_sigma=[-3.9, -3.0],
                        log_analysts=[np.log1p(20), np.log1p(1)], earn=[0, 1]))
half_bp = np.exp(full.predict(new)) / 2
print("预测相对半价差(bp):大盘股 %.1f,小盘股(财报窗口)%.1f" % tuple(half_bp))

输出:

Intercept       10.084
log_mcap        -0.251
log_vol         -0.197
log_sigma        0.599
log_analysts    -0.108
earn             0.171
R2 = 0.916;只用规模时 log_mcap 系数 = -0.531(吸收了成交量、波动率、覆盖度的效应)
预测相对半价差(bp):大盘股 9.0,小盘股(财报窗口)141.3

截距的数值只是生成机制中常数项的合并,没有经济含义。要点有两个:多元回归能恢复各因素的独立效应;只用规模一个变量时,其系数(−0.531)是真实规模效应(−0.25)的两倍多,因为它吸收了与规模相关的成交量、波动率和覆盖度效应。这正是原书提醒的"次要因素彼此相关"。在真实应用中,把预测的相对半价差加上冲击项,就得到组合优化中每只股票的单位换手成本。


本章小结

价差是即时性的价格,由交易成本成分(暂时性,产生买卖反弹和负自相关)和逆向选择成分(永久性,随机游走)组成,实证上多数市场以后者为主。Glosten–Milgrom 定理指出,逆向选择成分既是"以下一笔方向为条件的价值估计之差",也是"从不知情者收回输给知情者损失所需的价差",简单模型中二者都等于 \(2PE\);序贯模型中报价是贝叶斯条件期望,价差随学习收窄,成交价是鞅,知情者的盈利就是不知情者的亏损。Roll 模型用成交价负自协方差估计价差,但在存在逆向选择时会低估;交易方向回归可以分离两个成分。不知情者无论用限价单还是市价单都会输,换手本身就是成本。指令驱动市场的均衡价差在理想条件下为零,现实中由佣金差、限价单管理成本、择时期权、时间价值、风险厌恶和信息不对称共同决定,撤单速度、波动率和信息不对称最重要。横截面上,信息不对称、波动率、功利性交易兴趣通过众多代理变量决定相对价差,极端情况下市场不复存在。

公式 / 概念 内容
报价公式 \(\text{Ask}_0=V_0+\tfrac12S_{AS}+\tfrac12S_{TC}\),\(\text{Bid}_0=V_0-\tfrac12S_{AS}-\tfrac12S_{TC}\)
成交后报价移动 买方成交后 bid、ask 同时上移 \(\tfrac12S_{AS}\)
价格过程 \(m_t=m_{t-1}+\lambda q_t+\varepsilon_t\),\(p_t=m_t+c\,q_t\)
Glosten–Milgrom(单期) \(E[V\mid\text{买}]-E[V\mid\text{卖}]=2PE\) = 盈亏平衡价差
Glosten–Milgrom(序贯) \(\text{Ask}=E[V\mid\mathcal F,\text{买}]\);\(\delta^{+}=\frac{\delta(1+\mu)}{\delta(1+\mu)+(1-\delta)(1-\mu)}\);\(\delta=\tfrac12\) 时价差 \(\mu(V_H-V_L)\)
Roll 模型 \(s=2\sqrt{-\mathrm{Cov}(\Delta p_t,\Delta p_{t-1})}\);有逆向选择时估计 \(2\sqrt{c(c+\lambda)}\)
价差分解回归 \(\Delta p_t=(\lambda+c)q_t-c\,q_{t-1}+e_t\)
均衡价差(差别佣金) \(S^*=\) 限价单佣金 − 市价单佣金
均衡价差(管理成本) \(S^*=E[\text{管理成本}]+2\times\text{择时期权价值}\)
主要决定因素 信息不对称(扩大)、波动率(扩大)、功利性交易兴趣(收窄)
相对价差 价差 / 价格;横截面比较只能用它
最重要的一课 不知情者无论用何种订单都输给知情者,唯一办法是少交易

练习

基础题

  1. 某交易商估计 \(V_0=50\),交易成本成分 \(S_{TC}=0.04\),逆向选择成分 \(S_{AS}=0.06\)。写出 bid 和 ask;若下一笔是买单且交易商没学到别的,新的 bid 和 ask 是多少? 答案要点:49.95/50.05;买单后 \(V_1=50.03\),新报价 49.98/50.08。
  2. 在原书附录模型中,\(V=40\),\(E=1\),知情者比例 \(P=0.2\)。求逆向选择价差。若交易商把价差定为 0.3,他的期望利润是多少? 答案要点:\(2PE=0.4\);期望利润 \(\tfrac12(0.3)-0.2=-0.05\),每笔亏 5 美分。
  3. 证明 Roll 模型中 \(\mathrm{Cov}(\Delta p_t,\Delta p_{t-1})=-c^2\)。若某股票日收益(价格变化)自协方差为 \(-0.0004\),Roll 估计的价差是多少? 答案要点:\(2\sqrt{0.0004}=0.04\)。
  4. 用表 14-1 说明,一个随机决定买卖方向的交易者为什么平均亏损。
  5. 在例 14.1 中,如果 Mark 到达的概率是 \(\tfrac14\),Tim 的期望利润是多少? 答案要点:\(\tfrac13\times\tfrac34\times12=3\) 美分。

进阶题

  1. 在序贯 Glosten–Milgrom 模型中,证明 \(\delta=\tfrac12\) 时价差最大。求 \(\mu=0.2\)、\(V_H-V_L=1\) 时,连续两笔买单后的 ask。 提示:第一笔后 \(\delta^{+}=0.6\);第二笔报价时 \(\delta=0.6\),再算 \(\delta^{+}=\frac{0.6\times1.2}{0.6\times1.2+0.4\times0.8}=0.692\),ask \(=V_L+0.692\)。
  2. 推广附录模型:设下一笔为买方的概率为 \(\pi\ne\tfrac12\),知情买方对应价值 \(V+E_B\),知情卖方对应 \(V-E_S\)。求 ask、bid 和价差。 提示:推荐习题中的"附录推广"。注意此时 \(V\) 本身也要满足无条件期望一致性。
  3. 在 (14.2) 中加入订单流自相关(\(q_t\) 服从 \(P(q_t=q_{t-1})=\rho>\tfrac12\) 的马尔可夫链),Roll 估计和交易方向回归会出现什么偏差?如何修正? 提示:Huang–Stoll(1997)在回归中加入了对 \(q_t\) 的预期项,永久冲击只应作用于订单流中未预期的部分。
  4. 若交易商经济利润为零,公共交易者随机在最优买价和最优卖价挂限价单,能否获利? 提示:原书思考题 14。挂单者也承担逆向选择和择时期权损失,平均下来不会比交易商好。
  5. 大的最小报价单位给价差设了下限。若做市有超额利润而价差已经等于一个 tick,新进入者如何吸引订单流? 提示:原书思考题 7。报更大数量、订单流付费、价格改善等非价格竞争。

原书推荐习题:第 14 章思考题 2(知情交易风险在日内、季节和财报周期中的变化)、7(tick 约束下的非价格竞争)、10–13(限价单调价时机、择时期权价值的上界与波动率)、14(在最优价随机挂单能否获利)、17(同一公司股票与债券的相对价差比较);另建议把附录模型推广到买卖概率不等或信息幅度不对称的情形。思考题共 20 题。

原书对照

本章小节 原书章节 PDF 页码 原书页码(约)
14.1 价差是即时性的价格 第 14 章章首 p.310 p.297
14.2 交易商如何设定价差 14.1 Dealer Bid/Ask Spreads p.310–311 p.297–298
14.3 价差的两个成分 14.2 Spread Components(14.2.1–14.2.2,"总价差"边栏) p.311–315 p.298–302
14.4 Glosten–Milgrom 定理 14.2.3;附录 14.10 p.313–315,p.333–334 p.300–302,p.320–321
14.5 区分两个成分 14.2.4 Distinguishing Between the Two Components(Roll 模型与回归为补充) p.315–316 p.302–303
14.6 最重要的一课 14.3 Adverse Selection and Uninformed Traders p.316–317 p.303–304
14.7 指令驱动市场的均衡价差 14.4 Equilibrium Spreads in Continuous Order-driven Auction Markets p.316–323 p.303–310
14.8 公共交易者与交易商 14.5 Spreads When Public Traders Compete with Dealers p.323–324 p.310–311
14.9 横截面价差预测 14.6 Cross-sectional Spread Predictions(含 14.6.3) p.324–330 p.311–317
小结与练习 14.7–14.9 p.330–333 p.317–320

原书页码按"PDF 页码 − 13"估算。