跳到正文

交易成本感知的组合优化

Gârleanu 与 Lasry-Maggi-Pedersen 的换手模型。如何把交易成本纳入 MVO。不要让你的再平衡摧毁回报的数学与实践。

第 4 篇 · 共 12 篇 约 12 分钟

Markowitz 的优化假设无摩擦交易。你可以以零成本、任意频率再平衡至最优权重。对机构投资者以 $10M 一笔交易标普 500 来说,这大致成立。对其他所有人来说,这极其错误。

一个月度再平衡的不允许做空股票组合年化换手率约为 50-150%。在 10 个基点的往返交易成本下,这意味着每年 50-150 个基点的拖累。对一个赚取 8% 的组合,这是 6-19% 的净收益减少。

一周再平衡的多空股票组合可以拥有 1000%+ 的年化换手率。在 50 个基点的往返成本下,拖累 500 个基点。一半的 alpha 没了。

交易成本感知优化把换手惩罚加入标准 MVO 目标。结果:组合不再那么努力地追求无约束最优,但产生了更好的扣除成本后收益。

本文涵盖 Gârleanu 与 Lasry-Maggi-Pedersen 的换手模型、Almgren-Chriss 市场冲击模型,以及实际实现。

成本结构

交易成本有三个组成部分。

佣金和费用:按股或按美元固定。对机构股票交易,在主要市场通常接近于零。对流动性较差的资产,可达 1-5 个基点。

买卖价差:跨越价差交易的成本。每边半个价差,往返一个完整价差。对美国大盘股,1-5 个基点。对小盘股,10-50 个基点。对更不流动的市场,远高于此。

市场冲击:通过交易推动价格变动的成本。大额交易推动价格更多。这是机构规模下的主导成本。粗略为 σ⋅Q/ADV\sigma \cdot \sqrt{Q/ADV},其中 QQ 是交易规模,ADVADV 是日均成交量,σ\sigma 是日波动率。

一笔规模 QQ 的往返交易的总交易成本:

TC(Q)=cfixed+cspread+cimpact⋅(QADV)α\text{TC}(Q) = c_{\text{fixed}} + c_{\text{spread}} + c_{\text{impact}} \cdot \left(\frac{Q}{ADV}\right)^\alpha

对机构股票交易,主导项是 cimpact⋅(Q/ADV)αc_{\text{impact}} \cdot (Q/ADV)^\alpha,其中 α\alpha 在 0.5-0.7 左右。这就是市场冲击的平方根定律。

平方根定律

大量实证文献(Barra、Bloomberg、ITG、Virtu 以及许多学术论文)发现市场冲击大致按交易规模相对 ADV 的平方根缩放:

Impact(Q)≈Y⋅σ⋅QADV\text{Impact}(Q) \approx Y \cdot \sigma \cdot \sqrt{\frac{Q}{ADV}}

其中 YY 是一个在 0.1-1.0 之间的常数(取决于资产和交易场所),σ\sigma 是日波动率,ADVADV 是日均成交量。

对 σ=2%\sigma = 2\% 日波动率、ADV = \10M$ 的资产,$$1M$的交易冲击为$0.5 \cdot 0.02 \cdot \sqrt{0.1} = 0.3%$。单向 30 个基点,往返 60 个基点。显著。

对同一资产的 \100K$交易:冲击为$0.5 \cdot 0.02 \cdot \sqrt{0.01} = 0.1%$。往返 20 个基点。不那么显著,但仍真实。

Gârleanu 的连续时间模型

Gârleanu (2009) 以及 Gârleanu & Pedersen (2013) 开发了带比例交易成本的连续时间组合优化模型。

设置:在每个瞬时,投资者可以通过交易再平衡组合。交易产生与交易规模成正比的成本:

TC(t)=c⋅∥w(t)−w(t−)∥1\text{TC}(t) = c \cdot \|w(t) - w(t^-)\|_1

其中 cc 是常数比例成本(如每边 10 个基点),L1 范数是绝对交易规模之和。

投资者最大化终端财富扣除积分交易成本后的期望效用:

max⁡wE[U(WT)−∫0Tc∥dw(t)∥1]\max_w \mathbb{E}\left[U(W_T) - \int_0^T c \|dw(t)\|_1 \right]

