交易成本感知的组合优化
Gârleanu 与 Lasry-Maggi-Pedersen 的换手模型。如何把交易成本纳入 MVO。不要让你的再平衡摧毁回报的数学与实践。
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 个基点。对更不流动的市场,远高于此。
市场冲击:通过交易推动价格变动的成本。大额交易推动价格更多。这是机构规模下的主导成本。粗略为 ,其中 是交易规模, 是日均成交量, 是日波动率。
一笔规模 的往返交易的总交易成本:
对机构股票交易,主导项是 ,其中 在 0.5-0.7 左右。这就是市场冲击的平方根定律。
平方根定律
大量实证文献(Barra、Bloomberg、ITG、Virtu 以及许多学术论文)发现市场冲击大致按交易规模相对 ADV 的平方根缩放:
其中 是一个在 0.1-1.0 之间的常数(取决于资产和交易场所), 是日波动率, 是日均成交量。
对 日波动率、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) 开发了带比例交易成本的连续时间组合优化模型。
设置:在每个瞬时,投资者可以通过交易再平衡组合。交易产生与交易规模成正比的成本:
其中 是常数比例成本(如每边 10 个基点),L1 范数是绝对交易规模之和。
投资者最大化终端财富扣除积分交易成本后的期望效用:
这是一个随机控制问题。解涉及一个”无交易区”——围绕最优权重的一个带状区域,在此区域内再平衡过于昂贵而不值得。
具体地,最优策略是:
- 若 处于 (无摩擦最优)周围的一个带内,不交易。
- 若 漂移到带外,则交易回带的边缘(而非一路交易到新的最优点)。
带宽按 缩放,其中 是风险厌恶, 是收益方差。交易成本越高,带越宽;风险厌恶或波动率越高,带越窄。
这就是为什么”月度再平衡”对大多数机构组合是合理默认的形式化理由。最优再平衡频率从数学中自然得出。
Almgren-Chriss 市场冲击
Almgren & Chriss (2000) 是带市场冲击的最优执行的经典文献。他们考虑一位需要在期限 内清仓(或建仓) 头寸的交易者,最小化总成本:
其中 是时间 的交易规模, 是临时市场冲击,方差项捕捉时机风险。
最优执行轨迹大致为:
其中 取决于风险厌恶 和冲击参数。低风险厌恶时,轨迹大致是线性的(VWAP)。高风险厌恶时,它是前置的(快速交易以降低时机风险)。
这个模型在执行算法中被广泛使用。大多数卖方执行平台(高盛 Redi、JPMorgan 的算法套件等)都建立在 Almgren-Chriss 或其某个后代之上。
把成本纳入 MVO
回到组合优化。把交易成本加入标准 MVO 目标:
其中 是当前组合, 是单位交易的成本。L1 范数捕捉比例交易成本结构。
这是带 L1 惩罚的二次规划。它是凸的,用任何标准 QP 求解器都可解。
关键参数是 。设得太低,你会再平衡太频繁,支付过多交易成本。设得太高,你会交易太少,漂离最优点。
合理的起点: 等于单边交易成本(以基点为单位)转换至与 相同的尺度。所以如果预期超额收益年化 5%、单边成本 10 个基点, 大约是预期收益的 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
解将在方差缩减与交易成本之间权衡。最优组合比无摩擦最优更接近 。
多期优化
更复杂的方法:跨多个期联合优化,计入未来再平衡。
Gârleanu-Lasry-Maggi-Pedersen 框架(后来由 Abad、Gârleanu、Hörter 等人细化)搭建了一个多期优化,其中投资者知道他们将在未来日期再平衡并每次支付交易成本。
解是”前瞻性”的。今天的最优交易考虑了明天的交易成本,明天的成本考虑了后天的成本,等等。
实现通过动态规划:
状态是当前权重 。控制是新权重 。转移是随机的(取决于收益 )。成本是 L1 交易。
为了可处理性,价值函数 通常在无摩擦最优附近被近似为关于 的二次函数。这给出闭式(或近似闭式)的解,易于实现。
生产中:大多数多期优化器使用这种方法。Axioma 的组合优化器、Bloomberg 的 PORT、BarraOne 都有变体。
实践提示
五件在生产中很重要的事。
提示 1:准确估计成本。 使用你执行部门的 TCA(交易成本分析)报告。不要用教科书上的数值。价差和冲击在资产、日内时段和市场状态之间差异巨大。
提示 2:不要以 alpha 模型为代价优化成本。 如果你的 alpha 信号很强,你会想要交易。过度惩罚换手会让你错过 alpha。成本惩罚应针对你特定的 alpha 衰减曲线调参。
提示 3:对不同资产类别使用不同模型。 股票成本不同于债券成本,债券成本不同于期货成本。统一的成本模型损失太多信息。
提示 4:考虑封闭期。 许多机构组合在季末前有”封闭期”,出于合规原因限制交易。优化器应该知道这一点并前置交易。
提示 5:包含流动性预算。 一些机构在全公司范围内有每天最大交易量限制。优化器需要尊重这种总量约束,而非仅是单个资产约束。
换手税
即使有成本感知优化,大多数主动组合仍存在显著换手。“换手税”——年度总交易成本——是真实的。
对一个年化换手 200%、往返成本 25 个基点的多空股票对冲基金,换手税为 50 个基点。扣除费用前的 alpha 需要超过 50 个基点才能盈亏平衡。
对一个换手 50%、成本 5 个基点的不允许做空机构管理者,换手税为 2.5 个基点。小到可以忽略。
换手税是主动管理的隐形杀手。成本感知优化无法消除它,但能管理它。替代方案——跑无约束 Markowitz 解——要糟糕得多。
何时成本感知优化最重要
三种它确实重要的情形:
- 高换手策略:短期限 alpha、市场中性股票、统计套利。这些可以达到 1000%+ 的年化换手。成本感知优化至关重要。
- 低流动性资产:小盘股票、新兴市场债券、私募信贷。价差和冲击很大。再平衡成本是 alpha 的有意义部分。
- 容量受限策略:随着 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) 模型考虑一位需要在期限 内清仓 股的交易者。交易者选择剩余股数的轨迹 进行清仓, 且 。
执行被分解为离散交易。在每个时间 ,交易者卖出 股。每笔交易的成本有两个组成部分:
临时冲击:价格在执行过程中对交易者不利移动。对规模 的交易,临时冲击成本为:
其中 是交易量速率(单位时间股数), 是常数。临时冲击在每笔交易上都要支付。
永久冲击:价格在大型交易后永久移动。对规模 的交易,永久冲击为:
其中 是常数。永久冲击是每笔交易的一次性成本。
总期望成本:
其中 是初始价格。
总成本方差(时机风险):
交易者最小化期望成本与方差的加权和:
解是如下形式的轨迹:
其中 ,取决于风险厌恶 和冲击参数 。
对 小(低风险厌恶),轨迹大致是线性的:VWAP。对 大(高风险厌恶),轨迹是前置的:快速交易以降低时机风险。
平方根定律详解
市场冲击的平方根定律:
是交易中最稳健的实证规律之一。Almgren, Thum, Hauptmann & Li (2005) 等人记录了它跨市场和资产类别的稳定性。
常数取决于市场:
- 美国大盘股: 到
- 美国小盘股: 到
- 美国国债: 到
- 外汇: 到
- 加密货币: 到 (高得多)
对机构交易,平方根定律是有用的初步近似。对更精确的冲击估计,你需要来自你自己执行的 TCA 数据。
连续时间带成本交易
Gârleanu & Pedersen (2013) 把带比例交易成本的连续时间组合选择形式化。投资者最大化:
其中 是交易速率, 是单位成本。
最优交易速率的一阶条件给出:
换句话说:仅当偏离无摩擦最优的偏差超过与 成比例的阈值时才交易。阈值取决于风险厌恶和收益波动率。
结果是围绕无摩擦最优的”无交易区”。投资者仅当组合从最优漂移得足够远以证明成本合理时才交易。
这就是”季度再平衡”之类规则的形式化依据。最优再平衡频率从数学中自然得出。
成本感知 Black-Litterman
一种自然的组合:Black-Litterman 预期收益加上交易成本惩罚。
目标:
约束为不允许做空和预算。
这是一个带 L1 惩罚的 QP。用标准工具可解。结果是一个:
- 通过 Black-Litterman 先验锚定市场
- 按观点(按信心缩放)倾斜
- 通过成本项惩罚换手
- 尊重约束
的组合。
这是一种主力机构配置模型。被许多大型资产管理人使用。
换手目标
许多机构授权有换手限制。“年度最大换手 50%“是常见约束。
在优化中实现换手限制:
这是一个线性约束。加入 QP。
实践中,换手限制与成本惩罚相互作用。成本惩罚抑制所有换手;换手限制禁止大额换手。它们互补。
一些机构只用换手限制(目标中无成本惩罚)。其他机构只用成本惩罚(无换手限制)。两者结合很少但站得住脚。
实践中的市场冲击
大多数机构交易者拥有根据自己交易数据校准的市场冲击模型。模型各异,但大多基于:
- 平方根定律(Almgren 等, 2005)
- I-star 模型(Kissell, Glantz & Malamut, 2003)
- 基于 TCA 数据的专有模型
对回测,带保守 的简单平方根定律通常够用。对生产执行,你需要更详细的模型。
标准实现:
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:成本参数太高。 如果 设得太高,优化器在该交易时也不交易。组合漂离最优点且从不再平衡。
状态 2:成本参数太低。 如果 设得太低,优化器交易过度。高换手、高成本、低净收益。
状态 3:成本模型错误。 如果实际成本结构是非线性的(例如,因流动性约束随交易规模增加),线性成本惩罚会漏掉这一点。
这三种的修复都是:通过 TCA 分析把 校准到你的实际成本。对 做敏感性分析。在历史数据上测试优化器并检查实现成本。
要点回顾
交易成本是真实的,而且显著。Markowitz 的无摩擦 MVO 忽略它们,并通过过度再平衡亏钱。
两个模型家族:Almgren-Chriss(带市场冲击的最优执行)和 Gârleanu-Pedersen(带比例成本的多期组合选择)。两者都可处理且在生产工具中实现良好。
把成本作为对换手的 L1 惩罚加入 MVO 目标。针对你特定的 alpha 衰减曲线调参。Almgren-Chriss 轨迹是最优执行路径;Gârleanu-Pedersen 模型给出连续再平衡的无交易区。
市场冲击的平方根定律是稳健的实证规律。它取决于 ADV、波动率和市场特定常数。
换手税是主动管理的隐形杀手。成本感知优化是一种工具,不能替代好的 alpha。它与 Black-Litterman 的组合给出站得住脚的机构配置模型。
换手目标在机构授权中常见。它们与成本惩罚互补,但并不总是同时使用。
下一篇文章:稳健组合优化——在不确定集上优化最坏情形。