Por que Black-Scholes é a equação do calor disfarçada
A afirmação aparece em quase todo livro de finanças quantitativas, quase sempre sem a conta. Aqui está a dedução inteira, sem pular passo, incluindo aquele em que quase todo mundo escorrega.
De onde vem essa equação? Da aplicação do lema de Itô ao preço de uma opção. E por que ela devolve o mesmo número que uma simulação? Pelo teorema de Feynman-Kac.
Você provavelmente já leu que a equação de Black-Scholes "se reduz à equação do calor por uma mudança de variáveis". É verdade, e conecta um modelo de preço de opção a uma equação que Fourier estudou em 1807 para descrever temperatura numa barra de metal.
O problema é que a frase costuma vir sozinha. O leitor aceita, segue em frente, e fica sem entender o que a transformação de fato faz. É o que esta página resolve, com a conta inteira.
O caminho
- O ponto de partida e o que atrapalha nele
- Primeira substituição, trocar preço por log-preço
- Segunda substituição, inverter o tempo
- Terceira substituição, o passo da regra da cadeia dupla
- O que a equação final está dizendo
- Quando a taxa de juros não é zero
1. O ponto de partida
A equação de Black-Scholes para o preço \( V(S,t) \) de um derivativo, com taxa de juros nula, é esta.
Vamos assumir \( r = 0 \) até a seção 6. Não é preguiça, é pedagogia. A estrutura da transformação fica visível sem o entulho algébrico, e o caso geral aparece no final.
Junto com a equação vem uma condição no fim, não no começo. No vencimento \( T \), o preço é conhecido, porque é o payoff.
Compare com a equação do calor, que é o nosso destino.
Três coisas atrapalham. Existe um \( S^{2} \) multiplicando a segunda derivada, e na equação do calor o coeficiente é constante. O sinal do termo temporal está trocado. E a condição é dada no fim do intervalo, enquanto difusão caminha para frente a partir de uma condição inicial.
O mapa do que vem pela frente
As duas primeiras substituições resolvem esses três problemas. Mas a primeira, ao consertar o \( S^{2} \), cria um problema novo, um termo de arrasto que não existia no ponto de partida. A terceira substituição existe só para matá-lo, e é a mais delicada das três.
2. Primeira substituição, do preço para o log-preço
O \( S^{2} \) aparece porque estamos usando a variável errada. Preço de ativo se move de forma multiplicativa, não aditiva. Uma ação de 10 reais e uma de 1000 não sobem 1 real com a mesma facilidade, mas sobem 1% com facilidade parecida. A variável natural é o logaritmo.
A primeira derivada sai da regra da cadeia, com \( \frac{\partial x}{\partial S} = \frac{1}{S} \).
Para a segunda derivada, precisamos derivar \( \frac{v_x}{S} \) em relação a \( S \). É um quociente, então vem a regra do quociente. Só que o numerador \( v_x \) também depende de \( S \), através de \( x \), e derivá-lo exige aplicar a regra da cadeia de novo, exatamente como fizemos acima.
Agora sim, a regra do quociente.
Substituindo na equação original, o \( S^{2} \) do numerador cancela com o do denominador.
O que ganhamos e o que perdemos
O coeficiente virou constante, e a equação deixou de depender do nível do preço. Em compensação, apareceu um termo que antes não existia, o \( -\tfrac{1}{2}\sigma^{2}v_x \). Ele é o arrasto anunciado na seção 1, e sai na seção 4.
3. Segunda substituição, inverter o tempo
O sinal errado e a condição no fim são o mesmo problema visto de dois ângulos. Ambos somem se você parar de medir o tempo que passou e passar a medir o tempo que falta.
Como \( \frac{d\tau}{dt} = -1 \), a derivada temporal troca de sinal.
O que ganhamos
O sinal está certo e a condição terminal virou condição inicial, porque \( t = T \) corresponde a \( \tau = 0 \). Agora \( w(x,0) = \text{payoff}(e^{x}) \). A equação evolui para frente em \( \tau \), que é para trás no calendário. É a primeira aparição da ideia central, que precificar é difundir o payoff para trás no tempo.
4. Terceira substituição, remover o arrasto
Falta eliminar o \( -\tfrac{1}{2}\sigma^{2}w_x \). Um termo de primeira ordem numa equação de difusão significa que o perfil, além de se espalhar, está andando de lado. A solução é acompanhar o movimento, trocando para um referencial que anda junto.
Atenção, é aqui que quase todo mundo erra
Nas duas substituições anteriores cada variável nova dependia de uma variável velha só. Agora não. O \( \tau \) aparece em dois lugares, no segundo argumento de \( u \) e dentro do próprio \( z \).
Quem escreve \( w_\tau = u_\tau \) e segue em frente perde um termo, e a conta não fecha.
Vamos com calma, sem precisar de cálculo multivariável formal. A notação \( \frac{\partial w}{\partial \tau}\big|_{x} \) significa apenas "variar \( \tau \) mantendo \( x \) parado". Então avance o tempo de \( \tau \) para \( \tau + \Delta\tau \), com \( x \) fixo, e veja o que acontece com os dois argumentos de \( u \).
- O segundo argumento é o próprio \( \tau \), que vira \( \tau + \Delta\tau \).
- O primeiro argumento é \( z = x - \tfrac{1}{2}\sigma^{2}\tau \). Com \( x \) parado, ele vira \( z - \tfrac{1}{2}\sigma^{2}\Delta\tau \).
Os dois se moveram, então \( u \) muda por duas causas somadas. Pela aproximação linear, que é a mesma ideia da derivada de Cálculo 1,
Dividindo por \( \Delta\tau \) e fazendo \( \Delta\tau \to 0 \),
Nas derivadas espaciais não há mistério, porque \( \frac{\partial z}{\partial x} = 1 \).
Levando tudo para a equação do passo anterior.
O termo \( -\tfrac{1}{2}\sigma^{2}u_z \) aparece dos dois lados e vai embora.
Calor puro. Repare no que aconteceu. O termo extra que a mudança de referencial produziu foi exatamente o que cancelou o arrasto. Se você tivesse escrito \( w_\tau = u_\tau \), ele não teria aparecido, e o arrasto ficaria lá para sempre.
5. O que a equação final está dizendo
Juntando as três trocas, a variável final é esta.
E a condição inicial da difusão, em \( \tau = 0 \), é o payoff no vencimento. Ou seja, o preço de uma opção é o seu payoff difundido para trás no tempo. Quanto mais tempo falta para o vencimento, mais a difusão agiu, e mais suave fica o perfil.
Três consequências que saem de graça dessa leitura.
O bico do call derretendo é o valor temporal
No vencimento, o payoff de um call tem um bico em \( S = K \). Difusão detesta bico, e o primeiro efeito dela é arredondar cantos. A distância vertical entre o payoff e a curva de preço, que é o valor temporal da opção, é literalmente o quanto a difusão já suavizou aquele bico.
Só a variância total importa
Na equação, \( \sigma \) e \( \tau \) nunca aparecem separados de verdade. O que governa a solução é o produto \( \sigma^{2}\tau \). Volatilidade de 20% com quatro anos produz exatamente a mesma curva que volatilidade de 40% com um ano. Não é o tempo nem a vol, é a variância acumulada.
Detalhe fino do payoff não sobrevive
Resolvendo por Fourier, cada modo de frequência \( k \) decai como \( e^{-\sigma^{2}k^{2}\tau/2} \). O quadrado no expoente faz as ondas curtas morrerem muito antes das longas. Difusão é um filtro passa-baixa, e é por isso que uma opção com vencimento longo é quase insensível aos detalhes finos do payoff.
Veja acontecendo, em vez de acreditar
Construí um simulador que integra exatamente a equação da caixa acima, \( u_\tau = \tfrac{1}{2}\sigma^{2}u_{zz} \) com \( r = 0 \), por diferenças finitas no navegador. Você escolhe o payoff, arrasta o tempo até o vencimento e vê a difusão precificar a opção, com a fórmula fechada de Black-Scholes sobreposta para conferir que os números coincidem. Gratuito e sem cadastro.
Abrir o laboratório6. Quando a taxa de juros não é zero
Com \( r \neq 0 \), a equação ganha dois termos.
As variáveis mudam de significado aqui
Para chegar à forma mais limpa, o caminho tradicional usa variáveis um pouco diferentes das seções 2 a 5. Para não confundir, vou chamá-las de \( y \) e \( \theta \). Elas não são o \( x \) e o \( \tau \) de antes. O \( y \) traz um \( K \) dentro do logaritmo e o \( \theta \) vem reescalado por \( \tfrac{1}{2}\sigma^{2} \).
Definindo \( k = \dfrac{2r}{\sigma^{2}} \) e escrevendo \( V = K\,v(y,\theta) \) com
as mesmas contas das seções 2 e 3 levam a esta equação intermediária.
Agora dá para ver o que falta. Sobrou um termo de primeira ordem, \( (k-1)v_y \), e um de ordem zero, \( -kv \). O truque do referencial que anda junto mata só o primeiro. Para matar os dois de uma vez, usa-se um fator exponencial.
Derivando o produto e cancelando a exponencial, que nunca é zero,
Os dois colchetes são o que atrapalha. Escolhemos \( \alpha \) e \( \beta \) justamente para zerá-los, o que dá duas equações simples.
Com essa escolha, os dois colchetes somem e sobra a forma mais limpa possível da equação do calor.
Para um call, a condição inicial em \( \theta = 0 \) fica \( u(y,0) = \max\!\left(e^{(k+1)y/2} - e^{(k-1)y/2},\, 0\right) \). A forma \( \beta = -\tfrac{(k+1)^{2}}{4} \) é a que aparece na maioria dos livros, e serve para você conferir contra outras fontes.
Conferido numericamente
Antes de publicar, resolvi essa forma por diferenças finitas num script à parte, não no simulador do site, e comparei com a fórmula fechada de Black-Scholes para taxas de 0% a 15%, volatilidades de 20% a 45% e prazos de seis meses a um ano. O maior desvio encontrado foi de 0,005% do strike. As duas rotas chegam ao mesmo número porque são a mesma matemática.
Vale a pena fazer o caso com \( r = 0 \) primeiro. Ele contém toda a ideia. O caso geral acrescenta contabilidade, não entendimento.
Para ver a fórmula final com números, a calculadora de Black-Scholes devolve o preço, as gregas e a volatilidade implícita, já com a convenção de dias úteis e taxa base 252 do mercado brasileiro.
Para fixar
Se você quer sair desta página sabendo a passagem, e não apenas tendo lido sobre ela, feche a aba e refaça no papel. São três perguntas.
- Por que trocar \( S \) por \( \ln S \) faz o \( S^{2} \) sumir, e que termo novo isso cria?
- O que a inversão do tempo resolve, além do sinal?
- De onde vem o termo extra no passo 4, e o que ele cancela?
Se travar na terceira, você está em boa companhia. É a única das três em que uma variável nova depende de duas velhas ao mesmo tempo, e é o motivo de esta página existir.