ComeçarComece gratuitamente

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

As opções são essencialmente apostas sobre a evolução futura do preço do ativo subjacente.

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

Neste exercício, você avaliará e visualizará uma opção de venda europeia sobre a ação IBM, aplicando novamente a fórmula de precificação Black-Scholes, à medida que o valor à vista \(S\) muda.

O strike X = 140, o tempo até o vencimento T é de 1/2 ano e a taxa de juros sem 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 riscos em Python

Ver Curso

Instruções de exercício

  • Defina IBM_spot como sendo as primeiras 100 observações dos dados da série de tempo de preço à vista IBM.
  • Calcule a matriz Numpy option_values, iterando por uma enumeração de IBM_spot e usando a fórmula de preço black_scholes().
  • No gráfico option_values, você verá a relação entre as alterações no preço à vista (em azul) e as alterações no valor da opção (em vermelho).

Exercício interativo prático

Experimente este exercício preenchendo 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 código