3. 阈值再平衡法:设定偏离容忍度,触发式调整
阈值再平衡法,说白了就是给资产配置比例画两条「警戒线」。
比如你设定股票60%、债券40%。股票涨到65%了,或者跌到55%,就触发一次调整。不到线就不动。
这个方法我用了很多年。它最大的好处是——省心。不用天天盯着市场,也不用固定时间调仓。市场波动小的时候,可能一年都不用动一次。波动大的时候,一个月调好几次也正常。
核心逻辑:设定一个容忍区间,资产权重超出区间边界时触发再平衡。
3.1 阈值怎么选?
这个问题,我当年刚入行时也纠结过。选小了,频繁触发,交易成本高。选大了,风险暴露失控,再平衡效果打折扣。
我个人习惯用相对阈值,而不是绝对阈值。举个例子:
- 绝对阈值:目标权重60%,偏离±5%就调。也就是55%~65%区间。
- 相对阈值:目标权重60%,偏离目标权重的±10%就调。也就是54%~66%区间。
相对阈值更合理。你想想看,一个5%权重的资产,偏离±5%意味着它可能变成0%或10%,波动太大了。而一个60%权重的资产,偏离±5%只是55%~65%,影响相对可控。
我一般推荐这么选:
| 资产类型 | 建议相对阈值 | 说明 |
|---|---|---|
| 核心资产(权重>20%) | ±10%~±15% | 波动容忍度可以大一点,减少交易 |
| 卫星资产(权重5%~20%) | ±15%~±25% | 波动大,阈值设宽些避免频繁触发 |
| 小仓位资产(权重<5%) | ±25%~±50% | 基本可以忽略,除非极端情况 |
嗯,这里要注意:阈值不是一成不变的。市场波动率变化时,我会动态调整。比如2020年3月那波暴跌,我主动把阈值放宽了50%,因为那时候一天波动就抵得上平时一个月。
3.2 触发后的调整方式
触发之后怎么调?有两种主流做法:
- 完全回归:一次性调回目标权重。简单粗暴,效果直接。
- 部分回归:只调回阈值边界。比如目标60%,阈值55%~65%,触发后只调到65%或55%的边界。
我个人更倾向部分回归。为什么?
有一次我管理一个多资产组合,股票涨得猛,触发了阈值。我直接全调回60%,结果第二天继续大涨,踏空了。后来改成部分回归,只调回边界,既控制了风险,又留了一部分趋势收益。
小技巧:部分回归的比例可以设为50%。也就是偏离部分只调回一半。这样既控制了风险,又不会完全逆势操作。
3.3 优缺点分析
阈值法的优点很明显:
- 交易频率低:市场平稳时可能几个月都不动一次
- 捕捉极端行情:波动越大,触发越频繁,正好在需要调整的时候调整
- 逻辑清晰:规则简单,容易执行,也容易回测
缺点也不少:
- 阈值选择主观:没有标准答案,全靠经验。我见过有人用5%,有人用20%,都能赚钱,也都能亏钱
- 可能错过趋势:如果市场单边上涨,频繁触发会导致不断卖出强势资产,买入弱势资产
- 交易成本不可控:极端行情下可能一天触发多次,交易成本飙升
避坑指南:我曾经在2015年股灾时吃过亏。当时阈值设得太窄,结果连续触发,每天调仓,交易成本吃掉了一大块收益。后来我加了一条规则:两次触发之间至少间隔5个交易日。效果好了很多。
3.4 一个简单的实现框架
下面是我常用的伪代码逻辑,你可以参考:
# 阈值再平衡伪代码
def threshold_rebalance(portfolio, target_weights, threshold=0.1):
for asset in portfolio:
current_weight = asset.value / portfolio.total_value
target = target_weights[asset.name]
# 计算相对偏离
deviation = (current_weight - target) / target
if abs(deviation) > threshold:
# 触发再平衡
if deviation > 0:
# 超配,卖出
sell_amount = (current_weight - target * (1 + threshold)) * portfolio.total_value
else:
# 低配,买入
buy_amount = (target * (1 - threshold) - current_weight) * portfolio.total_value
execute_trade(asset, sell_amount or buy_amount)
这个框架很简单,但够用。实际项目中,我会加上交易成本模型和最小交易单位限制,避免出现「调仓金额还不够手续费」的尴尬情况。
3.5 知识体系图
下面这张图总结了阈值再平衡的核心逻辑:
这张图把阈值再平衡拆成了三个核心模块:阈值怎么选、触发后怎么调、优缺点怎么权衡。你实际做策略时,这三个问题想清楚了,剩下的就是写代码执行了。