2 votos

Black-Scholes para opciones binarias

Algo falla en este código python diseñado para aplicar Black Scholes al precio de una opción binaria (todo o nada, 0 o 100 de pago).

El resultado que obtengo es 0,4512780109614. Lo cual sé que está mal, ¿alguien puede indicarme el error en la fórmula?

S = 110 #current_price
K = 100 #ATM strike
v = 1.20 #annualized volatility
r = 0.00 #interest rate
T =  0.44 #days remaining (annualized)

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

d2 = (log(S/K) + (r - 0.5 * v**2) * T) / v*sqrt(T)
print exp(-r * T) * norm.cdf(d2)
> 0.451278010961

2voto

nullDev Puntos 1778

Le faltan los corchetes alrededor de v*sqrt(T) . Es decir, d2 debe ser

 d2 = (log(S/K) + (r - 0.5 * v**2) * T) / (v*sqrt(T))

Entonces debería obtener 0.390... que es la respuesta correcta.

1 votos

Muchas gracias Phil-ZXX. Me pregunto si puedes ayudarme a entender algo básico. En mi ejemplo anterior, el precio actual está por encima del precio de ejercicio. La volatilidad es extrema, pero sigo teniendo problemas para entender por qué el precio de la opción binaria (que estoy interpretando como la probabilidad de expirar en el dinero) estaría por debajo de 50 (50% de probabilidades). Suponiendo un paseo aleatorio desde el precio actual, ¿no es más probable que expire por encima del strike? Muchas gracias.

0 votos

@Snapula mejor haz una nueva pregunta para que otras personas tengan la oportunidad de responder también. No es lo ideal dejar todo en la sección de comentarios

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