Strasmore Research
Deep Dives · Matt ConnorBy Matt Connor ·

Modelo de Heston e o volatility smile explicado

Uma volatilidade única não precifica toda a cadeia de opções. Entenda como o modelo de Heston trata a variância estocástica e o impacto de cada parâmetro no smile.

15.56%
O modelo de Heston é um modelo de precificação de opções que trata a volatilidade como aleatória, em vez de fixa. Ele possui duas variáveis dinâmicas: o preço da ação e a variância desse preço, cada uma com seu próprio choque aleatório. Essa segunda fonte de aleatoriedade é o que permite ao modelo gerar um volatility smile. Uma volatilidade constante, premissa do modelo Black-Scholes, só consegue traçar uma linha plana entre os strikes, e nenhuma cadeia de opções apresentou tal comportamento na prática.

Dinâmica do modelo

O modelo de Heston introduz a volatilidade estocástica para corrigir as limitações dos modelos tradicionais. Ao permitir que a variância flutue conforme um processo estocástico, o modelo captura melhor o comportamento dos preços de mercado. A existência de dois movimentos aleatórios distintos possibilita que o modelo reflita a inclinação observada nas volatilidades implícitas, algo que o modelo de Black-Scholes, com sua premissa de volatilidade constante, não consegue replicar. Na prática, o mercado nunca precifica opções com uma volatilidade plana ao longo dos diferentes strikes, tornando o modelo de Heston uma ferramenta mais robusta para a gestão de risco e precificação de derivativos.

Por que um único número de volatilidade não se aplica a uma cadeia de opções

A volatilidade implícita é o dado de volatilidade que faz com que uma fórmula de precificação retorne o preço pelo qual uma opção é efetivamente negociada. Ao invertê-la contrato a contrato, conforme detalhado em nossa página sobre como a volatilidade implícita é calculada, um vencimento resulta em uma curva ao longo dos strikes, em vez de um nível único. O painel abaixo considera todos os contratos de SPY com vinte a quarenta e cinco dias para o vencimento no primeiro semestre de dois mil e vinte e seis, classifica-os em faixas de dois por cento de acordo com a distância entre o strike e o preço à vista (spot), e calcula a média da volatilidade implícita dentro de cada faixa.

QueryVolatilidade implícita do SPY por distância do strike, 20 a 45 dias para o vencimento (jan a jun 2026)
O SQL exato por trás de cada número
WITH
    (
        SELECT avg(implied_volatility)
        FROM global_markets.options_greeks
        WHERE underlying_symbol = 'SPY'
          AND date BETWEEN '2026-01-02' AND '2026-06-30'
          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.01
    ) AS atm_iv
SELECT
    concat(if(m_bucket > 0, '+', ''), toString(m_bucket), '%') AS moneyness,
    round(avg(iv) * 100, 2)                                    AS iv_pct,
    round((avg(iv) - atm_iv) * 100, 2)                          AS iv_vs_atm_pts,
    count()                                                     AS contracts
FROM
(
    SELECT
        implied_volatility AS iv,
        toInt16(round((toFloat64(strike_price) / toFloat64(underlying_close) - 1) * 50) * 2) AS m_bucket
    FROM global_markets.options_greeks
    WHERE underlying_symbol = 'SPY'
      AND date BETWEEN '2026-01-02' AND '2026-06-30'
      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.12
)
GROUP BY m_bucket
HAVING count() >= 100
ORDER BY m_bucket
Run this yourself

A faixa -12%, com strikes muito abaixo do preço à vista, apresentou uma volatilidade implícita média de 28.05%, 11.61 pontos de volatilidade acima da média at-the-money para o mesmo período. A faixa +12% no lado das calls teve uma média de 15.56%. As faixas intermediárias traçam a curva que dá nome ao efeito, e sua inclinação lateral é o volatility skew. Um modelo com um único parâmetro de volatilidade não possui ajuste para capturar isso: cada strike é precificado com base em uma única distribuição para o preço no vencimento e, ao inverter esse modelo, obtém-se o mesmo número em todos os strikes, por construção.

O que o modelo de Heston altera

