halo 的技术博客

返回

问题:为什么高风险没有换来高回报?#

CAPM 是资产定价的第一课,它给出一个干净漂亮的结论:一只股票的预期超额收益,正比于它的市场 beta。

E[ri]rf=βi(E[rm]rf)E[r_i] - r_f = \beta_i \cdot (E[r_m] - r_f)

画出来就是证券市场线(SML):横轴 beta,纵轴预期收益,一条从无风险利率出发、斜率等于市场风险溢价的陡峭斜线。beta 越高,预期收益越高——高风险高回报,天经地义。

但几十年的实证数据反复打脸:真实的 SML 比 CAPM 预测的平坦得多。 低 beta 股票(公用事业、消费必需品)的风险调整后收益,系统性地高于高 beta 股票(科技、周期股)。你按 beta 从低到高买十组股票,会发现最低 beta 组的夏普比率往往是最高的,最高 beta 组反而最差。这个现象太稳健了,稳健到有了自己的名字——低 beta 异象(low-beta anomaly)

问题来了:这是市场无效(有免费的 alpha 可捡)?还是有更深的结构性原因?Frazzini 和 Pedersen 在 2014 年给出了一个优雅的答案——杠杆约束(leverage constraints)。本文用固定种子 20260801 造一个真实 alpha 严格等于 0 的世界(CAPM 在个股层面完美成立),检验四件事:仅凭杠杆约束能不能把 SML 压平?BAB 因子怎么把这个扭曲变成可交易溢价?它的软肋在哪?以及——如果没有杠杆扭曲,BAB 还赚得到钱吗?

一、杠杆约束如何把 SML 压平#

Frazzini-Pedersen 的核心洞见是这样的:很多投资者想要高收益,但不能(或不愿)借钱加杠杆

  • 共同基金受契约限制,很多不能用杠杆;
  • 散户融资成本高、融资额度受限;
  • 养老金、保险有监管杠杆上限。

这些”受约束”的投资者想追求高于市场的收益,唯一的办法是在不加杠杆的前提下超配高 beta 股票——因为高 beta 股票天然提供了”内置杠杆”。大家一起去抢高 beta,结果就是:

  • 高 beta 股票被买贵了 → 价格偏高 → 未来预期收益被压低;
  • 低 beta 股票被冷落了 → 价格相对便宜 → 未来预期收益相对更高。

在均衡状态下,实现的 SML 就被”压平”甚至可能倒挂。注意:这不需要任何 alpha,也不需要市场非理性。 它纯粹是杠杆约束下的均衡定价扭曲。

我在模拟里严格执行这个逻辑:设定每只股票的真实 alpha = 0(CAPM 在个股层面完美成立),然后叠加一个由杠杆约束导致的定价扭曲——高 beta 收益被压低、低 beta 被抬高,扭曲幅度正比于 beta 偏离市场均值的程度。

证券市场线变平

结果一目了然:理论 CAPM 的 SML(黑虚线)斜率是市场风险溢价 11.4%,但实现的 SML(红实线)斜率被压平到只有 4.6%,截距被抬高到 7.5%。低 beta 股票(左侧)普遍落在 CAPM 线上方(“太高了”),高 beta 股票(右侧)普遍落在下方(“太低了”)。

这张图是整个 BAB 逻辑的地基:在一个 alpha 严格为零的世界里,仅仅因为一部分投资者不能加杠杆,SML 就被压平了。低 beta 股票的”超额收益”不是 alpha,是别人被杠杆约束逼出来的定价扭曲

二、BAB 因子:做多低 beta 加杠杆,做空高 beta 去杠杆#

既然低 beta 股票被低估、高 beta 被高估,最直接的套利就是做多低 beta、做空高 beta。但这里有个关键细节,也是 BAB 相对朴素”低 beta 组合”的精妙之处:必须做到 beta 中性。

如果你只是简单地做多低 beta 组、做空高 beta 组,你的组合会有一个净的负 beta(低 beta 腿的 beta 小于高 beta 腿)——市场一涨,你的组合天然吃亏,赚的钱一部分只是空头 beta 的反向暴露,不纯粹。

Frazzini-Pedersen 的做法是:

  • 做多低 beta 腿,并加杠杆把这条腿的 beta 放大到 1(比如低 beta 腿组合 beta=0.7,就用 1/0.7≈1.43 倍杠杆);
  • 做空高 beta 腿,并去杠杆把这条腿的 beta 缩小到 1(比如高 beta 腿 beta=1.4,就只用 1/1.4≈0.71 的仓位)。

两条腿的 beta 都被标准化到 1,多空相抵,组合净 beta ≈ 0——纯粹的市场中性,赚的完全是低 beta 相对高 beta 的定价差。

# 每天按估计 beta 排序,分低/高两半
low, high = idx[order[:n_half]], idx[order[n_half:]]
# 两腿各按 1/beta 加权
wl = (1/b[low]);  wl /= wl.sum()
wh = (1/b[high]); wh /= wh.sum()
beta_low, beta_high = np.sum(wl*b[low]), np.sum(wh*b[high])
# 关键:做多低beta腿加杠杆到beta=1,做空高beta腿去杠杆到beta=1
lev_long, lev_short = 1/beta_low, 1/beta_high
port_ret = lev_long*ret_long - lev_short*ret_short
python

