Está en la página 1de 10

Trabajo Práctico: Opciones Europeas y la Opción Lookback

Finanzas Cuantitativas
Juan Salvador Domandl
FaMAF
2021
juan.domandl@mi.unc.edu.ar

I. Análisis del modelo binomial para opciones europeas.


Usamos la discretización del modelo de Black-Scholes propuesta por Cox, Rubinstein y Ross, de ahora en
más CRR, que nos asegura que si tenemos los parámetros el modelo binomial, podemos adaptar los
parámetros del modelo binomial de manera tal que la prima de una opción en el modelo binomial según la
cantidad de pasos (Vn) converja a la de Black-Scholes (V Black−Scholes), i. e.,

lim Vn ≃ V Black−Scholes
n→∞
Esta adaptación CRR se puede leer en (Ross, 2011).
Computar analíticamente la prima de la opción Vn del modelo binomial tiene complejidad O(2n ), es
decir, es sumamente costoso a medida que n crece y no existe un método efectivo que tenga complejidad
polinomial. Una buena solución es usar simulaciones de Monte Carlo, tomamos una muestra aleatoria
m < 2n de payoffs V n(i) de la opción generados por el árbol binomial y tenemos que

m→∞ [ (1 + i ) n ∑ ]
m
1
Vn ≃ lim V n(i)
i=1
Esta solución si bien no es exacta, tiene complejidad O(m) . Para el desarrollo del trabajo
implementamos en python la discretización CRR y aproximamos la prima de la opción europea usando el
método de Monte Carlo.
Para el análisis de convergencia y de sensibilidad hemos usado siempre un valor inicial del
subyacente S0 = 1, esto es porque normalizamos la prima y el strike con S0.

I. a. Análisis de convergencia del modelo.


El análisis de convergencia de CRR a la prima de Black-Scholes puede realizarse de manera algebraica y
además se puede demostrar que Vn converge a V Black−Scholes a una tasa O(1/n) , pero esto está fuera del
alcance del trabajo. Más sobre esto en (Leisen and Reimer, 1996).
Usando 10 5 iteraciones en la simulación de Monte Carlo y fijando los parámetros de volatilidad
σ = 0.4, la madurez de la opción T = 0.25 , el strike K = 1.3 y la tasa de interés sin riesgo en r = 0.10 y
analizamos gráficamente la convergencia del modelo, comparando con el valor de la prima call europea de
Black Scholes obtenido de una calculadora web que resulta 0.012592. El resultado se puede ver en la figura
1.
Es claro que a medida que el número de pasos crece, Vn se va aproximando a la prima de Black-
Scholes.






figura 1

I. b. Sensibilidad de la prima respecto del valor del strike.

Usando 10 5 iteraciones en la simulación de Monte Carlo, el número de pasos n = 30 , fijando los parámetros
de volatilidad σ = 0.4 , la madurez de la opción T = 0.25 , la tasa de interés sin riesgo en r = 0.10 . y con
100 valores en orden ascendiente del strike K ∈ [0.5, 1.5] obtenemos los valores de la figura 2.
Manteniendo los demás parámetros constantes, podemos observar que la prima de una put (call)
crece (decrece) de manera monótona creciente (decreciente) frente a los aumentos del strike.

figura 2

También observamos en la figura 3 que la paridad put-call teórica de una opción europea, es decir,
c − p = S0 − K(1/(1 + i ))T se cumple (con un pequeño error, reducible si se aumenta el número de pasos y/
o simulaciones) si las comparamos con la paridad put-call empírica. Es decir la diferencia entre las primas
call y put generadas por el método.

figura 3

I. c. Sensibilidad de la prima respecto del valor de la volatilidad.

Usando 10 5 iteraciones en la simulación de Monte Carlo, el número de pasos n = 30 , fijando los parámetros
de madurez de la opción T = 0.25 , el strike K = 1.3 , la tasa de interés sin riesgo en r = 0.10 . y con 100
valores en orden ascendiente de la volatilidad σ ∈ [0.1, 1.0] obtenemos los valores de la figura 4.
Observamos que tanto la prima de la opción put como la de la call crecen a medida que el parámetro
de volatilidad del subyacente crece. Si el activo no tiene volatilidad no tendría mucho sentido realizar una
opción, por ej. sería muy raro realizar un contrato de opción sobre un plazo fijo.
La volatilidad se traduce en cuánto el precio del subyacente puede llegar a bajar o subir. Si el precio
del subyacente sube +σ entonces la prima de la call será mas cara y si el precio baja −σ entonces la prima de
la put se apreciará.



