4、加权求和法:权重选择策略、权重敏感性分析、线性加权与非线性加权对比
加权求和法,说白了就是给每个目标函数分配一个权重,然后加起来变成一个单目标问题。这是多目标优化里最直观、最常用的方法。我刚开始做量化策略时,用的就是这招——简单,但坑也不少。
4.1 权重选择策略:不是拍脑袋决定的
权重怎么选?很多人上来就拍脑袋:收益重要,给0.7;风险次要,给0.3。嗯,这样也行,但不够严谨。我个人习惯用以下几种方法:
- 等权重法:所有目标权重相同。适合你完全不知道哪个更重要的时候。比如收益、夏普、最大回撤各占1/3。
- 专家经验法:根据业务需求定权重。比如机构客户更看重回撤控制,那风险权重就高一些。
- 层次分析法(AHP):两两比较目标的重要性,然后算权重。我曾在项目中用过一次,效果还行,就是过程有点繁琐。
- 自适应权重法:根据当前市场状态动态调整权重。比如波动率低时多给收益权重,波动率高时多给风险权重。
重要提醒:权重之和必须为1,且每个权重在[0,1]之间。这是基本约束,别搞错了。
4.2 权重敏感性分析:看看你的策略稳不稳
权重选好了,但问题来了:如果权重稍微变一点,结果会不会天翻地覆?这就是权重敏感性分析要回答的问题。
我曾经做过一个实验:把收益权重从0.5调到0.55,结果最优组合从股票A变成了股票B。这说明策略对权重非常敏感,需要谨慎。
怎么做敏感性分析?我建议用以下步骤:
- 选定一个基准权重组合,比如(0.5, 0.3, 0.2)
- 每次微调一个权重,比如±0.05,其他权重按比例调整
- 观察最优解的变化情况
- 如果最优解变化剧烈,说明策略不稳定,需要重新设计
小技巧:可以用热力图来展示权重变化对目标值的影响。横轴是权重1,纵轴是权重2,颜色代表综合得分。这样一眼就能看出敏感区域。
4.3 线性加权与非线性加权对比
线性加权是最简单的形式:
F = w1*f1 + w2*f2 + ... + wn*fn
但线性加权有个大问题:它假设目标之间是相互独立的,可以完全替代。你想想看,收益和风险能完全替代吗?显然不能。
非线性加权就灵活多了。常见的有:
- 乘积形式:F = f1^w1 * f2^w2 * ... * fn^wn。适合目标之间相互依赖的情况。
- 指数形式:F = w1*exp(f1) + w2*exp(f2)。可以放大某些目标的差异。
- 分段线性:不同区间用不同的权重。比如回撤小于5%时,风险权重0.3;回撤超过5%时,风险权重0.6。
注意:非线性加权虽然灵活,但求解难度也大。特别是乘积形式,如果某个目标值为0,整个结果就变成0了。我在项目中吃过这个亏,后来改用加一个小常数来避免。
下面这张图展示了线性加权和非线性加权的核心区别:
4.4 实战建议:怎么选?
说了这么多,到底用哪种?我个人的经验是:
- 新手入门:先用线性加权,简单易懂。等跑通了再考虑非线性。
- 追求稳健:用线性加权+敏感性分析。看看权重变化对结果的影响,心里有底。
- 追求精细:用非线性加权,特别是乘积形式。但要做好求解失败的准备。
- 混合使用:先用线性加权找到大致区域,再用非线性加权精细调整。我在一个多资产配置项目中就是这么干的,效果不错。
避坑指南:我曾经在权重敏感性分析上偷懒,结果策略上线后表现远不如预期。后来发现,权重稍微一变,最优组合就完全不一样了。所以,敏感性分析一定要做,而且要做得细致。
最后说一句:加权求和法虽然简单,但用好了威力无穷。关键是理解权重的含义,以及它对结果的影响。别把权重当成摆设,它可是你策略的灵魂。
公众号:蓝海资料掘金营,微信deep3321