12 votos

¿Cómo realizar simulaciones de Monte Carlo para comprobar la validez de Black Scholes para una opción específica?

En referencia al modelo original de Black Scholes, ¿qué enfoque es el mejor para probar el modelo de forma rigurosa? ¿Existe un enfoque estándar que pueda lograrlo en un tiempo razonable?

Detalles que requiero:

  • número de pruebas,

  • qué software utilizar, fórmulas, etc.

  • cualquier otra información que deba conocer

* Esto debería poder hacerse en un portátil con un procesador Core i5 con tarjeta gráfica.

5voto

Isaac Solomon Puntos 16554
  1. Recomiendo utilizar MATLAB / Excel para la simplicidad - depende de lo que usted ya sabe.
  2. Escriba la SDE para el movimiento browniano geométrico (para simular el precio de las acciones a lo largo del tiempo) en papel, como mencionó quant_dev.
    1. Discretizarlo utilizando, por ejemplo, la discretización de Euler (ver Wikipedia), codificar una simulación MC para simularlo durante el periodo de tiempo que quieras valorar tus opciones.
    2. No olvide utilizar la dinámica libre de riesgo en la SDE, de lo contrario no convergerá al precio BS.
  3. Codificar el $f(S_T)$ función de pago para su opción de pago.
  4. Calcule la ganancia esperada (media de las simulaciones) y descontada.

Con 10 000 simulaciones, o incluso 100 000, debería haber una convergencia decente de su simulación (error a $10^{-4}$ ) - su CPU debería manejar esto en unos pocos minutos como máximo.

3voto

Can Berk Güder Puntos 661

Escribe tu modelo como una EDE, simúlalo y compara el resultado con una solución analítica (si la tienes).

2voto

Mike Stone Puntos 21293

En cuanto al software, si quieres algo rápido y sucio, yo personalmente elegiría Matlab/R/python; sin embargo, si quieres algo más riguroso (por ejemplo, clases de pago, "mejores" SDEs), algo OO como C++ sería el camino a seguir.

Lo básico es bastante simple, aquí hay una muestra rápida de cómo debería ser:

double variance = vol*vol*expire; 
double rootVariance = sqrt(variance); 
double halfVar = -0.5*variance;

double SpotPlusOne = s*exp(r*expire+halfVar); 
double Spot; 
double runningSum=0;

for (unsigned long i=0; i < NumOfPaths; i++) 
{ 
double SN = SNByBoxMuller();
Spot = SpotPlusOne*exp(rootVariance*SN); 
double PayOff = Spot – strike;

PayOff = PayOff >0 ? PayOff : 0; 
runningSum += PayOff; 
}

double mean = runningSum / NumOfPaths; 
mean*=exp(-r*expire); 
return mean;

La función SNByBoxMuller() es simplemente la forma estándar de generar un número aleatorio a partir de una distribución normal estándar de Box Muller.

0voto

aceinthehole Puntos 1460

Creo que lo que realmente hay que hacer es probar los resultados de la solución analítica/simulada contra el precio histórico real Y futuro. Así que necesitas obtener datos históricos para la opción específica. Eso, para mí, es mucho más interesante ya que te dirá si Black-Scholes está funcionando frente a la realidad. Por supuesto, necesitarás un gran número de puntos de datos históricos para abordar esto.

0voto

Justin Standard Puntos 15312

Parece que todo el mundo aquí es MC, pero también se pueden utilizar métodos PDE.

De todas formas hay dos cosas que se suelen comprobar, el Precio y ... la Cobertura (o precio de réplica).

Veamos el primer caso:

  • Si tienes fórmulas de forma cerrada (como suele ser el caso en el escenario de la BS "fantas(ma)tic-wishfull thinking"), entonces eso es todo lo que necesitas. Si no es así, entonces no te sientes cómodo con tus matemáticas (o tu modelo, pero este es otro tema).

  • Si no tienes una solución analítica a mano, entonces normalmente el MC entra de forma natural (como todo el mundo sugiere aquí), pero también podrías usar métodos PDE (después de todo, fueron los métodos originales para la derivación de los precios de las opciones BS Call/Put). Y tienes un montón de libros y buenos artículos que te dirán cómo proceder en ambos casos (especialmente en la configuración de BS). Una comprobación fácil que recomiendo, es comparar las "fórmulas de forma cerrada" frente a "MC (y/o PDE)" en los casos de vainilla. Además, esos métodos proporcionan una buena introducción a los precios de réplica que podría estar dispuesto a comprobar en el segundo caso.

Tenga en cuenta que al utilizar métodos de diferencias finitas (o elementos) para la EDP se obtiene un error y que al utilizar el esquema de discretización para la EDS se obtiene al final una "variable aleatoria" para su P&L. Ahí es realmente una cuestión de gusto en mi opinión ambos métodos tienen pros y contras.

Para el segundo caso, que llamé precio de replicación, entonces se suele proporcionar de una manera (al menos en principio) straigthforward de los métodos que utilizó para la discretización PDE y / o SDE.

Siempre con respecto a los precios de réplica, el artículo muy reciente de Wilmott y Ahmad " ¿Qué almuerzo gratis quiere hoy, señor? Cobertura delta, arbitraje de volatilidad y carteras óptimas " es realmente esclarecedor en muchos aspectos y se mantiene en el marco de la BS en el que quieres estar creo que deberías leerlo.

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