Precificação de Opções — Black-Scholes, Gregas e Volatilidade Estocástica
Fundamentos de precificação de opções: modelo Black-Scholes, gregas (delta, gamma, vega, theta), volatilidade implícita, smile de volatilidade e modelos estocásticos como Heston.
Uma opção é um contrato que dá ao comprador o direito (mas não a obrigação) de comprar (call) ou vender (put) um ativo subjacente a um preço pré-determinado (strike) em ou até uma data específica (vencimento). A questão central: quanto vale esse direito?
A resposta matemática a essa pergunta transformou os mercados financeiros.
Papers de referência: arXiv q-fin.PR — Pricing of Securities | q-fin.MF — Mathematical Finance
O modelo Black-Scholes
Publicado em 1973 por Fischer Black e Myron Scholes (com contribuição fundamental de Robert Merton), o modelo Black-Scholes forneceu a primeira fórmula fechada para precificação de opções europeias.
Premissas
| Premissa | Realidade |
|---|---|
| Volatilidade constante | Volatilidade muda ao longo do tempo |
| Não há dividendos | Muitos ativos pagam dividendos |
| Mercado contínuo e sem fricções | Há bid-ask spread, custos de transação |
| Taxa livre de risco constante | Taxa varia |
| Preço segue Browniano Geométrico | Caudas pesadas observadas empiricamente |
Apesar das premissas irrealistas, Black-Scholes é o ponto de partida universal — todos os modelos mais sofisticados são extensões.
A fórmula
Preço de uma call europeia:
C = S₀ × N(d₁) - K × e^(-rT) × N(d₂)
Onde:
d₁ = [ln(S₀/K) + (r + σ²/2)T] / (σ√T)
d₂ = d₁ - σ√T
- S₀: preço atual do ativo
- K: strike price
- r: taxa livre de risco
- T: tempo até vencimento (em anos)
- σ: volatilidade do ativo
- N(x): CDF da normal padrãoPreço de uma put (pela paridade put-call):
P = K × e^(-rT) × N(-d₂) - S₀ × N(-d₁)from scipy.stats import norm
import numpy as np
def black_scholes_call(S, K, r, T, sigma):
d1 = (np.log(S/K) + (r + sigma**2/2)*T) / (sigma*np.sqrt(T))
d2 = d1 - sigma*np.sqrt(T)
return S*norm.cdf(d1) - K*np.exp(-r*T)*norm.cdf(d2)
def black_scholes_put(S, K, r, T, sigma):
d1 = (np.log(S/K) + (r + sigma**2/2)*T) / (sigma*np.sqrt(T))
d2 = d1 - sigma*np.sqrt(T)
return K*np.exp(-r*T)*norm.cdf(-d2) - S*norm.cdf(-d1)
# Exemplo: call com S=100, K=105, r=5%, T=1 ano, σ=20%
preco = black_scholes_call(100, 105, 0.05, 1.0, 0.20)
print(f"Preço da call: R$ {preco:.2f}") # → R$ 8.02As Gregas — sensibilidades da opção
As gregas medem como o preço da opção muda com cada variável. São ferramentas essenciais de gestão de risco para traders de opções.
Delta (Δ) — sensibilidade ao preço do ativo
Delta_call = N(d₁) ∈ [0, 1]
Delta_put = N(d₁) - 1 ∈ [-1, 0]Interpretação: delta de 0.6 significa que a opção sobe R$0.60 para cada R$1 de alta no ativo subjacente.
Delta hedging: um market maker que vendeu uma call com delta 0.6 compra 60 ações para ter posição neutra ao delta. Essa posição precisa ser rebalanceada dinamicamente.
Gamma (Γ) — curvatura
Taxa de variação do delta em relação ao preço do ativo:
Gamma = N'(d₁) / (S × σ × √T)Gamma positivo: o delta aumenta quando o ativo sobe (bom para o comprador da opção). Long gamma: compradores de opções têm gamma positivo; vendedores têm gamma negativo.
Risco de gamma: posições com alto gamma são perigosas para vendedores — pequenos movimentos do ativo geram grandes perdas.
Vega (ν) — sensibilidade à volatilidade
Vega = S × N'(d₁) × √TInterpretação: vega de 0.20 significa que a opção sobe R$0.20 para cada 1% de aumento na volatilidade implícita.
Long vega: quem compra opções se beneficia de aumento de volatilidade.
Theta (Θ) — decaimento temporal
Quanto o valor da opção perde por dia que passa:
Theta = -[S × N'(d₁) × σ] / (2√T) - r × K × e^(-rT) × N(d₂)Theta negativo: uma opção comprada perde valor com o passar do tempo (time decay). Uma opção com 30 dias para vencer perde valor mais rapidamente que uma com 180 dias.
Rho (ρ) — sensibilidade à taxa de juros
Menor das gregas na maioria dos contextos, mas relevante em opções de longa duração.
| Grega | Símbolo | Mede | Sinal para calls |
|---|---|---|---|
| Delta | Δ | ∂V/∂S | Positivo |
| Gamma | Γ | ∂²V/∂S² | Positivo |
| Vega | ν | ∂V/∂σ | Positivo |
| Theta | Θ | ∂V/∂t | Negativo |
| Rho | ρ | ∂V/∂r | Positivo |
Volatilidade Implícita
A volatilidade implícita (IV) é a volatilidade que, inserida no modelo Black-Scholes, reproduz o preço de mercado da opção.
Inversão numérica:
from scipy.optimize import brentq
def implied_vol(market_price, S, K, r, T, option_type='call'):
def objetivo(sigma):
if option_type == 'call':
bs_price = black_scholes_call(S, K, r, T, sigma)
else:
bs_price = black_scholes_put(S, K, r, T, sigma)
return bs_price - market_price
return brentq(objetivo, 0.001, 5.0) # busca sigma entre 0.1% e 500%O Smile (e Skew) de Volatilidade
Se Black-Scholes fosse perfeito, a IV seria constante para todos os strikes. Na realidade, observamos:
- Smile: IV mais alta para opções muito dentro ou fora do dinheiro (comum em ações)
- Skew: IV aumenta para strikes baixos (puts de proteção têm prêmio)
- Smirk/sneer: assimetria com IV alta para downside
O skew de volatilidade reflete o medo do mercado: investidores pagam prêmio por proteção contra quedas bruscas (tail risk).
Modelos de Volatilidade Estocástica
Para capturar o smile, modelos avançados tratam a volatilidade como processo estocástico.
Modelo de Heston (1993)
O modelo mais utilizado na prática:
dS = μS dt + √v × S × dW₁
dv = κ(θ - v) dt + ξ√v × dW₂
Corr(dW₁, dW₂) = ρ
Onde:
- v: variância instantânea
- κ: velocidade de reversão à média
- θ: variância de longo prazo
- ξ: volatilidade da volatilidade (vol of vol)
- ρ: correlação (tipicamente negativa para ações)Heston tem solução semi-analítica via transformada de Fourier — pode ser calibrado eficientemente aos preços de mercado.
Calibração: encontrar (κ, θ, ξ, ρ, v₀) que minimiza a distância entre preços do modelo e preços de mercado:
from scipy.optimize import minimize
def calibrar_heston(precos_mercado, strikes, maturidades, S, r):
def objetivo(params):
kappa, theta, xi, rho, v0 = params
precos_modelo = heston_call_prices(S, strikes, maturidades, r, kappa, theta, xi, rho, v0)
return np.sum((precos_modelo - precos_mercado)**2)
resultado = minimize(objetivo, x0=[2.0, 0.04, 0.3, -0.7, 0.04],
bounds=[(0.1,10), (0.01,1), (0.01,2), (-0.99,-0.01), (0.01,1)])
return resultado.xSABR (2002)
Popular em mercados de taxa de juros:
dF = σ Fᵝ dW₁
dσ = α σ dW₂Tem fórmula aproximada simples e captura bem o smile de vol.
Local Volatility (Dupire, 1994)
Em vez de estocasticidade, usa uma função σ(S, t) determinística que reproduz exatamente a superfície de volatilidade implícita observada no mercado.
Machine Learning para precificação
Pesquisa recente no arXiv mostra que ML pode superar Black-Scholes e Heston em alguns contextos:
- Neural Networks: aprendem diretamente o mapeamento (strikes, maturidades, features) → preço
- Gaussian Processes: quantificam incerteza na precificação
- Deep Hedging: aprende estratégias de hedging ótimas sem modelo de preço explícito
Ver: Can ML Outperform Traditional Models for Option Pricing? (arXiv)
Superfície de volatilidade
A superfície de vol mapeia IV para todos os strikes e maturidades — o "mercado de volatilidade":
Dimensões:
- Eixo X: strike (ou moneyness = K/S)
- Eixo Y: maturidade
- Eixo Z: volatilidade implícita
O VIX (índice de medo) é derivado da superfície de vol do S&P500.Conexões com outras seções
- Finanças Quantitativas — Hub — contexto geral
- Otimização de Portfólio — opções como instrumento de hedge de portfólio
- Inferência Bayesiana — calibração bayesiana de parâmetros de modelos de vol
- Séries Temporais com ML — modelagem de volatilidade com GARCH e deep learning
- Econometria — GARCH e modelos de volatilidade condicional
Referências:
- Extended Black-Scholes Framework (arXiv 2504.03175)
- Option Pricing with Stochastic Volatility (arXiv 2408.15416)
- Heston Model — Wikipedia
- Heston Model — QuantInsti
Aviso Legal: Conteúdo educativo. Não constitui recomendação de investimento. Modelos de precificação envolvem premissas que podem não se sustentar em condições de mercado extremas.
Finanças Quantitativas — Modelos Matemáticos para o Mercado
Hub de finanças quantitativas: precificação de opções, otimização de portfólio, arbitragem estatística e os fundamentos matemáticos por trás das estratégias de trading algorítmico.
Otimização de Portfólio — MPT, Fronteira Eficiente e Modelos de Fator
Teoria Moderna de Portfólios (Markowitz), fronteira eficiente, CAPM, modelos de fator (Fama-French), Black-Litterman e otimização com restrições práticas.