BAB 净值与 beta 中性验证

图2a 是 BAB 组合的净值曲线:稳健向上,Sharpe 1.65,远超市场买入持有的 0.64。BAB 的收益率并不比市场高多少(年化 5.5%),但它的波动小得多——因为它是市场中性的,不吃市场的方向风险,只赚低 beta 相对高 beta 的稳定价差。

图2b 验证了 beta 中性:把 BAB 的日收益对市场日收益回归,斜率(即组合 beta)只有 0.052——几乎完全的市场中性。这是 BAB 相对朴素低波动策略的关键优势:它把”低 beta 溢价”从”低市场暴露”里干净地剥离出来,无论市场涨跌都能提取这个溢价。

三、致命软肋:你能不能低成本加杠杆?#

BAB 有一个绕不过去的问题,它甚至就写在这个因子的名字里——你必须给低 beta 腿加杠杆。低 beta 腿的 beta 只有 0.7,要把它放大到 1,你得借钱(或用保证金、期货、掉期)把仓位做到 1.43 倍。加杠杆是要付融资成本的。

这就带来一个尖锐的讽刺:BAB 赚的正是”别人不能加杠杆”的钱,但你自己要吃到这个溢价,恰恰得能低成本加杠杆。 如果你的融资成本和那些受约束的投资者一样高,这个溢价就被融资成本吃光了。

杠杆成本敏感性

我把做多腿的年化融资成本从 0 扫到 8%,看 BAB 的 Sharpe 怎么变:

融资成本BAB SharpeBAB 年化收益
0%1.655.5%
1%1.50
2%1.35
3%1.20
5%0.90
8%0.45显著缩水

图3a/3b 的下滑趋势很陡:融资成本每上升 1%,Sharpe 大约掉 0.15。成本到 3% 时 Sharpe 从 1.65 掉到 1.2,到 8% 时只剩 0.45——溢价被大幅侵蚀。这不是细节,这是 BAB 能不能实盘的生死线。 对冲基金、自营盘能以接近无风险利率的成本融资,BAB 对它们是真金白银的 alpha;对融资成本高的投资者,这个溢价看得到、吃不到。

这也从反面印证了 Frazzini-Pedersen 的逻辑:低 beta 溢价的存在,正是因为大量投资者融资成本高或受约束。 如果所有人都能免费加杠杆,大家都会去套这个利,溢价早就被抹平了。溢价能长期存在,恰恰因为能低成本加杠杆的钱是稀缺的。

四、对抗式检验:这溢价是真的吗?#

一个 Sharpe 1.65 的市场中性因子,太漂亮了,漂亮到必须怀疑。四个对抗式检验直击要害。

对抗式检验:无扭曲世界、beta估计误差、置换、十分位

图4a:无杠杆扭曲的世界里,BAB 赚得到钱吗? 这是最关键的一个检验。我把杠杆扭曲关掉(真实 alpha=0 且 SML 不被压平,CAPM 完美成立),重跑 BAB——Sharpe 变成 -0.22,净值曲线(灰)在零附近徘徊甚至向下。这证明了一件至关重要的事:BAB 的溢价完全来自杠杆约束导致的定价扭曲,而不是数据挖掘或某种统计假象。 扭曲在,BAB 就赚钱;扭曲不在,BAB 就是一条死鱼。任何声称”低 beta 异象”的策略,都应该先问:如果 SML 不平,我还赚得到吗?如果答案是”照样赚”,那你赚的根本不是这个溢价,是别的东西(很可能是 bug 或 look-ahead)。

图4b:beta 估计误差有多大影响? BAB 依赖对每只股票 beta 的估计,而 beta 是估出来的、有噪声的。我对比了用真实 beta(oracle,偷看了真相)排序和用滚动估计 beta排序的 BAB:滚动估计与真实 beta 的相关系数 0.971(估得相当准),oracle 的 Sharpe 是 1.62,滚动估计的 Sharpe 1.65——两者非常接近。这说明在 beta 估计足够准(相关 0.97)时,估计误差对 BAB 的伤害有限。 但反过来说,如果你的 beta 估计很糟(相关掉到 0.7 以下),排序就会大量出错,低 beta 组混进高 beta 股票,溢价被稀释。beta 估计质量是 BAB 的隐性前提。

图4c:随机分组置换检验。 我把”按 beta 分多空组”换成”随机分多空组”,跑 300 次,得到零假设下的 Sharpe 分布:95 分位只有 0.55,最大 0.79。真实 BAB 的 1.65 远远甩开——证明 BAB 的收益来自”按 beta 排序”这个真实结构,不是随便分组也能刷出来的运气。(注意:这里必须用随机分组置换,而不是打乱 BAB 已实现日收益的顺序——后者会保持 Sharpe 不变,是无效检验。)