Heston mantém o choque aleatório da ação e adiciona um segundo processo para a variância. Em palavras, em vez de símbolos:

  • O movimento da ação no instante seguinte é uma tendência (drift) somada a um choque aleatório, ajustado pela raiz quadrada da variância atual.
  • O movimento da variância é uma atração em direção a um nível de longo prazo a uma velocidade fixa, somado ao seu próprio choque, ajustado por um parâmetro de volatilidade da volatilidade e pela raiz quadrada da variância atual.
  • Os dois choques são correlacionados por um número entre menos um e um.

Esse ajuste pela raiz quadrada é a forma de Cox-Ingersoll-Ross, e cumpre uma função relevante: o choque da variância diminui até zero à medida que a variância se aproxima de zero, o que impede que a variância se torne negativa. Quando o dobro da velocidade multiplicado pela variância de longo prazo excede o quadrado da volatilidade da volatilidade, uma condição nomeada em homenagem a Feller, a variância permanece estritamente positiva.

A variância em si não é observável. Sua contraparte implícita é, e ela não permanece estática. O painel abaixo plota a volatilidade implícita at-the-money para dois ativos, com uma leitura por sessão, ao longo do segundo trimestre de 2026.

QueryVolatilidade implícita at-the-money diária, SPY e NVDA (abr a jun 2026)
O SQL exato por trás de cada número
SELECT
    toString(date)                                                        AS session_date,
    round(avgIf(implied_volatility, underlying_symbol = 'SPY') * 100, 2)  AS spy_atm_iv_pct,
    round(avgIf(implied_volatility, underlying_symbol = 'NVDA') * 100, 2) AS nvda_atm_iv_pct
FROM global_markets.options_greeks
WHERE underlying_symbol IN ('SPY', 'NVDA')
  AND date BETWEEN '2026-04-01' AND '2026-06-30'
  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 countIf(underlying_symbol = 'SPY') > 0
   AND countIf(underlying_symbol = 'NVDA') > 0
ORDER BY date
Run this yourself

O SPY abriu a janela em 20.39% em 2026-04-01 e fechou em 14.45% em 2026-06-30. A NVDA variou de 36.83% a 38.22% ao longo das mesmas 62 sessões. Nenhuma das linhas permanece estática, e nenhuma delas se distancia indefinidamente: ambas oscilam e retornam a uma vizinhança. Precificar ambas as extremidades desse cenário exige um nível inicial somado a um nível de longo prazo, com uma velocidade para a atração entre eles.

Como cada parâmetro de Heston afeta a superfície

A reversão à média e o nível de longo prazo definem a estrutura a termo

O valor de uma opção depende da variância média esperada ao longo de sua vida, e não da variância atual. Para um contrato com vencimento na próxima semana, a variância de hoje domina essa média; para um contrato com vencimento em um ano, o nível de longo prazo é o fator dominante. O parâmetro de velocidade define a rapidez com que a expectativa transita entre esses dois pontos, o que determina a inclinação da volatilidade implícita ao longo do calendário.

QueryVolatilidade implícita near-the-money por prazo até o vencimento (jan a jun 2026)
O SQL exato por trás de cada número
SELECT
    tenor,
    round(avgIf(implied_volatility, underlying_symbol = 'SPY') * 100, 2)  AS spy_iv_pct,
    round(avgIf(implied_volatility, underlying_symbol = 'NVDA') * 100, 2) AS nvda_iv_pct
FROM
(
    SELECT
        implied_volatility,
        underlying_symbol,
        days_to_expiry,
        multiIf(
            days_to_expiry <= 7,   '1 to 7 days',
            days_to_expiry <= 21,  '8 to 21 days',
            days_to_expiry <= 45,  '22 to 45 days',
            days_to_expiry <= 90,  '46 to 90 days',
            days_to_expiry <= 180, '91 to 180 days',
                                   '181 to 365 days') AS tenor
    FROM global_markets.options_greeks
    WHERE underlying_symbol IN ('SPY', 'NVDA')
      AND date BETWEEN '2026-01-02' AND '2026-06-30'
      AND iv_converged = 1
      AND volume > 0
      AND days_to_expiry BETWEEN 1 AND 365
      AND abs(toFloat64(strike_price) / toFloat64(underlying_close) - 1) <= 0.02
)
GROUP BY tenor
HAVING countIf(underlying_symbol = 'SPY') > 0
   AND countIf(underlying_symbol = 'NVDA') > 0