gura 4

II. d. Sensibilidad de la prima respecto del valor de la madurez.

Usando 10 5 iteraciones en la simulación de Monte Carlo, el número de pasos n = 30 , fijando los parámetros
de volatilidad σ = 0.4, la madurez de la opción, el strike K = 1.3, la tasa de interés sin riesgo en r = 0.10. y
con 100 valores en orden ascendiente de la volatilidad T ∈ [0.1, 1.0] obtenemos los valores de la figura 5.
Observamos que tanto la prima de la opción put como la de la call crecen a medida que el tiempo de
maduración es más grande. La razón de esto es que le da más tiempo al subyacente para bajar o subir de
precio, cuando sube el precio entonces la opción call es más valiosa y cuando baja entonces la put se aprecia.
Ahora bien, podemos observar que la prima put parece crecer más lento que la prima call o que
converge a algún valor. La explicación de esto es que un subyacente puede subir infinitamente su precio (i.e.,
la prima call puede subir infinitamente), pero no puede caer infinitamente (i.e., la prima put no puede subir
infinitamente): su límite es el precio mínimo, o sea, es 0$.

figura 5



fi

II. Valoración de Una Opción Lookback Call.

Para valorar una opción lookback flotante primero aplicamos el método de CRR para discretizar el modelo
de Black - Scholes. El método lookback hace depender el payoff de la opción de la trayectoria que toma el
activo, en nuestro caso el payoff es dado por,
V(T ) = S(T ) − min {St}
0≤t≤T
Existen 2n posibles trayectorias en el modelo binomial, por ende, el método que soluciona
analíticamente tiene complejidad O(2n ) . A continuación usaremos dos métodos menos costosos
computacionalmente para obtener una prima. Usando la adaptación de CRR para los parámetros σ = 0.4 ,
r = 0.10, T = 0.25 y S0 = 10.

II. a. Método de Monte Carlo.


Podemos estimar E [V(T )] a través del método de Monte Carlo.
Tenemos que n es el número de pasos del modelo binomial, generamos una cantidad m de
trayectorias del activo, usando los parámetros CRR especificados. Como cada una de las m trayectorias tiene
una lista de n valores del subyacente entonces computar el payoff requiere recorrer todos los valores de la
trayectoria y conseguir el mínimo.
La complejidad computacional de éste método por ende es O(m n), lo cual puede ser muy costoso si
el número de simulaciones m es muy grande.
Ahora bien ¿Cómo elegimos le número de simulaciones para que el ECM sea menor a una tolerancia
d? Vamos estimando la media muestral del payoff con Monte Carlo y también estimamos su varianza con
S 2(m) y hasta que S 2(m)/m < d.

figura 7

II. b. Método B.

II.b.a. Construcción del árbol y la lista de mínimos.


Primero notemos que la parametrización de CR R tenemos que u d = 1, entonces




figura 8 (Yidong Liu, 1996)

Es claro ver en la figura 6 que en general en el modelo binomial tendremos que en el k paso entonces habrá
k + 1 nodos en ese paso.
En la opción lookback, si Si, j es el precio del nodo en el paso i y altura j, entonces tenemos que para
construir el árbol el precio de Si+1, j+1 si j ∉ {0, i} entonces tiene como padres a Si, j y Si, j+1 . Si j = 0
entonces tiene como único padre a Si,0 y si j = i tiene como único padre a Si,i . Aprovechamos esto para ir
actualizando los precios solo en función de los padres del nodo. Al árbol lo representamos como una matriz
de nodos.
Como la suma de las longitudes las listas de mínimos en el paso k es 2k , para reducir costos
computaciones, usamos en cada nodo un contador de las ocurrencias de los mínimos.
El costo de computar la lista de mínimos de cada nodo es despreciable, porque solo nos fijamos en
los padres del nodo y si algún, Smin del padre(s) es menor que Si+1, j+1 , entonces lo agregamos al contador
mínimos del presente nodo. Si no, agregamos Si+1, j+1 al contador de mínimos. En la implementación
utilizamos la estructura collections.Counter de la librería estándar de Python. El método
implementado, para 4 pasos nos genera árbol de la figura 9.
Es fácil ver que el árbol tiene 1 + 2 + . . . + n + (n + 1) = (n + 1) * (n + 2)/2 nodos. Esto nos da la
complejidad de construir el árbol O(n 2 ).

