2. 多目标优化基础:帕累托最优、帕累托前沿、支配关系等核心概念详解

做量化投资组合,说白了就是在多个目标之间找平衡。你想收益高,又想风险低,还想换手率小——这本身就是个多目标问题。单目标优化我们熟,但多目标优化,嗯,这里面的门道可不少。

我刚开始做多因子选股那会儿,就踩过一个大坑。当时我试图用一个公式把夏普比率、最大回撤、年化收益揉在一起,搞了个加权打分。结果呢?调参调了三个月,实盘一跑就崩。后来我才明白,多目标优化不是这么玩的。你得先理解三个核心概念:支配关系帕累托最优帕累托前沿

2.1 支配关系:谁比谁好?

先问个问题:两个投资组合A和B,你怎么判断A比B好?

单目标下很简单,收益高的就好。但多目标下就复杂了。比如A收益10%、回撤5%,B收益8%、回撤3%。A收益高但回撤也大,B收益低但回撤小——谁更好?

这时候就需要支配关系来帮忙。定义是这样的:

  • 如果A在所有目标上都不比B差
  • 并且至少在一个目标上严格优于B
  • 那么我们就说A支配B

用数学语言说:

对于最大化问题(如收益):
  如果 f_i(A) ≥ f_i(B) 对所有 i 成立
  且存在 j 使得 f_j(A) > f_j(B)
  则 A 支配 B

举个例子。假设我们只看两个目标:年化收益(越大越好)和最大回撤(越小越好)。

组合 年化收益 最大回撤
A 15% 8%
B 12% 6%
C 10% 5%
D 15% 10%

看这个表:

  • A支配D?A收益一样(15% vs 15%),但回撤更小(8% vs 10%)。所以A支配D。
  • A和B呢?A收益高但回撤也大,互不支配。
  • B和C呢?B收益高但回撤也大,互不支配。

我个人习惯把支配关系想象成「全方位碾压」。只要有一个目标不如对方,那就谈不上支配。这个逻辑在实盘中特别重要——你想想看,如果一个策略在收益、风险、容量上都优于另一个,那肯定选它。但现实中,这种好事很少见。

2.2 帕累托最优:找不到更好的了

理解了支配关系,帕累托最优就顺理成章了。

帕累托最优的定义:如果一个解(投资组合)不被其他任何解支配,那它就是帕累托最优的。

说白了,就是「你没法在不损害一个目标的前提下,改善另一个目标」。比如上面例子中的A、B、C,它们之间互不支配,每个都是帕累托最优的。而D被A支配,所以D不是帕累托最优。

核心理解:帕累托最优解集里的每个组合,都是在不同目标之间做了「最佳权衡」。没有绝对的好坏,只有不同的偏好。

我在做CTA策略优化时遇到过这种情况。当时我同时优化夏普比率和最大回撤,跑出来的帕累托最优解集里,有的策略夏普高但回撤也大,有的策略回撤小但夏普通常。没有哪个策略能同时做到「夏普最高且回撤最小」——这就是多目标优化的本质。

2.3 帕累托前沿:最优解的边界

所有帕累托最优解在目标空间里构成的曲线(或曲面),就是帕累托前沿

这个名字很形象——它就像一条「前沿线」,线内的点都被线外的点支配,线外的点才是最优的。

下面我用SVG画一张图,帮你直观理解:

风险(越小越好) 收益(越大越好) A B C D E F(被支配) G(被支配) H(被支配) 帕累托前沿 (所有帕累托最优解的集合)

图中红色曲线就是帕累托前沿。A、B、C、D、E都在前沿上,它们互不支配。而F、G、H都在前沿内部,它们都被前沿上的某个点支配。

举个例子:F点(收益中等、风险中等)被C点支配——C收益更高且风险更低。所以F不是帕累托最优。

实战技巧:我建议你在做组合优化时,先跑出帕累托前沿,然后根据你的风险偏好去选点。比如你是个保守型投资者,就选前沿左下方的点(低风险、中等收益);激进型就选右上方的点(高收益、高风险)。

2.4 三个概念的关系

这三个概念其实是一脉相承的:

  1. 支配关系是基础——它定义了「谁比谁好」
  2. 帕累托最优是筛选——找出所有不被支配的解
  3. 帕累托前沿是可视化——把这些解画出来,形成一条边界

用一句话总结:支配关系是判断标准,帕累托最优是筛选结果,帕累托前沿是结果的可视化呈现。

2.5 避坑指南

我曾经犯过的错:刚开始做多目标优化时,我试图把所有目标加权成一个综合得分。结果发现权重稍微一变,最优组合就完全不一样了。后来我才意识到,加权法本质上是在「猜测」决策者的偏好,而帕累托前沿把偏好选择留给了最后一步——这才是更科学的做法。

另外要注意:帕累托最优不等于「全局最优」。它只是在多目标意义下的「非劣解」。你选出来的组合,可能在某些单目标上表现平平,但在整体权衡上是最佳的。

2.6 在量化投资中的应用

在实际的量化投资中,我们通常把以下目标放在一起优化:

  • 年化收益率(最大化)
  • 最大回撤(最小化)
  • 夏普比率(最大化)
  • 换手率(最小化,降低交易成本)
  • 持仓集中度(适度分散)

这些目标之间天然存在冲突。比如你想降低回撤,就得牺牲一部分收益;你想降低换手率,就可能错过短期机会。帕累托前沿就是帮你找到这些冲突之间的「最佳平衡点」。

我个人习惯在实盘前,先跑出帕累托前沿,然后从中挑3-5个组合做压力测试。这样既保证了科学性,又留有余地。

记住:多目标优化的目的不是找到一个「万能解」,而是给你一组「候选解」,让你根据市场环境和自身偏好做选择。这才是实战中的正确姿势。


专注资料整理