ORDER BY min(days_to_expiry)
Run this yourself

Contratos de SPY próximos ao dinheiro no bucket 1 to 7 days registraram média de 17.05% durante o primeiro semestre de 2026, contra 18.77% no bucket 181 to 365 days. NVDA registrou 41.22% e 44.94% nos mesmos dois buckets. Um modelo de número único precifica todos os vencimentos com base na mesma volatilidade. Heston atribui níveis distintos para o curto e o longo prazo, com o parâmetro de velocidade governando a forma entre eles. Mais dessas curvas estão disponíveis em nossa página de estrutura a termo da IV.

A volatilidade da volatilidade curva o smile

A volatilidade da volatilidade é a própria volatilidade da variância. Ao defini-la como zero, a variância segue uma trajetória suave: a estrutura a termo ainda pode apresentar inclinação, mas o smile entre os strikes torna-se plano. Ao aumentá-la, a distribuição do preço no vencimento ganha peso em ambas as caudas, o que eleva os strikes distantes do preço à vista em relação aos próximos a ele. A amplitude de variação da variância na prática difere conforme o ativo subjacente, e o painel abaixo mede essa variação diretamente.

QueryVariação da volatilidade implícita at-the-money (jan a jun 2026)
O SQL exato por trás de cada número
SELECT
    symbol,
    round(min(daily_iv) * 100, 2)                   AS low_iv_pct,
    round(max(daily_iv) * 100, 2)                   AS high_iv_pct,
    round((max(daily_iv) - min(daily_iv)) * 100, 2) AS swing_pts
FROM
(
    SELECT
        underlying_symbol      AS symbol,
        date,
        avg(implied_volatility) AS daily_iv
    FROM global_markets.options_greeks
    WHERE underlying_symbol IN ('SPY', 'AAPL', 'MSFT', 'NVDA', 'AMZN', 'KO')
      AND date BETWEEN '2026-01-02' AND '2026-06-30'
      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 symbol, date
)
GROUP BY symbol
ORDER BY swing_pts DESC
Run this yourself

AMZN cobriu a maior amplitude no painel: volatilidade implícita no dinheiro tão baixa quanto 28.21% e tão alta quanto 74.42%, uma diferença de 46.22 pontos de volatilidade ao longo de seis meses. KO cobriu a menor, com 10.75 pontos. Vega, a sensibilidade do preço à volatilidade que nossa página de vega define, mede o nível da superfície. Sob volatilidade estocástica, dois contratos com vega equivalente podem se comportar de maneira distinta quando a forma da superfície se altera em vez do seu nível.

A correlação inclina o smile para um skew

A correlação entre o choque do ativo e o choque da variância transforma um smile simétrico em um assimétrico. Sob uma correlação negativa, trajetórias em que o ativo cai são trajetórias em que a variância sobe, e a cauda esquerda da distribuição no vencimento ganha mais peso que a direita. A volatilidade implícita do lado das puts é, então, precificada acima da volatilidade implícita do lado das calls para a mesma distância do preço à vista.

QueryVolatilidade implícita de puts versus calls, 20 a 45 dias (jan a jun 2026)
O SQL exato por trás de cada número
SELECT
    underlying_symbol                                                    AS symbol,
    round(avgIf(iv, ratio <= 0.95) * 100, 2)                             AS otm_put_iv_pct,
    round(avgIf(iv, ratio >= 1.05) * 100, 2)                             AS otm_call_iv_pct,
    round((avgIf(iv, ratio <= 0.95) - avgIf(iv, ratio >= 1.05)) * 100, 2) AS put_minus_call_pts
FROM
(
    SELECT
        underlying_symbol,
        implied_volatility                                    AS iv,
        toFloat64(strike_price) / toFloat64(underlying_close) AS ratio
    FROM global_markets.options_greeks
    WHERE underlying_symbol IN ('SPY', 'AAPL', 'MSFT', 'NVDA', 'AMZN', 'KO')
      AND date BETWEEN '2026-01-02' AND '2026-06-30'
      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.20
)
GROUP BY underlying_symbol
HAVING countIf(ratio <= 0.95) > 0
   AND countIf(ratio >= 1.05) > 0
ORDER BY put_minus_call_pts DESC
Run this yourself