这是一个随机控制问题。解涉及一个”无交易区”——围绕最优权重的一个带状区域,在此区域内再平衡过于昂贵而不值得。

具体地,最优策略是:

  • 若 wiw_i 处于 wi⋆w_i^\star(无摩擦最优)周围的一个带内,不交易。
  • 若 wiw_i 漂移到带外,则交易回带的边缘(而非一路交易到新的最优点)。

带宽按 c/λσ2\sqrt{c / \lambda \sigma^2} 缩放,其中 λ\lambda 是风险厌恶,σ2\sigma^2 是收益方差。交易成本越高,带越宽;风险厌恶或波动率越高,带越窄。

这就是为什么”月度再平衡”对大多数机构组合是合理默认的形式化理由。最优再平衡频率从数学中自然得出。

Almgren-Chriss 市场冲击

Almgren & Chriss (2000) 是带市场冲击的最优执行的经典文献。他们考虑一位需要在期限 TT 内清仓(或建仓)QQ 头寸的交易者,最小化总成本:

E[TC]=∑tImpact(Qt)+λ⋅Var(TC)\mathbb{E}[\text{TC}] = \sum_t \text{Impact}(Q_t) + \lambda \cdot \text{Var}(\text{TC})

其中 QtQ_t 是时间 tt 的交易规模,Impact(Qt)\text{Impact}(Q_t) 是临时市场冲击,方差项捕捉时机风险。

最优执行轨迹大致为:

Qt=Q0⋅sinh⁡(κ(T−t))/sinh⁡(κT)Q_t = Q_0 \cdot \sinh(\kappa (T - t)) / \sinh(\kappa T)

其中 κ\kappa 取决于风险厌恶 λ\lambda 和冲击参数。低风险厌恶时,轨迹大致是线性的(VWAP)。高风险厌恶时,它是前置的(快速交易以降低时机风险)。

这个模型在执行算法中被广泛使用。大多数卖方执行平台(高盛 Redi、JPMorgan 的算法套件等)都建立在 Almgren-Chriss 或其某个后代之上。

把成本纳入 MVO

回到组合优化。把交易成本加入标准 MVO 目标:

min⁡w12w⊤Σw−λw⊤μ+c∥w−w0∥1s.t.1⊤w=1,w≥0\begin{aligned} \min_{w} \quad & \frac{1}{2} w^\top \Sigma w - \lambda w^\top \mu + c \|w - w_0\|_1 \\ \text{s.t.} \quad & \mathbf{1}^\top w = 1, \quad w \geq 0 \end{aligned}

其中 w0w_0 是当前组合,cc 是单位交易的成本。L1 范数捕捉比例交易成本结构。

这是带 L1 惩罚的二次规划。它是凸的,用任何标准 QP 求解器都可解。

关键参数是 cc。设得太低,你会再平衡太频繁,支付过多交易成本。设得太高,你会交易太少,漂离最优点。

合理的起点:cc 等于单边交易成本(以基点为单位)转换至与 λw⊤μ\lambda w^\top \mu 相同的尺度。所以如果预期超额收益年化 5%、单边成本 10 个基点,cc 大约是预期收益的 2%。

代码层面:

import cvxpy as cp

w = cp.Variable(n_assets)
w_current = np.array([...])  # Current weights
mu = np.array([...])
Sigma = np.array([...])
lam = 2.5  # Risk aversion
c = 0.001  # One-way cost, 10 bps

objective = cp.quad_form(w, Sigma) - lam * (mu @ w) + c * cp.norm1(w - w_current)
constraints = [cp.sum(w) == 1, w >= 0]

problem = cp.Problem(cp.Minimize(objective), constraints)
problem.solve()

w_new = w.value
turnover = np.abs(w_new - w_current).sum() / 2  # One-way turnover

解将在方差缩减与交易成本之间权衡。最优组合比无摩擦最优更接近 w0w_0。

多期优化

更复杂的方法:跨多个期联合优化,计入未来再平衡。

Gârleanu-Lasry-Maggi-Pedersen 框架(后来由 Abad、Gârleanu、Hörter 等人细化)搭建了一个多期优化,其中投资者知道他们将在未来日期再平衡并每次支付交易成本。

解是”前瞻性”的。今天的最优交易考虑了明天的交易成本,明天的成本考虑了后天的成本,等等。

