核心卫星策略配置框架:用 70% 被动核心 + 30% 主动卫星,把稳健和锐度都装上
做配置最纠结的不是「买什么」,是「稳健」和「锐度」打架:全买指数怕错过 alpha,全做主动怕回撤裸奔。核心-卫星(Core-Satellite)把这事拆成两层——大头(核心)买宽基指数拿市场 beta + 低成本,小头(卫星)做主动策略博超额。本文用合成宇宙的 mu/sigma 解析算出:纯被动期望年化 7.0%(Sharpe 0.33)、核心-卫星(70/18/12)抬到 8.3%(Sharpe 0.44)、纯卫星到 11.0%(Sharpe 0.58),并用成分风险贡献证明核心占 70% 权重却只扛 ~72% 波动——卫星用小仓位撬动了不成比例的收益。附完整 Python 与五类真实陷阱(中阶)。
你有一笔钱要做长期配置,最纠结的从来不是「买什么」,而是两个互相打架的目标:既要稳,又要跑得动。
全买宽基指数 ETF?稳是稳了,但「全程裸多一个 beta」——大盘跌 30% 你一分不少地吃,且永远拿不到任何主动 alpha。全仓做主动策略、押行业、押因子?锐度是够,但波动大、回撤深,一旦风格逆风就裸奔。
核心-卫星(Core-Satellite)策略要解决的,就是这桩矛盾:把组合切成两层——
- 核心(Core):占大头(通常 70%~90%),买宽基指数 ETF,目标是拿到「市场该给的 beta」+ 极低的成本,不求有功但求无过;
- 卫星(Satellite):占小头(10%~30%),做主动的事——行业轮动、因子 tilt、个股精选、CTA、甚至私募——目标是博取指数之外的超额收益。
一笔钱,底层吃稳健,上层吃锐度。本文用合成宇宙的 mu/sigma 把这件事算清楚。

1. 三个方案,先算期望#
设三个资产:核心=宽基指数(年化 mu 7%、sigma 15%)、卫星1=动量因子 tilt(mu 12%、sigma 19%)、卫星2=价值因子 tilt(mu 10%、sigma 17%),相关性用一组合理的矩阵串起来。三种配置:
- 纯被动:100% 在核心;
- 核心-卫星:核心 70% / 动量 18% / 价值 12%;
- 纯卫星:动量 50% / 价值 50%。
期望指标直接由 mu 与协方差矩阵解析算出(不依赖任何随机路径):
import numpy as np
ann_mu = np.array([0.070, 0.120, 0.100]) # 核心 / 动量 / 价值
ann_sd = np.array([0.150, 0.190, 0.170])
C = np.array([[1.00, 0.62, 0.55],
[0.62, 1.00, 0.50],
[0.55, 0.50, 1.00]])
Cov = (ann_sd[:, None] * ann_sd[None, :]) * C # 年化协方差
W_passive = np.array([1.0, 0.0, 0.0])
W_cs = np.array([0.70, 0.18, 0.12])
W_sat = np.array([0.0, 0.50, 0.50])
def exp_metrics(w):
mu_p = w @ ann_mu
sd_p = np.sqrt(w @ Cov @ w)
return mu_p, sd_p, (mu_p - 0.02) / sd_p # 期望年化、波动、Sharpe(rf=2%)
for name, w in [("纯被动", W_passive), ("核心-卫星", W_cs), ("纯卫星", W_sat)]:
mu, sd, sh = exp_metrics(w)
print(f"{name:8s} 期望年化 {mu*100:5.2f}% 波动 {sd*100:5.2f}% Sharpe {sh:.2f}")python跑出来:
| 配置 | 期望年化 | 波动 | Sharpe |
|---|---|---|---|
| 纯被动(100% 核心) | 7.00% | 15.00% | 0.33 |
| 核心-卫星(70/18/12) | 8.26% | 14.18% | 0.44 |
| 纯卫星(50/50) | 11.00% | 15.60% | 0.58 |
结论先放这:核心-卫星在几乎不增加波动(15.0% → 14.2%)的前提下,把期望年化从 7.0% 抬到 8.3%,Sharpe 从 0.33 抬到 0.44。而纯卫星虽然期望年化最高(11%),但代价是「把全部鸡蛋放进主动篮子」——它吃掉的是最差回撤和风格裸奔的风险,不是免费的午餐。
2. 成分风险贡献:核心真的只扛了「它该扛」的波动吗#
核心-卫星的精髓在于:核心吃的是「市场 beta 那部分波动」,卫星吃的是「主动那部分」。用成分风险贡献把账拆开:
pv = W_cs @ Cov @ W_cs # 组合方差
mrc = Cov @ W_cs # 边际风险贡献
rc = W_cs * mrc # 成分风险贡献(方差单位)
rc_pct = rc / pv # 占总风险的比例
print("权重 %:", np.round(W_cs*100, 1)) # [70. 18. 12.]
print("风险贡献 %:", np.round(rc_pct*100, 1)) # [71.7 18.6 9.7]python算出:核心占 70% 权重,却只贡献 71.7% 的总风险;两个卫星合计只占 30% 权重,却贡献了 28.3% 的风险。进一步看年化成分波动——核心 12.0%、动量 6.1%、价值 4.4%——核心用最大的权重,提供了相对最「便宜」(单位权重产出最低风险)的波动。这正是核心-卫星能「以小博大」的结构原因:卫星那 30% 仓位,撬动了不成比例的主动收益,又没让组合总波动失控。

