Quant

执行策略与市场微结构概览

将目标权重转换为订单,分解价差、延迟、冲击、机会成本与容量限制。

执行策略与市场微结构

本章从量化研究者的视角,简要介绍交易执行(Execution)与市场微结构(Market Microstructure)的核心概念,重点放在:

  1. 如何在研究阶段构建一个“足够合理”的交易成本与执行模型;
  2. 如何把资产定价中的“无摩擦市场”假设修正为“有价差、有限流动性、价格冲击”的现实市场;
  3. 给出若干经典微结构模型的简化形式和文献线索。

详细的订单簿动力学建模和高频策略设计可以在后续独立笔记中展开,这里主要建立概念和基本数学框架,并给出一些标准模型的数学形式,方便与后续计量和策略章节衔接。

1. 交易成本的基本分解

在经典资产定价模型中,我们通常假设“无摩擦市场”:

  • 无手续费、无价差、无价格冲击;
  • 任意数量都可以按给定价格立即交易。

在真实市场中,交易成本可以大致分为:

  1. 显性成本(Explicit Costs)
    • 佣金、手续费、交易税费等;
  2. 隐性成本(Implicit Costs)
    • 买卖价差(bid-ask spread);
    • 价格冲击(price impact);
    • 机会成本(未成交或成交延迟造成的损失)。

从回测与策略评估的角度,我们希望构建一个函数,将预期成交价格表示为市场中某个“参考价格”(如中间价、前收盘价)加上成本调整:

Pexec=Pref+C(q,spread,depth,), P^{\text{exec}} = P^{\text{ref}} + C(q, \text{spread}, \text{depth}, \dots),

其中 qq 是订单数量或权重变化,C()C(\cdot) 是成本函数,通常满足:

  • C(0,)=0C(0, \cdot) = 0
  • CCq|q| 增大而增大;
  • 对大额订单,CC 常呈现非线性增长(体现流动性约束)。

在实务绩效归因中,有时还会将总交易成本拆分为:

  • 实现短fall(implementation shortfall):相对于某个“决策价格”(decision price,如信号生成时的中间价),实际成交价格的滑点和费用;
  • 延迟成本:由于执行延迟或分批执行,导致价格在执行期间发生不利变动;
  • 机会成本:由于未能全部成交,放弃了部分本可实现的收益。

这些分解在后续做执行归因和优化时非常有用。

2. 价差与 LOB 基础概念

2.1 价差(Bid-Ask Spread)

在任意时刻,最优买价与最优卖价分别记为 bbaa,则:

  • 中间价(mid price):m=a+b2m = \frac{a + b}{2}
  • 名义价差:s=abs = a - b

如果我们以买价买入,以卖价卖出,则单次往返交易的“显性损耗”约为 ss。因此,对一个买入订单,简单的成本近似为:

Cspreadbuys2; C_{\text{spread}}^{\text{buy}} \approx \frac{s}{2};

对应卖出订单:

Cspreadsells2. C_{\text{spread}}^{\text{sell}} \approx \frac{s}{2}.

在许多中低频回测中,研究者会简单地用“半个价差”加上固定佣金作为基础成本模型。

2.2 限价单、市场单与订单簿

  • 限价单(Limit Order)
    • 以指定价格或更有利价格成交,不保证一定成交;
  • 市场单(Market Order)
    • 以当前市场最优价格即时成交,不指定价格;
  • 订单簿(Limit Order Book, LOB)
    • 按价格和时间排序的未成交限价单集合。

在 LOB 框架下,若我们发送一个市场买单,成交价格可能会穿透多个卖档:

  • 假设卖一、卖二、卖三价格分别为 a1<a2<a3a_1 < a_2 < a_3,对应深度为 v1,v2,v3v_1, v_2, v_3
  • 若买入数量 qq 满足 qv1q \le v_1,则全部在价位 a1a_1 成交;
  • q>v1q > v_1,则剩余部分会在更高价位成交,形成平均成交价高于 a1a_1 的情况;
  • 这种“吃掉多档卖盘”的行为体现了价格冲击