实现通过动态规划:

Vt(w)=max⁡w′[U(w′⋅rt)+E[Vt+1(w′)]−c∥w′−w∥1]V_t(w) = \max_{w'} \left[ U(w' \cdot r_t) + \mathbb{E}[V_{t+1}(w')] - c \|w' - w\|_1 \right]

状态是当前权重 ww。控制是新权重 w′w'。转移是随机的(取决于收益 rtr_t)。成本是 L1 交易。

为了可处理性,价值函数 Vt(w)V_t(w) 通常在无摩擦最优附近被近似为关于 ww 的二次函数。这给出闭式(或近似闭式)的解,易于实现。

生产中:大多数多期优化器使用这种方法。Axioma 的组合优化器、Bloomberg 的 PORT、BarraOne 都有变体。

实践提示

五件在生产中很重要的事。

提示 1:准确估计成本。 使用你执行部门的 TCA(交易成本分析)报告。不要用教科书上的数值。价差和冲击在资产、日内时段和市场状态之间差异巨大。

提示 2:不要以 alpha 模型为代价优化成本。 如果你的 alpha 信号很强,你会想要交易。过度惩罚换手会让你错过 alpha。成本惩罚应针对你特定的 alpha 衰减曲线调参。

提示 3:对不同资产类别使用不同模型。 股票成本不同于债券成本,债券成本不同于期货成本。统一的成本模型损失太多信息。

提示 4:考虑封闭期。 许多机构组合在季末前有”封闭期”,出于合规原因限制交易。优化器应该知道这一点并前置交易。

提示 5:包含流动性预算。 一些机构在全公司范围内有每天最大交易量限制。优化器需要尊重这种总量约束,而非仅是单个资产约束。

换手税

即使有成本感知优化,大多数主动组合仍存在显著换手。“换手税”——年度总交易成本——是真实的。

对一个年化换手 200%、往返成本 25 个基点的多空股票对冲基金,换手税为 50 个基点。扣除费用前的 alpha 需要超过 50 个基点才能盈亏平衡。

对一个换手 50%、成本 5 个基点的不允许做空机构管理者,换手税为 2.5 个基点。小到可以忽略。

换手税是主动管理的隐形杀手。成本感知优化无法消除它,但能管理它。替代方案——跑无约束 Markowitz 解——要糟糕得多。

何时成本感知优化最重要

三种它确实重要的情形:

  1. 高换手策略:短期限 alpha、市场中性股票、统计套利。这些可以达到 1000%+ 的年化换手。成本感知优化至关重要。
  2. 低流动性资产:小盘股票、新兴市场债券、私募信贷。价差和冲击很大。再平衡成本是 alpha 的有意义部分。
  3. 容量受限策略:随着 AUM 增长,交易推动价格更多。成本感知优化是你管理容量曲线的方式。

相比之下,对低换手的不允许做空机构组合(养老金、主权财富基金),成本感知优化是锦上添花但不是关键。默认的无约束 MVO 可能就够了。

文献综述

  • Almgren & Chriss (2000). “Optimal Execution of Portfolio Transactions.” Journal of Risk 3(2): 5-39. 执行模型。
  • Gârleanu (2009). “Portfolio Choice and Pricing in Discrete-Time Markets with Proportional Transaction Costs.” Journal of Economic Theory 144(4): 1629-1662.
  • Gârleanu & Pedersen (2013). “Dynamic Trading with Predictable Returns and Transaction Costs.” Journal of Finance 68(6): 2309-2340.
  • Lasry, Maggi, Pedersen & Gârleanu (2007). “Dynamic Trading and Asset Prices: Keynes vs. Hayek.” Review of Finance 11(3): 397-425.
  • Bertsimas & Lo (1998). “Optimal Control of Execution Costs.” Journal of Financial Markets 1(1): 1-50. 早期执行优化。
  • Kissell, Glantz & Malamut (2003). “Optimal Trading Strategies.” Quantitative Finance 3(5): 375-387. 实践指南。
  • Frazzini, Israel & Moskowitz (2018). “Trading Costs of Asset Pricing Anomalies.” SSRN Working Paper. 收割因子的交易成本。
  • Abad, Gârleanu & Hörter (2019). “A Tractable Production-Based Asset Pricing Model with Transaction Costs.” Journal of Finance 74(4): 1653-1699.

Almgren-Chriss 详解

Almgren-Chriss (2000) 模型考虑一位需要在期限 TT 内清仓 QQ 股的交易者。交易者选择剩余股数的轨迹 x(t)x(t) 进行清仓,x(0)=Qx(0) = Q 且 x(T)=0x(T) = 0。

执行被分解为离散交易。在每个时间 tt,交易者卖出 n(t)=x(t−1)−x(t)n(t) = x(t-1) - x(t) 股。每笔交易的成本有两个组成部分:

临时冲击:价格在执行过程中对交易者不利移动。对规模 nn 的交易,临时冲击成本为:

h(n)=η⋅nVh(n) = \eta \cdot \frac{n}{V}

其中 VV 是交易量速率(单位时间股数),η\eta 是常数。临时冲击在每笔交易上都要支付。

永久冲击:价格在大型交易后永久移动。对规模 nn 的交易,永久冲击为:

g(n)=γ⋅ng(n) = \gamma \cdot n

其中 γ\gamma 是常数。永久冲击是每笔交易的一次性成本。

总期望成本:

E[C]=∑t(h(nt)+g(nt))⋅P0\mathbb{E}[C] = \sum_t (h(n_t) + g(n_t)) \cdot P_0

其中 P0P_0 是初始价格。

总成本方差(时机风险):

Var[C]=σ2∑t(t⋅nt)2\text{Var}[C] = \sigma^2 \sum_t (t \cdot n_t)^2

交易者最小化期望成本与方差的加权和:

min⁡xE[C]+λ⋅Var[C]\min_x \mathbb{E}[C] + \lambda \cdot \text{Var}[C]

解是如下形式的轨迹:

x(t)=Q⋅sinh⁡(κ(T−t))sinh⁡(κT)x(t) = Q \cdot \frac{\sinh(\kappa(T-t))}{\sinh(\kappa T)}

其中 κ=λσ2/η\kappa = \sqrt{\lambda \sigma^2 / \eta},取决于风险厌恶 λ\lambda 和冲击参数 η\eta。

对 κ\kappa 小(低风险厌恶),轨迹大致是线性的:VWAP。对 κ\kappa 大(高风险厌恶),轨迹是前置的:快速交易以降低时机风险。

平方根定律详解

市场冲击的平方根定律:

Impact(Q)≈Y⋅σdaily⋅QADV\text{Impact}(Q) \approx Y \cdot \sigma_{\text{daily}} \cdot \sqrt{\frac{Q}{ADV}}

是交易中最稳健的实证规律之一。Almgren, Thum, Hauptmann & Li (2005) 等人记录了它跨市场和资产类别的稳定性。

常数取决于市场:

  • 美国大盘股:Y≈0.1Y \approx 0.1 到 0.30.3
  • 美国小盘股:Y≈0.3Y \approx 0.3 到 1.01.0
  • 美国国债:Y≈0.05Y \approx 0.05 到 0.150.15
  • 外汇:Y≈0.1Y \approx 0.1 到 0.30.3
  • 加密货币:Y≈0.5Y \approx 0.5 到 2.02.0(高得多)

对机构交易,平方根定律是有用的初步近似。对更精确的冲击估计,你需要来自你自己执行的 TCA 数据。

连续时间带成本交易

Gârleanu & Pedersen (2013) 把带比例交易成本的连续时间组合选择形式化。投资者最大化:

max⁡wE0[U(WT)−∫0Tc⋅∥w˙(t)∥1dt]\max_w \mathbb{E}_0\left[ U(W_T) - \int_0^T c \cdot \|\dot{w}(t)\|_1 dt \right]

其中 w˙(t)\dot{w}(t) 是交易速率,cc 是单位成本。

最优交易速率的一阶条件给出:

w˙i(t)=1c⋅(value of wi at frictionless optimum−current wi)+\dot{w}_i(t) = \frac{1}{c} \cdot \left( \text{value of } w_i \text{ at frictionless optimum} - \text{current } w_i \right)^+

换句话说:仅当偏离无摩擦最优的偏差超过与 cc 成比例的阈值时才交易。阈值取决于风险厌恶和收益波动率。

结果是围绕无摩擦最优的”无交易区”。投资者仅当组合从最优漂移得足够远以证明成本合理时才交易。

这就是”季度再平衡”之类规则的形式化依据。最优再平衡频率从数学中自然得出。

成本感知 Black-Litterman

一种自然的组合:Black-Litterman 预期收益加上交易成本惩罚。

目标:

max⁡ww⊤μBL−γ2w⊤Σw−c∥w−w0∥1\max_w w^\top \mu_{\text{BL}} - \frac{\gamma}{2} w^\top \Sigma w - c \|w - w_0\|_1

约束为不允许做空和预算。

这是一个带 L1 惩罚的 QP。用标准工具可解。结果是一个:

  • 通过 Black-Litterman 先验锚定市场
  • 按观点(按信心缩放)倾斜
  • 通过成本项惩罚换手
  • 尊重约束

的组合。

这是一种主力机构配置模型。被许多大型资产管理人使用。

换手目标

许多机构授权有换手限制。“年度最大换手 50%“是常见约束。

在优化中实现换手限制:

∑t∥w(t)−w(t−1)∥1≤Tmax\sum_t \|w^{(t)} - w^{(t-1)}\|_1 \leq T_{\text{max}}

这是一个线性约束。加入 QP。

实践中,换手限制与成本惩罚相互作用。成本惩罚抑制所有换手;换手限制禁止大额换手。它们互补。

一些机构只用换手限制(目标中无成本惩罚)。其他机构只用成本惩罚(无换手限制)。两者结合很少但站得住脚。

实践中的市场冲击

大多数机构交易者拥有根据自己交易数据校准的市场冲击模型。模型各异,但大多基于:

  • 平方根定律(Almgren 等, 2005)
  • I-star 模型(Kissell, Glantz & Malamut, 2003)
  • 基于 TCA 数据的专有模型

对回测,带保守 YY 的简单平方根定律通常够用。对生产执行,你需要更详细的模型。

标准实现:

def estimate_impact(Q, ADV, sigma, Y=0.3):
    """Square-root market impact."""
    return Y * sigma * np.sqrt(Q / ADV)

def optimal_trade_schedule(Q, T, ADV, sigma, lambda_param, eta):
    """Almgren-Chriss optimal trajectory."""
    kappa = np.sqrt(lambda_param * sigma**2 / eta)
    t = np.arange(T + 1)
    x = Q * np.sinh(kappa * (T - t)) / np.sinh(kappa * T)
    n = -np.diff(x)  # Trade sizes
    return n

这给出最优执行轨迹。用 VWAP 算法或更复杂的执行算法实现。

成本感知优化失效的情形

三种状态下成本感知优化产生糟糕组合。

状态 1:成本参数太高。 如果 cc 设得太高,优化器在该交易时也不交易。组合漂离最优点且从不再平衡。

状态 2:成本参数太低。 如果 cc 设得太低,优化器交易过度。高换手、高成本、低净收益。

状态 3:成本模型错误。 如果实际成本结构是非线性的(例如,因流动性约束随交易规模增加),线性成本惩罚会漏掉这一点。

这三种的修复都是:通过 TCA 分析把 cc 校准到你的实际成本。对 cc 做敏感性分析。在历史数据上测试优化器并检查实现成本。

要点回顾

交易成本是真实的,而且显著。Markowitz 的无摩擦 MVO 忽略它们,并通过过度再平衡亏钱。

两个模型家族:Almgren-Chriss(带市场冲击的最优执行)和 Gârleanu-Pedersen(带比例成本的多期组合选择)。两者都可处理且在生产工具中实现良好。

把成本作为对换手的 L1 惩罚加入 MVO 目标。针对你特定的 alpha 衰减曲线调参。Almgren-Chriss 轨迹是最优执行路径;Gârleanu-Pedersen 模型给出连续再平衡的无交易区。

市场冲击的平方根定律是稳健的实证规律。它取决于 ADV、波动率和市场特定常数。

换手税是主动管理的隐形杀手。成本感知优化是一种工具,不能替代好的 alpha。它与 Black-Litterman 的组合给出站得住脚的机构配置模型。

换手目标在机构授权中常见。它们与成本惩罚互补,但并不总是同时使用。

下一篇文章:稳健组合优化——在不确定集上优化最坏情形。