Mean-Variance Optimization with Transaction Cost (带交易成本惩罚的 MVO)
在经典 Markowitz Curse 框架上显式加交易成本惩罚项; 本文 (arXiv:2603.04441) 把 regime-conditional 的 (\hat\mu_t, \hat\Sigma_t) 喂入本目标函数, 关键作用: 把"状态切换期望"和"组合调仓成本"统一优化, 显式压住 jitter。
目标函数
w_{t+1}^* = \arg\min_{w \in \mathcal W}\; \tfrac{1}{2} w^\top \hat\Sigma_t\, w - \lambda\, w^\top \hat\mu_t + \tfrac{\eta}{2}\,(w - w_t)^\top \Lambda\, (w - w_t) + \mathrm{TC}(w, w_t)
- 第一项: 组合方差
- 第二项: λ × 预期超额收益, λ 是风险厌恶
- 第三项: 跟踪误差二次惩罚 (缓和单期跳变)
- \mathrm{TC}: 线性 / 二次交易成本 (bid-ask + market impact)
\Lambda 通常取 diag(各资产 ADV 倒数) — 流动性差的资产天然难调仓。
"交易成本惩罚项"为什么能压住 turnover
实测对比 (本文 2005–2026):
| 策略 | Sharpe | MaxDD | 日换手 |
|---|---|---|---|
| KNN + MVO + TC | 1.81 | −12.52% | 56.65% |
| Wasserstein-HMM + MVO + TC | 2.18 | −5.43% | 0.80% |
两组都加了交易成本项, 但 KNN 的换手仍然 56.65% — 因为 \hat\mu_t, \hat\Sigma_t 在 KNN 下日间抖动, 优化器算出的"最优 w"每天都在变, TC 项无法补偿。所以:
TC 项是必要非充分 — 真要降换手, 必须在 \hat\mu_t, \hat\Sigma_t 端做平滑; Wasserstein HMM 正是这一步。
与已有 quant 概念的关系
- Markowitz Curse / Risk Parity — MVO 是基础; Risk Parity 走 ERC, 不显式 regime; 本文是 MVO + regime + TC 三件套。
- Distributionally Robust Optimization — DRO 把"输入不确定性"建模进模糊集; TC 显式建模"决策侧的"调仓代价。两者互补, 工程上常组合用 (例如 Wasserstein-DRO + TC-MVO)。
- Linearity-Generating Strategies (LGS — CD-Daniel-Sağlam-Moallemi 2014 多期动态组合 + 二次 TC 的闭式 LQ 解法; 本文 (TC-MVO) 是其单期 + regime-conditional 简化版; 仿真上 LGS 在大 N + SV + TC 下比 L-GP/myopic 提升 ~14% obj, 实证上 Sharpe 提升 ~5–10%。
- Volatility Targeting / Volatility-Managed Portfolio — 把 vol 视为外生缩放, 不影响 MVO 的 μ; 本文让 μ, Σ, λ, η 都跟 regime 变。
- Wasserstein HMM 资产配置框架 — 本文是它的最外层优化器。
多期推广:把单期成本项扩展成路径依赖(2026-10-25 补)
Lezmi-Roncalli-Xu 2022 把这一页的单期二次成本项放到多期框架里,得到三个具体结论。
成本项在多期里的位置
单期写的是 h_s(x_{s-1},x_s)=\tfrac12\lambda_s\|x_s-x_{s-1}\|^2(ridge);多期里它变成耦合项 h(x)=\sum_s h_s(x_{s-1},x_s),与静态项 g(x)=\sum_s g_s(x_s) 并列。约束集也拆成逐期约束 \Omega^{(g)} 与跨期约束 \Omega^{(h)}(换手上限、单调调仓等)。
三种建模方式在多期下不再等价:
| 建模 | 形式 | 单期 | 多期 |
|---|---|---|---|
| 交易成本惩罚 | \lambda_s\|x_s-x_{s-1}\|_1(lasso) | 等价于换手约束 \tau_s | 等价关系失效 |
| 换手约束 | \|x_s-x_{s-1}\|_1\le\tau_s | 与 lasso 等价 | 需要写成不等式进入 \Omega^{(h)} |
| 流动性冲击 | Kyle 矩阵 \Lambda_s(临时)+ \Gamma_s(永久) | 忽略 | 跨期耦合,产生"动量点火"等路径效应 |
多期成本带来的两个新现象
- 总换手可以大于净换手。Transition management 例子里,单期最优组合的换手是 108.82%,但分 5 期调仓(每期上限 25%)时总换手是 114–117%——因为可以在某期超买、下一期再卖。用多期控制单期换手,并不意味着总交易量更小。
- 成本惩罚过强会把组合"黏住"。\Lambda_s 太大时解变成 x^\star_{t+1}=\dots=x^\star_{t+h}=x_t(完全不调仓),既失去目标组合也失去交易;太小则惩罚无效。论文没给标定准则——这与本页"TC 系数 \eta 校准"那条工程坑是同一个问题。
对本页结论的印证
本页说"TC 项是必要非充分——真要降换手,必须在 \hat\mu_t,\hat\Sigma_t 端做平滑"。多期版本给出同构的结论:光加惩罚项不解决问题,提前看见未来的约束路径才带来实质改进。组合脱碳例子里,多期解的跟踪误差介于"单期无惩罚"与"单期有惩罚"之间,正是因为它预见了未来各期的碳强度下降。
对 A 股的额外含义:多期 + 成本 + 冲击的组合在 A 股更被需要(涨跌停、T+1),但也更难标定。
TC 项的工程坑
- TC 系数 \eta 校准: 太小不起作用, 太大又"沉淀"在错位置。本文没有正面讨论 η 的 cross-validate。
- 流动性不对称的资产: A 股小盘流动性日变 5×, λi 必须是滚动估计, 否则新进小盘股直接被 η 卡死。
- T+1 制度: A 股当日建仓次日才可卖, TC 项必须包含"未来一日不可反向"的硬约束, 通常以滚动 horizon 2 优化替代单期。
与 wiki 已有概念的对位
- Sharpe Ratio — 评价指标, 不会出现在优化目标里。
- Decision-Focused Learning for MVO — DFL 把 ML-预测→MVO 用梯度端贯通, 但仍未涉及 regime 切换; 理论上可与本文组合: DFL 训的预测 μ̂ 给 HMM, HMM 输出给 TC-MVO。
- Predict-then-Optimize — 母体范式, 本框架是 regime-conditional + cost-aware 的实例。
- 多期组合优化 — 本页单期成本项的多期推广:成本项变成耦合项,lasso 与换手约束的等价关系失效。
- Robust Optimization — RO 把输入放不确定性集合, 与 TC 项正交。
Open Questions
- η 的 cross-validate vs 估计难度: TC 罚项系数对组合影响远大于 Sharpe 数值。
- A 股限仓 / 涨跌停下, TC 项必须显式包含制度硬约束。
- 内嵌 transaction cost-aware 的再平衡算法 (e.g. Almgren-Chriss 1999) 替换纯二次 TC 项的工程改进幅度。
- 与 DRO 合并: Σ̂ 取 Wasserstein-ambiguity 集下界, 同时 w 经 TC 优化 — 双层鲁棒。
- Regime 切换时刻 \gamma_{t,k} 大幅变化, TC 项是否能给"延迟一天再调"作为局部最优。