Skip to content

Uses two different methods to calculate a callback option's expected value

Notifications You must be signed in to change notification settings

alki22/Lookback-option-value

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Modelos Matemáticos en Finanzas Cuantitativas - Trabajo práctico 1

Introducción


El trabajo consiste en obtener el valor de una opción call de tipo Lookback dados los valores para los parámetros S0, u, d, tasa de interés y cantidad de periódos a través de dos metodos:

  • Montecarlo
  • Árbol binomial

Además se comparará la eficiencia de ambos según distintos criterios.

Métodos utilizados


Método de Montecarlo

Consiste en generar trayectorias aleatorias para aproximar la prima de la opción en base a S0. Esto mediante variables aleatorias binomiales, que en caso de ser 1 hacen que el precio suba y 0 que baje, para luego aproximar la esperanza del valor del subyacente en base a los valores obtenidos y calcular la prima de la opción en t=0, dada por 1/(1+i)^n * E(Vt). Se modificó además el algoritmo para calcular la media y varianza recursivamente, deteniéndose éste cuando el error de las simulaciones sea menor a 0.001

Método de árbol binomial

Para este método se diseñó una estructura para implementar al árbol binomial y a sus nodos. Consiste en crear un árbol de n niveles, con n nodos por nivel, esto da un total de n(n+1)/2 nodos. Luego llenaremos los valores para cada nodo en cada nivel con el valor del subyacente correspondiente. Luego recorreremos con BFS el arbol, llenando para cada nodo una lista con los valores mínimos del subyacente y su probabilidad de ocurrir obtenidos de sus padres en el árbol. Finalmente obtenemos la esperanza para el valor de Vt y obtenemos V0 aplicando la misma fórmula que en el método de Montecarlo.

Complejidad Algorítmica


Método de Montecarlo

Para este método la complejidad estará dada por los siguientes procedimientos:

  • Realizar m simulaciones
  • En cada simulación computar una trayectoria del precio de la acción en n períodos. En cada período sólo se genera una variable aleatoria binomial para decidir el camino y se almacena el valor mínimo del subyacente en la trayectoria, estas tareas son 0(1)

Lo cual nos da una complejidad de m*n

Método de árbol binomial

Complejidad dada por:

  • Crear y llenar un árbol con n(n+1)/2 ≈ nodos
  • Recorrer trayectorias de longitud igual a la cantidad de períodos = n
  • Realizar comparaciones para los mínimos, con complejidad O(1)

Por lo que, despreciando las constantes inferiores, nos queda una complejidad de

Ejecución


Ejemplo

Para comparar el funcionamiento de ambos métodos, realizaremos una prueba para n=30 períodos con los parámetros S0 = 1, u = 1.1, d = 0.9, tasa de interés efectiva = 0.025 . Y para el primer método buscaremos un margen de error menor a 0.001, dado que en este método no obtenemos un valor exacto, sino que lo aproximamos. Tendremos en cuenta el resultado obtenido en cada caso, el tiempo de ejecución usando el comando time de Linux .

Resultados

Método Resultado Tiempo de ejecución N° de simulaciones
Montecarlo 0.5917354729923145 14.025s 1185723
Árbol binomial 0.5848972562822754 0.273s X

Conclusión


Dados los resultados obtenidos, podemos concluir que:

  • El primer método es conveniente en cuanto a facilidad de programación. Sin embargo, cuando se busca obtener resultados con un margen de error muy pequeño, se requiere un número muy elevado de simulaciones. En este ejemplo, para obtener un margen de error menor a 0.001 debieron realizarse 1285723 simulaciones, tardando así aproximadamente 52 veces lo que tarda el método del árbol binomial para obtener un valor aproximado. Sin embargo, considerando el tiempo que se tardó en implementar ambos métodos, si el margen de error utilizado se ajusta bien a nuestro problema, el primer método es más conveniente.
  • El segundo método, si bien requirió mucho más tiempo en cuanto a implementación de las estructuras y sus algoritmos, prueba ser mucho más eficiente y escalable en una cantidad más elevada de períodos, con un tiempo de ejecución mucho menor. Obteniendo además el valor exacto, por lo que se debe optar por este método si es un problema crítico que requiere de alta precisión.

About

Uses two different methods to calculate a callback option's expected value

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages