Primeira vez aqui? Seja bem vindo e cheque o FAQ!
x

Cálculo de opção de abandono

+1 voto
27 visitas
perguntada Out 4 em Economia por Renata Oliveira (6 pontos)  

NanoNano é especialista no desenvolvimento de novos produtos utilizando nanotecnologia. A empresa possui uma patente para um novo catalisador, NanoCat, que pode ampliar a produção de etileno em sua fabricação. A empresa deseja produzir e vender o NanoCat e está considerando um investimento em uma nova planta. O custo total de construir a fábrica é estimado em 200 milhões de dólares. O fluxo de caixa descontado do potencial de mercado do NanoCat revela um valor presente de do payoff, descontado a uma taxa livre de risco apropriada, também seria de 200 milhões. A volatilidade anual dos retornos logaritmicos para o fluxo de caixa futuro foi calculado em 45% e a taxa juros livre de risco considerada para os próximos 5 anos é de 5%. Existe uma incerteza considerável sobre o payoff esperado e por isso a NanoNano está considerando uma opção de abandono. A empresa acordou com o fornecedor dos equipamentos que poderá vender de volta os equipamentos a qualquer momento nos próximos 5 anos pelo valor de 120 milhões. Se o mercado responder de forma positiva, a NanoNano continua suas operações. Caso contrário, abandona as operações e recupera o montante de 120 milhões na venda dos equipamentos. Qual é o valor da opção de abandono?

Compartilhe

2 Respostas

+1 voto
respondida Out 24 por Gustavo Medeiros (26 pontos)  

Questão bem interessante para aplicar os conhecimentos de opções. Para verificar a resposta optei por resolve-la utilizando o Python, tomando como referência o Método Binomial Árvore de Precificação de Cox, Ross e Rubinstein.
Primeiramente vamos importar a biblioteca necessária e começar a definir a função Binomial:

import numpy as np
def Binomial(n, S0, X, r, v, t, PutCall):  
       At = t/n 
       u = np.exp(v*np.sqrt(At))
       d = 1./u
       p = (np.exp(r*At)-d) / (u-d) 

Onde At (\(\delta t\)) é o numero de estágios de nós(n) divido pelo tempo (t), S0 é o valor inicial, X (Strike Price) é o valor da opção de abandonar, r é a taxa livre de risco, v(\(\sigma\)) é a volatilidade e PutCall indica se é uma opção de Call ou Put. Para essa questão já sabemos que é Put. Os parâmetros u, d e p estão definidos de acordo com a questão.

Vamos agora definir, por meio de uma matriz, a arvore Binomial da mesma forma que a Renata fez. Multiplicando S0 por u e d a cada nó da árvore até chegar ao quinto e ultimo nó. Para isso, utilizei o código:

      stockvalue = np.zeros((n+1,n+1))
      stockvalue[0,0] = S0
      for i in range(1,n+1):
          stockvalue[i,0] = stockvalue[i-1,0]*u
          for j in range(1,i+1):
              stockvalue[i,j] = stockvalue[i-1,j-1]*d

Onde np.zeros é o comando para montar a matriz, S0 é o valor da entrada da primeira linha e primeira coluna e a cada nó temos duas multiplicações, uma por u e outra por d, sempre carregando o valor do nó atual, até chegar no ultimo nó. Lembre que o código é uma única função, de forma que é necessário manter o espaçamento adequado em cada linha.

Próximo passo é calcular, recursivamente, o valor da opção. Para tal, utilizaremos uma matriz novamente:

   optionvalue = np.zeros((n+1,n+1))
   for j in range(n+1):
      if PutCall=="C": # Call
          optionvalue[n,j] = max(0, stockvalue[n,j]-X)
      elif PutCall=="P": #Put
          optionvalue[n,j] = max(0, X-stockvalue[n,j])

Onde calculamos o valor do ultimo nó e agora podemos, caminhando de trás pra frente, calcular o valor da opção em cada nó até chegarmos ao primeiro nó

    for i in range(n-1,-1,-1):
        for j in range(i+1):
              if PutCall=="P":
                  optionvalue[i,j] = max(0, X-stockvalue[i,j], np.exp(-r*At)*(p*optionvalue[i+1,j]+(1-p)*optionvalue[i+1,j+1]))
              elif PutCall=="C":
                  optionvalue[i,j] = max(0, stockvalue[i,j]-X, np.exp(-r*At)*(p*optionvalue[i+1,j]+(1-p)*optionvalue[i+1,j+1]))

Perceba que essa matriz nos dá o máximo entre a diferença entre o Strike Price (valor da opção de abandono quando exercida) menos o valor do ativo, o valor esperado de manter a opção em aberto (levando em conta a taxa livre de risco) e zero. Ao somar a Matriz stockvalue e a Matriz optionvalue montamos uma árvore Binomial que indica o máximo entre o valor que poderia ser recebido em caso de abandono do projeto e o valor esperado de manter o projeto.

Atente também para o fato de podermos analisar tanto uma opção de Put quanto uma de Call com esse código.

