隐含波动率与贝塔:区别及含义
隐含波动率看期权市场对未来总波动的预期,贝塔看股票相对指数的历史敏感度。了解两者差异,并查看十只股票的实测对比。
隐含波动率与贝塔的比较,涉及两个针对同一股票、但回答不同问题的指标。隐含波动率是期权市场对未来一段特定期限内股价总波动幅度的预期,方向可上可下。贝塔则是基于历史数据回归得出的斜率,仅反映指数能够解释的那部分股价过往变动。股票的隐含波动率可能较高,而贝塔较低;反之亦然。两项指标同时呈现这类结果,并不矛盾。
Beta实际衡量什么
Beta是将两组收益率序列拟合成一条直线后的斜率:一组来自股票,另一组来自指数。展开写就是 beta = covariance(stock returns, index returns) / variance(index returns)。Beta为1.30表示,在所测量的时间窗口内,指数每变动1%,该股票平均约变动1.3%。Beta为0.40则表示,该股票的变动幅度约为指数的十分之四。
每个公布的Beta背后都有四项选择:将股票与哪个指数进行回归、时间窗口多长、收益率采样频率如何,以及收益率是否计入股息。改变其中任何一项,结果都会变化。没有标注时间窗口的Beta只是一个缺少定义的数字。不同数据提供商对同一只股票给出不同结果,并不代表其中一方一定错误。
与Beta一同发布的统计指标是R平方,即指数能够解释的股票收益率方差占比,取值范围为0至1。Beta给出斜率,R平方则说明这条拟合线是否具有解释力。Beta为1.40且R平方为0.65,表示该股票大体跟随指数运行,但波动幅度更大。若Beta同样为1.40、R平方仅为0.10,则表示该股票主要独立运行,只是在此基础上带有轻微的指数倾向。只有前一种情况,才说明指数对冲能够较好地跟踪该股票。
隐含波动率衡量什么
隐含波动率是使期权定价模型返回该期权当前交易价格的波动率数值。它以年化标准差报价。30%的IV大致意味着,一年内出现约30%的一个标准差幅度变动;由于波动率按时间平方根缩放,未来30天的幅度约为8.6%。我们的指南什么是隐含波动率介绍了其计算机制,隐含波动率与历史波动率则说明这一前瞻性数值与股票实际表现之间的关系。
关键区别在于两者统计的内容不同。IV将所有可能导致价格变动的因素纳入一个数值:指数整体抛售、试验结果、业绩指引变化或收购要约。Beta只统计与指数同步变动的那一部分。R平方未能解释的所有波动,对Beta而言都是不可见的,但都会完整反映在IV中。
隐含波动率与十只知名股票的贝塔比较
下图以 SPY(标普500 ETF)为基准,对十只流动性较高的股票进行回归分析,样本区间为截至2026年8月21日的12个月。回归分析运行两次:一次使用每日收盘收益率,另一次使用同一时间窗口内的每周收益率。
| 代码 | 日贝塔 | 周贝塔 | R平方 | 收益率数量 |
|---|---|---|---|---|
| COIN | 2.83 | 2.5 | 0.28 | 250 |
| TSLA | 2.23 | 1.92 | 0.38 | 250 |
| NVDA | 1.88 | 1.66 | 0.43 | 250 |
| MSFT | 0.94 | 1.58 | 0.14 | 250 |
| AAPL | 0.71 | 0.83 | 0.13 | 250 |
| GLD | 0.7 | 0.76 | 0.1 | 250 |
| TLT | 0.17 | 0.12 | 0.05 | 250 |
| JNJ | -0.2 | -0.52 | 0.02 | 250 |
| KO | -0.27 | -0.04 | 0.03 | 250 |
| XOM | -0.51 | -0.93 | 0.07 | 250 |
每个数字背后的完整 SQL
WITH
px AS
(
SELECT
ticker,
date,
toFloat64(close) AS close_px
FROM global_markets.stocks_daily_aggs
WHERE ticker IN ('SPY','AAPL','MSFT','NVDA','TSLA','COIN','KO','JNJ','XOM','GLD','TLT')
AND date >= '2025-08-22'
AND date <= '2026-08-21'
),
daily_ret AS
(
SELECT
ticker,
date,
close_px / lagInFrame(close_px) OVER (PARTITION BY ticker ORDER BY date ROWS BETWEEN 1 PRECEDING AND CURRENT ROW) - 1 AS ret
FROM px
),
weekly_px AS
(
SELECT
ticker,
toMonday(date) AS week_start,
argMax(close_px, date) AS week_close
FROM px
GROUP BY ticker, week_start
),
weekly_ret AS
(
SELECT
ticker,
week_start,
week_close / lagInFrame(week_close) OVER (PARTITION BY ticker ORDER BY week_start ROWS BETWEEN 1 PRECEDING AND CURRENT ROW) - 1 AS ret
FROM weekly_px
),
daily_beta AS
(
SELECT
s.ticker AS symbol,
round(covarSamp(s.ret, i.ret) / varSamp(i.ret), 2) AS beta_daily,
round(pow(corr(s.ret, i.ret), 2), 2) AS r_squared,
count() AS return_count
FROM daily_ret AS s
INNER JOIN
(
SELECT date, ret FROM daily_ret WHERE ticker = 'SPY' AND isFinite(ret)
) AS i ON i.date = s.date
WHERE s.ticker != 'SPY' AND isFinite(s.ret)
GROUP BY symbol
),
weekly_beta AS
(
SELECT
s.ticker AS symbol,
round(covarSamp(s.ret, i.ret) / varSamp(i.ret), 2) AS beta_weekly
FROM weekly_ret AS s
INNER JOIN
(
SELECT week_start, ret FROM weekly_ret WHERE ticker = 'SPY' AND isFinite(ret)
) AS i ON i.week_start = s.week_start
WHERE s.ticker != 'SPY' AND isFinite(s.ret)
GROUP BY symbol
)
SELECT
d.symbol AS symbol,
d.beta_daily AS beta_daily,
w.beta_weekly AS beta_weekly,
d.r_squared AS r_squared,
d.return_count AS return_count
FROM daily_beta AS d
INNER JOIN weekly_beta AS w ON w.symbol = d.symbol
ORDER BY beta_daily DESC每日回归斜率基于 250 个配对交易日。样本中每日贝塔最高的是 COIN,为 2.83,其 R 平方为 0.28。最低的是 XOM,为 -0.51;其 R 平方为 0.07,这才是这里的关键数字:在该时间窗口内,指数只能解释该股票价格变动中很小的一部分,因此斜率几乎无法说明该头寸的实际表现。
现在比较两列贝塔。在相同的12个月期间、以相同指数为基准时,仅仅将采样频率从每日改为每周,就足以改变回归斜率。按每周收益率计算,COIN 的贝塔为 2.5;按每日收益率计算,则为 2.83。两者都没有错,只是回答的问题略有不同。
同一批标的的期权市场定价
Beta源自历史价格。本面板反映的是交易者当前支付的价格:选取接近平值、距离到期日20至45天的合约,并对截至Aug 19(2026年)的三周数据取平均。SPY在此作为指数基准加入列表。由于机械性原因,它未出现在Beta面板中:以自身进行回归时,其Beta为1.00,R平方为1.00。
| 代码 | 隐含波动率(%) | 30天预期变动(%) | 合约数量 | 隐含波动率截至 |
|---|---|---|---|---|
| COIN | 65.5 | 18.8 | 598 | Aug 19 |
| TSLA | 41 | 11.7 | 653 | Aug 19 |
| NVDA | 40.3 | 11.6 | 437 | Aug 19 |
| XOM | 28.2 | 8.1 | 463 | Aug 19 |
| MSFT | 27.8 | 8 | 922 | Aug 19 |
| AAPL | 24.8 | 7.1 | 599 | Aug 19 |
| GLD | 22.9 | 6.6 | 2780 | Aug 19 |
| JNJ | 22.8 | 6.5 | 332 | Aug 19 |
| KO | 18.6 | 5.3 | 574 | Aug 19 |
| SPY | 13.5 | 3.9 | 7451 | Aug 19 |
| TLT | 11.7 | 3.4 | 1305 | Aug 19 |
每个数字背后的完整 SQL
SELECT
underlying_symbol AS symbol,
round(avg(toFloat64(implied_volatility)) * 100, 1) AS iv_pct,
round(avg(toFloat64(implied_volatility)) * 100 * sqrt(30.0 / 365.0), 1) AS expected_move_30d_pct,
count() AS contract_count,
formatDateTime(max(date), '%b %e') AS iv_through
FROM global_markets.options_greeks
WHERE underlying_symbol IN ('SPY','AAPL','MSFT','NVDA','TSLA','COIN','KO','JNJ','XOM','GLD','TLT')
AND date >= '2026-08-03'
AND date <= '2026-08-21'
AND iv_converged = 1
AND volume > 0
AND days_to_expiry BETWEEN 20 AND 45
AND underlying_close > 0
AND abs(toFloat64(strike_price) / toFloat64(underlying_close) - 1) < 0.05
GROUP BY symbol
HAVING contract_count >= 25
ORDER BY iv_pct DESC该组中隐含波动率最高的是COIN,为65.5%,对应30天内约18.8%的一个标准差波动。最低的是TLT,为11.7%。本面板按预期总波动幅度对各标的排名。以COIN为首的Beta面板,则按指数能够解释的波动幅度排名。11个标的中有两个是ETF:一个持有黄金,另一个持有长期美国国债。两者都不是股票指数头寸,因此以股票指数为基准计算Beta并不适用于这两只ETF。
运动贝塔无法解释的部分
下面将这一差距具体化。选取 SPY 几乎没有变动的交易日,即收盘价相对前一日收盘价的绝对回报率低于 0.25%,然后测算这十只股票在这些交易日中的表现。如果贝塔能够解释全部情况,那么指数横盘时,个股也应当横盘。
| 代码 | 指数不变时变动(%) | 全样本变动(%) | 指数不变数量 |
|---|---|---|---|
| COIN | 3.09 | 3.3 | 69 |
| TSLA | 1.75 | 2.27 | 69 |
| NVDA | 1.32 | 1.82 | 69 |
| MSFT | 1.22 | 1.35 | 69 |
| XOM | 1.16 | 1.24 | 69 |
| GLD | 1.06 | 1.3 | 69 |
| AAPL | 1.03 | 1.13 | 69 |
| KO | 0.98 | 0.88 | 69 |
| JNJ | 0.84 | 0.91 | 69 |
| TLT | 0.45 | 0.48 | 69 |
每个数字背后的完整 SQL
WITH
px AS
(
SELECT
ticker,
date,
toFloat64(close) AS close_px
FROM global_markets.stocks_daily_aggs
WHERE ticker IN ('SPY','AAPL','MSFT','NVDA','TSLA','COIN','KO','JNJ','XOM','GLD','TLT')
AND date >= '2025-08-22'
AND date <= '2026-08-21'
),
daily_ret AS
(
SELECT
ticker,
date,
close_px / lagInFrame(close_px) OVER (PARTITION BY ticker ORDER BY date ROWS BETWEEN 1 PRECEDING AND CURRENT ROW) - 1 AS ret
FROM px
),
idx AS
(
SELECT date, ret AS index_ret
FROM daily_ret
WHERE ticker = 'SPY' AND isFinite(ret)
)
SELECT
s.ticker AS symbol,
round(avgIf(abs(s.ret) * 100, abs(i.index_ret) < 0.0025), 2) AS move_on_flat_index_pct,
round(avg(abs(s.ret) * 100), 2) AS move_full_sample_pct,
countIf(abs(i.index_ret) < 0.0025) AS flat_index_count
FROM daily_ret AS s
INNER JOIN idx AS i ON i.date = s.date
WHERE s.ticker != 'SPY' AND isFinite(s.ret)
GROUP BY symbol
HAVING countIf(abs(i.index_ret) < 0.0025) > 0
ORDER BY move_on_flat_index_pct DESC在同一十二个月期间,共有 69 个指数近乎横盘的交易日。在这些交易日中,COIN 的平均绝对变动为 3.09%,而整个样本期的平均值为 3.3%。其中,TLT 在这些交易日中的平均变动最小,为 0.45%。这一列中的所有变动,贝塔都无法解释;但对期权卖方而言,这些变动仍然会反映在报价中。
Beta是估算值,也会变化
Beta并不是像股票数量那样的股票固有属性。它是根据某个时间窗口计算出的统计值,并会随着窗口向前滚动而变化。下图在每个月月初重新估算NVDA相对于SPY的Beta,每个数据点均基于此前十二个月的日收益率计算得出。
| 月份 | 月份标签 | 1年滚动贝塔 | R平方 |
|---|---|---|---|
| 2022-09 | Sep 2022 | 2.32 | 0.65 |
| 2022-10 | Oct 2022 | 2.26 | 0.64 |
| 2022-11 | Nov 2022 | 2.21 | 0.65 |
| 2022-12 | Dec 2022 | 2.22 | 0.71 |
| 2023-01 | Jan 2023 | 2.19 | 0.71 |
| 2023-02 | Feb 2023 | 2.19 | 0.7 |
| 2023-03 | Mar 2023 | 2.17 | 0.65 |
| 2023-04 | Apr 2023 | 2.08 | 0.63 |
| 2023-05 | May 2023 | 2.04 | 0.62 |
| 2023-06 | Jun 2023 | 2.06 | 0.51 |
| 2023-07 | Jul 2023 | 2.05 | 0.47 |
| 2023-08 | Aug 2023 | 2.08 | 0.46 |
| 2023-09 | Sep 2023 | 2.03 | 0.43 |
| 2023-10 | Oct 2023 | 2.11 | 0.43 |
| 2023-11 | Nov 2023 | 2.18 | 0.4 |
| 2023-12 | Dec 2023 | 2.05 | 0.33 |
| 2024-01 | Jan 2024 | 2 | 0.3 |
| 2024-02 | Feb 2024 | 1.95 | 0.28 |
| 2024-03 | Mar 2024 | 2.02 | 0.29 |
| 2024-04 | Apr 2024 | 2.22 | 0.29 |
每个数字背后的完整 SQL
WITH
px AS
(
SELECT
ticker,
date,
toFloat64(close) AS close_px
FROM global_markets.stocks_daily_aggs
WHERE ticker IN ('SPY','NVDA')
AND date >= '2021-08-01'
AND date <= '2026-08-21'
),
daily_ret AS
(
SELECT
ticker,
date,
close_px / lagInFrame(close_px) OVER (PARTITION BY ticker ORDER BY date ROWS BETWEEN 1 PRECEDING AND CURRENT ROW) - 1 AS ret
FROM px
),
paired AS
(
SELECT
s.date AS d,
s.ret AS stock_ret,
i.ret AS index_ret
FROM daily_ret AS s
INNER JOIN
(
SELECT date, ret FROM daily_ret WHERE ticker = 'SPY' AND isFinite(ret)
) AS i ON i.date = s.date
WHERE s.ticker = 'NVDA' AND isFinite(s.ret)
),
anchors AS
(
SELECT DISTINCT toStartOfMonth(d) AS anchor
FROM paired
WHERE d >= '2022-09-01'
)
SELECT
formatDateTime(a.anchor, '%Y-%m') AS month,
formatDateTime(a.anchor, '%b %Y') AS month_label,
round(covarSamp(p.stock_ret, p.index_ret) / varSamp(p.index_ret), 2) AS rolling_beta_1y,
round(pow(corr(p.stock_ret, p.index_ret), 2), 2) AS r_squared
FROM anchors AS a, paired AS p
WHERE p.d < a.anchor
AND p.d >= subtractYears(a.anchor, 1)
GROUP BY a.anchor
ORDER BY a.anchor该折线包含48个月度估算值。第一个数据点对应截至Sep 2022的一年,数值为2.32。最新数据点对应截至Aug 2026的期间,数值为1.87,R平方为0.44。股票、指数和计算方法都相同,但时间窗口不同。若根据过时窗口计算出的Beta进行对冲,仓位依据的已是数据已经超越的数值。
隐含波动率也以另一种形式体现出同样的问题。它是每个交易日都会变化的实时价格,通常应结合自身历史水平解读,而不是孤立看待。30%的隐含波动率算高吗?将详细说明这种比较方法。
哪个数字对应哪项工作
Beta回答指数相关问题。一个组合对 S&P 500 的敞口有多大?需要多大规模的指数头寸才能对冲这一敞口?这就是 beta 加权,组合 beta 加权介绍了相关计算方法。Beta 还揭示了一个由多个名称组成、但都暴露于同一市场因子的组合所面临的风险;集中度风险则从另一个角度衡量这种情况。
隐含波动率回答固定期限内的单一股票问题。市场为该股票未来 30 天的波动收取多少价格?与这只股票自身的历史水平相比,这个价格是高还是低?指数不涉及这两个问题。
这两个数字都不能预测方向。Beta描述已经发生的联动性。IV是波动幅度的价格,不带方向。Beta为 1.8、IV 为 25% 的股票,与 beta 为 0.2、IV 为 80% 的股票,都属于正常情况。它们承担的是不同类型的风险,而衡量这些风险的工具也各自服务于不同目的。
常见问题
股票能否同时具有高隐含波动率和低贝塔?
可以,而且很常见。贝塔只衡量与指数同步的波动,而隐含波动率反映所有波动的定价,包括指数完全无法反映的单一公司事件。若一只股票正在等待某个结果只有两种可能的公告,其隐含波动率可能很高,但相对于广泛指数的回归斜率仍接近于零。
贝塔是风险的衡量指标吗?
贝塔只衡量一种风险:股票在选定历史窗口内对某个选定指数的敏感度。它不反映公司特有风险,也不反映该窗口之外的任何因素。两只贝塔相同的股票,其总波动率可能完全不同。
R平方能告诉你哪些贝塔无法告诉你的信息?
R平方表示指数能够解释股票收益方差的比例,取值范围为零到一。R平方较低,意味着回归线的拟合效果较差。因此,与其对应计算出的贝塔,只是穿过一片分散点云的斜率,并不能很好描述股票的实际表现。
隐含波动率能预测股票将上涨还是下跌吗?
不能。隐含波动率只表示波动幅度,不包含方向。40%的隐含波动率表示市场对未来一年一个标准差波动幅度的定价为40%,上涨或下跌均可,并不偏向任何方向。股票的实际波动可能远高于或低于这一隐含幅度。
计算贝塔需要使用什么时间窗口和收益频率?
没有统一标准。常见做法包括使用一年期日收益率,或五年期月收益率。上方第一个面板显示,即使使用同一年的数据,按日采样和按周采样也会得到不同的斜率。只有采用相同方法计算的贝塔才具有可比性。
:::details这些数字的计算方法
- 贝塔和R平方:使用截至2026年8月21日的十二个月期间内,各标的与SPY的日收盘收益率和周收盘收益率。贝塔等于两组收益率序列的协方差除以SPY收益率的方差;R平方等于两者相关系数的平方。
- 隐含波动率:选取距离到期日还有20至45天、执行价位于标的收盘价上下5%以内的合约;仅使用收敛求解结果,以及当日实际有交易的合约。数值取截至Aug 19日结束的三周平均值,年份为2026年。
- 指数近乎横盘的交易日:在相同的十二个月期间内,SPY收盘价相对前一交易日收盘价的绝对收益率低于0.25%的交易日。
- 滚动贝塔:以SPY为基准,针对NVDA进行计算。每月初使用此前十二个月的日收益率重新估算,涵盖48个月度数据点。
:::
上方每个面板都附有生成图表的SQL,因此时间窗口和筛选条件均可在图表下方一键查看。若您希望衡量所关注标的的贝塔或隐含波动率,可在Strasmore终端直接用日常语言提出请求。