Movimento esperado pela volatilidade implícita
Calcule o movimento esperado com preço, volatilidade implícita e a raiz de dias sobre 365. Veja a fórmula, o atalho do straddle e os movimentos realizados.
O movimento esperado é a faixa que o mercado de opções está precificando para uma ação ao longo de um número fixo de dias. A volatilidade implícita é o parâmetro que determina essa faixa: preço da ação multiplicado pela volatilidade implícita e pela raiz quadrada do número de dias dividido por 365. Uma ação cotada a US$ 100, com volatilidade implícita de 30% em um período de 30 dias, tem um movimento esperado próximo de US$ 8,60, ou 8,6%, pois 0,30 multiplicado pela raiz quadrada de 30 dividido por 365 resulta em 0,086. Esse valor representa uma faixa de um desvio-padrão. Não é uma previsão de direção nem um nível que a cotação não possa ultrapassar.
Como calcular o movimento esperado a partir da volatilidade implícita
Volatilidade implícita é o desvio padrão anualizado dos retornos implícito no preço de uma opção. Ela é sempre apresentada como um número anual. Assim, uma leitura de 30% descreve uma faixa para um ano, e cada período mais curto precisa ser ajustado a partir dela. A volatilidade varia com a raiz quadrada do tempo. Por isso, os dias aparecem sob o sinal de raiz quadrada, em vez de serem simplesmente divididos.
Movimento esperado = preço × IV × √(dias ÷ 365)
Duas convenções determinam se o seu resultado coincidirá com o exibido pela corretora. Usar dias corridos sobre 365 é o padrão para o investidor de varejo. Algumas mesas, porém, usam dias de negociação sobre 252. Nesse caso, a faixa resultante é ligeiramente mais ampla para a mesma IV. O resultado corresponde a um desvio padrão, uma faixa que abrange aproximadamente 68% dos resultados em uma distribuição normal. Duplicá-lo produz a faixa de dois desvios padrão, que abrange aproximadamente 95% dos resultados.
Saber se a IV utilizada é de fato elevada é uma questão separada, tratada em outra página: IV de 30% é alta compara uma leitura isolada com a própria distribuição do mercado.
Por que a faixa cresce com a raiz quadrada dos dias
Mantenha uma ação e uma sessão fixas e altere apenas o horizonte. A estrutura da fórmula aparece por si só. Contratos da Apple próximos do preço de exercício, em meados de julho de 2026, agrupados pelo prazo até o vencimento:
O SQL exato por trás de cada número
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_daysEm Jul 15, 2026, o grupo de 1 week tinha, em média, 5 dias até o vencimento e volatilidade implícita de 28%. O movimento esperado era de 3.17%, ou US$10.41, contra uma cotação de US$327.8 por ação. O grupo de 1 year tinha, em média, 292 dias e IV de 28.4%. O movimento esperado era de 25.44%, ou US$83.39.
A lição está nas proporções, não nos níveis. Quadruplicar o número de dias dobra o movimento esperado, para qualquer ação e qualquer IV, porque a raiz quadrada de 4 é 2. Quem anualiza uma faixa de um mês multiplicando-a por 12 superestima o valor anual por um fator de aproximadamente 3,5. O multiplicador correto é a raiz quadrada de 12, que é 3,46.
O atalho do straddle e por que ele fica cerca de 20% abaixo
Há uma maneira mais rápida de chegar ao movimento esperado pelo próprio mercado, sem fazer contas. Consulte o straddle at-the-money: a call e a put com o mesmo preço de exercício e o mesmo vencimento. Depois, some os dois prémios. Muitas mesas tratam essa soma como o movimento esperado.
Os dois métodos não produzem o mesmo número, e a diferença não é um erro de nenhum deles. Um straddle paga a distância absoluta entre o preço final da ação e o preço de exercício. Por isso, o seu preço representa o movimento médio esperado pelo mercado. A fórmula retorna um desvio-padrão. Em uma distribuição normal, o desvio absoluto médio equivale a 0,798 de um desvio-padrão. Assim, o straddle fica cerca de 20% abaixo do resultado da fórmula. Multiplicar o straddle por 1,25, que é 1 dividido por 0,798, aproxima os dois resultados.
Aplique o cálculo ao exemplo hipotético de US$ 100 apresentado no início. A fórmula resulta em US$ 8,60. O straddle at-the-money dessa ação teria preço próximo de US$ 6,86, pois 0,798 × 8,60 = 6,86. Multiplique US$ 6,86 por 1,25 e chegará novamente a US$ 8,58. São dois caminhos para chegar ao mesmo número, desde que se saiba qual estatística cada um apresenta. Leitura de uma cadeia de opções mostra onde esses dois prémios aparecem.
O que o movimento esperado não significa
- Não indica uma direção. A faixa é simétrica em torno do preço de hoje, e o mercado de opções precifica a sua amplitude, não o lado.
- Não é uma promessa. Os 68% vêm de uma distribuição normal, mas os retornos reais têm caudas mais espessas. Por isso, resultados extremos ocorrem com mais frequência do que o modelo pressupõe.
- Não é uma barreira. Pelo modelo, cerca de uma janela em cada três termina fora da faixa de um desvio-padrão. Fechar fora dela é o caso normal.
- Não é fixo. A volatilidade implícita é recalculada em cada sessão. Por isso, o movimento esperado para determinado vencimento é revisto diariamente.
O que acontece depois de um balanço
Uma data de divulgação de resultados programada é o exemplo mais claro de volatilidade implícita que sobe antes do evento e recua na sessão seguinte à publicação da notícia. Esse padrão é conhecido como compressão da volatilidade implícita. O movimento esperado também desaba nesse mesmo intervalo. O balanço da NVDA divulgado no fim de maio de 2023 saiu depois do fechamento da primeira sessão no painel abaixo.
O SQL exato por trás de cada número
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 dateA volatilidade implícita próxima do dinheiro estava em 115.1% em May 24, a sessão da divulgação, com um movimento implícito até o vencimento de 30.54%. Na sessão seguinte, a mesma medição correspondia a 42.9% daquele nível. Em Jun 9, a volatilidade implícita estava em 39.2%, e as ações estavam 1.71% em relação ao fechamento do dia da divulgação.
Essa combinação está na origem de uma reclamação comum. Um trader pode acertar a direção do movimento após a divulgação de resultados e ainda assim perder dinheiro com uma opção comprada: o parâmetro de volatilidade usado para precificar o contrato é reduzido assim que a incerteza é resolvida. Como os resultados afetam os gregos explica o restante desse efeito sobre a posição.
A variação esperada corresponde às variações realizadas?
A afirmação pode ser testada, e este é o teste. Todas as quartas-feiras ao longo dos dois anos até meados de junho de 2026, para seis ativos líquidos, usamos a volatilidade implícita próxima do preço de exercício nos contratos com vencimento entre 25 e 40 dias, convertemos esse dado em uma variação esperada para os dias seguintes e medimos quanto a ação de fato oscilou até o primeiro pregão realizado pelo menos 30 dias corridos depois.
O SQL exato por trás de cada número
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 precificou a maior faixa entre os seis ativos: uma variação implícita mediana de 13.3% contra uma variação realizada mediana de 6.77% em 103 janelas. No extremo de menor volatilidade, SPY precificou 4.37% contra uma variação realizada de 2.68%.
A última coluna é a que deve ser analisada. Espera-se que uma faixa de um desvio-padrão seja ultrapassada cerca de 32% das vezes. Esse é o referencial correto, não zero. 23.3% das NVDA janelas terminaram fora da faixa precificada pelas opções, e 24.3% das SPY janelas tiveram o mesmo resultado. Compare as duas medianas lado a lado para cada ativo e observe a diferença entre elas. Independentemente da direção, essa diferença resume o argumento sobre se as opções estavam precificando uma variação maior do que a efetivamente observada. Filtrar os ativos com as maiores faixas implícitas é outro exercício, e as ações com maior volatilidade implícita os classifica.
Notas e definições dos dados
- Próximo do preço de exercício significa um strike dentro de 5% do fechamento do ativo subjacente naquela sessão, em contratos com volatilidade implícita convergente e volume diferente de zero.
- A variação esperada usa dias corridos com base de 365 dias, e a variação realizada é a distância percentual entre o fechamento da observação e o fechamento da primeira sessão pelo menos 30 dias corridos depois, com o sinal removido.
- As observações são semanais, enquanto as janelas futuras abrangem 30 dias. Portanto, as janelas vizinhas se sobrepõem e as contagens não são amostras independentes.
Perguntas frequentes sobre o movimento esperado
Como calcular o movimento esperado a partir da volatilidade implícita?
Multiplique o preço da ação pela volatilidade implícita em formato decimal e, depois, pela raiz quadrada do número de dias dividido por 365. Para uma ação cotada a US$ 50, com volatilidade implícita de 40% e prazo de 45 dias: 50 × 0,40 × √(45 ÷ 365) = US$ 7,02, uma faixa de aproximadamente 14%.
O preço do straddle at-the-money é igual ao movimento esperado?
É próximo, mas não idêntico. O straddle precifica o movimento médio esperado, que corresponde a aproximadamente 0,798 de um desvio-padrão. Multiplicar o prémio do straddle por 1,25 recupera o valor de um desvio-padrão produzido pela fórmula.
Uma ação permanece dentro do seu movimento esperado?
Normalmente, e o modelo prevê que isso falhe em cerca de 32% dos casos. Nas janelas semanais analisadas acima, 23.3% de NVDA janelas terminaram fora da faixa implícita, e 24.3% de SPY janelas fizeram o mesmo.
Por que o movimento esperado diminui logo após a divulgação de resultados?
O movimento esperado é uma função direta da volatilidade implícita. A volatilidade implícita sobe antes de uma divulgação programada e recua quando o resultado é conhecido. No painel acima, a sessão após a divulgação da NVDA registou 42.9% da leitura do dia da divulgação.
Um movimento esperado mais amplo representa uma oportunidade melhor?
É apenas uma faixa mais ampla. Um movimento esperado maior significa que o mercado de opções está precificando mais incerteza, e os contratos que incorporam essa incerteza custam mais proporcionalmente. A amplitude não informa se o preço é justo.
Todos os painéis desta página são consultas armazenadas com o SQL anexado. Abra uma delas, troque o ticker e execute o mesmo teste de volatilidade implícita versus realizada no terminal Strasmore.