Para arrendondar os valores para uma casa decimal e montarmos uma árvore semelhante à da Renata, usamos:

    x=stockvalue.round(1)
    y=optionvalue.round(1)
    z=x+y
    return np.transpose(x), np.transpose(z)

Observe que tive que transpor as matriz para ficar mais apresentável, questão puramente estética. Assim encerra-se a função Binomial. Para chama-la com os parâmetros definidos na questão basta usar:

if __name__ == "__main__":
        print(Binomial(5,200,120,0.05,0.45,5,"P"))

Resultado:

A imagem será apresentada aqui.

Note que retornei a função duas vezes, uma para cada matriz. Porém o resultado é o mesmo caso retorne as duas matrizes juntas.

Concluindo, o valor da opção de abondono é 217 milhões.

0 votos
respondida Out 4 por Renata Oliveira (6 pontos)  

Uma opção de abandono é uma opção de venda ("put option") que só tem valor se o valor do ativo subjacente, ou seja, o valor do projeto, for menor do que o preço de exercício, neste caso o valor dos equipamentos que serão vendidos caso a empresa opte por abandonar o projeto. Para calcular o valor da opção, primeiramente identifique os parâmetros do problema:

\[S_0 = 200\]
\[X = 120\]
\[T = 5\]
\[\sigma = 0.45\]
\[r = 0.05\]
\[\delta t = 1\]

Calculando os parâmetros da opção:

\[u = exp(\sigma(\delta t)^{(1/2)}\]
\[d = 1/u\]
\[p = \frac{(exp(r\delta t) - d}{(u-d)}\]

Obtém-se \(u = 1.57\), \(d = 0.64\) e \(p = 0.44\)

Para calcular a árvore binomial, começamos com o valor inicial \(S_0\) e o multiplicamos pelos fatores u e d para obter \(S_0u\) e \(S_0d\) no período 1. No período seguinte, fazemos a mesma coisa, obtendo os valores dos nódulos \(S_0u^2\), \(S_0ud\) e \(S_0d^2\). Da mesma forma completamos a árvore até os nódulos terminais que correspondem ao quinto período. A figura ilustra a árvore binomial.

Posteriormente, calculamos o valor da opção de abandono em cada nódulo por indução retroativa. A cada nódulo, a empresa tem a opção de abandonar o projeto e recuperar $120 milhões ou continuar as operações. Começando pelo último período, o valor, por exemplo, do nódulo \(S_0u^5\) é de $1897,5 milhões. Comparando com os $120 milhões, é evidente que a empresa não abandonaria o projeto. Logo, o valor da opção é de $1897,5 milhões neste nódulo. No nódulo \(S_0ud^4\), por outro lado, o valor esperado é $51,8 milhões. Comparando com os $120 milhões, faz sentido a empresa abandonar o projeto e vender os equipamentos. Logo, o valor da opção é $120 milhões neste nódulo.

Considerando os nódulos anteriores, precisamos calcular o valor esperado de manter a opção em aberto, ou seja, precisamos descontar, utilizando a taxa de juros livre de risco r, a média ponderada pela probabilidade p dos valores potenciais da opção. Isto significa, por exemplo, que no nódulo \(S_0u^4\) o valor da opção é

\[ [p(S_0u^5)+(1-p)(S_0u^4d)]*exp(-r\delta\ t) = \]
\[ = [0.44*1897.5 + 0.56*771.5]*0.95 = 1209.9 \]

Como este valor ainda é superior a $120 milhões, a empresa mantém a opção e segue com a planta em operação. Assim, o valor da opção é igual a $1209,9 milhões neste nódulo.

De forma similar, considere o nódulo \(S_0ud^3\). O valor esperado de manter a opção em aberto é igual a

\[ [p(S_0u^2d^3)+(1-p)(S_0ud^4)]*exp(-r\delta\ t) = \]
\[ = [0.44*127.5 + 0.56*120]*0.95 = 117.3 \]

Note que o valor da opção no nódulo \(S_0ud^4\) é igual a $120 pois seria o caso de a empresa abandonar o projeto. Como 117 < 120, a empresa exerceria a opção, recebendo o valor de $120 milhões.

Os valores em itálico na figura mostram os valores da opção em cada nódulo, calculados tomando o máximo entre o valor que poderia ser recebido em caso de abandono do projeto e o valor esperado de manter o projeto. No período zero, chegamos a um valor de $217.3 milhões.

A imagem será apresentada aqui.

Note que o valor do payoff do projeto baseado no fluxo de caixa descontado, sem a flexibilidade da opção de abandono, foi estimado em $200 milhões. O custo de implementar a nova planta foi também estimado em $200 milhões, o que indica um valor presente líquido do projeto igual a zero. Considerando a opção de abandono, por outro lado, o valor estimado do projeto da nova planta é de $217.3 milhões, ou seja, indica um excedente de $17.3 milhões em relação ao custo do projeto. O valor presente positivo com a opção de abandono em comparação com o valor nulo estimado sem a opção é determinante para a decisão da NanoNano de invertir ou não na nova planta para produzir o NanoCat.

...