ComeçarComece de graça

Precificação de opções e o ativo subjacente

Opções são basicamente apostas sobre a evolução futura do preço do ativo subjacente.

Por exemplo, uma opção de venda (put) é valiosa quando o preço à vista (de mercado) cai abaixo do preço de exercício da opção. O titular pode exercer a opção para vender o subjacente ao strike \(X\) e comprá-lo de volta ao preço à vista \(S < X\), obtendo lucro de \(X - S\).

Neste exercício, você vai valorar e visualizar uma opção europeia de venda sobre a ação da IBM, novamente aplicando a fórmula de precificação de Black-Scholes, conforme o preço à vista \(S\) varia.

O strike X = 140, o tempo até o vencimento T é de 1/2 ano e a taxa de juros livre de risco é de 2%.

A volatilidade anualizada de IBM está disponível como sigma, e o eixo de plotagem option_axis está disponível para você adicionar seu gráfico.

Você pode encontrar o código-fonte da função black_scholes() aqui.

Este exercício faz parte do curso

Gerenciamento Quantitativo de Risco em Python

Ver curso

Instruções do exercício

  • Defina IBM_spot como as primeiras 100 observações da série temporal de preços à vista de IBM.
  • Calcule o array Numpy option_values, iterando por uma enumeração de IBM_spot e usando a fórmula de precificação black_scholes().
  • Plote option_values para ver a relação entre as variações do preço à vista (em azul) e as variações no valor da opção (em vermelho).

Exercício interativo prático

Experimente este exercício completando este código de exemplo.

# Select the first 100 observations of IBM data
IBM_spot = IBM[:____]

# Initialize the European put option values array
option_values = np.zeros(IBM_spot.size)

# Iterate through IBM's spot price and compute the option values
for i,S in enumerate(____.values):
    option_values[i] = black_scholes(S = ____, X = 140, T = 0.5, r = 0.02, 
                        sigma = ____, option_type = "put")

# Display the option values array
option_axis.plot(____, color = "red", label = "Put Option")
option_axis.legend(loc = "upper left")
plt.show()
Editar e executar o código