如何用隱含波動率計算預期波動區間
預期波動幅度等於股價乘以 IV,再乘以天數除以365後的平方根。本文說明計算公式、與公式一致的跨式策略捷徑,以及實際波動幅度。
預期波動區間是選擇權市場針對股票在固定天數內可能波動範圍的定價,而隱含波動率則是決定該區間的輸入值:股價乘以隱含波動率,再乘以天數除以365後的平方根。一檔股價為100美元、30天隱含波動率為30%的股票,預期波動區間約為8.60美元,或8.6%;這是因為0.30乘以30除以365後的平方根,結果為0.086。該數值代表一個標準差的波動範圍,不是方向預測,也不是股價無法突破的價位。
如何根據隱含波動率計算預期波動幅度
隱含波動率是期權價格所隱含的報酬年化標準差。它一律以年化數字表示,因此 30% 的讀數代表一年期範圍;所有較短期間都必須以此為基礎換算。波動率會隨時間的平方根變動,因此天數要放在平方根符號下,而不是直接除以天數。
預期波動幅度 = 價格 × IV × √(天數 ÷ 365)
有兩種慣例會決定你的數字是否與券商顯示的結果一致。以 365 天計算是零售市場的標準;部分交易桌則以交易日 252 天計算,因此在 IV 相同的情況下,會得到略寬的區間。計算結果是單一標準差,若報酬呈常態分布,約涵蓋 68% 的結果。將其乘以 two,便可得到兩個標準差的區間,約涵蓋 95% 的結果。
你代入的 IV 是否偏高,則是另一個獨立問題,另有專頁說明:30% IV 是否偏高會將單一讀數置於市場本身的分布中比較。
為何價格區間會隨天數的平方根擴大
固定一檔股票與一個交易時段,只改變期限,公式的形狀就會自然呈現。以下是2026年7月中旬 Apple 接近平價的合約,依距離到期日的時間分組:
每個數據背後的精確 SQL 語法
SELECT multiIf(days_to_expiry <= 7, '1 week',
days_to_expiry <= 14, '2 weeks',
days_to_expiry <= 45, '1 month',
days_to_expiry <= 120, '3 months',
days_to_expiry <= 240, '6 months',
'1 year') AS horizon,
round(avg(days_to_expiry), 0) AS avg_days,
round(100 * avg(toFloat64(implied_volatility)), 1) AS iv_pct,
round(100 * avg(toFloat64(implied_volatility)) * sqrt(avg(days_to_expiry) / 365), 2) AS expected_move_pct,
round(avg(toFloat64(underlying_close)) * avg(toFloat64(implied_volatility))
* sqrt(avg(days_to_expiry) / 365), 2) AS expected_move_usd,
round(avg(toFloat64(underlying_close)), 2) AS underlying_price,
formatDateTime(max(date), '%b %e, %Y') AS as_of
FROM global_markets.options_greeks
WHERE underlying_symbol = 'AAPL'
AND date = (SELECT max(date)
FROM global_markets.options_greeks
WHERE underlying_symbol = 'AAPL'
AND date <= toDate('2026-07-15'))
AND iv_converged = 1
AND volume > 0
AND days_to_expiry BETWEEN 1 AND 400
AND abs(toFloat64(strike_price) / toFloat64(underlying_close) - 1) < 0.05
GROUP BY horizon
HAVING count() >= 3
ORDER BY avg_days截至 Jul 15, 2026,1 week 組距到期平均還有 5 天,隱含波動率(IV)為 28%;預期波動幅度為 3.17%,相對於 327.8 的股價,相當於 $10.41。1 year 組平均還有 292 天到期,IV 為 28.4%;預期波動幅度為 25.44%,相當於 $83.39。
重點在於比例,而不是絕對水準。無論標的是哪一檔股票、IV 為何,天數增加至四倍,預期波動幅度就會加倍,因為 4 的平方根是 2。若將一個月的價格區間年化時直接乘以 12,會使全年幅度高估約 3.5 倍;正確的乘數是 12 的平方根,也就是 3.46。
跨式策略捷徑,以及為何讀值約低估20%
有一條更快的方法可以取得市場自行反映的預期波動幅度,而且不需要計算。找出價平跨式策略(straddle):也就是履約價相同、到期日相同的買權與賣權,然後將兩者的權利金相加。許多交易台會將這個總額報為預期波動幅度。
兩種方法不會得到完全相同的數字,差異也不代表其中任何一種方法有錯。跨式策略的報酬取決於股票收盤價偏離履約價的絕對距離,因此其價格反映的是市場預期的「平均」波動幅度。公式則回傳一個「標準差」。在常態分配下,平均絕對偏差等於標準差的0.798倍,因此跨式策略的數值約比公式結果低20%;將跨式策略價格乘以1.25,也就是以1除以0.798,便能讓兩者一致。
將這套方法套用到開頭的100美元假設案例。公式給出的結果是8.60美元。該股票的價平跨式策略價格約為6.86美元,因為0.798 × 8.60 = 6.86。將6.86美元乘以1.25,便會回到8.58美元。了解兩種方法各自反映哪一種統計量後,便能看出這是兩條通往同一數字的路徑。閱讀選擇權鏈說明這兩筆權利金位於何處。
預期波動幅度不代表什麼
- 不是方向。波動區間以今日價格為中心對稱分布,選擇權市場反映的是區間寬度,而不是上下方向。
- 不是承諾。68%源自常態分布,但實際報酬具有更厚的尾端,因此極端結果出現的頻率高於模型假設。
- 不是障礙。依據該模型,約三分之一的期間會收在一個標準差區間之外。落在區間外才是常見情況。
- 不是固定值。隱含波動率每個交易日都會重新定價,因此特定到期日的預期波動幅度也會每日改寫。
財報公布後會發生什麼事
預定的財報公布日,是最清楚展現隱含波動率在事件前被買高、消息公開後下一個交易日遭下調的案例。這種模式稱為 IV crush。預期波動幅度也會按同一時程大幅收斂。NVDA 2023年5月下旬的財報,在下方面板第一個交易日收市後公布。
每個數據背後的精確 SQL 語法
WITH
(SELECT avg(toFloat64(implied_volatility))
FROM global_markets.options_greeks
WHERE underlying_symbol = 'NVDA'
AND date = toDate('2023-05-24')
AND iv_converged = 1
AND volume > 0
AND days_to_expiry BETWEEN 20 AND 45
AND abs(toFloat64(strike_price) / toFloat64(underlying_close) - 1) < 0.05) AS iv_report_day,
(SELECT avg(toFloat64(underlying_close))
FROM global_markets.options_greeks
WHERE underlying_symbol = 'NVDA'
AND date = toDate('2023-05-24')
AND iv_converged = 1
AND volume > 0
AND days_to_expiry BETWEEN 20 AND 45
AND abs(toFloat64(strike_price) / toFloat64(underlying_close) - 1) < 0.05) AS px_report_day
SELECT date,
formatDateTime(date, '%b %e') AS session_label,
round(100 * avg(toFloat64(implied_volatility)), 1) AS iv_pct,
round(100 * avg(toFloat64(implied_volatility)) * sqrt(avg(days_to_expiry) / 365), 2) AS expected_move_pct,
round(100 * avg(toFloat64(implied_volatility)) / iv_report_day, 1) AS iv_pct_of_report_day,
round(100 * (avg(toFloat64(underlying_close)) / px_report_day - 1), 2) AS move_from_report_day_pct
FROM global_markets.options_greeks
WHERE underlying_symbol = 'NVDA'
AND date BETWEEN toDate('2023-05-24') AND toDate('2023-06-09')
AND iv_converged = 1
AND volume > 0
AND days_to_expiry BETWEEN 20 AND 45
AND abs(toFloat64(strike_price) / toFloat64(underlying_close) - 1) < 0.05
GROUP BY date
HAVING count() >= 3
ORDER BY date在財報公布當天,也就是 May 24,接近平值的隱含波動率為 115.1%,而到期前的隱含波動幅度為 30.54%。下一個交易日,同一項指標降至該數值的 42.9%。到了 Jun 9,隱含波動率為 39.2%,股價則較財報公布日收盤價高出 1.71%。
這種組合正是市場常見抱怨的原因。交易人即使正確判斷財報行情的方向,持有買進的選擇權仍可能虧損:該契約定價所依據的波動率輸入值,會在不確定性消除後立即下調。財報如何影響 Greeks 將進一步說明這類部位的後續變化。
預期波動是否符合實際波動?
這項說法可以驗證,因此我們進行了以下測試。在截至2026年6月中旬的兩年期間,每週三針對六檔流動性高的標的,取用到期日在25至40天後、接近平值的契約之隱含波動率,將其換算為未來數日的預期波動幅度,再衡量股票截至至少30個日曆日後第一個交易日的實際波動距離。
每個數據背後的精確 SQL 語法
WITH obs AS (
SELECT underlying_symbol AS ticker,
date AS obs_date,
avg(toFloat64(implied_volatility)) AS iv,
avg(toFloat64(underlying_close)) AS spot
FROM global_markets.options_greeks
WHERE underlying_symbol IN ('NVDA', 'AAPL', 'MSFT', 'XOM', 'SPY', 'KO')
AND date BETWEEN toDate('2024-06-12') AND toDate('2026-06-17')
AND toDayOfWeek(date) = 3
AND iv_converged = 1
AND volume > 0
AND days_to_expiry BETWEEN 25 AND 40
AND abs(toFloat64(strike_price) / toFloat64(underlying_close) - 1) < 0.05
GROUP BY ticker, obs_date
HAVING count() >= 4 AND avg(toFloat64(implied_volatility)) > 0.01
),
px AS (
SELECT underlying_symbol AS ticker,
date AS px_date,
avg(toFloat64(underlying_close)) AS close_px
FROM global_markets.options_greeks
WHERE underlying_symbol IN ('NVDA', 'AAPL', 'MSFT', 'XOM', 'SPY', 'KO')
AND date BETWEEN toDate('2024-06-12') AND toDate('2026-07-25')
AND days_to_expiry BETWEEN 5 AND 60
AND abs(toFloat64(strike_price) / toFloat64(underlying_close) - 1) < 0.02
GROUP BY ticker, px_date
),
moves AS (
SELECT obs.ticker AS ticker,
obs.obs_date AS obs_date,
any(obs.iv) AS iv,
any(obs.spot) AS spot,
argMin(px.close_px, px.px_date) AS end_px,
min(dateDiff('day', obs.obs_date, px.px_date)) AS elapsed_days
FROM obs
INNER JOIN px ON obs.ticker = px.ticker
WHERE px.px_date >= addDays(obs.obs_date, 30)
AND px.px_date <= addDays(obs.obs_date, 36)
GROUP BY ticker, obs_date
)
SELECT ticker,
count() AS windows_tested,
round(quantileDeterministic(0.5)(100 * iv * sqrt(elapsed_days / 365), cityHash64(obs_date)), 2) AS implied_move_pct,
round(quantileDeterministic(0.5)(100 * abs(end_px / spot - 1), cityHash64(obs_date)), 2) AS realized_move_pct,
round(100 * countIf(abs(end_px / spot - 1) > iv * sqrt(elapsed_days / 365)) / count(), 1) AS realized_over_implied_pct
FROM moves
GROUP BY ticker
ORDER BY implied_move_pct DESCNVDA為六檔標的中定價區間最寬者。在103個觀察區間中,其中位數隱含波動幅度為13.3%,中位數實際波動幅度則為6.77%。在波動最平靜的一端,SPY的隱含波動幅度為4.37%,實際波動幅度則為2.68%。
最後一欄最能反映真實情況。單一標準差區間理論上約有32%的機率被突破,因此比較基準不是零,而是這個比例。23.3%的NVDA個觀察區間,實際收盤價落在其選擇權定價區間之外;另有24.3%的SPY個觀察區間也出現相同結果。逐一比較各標的的兩個中位數及其差距,不論差距方向為何,這就是判斷選擇權定價所反映的波動是否高於實際波動的核心。篩選隱含波動區間最寬的標的是另一項分析;隱含波動率最高的股票則會對這些標的進行排名。
資料說明與定義
- 「接近平值」是指履約價落在該交易日標的收盤價上下5%以內,且契約的隱含波動率已趨於一致、成交量不為零。
- 預期波動幅度一律以365天為分母,按日曆日計算;實際波動幅度則是觀察日收盤價與至少30個日曆日後第一個交易日收盤價之間的百分比距離,並取絕對值。
- 觀察值按週計算,而遠期區間涵蓋30天,因此相鄰區間會重疊,樣本數並非相互獨立的抽樣結果。
預期波動區間 FAQ
如何根據隱含波動率計算預期波動區間?
將股價乘以小數表示的隱含波動率,再乘以天數除以365的平方根。一檔股價為50美元、45天隱含波動率為40%的股票,計算方式為:50 × 0.40 × √(45 ÷ 365) = 7.02美元,區間約為14%。
平值跨式策略價格是否等於預期波動區間?
接近,但並不相同。跨式策略的價格反映預期平均波動幅度,約為一個標準差的0.798倍。將跨式策略權利金乘以1.25,即可還原公式計算的一個標準差數值。
股票會維持在預期波動區間內嗎?
通常會。模型預期約有32%的情況會超出區間。在上文測試的週期區間中,23.3% 的 NVDA 個區間收在隱含區間之外;另有 24.3% 的 SPY 個區間出現相同結果。
為什麼財報公布後,預期波動區間會立即縮小?
預期波動區間是隱含波動率的直接函數。市場會在預定財報公布前推高隱含波動率,結果公布後則將其下調。在上方面板中,NVDA 財報公布後的交易時段為財報公布當日讀值的 42.9%。
較寬的預期波動區間是否代表更好的機會?
它只代表區間較寬,沒有其他含義。較大的預期波動區間表示選擇權市場反映了更高的不確定性,而承擔這項不確定性的合約,價格也會按比例提高。區間寬度無法說明其價格是否合理。
這裡的每個面板都是附有 SQL 的 stored query。開啟其中一個面板、替換 ticker,再於 Strasmore terminal 執行相同的隱含波動率與實際波動率測試。