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.

Leitura de cerca de 15 minutos · exige derivada parcial e regra da cadeia

De onde vem essa equação? Da aplicação do lema de Itô ao preço de uma opção.

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

  1. O ponto de partida e o que atrapalha nele
  2. Primeira substituição, trocar preço por log-preço
  3. Segunda substituição, inverter o tempo
  4. Terceira substituição, o passo da regra da cadeia dupla
  5. O que a equação final está dizendo
  6. 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.

$$ \frac{\partial V}{\partial t} + \frac{1}{2}\sigma^{2}S^{2}\frac{\partial^{2} V}{\partial S^{2}} = 0 $$

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.

$$ V(S,T) = \text{payoff}(S) $$

Compare com a equação do calor, que é o nosso destino.

$$ \frac{\partial u}{\partial \tau} = \frac{1}{2}\sigma^{2}\frac{\partial^{2} u}{\partial z^{2}} $$

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.

$$ x = \ln S \qquad V(S,t) = v(x,t) $$

A primeira derivada sai da regra da cadeia, com \( \frac{\partial x}{\partial S} = \frac{1}{S} \).

$$ \frac{\partial V}{\partial S} = \frac{\partial v}{\partial x}\cdot\frac{\partial x}{\partial S} = \frac{v_x}{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.

$$ \frac{\partial (v_x)}{\partial S} = v_{xx}\cdot\frac{\partial x}{\partial S} = \frac{v_{xx}}{S} $$

Agora sim, a regra do quociente.

$$ \frac{\partial^{2} V}{\partial S^{2}} = \frac{\partial}{\partial S}\!\left(\frac{v_x}{S}\right) = \frac{\dfrac{v_{xx}}{S}\cdot S - v_x \cdot 1}{S^{2}} = \frac{v_{xx} - v_x}{S^{2}} $$

Substituindo na equação original, o \( S^{2} \) do numerador cancela com o do denominador.

$$ v_t + \frac{1}{2}\sigma^{2}\,S^{2}\cdot\frac{v_{xx} - v_x}{S^{2}} = 0 \quad\Longrightarrow\quad v_t + \frac{1}{2}\sigma^{2}\big(v_{xx} - v_x\big) = 0 $$

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.

$$ \tau = T - t \qquad v(x,t) = w(x,\tau) $$

Como \( \frac{d\tau}{dt} = -1 \), a derivada temporal troca de sinal.

$$ \frac{\partial v}{\partial t} = \frac{\partial w}{\partial \tau}\cdot\frac{d\tau}{dt} = -w_\tau $$
$$ -w_\tau + \frac{1}{2}\sigma^{2}\big(w_{xx} - w_x\big) = 0 \quad\Longrightarrow\quad w_\tau = \frac{1}{2}\sigma^{2}\big(w_{xx} - w_x\big) $$

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.

$$ z = x - \frac{1}{2}\sigma^{2}\tau \qquad w(x,\tau) = u(z,\tau) $$

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 \).

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,

$$ \Delta w \;\approx\; \underbrace{u_z \cdot \left(-\tfrac{1}{2}\sigma^{2}\Delta\tau\right)}_{\text{porque } z \text{ andou}} \;+\; \underbrace{u_\tau \cdot \Delta\tau}_{\text{porque } \tau \text{ andou}} $$

Dividindo por \( \Delta\tau \) e fazendo \( \Delta\tau \to 0 \),

$$ \frac{\partial w}{\partial \tau}\bigg|_{x} = -\frac{1}{2}\sigma^{2}u_z + u_\tau $$

Nas derivadas espaciais não há mistério, porque \( \frac{\partial z}{\partial x} = 1 \).

$$ w_x = u_z \qquad w_{xx} = u_{zz} $$

Levando tudo para a equação do passo anterior.

$$ u_\tau - \frac{1}{2}\sigma^{2}u_z = \frac{1}{2}\sigma^{2}\big(u_{zz} - u_z\big) = \frac{1}{2}\sigma^{2}u_{zz} - \frac{1}{2}\sigma^{2}u_z $$

O termo \( -\tfrac{1}{2}\sigma^{2}u_z \) aparece dos dois lados e vai embora.

$$ \boxed{\;\frac{\partial u}{\partial \tau} = \frac{1}{2}\sigma^{2}\frac{\partial^{2} u}{\partial z^{2}}\;} $$

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.

$$ z = \ln S - \frac{1}{2}\sigma^{2}\tau, \qquad \tau = T - t $$

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ório

6. Quando a taxa de juros não é zero

Com \( r \neq 0 \), a equação ganha dois termos.

$$ \frac{\partial V}{\partial t} + \frac{1}{2}\sigma^{2}S^{2}\frac{\partial^{2} V}{\partial S^{2}} + rS\frac{\partial V}{\partial S} - rV = 0 $$

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

$$ y = \ln\frac{S}{K}, \qquad \theta = \frac{1}{2}\sigma^{2}(T-t) $$

as mesmas contas das seções 2 e 3 levam a esta equação intermediária.

$$ v_\theta = v_{yy} + (k-1)\,v_y - k\,v $$

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.

$$ v(y,\theta) = e^{\alpha y + \beta \theta}\,u(y,\theta) $$

Derivando o produto e cancelando a exponencial, que nunca é zero,

$$ u_\theta = u_{yy} + \big[\,2\alpha + (k-1)\,\big]u_y + \big[\,\alpha^{2} + (k-1)\alpha - k - \beta\,\big]u $$

Os dois colchetes são o que atrapalha. Escolhemos \( \alpha \) e \( \beta \) justamente para zerá-los, o que dá duas equações simples.

$$ 2\alpha + (k-1) = 0 \;\Longrightarrow\; \alpha = -\frac{k-1}{2} $$
$$ \beta = \alpha^{2} + (k-1)\alpha - k = \frac{(k-1)^{2}}{4} - \frac{(k-1)^{2}}{2} - k = -\frac{(k-1)^{2}}{4} - k = -\frac{(k+1)^{2}}{4} $$

Com essa escolha, os dois colchetes somem e sobra a forma mais limpa possível da equação do calor.

$$ \boxed{\;\frac{\partial u}{\partial \theta} = \frac{\partial^{2} u}{\partial y^{2}}\;} $$

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 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.

  1. Por que trocar \( S \) por \( \ln S \) faz o \( S^{2} \) sumir, e que termo novo isso cria?
  2. O que a inversão do tempo resolve, além do sinal?
  3. 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.