Exercício 6.1: O Beta VaR é o percentual que cada componente do VaR representa
7.1 Modelo de Black-Scholes (B-S)
Os contratos de opções constituem produtos financeiros denominados de derivativos. Os derivativos recebem este nome, pois representam produtos financeiros cujo valor depende de outro ativo, chamado de ativo-objeto.
Esses instrumentos financeiros possibilitam o estabelecimento de estratégias que dificilmente poderiam ser estruturadas com a utilização de quaisquer outros
produtos do mercado financeiro. Neste capítulo, nosso intuito é exemplificar, por meio da obtenção de um preço justo para os contratos de opções, o uso de ferramentas predefinidas no Excel.
Existem basicamente dois contratos de opções tradicionais: (i) as opções de compra, também denominadas de calls e (ii) as opções de venda, também chamadas de puts. O investidor que compra uma opção, independentemente de comprar uma
call ou uma put, é denominado titular. O investidor que vende uma opção é chamado
de lançador. As opções representam direitos a serem exercidos em alguma data. Em um contrato de call, isto é, de opção de compra, o titular tem o direito de comprar um ativo-objeto, em uma data futura, por um preço predeterminado. Este preço determinado é denominado preço de exercício da opção. Em uma call, o titular da opção só exerce seu direito quando lhe for conveniente, ou seja, quando puder comprar o ativo por um preço atrativo. Ou seja, o titular da call exerce seu direito de compra quando o preço do ativo na data de vencimento for maior que o preço de exercício.
Já em um contrato de put, isto é, opção de venda, o titular possui um direito de vender um ativo-objeto em uma determinada data por um preço pré-estabelecido. Esse preço predefinido é chamado de preço de exercício. Assim, no caso de opção de venda, o titular exerce seu direito quando, na data de vencimento do contrato, o preço do ativo-objeto for menor que o preço de exercício.
Pela descrição dos produtos, a posição dos titulares das opções parece ser bastante confortável, pois podem exercer seu direito, de compra no caso da call ou de venda no caso da put, quando lhes é conveniente. Porém, este direito tem um preço. Para obterem uma opção, os titulares devem pagar antecipadamente um valor denominado prêmio da opção.
Este prêmio corresponde ao valor pago pelo direito de compra, no caso de uma
call, ou pelo direito de venda, no caso de uma put, do ativo-objeto, por um preço pré-
estabelecido. Em contrapartida, o lançador da opção recebe o prêmio para ficar obrigado a atender ao direito do titular, caso a opção seja exercida.
Assim, em uma call, quando o titular exerce seu direito de compra, o lançador tem a obrigação de vender o ativo-objeto pelo preço predefinido. No caso de uma
put, quando o titular exerce seu direito de venda, o lançador tem a obrigação de
do lançador é mais arriscada, pois o titular da opção só exerce seu direito quando lhe é conveniente. Neste cenário de exercício da opção, o titular opera o ativo-objeto a um preço satisfatório, porém, o lançador incorre em uma perda.
Considerando o fato de que, na data de vencimento, o titular da opção somente exerce seu direito quando lhe é conveniente, o lançador da opção, no momento da operação com a opção, cobra um valor, isto é, o prêmio, para correr o risco de ter que operar o ativo-objeto em condições desfavoráveis na data de vencimento.
Uma questão fundamental em teoria de finanças é justamente identificar um modelo que permita definir um preço justo para o prêmio a ser pago por um direito de operar um determinado ativo-objeto, por um preço fixo já definido anteriormente, em uma data futura.
O conceito de opções, apesar de simples, não é facilmente assimilável. A assimetria entre direitos e obrigações de titulares e lançadores de opções torna a compreensão das opções um pouco mais difícil. Além disso, esta assimetria torna o mecanismo de precificação de opções, ou seja, a definição de um valor justo para o prêmio, bastante complexo. De fato, a precificação de opções desafiou o mercado financeiro durante décadas, tendo sido primeiramente resolvida com os estudos seminais de Fisher Black, Myron Scholes em 1973 e Robert Merton em 19741 que
culminou na fórmula de Black-Scholes.
A fórmula de Black-Scholes reflete um dos modelos financeiros mais utilizados no mundo. Praticamente qualquer trader de derivativos já desenvolveu uma planilha que simula a fórmula de Black-Scholes. Apesar da derivação desta fórmula ser engenhosa e complexa, uma das características interessantes é sua facilidade de implementação computacional em planilha eletrônica.
7.1.1 Formulação de Black-Scholes
A fórmula de Black-Scholes permite estimar, de maneira analítica, um preço justo para o prêmio de uma opção cujo ativo-objeto seja simples. Considerando que a opção representa um direito futuro de operar um determinado ativo-objeto em uma data futura, por um preço de exercício do direito, pode-se elencar alguns elementos
do modelo de precificação: preço à vista do ativo-objeto (S), preço de exercício do direito (K), prazo referente ao período de tempo até o vencimento da opção (T).
Além disso, a precificação de opções exige ainda outros parâmetros de entrada como taxa de juros livre de risco (R) e volatilidade dos retornos do ativo-objeto (σ). Adicionalmente, no caso em que o ativo-objeto é uma ação, pode-se levar em consideração no modelo de precificação, uma taxa de pagamento de dividendos. Sem entramos em detalhes, é importante ressaltar que na fórmula de Black-Scholes, todos os valores de taxa referem-se a uma capitalização contínua.
A fórmula de Black-Scholes é dada por: 𝑐 = 𝑆𝑒−𝑞∙𝑇∙ 𝑁(𝑑
1) − 𝐾 ∙ 𝑒−𝑟∙𝑇∙ 𝑁(𝑑2) (7.1)
onde
S = preço à vista do ativo-objeto; K = preço de exercício da opção; v = volatilidade do ativo-objeto; T = prazo para vencimento da opção; r = taxa de juros livre de risco; e
q = taxa de pagamento de dividendos (opcional).
Com: 𝑁(𝑑) = ∫ 𝑓(𝑥) 𝑑 −∞ 𝑑𝑥 (7.2) 𝑑1= ln 𝑆 𝐾 + (𝑟 − 𝑞 + 𝑣2 2) ∙ 𝑇 𝑣 ∙ √𝑇 (7.3) 𝑑2= ln 𝑆 𝐾 + (𝑟 − 𝑞 − 𝑣2 2) ∙ 𝑇 𝑣 ∙ √𝑇 𝑓(𝑥) = 1 √2𝜋𝑒 −𝑥22 (7.4) (7.5)
onde f(x)é a função que retorna o valor da distribuição normal padrão, com média em zero e desvio padrão unitário, em função da distância x à média.
O código exposto na próxima seção remete à implementação da equação 7.1, com a incorporação das variáveis definidas em 7.2, 7.3 e 7.4, utilizando a chamada à função Norm_S_Dist, do Excel, intrínseca em sua biblioteca, que fornece uma solução adequada para a Equação 7.4. Para uma discussão completa de derivativos, Hull (2014).
7.1.2 Programação em VBA da formulação de Black-Scholes
Podemos ver que o código é bastante simples. A fórmula é longa e o espaço em página é bastante restrito. Assim, como nos diversos códigos anteriores, utilizamos o caractere underline “_” para indicar ao VBA uma continuação da instrução na linha posterior. Utilizamos este recurso devido ao espaço, mas é, também, extremamente útil para organizar, por exemplo, os termos de um somatório.
01 02 03 04 05 06 07 08 09 10
Function fncBSCall(S, K, V, T, R, Q) As Double
fncBSCall = S * _ WorksheetFunction_S_Dist( _ (Log(S / K) + T * (R - Q + V ^ 2 / 2)) / _ V * Sqr(T) True) * Exp(-Q * T) - _ K * _ WorksheetFunction.Norm_S_Dist ( _ (Log(S / K) + T * (R - Q - V ^ 2 / 2)) / _ V * Sqr(T) True) * Exp(-R * T) End Function Código 7.1: Código-fonte 34.
As funções pré-programadas do Excel podem ser acessadas, assim como neste caso com a distribuição cumulativa normal padrão, por meio da estrutura
Application que remete à chamada de uma função f(x)(Equação 7.5) do aplicativo. Existem diversas funções previamente disponíveis no Excel para serem utilizadas, do mesmo modo que são utilizadas em planilha. Não é o escopo desta obra fazer referência a todas elas. Para tanto, a ajuda do Excel é valiosa. Observe ainda que podemos utilizar outras funções chamadas Sqr() e Exp(), que retornam a raiz
quadrada e o valor de e elevado ao argumento passado, respectivamente. A Tabela 7.1 contém algumas funções matemáticas presentes no VBA e a Tabela 7.2 as funções derivadas a partir delas.
A função f(x) (Equação 7.4) poderia ser implementada, caso não houvesse disponível no VBA do Excel, conforme sugestão a seguir:
01 02 03 04
Function fncNormSDist(z) As Double
fncNormSDist = Exp(-z^2 / 2) / _
Sqr(2 * Application.Pi())
End Function