图4d:beta 十分位的实现收益。 按 beta 从低到高分十组,看各组的年化实现收益:低 beta 组的收益并不比高 beta 组低——在真实 alpha=0 但 SML 被压平的世界里,低 beta 组承担的风险远小于高 beta 组,却拿到了相近甚至更高的收益。风险调整后(除以各组波动),低 beta 组的优势就更明显了。这正是”低 beta 异象”在个股层面的直接体现。

三段式总结#

A. 实现细节#

  • 数据生成:400 只股票、2520 日(约 10 年)。每只股票日收益 = 真实 beta × 市场收益 + 特异噪声,真实 alpha 严格设为 0(CAPM 在个股层面完美成立)。真实 beta 横截面从 0.4 到 1.8。固定种子 20260801
  • 杠杆扭曲:在个股收益上叠加一个正比于 beta 偏离均值的定价扭曲(高 beta 被压、低 beta 被抬),模拟杠杆约束下的均衡结果。这是 BAB 溢价的唯一来源——关掉它,BAB 就不赚钱。
  • beta 估计:252 日滚动窗口 OLS,因果(只用历史)。BAB 组合每日按估计 beta 排序、分低/高两半、各腿按 1/beta 加权、做多低 beta 腿加杠杆到 beta=1、做空高 beta 腿去杠杆到 beta=1,实现组合净 beta≈0。
  • 对抗式检验:(1) 关闭杠杆扭曲重跑 BAB;(2) oracle(真实 beta)vs 滚动估计 beta 的对比;(3) 随机分组置换 300 次(非打乱已实现收益);(4) beta 十分位实现收益分布。

B. 已知偏差#

  • 杠杆扭曲是外生设定的:本文直接把”高 beta 被压、低 beta 被抬”的定价扭曲叠加到收益上,而没有从投资者的杠杆约束优化里内生地推导出来。真实世界这个扭曲的幅度、稳定性是经验问题,会随市场情绪、货币政策(融资便利度)波动。
  • 融资成本简化:只对做多腿加杠杆的部分计固定年化利息,没有建模保证金追缴、融资额度限制、期货展期成本、做空的借券成本与轧空风险。真实 BAB 的成本结构比这复杂,做空高 beta 股票尤其可能遭遇借券难、借券贵。
  • beta 估计的时变性:本文用 252 日滚动 OLS 估 beta,假设 beta 在窗口内稳定。真实 beta 会漂移(见另一篇卡尔曼动态对冲),估计滞后会让排序失真,尤其在市场 regime 切换时。
  • 零交易成本口径:每日重排多空组意味着高换手,本文未建模买卖价差和冲击成本。真实 BAB 通常用月频或更低频调仓来控制换手,Sharpe 会因此打折。
  • 横截面同质假设:模拟里特异波动与 beta 无关、股票同质。真实市场低 beta 股票常集中在特定行业(公用事业、必需消费),BAB 可能隐含行业押注,需要额外的行业中性化。

C. 结果解读#

  • 低 beta 异象不需要 alpha 来解释:本文最重要的结论是——在一个真实 alpha 严格为零的世界里,仅凭杠杆约束就能把 SML 从 11.4% 压平到 4.6%,产生一个 Sharpe 1.65 的可交易因子。低 beta 溢价不是”市场犯错留下的免费午餐”,而是杠杆约束下的均衡定价扭曲。 这个区分很重要:均衡扭曲比”市场错误”稳定得多,也持久得多。
  • BAB 的价值 = 你的融资成本优势:融资成本从 0 到 8%,Sharpe 从 1.65 崩到 0.45。BAB 赚的是”别人不能加杠杆”的钱,而你要吃到它,恰恰得能低成本加杠杆。这个溢价对能以近无风险利率融资的机构是真 alpha,对融资成本高的投资者是看得到吃不到的镜花水月。 溢价能长期存在,正因为廉价杠杆稀缺。
  • “无扭曲则不赚钱”是诚实性的证据:图4a 里关掉扭曲后 BAB 变成 -0.22,这不是坏消息,是好消息——它证明 BAB 的收益确实来自它声称的来源(杠杆约束),而非数据挖掘。任何因子策略都该做这个检验:把你假设的收益来源关掉,如果还赚钱,你赚的就不是你以为的东西。
  • beta 中性是 BAB 的灵魂:组合 beta 只有 0.052(图2b)。如果不做 beta 中性化,简单的”多低空高”会残留负 beta,收益里混进市场方向的反向暴露——熊市里看着赚钱,牛市里莫名其妙亏。BAB 的 1/beta 加权正是为了把低 beta 溢价从市场 beta 里干净剥离。
  • 适用边界:BAB 最适合能低成本加杠杆、能低成本做空、且能承受高换手的机构投资者。对个人投资者,融资成本、做空成本、借券风险三座大山会把溢价吃掉大半——一个更现实的近似是不加杠杆地超配低 beta 股票(吃到一部分溢价,放弃 beta 中性和杠杆放大)。先算清你的融资成本,再决定要不要碰 BAB。
BAB 杠杆厌恶因子:被杠杆约束压低的低 Beta 溢价
https://blog.halo26812.eu.org/blog/beta-arbitrage-bab
Author halo
Published at 2026年8月1日
版权声明 CC BY-NC-SA 4.0
Comment seems to stuck. Try to refresh?✨