第 5 章 · 04 风险溢价:低波、波动率风险溢价、隔夜异常、残差动量


文档摘要

第 5 章 · 04 风险溢价:低波、波动率风险溢价、隔夜异常、残差动量 本节摘要:本节精读 quant-wiki docs/repo/static/strategies 下四个「风险溢价」族系的脚本: (低波动因子,3 年周收益波动排序,多最低四分位)、 (波动率风险溢价,卖 ATM 跨式 + 买 OTM 认沽作保险 + 持有指数)、 (隔夜异常,SPY 收盘前买、次日开盘卖,用 SPY/VIX/BMS 三信号触发)、 (残差动量,先把收益对 Fama-French 三因子回归取残差,再做动量)。四者分别捕捉「低波异常」「方差风险溢价」「日内 vs 隔夜情绪」「剥离风格后的纯动量」,是风险溢价研究的四个经典切入点。

第 5 章 · 04 风险溢价:低波、波动率风险溢价、隔夜异常、残差动量

本节摘要:本节精读 quant-wiki docs/repo/static/strategies 下四个「风险溢价」族系的脚本:low-volatility-factor-effect-in-stocks.py(低波动因子,3 年周收益波动排序,多最低四分位)、volatility-risk-premium-effect.py(波动率风险溢价,卖 ATM 跨式 + 买 OTM 认沽作保险 + 持有指数)、market-sentiment-and-an-overnight-anomaly.py(隔夜异常,SPY 收盘前买、次日开盘卖,用 SPY/VIX/BMS 三信号触发)、residual-momentum-factor.py(残差动量,先把收益对 Fama-French 三因子回归取残差,再做动量)。四者分别捕捉「低波异常」「方差风险溢价」「日内 vs 隔夜情绪」「剥离风格后的纯动量」,是风险溢价研究的四个经典切入点。本节讲清每个脚本的信号构造与关键工程,重点是波动率风险溢价的期权组合与残差动量的回归剥离。

内容来源:quant-wiki docs/repo/static/strategies,真实 Python 策略脚本,知识结构化整理。

⚠️ 学习提示:本节涉及期权与衍生品,回测结果对假设(波动率模型、流动性、借券成本)极敏感。波动率风险溢价在历史上长期盈利,但 1987 年「黑色星期一」、2018 年「波动率末日」等极端事件会一次亏掉数年利润,属典型的「捡硬币」策略。

学习目标

阅读完本节,你应当能够:

  1. 说清低波动异常的脚本实现(3 年周收益波动排序)。
  2. 描述波动率风险溢价的期权组合(卖跨式 + 买保护 + 持指数)。
  3. 解释隔夜异常的三信号触发逻辑(SPY 上穿、VIX 下穿、BMS 上穿)。
  4. 复现残差动量的 Fama-French 三因子回归剥离。
  5. 区分四种「风险溢价」的来源(风险偏好、方差供给、情绪、纯 alpha)。

一、四种风险溢价

风险溢价是「承担某种风险所换来的长期正收益」。本节四个脚本捕捉四种不同的风险溢价:

脚本 溢价来源 信号 工具
低波动因子 低波异常(行为偏差) 3 年周收益波动 股票多腿
波动率风险溢价 方差供给 vs 需求 隐含波动 - 实际波动 期权 + 指数
隔夜异常 日内/隔夜情绪差 收盘买、开盘卖 ETF 日内
残差动量 剥离风格后的纯动量 FF 三因子回归残差 股票多空

💡 心法:这四种溢价的共同点是「承担他人不愿承担的风险」。低波股承担「不够性感」的风险,VRP 承担「崩盘尾部」风险,隔夜承担「隔夜跳空」风险,残差承担「剥离常见风格后剩余的不确定性」。

二、低波动因子:3 年周收益波动

2.1 低波异常

低波动因子捕捉「低波动异常」(low-volatility anomaly):理论上高风险应有高收益,但实证上低波动股票的风险调整后收益反而更高。这一现象在全球多个市场长期存在,行为金融解释是散户的「彩票偏好」推高了高波动股票的价格。

