halo 的技术博客

返回

「买指数基金,长期持有」是散户听得最多的建议;「精选个股,战胜市场」是主动基金经理的卖点。但两者之间,其实还藏着一条被忽视的路:Smart Beta(聪明贝塔)——它不像主动基金那样依赖基金经理的主观判断,也不像传统市值加权指数那样机械地「涨得多就买得多」,而是把学术界验证过的因子溢价,用透明、规则化的方式编进组合。

一句话概括 Smart Beta 的精髓:用规则战胜情绪,用结构捕获长期溢价,而不是试图预测明天的涨跌。

一、因子动物园:我们到底在赚谁的钱#

因子(Factor)是能解释资产收益横截面差异的系统性特征。最经典的是 Fama-French 三因子模型:市场(Market)、规模(Size,小盘溢价)、价值(Value,低估值溢价);后来加上动量(Momentum,过去赢家继续赢)、质量(Quality,高 ROE/低杠杆)、低波(Low Volatility,波动低的股票长期回报不差)等。

六类因子月度累积净值:风险溢价存在但路径各异

为什么这些因子能长期带来超额收益?主流有两派解释:

  • 风险补偿派:小盘、价值承担了更高的基本面风险(如财务困境、周期敏感性),所以理应获得更高预期回报。这是「天下没有免费午餐」的视角。
  • 行为偏差派:投资者系统性地反应过度或反应不足——追逐热门成长股推高估值、回避「破净」价值股,造成价值因子的长期错位定价。这是「市场先生偶尔犯傻」的视角。

实务中你不必二选一。重要的是:因子溢价存在 ≠ 每年都赚钱。多数因子都有 3~5 年甚至更长的「失效期」,这正是后面要谈的陷阱根源。

二、构建 Smart Beta 组合的四种姿势#

Smart Beta 不是某个固定策略,而是一类「加权方式」。常见的几种:

  1. 等权(Equal Weight):不分大小,每只股票 1/N。天然低配巨头、超配小盘,隐含规模因子暴露。
  2. 最小方差(Min Variance):在给定收益约束下最小化组合波动,低波因子的直接落地。
  3. 基本面加权(Fundamental Indexing):按营收、现金流、分红、净资产等基本面规模加权,而非股价市值加权,避免「泡沫越大权重越高」。
  4. 因子倾斜(Factor Tilt):在市值加权基础上,系统性超配高分因子股(如高价值+低波动),主动拿一点因子暴露。

其中最小方差有漂亮的闭式解,也是 Smart Beta 里最「量化」的一种。给定协方差矩阵 Σ\Sigma,最小方差权重为:

wmv=Σ111TΣ11w_{mv} = \frac{\Sigma^{-1}\mathbf{1}}{\mathbf{1}^T\Sigma^{-1}\mathbf{1}}

权重对比:最小方差组合显著压低高波动个股敞口

对比两张权重图你会看到:市值加权把近一半筹码压在最大那几只股票上,而最小方差组合把权重摊得更匀、并自动压低高波动个股的敞口——这就是「不靠预测,靠结构降风险」。

三、代码实战:因子组合回测#

光讲权重不够,我们用一组合成的因子月收益,搭建一个可运行的回测框架,对比 Smart Beta 与市值加权基准。

累积净值对比:Smart Beta 在相近收益下更低的波动路径

因子相关性矩阵:分散化前提是因子间低相关

这段代码的三个要点:

  1. 分散化依赖低相关:如果所有因子高度正相关(相关系数接近 1),叠加它们毫无意义,等于重复押注同一个因子。上面的相关性热力图正是检查这一点的工具——健康的多因子组合,因子间相关应明显低于 0.7。
  2. 倾斜而非满仓:Smart Beta 示例只「倾斜」了 60% 低波 + 40% 价值,而不是 100% all-in 某一个因子,目的是把单因子失效期的伤害控制在可承受范围。
  3. 看风险调整收益:比较组合不能只看累计净值高低,必须看 Sharpe(年化收益/年化波动)。Smart Beta 的价值往往体现在「相近收益、更低波动」。

四、陷阱:因子投资不是免费午餐#

如果因子溢价这么稳定,为什么不是所有人都去买?因为真实世界里有三个大坑:

1. 因子拥挤(Factor Crowding)。 当一个因子被太多资金追逐,它的溢价会被「买没了」,甚至反转。2017~2020 年的动量因子崩塌、2020 年价值因子的漫长失效,都是拥挤 + 风格逆转的结果。拥挤度可用:因子收益自相关骤降、相关策略换手骤增、估值分位极端 来监测。

2. 换手率与交易成本。 很多因子(尤其动量)需要频繁调仓。回测里「零成本」的漂亮曲线,计入双边印花税、佣金、冲击成本后,可能直接被打穿。实务经验:因子月频调仓的净收益,常常只有回测毛收益的 30%~60%。

3. 容量与因子择时。 小盘、高换手因子容量小,资金一大就失效;而「现在该配哪个因子」本质是因子择时,这比选股更难——多数择时模型在样本外并不稳定。

# 换手成本压力测试:把交易成本从组合收益中扣除
cost_per_turn = 0.0010          # 单边 10bps(含冲击)
turnover = np.abs(np.diff(sb_ret)).mean() * 12   # 年化合意换手近似
net_sb = sb_ret - cost_per_turn * np.abs(np.diff(np.r_[0, sb_ret]))  # 简化扣除
print(f"忽略成本 Sharpe ≈ {perf(sb_ret)[2]:.2f}")
print(f"年化合意换手 ≈ {turnover:.1%}(高换手会显著侵蚀净收益)")
python

五、实务框架:把 Smart Beta 用对#

结合上面所有内容,一个稳妥的 Smart Beta 落地框架是:

  • 逻辑优先:只用你理解其经济含义的因子,拒绝「回测好看但说不清为什么」的因子。
  • 多因子分散:同时持有 2~4 个低相关因子,避免单因子失效期归零。
  • 控制换手:尽量用季度/半年度调仓,或用阈值再平衡(偏离超过 X% 才调),把交易成本压下来。
  • 容量自知:大资金避开小盘高换手因子,把主仓放在低波、质量这类容量友好的因子。
  • 监控拥挤度:定期看因子的估值分位、资金流入、收益自相关,拥挤信号亮红灯就降权。

小结#

Smart Beta 的迷人之处,在于它把「战胜市场」这个模糊的目标,翻译成了一组可验证、可复制、可控制成本的规则。它不承诺每年跑赢,但它在三个层面优于纯主动或纯被动:比被动多一层结构化溢价捕获,比主动多一层透明与纪律,比两者都更省心。真正的风险不在因子本身,而在你忘了因子也会失效、忘了交易成本、忘了拥挤——用规则战胜情绪的前提,是你先尊重规则之外的现实。

本文代码示例基于合成数据演示方法论,实盘需接入真实行情、计费成本并以样本外数据校验。因子投资有风险,历史溢价不代表未来,不构成任何投资建议。

Smart Beta 与因子投资:用规则战胜情绪,而非预测市场
https://blog.halo26812.eu.org/blog/smart-beta-factor-investing
Author halo
Published at 2026年7月10日
版权声明 CC BY-NC-SA 4.0
Comment seems to stuck. Try to refresh?✨