在很多经验研究和微结构模型中,订单簿深度曲线(depth curve)会被建模为价格–数量关系,从而给出更细致的冲击函数形状。

3. 简化的价格冲击模型

在研究环境中,常用简化模型来刻画订单对价格的影响。一个经典思路来自 Kyle (1985):

  • 假设单期线性价格冲击:Pexec=Pref+λq+ϵ,P^{\text{exec}} = P^{\text{ref}} + \lambda q + \epsilon,
    其中:
    • qq 为净订单流(买入为正,卖出为负);
    • λ>0\lambda > 0 为流动性参数,越大表示价格对订单更敏感;
    • ϵ\epsilon 为其他噪声成分。

在多期设定中,可以区分临时冲击(temporary impact)永久冲击(permanent impact)

  • 临时冲击影响当前成交价格,但在后续价格中逐渐消失;
  • 永久冲击则改变“公平价格”的轨迹。

在更加工程化的 Almgren–Chriss 模型中,常写作:

  • 执行价格:Ptexec=St+ηvt+ξt,P^{\text{exec}}_t = S_t + \eta v_t + \xi_t,
    其中 StS_t 为未受冲击的基准价格,vtv_t 为在时刻 tt 的交易速度,η\eta 为临时冲击系数。
  • 价格演化:St+1=St+σΔWt+γvt,S_{t+1} = S_t + \sigma \Delta W_t + \gamma v_t,
    其中 γ\gamma 控制永久冲击,ΔWt\Delta W_t 是布朗运动增量(或其离散近似)。

在离散时间、有限交易窗口 t=0,,Tt=0,\dots,T 的设定下,一个典型目标是选择交易路径 {vt}\{v_t\},在完成总交易量约束

t=0Tvt=Q\sum_{t=0}^{T} v_t = Q

的前提下,最小化期望交易成本与成本方差的加权和:

min{vt} E[Cost({vt})]+ϕVar(Cost({vt})),\min_{\{v_t\}} \ \mathbb{E}[\text{Cost}(\{v_t\})] + \phi \, \operatorname{Var}(\text{Cost}(\{v_t\})),

这实质上是一个均值–方差型的最优控制问题。Almgren–Chriss 模型给出了在特定假设下的解析解,为实务执行算法设计提供了重要参考。

4. 执行策略:TWAP, VWAP 与 POV

在中低频量化策略中,常见的执行方式往往是将目标交易量在一段时间内“摊开”执行,以降低冲击和滑点。常见策略包括:

  1. TWAP(Time-Weighted Average Price)
    • 将总交易量 QQTT 个时间片中平均分配,每个时间片交易 Q/TQ/T
    • 不考虑市场成交量的时间分布,适合流动性较为均匀的品种。
  2. VWAP(Volume-Weighted Average Price)
    • 按照历史或实时的成交量曲线,将交易量分配到不同时间段;
    • 在市场活跃时多交易,在冷清时少交易;
    • 目标是使平均成交价格尽量接近市场的成交量加权平均价:
VWAP=tPtVttVt,\text{VWAP} = \frac{\sum_t P_t V_t}{\sum_t V_t},
 其中 $P_t$ 为成交价格,$V_t$ 为对应成交量。

3. POV(Participation of Volume)

  • 设定一个参与率 ρ\rho,在每个时间片中交易约 ρ\rho 倍的市场成交量;
  • 例如,ρ=10%\rho = 10\% 表示“占当期市场成交量的 10%”;
  • 对流动性变化有自适应性,但如果市场整体成交量极低,则可能导致执行不充分。

在更高频和更复杂的环境中,执行策略还会考虑盘口结构、短期预测信号、对冲需求等,但上述三类已经足以覆盖多数日内执行任务的基本思想。

5. 在回测中嵌入执行模型