figura 9 (precio arriba, contador mínimos abajo)

II.b.b. Computo de la prima una vez construído el árbol.


Una vez construído el árbol con la lista de mínimos en cada nodo, entonces calculamos la prima de la opción
usando solamente las hojas del árbol.
La manera en la que lo hacemos es la siguiente, tenemos que la prima V0 es,
V0 = (1 + i )−n [V(T )]

Como el modelo del árbol binomial tiene distribución binomial, podemos calcular la probabilidad de los
n + 1 Vk payoffs del paso n-ésimo de la siguiente manera,

( ∑ (k) )
n
n k n−k
V0 = (1 + i )−n p q Vk
k=0
Cada uno de los payoffs de la hoja k, Vk tiene el siguiente valor


Vk = pmin,k, j (S(T ) − Smin,k, j )
j
Supongamos Mk la lista de mínimos en la hoja k , tenemos que la probabilidad de que ocurra un mínimo en
la hoja k es
𝔼

r epet ici on es d e Smin,k, j en Mk


pmin,k, j =
l ongit u d d e Mk

Sea lk = l ongit u d d e Mk, entonces j ∈ {0,1,...,lk}. Reemplazando tenemos que,


l

( ∑ (k) ( ∑ min,k, j ))
n
−n n k n−k k
V0 = (1 + i ) p q p (S(T ) − Smin,k, j )
k=0 j=0
Es fácil ver que inclusive en el pero caso l = m a x{lk} se tiene que l < n , hay que tener en cuenta que
computar el número combinatorio cuesta más de n pasos, entonces, el costo computacional de calcular la
prima V0 es O(n 2l ).
En la implementación utilizamos exactamente esta fórmula para para computar la prima, usando la
información almacenada en las hojas del árbol.

II.c Comparación de las primas entre el método A y B y el tiempo de ejecución.


En la figura 10 podemos observar que la prima valorada por ambos métodos da un valor muy similar, pero
notemos que la estimada por el método de Monte Carlo tiene un ligero error respecto de la prima computada
por el método B que es exacto.

figura 10

Si bien ambos métodos generan una valoración similar, el método B. tiene la ventaja de ser mucho más
rápido. Según el razonamiento previo la complejidad del método de Monte Carlo es O(n m), con n el número
de pasos y m el número de simulaciones. Como queríamos un ECM < 0.001, según los resultados de nuestro
algoritmo es un múltiplo de 106 simulaciones. Es decir, m es muy grande.
En cambio, según nuestra inferencia sobre la complejidad del método B., ésta es o(n 2l ) con l la
máxima cantidad de mínimos distintos en las listas de mínimos. En teoría, para nuestro caso el método B,
debería ser mucho más rápido que el método A porque n ≤ 40 pero m ≥ 106.
La figura 11 afirma que el método de Monte Carlo es mucho más lento que el del árbol binomial. En
la figura 12 se observa mejor que el tiempo de ejecución del método B crece a medida que n aumenta.



figura 11

figura 12

Referencias.
• Applied Mathematical Finance, Ross y Reimer (1996).
• An Elementary Introduction to Mathematical Finance, Sheldon M. Ross (2011)
• Modelos Matemáticos en Finanzas Cuantitativas, Patricia Kisbye (2021).
• Modelos y Simulaciones, Patricia Kisbye (2021).
• Calculadora online de Black-Scholes: https://www.calkoo.com/en/black-scholes-option-pricing-model.
• Efficient Procedures for Valuing European and American Path-Dependent Options, J. Hull y A.White
(1993).
• The CRR Market Model, Marek Rutkowski (2016)
• Numerical Pricing for Path Dependent options, Yidong Liu, 1996

También podría gustarte