Durante o primeiro semestre de 2026, SPY apresentou a maior diferença no painel: contratos com strike pelo menos 5% abaixo do preço à vista registraram média de 27%, contra 14.76% para contratos com strike pelo menos 5% acima, uma diferença de 12.23 pontos de volatilidade. No outro extremo, MSFT registrou 3.9 pontos na mesma métrica. Um parâmetro de correlação por ativo subjacente é o que cobre toda essa gama de inclinações.

A variância inicial define o nível

O quinto parâmetro é a variância a partir da qual o modelo parte hoje. Ele eleva ou reduz toda a superfície sem alterar significativamente sua forma, razão pela qual é o parâmetro reajustado com maior frequência: ele mantém o modelo alinhado ao nível atual do mercado, enquanto os outros quatro definem a geometria.

O que o modelo compra e quanto custa

A compra é uma superfície que se curva em duas direções a partir de cinco números interpretáveis, precificados rapidamente. O modelo de Heston avalia opções europeias por meio de uma função característica e uma integral numérica, sem necessidade de simulação, o que torna prático ajustar uma cadeia inteira em uma fração de segundo. Os custos merecem ser declarados claramente.

  • Os cinco parâmetros são calibrados, ajustados aos preços observados das opções em vez de medidos a partir de qualquer outra fonte.
  • Uma calibração é um retrato momentâneo. Refaça o ajuste amanhã e os números mudarão, o que significa que as constantes do modelo não são constantes.
  • Um conjunto de parâmetros raramente se ajusta a todos os vencimentos simultaneamente. Os smiles observados no curto prazo são mais acentuados do que este processo de variância consegue replicar.
  • Os preços no mercado apresentam gaps. A variância e o preço à vista movem-se continuamente aqui, e um gap precisa ser absorvido pelos números ajustados.

Uma ressalva é importante para os leitores que chegam das páginas de volatilidade. O processo de variância descreve a dinâmica que precifica as opções, o que é um objeto diferente da volatilidade que uma ação efetivamente realiza. A distância entre os dois é o tema de volatilidade implícita versus volatilidade realizada.

Onde o modelo ainda falha

Existem extensões para cada uma dessas lacunas. O modelo de Bates mantém a variância de Heston e adiciona saltos ao processo de preços, o que acentua o smile de curto prazo. Os modelos de volatilidade rough mantêm a variância aleatória e substituem o direcionador por trajetórias mais irregulares do que o movimento browniano padrão, ajustando-se melhor ao vencimento de curtíssimo prazo. Nenhum deles elimina o problema da calibração: ambos adicionam parâmetros que precisam ser ajustados a um momento e reajustados posteriormente.

Perguntas Frequentes

O que é o modelo de Heston em termos simples?

É um modelo de precificação de opções no qual a volatilidade é aleatória. A variância segue sua própria trajetória com uma atração em direção a um nível de longo prazo, e sua aleatoriedade é correlacionada com a da ação, o que permite ao modelo precificar uma curva de volatilidade (volatility smile) em vez de uma linha reta.

Por que o modelo de Black-Scholes resulta em uma curva de volatilidade plana?

Ele assume uma volatilidade constante, o que fixa uma única distribuição para o preço no vencimento. Cada strike é precificado a partir dessa mesma distribuição, e inverter a fórmula retorna a mesma volatilidade para todos os strikes. A linha plana é um resultado da premissa, não uma descoberta sobre os mercados.

O que significam os cinco parâmetros de Heston?

A variância inicial define o nível atual da superfície. A variância de longo prazo define para onde a variância é atraída ao longo do tempo, e a velocidade de reversão à média define a rapidez com que essa atração atua. A volatilidade da volatilidade define a curvatura do smile, e a correlação entre os dois choques define sua inclinação.

O modelo de Heston se ajusta aos preços reais das opções?

Ele se ajusta bem ao centro de uma superfície típica e tem mais dificuldade no vencimento de curtíssimo prazo, onde os smiles observados se curvam de forma mais acentuada do que o processo de variância permite. Os parâmetros ajustados também mudam de um dia para o outro, o que torna a calibração um exercício recorrente em vez de uma medição única.


Cada painel acima é entregue com o SQL que o gerou, pronto para ser redirecionado para outro ticker ou outra janela. Para fazer uma dessas perguntas em linguagem simples sobre dados de opções, abra o terminal Strasmore.