2.2 脚本实现

脚本用过去 3 年(约 252 日)的周收益波动率作为排序键:

def volatility(self) -> float: closes = [x for x in self.price] # 把日线按每 5 天分组算周收益 separete_weeks = [closes[x:x+5] for x in range(0, len(closes), 5)] weekly_returns = [(x[0] - x[-1]) / x[-1] for x in separete_weeks] return np.std(weekly_returns)

这里有个工程细节:脚本不是用 21 日日波动,而是显式地把日线按 5 天切片算周收益,再取标准差。这种「周波动」比日波动更平滑,降低了微观结构噪声。

要素 实现
宇宙 前 3000 大市值股票
信号 3 年周收益波动率
分组 4 分位(quartile)
多空 只多最低波动四分位(纯多头版)
加权 等权
再平衡 月末

⚠️ 注意:这是「纯多头版」(long-only)——只买最低波动的股票,不做空。与 BAB 的多空对冲不同,低波纯多头组合仍承担市场 beta,牛市跑赢、熊市跑输,要按风险调整收益评估而非绝对收益。

三、波动率风险溢价:卖方差

3.1 VRP 的经济逻辑

波动率风险溢价(volatility risk premium,VRP)来自期权市场的「隐含波动率」长期高于「实际波动率」——期权买方为期权「保险属性」付溢价,卖方通过卖期权赚取这个价差。脚本的策略是卖 ATM 跨式(straddle,同时卖 call 和 put),收权利金。

3.2 三件套组合

裸卖跨式风险极大(崩盘时无限亏损),所以脚本用三件套对冲:

# 1. 卖 ATM 跨式,收权利金 self.Sell(atm_call[0].Symbol, options_q) self.Sell(atm_put[0].Symbol, options_q) # 2. 买 15% OTM 认沽作崩盘保险 self.Buy(otm_put[0].Symbol, options_q) # 3. 剩余资金买入指数,博上行 self.SetHoldings(self.symbol, 1)

逻辑分解:(1) 卖跨式收权利金——只要指数在到期日落在 strike 附近,权利金就是纯利润;(2) 买深度 OTM 认沽——成本较低但崩盘时能爆赚,等于给组合买「黑天鹅保险」;(3) 持有指数——剩余资金博取市场上行收益。

3.3 关键参数与陷阱

参数 取值 作用
到期日 距今约 30 天 月度滚动
OTM 认沽行权价 标的价的 85% 15% 跌幅才触发保护
杠杆 5 倍 期权保证金杠杆
再平衡 月度 到期前换月

⚠️ 致命陷阱:VRP 是典型的「胜率高、赔率低」策略——多数月份小赚,极少数月份大亏。回测时如果没遇到崩盘月,会得到「漂亮到不真实」的净值曲线。务必用足够长的历史(含 2008、2020)回测,并做最坏情景压力测试。买 OTM 认沽的成本会持续侵蚀收益,保险买少了不够保护,买多了利润全无。

四、隔夜异常:收盘买、开盘卖

4.1 隔夜 vs 日内

研究发现美股的收益大部分来自隔夜(开盘跳空),日内反而接近零甚至为负。market-sentiment-and-an-overnight-anomaly.py 利用这一点:在收盘前买入 SPY,次日开盘卖出,纯粹吃隔夜溢价。

4.2 三信号触发

不是每天都做,而是用三个信号过滤:

# 信号1: SPY 价格上穿其 20 日均线 # 信号2: VIX 下穿其 20 日均线(恐慌下降) # 信号3: BMS(Brain Market Sentiment) 上穿其 20 日均线 # 三信号满足的数量决定仓位权重 for symbol in [self.spy_symbol, self.vix_symbol, self.bms_symbol]: if rolling_window.IsReady and self.GetSignal(price, rolling_window, signal_above_sma): weight += 1 / 3

每个信号满足则权重加 1/3,三信号全满足则满仓。然后:

