Dada una acción de precio price
y la volatilidad anual annual_volatility
y dada una opción con precio de ejercicio strike
y la expiración en calendar_days_remaining
días naturales, quiero saber la probabilidad de que venza in-the-money.
En otras palabras, necesito lo que usted ve como " probabilidad ITM " en TOS o InteractiveBrokers.
Hasta ahora no he encontrado ninguna respuesta para esto en Internet, aparte de este calculadora que afortunadamente funciona del lado del cliente, por lo que podemos ver realmente el código (los nombres de las variables son editados por mí para tratar de dar sentido a esto):
price = form.price.value;
strike = form.strike.value;
calendar_years_remaining = calendar_days_remaining/365;
annual_volatility = percent_annual_volatility/100;
vt = annual_volatility*Math.sqrt(calendar_years_remaining);
lnpq = Math.log(strike/price);
d1 = lnpq / vt;
y = Math.floor(1/(1+.2316419*Math.abs(d1))*100000)/100000;
z = Math.floor(.3989423*Math.exp(-((d1*d1)/2))*100000)/100000;
y5 = 1.330274*Math.pow(y,5);
y4 = 1.821256*Math.pow(y,4);
y3 = 1.781478*Math.pow(y,3);
y2 = .356538*Math.pow(y,2);
y1 = .3193815*y;
x = 1-z*(y5-y4+y3-y2+y1);
x = Math.floor(x*100000)/100000;
if (d1<0) {x=1-x};
pabove = Math.floor(x*1000)/10;
pbelow = Math.floor((1-x)*1000)/10;
Aquí tenemos, en pabove
la probabilidad de que venza por encima del precio de ejercicio (y lo contrario en pbelow
).
Mi pregunta es: ¿por qué hay números codificados ( 1.330274
, .3989423
etc.)? ¿Qué representan?
¿Cuál es la fórmula real para calcular la probabilidad ITM y tiene constantes codificadas como el script anterior?
1 votos
En el modelo Black-Scholes, la probabilidad de acabar in-the-money es N(d2) en el caso de una opción de compra europea. Aquí N es la FCD normal que hay que aproximar numéricamente. Las constantes que ves en el código aparecen en una de esas aproximaciones. También, por favor, busca un poco en esta página ya que tu pregunta sobre las probabilidades in-the-money ya ha sido planteada y respondida anteriormente.