2 votos

¿Por qué el valor intrínseco de mi opción de venta es mayor que el valor real de mi opción de venta en BSM? Código Python

He estado creando una clase para determinar valores de put/call basados en el modelo Black Scholes Merton y me he encontrado con un problema extraño. Por alguna razón mis valores de venta terminan siendo menores que el valor intrínseco de la opción, lo que simplemente no tiene sentido para mí. He revisado mi código, lo he reescrito y he intentado utilizar el código de otra persona para determinar el valor de una opción de venta utilizando BSM. ¿Hay algún error en mi código, o me falta alguna lógica en BSM?

Estoy usando la versión más actualizada de python, NumPy y scipy para esto.

from numpy import exp, log, sqrt
from scipy.stats import norm 

insumos básicos

K = 40
T = 0.5 # 1/2 year
r = 0.1
sigma = 0.2
o_t = 'p' # type of option
std_T = sqrt(T)
pv_factor = exp(-r * T)
start = 1
stop = 50

generación de datos de muestra

st = np.linspace(start, stop, stop - start).astype(int) # potential prices at maturity
intrinsic = np.maximum(K - st, 0)

d1 = (log(st / K) + (r + 0.5 * sigma ** 2) * 0.5) / (sigma * sqrt(T))
d2 = d1 - sigma * sqrt(T)
nd1 = norm.cdf(-d1, 0.0, 1.0)
nd2 = norm.cdf(-d2, 0.0, 1.0) 

puts = K * exp(-r * T) * nd2 - st * nd1

un simple trazado del valor intrínseco y extrínseco

plt.figure(figsize=(10, 6))
plt.plot(st, intrinsic, 'b-.', lw=2.5, label='intrinsic value')

valor interno de la parcela en la madurez

plt.plot(st, puts, 'r', lw=2.5, label='present value')

valor actual de la opción de trazado

plt.grid(True)
plt.legend(loc=0)
plt.xlabel('index level $S_0$')
plt.ylabel('present value $C(t=0)$')

5voto

Corey Goldberg Puntos 15625

La respuesta a su pregunta: Una opción de venta europea peut se cotizan por debajo del valor intrínseco en un entorno de tipos de interés elevados (como r=0,1) cuando el precio de las acciones es lo suficientemente bajo. Esto se debe al valor temporal del dinero. La opción de venta americana podría ejercerse inmediatamente, pero la europea no y hay que esperar pacientemente hasta el vencimiento para obtener el pago. Hasta entonces, el valor de mercado será aproximadamente $e^{-r T} (K-S)$ en lugar de $K-S$ donde $S \ll K$ .

Dos comentarios cosméticos sobre su código: (1) en d1 has puesto el vencimiento a 0,5, lo que evitaría problemas posteriores si utilizaras la variable T (2) te refieres a st como el precio al vencimiento, pero la fórmula de BS utiliza el precio actual de la acción que suele escribirse s0. No hay daño, pero confunde al lector.

0 votos

En esta figura se puede ver la relación entre el valor intrínseco (línea recta) y el valor de la opción de venta europea (curva). La curva está por debajo de la línea recta para los valores muy bajos de S encrypted-tbn0.gstatic.com/

0 votos

Gracias a los dos por la ayuda. Los dos habéis sido muy perspicaces y me habéis ahorrado tiempo y rascarme la cabeza.

Finanhelp.com

FinanHelp es una comunidad para personas con conocimientos de economía y finanzas, o quiere aprender. Puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X