3. 一个示意图:三种配置的累计净值#
下面这张净值曲线是固定随机种子采样的示意路径(仅展示形态,不代表任何真实历史)。它能直观说明:核心-卫星的曲线几乎贴着纯被动走,但在中段主动风格顺风时明显拉开——终值 4.94x,高于纯被动的 3.86x,远低于纯卫星的 7.93x,但波动率也远低于纯卫星。

# 示意路径:对数收益 = (mu - 0.5*sd^2)/12 + 月度噪声
rng = np.random.default_rng(4578)
Z = rng.standard_normal((240, 3))
L = np.linalg.cholesky(Cov)
monthly = (ann_mu/12 - 0.5*ann_sd**2/12) + (Z @ L.T)/np.sqrt(12)
nv_cs = (1 + monthly @ W_cs).cumprod()
nv_p = (1 + monthly @ W_passive).cumprod()
print(f"20年终值: 纯被动 {nv_p[-1]:.2f}x | 核心-卫星 {nv_cs[-1]:.2f}x")python4. 怎么落地:核心和卫星分别装什么#
核心层(稳健底座):宽基指数 ETF 是最自然的容器——沪深 300 / 中证 A500 / 标普 500,费率低、透明、不会死。核心的任务只有一个:拿到市场 beta,别折腾。
卫星层(锐度来源),常见几类,按「主动程度」从低到高:
- 因子 tilt ETF:低波、红利、质量、动量类 Smart Beta,本质是「半被动的主动」;
- 行业/主题 ETF:新能源、AI、黄金,赌的是结构性机会;
- 主动基金 / 量化选股:真正靠 alpha 吃饭的部分;
- 另类:CTA、套利、黄金、REITs,和股债相关性低,起分散作用。
卫星的关键在于**「小」**——它允许你激进,是因为它只占 30%。这 30% 即使归零,组合也只伤筋不动骨;而这 30% 一旦抓对一轮风格,回报足以把整体 Sharpe 抬一个档次。
5. 五类真实陷阱(别只看上面的漂亮数字)#
- 卫星的 alpha 会被费用吃光:主动基金费率 1%~2%/年,30% 仓位的主动部分每年先被刮掉 0.3%~0.6%,核心-卫星那 1.3% 的年化增益说没就没。所以卫星优先用低费率的因子 ETF,而不是高费率主动基。
- 再平衡纪律:核心涨了、卫星跌了,权重会漂移。不季度/半年度再平衡,几年后「核心-卫星」会变成「纯被动」或「纯卫星」,框架名存实亡。再平衡本身也是「被动低买高卖」。
- 卫星之间的相关性被低估:你以为装了「动量 + 价值 + CTA」三个卫星很分散,但危机时它们可能集体和股票同向暴跌。卫星内部也要看相关性,别把同源风险当分散。
- 「核心」不是无风险:核心就是市场 beta,2008 / 2015 / 2022 年它照样跌 30%~50%。核心-卫星降低的是「主动踩雷」,不是「系统性风险」。想压系统性风险,得看下一个话题——风险平价。
- 幸存者偏差与回测顺风顺水:上面的合成宇宙里卫星 mu 高于核心,是「已知答案」的设定。真实世界里,多数主动策略的超额收益在扣费后不显著,卫星能不能真的产出 alpha,需要你自己用实盘前样本外去验证,不能默认「装了就赚」。
一句话总结:核心-卫星不是一个「更牛的策略」,而是一个让稳健和锐度不再二选一的配置框架——用 70% 被动核心锁住底线,用 30% 主动卫星去博上限。它赢不在某一年跑得多猛,而在「你能坚持得下去」:波动可控、逻辑透明、再平衡机械可执行。真正难的从来不是设计框架,是管住手不去把 30% 卫星加到 80%。