优化器不只画一条曲线 · beyond mean-variance
很多人跑完 PyPortfolioOpt 看到一条优雅曲线就以为搞定了。把数据往前推一天再跑一次,权重能从 60% 跳到 30%——曲线没变,答案变了。
原因藏在目标函数里。最小化 wᵀΣw 这个二次型时,协方差矩阵 Σ 的微小扰动会被放大。当两个资产高度相关,Σ 接近奇异,解对输入极度敏感。这不是 bug,是数学结构决定的。
后面那个 λ‖w‖² 就是 L2 正则——把权重往 0 拉,避免极端配置。看起来简单,加一项,整个解的稳定性天差地别。正则不是锦上添花,是让优化器能用的前提。
两只资产(A 收益 12%/风险 25%,B 收益 5%/风险 10%)。拖动相关性 ρ,看有效前沿形状怎么变、黑塞矩阵条件数怎么飙升——条件数越大,权重越不稳。
目标函数加 λ‖w‖²,权重不再极端。Ledoit-Wolf 收缩估计就是把 Σ 往单位阵拉,本质同款思路。
把 μ、Σ 当不确定区间,最坏情况下还要最优。Tütüncü、Goldfarb-Iyengar 的鲁棒前沿更平但更可信。
市场均衡权重当先验,你的观点当后验修正。避免直接用样本均值那种"历史均值当未来"的坑。
不配资金配风险,每类资产对组合风险贡献相等。桥水的全天候就是这个思路,不押收益押风险。
这四条都从马科维茨出发,但各自回答它没回答的问题:参数不准怎么办、观点怎么融、风险怎么平摊。学到这里才算从"会跑优化器"到"懂为什么这么跑"。