# 收盘前下单买入 self.MarketOnCloseOrder(self.spy_symbol, q) # 次日开盘下单卖出 self.MarketOnOpenOrder(self.spy_symbol, -q)

MarketOnCloseOrder + MarketOnOpenOrder 这一对手法精确实现了「隔夜持仓」。

💡 关键观察:脚本强调「建议作为叠加层(overlay)使用,而非独立策略」。隔夜异常的绝对收益不大,但与日内策略相关性低,作为叠加层能提升组合夏普。这一提示对量化组合设计有普适意义——许多「异象」单独跑收益薄,叠加起来才显价值。

五、残差动量:剥离风格后的纯动量

5.1 为什么需要「残差」

传统动量(12-1 月收益)混入了规模、价值等风格暴露:一只小盘价值股的上涨可能不是「动量」,而是「规模/价值因子」起作用。残差动量把收益对 Fama-French 三因子回归,取 alpha(残差)做动量信号,理论上更「纯」。

5.2 三因子回归剥离

脚本每月对每只股票跑回归:

# 三因子: 市场、规模(SMB)、价值(HML) x = [ [x for x in market_factor], [x for x in self.size_factor_vector], [x for x in self.value_factor_vector] ] regression_model = self.MultipleLinearRegression(x, monthly_returns) alpha = regression_model.params[0] # 回归截距即残差 alpha

然后对过去 12 个月的残差 alpha 做标准化:

standardized_residual_momentum[symbol] = sum(residual_returns) / np.std(residual_returns)

最后按标准化残差动量排序,多最高 decile / 空最低 decile。

5.3 因子向量的构造

脚本本身还要先构造 SMB 与 HML 因子向量(用市值分位与 PB 分位),这是一个「迷你版 Fama-French」:

  • SMB:按市值分 5 组,最高 quintile 减最低 quintile 的月度收益;
  • HML:按 PB 分 5 组,最低 PB 减最高 PB 的月度收益;
  • MKT:SPY 的月度超额收益。

⚠️ 工程量:残差动量脚本是本章最复杂的——既要维护个股月度价格,又要实时计算 SMB/HML 因子,还要跑 36 个月回归。计算量大约是普通动量脚本的 5-10 倍。复现时建议用 statsmodels 的 OLS,并做向量化批量回归。

六、四个脚本的对照与启示

维度 低波动 VRP 隔夜异常 残差动量
信号 周波动排序 隐含-实际波动 隔夜 vs 日内 三因子残差
多空 纯多头 期权卖方 纯多头 多空对冲
工具 股票 期权+指数 ETF 日内 股票+因子
主要风险 市场 beta 崩盘尾部 隔夜跳空 因子模型误设
复杂度 很高

💡 共通心法:这四个策略都「赌某种结构性溢价」,而非某个特定方向。它们单独跑可能收益薄、波动大,但因为彼此相关性低,组合起来能显著提升整体夏普。这正是「多策略组合」思想的基础。

本节要点回顾

  1. 低波动:3 年周收益波动排序,多最低四分位,纯多头版,与 BAB 的多空版互补。
  2. VRP:卖 ATM 跨式 + 买 15% OTM 认沽 + 持指数,月度换月,胜率高赔率低的典型。
  3. 隔夜异常:收盘前买、次日开盘卖,三信号(SPY 上穿、VIX 下穿、BMS 上穿)触发,适合做叠加层。
  4. 残差动量:收益对 FF 三因子回归取 alpha,12 个月标准化残差排序多空,剥离风格暴露。
  5. 四种溢价:低波异常(行为)、VRP(方差供给)、隔夜(情绪)、残差(纯 alpha),来源各异。
  6. 组合思想:低相关性策略组合能显著提升夏普,这是多策略基金的理论基础。

下一章,我们离开经典策略,转向 AI 加量化前沿:LLM 多智能体、GPT 选股、强化学习,以及前沿论文清单。


发布者: 作者: 灏天文库 转发
评论区 (0)
U