对于一个已经在日度或分钟级别上设计好的交易策略,我们通常需要在回测中“嵌入”一个简化的执行模型,以评估更现实的绩效:

  1. 选择参考价格
    • 例如下一根 bar 的开盘价、收盘价,或高低价的某种组合;
  2. 加上基础成本
    • 佣金 + 税费 + 半个价差;
  3. 加上冲击成本
    • 根据交易量占当期成交量的比例,使用线性或非线性函数估算冲击:Cimpact(q)=k(qADV)α,C_{\text{impact}}(q) = k \left( \frac{|q|}{\text{ADV}} \right)^\alpha,
      其中 ADV\text{ADV} 为平均日成交量,k,αk, \alpha 为经验/估计参数;
  4. 更新组合净值
    • 将执行价格与成本综合考虑,得到更“保守”的实际收益率。

在研究导向的环境中,常见做法是:

  • 先用“理想成交价”(无成本)得到一个“上界”表现;
  • 再用“保守的成交模型”加入成本,得到更现实的表现区间;
  • 对策略的稳健性进行敏感性分析:当成本参数变化时,策略是否仍然有吸引力?

6. 微结构视角下的价格与信息

市场微结构研究关注的是“在存在不同类型交易者、信息不对称、订单驱动机制时,价格是如何形成和演化的”。经典文献包括 Kyle (1985)、Glosten & Milgrom (1985)、Hasbrouck (1991) 等。

在最简化的 Kyle 模型中:

  • 存在信息交易者(有关于资产真实价值的私人信息)、噪声交易者和做市商;
  • 做市商根据观察到的净订单流 qq 来更新对资产价值的估计,设置价格为:P=P0+λq,P = P_0 + \lambda q,
    其中 λ\lambda 反映了市场对订单流中“信息含量”的敏感度。

在更精细的 Glosten–Milgrom 模型中,价差可以被分解为:

  • 补偿不对称信息风险的部分;
  • 补偿订单处理与库存风险的部分。

对量化研究者而言,这一视角的启示包括:

  • 大额主动交易本身会泄露信息,引起不利价格变动;
  • 某些订单流模式可以被视为“信号”,与价格后续变化相关;
  • 在构建执行策略和高频信号时,需要区分“真正的信息订单”和“噪声订单”。

7. 小结与后续方向

本章仅在较高层次上将“执行”与“微结构”嵌入量化研究的视角中:

  • 从资产定价的无摩擦假设出发,引入价差、流动性和价格冲击;
  • 给出线性和非线性的成本与价格冲击模型,并通过 Almgren–Chriss 模型的形式展示“最优执行”问题的典型结构;
  • 介绍基础执行策略(TWAP/VWAP/POV)及其适用逻辑;
  • 讨论如何在回测中嵌入简化执行模型;
  • 简要触及微结构中的信息与价格形成问题,并指出若干经典文献线索。

后续如果需要深入,可以将以下方向拆分成更细的笔记:

  • 高频订单簿数据的统计性质与建模;
  • 执行算法的最优控制问题(Almgren–Chriss 等模型的细化推导);
  • 算法交易与高频市场微结构实证研究(Hasbrouck 等)。

8. 自学手册:把目标仓位变成可成交订单

8.1 学习目标

学完本章后,你应当能够:

  1. 区分显性成本、价差成本、冲击成本、延迟成本和机会成本;
  2. 解释为什么回测中的目标权重不等于真实成交持仓;
  3. 为中低频策略选择 TWAP、VWAP 或 POV 的基本执行逻辑;
  4. 在回测中加入半价差和成交量占比驱动的冲击成本;
  5. 评估执行质量相对于决策价格、VWAP 或到达价格的偏离。

8.2 生产场景

组合模块在月初给出一批目标交易:买入 80 只股票、卖出 75 只股票,总换手 35%。如果你直接假设“下一开盘价全部成交”,回测可能高估策略收益。执行团队实际关心:

  • 每个订单占该股票日均成交量的多少?
  • 是否会穿透盘口或触发明显价格冲击?
  • 用 TWAP、VWAP 还是 POV 更适合当前流动性?
  • 未成交部分如何处理?
  • 实际成交价与研究阶段假设的成交价差多少?

8.3 定义与工作流逻辑

