Expected move da implied volatility: calcolo e formula
Calcola l’expected move con prezzo, IV e radice dei giorni su 365. Formula, scorciatoia dello straddle e confronto con i movimenti realizzati.
L’expected move è l’intervallo che il mercato delle opzioni sta prezzando per un titolo su un numero fisso di giorni. L’implied volatility è il parametro che lo determina: prezzo dell’azione moltiplicato per l’implied volatility e per la radice quadrata del numero di giorni diviso 365. Un titolo da 100 dollari con un’implied volatility del 30% su 30 giorni presenta un expected move di circa 8,60 dollari, pari all’8,6%, perché 0,30 moltiplicato per la radice quadrata di 30 diviso 365 dà 0,086. Questo valore rappresenta un intervallo di una deviazione standard. Non è una previsione della direzione del prezzo e non indica un livello che il prezzo non può superare.
Come calcolare il movimento atteso dalla volatilità implicita
La volatilità implicita è la deviazione standard annualizzata dei rendimenti implicita nel prezzo di un’opzione. È sempre espressa su base annua: un valore del 30% descrive quindi un intervallo su un anno, mentre ogni periodo più breve deve essere ricavato da questo dato. La volatilità scala con la radice quadrata del tempo. Per questo i giorni compaiono sotto il segno di radice, invece di essere divisi direttamente.
Movimento atteso = prezzo × IV × √(giorni ÷ 365)
Due convenzioni determinano se il risultato coincide con quello mostrato dal broker. Il calcolo dei giorni di calendario su 365 è lo standard per il retail, mentre alcuni desk usano i giorni di trading su 252. A parità di IV, questo produce un intervallo leggermente più ampio. Il risultato corrisponde a una deviazione standard, cioè a un intervallo che, in una distribuzione normale, comprende circa il 68% degli esiti. Raddoppiandolo si ottiene l’intervallo di due deviazioni standard, che comprende circa il 95% degli esiti.
Stabilire se l’IV inserita sia effettivamente elevata è una questione distinta, trattata in una pagina dedicata: l’IV al 30% è elevata confronta un singolo valore con la distribuzione del mercato.
Perché il range cresce con la radice quadrata dei giorni
Mantieni fissi un titolo e una seduta e modifica solo l’orizzonte temporale: la forma della formula emerge da sola. I contratti near-the-money di Apple a metà luglio 2026, raggruppati in base alla distanza dalla scadenza:
L'esatto SQL dietro ogni numero
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_daysAl Jul 15, 2026, il bucket 1 week aveva in media 5 giorni alla scadenza e una volatilità implicita del 28%, con un expected move del 3.17%, pari a $10.41 su un prezzo dell’azione di $327.8. Il bucket 1 year aveva in media 292 giorni e una IV del 28.4%, con un expected move del 25.44%, pari a $83.39.
La lezione sta nei rapporti, non nei livelli. Quadruplicando i giorni, l’expected move raddoppia, per qualsiasi titolo e a qualunque livello di IV, perché la radice quadrata di 4 è 2. Chi annualizza un range mensile moltiplicandolo per 12 sovrastima il dato annuale di un fattore pari a circa 3,5: il moltiplicatore corretto è la radice quadrata di 12, cioè 3,46.
La scorciatoia dello straddle e perché indica un valore inferiore di circa il 20%
Esiste un modo più rapido per ottenere il movimento atteso dal mercato, senza fare calcoli. Basta cercare lo straddle at-the-money, cioè la call e la put con lo stesso strike e la stessa scadenza, e sommare i due premi. Molti trading desk indicano questa somma come movimento atteso.
I due metodi non restituiscono lo stesso numero, ma la differenza non indica un errore in nessuno dei due. Uno straddle paga la distanza assoluta tra il prezzo finale dell’azione e lo strike, quindi il suo prezzo riflette il movimento medio atteso dal mercato. La formula restituisce una deviazione standard. In una distribuzione normale, la deviazione assoluta media equivale a 0,798 deviazioni standard. Per questo lo straddle si colloca circa il 20% al di sotto del risultato della formula. Moltiplicando lo straddle per 1,25, cioè dividendo per 0,798, si ottiene lo stesso valore.
Applichiamo il metodo all’esempio ipotetico da 100 dollari dell’inizio. La formula restituisce 8,60 dollari. Lo straddle at-the-money su quell’azione avrebbe un prezzo vicino a 6,86 dollari, perché 0,798 × 8,60 = 6,86. Moltiplicando 6,86 dollari per 1,25 si torna a 8,58 dollari. Due metodi, un solo numero, una volta chiarito quale statistica restituisce ciascuno. Consultare una catena di opzioni mostra dove si collocano quei due premi.
Cosa non indica l’atteso movimento
- Non indica una direzione. La banda è simmetrica rispetto al prezzo odierno e il mercato delle opzioni ne valuta l’ampiezza, non il lato.
- Non è una promessa. Il 68% deriva da una distribuzione normale, mentre i rendimenti effettivi presentano code più spesse. Gli esiti molto distanti si verificano quindi più spesso di quanto preveda il modello.
- Non è una barriera. Secondo il modello, circa una finestra su tre si conclude al di fuori della banda di una deviazione standard. Chiudere fuori dalla banda è l’esito ordinario.
- Non è fisso. La volatilità implicita viene ricalibrata a ogni seduta. Di conseguenza, l’atteso movimento per una determinata scadenza viene riscritto ogni giorno.
Cosa succede dopo una pubblicazione di risultati
Una data di pubblicazione dei risultati già fissata è il caso più evidente di volatilità implicita che aumenta in anticipo e viene ridimensionata nella seduta successiva alla diffusione della notizia, secondo un andamento noto come IV crush. Anche il movimento atteso crolla secondo la stessa dinamica. La pubblicazione di NVDA di fine maggio 2023 è avvenuta dopo la chiusura della prima seduta riportata nel pannello seguente.
L'esatto SQL dietro ogni numero
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 dateLa volatilità implicita near-the-money misurava 115.1% il May 24, la seduta della pubblicazione, con un movimento implicito fino alla scadenza pari a 30.54%. Nella seduta successiva, la stessa misurazione era pari a 42.9% di quel valore. Entro Jun 9, la volatilità implicita si attestava a 39.2% e il titolo era a 1.71% rispetto alla chiusura della seduta della pubblicazione.
Questa combinazione è alla base di una lamentela frequente. Un trader può prevedere correttamente la direzione del movimento dopo la pubblicazione dei risultati e perdere comunque denaro su un’opzione long: il parametro di volatilità utilizzato per prezzare il contratto viene ridimensionato nel momento in cui l’incertezza viene meno. Come i risultati influenzano i greeks completa l’analisi di questa posizione.
La expected move regge il confronto con i movimenti realizzati?
L’affermazione è verificabile, quindi ecco il test. Ogni mercoledì nei due anni fino a metà giugno 2026, per sei titoli liquidi, prendiamo la volatilità implicita at-the-money su contratti con scadenza tra 25 e 40 giorni, la convertiamo in una expected move sui giorni successivi e poi misuriamo quanto il titolo si sia effettivamente mosso entro la prima seduta che cade almeno 30 giorni di calendario dopo.
L'esatto SQL dietro ogni numero
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 ha prezzato il range più ampio dei sei, con una expected move mediana pari a 13.3% contro un movimento realizzato mediano di 6.77% su 103 finestre. All’estremo più tranquillo, SPY ha prezzato 4.37% contro un movimento realizzato di 2.68%.
L’ultima colonna è quella più significativa. Un range pari a una deviazione standard dovrebbe essere superato circa il 32% delle volte: questo è il benchmark di riferimento, non lo zero. Il 23.3% delle finestre NVDA si è chiuso fuori dal range prezzato dalle opzioni, mentre il 24.3% delle finestre SPY ha fatto altrettanto. Confrontando le due mediane affiancate per ciascun titolo, il divario tra loro, in qualunque direzione, esprime l’intera questione: le opzioni erano prezzate per un movimento superiore a quello effettivamente verificatosi? Selezionare i titoli con i range impliciti più ampi è un’analisi diversa; le azioni con la volatilità implicita più elevata li classifica.
Note e definizioni sui dati
- At-the-money indica uno strike entro il 5% della chiusura del sottostante in quella seduta, su contratti con volatilità implicita convergente e volume diverso da zero.
- La expected move utilizza sempre i giorni di calendario su una base di 365 giorni; il movimento realizzato è la distanza percentuale tra la chiusura di osservazione e la chiusura della prima seduta che cade almeno 30 giorni di calendario dopo, con il segno rimosso.
- Le osservazioni sono settimanali, mentre le finestre forward coprono 30 giorni. Le finestre adiacenti quindi si sovrappongono e i conteggi non sono estrazioni indipendenti.
Domande frequenti sul movimento atteso
Come si calcola il movimento atteso a partire dalla volatilità implicita?
Moltiplica il prezzo dell’azione per la volatilità implicita espressa in decimale, quindi per la radice quadrata del numero di giorni diviso 365. Per un titolo da 50 dollari con volatilità implicita del 40% su 45 giorni: 50 × 0,40 × √(45 ÷ 365) = 7,02 dollari, pari a un intervallo di circa il 14%.
Il prezzo dello straddle at-the-money è uguale al movimento atteso?
È simile, ma non identico. Lo straddle prezza il movimento medio atteso, che corrisponde a circa 0,798 di una deviazione standard. Moltiplicando il premio dello straddle per 1,25 si ottiene il valore di una deviazione standard restituito dalla formula.
Un titolo rimane all’interno del suo movimento atteso?
Di solito sì, ma il modello prevede che esca dall’intervallo circa il 32% delle volte. Nelle finestre settimanali analizzate sopra, 23.3% di NVDA finestre si sono chiuse fuori dall’intervallo implicito, mentre lo stesso è avvenuto per 24.3% di SPY finestre.
Perché il movimento atteso si riduce subito dopo la pubblicazione dei risultati?
Il movimento atteso è una funzione diretta della volatilità implicita. La volatilità implicita aumenta prima di un report programmato e diminuisce una volta reso noto il risultato. Nel pannello sopra, la seduta successiva al report di NVDA presentava 42.9% del valore rilevato nel giorno del report.
Un movimento atteso più ampio rappresenta un’opportunità migliore?
Indica soltanto un intervallo più ampio. Un movimento atteso maggiore significa che il mercato delle opzioni sta prezzando un’incertezza superiore, e i contratti che incorporano tale incertezza costano di più in proporzione. L’ampiezza dell’intervallo non dice nulla sull’equità del prezzo.
Ogni pannello qui è una stored query con il relativo SQL allegato. Aprine una, sostituisci il ticker ed esegui lo stesso test tra volatilità implicita e realizzata sul terminale Strasmore.