La valoración de opciones y el activo subyacente
Las opciones son esencialmente apuestas sobre la evolución futura del precio del activo subyacente.
Por ejemplo, una opción de venta tiene valor cuando el precio al contado (de mercado) cae por debajo del precio de ejercicio de la opción. El titular de la opción puede ejercer la opción para vender el activo subyacente al precio de ejercicio \(X\), y recomprarlo al precio al contado \(S < X\), obteniendo un beneficio de \(X - S\).
En este ejercicio valorarás y visualizarás una opción de venta europea sobre la acción IBM
, aplicando de nuevo la fórmula de valoración de Black-Scholes, a medida que cambia el precio al contado \(S\).
El precio de ejercicio X
= 140, el plazo de vencimiento T
es medio año y el tipo de interés sin riesgo es el 2 %.
La volatilidad anualizada de IBM
está disponible como sigma
, y el eje de representación option_axis
está disponible para añadir tu representación.
Tienes el código fuente de la función black_scholes()
aquí.
Este ejercicio forma parte del curso
Gestión cuantitativa de riesgos en Python
Instrucciones de ejercicio
- Establece
IBM_spot
como las 100 primeras observaciones de los datos de la serie temporal de precios al contado deIBM
. - Calcula la matriz Numpy
option_values
, iterando a través de una enumeración deIBM_spot
y utilizando la fórmula de valoración deblack_scholes()
. - Representa
option_values
para ver la relación entre los cambios del precio al contado (en azul) y los cambios del valor de la opción (en rojo).
Ejercicio interactivo práctico
Pruebe este ejercicio completando este código de muestra.
# 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()