概念定义在研究中的用法
决策价格生成订单时的参考价格计算 implementation shortfall
半价差买卖价差的一半中低频基础成本近似
冲击成本本方订单推动价格的不利变动随订单量/ADV 上升
参与率本方成交量占市场成交量比例控制执行速度和市场影响
机会成本未成交导致错过的收益或风险暴露评估限价或保守执行的代价

执行工作流可简化为:

  1. 从目标权重和当前持仓计算订单数量 qiq_i
  2. 按 ADV、价差、波动率和交易限制评估每个订单的难度;
  3. 为不同流动性层级选择执行方式;
  4. 分片发送订单并接收成交回报;
  5. 计算成交均价、未成交量、滑点和 shortfall;
  6. 将实际持仓回写给组合和监控系统。

8.4 迷你案例:成本敏感性检查

某股票当前价格 20,买卖价差 0.04,计划买入 100,000 股,ADV 为 2,000,000 股。一个简化成本估计可以是:

  • 半价差成本:0.04/2=0.020.04/2=0.02,占价格 10 bps;
  • 参与 ADV 比例:100,000/2,000,000=5%100,000/2,000,000=5\%
  • 若冲击函数为 Cimpact=30bps×(q/ADV)0.5C_{\text{impact}}=30\text{bps}\times(|q|/ADV)^{0.5},则冲击约为 30×0.056.730\times\sqrt{0.05}\approx 6.7 bps;
  • 加上佣金和税费后,单边成本可能接近 20 bps。

如果策略月度预期 alpha 只有 25 bps,而该股票需要频繁换手,那么它在成本后可能已经没有吸引力。执行模型的价值就在于提前暴露这种“纸面 alpha”。

Py

分解 implementation shortfall

Idle

静态结果:90% 成交,成交滑点 4,200、显性费用约 361、未成交机会成本 1,000,总 shortfall 为 27.8 bps。对于买单,成交价格高于决策价和未成交后价格上涨都构成损失。若收盘价下跌,机会成本可以为负;报告应保留分项,而不是只给一个平均滑点。

8.5 常见错误与研究陷阱

  • 把成交价设为信号价:信号生成和真实成交之间存在时间和价格差,尤其在开盘或高波动时段。
  • 所有资产使用同一成本:大盘高流动性股票和小盘冷门股票的价差、深度和冲击差异巨大。
  • 忽略部分成交:限价单和低参与率策略可能无法完成目标交易,实际持仓偏离回测。
  • 成本参数只用样本均值:危机时价差和冲击会非线性放大,平均成本会低估尾部风险。
  • 执行算法与信号期限不匹配:短期限信号若执行太慢,alpha 会在成交前衰减。

8.6 自测题与答案提示

  1. 为什么大额订单的成本通常不是线性增长? 答案提示:订单会消耗多档深度并泄露信息,冲击随参与率和市场状态非线性上升。
  2. VWAP 与 POV 的核心区别是什么? 答案提示:VWAP按预期成交量曲线分配交易量;POV按实时市场成交量保持固定参与率。
  3. implementation shortfall 衡量什么? 答案提示:衡量实际成交相对决策价格的损失,综合反映滑点、延迟和显性费用。
  4. 为什么执行质量需要进入策略复盘? 答案提示:实盘收益偏离回测可能来自信号失效,也可能来自成本模型低估或执行算法失效。

8.7 小结与过渡

执行层把组合目标暴露在真实市场摩擦之下。价差、冲击、成交延迟和未成交都会改变策略收益,因此执行模型必须从研究阶段就进入回测。下一章会进入策略上线后的监控与迭代:当订单真正进入市场后,如何判断策略、执行和系统仍然按设计运行。


参考文献(节选)

  • Kyle, A. S. (1985). "Continuous auctions and insider trading." Econometrica.
  • Glosten, L. R., & Milgrom, P. R. (1985). "Bid, ask and transaction prices in a specialist market with heterogeneously informed traders." Journal of Financial Economics.
  • Almgren, R., & Chriss, N. (2000). "Optimal execution of portfolio transactions." Journal of Risk.
  • Hasbrouck, J. (1991). Measuring the Information Content of Stock Trades. Journal of Finance.
Copyright © 2026