3、多目标投资策略框架:目标函数设计
各位同学,今天我们进入多目标策略的核心环节——目标函数设计。说实话,很多人在做量化策略时,只盯着收益率看。我早期做CTA策略时也犯过这个错,结果回测曲线漂亮得不行,实盘一跑就崩。后来我明白了,单一目标优化就像「瘸腿走路」,走不远。
多目标优化,说白了就是同时考虑多个维度的约束。你想想看,一个策略如果收益很高但流动性极差,或者收益不错但ESG评分垫底,这样的策略你敢用吗?我不敢。
3.1 收益目标函数
收益目标是最直观的。我们通常用年化收益率或累计收益率来衡量。但这里有个坑——我建议你不要直接用「总收益」作为目标,而是用「超额收益」或「风险调整后收益」。
常见的收益目标函数有几种:
- 年化收益率:简单粗暴,但容易受极端值影响
- 夏普比率:收益/波动,我最常用的指标
- 信息比率:超额收益/跟踪误差,适合指数增强策略
- 卡玛比率:年化收益/最大回撤,适合绝对收益策略
我个人习惯用夏普比率作为主目标。为什么?因为它同时考虑了收益和波动。我在一个CTA策略项目中,用夏普比率优化后,最大回撤从18%降到了7%,收益反而提升了3%。
核心公式:
Sharpe Ratio = (Rp - Rf) / σp
其中 Rp 是组合收益率,Rf 是无风险利率,σp 是组合波动率。
3.2 风险目标函数
风险目标函数,嗯,这里要重点讲。很多新手只关注波动率,但风险是多维的。我在项目中遇到过最惨的一次,就是只控制了波动率,没控制尾部风险,结果一次黑天鹅事件直接回撤了25%。
常见的风险度量指标:
| 风险指标 | 含义 | 适用场景 |
|---|---|---|
| 波动率 | 收益的标准差 | 通用 |
| VaR | 给定置信水平下的最大损失 | 风控合规 |
| CVaR | 超过VaR的平均损失 | 尾部风险管理 |
| 最大回撤 | 历史最高点到最低点的跌幅 | 绝对收益策略 |
| 偏度/峰度 | 收益分布的形态 | 非正态分布策略 |
我建议你在目标函数中至少包含两个风险指标:一个衡量整体波动(如波动率),一个衡量尾部风险(如CVaR)。这样能避免「看起来稳,实际很脆」的情况。
避坑指南:我曾经只用波动率做风险目标,结果策略在正常市场表现很好,但遇到2015年股灾时直接崩了。后来我加入了CVaR约束,才真正把尾部风险管住。
3.3 流动性目标函数
流动性,说白了就是你的策略能不能「进得去、出得来」。很多人在回测时忽略流动性,结果实盘一跑就发现滑点吃掉所有收益。
流动性目标函数通常包括:
- 持仓集中度:单只股票占比不超过X%
- 日均换手率:持仓股票的日均成交量
- Amihud非流动性指标:价格冲击成本
- 买卖价差:bid-ask spread
我个人习惯用「持仓集中度」和「日均换手率」两个指标。举个例子,如果一个策略持有某只小盘股占比20%,但这只股票日均成交额只有500万,那你想卖出时可能得砸好几个跌停板。
小技巧:在目标函数中,可以把流动性指标作为惩罚项。比如,当持仓集中度超过5%时,每超过1%就扣0.5%的收益。这样优化器会自动避开流动性差的持仓。
3.4 ESG目标函数
ESG现在越来越重要了。说实话,五年前我还不怎么关注ESG,但这两年机构资金对ESG的要求越来越高。我记得去年帮一家保险资管做策略,对方明确要求ESG评分必须在B级以上。
ESG目标函数的设计方式:
- ESG评分加权:组合的加权平均ESG评分
- ESG排除法:剔除ESG评分低于阈值的标的
- ESG倾斜法:在优化中给予高ESG评分标的更高权重
- ESG动量:关注ESG评分改善的标的
我建议用「ESG评分加权」作为主目标,同时配合「ESG排除法」做硬约束。比如,要求组合的ESG评分不低于行业平均,同时剔除ESG评分D级以下的标的。
ESG目标函数示例:
ESG_score = Σ(wi * ESG_i)
约束条件:ESG_i >= D级阈值
3.5 约束条件构建
约束条件,说白了就是给优化器画个圈,让它只能在圈里找最优解。没有约束的优化,结果往往不切实际。
常见的约束条件:
| 约束类型 | 具体内容 | 示例 |
|---|---|---|
| 权重约束 | 单只标的权重上下限 | 0% ≤ wi ≤ 10% |
| 行业约束 | 行业暴露度限制 | 行业权重 ≤ 20% |
| 风险预算 | 各风险因子暴露度 | Beta ≤ 1.2 |
| 换手率约束 | 单期换手率上限 | 换手率 ≤ 30% |
| ESG约束 | 最低ESG评分 | ESG ≥ B级 |
我在项目中遇到过最头疼的问题,就是约束条件太多导致无解。后来我学会了「软约束」和「硬约束」的区分——硬约束是必须满足的,软约束是尽量满足的,可以适当放宽。
注意:约束条件不是越多越好。我曾经在一个策略中加了15个约束,结果优化器跑了3个小时还没收敛。后来精简到6个核心约束,5分钟就出结果了。
3.6 决策变量空间
决策变量空间,就是优化器可以调整的参数范围。说白了,就是给优化器一个「操作手册」,告诉它哪些可以调、调多少。
常见的决策变量:
- 权重向量:各标的的配置比例
- 因子暴露度:对风格因子的暴露程度
- 调仓频率:多久调一次仓
- 阈值参数:买卖信号的触发阈值
- 风险预算:各风险因子的分配比例
我个人习惯把决策变量分为两类:连续变量和离散变量。连续变量如权重,可以用梯度优化;离散变量如调仓频率,用网格搜索或遗传算法。
经验之谈:决策变量空间越大,优化难度越高。我建议先固定一部分变量,只优化核心的几个。比如,先固定调仓频率为周频,只优化权重和阈值。等找到不错的结果后,再放开其他变量。
3.7 多目标优化框架图
下面这张图是我自己总结的多目标优化框架,你可以看到各个模块之间的关系:
这张图展示了多目标优化的完整流程:从输入数据开始,经过目标函数设计、约束条件构建,最后到决策变量空间。每个环节都相互关联,缺一不可。
3.8 实战中的权衡
最后说点实战中的体会。多目标优化最大的挑战,就是目标之间的冲突。收益和风险天生就是一对冤家,流动性和收益也常常打架。
我常用的处理方式:
- 加权求和法:给每个目标赋一个权重,然后求加权和。简单但主观。
- 帕累托前沿法:找到所有非支配解,让决策者自己选。客观但计算量大。
- 分层优化法:先优化最重要的目标,再在满足该目标的前提下优化次要目标。
我个人偏好分层优化法。比如,先保证风险不超过某个阈值,再最大化收益,最后优化ESG评分。这样逻辑清晰,也容易跟投资委员会解释。
核心总结:多目标优化不是「既要又要还要」,而是「在约束下找到最优平衡」。目标函数设计是框架的灵魂,约束条件是框架的骨架,决策变量空间是框架的血肉。三者缺一不可。
好了,这一章的内容就到这里。记住,多目标优化没有银弹,关键是根据你的策略特点,找到最合适的平衡点。