Diferenciación algorítmica para el cálculo de sensibilidades de...

138

Transcript of Diferenciación algorítmica para el cálculo de sensibilidades de...

Máster en Matemática Industrial

Curso 2018/2019

Trabajo de Fin de Máster

Diferenciación algorítmica para elcálculo de sensibilidades de productosderivados nancieros mediante métodos

Monte Carlo

Alumno:

José Ramón Picos Varela

Directores:

José Antonio García Rodríguez (Universidade da Coruña)

Manuel Menéndez Sánchez (Banco Santander)

Jose Pedro Rivera Galicia (Banco Santander)

Ignacio Luján Fernández (Banco Santander)

Septiembre de 2019

`Vivir satisfecho de uno mismo ha de ser muy aburrido,por eso no hay mejor cosa que meterse en aventuras'

Juan BenetIngeniero de Caminos, Canales y Puertos y literato

Exención de responsabilidad: Las opiniones expresadas en el presente Trabajo de Finde Máster son las del autor del mismo. Por lo tanto, no reejan ni representan necesaria-mente las opiniones ni la política ocial de Banco Santander, S.A.

José Ramón Picos Varela

Madrid, Septiembre de 2019

i

ii

Agradecimientos

Puesto que es de bien nacidos ser agradecidos, sirvan estas humildes líneas para mos-trar mi reconocimiento a todas las personas que, de algún modo u otro, han contribuidoal desarrollo del presente trabajo.

A los directores del presente Trabajo de Fin de Máster: José Antonio, Manolo, Josey especialmente a Nacho; el compañero de trabajo que todo el mundo querría tener.Muchísimas gracias por la conanza depositada en mí, por vuestro constante apoyo,por vuestras enseñanzas y lecciones magistrales y por vuestra profesionalidad ydedicación para lograr que este trabajo llegue a buen puerto.

A mis compañeros de trabajo en el departamento de Validación Interna de BancoSantander. Muchísimas gracias por el interés mostrado, por las siempre acertadasopiniones y sugerencias y por vuestra ayuda desinteresada cuando más lo necesitaba.

Y por supuesto a las personas más importantes: a mi familia y a mis amigos y amigas.Muchísimas gracias por todo lo que habéis hecho, hacéis por mí cada día y por loque presumo seguiréis haciendo durante mucho tiempo. Espero poder devolveros enun futuro una pequeña parte de todo lo que me habéis dado. Soy lo que soy y hellegado hasta aquí gracias a vosotros y vosotras.

iii

iv

Resumen

Una de las tareas principales de los analistas cuantitativos (quants) es valorar losdistintos productos nancieros derivados de las carteras de las entidades nancieras. Sinembargo, la mayor parte del tiempo de computación no se emplea en calcular el preciode dichos productos, sino que se gasta en obtener unas magnitudes muy importantesllamadas griegos o sensibilidades. Estas magnitudes se obtienen calculando la derivadadel precio de los productos con respecto a los distintos factores de riesgo de mercado.

El creciente nivel de sosticación de los instrumentos derivados y de los mercados -nancieros ha reducido los modelos con fórmulas analíticas de forma cerrada a un pequeñoporcentaje del inventario general de modelos de instituciones nancieras. Consecuente-mente, la mayor parte de los motores de jación de precios se basan en métodos MonteCarlo, para los cuales los tiempos de computación de las griegas empleando métodostradicionales son muy altos. Estos métodos están basados principalmente en el métodode diferencias nitas, ampliamente utilizado en los equipos cuantitativos de las empresasnancieras de todo el mundo debido principalmente a su sencillez y a su facilidad de im-plementación. Sin embargo, el coste computacional de calcular el precio y las derivadasasociados se multiplica aproximadamente por el número de derivadas más uno, con res-pecto al coste computacional de calcular el precio únicamente, algo que para productoscon varios subyacentes puede ser una limitación importante. Además, los esquemas de di-ferencias nitas llevan asociado un error de truncamiento y exigen de antemano establecerun valor de bump, una decisión que puede ser trascendental en el cálculo de griegas.

La diferenciación algorítmica es un conjunto de técnicas para evaluar numéricamentela derivada de una función especicada mediante un programa de ordenador. Esta técni-ca tiene en cuenta que, cada software, ejecuta una secuencia de operaciones aritméticaselementales (suma, resta, multiplicación, división, etc.) y funciones elementales (exp, log,sin, cos, etc.). Al aplicar la regla de la cadena repetidamente a estas operaciones, las deri-vadas de cualquier orden se pueden calcular con precisión de máquina y no exigen denirun valor de bump. Además, empleando el método backward y diferenciación automática,se puede reducir el coste computacional de calcular el precio y las derivadas a menos decuatro veces el coste computacional de calcular el precio únicamente.

Para analizar la idoneidad del empleo de las técnicas de diferenciación algorítmicapara el cálculo de griegas, se han seguido diferentes caminos para nalmente diseñar unalibrería de valoración de productos derivados nancieros y calcular así estas sensibilidadesempleando la herramienta Autograd.

v

En lineas generales, el presente Trabajo de Fin de Máster titulado `Diferenciaciónalgorítmica para el cálculo de sensibilidades de productos derivados nancieros mediantemétodos Monte Carlo', intenta sentar las bases para la aplicación de las técnicas de dife-renciación algorítmica en las librerías del departamento de Validación Interna de BancoSantander. De este modo se evitaría el uso de las técnicas clásicas empleadas tradicio-nalmente en la industria bancaria basadas en el método de diferencias nitas las cualesllevan asociado un error de truncamiento, pueden aumentar considerablemente el tiem-po de computación y exigen de antemano establecer un valor de bump que puede sertrascendental.

José Ramón Picos Varela

Madrid, Septiembre de 2019

vi

Resumo

Unha das tarefas principais dos analistas cuantitativos (quants) é valorar os distintosprodutos nanceiros derivados das carteiras das entidades nanceiras. Non obstante, amaior parte do tempo de computación non se emprega en calcular o prezo destes produtos,senón que se gasta en obter cantidades moi importantes chamadas gregas ou sensibilidades.Estas cantidades obtéñense calculando a derivada do prezo dos produtos con respecto aosdiferentes factores de risco do mercado.

O aumento do nivel de sosticación dos instrumentos derivados e mercados nancei-ros reduciu os modelos con fórmulas analíticas pechadas a unha pequena porcentaxe doinventario xeral de modelos de institucións nanceiras. Por conseguinte, a maioría dosmotores de prezos baséanse en métodos Monte Carlo, para os cales os tempos de cálculodas gregas mediante métodos tradicionais son moi altos. Estes métodos baséanse prin-cipalmente no método de diferenzas nitas, moi empregado en equipos cuantitativos deempresas nanceiras de todo o mundo debido principalmente á súa sinxeleza e facilidadede aplicación. Non obstante, o custo computacional de calcular o prezo e as derivadas aso-ciadas multiplícase aproximadamente polo número de derivadas máis un, con respecto aocusto computacional de calcular o prezo únicamente, algo que para produtos con variossubxacentes pode ser unha limitación importante. Ademais, os esquemas de diferenzasnitas levan asociado un erro de truncamento e requiren de antemán establecer un valorde bump, unha decisión que pode ser transcendental no cálculo das gregas.

A diferenciación algorítmica é un conxunto de técnicas para avaliar numericamente aderivada dunha función especicada mediante un programa de ordenador. Esta técnicaten en conta que cada software executa unha secuencia de operacións aritméticas ele-mentais (suma, resta, multiplicación, división, etc.) e funcións elementais (exp, log, sin,cos, etc.). Ao aplicar repetidamente a regra de cadea a estas operacións, as derivadas decalquera orde pódense calcular con precisión de máquina e non precisan denir un valorde bump. Ademais, empregando o método backward e diferenciación automática, o custocomputacional do cálculo do prezo e as derivadas pode reducirse a menos de catro veceso custo computacional de calcular o prezo unicamente.

Para analizar a idoneidade do uso de técnicas de diferenciación algorítmica para ocálculo de gregas, seguíronse diferentes camiños para nalmente deseñar unha libraría devaloración de produtos derivados nanceiros e calcular así estas sensibilidades usando aferramenta Autograd.

vii

En liñas xerais, o presente Traballo de Fin de Mestrado titulado `Diferenciación al-gorítmica para o cálculo de sensibilidades de productos derivados nanceiros mediantemétodos Monte Carlo', trata de sentar as bases para a aplicación das técnicas de di-ferenciación algorítmica nas librarías do departamento de Validación Interna de BancoSantander. Deste modo evitaríase o uso das técnicas clásicas tradicionalmente emprega-das na industria bancaria baseadas no método de diferenzas nitas as cales levan asociadoun erro de truncamento, poden aumentar considerablemente o tempo de computación erequiren de antemán establecer un valor de bump o cal pode ser transcendental.

José Ramón Picos Varela

Madrid, Setembro de 2019

viii

Abstract

One of the main task for a quantitative analyst or quant is to price the dierent nan-cial products in the portfolios of nancial institutions. However most of the computingtime is not used to calculate the product prices, but to obtain very signicant quantitiescalled greeks or sensitivities. These quantities are obtained by calculating the derivativeof the product prices with respect to dierent market risk factors.

Models with closed analytic formulas have been reduced to a small percentage of themodel inventories across nancial institutions due to the rising level of sophisticationof derivative instruments and nancial markets. Consequently, most pricing engines arebased on Monte Carlo methods, for which the computing time of the greeks using tra-ditional methods is very high. These methods are mainly based on the nite dierencesmethod, widely used by quantitative teams of nancial rms around the world because ofits simplicity and its ease of implementation. However, the computational cost of compu-ting prices and its associated sensitivities is approximately multiplied by the number ofderivatives plus one with respect to the computational cost of calculating the price alone.This fact can be an important limitation for derivatives with several underlyings. Besides,nite dierence schemes incorporate truncation error and require to dene a bump valuein advance, a decision that can be momentous in greeks computing.

Algorithmic Dierentiation is a set of techniques dedicated to the computation of thederivatives of a specied function implemented in a computer program. These techniquestake into account that each software executes a sequence of elementary arithmetic opera-tions (addition, subtraction, multiplication, division, etc.) and elementary functions (exp,log, sin, cos, etc.). By repeatedly applying the chain rule to this operations, the derivativeof any order can be computed with epsilon-machine without the requirement of choosing abump value. In addition, by applying the backward method and automatic dierentiationtechniques, the computational cost of computing prices and its derivatives can be reducedto less than four times the computational cost of calculating only the price.

In order to analyze the suitability of using Algorithmic Dierentiation techniques forthe computation of the greeks, several paths have been followed to nally design a nancialderivatives pricing engine used to calculate these sensitivities using Autograd.

ix

Overall, this MSc Thesis entitled `Algorithmic Dierentiation for the calculation ofsensitivities of nancial derivative products using Monte Carlo methods', tries to lay thegroundwork for the future application of Algorithmic Dierentiation techniques in thepricing libraries of the Internal Validation Department of Banco Santander. This way,the use of more classic techniques traditionally used in the nancial industry would beavoided. These conventional techniques, based mostly on the nite dierences method,incorporates truncation error, can signicantly increase computing time and require todene a momentous bump value in advance.

José Ramón Picos Varela

Madrid, September 2019

x

Índice general

Resumen v

Resumo vii

Abstract ix

Índice de guras xiii

Índice de tablas xv

Motivación xvii

1. Banco Santander 1

2. Conceptos previos 52.1. Riesgo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52.2. Derivados nancieros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

2.2.1. Denición y tipología . . . . . . . . . . . . . . . . . . . . . . . . . . 82.2.2. Breve historia de los mercados nancieros . . . . . . . . . . . . . . 112.2.3. Utilidad de los productos derivados nancieros . . . . . . . . . . . . 13

2.3. Nociones de matemáticas . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142.3.1. Análisis matemático . . . . . . . . . . . . . . . . . . . . . . . . . . 142.3.2. Cálculo numérico . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172.3.3. Teoría de probabilidades . . . . . . . . . . . . . . . . . . . . . . . . 212.3.4. Cálculo estocástico . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

3. Valoración de opciones nancieras 313.1. Inputs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313.2. Modelo de Black-Scholes . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

3.2.1. Ecuación de Black-Scholes . . . . . . . . . . . . . . . . . . . . . . . 333.2.2. Ecuación de Black-Scholes para varios subyacentes . . . . . . . . . . 35

3.3. Modelos de volatilidad local . . . . . . . . . . . . . . . . . . . . . . . . . . 363.4. Modelos de volatilidad estocástica . . . . . . . . . . . . . . . . . . . . . . . 373.5. Las griegas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

xi

4. Métodos Monte Carlo 434.1. ¾Qué son los métodos Monte Carlo? . . . . . . . . . . . . . . . . . . . . . . 434.2. Generación de números aleatorios . . . . . . . . . . . . . . . . . . . . . . . 46

5. Diferenciación algorítmica 495.1. Cálculo de las griegas de un producto derivado nanciero . . . . . . . . . . 505.2. Diferenciación algorítmica y diferenciación automática . . . . . . . . . . . . 505.3. Método forward . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 515.4. Método backward . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 545.5. Diferencias entre el método forward y el método backward . . . . . . . . . 57

6. Implementación numérica 616.1. Primeros pasos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61

6.1.1. Diferenciación algorítmica a mano . . . . . . . . . . . . . . . . . . . 626.1.2. Una implementación del modo automático en MATLAB . . . . . . 636.1.3. Lecciones aprendidas . . . . . . . . . . . . . . . . . . . . . . . . . . 63

6.2. Autograd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 666.2.1. ¾Qué es Autograd? . . . . . . . . . . . . . . . . . . . . . . . . . . . 666.2.2. Ventajas y limitaciones de Autograd . . . . . . . . . . . . . . . . . 69

6.3. Descripción de la librería desarrollada . . . . . . . . . . . . . . . . . . . . . 706.3.1. Motor de Monte Carlo . . . . . . . . . . . . . . . . . . . . . . . . . 71

7. Resultados 817.1. Consideraciones previas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 817.2. Pruebas de rendimiento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85

7.2.1. Opción call europea con varios subyacentes con el modelo de Black-Scholes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85

7.2.2. Opción call europea con varios subyacentes con un modelo CEV . . 887.2.3. Precio y griegas de una opción call asiática con varios subyacentes . 89

7.3. Pruebas de inputs con restricciones . . . . . . . . . . . . . . . . . . . . . . 917.4. Estabilidad y precisión . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97

7.4.1. Delta de una opción call digital cash-or-nothing europea . . . . . . 987.4.2. Gamma de una opción call europea . . . . . . . . . . . . . . . . . . 1027.4.3. Precio y griegas de un autocall y de un dispersion trade . . . . . . . 107

8. Conclusiones y futuras líneas de trabajo 113

Bibliografía 115

xii

Índice de guras

1.1. Principales datos de Banco Santander a diciembre de 2018. . . . . . . . . . 21.2. Balance de Banco Santander a diciembre de 2018. . . . . . . . . . . . . . . 21.3. Crecimiento de Banco Santander durante el último ejercicio. . . . . . . . . 31.4. Rentabilidad de Banco Santander durante el último ejercicio. . . . . . . . . 31.5. Diversicación geográca de Banco Santander a diciembre de 2017. . . . . 4

2.1. El mercado de derivados nancieros. Fuente: `Bank for International Settle-ments'. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

5.1. Ejemplo de grafo para calcular el valor de una función y sus derivadasempleando el método forward. . . . . . . . . . . . . . . . . . . . . . . . . . 52

5.2. Ejemplo de grafo para calcular el valor de una función y sus derivadasempleando el método backward. . . . . . . . . . . . . . . . . . . . . . . . . 55

5.3. Diferencias de cálculo entre el método forward y el método backward. . . . 585.4. Cálculo de las derivadas nodo a nodo con el método backward. . . . . . . . 58

6.1. Proling en MATLAB de una ejecución del método Monte Carlo por dife-renciación algorítmica automática. . . . . . . . . . . . . . . . . . . . . . . . 65

6.2. Ejemplo de grafo para calcular el valor de una función y su gradiente em-pleando el método backward con Autograd. . . . . . . . . . . . . . . . . . . 67

6.3. Ejemplo de aplicación de una función envuelta en Autograd. . . . . . . . . 686.4. Representación de la vinculación de los nodos para generar un grafo de

cálculo con la dependencia entre padres. . . . . . . . . . . . . . . . . . . . 696.5. Estructura de la librería desarrollada. . . . . . . . . . . . . . . . . . . . . . 79

7.1. Valores obtenidos en el cálculo de la vega de una opción call europea conun esquema de diferencias nitas variando el valor del bump. . . . . . . . . 84

7.2. Comparativa entre el número de activos subyacentes y el ratio de cálculocon el modelo de Black-Scholes. . . . . . . . . . . . . . . . . . . . . . . . . 87

7.3. Comparativa entre el número de activos subyacentes y el tiempo de cálculototal con el modelo de Black-Scholes. . . . . . . . . . . . . . . . . . . . . . 88

7.4. Aplicación del algoritmo nearest correlation tras el bumpeo de una matrizque se sale fuera del espacio de las matrices semidenidas positivas. . . . . 93

7.5. Sensibilidad a la correlación de un par de activos al aproximarse la matrizde correlación de los activos subyacentes a la frontera del espacio denidopor el conjunto de matrices semidenidas positivas W . . . . . . . . . . . . 96

xiii

7.6. Valor de una opción basket al aproximarse la matriz de correlación de losactivos subyacentes a la frontera del espacio denido por el conjunto dematrices semidenidas positivasW . . . . . . . . . . . . . . . . . . . . . . . 97

7.7. Función de payo de una opción call digital cash-or-nothing europea. . . . 997.8. Función de payo suavizada de una opción call digital cash-or-nothing

europea. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1007.9. Función de payo de una opción call europea. . . . . . . . . . . . . . . . . 1027.10. Sesgo de la gamma. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1047.11. Desviación típica de la gamma. . . . . . . . . . . . . . . . . . . . . . . . . 1057.12. Sesgo de la delta. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1057.13. Desviación típica de la delta. . . . . . . . . . . . . . . . . . . . . . . . . . . 1067.14. Función de payo suavizada de una opción call europea. . . . . . . . . . . 107

xiv

Índice de tablas

6.1. Ratio de tiempos de cálculo en MATLAB para una opción call europea conel modelo de Black-Scholes mediante el método Monte Carlo. . . . . . . . . 64

7.1. Inputs para el cálculo de una opción call europea. . . . . . . . . . . . . . . 827.2. Resultados para el cálculo de una opción call europea empleando la fórmula

analítica. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 837.3. Resultados para el cálculo de una opción call europea empleando el método

Monte Carlo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 837.4. Errores obtenidos en el cálculo del precio y las griegas de una opción call

europea al emplear el método Monte Carlo. . . . . . . . . . . . . . . . . . . 847.5. Inputs para el cálculo de una opción basket best-of call europea. . . . . . . 867.6. Ratios de cálculo al variar el número de subyacentes para una opción basket

best-of call europea con un modelo de Black-Scholes. . . . . . . . . . . . . 877.7. Parámetros para el cálculo de una opción basket best-of call europea. . . . 897.8. Ratios de cálculo para una opción basket best-of call europea con un modelo

CEV. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 897.9. Inputs para el cálculo de una opción basket call worst-of asiática con el

modelo CEV. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 907.10. Parámetro del modelo CEV para la valoración de una basket call worst-of

asiática. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 907.11. Ratios de cálculo para una opción basket call worst-of asiática con un

modelo CEV. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 917.12. Inputs para el cálculo de una opción basket best-of call europea. . . . . . . 947.13. Resultados para el cálculo de una opción basket best-of call europea em-

pleando Autograd y esquemas de diferencias nitas centradas con bump =10e-02. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94

7.14. Resultados para el cálculo de una opción basket best-of call europea em-pleando Autograd y esquemas de diferencias nitas centradas con bump =10e-04. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95

7.15. Inputs para el cálculo de una opción call digital cash-or-nothing europeacon el payo suavizado. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101

7.16. Resultados para el cálculo de una opción call digital cash-or-nothing euro-pea con el payo suavizado con el modelo de Black-Scholes. . . . . . . . . 101

7.17. Inputs para el cálculo de la gamma de una opción call europea con elmodelo de Black-Scholes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103

xv

7.18. Resultados obtenidos para el cálculo de la gamma de una opción call eu-ropea con un esquema de diferencias nitas centradas de segundo orden. . 103

7.19. Resultados obtenidos para el cálculo de la gamma de una opción call euro-pea con Autograd y un esquema de diferencias nitas centradas de primerorden. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104

7.20. Resultados para el cálculo de la gamma de una opción call europea con elpayo suavizado empleando Autograd. . . . . . . . . . . . . . . . . . . . . 106

7.21. Inputs para el cálculo de un autocall. . . . . . . . . . . . . . . . . . . . . . 1087.22. Parámetros del modelo de mixtura de lognormales para valorar un autocall. 1087.23. Resultados obtenidos para el cálculo de la delta y de la gamma de un

autocall con esquemas de diferencias nitas centradas. . . . . . . . . . . . . 1087.24. Resultados obtenidos para el cálculo de la delta y de la gamma de un

autocall con Autograd. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1097.25. Inputs para el cálculo de un dispersion trade. . . . . . . . . . . . . . . . . . 1097.26. Parámetros del modelo de mixtura de lognormales para valorar un disper-

sion trade. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1107.27. Resultados obtenidos para el cálculo de la delta y de la gamma de un

dispersion trade con esquemas de diferencias nitas centradas. . . . . . . . 1107.28. Resultados obtenidos para el cálculo de la delta y de la gamma de un

dispersion trade con Autograd. . . . . . . . . . . . . . . . . . . . . . . . . 110

xvi

Motivación

Tal y como establece la Normativa del Trabajo de Fin de Máster (TFM) del Máster enMatemática Industrial (M2i) por la Universidade da Coruña (UDC), la Universidade deSantiago de Compostela (USC), la Universidade de Vigo (UVigo), la Universidad CarlosIII de Madrid (UC3M) y la Universidad Politécnica de Madrid (UPM); es condiciónnecesaria para la obtención del título de Máster en Matemática Industrial la elaboracióny la posterior defensa ante un tribunal de un Trabajo de Fin de Máster por parte de losalumnos.

Además, en el Artículo 3 de dicha Normativa se establece lo siguiente:

`El objetivo del proyecto desarrollado por el estudiante en el TFM será laresolución de un problema que debe de ser presentado [...] por personal de lasempresas colaboradoras.'

Por lo tanto, el presente Trabajo de Fin de Máster titulado `Diferenciación algorítmi-ca para el cálculo de sensibilidades de productos derivados nancieros mediante métodosMonte Carlo' y propuesto por el departamento de Validación Interna, un equipo de San-tander Analytics, que a su vez es un área de la División de Riesgos de Banco Santander(una empresa que se describirá someramente en el Capítulo 1), tiene como propósitosuperar los créditos correspondientes y obtener así el título de Máster en MatemáticaIndustrial.

José Ramón Picos Varela

Madrid, Septiembre de 2019

xvii

xviii

Capítulo 1

Banco Santander

Nota importante: Las Figuras de este capítulo han sido tomadas del informe anualde Banco Santander, S.A. a través de la página web corporativa a fecha de redacción delpresente Trabajo de Fin de Máster.

Banco Santander, S.A. (en adelante Banco Santander o simplemente Santander) esun banco español. Es una de las mayores entidades nancieras del mundo y está presenteprincipalmente en Europa y América.

El banco fue fundado el 15 de mayo de 1857, en la ciudad de Santander (Cantabria,España), donde tiene su sede social desde entonces. Su sede operativa se concentra en susocinas centrales de la `Ciudad Grupo Santander' de Boadilla del Monte (Comunidad deMadrid, España).

A 31 de diciembre de 2018, los activos del Santander eran de 1,459,271 millones de eu-ros, siendo la primera entidad nanciera española. La banca minorista es su principal áreade negocio, aportando, a fecha de redacción del presente documento, aproximadamenteel 70% del benecio para la entidad. Cuenta con un total de 13,217 ocinas, 202,713empleados, 144 millones de clientes y 4.1 millones de accionistas.

Cotiza en la Bolsa de Madrid (SAN) y forma parte del IBEX 35 así como del DowJones EURO STOXX 50. Cerró 2018 con una capitalización bursátil de 64,508 millones deeuros, situándose como el mayor banco de la eurozona y decimocuarto del mundo por capi-talización. A cierre de ese mismo año, era la segunda empresa española por capitalizacióny la sexagésimo novena del mundo.

Banco Santander cuenta con una diversicación geográca equilibrada entre sus diezmercados principales, en los que alcanza cuotas de mercado elevadas: España, Alema-nia, Polonia, Portugal, Reino Unido, Brasil, México, Chile, Argentina y Estados Unidos.Además, tiene una cuota de mercado signicativa en Uruguay y Puerto Rico, negocios denanciación al consumo en otros países europeos y presencia en China a través del negociode banca mayorista y de nanciación al consumo.

Santander tiene también áreas de negocio globales que desarrollan productos que sedistribuyen en las redes comerciales del grupo y que atienden a clientes de ámbito global.

1

2 Capítulo 1. Banco Santander

Figura 1.1: Principales datos de Banco Santander a diciembre de 2018.

Figura 1.2: Balance de Banco Santander a diciembre de 2018.

3

Figura 1.3: Crecimiento de Banco Santander durante el último ejercicio.

Figura 1.4: Rentabilidad de Banco Santander durante el último ejercicio.

4 Capítulo 1. Banco Santander

Figura 1.5: Diversicación geográca de Banco Santander a diciembre de 2017.

Capítulo 2

Conceptos previos

En este segundo capítulo, antes de describir en profundidad en qué consistirá el pro-blema a analizar y tratar de resolver, se explicarán someramente conceptos básicos deeconomía, nanzas y matemáticas para entender mejor los capítulos posteriores.

En primer lugar se responderá brevemente a la cuestión de qué es el riesgo, cómose mide y cómo se clasica y por qué es importante gestionarlo adecuadamente en unaentidad nanciera.

A continuación se explicará qué son los productos derivados nancieros, la tipologíamás habitual de los mismos, su origen y evolución, dónde se negocian y su utilidad.

Por último se repasarán brevemente las matemáticas fundamentales que dan soportea las teorías de valoración de productos nancieros derivados y que sirven para entendermejor ciertos conceptos que se abordarán al resolver el problema en cuestión objeto deeste Trabajo de Fin de Máster.

2.1. Riesgo

La Real Academia Española (RAE), en la 23a edición de su Diccionario de la lenguaespañola (DLE), dene el riesgo como la contingencia o proximidad de un daño.

Esta denición está incompleta para explicar alguno de los conceptos que se mencio-narán en capítulos posteriores ya que riesgo y probabilidad están íntimamente ligados.Por lo tanto, de una manera más detallada, se puede denir el riesgo como la probabilidadde que surja un evento adverso que acarree consigo ciertas consecuencias desfavorables.

En la industria, y en particular en la industria bancaria que es la que atañe a esteTrabajo de Fin de Máster, el riesgo se dene como la probabilidad de que los resultadosnancieros sean mayores (pérdidas) o menores (ganancias) de los esperados.

La existencia del riesgo está motivada por la incertidumbre en los mercados nancieros.Y en general, el riesgo, que no está necesariamente relacionado con el tamaño de la pérdidapotencial, no se puede evaluar de forma completa ya que es imposible de medir de formacontrolada y precisa, aunque existen técnicas y herramientas para gestionarlo ecazmente.

La gestión de riesgos incluye la secuencia de actividades destinadas a reducir o eliminarel potencial para incurrir en pérdidas esperadas y gestionar la variabilidad inesperada delos costes. Esta gestión de riesgos implica una compensación entre riesgo y rendimiento.

5

6 Capítulo 2. Conceptos previos

Es decir, es importante conocer cuánto riesgo adicional estará dispuesto a asumir unaentidad para generar ganancias adicionales.

Existe toda una teoría sobre como las instituciones nancieras gestionan ecazmenteel riesgo, la cual está perfectamente explicada en muchos textos, como por ejemplo [32].

El proceso de gestión de riesgos involucra los siguientes pasos:

1. Identicar los riesgos.

2. Cuanticar y estimar la exposición al riesgo o determinar métodos apropiados paratransferir estos riesgos.

3. Evaluar los efectos de la exposición al riesgo o evaluar los costes y benecios de losmétodos de transferencia.

4. Desarrollar una estrategia de mitigación del riesgo.

5. Evaluar la ecacia de la estrategia y redenirla si fuera necesario.

Aunque el riesgo no se pueda medir de forma controlada y precisa, existen una seriede herramientas para medirlo y gestionar ecazmente en la medida de lo posible. Son lassiguientes:

Medidas cuantitativas:

• Valor en riesgo (Value at Risk o VaR): mide el monto de una pérdida y suprobabilidad de ocurrencia. Técnicamente es la máxima perdida probable enun intervalo de tiempo determinado y para un nivel de conanza dado.

Es una medida útil para posiciones líquidas operando en condiciones de merca-do normales dentro de un periodo corto de tiempo. Es menos útil y potencial-mente peligroso cuando se intenta medir el riesgo en condiciones no normales,posiciones ilíquidas o en largos periodos de tiempo.

• Capital económico: se reere a mantener sucientes reservas líquidas para cu-brir una potencial pérdida.

Evaluación cualitativa:

• Análisis de escenarios: tiene en cuenta factores de riesgo potenciales con incer-tidumbre que no suelen ser cuanticables.

• Stress testing : es una forma particular de análisis de escenarios que exami-na el resultado nanciero basado en un stress dado en la entidad. Examinasituaciones de crisis.

Gestión de riesgos empresariales (Enterprise Risk Management o ERM): adoptaun enfoque integrado de gestión de riesgos dentro de una empresa haciendo uso demedidas como capital económico y stress testing. Dentro del marco ERM, la entidady sus directores están de acuerdo en los límites de exposición al riesgo.

Las perdidas asociadas al riesgo pueden ser:

2.1. Riesgo 7

Esperadas: relacionadas con cuánto espera perder una entidad en el curso normalde los negocios habituales.

Inesperadas: relacionadas con cuánto podría perder una entidad fuera del cursonormal de los negocios habituales.

El riesgo, que siempre está presente ya que es inherente a la empresa y a su actividady se trata de minimizar día a día en cualquier organización, se puede clasicar en:

Riesgo nanciero, el cual se divide en:

• Riesgo de crédito: derivado del incumplimiento de las obligaciones acordadasen una transacción.

• Riesgo de mercado: derivado de la posibilidad de cambios en variables de mer-cado tales como precios de acciones e índices, inación, tipo de interés, tipo decambio, etc.

• Riesgo de liquidez: asociado al incumplimiento con las obligaciones de pago atiempo o de hacerlo con un coste excesivo.

• Riesgo estructural: ocasionado por la gestión de las diferentes partidas delbalance (activos y pasivos).

Riesgo no nanciero, muy tenido en cuenta a partir de la crisis económica de 20081,se puede clasicar en:

• Riesgo operacional: asociado a la no adecuación o al fallo de los procesos, laspersonas y los sistemas internos o acontecimientos externos.

• Riesgo de cumplimiento y legal: debido al incumplimiento del marco legal, lasnormas internas o los requerimientos de reguladores y supervisores.

• Riesgo de modelo: relacionado con errores por decisiones fundadas principal-mente en los resultados de modelos matemáticos, debido a errores en su con-cepción, aplicación o utilización.

• Riesgo reputacional: asociado a la percepción de una empresa por parte de laopinión pública, sus clientes, inversores o cualquier otra parte interesada.

• Riesgo estratégico: asociado a que el modelo de negocio de una empresa se veaafectado.

La metodología que se desarrolla en el presente Trabajo de Fin de Máster trata demitigar el riesgo de modelo en la medida de lo posible; ya que como se verá en sucesivoscapítulos, se explorará una nueva metodología para calcular una magnitudes importantes

1Crisis económica de 2008: también conocida como Gran Recesión, fue originada en los Estados Unidosy tuvo alcance mundial. Entre los principales factores que se atribuyen como causas de la crisis se encuen-tran los fallos en la regulación económica, la sobrevalorización de productos, la crisis alimentaria mundialy energética, y la amenaza de una recesión en todo el mundo, así como una crisis crediticia-hipotecaria yde conanza en los mercados. Una de las consecuencias fue la crisis nanciera de 2008.

8 Capítulo 2. Conceptos previos

asociadas a un tipo de productos que se negocian en las entidades bancarias de todo elmundo.

Se puede encontrar más información sobre qué es el riesgo de modelo y sobre cómo segestiona en, por ejemplo, [28].

2.2. Derivados nancieros

2.2.1. Denición y tipología

Un producto derivado nanciero, instrumento derivado o simplemente derivado sepuede denir como un producto nanciero cuyo valor se basa en el precio de otro activo(asset). Una denición más completa y todo lo que se expondrá a continuación, se puedecompletar con, por ejemplo, [24].

El activo del que depende este producto derivado nanciero toma el nombre de activosubyacente. Los subyacentes utilizados pueden ser muy diferentes y se clasican en:

Acciones (stocks): activos nancieros que representan una fracción del capital deuna sociedad, convirtiendo a su tenedor en socio de la misma y otorgándole unaserie de derechos económicos y políticos, tales como el derecho a participar en losbenecios de la sociedad mediante el cobro de un dividendo, el derecho de suscripciónpreferente de nuevas acciones o el derecho a voto en las Juntas Generales. Lasacciones pueden negociarse en mercados regulados o bolsas de valores.

Índices bursátiles (indices): registros estadísticos compuestos usualmente de un nú-mero, que trata de reejar las variaciones de valor o rentabilidades promedio delas acciones que lo componen. Generalmente, las acciones que componen el índicetienen características comunes tales como: pertenecer a una misma bolsa de valores,tener una capitalización bursátil similar o pertenecer a una misma industria. Losmás importantes son: Dow Jones Industrial Average, S&P 500, Nasdaq 100 (NuevaYork, Estados Unidos), EURO STOXX 50 (Europa) FTSE 100 (Londres, Gran Bre-taña), DAX 30 (Frankfurt, Alemania), CAC 40 (París, Francia), Nikkei 225 (Tokyo,Japón), Hang Seng (Hong Kong) e Ibex 35 (Madrid, España).

Valores de renta ja (xed income): instrumentos de deuda emitidos por empresasprivadas o instituciones públicas. Se caracterizan por ofrecer una remuneración jaal inversor, que se determina en el momento de la emisión. Los productos típicosde renta ja son los bonos soberanos (renta ja pública) y los bonos corporativos(renta ja privada).

Tipo de interés (interest rates): precio del dinero. Se puede denir como la sumaque se paga por obtener en préstamo una cantidad de dinero (o que se recibe porprestarlo), expresada como porcentaje de esa cantidad. Generalmente se expresacomo un porcentaje anual.

Divisa (foreing exchange o forex ): unidad de cambio que facilita la transferencia debienes y servicios.

2.2. Derivados nancieros 9

Materias primas (commodities): bienes que tienen un cierto valor o utilidad y unmuy bajo nivel de diferenciación o especialización. Se clasican en:

• Granos: soja, trigo, maíz, avena, cebada, etc.

• Softs : algodón, café, azúcar, cacao, etc.

• Carnes: ganado bovino, ganado porcino, etc.

• Energía: petróleo crudo, gasolina, gas natural, etanol, etc.

• Metales: oro, plata, cobre, aluminio, etc.

Los productos derivados nancieros se pueden diseñar a la carta. Ejemplos de estosproductos son:

Derivados de inación (ination): empleados para transferir el riesgo de inación2

de una contraparte a otra.

Derivados de clima (weather): usados para reducir el riesgo asociado con condicionesclimáticas adversas o inesperadas.

Los derivados nancieros pueden combinarse con otros productos en una sola estruc-tura dando lugar a lo que se conoce como productos estructurados. Lo productos estruc-turados más comunes suele estar formados por un producto de renta ja y uno o másderivados.

Las principales características de los productos derivados nancieros son las siguientes:

Su valor cambia en respuesta a los cambios de precio del activo subyacente.

Se liquidarán en una o múltiples fechas futuras.

Pueden cotizarse en mercados organizados u `OTC' (extrabursátiles u Over TheCounter). Esta información se ampliará en la Sección 2.2.2).

Los productos derivados nancieros más comunes son:

Swaps : contratos para intercambiar efectivo (ujos) en o antes de una fecha futuraespecíca basada en el valor subyacente de los tipos de cambio de divisas, bonos/ti-pos de interés, intercambio de productos, acciones u otros activos. Los más comunesson:

• De tipo de interés o IRS (Interest Rate Swaps).

• De divisa o CS (Currency Swaps).

• De riesgo de crédito o CDS(Credit Default Swaps).

2Inación: aumento generalizado y sostenido del nivel de precios existentes en el mercado durante unperíodo de tiempo.

10 Capítulo 2. Conceptos previos

Futuros: contratos o acuerdos que obligan a las partes contratantes a comprar ovender un número determinado de bienes o valores (activo subyacente) en una fechafutura y determinada, y con un precio establecido de antemano. Además, los futurosse `marginan'; es decir, hay que poner cada día dinero por valor de la diferencia devaloración del futuro con respecto del día anterior.

Forwards : contratos a largo plazo entre dos partes para comprar (posición larga) ovender (posición corta) un activo a precio jado y en una fecha determinada. Ladiferencia con los contratos de futuros es que los forwards se contratan en operacio-nes fuera de mercados organizados (en operaciones `OTC'). En contraposición estánlos contratos al contado (spot), en el que la transacción tiene lugar en el instanteactual.

Opciones: instrumentos nancieros que se establecen en un contrato el cual da a sucomprador el derecho, pero no la obligación, a comprar o vender bienes o valores (elactivo subyacente o underlying, que pueden ser acciones, bonos, índices bursátiles,etc.) a un precio predeterminado (strike o precio de ejercicio), antes de o en unafecha concreta (fecha de vencimiento o maturity).

Según los derechos que otorga la opción, éstas se clasican en:

• Opciones de compra (call options): le da al poseedor de las mismas el derecho,pero no la obligación, de comprar algo a un precio determinado en un períodode tiempo especíco.

• Opciones de venta (put options): le da al poseedor de las mismas el derecho,pero no la obligación, de vender algo a un precio determinado en un períodode tiempo especíco.

Según el tipo, pueden ser:

• Europeas: sólo pueden ser ejercidas en la fecha de vencimiento. Antes de esafecha, pueden comprarse o venderse si existe un mercado donde se negocien.

• Americanas: pueden ser ejercidas en cualquier momento entre el día de la com-pra y el día de vencimiento, ambos inclusive, y al margen del mercado en elque se negocien.

• Exóticas: opciones más complejas que las anteriores, entre las que destacan:

Bermudas: opciones que se pueden ejercer solo en fechas especicadas.

Asiáticas: opciones cuyo pago está determinado por el precio subyacentepromedio durante un período de tiempo predeterminado.

Barreras: opciones que se activan o desactivan si el valor del subyacentealcanza un cierto nivel.

Binarias o digitales: opciones que proporcionan al propietario un perl deganancias de todo o nada.

Según el número de subyacentes, se clasican en:

2.2. Derivados nancieros 11

• Opciones simples: tienen un único subyacente.

• Cestas (baskets): tienen varios subyacentes.

Warrants: título corporativo muy parecido a una opción de compra. Ofrece al consu-midor el derecho, pero no la obligación, de comprar acciones comunes directamentede una compañía a un precio jo por un periodo determinado.

Swaptions : son opciones sobre swaps. Es decir, los swaptions otorgan al tenedor elderecho, pero no la obligación, de entrar en un swap en una fecha futura.

Los derivados de renta variable (equity) son una clase de derivados cuyo valor se deriva,al menos en parte, de uno o más valores de equity subyacentes (acciones y/o índices). Losmás populares son las opciones y son éstos los productos que se emplearán principalmenteen sucesivos capítulos para analizar la bondad de la metodología desarrollada en el pre-sente documento para calcular sensibilidades con técnicas de diferenciación algorítmica.

Figura 2.1: El mercado de derivados nancieros. Fuente: `Bank for International Settle-ments'.

2.2.2. Breve historia de los mercados nancieros

Los derivados nancieros se han vuelto muy populares desde los años 70 del siglopasado aunque su origen es muy anterior.

Estos productos han existido siempre y han evolucionado a la par que evolucionaba elcomercio. Así, existen evidencias de la existencia de este tipo de productos en la antigua

12 Capítulo 2. Conceptos previos

Grecia y en la Europa Medieval y Moderna. Pero los antecedentes de los actuales mercadosorganizados de productos nancieros derivados hay que ir a buscarlos a Chicago. Allísurgió en 1848 el `Chicago Board Of Trade' (CBOT), un mercado dónde se negociabanprincipalmente productos agrícolas como trigo, maíz o soja. En 1898 el mismo CBOT creauna lial para la negociación de productos agrícolas elaborados llamado `Chicago Butterand Egg Board', que luego en 1919 pasó a denominarse `Chicago Mercantile Exchange'(CME). A partir de 1961, el CBOT empezó a ofrecer también contratos ganaderos.

Hasta los años 60 del Siglo XX, el CME era mucho menos importante que el CBOTpero a partir de ese momento, el primero ganó popularidad al ofrecer nuevos productosmás sosticados y atractivos. Esto hizo que el segundo reaccionase aumentando tambiénla complejidad de los productos que ofertaba.

Debido a la popularidad y al aumento de operaciones, el CBOT creó una lial en 1976que empezó a negociar opciones sobre acciones, el `Chicago Board Options Exchange'(CBOE). Esto fue motivado a que en 1973, Robert Merton hubiera publicado un artículoen el que recogía los avances hechos por Fischer Black y Myron Scholes para determinarla famosa ecuación con la que poder valorar este tipo de productos3. Esta ecuación y elmodelo asociado se describirán en la Sección 3.2.

En Europa los mercados de derivados no llegan hasta 1978, año en que la Bolsa deÁmsterdam constituye `European Options Exchange'. El resto de mercados de derivadoseuropeos comenzaron a crearse durante estos años 80. Así en 1982 se crea el `London Inter-national Financial Futures Exchange' (LIFFE) y en 1986 el `Marché à Terme Internationalde France' (MATIF) impulsado por el Tesoro francés.

En España la reforma de los mercados de valores de 1988 permitió la creación de losmercados de derivados, en 1988 `OM Ibérica' en Madrid y en 1989 `MEFF' en Barcelona,que posteriormente se unirían en el `Mercado ocial de futuros y opciones nancieros enEspaña' (Holding MEFF), un mercado organizado regulado, controlado y supervisado porla Comisión Nacional del Mercado de Valores y el Ministerio de Economía de España enel que se negocian distintos derivados nancieros.

Los mercados de derivados asiáticos iniciaron su actividad en las Bolsas que ya estabandesarrolladas, como por ejemplo en las bolsas de Osaka (1878) y Tokio (1878) las cualesse fusionaron en 2013 dando lugar al `Japan Exchanges Group' y donde se empezaron anegociar futuros nancieros en 1988. En 1976 se creó la `Hong Kong Futures Exchange'(al principio denominado `Hong Kong Commodity Exchange') que comenzó a negociarfuturos nancieros en 1986. El resto de los mercados asiáticos, nacen fundamentalmentedurante los años 90 del siglo pasado y la primera década del presente siglo.

Según The Economist, a partir de junio de 2011 el mercado `OTC' de derivados as-cendió a aproximadamente 700 billones de dólares americanos4 y el tamaño del mercadonegociado en las bolsas alcanzó un total de 83 trillones de dólares americanos5. Sin em-bargo, estos son valores `nocionales' y algunos economistas argumentan que este valorexagera en gran medida el valor de mercado y el verdadero riesgo crediticio al que se

3En 1997, Robert Merton y Myron Scholes fueron galardonados con el Premio en Ciencias Económicas

en memoria de Alfred Nobel por su nuevo método para determinar el valor de las instrumentos derivados.(Fischer Black no obtuvo el galardón puesto que había fallecido en 1995 y dicho galardón no se entregaa título póstumo).

4Un billón de dólares americanos son 1,000,000,000 dólares.5Un billón de dólares americanos son 1,000,000,000,000 dólares.

2.2. Derivados nancieros 13

enfrentan las partes involucradas. De todos modos, incluso estas cifras reducidas repre-sentan enormes cantidades de dinero. Para tener un orden de magnitud del volumen dedinero que mueven estos mercados, el presupuesto para el gasto total del gobierno de losEstados Unidos durante 2012 fue de 3.5 billones de dólares americanos y el valor actualtotal del mercado de valores de los Estados Unidos es de aproximadamente 23 billones dedólares americanos. Para tener un orden de magnitud, el Producto Interno Bruto anualmundial es aproximadamente igual a 65 billones de dólares americanos.

2.2.3. Utilidad de los productos derivados nancieros

Los productos nancieros derivados se utilizan principalmente para lo siguiente:

Cubrir o mitigar el riesgo en el subyacente, mediante la contratación de un contratoderivado cuyo valor se mueve en la dirección opuesta a su posición subyacente ycancela una parte o la totalidad. Por ejemplo, si queremos eliminar el riesgo sobreun paquete de acciones que poseemos de una cierta compañía, una buena estrategiaes comprar opciones de venta sobre las mismas.

Crear capacidad de opción cuando el valor del derivado está vinculado a una condi-ción o evento especíco. Por ejemplo, el subyacente que alcanza un nivel de precioespecíco.

Obtener exposición al subyacente cuando no es posible comerciar con el subyacenteen cuestión. Por ejemplo, en productos derivados sobre el clima.

Proporcionar apalancamiento6, de modo que un pequeño movimiento en el valorsubyacente puede causar una gran diferencia en el valor del derivado.

Especular y obtener ganancias si el valor del activo subyacente se mueve de lamanera que se espera. Por ejemplo, si el activo subyacente se mueve en una direccióndeterminada o alcanza un cierto nivel.

Obtener benecios scales. Por ejemplo, un swap de equity le permite al poseedordel mismo recibir pagos constantes evitando pagar impuestos sobre las ganancias decapital y manteniendo las acciones.

Para nes de arbitraje7, permitiendo un benecio sin riesgo al operar simultánea-mente en dos o más mercados.

Es por ello que se identican tres tipos principales de participantes o traders en losmercados nancieros:

6Apalancamiento: en nanzas se reere a utilizar mayor capital en una inversión respecto al saldo conel que cuenta para invertir un determinado agente económico.

7Arbitraje: en nanzas, es la práctica de aprovechar ineciencias en uno o más mercados. El ejemplomás típico de un arbitraje es el de tomar ventaja de una diferencia de precio entre dos o más mercadosrealizando una combinación de transacciones complementarias que capitalizan el desequilibrio de preciosy obteniendo así un benecio sin riesgo.

14 Capítulo 2. Conceptos previos

Coberturistas (hedgers): están en una posición en la que se enfrentan al riesgo re-lacionado con el precio de un activo. Utilizan los contratos de futuros, a plazo o deopciones para reducir o eliminar este riesgo.

Especuladores (speculators): apuestan sobre los cambios futuros en el precio deun activo. Los contratos de futuros, a plazo y de opciones les proporcionan apa-lancamiento adicional; es decir, estos contratos aumentan la posibilidad tanto deganancias como de pérdidas en una inversión especulativa.

Arbitrajistas (arbitrageurs): están en el negocio para aprovechar la discrepancia deprecios en dos mercados diferentes. Por ejemplo, si ven que el precio de futuros de unactivo diere del precio al contado (spot price), toman posiciones de compensaciónen ambos mercados para asegurar un benecio sin riesgo.

2.3. Nociones de matemáticas

En esta sección se repasan conceptos de distintas ramas de las matemáticas (análisisreal, cálculo numérico, teoría de probabilidades y cálculo estocástico) que se emplearánen capítulos posteriores para entender ciertos conceptos, tener una visión más amplia ypoder abordar con mayor seguridad el problema en cuestión objeto de este Trabajo deFin de Máster.

2.3.1. Análisis matemático

En esta sección se detallan algunas deniciones básicas y algunos teoremas básicosde análisis real, tanto en una como en varias variables, que se emplearán en capítulosposteriores. La explicación pormenorizada y la demostración rigurosa de los mismos puedeencontrarse, por ejemplo, en [7], [8].

Denición 2.1. Dada una función real de variable real f :

f : D ⊂ R → Rx → f(x)

diremos que es derivable en un punto x0 ∈ D, si existe el límite siguiente, que denotaremosf ′(x0):

f ′(x0) = lımx→x0

f(x)− f(x0)

x− x0

El límite f ′(x0) se denomina derivada, respecto de x, de la función f en el punto x0.Si este límite existe cuando x → x−

0 o x → x+0 , se les llama derivada por la izquierda

o por la derecha de f en x0 o derivadas laterales de f en x0 y se representan por f ′(x−0 )

o f ′(x+0 ) respectivamente. Se verica que f es derivable en x0 si y solo si existen f ′(x−

0 ) yf ′(x+

0 ) y éstas son iguales.Si la función f : D ⊂ R → R es derivable en todos los puntos del conjunto D, se

denomina función derivada de f a la aplicación:

2.3. Nociones de matemáticas 15

f ′ : D ⊂ R → Rx → f ′(x)

Denición 2.2. Dadas las funciones reales de variable real f : A ⊂ R → R, derivableen x ∈ A, con f(A) ⊆ B, g : B ⊂ R → R, derivable en y = f(x) ⊆ B; la derivada de lafunción compuesta g(f(x)) = (g f)(x), también llamada regla de la cadena, es:

dg(f(x))

dx= (g f)′(x) = g′(f(x))f ′(x) =

dg

df

df

dx

Denición 2.3. Dada una función real de variable vectorial f :

f : D ⊂ Rn → Rx → f(x)

siendo D un conjunto abierto, se llama derivada de f en un punto x0 ∈ D y respecto deun vector no nulo u ∈ Rn al siguiente límite, si existe y es nito:

∂f(x0)

∂u= lım

λ→0

f(x0 + λu)− f(x0)

λ

Si ∥u∥ = 1, se dice que f ′u(x0) es la derivada direccional de f en x0, respecto de la

recta que pasa por x0 y está orientada por u.

Si ei es la base canónica de Rn, a la derivada∂f(x0)

∂ei(para i = 1, 2, . . . , n) se la llama

derivada parcial de f en x0 y se la representa como:

∂f(x0)

∂xi

siendo xi la coordenada i-ésima de la variable genérica x ∈ D.Si la función f : D ⊂ Rn → R es derivable respecto de un vector u = 0 en todos los

puntos del conjunto abierto D, entonces se llama función derivada (parcial) de f respectoa u a la aplicación:

∂f

∂u: C ⊂ Rn → R

x → ∂f(x)

∂u

Denición 2.4. Sean la función vectorial de variable vectorial f y la función real devariable vectorial g:

f : C ⊂ Rn → Rm

x → f(x)

16 Capítulo 2. Conceptos previos

g : D ⊂ Rm → Rx → g(x)

denidas en sendos conjuntos abiertos C ∈ Rn y D ∈ Rm, siendo f(C) ⊆ D (por lo queexiste g f). Entonces, si f es diferenciable en un punto dado x respecto de xi y si g esdiferenciable en el punto y = f(x), entonces g f es derivable en x respecto de xi y suderivada vale (regla de la cadena):

∂(g f)(x)∂xi

=m∑j=1

∂g

∂fj

∂fj∂xi

Denición 2.5. Dada una función vectorial de variable vectorial F tal que:

F : D ⊂ Rn → Rm

x → F (x)

siendo D un conjunto abierto, se llama matriz jacobiana J , a la matriz formada por lasderivadas parciales de la función. Es decir

J =

∂F1

∂x1

· · · ∂F1

∂xn...

. . ....

∂Fm

∂x1

· · · ∂Fm

∂xn

Denición 2.6. Dada una matriz jacobiana J , se dene el determinante jacobiano ojacobiano como el determinante de la matriz jacobiana. Es decir:

det(J) =

∣∣∣∣∣∣∣∣∣∣

∂F1

∂x1

· · · ∂F1

∂xn...

. . ....

∂Fm

∂x1

· · · ∂Fm

∂xn

∣∣∣∣∣∣∣∣∣∣Teorema 2.1. [Teorema de Taylor para una función real de variable real]. Sea una funciónf tal que:

f : [a, b] ⊂ R → Rx → f(x)

Si f es una función de clase Cn (es decir, tal que f, f ′, . . . , fn son continuas) en el intervalocerrado [a, b] y si admite derivada (n + 1)-ésima en el intervalo abierto (a, b), entoncesexiste algún punto λ ∈ (a, b) tal que:

f(b) =n∑

i=0

f (i)(a)

i!(b− a)i +

f (n+1)(λ)

(n+ 1)!(b− a)n+1

2.3. Nociones de matemáticas 17

Teorema 2.2. [Teorema de Taylor para una función real de variable vectorial]. Sea unafunción f tal que:

f : C ⊂ Rn → Rx → f(x)

siendo C un conjunto abierto y sean a y b dos puntos de C tales que el segmento [a, b]está totalmente incluido en C. Si f es de clase Cn en todos los puntos de [a, b], entoncesexiste un punto λ ∈ (a, b) tal que:

f(b) =n−1∑i=0

1

i!dif(a)(b− a) +

1

n!dnf(λ)(b− a)

Denición 2.7. La función de Heaviside H es una función real de variable real tal que:

H(x) =

0 x < 01 x ≥ 0

Denición 2.8. La delta de Dirac δ es una distribución denida como:∫ ∞

−∞δ(x− a)f(x)dx = f(a)

A veces, informalmente, se expresa la delta de Dirac como el límite de una sucesión defunciones que tiende a cero en todo punto del espacio excepto en un punto para el cualdivergiría hacia innito. Es decir:

δ(x) =

∞ x = 00 x = 0

Se cumple que la derivada de la función de Heaviside está denida en el sentido de lasdistribuciones es la delta de Dirac, de modo que:

d(H(x− a))

dx= δ(x− a)

Denición 2.9. Una función real de variable real f(x) es un spline de clase Cj en elintervalo [a, b] si existe una partición P = a = x0 < x1 . . . < xn = b de dicho intervalotal que f(x) es un polinomio derivable hasta orden j en [xi, xi+1] con i = 0, 1, . . . , n− 1.Los puntos xi se llaman nodos del spline.

2.3.2. Cálculo numérico

El cálculo numérico es la rama de las matemáticas encargada de diseñar algoritmospara simular aproximaciones de la solución a problemas del análisis matemático.

Se distingue del cálculo simbólico en que no manipula expresiones algebraicas, sinonúmeros. Ha cobrado especial importancia con la llegada de los ordenadores ya que éstos

18 Capítulo 2. Conceptos previos

son herramientas muy útiles para realizar cálculos matemáticos extremadamente comple-jos, pero que en última instancia operan con números binarios y operaciones matemáticassimples.

Para ampliar la información que aquí se expone, se pueden consultar por ejemplo [10],[14], [16].

Denición 2.10. Una diferencia nita es una expresión matemática de la forma f(x+ b) f(x + a). Si una diferencia nita se divide por b a se obtiene una expresión simi-lar al cociente diferencial, que diere en que se emplean cantidades nitas en lugar deinnitesimales.

Las diferencias nitas se pueden relacionar con el concepto de derivada denido an-teriormente. Para una función real de variable real, desarrollando la misma mediante elTeorema de Taylor (y suponiendo que se cumplen las hipótesis del mismo):

f(x+ h) = f(x) + f ′(x)h+O[h2]

Siendo O[h2] el resto de Lagrange de orden 2. Manipulando adecuadamente esta ex-presión se obtiene lo siguiente:

f ′(x) =f(x+ h)− f(x)

h+O[h]

Por lo tanto, para un valor del paso8 h pequeño, el valor de la derivada de una funciónen un punto se puede aproximar mediante la expresión anterior. Esta expresión se cono-ce comúnmente como aproximación de la derivada por diferencias nitas hacia delante(forward dierences).

Análogamente, la derivada de una función real de variable real también se puedeaproximar como:

f ′(x) =f(x)− f(x− h)

h+O[h]

f ′(x) =f(x+ h)− f(x− h)

2h+O[h2]

Estas expresiones son conocidas como aproximación de la derivada por diferenciasnitas hacia atrás (backward dierences) y por diferencias nitas centradas (centereddierences), respectivamente.

Por lo tanto, truncando las expresiones anteriores, se puede aproximar el valor de laderivada de una función real de variable real en un punto como:

f ′(x) ≈ f(x+ h)− f(x)

h

f ′(x) ≈ f(x)− f(x− h)

h

8A este paso también se le llama bump.

2.3. Nociones de matemáticas 19

f ′(x) ≈ f(x+ h)− f(x− h)

2h

Como se puede apreciar, de los tres métodos expuestos el que incurre en un menorerror de truncamiento para aproximar la derivada de una función en un punto es el métodode diferencias nitas centradas, puesto que tiene un resto de Lagrange de orden superioral de los otros dos (diferencias hacia delante y diferencias hacia atrás).

También existen diferencias nitas para aproximar derivadas de orden superior. Porejemplo, para aproximar derivadas de segundo orden, se pueden obtener también esquemasde diferencias nitas hacia delante, hacia atrás y centradas de modo que:

f ′′(x) =f(x+ 2h)− 2f(x+ h) + f(x)

h2+O[h]

f ′′(x) =−f(x− 2h) + 2f(x− h)− f(x)

h2+O[h]

f ′′(x) =f(x+ h)− 2f(x) + f(x− h)

h2+O[h2]

Despreciando el error de truncamiento:

f ′′(x) ≈ f(x+ 2h)− 2f(x+ h) + f(x)

h2

f ′′(x) ≈ −f(x− 2h) + 2f(x− h)− f(x)

h2

f ′′(x) ≈ f(x+ h)− 2f(x) + f(x− h)

h2

Como para el caso de derivadas de primer orden, de los tres métodos expuestos el queincurre en un menor error de truncamiento para aproximar la segunda derivada de unafunción en un punto vuelve a ser el método de diferencias nitas centradas, ya que tieneun resto de Lagrange de orden superior al de los otros dos esquemas.

En el caso de querer obtener diferencias nitas de funciones reales de variable vectorialel procedimiento es análogo.

Las expresiones para esquemas de diferencias nitas hacia delante, hacia atrás y cen-tradas, tanto para derivadas de primer orden como para derivadas de segundo orden, sonlas siguientes:

∂f

∂xi

≈ f(x1, . . . , xi + h, . . . , xn)− f(x1, . . . , xi, . . . , xn)

h

∂f

∂xi

≈ f(x1, . . . , xi, . . . , xn)− f(x1, . . . , xi − h, . . . , xn)

h

∂f

∂xi

≈ f(x1, . . . , xi + h, . . . , xn)− f(x1, . . . , xi − h, . . . , xn)

2h

20 Capítulo 2. Conceptos previos

∂2f

∂x2i

≈ f(x1, . . . , xi + 2h, . . . , xn)− 2f(x1, . . . , xi + h, . . . , xn) + f(x1, . . . , xi, . . . , xn)

h2

∂2f

∂x2i

≈ −f(x1, . . . , xi − 2h, . . . , xn) + 2f(x1, . . . , xi − h, . . . , xn)− f(x1, . . . , xi, . . . , xn)

h2

∂2f

∂x2i

≈ f(x1, . . . , xi + h, . . . , xn)− 2f(x1, . . . , xi, . . . , xn) + f(x1, . . . , xi − h, . . . , xn)

h2

Denición 2.11. Se dice que una matriz cuadrada de elementos complejos es una matrizhermítica si tiene la característica de ser igual a su propia traspuesta conjugada. Es decir,dada una matriz cuadrada A se cumple que:

ai,j = aj,i

para todos los índices i y j.

Denición 2.12. Se dice que una matriz hermítica es una matriz denida positiva sitodos sus autovalores λi cumplen lo siguiente:

λi > 0

Denición 2.13. Se dice que una matriz hermítica es una matriz semidenida positivasi todos sus autovalores λi cumplen lo siguiente:

λi ≥ 0

Denición 2.14. [Factorización de Cholesky para matrices denidas positivas]. Si A esuna matriz hermítica y denida positiva, entonces A puede ser descompuesta como:

A = LLT

donde L es una matriz triangular inferior con entradas diagonales estrictamente positivasy LT representa la conjugada traspuesta de L. Esta factorización es única.

Denición 2.15. [Factorización de Cholesky para matrices semidenidas positivas]. SiA es una matriz hermítica y semidenida positiva, entonces A puede ser descompuestacomo:

A = LLT

donde L es una matriz triangular inferior con entradas diagonales estrictamente positivasy LT representa la conjugada traspuesta de L. Esta factorización, en general, no es única.

2.3. Nociones de matemáticas 21

2.3.3. Teoría de probabilidades

Tal y como se ha explicado en la Sección 2.1, probabilidad y riesgo son dos conceptosíntimamente ligados.

La teoría de probabilidades es una rama de las matemáticas que estudia los fenómenosaleatorios, es decir, fenómenos que se contraponen a los fenómenos deterministas, loscuales son resultados únicos y/o previsibles de experimentos realizados bajo las mismascondiciones determinadas. Los fenómenos aleatorios, por el contrario, son aquellos que seobtienen de experimentos realizados, otra vez, bajo las mismas condiciones determinadaspero como resultado posible poseen un conjunto de alternativas.

Esta ramas de las matemáticas es fundamental para entender el cálculo estocástico, elcual se presenta en 2.3.4 y es una herramienta fundamental para la valoración de los pro-ductos derivados nancieros. Para profundizar en el estudio de la teoría de probabilidades,se pueden consultar por ejemplo [2], [11], [31].

Denición 2.16. Una σ-álgebra en un espacio muestral Ω es una colección F de subcon-juntos de Ω que verica lo siguiente:

1. ∅ ∈ F , Ω ∈ F

2. Si A ∈ F ⇒ A ∈ F ; con A = Ω− A

3. Si Ai ∈ F , i ∈ N, entonces:

∞∪i=1

Ai ∈ F∞∩i=1

Ai ∈ F

Denición 2.17. Sea Ω un conjunto no vacío y sea F una σ-álgebra de subconjuntosde Ω. Una medida de probabilidad P es una función que, para cada conjunto A ∈ F , leasigna un número perteneciente al intervalo [0, 1], llamado la probabilidad de A y escritoP (A). Se requiere que:

1. P (Ω) = 1

2. Si A1, A2, . . . es una secuencia de conjuntos disjuntos en F , entonces:

P

(∞∪n=1

An

)=

∞∑n=1

P (An)

La terna (Ω,F , P ) se llama espacio de probabilidad.

Denición 2.18. La σ-álgebra de Borel de Rn se dene como la menor σ-álgebra quecontiene los subconjuntos de la forma x ∈ Rn : xi < a para algún a ∈ R y algún 1 ≤i ≤ n.

Denición 2.19. Sean Ft con t ≥ 0; y F una colección de σ-álgebras en Ω con Ft ⊆ F .La colección Ft, t ≥ 0 es una ltración cuando verica que Fs ⊆ Ft; 0 ≤ s ≤ t.

22 Capítulo 2. Conceptos previos

Denición 2.20. Dado un espacio de probabilidad (Ω,F , P ), una variable aleatoria (v.a.)X es una función X : Ω → Rn tal que f−1(B) está en la σ-álgebra F ∀B en la σ-álgebrade Borel.Es decir, una variable aleatoria X es una función denida en el espacio de probabilidad(Ω,F , P ), asociado a un experimento aleatorio.

Denición 2.21. Se llama rango de una variable aleatoria X (y se denotará como RX)a la imagen o rango de la función X, es decir, al conjunto de los valores reales que éstapuede tomar, según la aplicación X.

RX = x ∈ Rn| ∃ω ∈ Ω : X(ω) = x

Las variables aleatorias se clasican usualmente como:

Variable aleatoria discreta: una v.a. es discreta si su recorrido es un conjunto dis-creto.

Variable aleatoria continua: una v.a. es continua si su recorrido es un conjunto nonumerable.

En el presente Trabajo de Fin de Máster, las variables aleatorias continuas son lasúnicas con las que se trabajará puesto que son las variables empleadas para modelizarciertos comportamientos de especial interés en matemática nanciera.

Denición 2.22. La función de distribución de probabilidad de una v.a. X o función dedistribución de X es la función FX(x), que asigna a cada evento denido sobre X unaprobabilidad dada por la siguiente expresión:

FX(x) = P (X ≤ x) = Pω ∈ Ω|X(ω) ≤ x

La función de distribución de probabilidad tiene las siguientes propiedades:

1. lımx→−∞

F (x) = 0 y lımx→∞

F (x) = 1

2. Es continua por la derecha.

3. Es monótona no decreciente.

Denición 2.23. La función de densidad de probabilidad es la derivada (si existe) de lafunción de distribución de probabilidad:

fX(x) =dFX(x)

dx

FX(x) =

∫ x

−∞fX(u)du

siendo FX(x) la función de distribución de probabilidad de la variable aleatoria X.

2.3. Nociones de matemáticas 23

Denición 2.24. La esperanza matemática de una variable aleatoria se dene como lasiguiente integral:

E [X] =

∫Ω

XdP

Para una variable aleatoria continua que tenga densidad:

E [X] =

∫ ∞

−∞xf(x)dx

Denición 2.25. La varianza de una variable aleatoria se dene como:

σ2X = E

[(X − E [X])2

]Para una variable aleatoria continua que tenga densidad:

σ2X =

∫ ∞

−∞(x− µX)

2f(x)dx

siendo µX = E [X].

Denición 2.26. La desviación típica de una variable aleatoria se dene como:

σX =√

σ2X

Denición 2.27. La distribución uniforme es una distribución de probabilidad continuacuya función de distribución asociada es:

Ua,b(x) =

0 x < a

x− a

b− aa ≤ x < b

1 x ≥ b

Denición 2.28. La distribución normal o distribución Gaussiana es una distribución deprobabilidad continua cuya función de distribución asociada es:

FX(x) =1

σ√2π

∫ x

−∞exp

(−(u− µ)2

2σ2

)du, x ∈ R

siendo la media µ y la varianza σ2.

La función de distribución normal estándar es aquella función de distribución normaldonde µ = 0 y σ = 1. Se suele denotar como Φ(x).

Denición 2.29. La distribución lognormal es una distribución de probabilidad conti-nua cuyo logaritmo neperiano está normalmente distribuido. Es decir, si Y es una variablealeatoria con una distribución normal, entonces X = exp(Y ) tiene una distribución log-normal.

24 Capítulo 2. Conceptos previos

Su función de distribución asociada es:

FX(x) =1

σ√2π

∫ x

−∞

exp(− (ln(u)−µ)2

2σ2

)x

du, x ∈ R+

siendo µ la media y σ la desviación típica del logaritmo neperiano de la variable aleatoriaY .

Denición 2.30. La función de distribución de probabilidad de una v.a. multidimen-sional continua X es la función FX(x), que asigna a cada evento denido sobre X unaprobabilidad dada por la siguiente expresión:

FX(x) = P (X1 ≤ x1, . . . , Xn ≤ xn) = Pω ∈ Ω|X(ω) ≤ x

Denición 2.31. La función de densidad de probabilidad es la derivada (si existe) de lafunción de distribución de probabilidad:

FX(x) =

∫ x1

−∞· · ·∫ xn

−∞fX(u)du1 · · · dun

siendo FX(x) la función de distribución de probabilidad de la variable aleatoria multidi-mensional X.

Denición 2.32. La esperanza matemática de una variable aleatoria multidimensionalse dene como:

E [X] = (E [X1] , . . . ,E [Xn])

Denición 2.33. Dadas dos variables aleatorias Xi, Xj la covarianza entre ambas sedene como:

σij = E[(Xi − µXi

)(Xj − µXj

)]= E [XiXj]− µXi

µXj

A partir de la denición, se verica que σii = σ2Xi

Denición 2.34. Dadas dos variables aleatorias Xi, Xj el coeciente de correlación dePearson entre ambas se dene como:

ρij =σij

σiσj

Es fácil de comprobar que ρij ∈ [−1, 1]. Además, a diferencia de la covarianza, lacorrelación de Pearson es independiente de la escala de medida de las variables. Es decir,es una magnitud adimensional.

Denición 2.35. La distribución normal multivariante con esperanza matemática µ ymatriz de covarianza Σ es una distribución de probabilidad continua cuya función dedensidad asociada es:

fX(x) =1

(2π)n/2 (det (Σ))1/2exp

−1

2(x− µ) Σ−1 (x− µ)t

, x ∈ Rn

2.3. Nociones de matemáticas 25

Con:

µ = (µ1 . . . µn)

Σ =

σ1 σ12 σ13 · · · σ1n

σ21 σ2 σ13 · · · σ2n

σ31 σ32 σ3 · · · σ3n...

......

. . ....

σn1 σn2 σn3 · · · σn

Teorema 2.3. [Ley débil de los grandes números]. Si X1, X2, X3, . . . es una sucesióninnita de variables aleatorias independientes que tienen el mismo valor esperado µ yvarianza σ2, entonces el promedio:

Xn =1

n

n∑i=1

Xi

converge en probabilidad a µ. Es decir, para cualquier número positivo ϵ se cumple losiguiente:

lımn→∞

P(∣∣Xn − µ

∣∣ < ϵ)= 1

Teorema 2.4. [Ley fuerte de los grandes números]. Si X1, X2, X3, . . . es una sucesióninnita de variables aleatorias independientes e idénticamente distribuidas tal que E (|Xi|)y con el mismo valor esperado µ, entonces:

P(lımn→∞

Xn = µ)= 1

Teorema 2.5. [Teorema Central del Límite]. Sea X1, X2, . . . , Xn un conjunto de n varia-bles aleatorias, independientes e idénticamente distribuidas de una distribución con mediaµ y varianza σ2 = 0 y nita. Entonces, si n es sucientemente grande, la variable aleatoria

Zn =Xn − µ

σ/√n

converge en distribución a una distribución normal estándar. Es decir,

lımn→∞

Pr (Zn ≤ z) = N(z)

2.3.4. Cálculo estocástico

En matemática nanciera es de gran importancia el estudio y la comprensión deldenominado cálculo estocástico. El cálculo estocástico es la rama de las matemáticas queopera con procesos estocásticos y que es de gran utilidad para modelar sistemas en losque existe alguna fuente de aleatoriedad, como por ejemplo la valoración de los productosderivados nancieros.

26 Capítulo 2. Conceptos previos

Por lo tanto, se dedicará esta sección a dar unas pinceladas básicas de conceptostratados en esta disciplina del cálculo para entender mejor el resto de secciones del presenteTrabajo de Fin de Máster. Para ampliar la información recogida a continuación, se puedeconsultar, por ejemplo, [11], [29], [34], [35].

Denición 2.36. Un proceso estocástico X es una colección de variables aleatoriasXt, t ∈ I, denidas sobre un mismo espacio muestral Ω.

Si I es numerable entonces X se llama proceso estocástico en tiempo discreto.

Si I es un intervalo entonces X se llama proceso estocástico en tiempo continuo.

Además, se puede demostrar que para cada t ∈ I, Xt = Xt(ω), ω ∈ Ω es una variablealeatoria; y que para cada suceso ω ∈ Ω, Xω = Xt(ω), t ∈ I es un función del tiempo(que se conoce como camino aleatorio o trayectoria del proceso X).

Denición 2.37. Un proceso estocástico Gaussiano X es una colección de variablesaleatorias tal que todas las Xt son Gaussianas.

Denición 2.38. Un movimiento Browniano o proceso de Wiener W = Wt, con t ≥ 0,es un proceso estocástico en tiempo continuo que verica lo siguiente:

1. W0 = 0

2. Tiene incrementos independientes estacionarios. Es decir, para 0 = t0 < t1 < . . . <tm, los incrementos Wt1 −Wt0 ,Wt2 −Wt1 , . . . ,Wtm −Wtm−1 son variables aleatoriasindependientes.

3. Wt−Ws ∼ N (0, t−s) (para cada 0 ≤ s ≤ t), siendo N(µ, σ2) la distribución normalcuya esperanza matemática es µ y cuya varianza es σ2.

A partir de la primera y de la tercera propiedad se demuestra que: Wt ∼ N(0, t).Además, se cumple que:

1. E [Wt] = 0.

2. σt,s = min(t, s).

3. dWtdWt = dt

Denición 2.39. Sea Ft, t ≥ 0 una colección de σ-álgebras en Ω. La colección Ft, t ≥ 0es una ltración cuando verica que Fs ⊂ Ft, 0 ≤ s ≤ t.

Denición 2.40. Un proceso estocástico X = (Xt, t ≥ 0) está adaptado a la ltraciónFt, t ≥ 0 si para cada t ≥ 0, Xt es una variable aleatoria Ft-medible.

Denición 2.41. Un proceso estocástico X = (Xt, t ≥ 0) es una martingala en tiempocontinuo con respecto de la ltración Ft, t ≥ 0 si se verica:

1. E(|Xt|) < ∞, t ≥ 0.

2.3. Nociones de matemáticas 27

2. X está adaptado a F .

3. E(Xt|Fs) = Xs.

Se puede demostrar que el movimiento Browniano es una martingala. Es decir, dado unmovimiento Browniano Wt y dada una ltración Ft, t ≥ 0, E(Wt|Fs) = Ws, con 0 ≤ s ≤ t.

Denición 2.42. Sea P una partición de [a, b] y sean f y g dos funciones acotadasdenidas en [a, b]. Una suma de la forma:

S(f, g, P ) =n∑

i=1

f(ti) [(g(xi)− g(xi−1)]

donde ti ∈ [xi−1, xi],∀i = 1, 2, . . . , n se denomina suma de Riemann-Stieltjes de f conrespecto a g sobre la partición P .

Denición 2.43. Supongamos que f y g son dos funciones reales denidas sobre elintervalo cerrado y acotado [a, b] ⊆ R. Decimos que la función f es Riemann-Stieltjesintegrable respecto de la función g sobre el intervalo [a, b], si para algún número I ∈ R setiene que ∀ϵ > 0,∃δ = δ(ϵ) > 0/|S(f, g, P )− I| < ϵ, ∀P ∈ P [a, b]/||P || < δ, ti ∈ [xi−1, xi].En este caso decimos que I es la integral de Riemann-Stieltjes de f respecto de g sobre[a, b]:

I =

∫ b

a

f(x)dg(x)

Si g(x) es diferenciable, se obtiene la integral de Riemann:

I =

∫ b

a

f(x)g′(x)dx

Denición 2.44. Dados Wt, t ≥ 0 un movimiento Browniano y ∆(t) un proceso estocás-tico adaptado a la ltración F(t) generada por Wt; se denota la Integral de Itô9 como:

IT =

∫ T

0

∆(t)dWt

La denición formal de la Integral de Itô para un integrando general consiste en unargumento de paso al límite a partir de la denición para integrandos simples. Para unintegrando simple, es decir, un proceso estocástico constante en cada subintervalo de unapartición P = 0, t1, t2, . . . , T de [0, T ] la integral se dene como:

It =k−1∑j=0

∆(tj) [W (tj+1)−W (tj)] + ∆(tk) [W (t)−W (tk)]

Es una generalización de la integral de Riemann-Stieltjes en análisis en la que losintegrandos y los integradores son ahora procesos estocásticos. Esta integral cumple, entreotras, las siguientes propiedades:

9La integral de Itô es el concepto central del cálculo de Itô, el cual extiende los métodos de cálculo aprocesos estocásticos.

28 Capítulo 2. Conceptos previos

1. It es martingala respecto de la ltración F(t) generada por Wt.

2. E(It) = 0.

3. Propiedad de isometría: E[(∫ t

0∆(u)dWu

)2]=∫ t

0E(∆2(u))du

Se puede demostrar que: dItdIt = ∆2(t)dt

Denición 2.45. El Lema de Itô es una identidad empleada en el cálculo de Itô paraencontrar el diferencial de una función dependiente del tiempo y de un proceso estocástico.Es el equivalente estocástico a la regla de la cadena del cálculo diferencial.

Dados Wt, t ≥ 0 un movimiento Browniano y una función f , se puede demostrarempleando el Teorema de Taylor y despreciando los términos de orden superior que:

df(Wt) = f ′(Wt)dWt +1

2f ′′(Wt)dt

df(t,Wt) = ft(t,Wt)dt+ fx(t,Wt)dWt +1

2fxx(t,Wt)dt

Para un proceso estocástico Xt general:

df(t,Xt) = ft(t,Xt)dt+ fx(t,Xt)dXt +1

2fxx(t,Xt)dXtdXt

Denición 2.46. Una ecuación diferencial estocástica (stochastic dierential equation oSDE) es una ecuación de la forma:

dXt = µ(t,Xt)dt+ σ(t,Xt)dWt

Siendo:

µ(t,Xt): la deriva (drift).

σ(t,Xt): la difusión (diusion).

Además de la ecuación, hay una condición inicial de al forma Xu = x

Resolver esta ecuación diferencial estocástica consiste en hallar un proceso estocásticoXv, con v ≥ u tal que:

Xu = x

Xv = Xu +

∫ v

u

µ(t,Xt)dt+

∫ v

u

σ(t,Xt)dWt

Denición 2.47. Dados i activos, se dene un modelo de mercado (market model) como:

dβt = rtβtdt

dSit = µ(t, Si

t)dt+ σ(t, Sit)dW

it

dW it dW

jt = ρijdt

siendo:

2.3. Nociones de matemáticas 29

β: una cuenta corriente.

rt: el tipo de interés.

Denición 2.48. Sea Ω un conjunto no vacío y sea F una σ-álgebra de subconjuntos deΩ. Dos medidas de probabilidad P y P ∗ en (Ω,F) se dice que son equivalentes si:

P (A) = 0 ⇔ P ∗(A) = 0

para todos los conjuntos A ∈ F .

Teorema 2.6. [Teorema de Girsanov]. Sea W = Wt, con t ≥ 0 un movimiento Brownianoen un espacio de probabilidad (Ω,F , P ), y sea Ft con t ≥ 0 una ltración para dichomovimiento Browniano. Dado Θt un proceso adaptado y deniendo:

Zt = exp

−∫ t

0

ΘtdWu −1

2

∫ t

0

Θ2tdu

W ∗

t = Wt +

∫ t

0

Θtdu

y asumiendo que:

E[∫ t

0

Θ2tZ

2udu

]< +∞

Entonces el proceso W ∗t es un movimiento Browniano bajo la medida de probabilidad

equivalente P ∗ denida por P ∗(A) = E[ZIA].Denición 2.49. Dado el siguiente modelo de mercado:

dDt = −rtDtdt

dSt = µtStdt+ σtStdWt

tal que:

Dt =β0

βt

El precio del activo descontado está dado por:

d (DtSt) = σtDtSt (Θtdt+ dWt)

donde se dene el precio de mercado de riesgo como:

Θt =µt − rtσt

A partir del Teorema de Girsanov, el precio del activo descontado se puede expresar como:

d (DtSt) = σtDtStdW∗t

siendo P ∗ la medida libre de riesgo (risk neutral measure).

30 Capítulo 2. Conceptos previos

Una consecuencia importante es que:

d (DtSt) = E∗ [DTST |Ft]

Nota importante: en el presente Trabajo de Fin de Máster se trabajará únicamentecon la medida de probabilidad libre de riesgo para estimar los precios descontados de losactivos.

Denición 2.50. Un arbitraje es un proceso γt representando el valor de una cartera quesatisface γ0 = 0 y que para T > 0:

P (γT ≥ 0) = 1, P (γT > 0) > 0

Teorema 2.7. [Primer Teorema Fundamental de Valoración de Activos]. Si un mercadotiene una medida de probabilidad libre de riesgo entonces no admite arbitraje.

Denición 2.51. Un mercado se dice completo si cada derivado puede ser replicado conuna cartera formada por los activos y la cuenta corriente.

Teorema 2.8. [Segundo Teorema Fundamental de Valoración de Activos]. Dado un mer-cado que tiene una medida de probabilidad libre de riesgo, dicho mercado es completo siy solo si la probabilidad libre de riesgo es única.

De estos resultados se deduce que dada una medida libre de riesgo, el valor descontadode una cartera es una martingala respecto de dicha medida. Por lo tanto, si el valor V deun derivado a tiempo t puede replicarse, se cumplirá:

V (t, x) = E [D(t, T,X)V (T,X)|Ft]

Teorema 2.9. [Teorema de Feynman-Kac]. Dada la siguiente ecuación en derivadas par-ciales:

∂V

∂t+ µ(t, x)

∂V

∂x+

1

2σ2(t, x)

∂2V

∂x2− r(x, t)V = 0

La función:

V (t, x) = E [D(t, T,X)V (T,X)|Ft]

con:

dXt = µ(t,Xt)dt+ σ(t,Xt)dWt

es solución de la ecuación en derivadas parciales.Siendo:

V (T, x) la condición nal, o en términos nancieros, la función de payo del pro-ducto derivado nanciero que representa como se comporta el producto a fecha devencimiento.

D(t, T, x) = e−∫ Tt r(u,x)du el descuento que está relacionado con el valor temporal del

dinero.

Capítulo 3

Valoración de opciones nancieras

En este capítulo se presentan los modelos de valoración de opciones nancieras deequity a partir de los cuales se han desarrollado los algoritmos descritos en el presenteTrabajo de Fin de Máster. Estos productos son, esencialmente, los únicos derivados -nancieros que se han empleado para analizar la idoneidad del empleo de las técnicas dediferenciación algorítmica para el cálculo de sensibilidades.

Se empieza describiendo qué inputs son necesarios para construir un modelo de valo-ración.

A continuación se describen los fundamentos del modelo de Black-Scholes, el primermodelo empleado en la valoración de opciones nancieras.

Luego se explica detalladamente qué son los modelos de volatilidad local, unos modelosmás sosticados que el anterior ampliamente utilizados en la industria bancaria.

Posteriormente se describen los modelos de volatilidad estocástica y se explica por quéno se han implementado en este trabajo.

Por último se denen las sensibilidades o griegas, unas magnitudes muy importantesque se emplean fundamentalmente para operaciones de cobertura y gestión de riesgos.Éstas se desean calcular en el presente Trabajo de Fin de Máster con una novedosatécnica como se verá en sucesivos capítulos.

3.1. Inputs

En esta sección se denen las magnitudes usuales en economía y nanzas que alimentanlos modelos para valorar, entre otros, los productos denidos en la Sección 2.2.1. Para másinformación, se puede consultar por ejemplo [37].

Valor del activo subyacente (spot): valor determinista que toma el activo subyacenteen un instante determinado.

Tipo de interés de descuento (discount rate): coste de capital que se aplica paradeterminar el valor actual de un pago futuro.

Volatilidad (volatility): es una medida de dispersión de una variable estocástica. Seclasica en:

31

32 Capítulo 3. Valoración de opciones nancieras

• Volatilidad histórica: se reere a la volatilidad de un instrumento nancierodurante un período especíco pero con la última observación en una fechapasada.

• Volatilidad implícita: es la volatilidad que hace que la fórmula de Black-Scholes(más información en la Sección 3.2) estime el precio cotizado o precio de mer-cado de una opción nanciera. Ésta a su vez puede ser:

Volatilidad determinista: cuando en la volatilidad no se producen cambioso si se producen se pueden estimar sin ningún error de medida.

Volatilidad local: es la volatilidad que hace que un modelo valore bientodo el conjunto de instrumentos vanilla de distintos strikes y distintosvencimientos (más información en la Sección 3.3).

Volatilidad estocástica: cuando la volatilidad de los diferentes activos cam-bia a lo largo del tiempo de forma incierta (ver Sección 3.4).

La volatilidad es una magnitud muy importante, puesto que se utilizará como unamedida del riesgo del activo: cuanto más volátil sea un activo, mayor riesgo tendrá. Ade-más, es la magnitud con la que suelen operar los traders de equity ya que las opcionesnancieras cotizan en volatilidad y no en precio. Esto es así porque la comparación deopciones diferentes entre sí es más sencilla.

La gráca de la volatilidad implícita de una opción en función de su strike se conocecomo curva smile. Este fenómeno apareció a raíz del lunes negro de 19871 y está moti-vado porque las técnicas existentes en esa época no modelizaban adecuadamente ciertasfenómenos de mercado.

Sobre las causas del smile hay múltiples teorías, que se pueden consultar en, porejemplo, [33]. Las más extendidas son:

Es un fenómeno nanciero que se produce por la sobreprotección en strikes bajos.

Puesto que el mercado cotiza con el modelo de Black-Scholes, es complicado ajustarlos retornos a una normal.

Con frecuencia en el mercado se observa una estructura temporal de la volatilidad.En este caso, la volatilidad implícita de una opción depende de su vida. Por lo que si secombinan la estructura temporal y el smile de volatilidad, se obtiene lo que se conocecomo supercie de la volatilidad (más información en [24]).

3.2. Modelo de Black-Scholes

Tal y como se ha comentado en la Sección 2.2.2, Robert Merton publicó en 1973 unartículo en el que detallaba los avances hechos por Fischer Black y Myron Scholes paradeterminar una ecuación general con la que poder valorar derivados nancieros. Por lo

1Lunes negro de 1987: el lunes 19 de octubre de 1987 los mercados de valores de todo el mundo sedesplomaron en un intervalo de tiempo muy breve. Fue el segundo mayor derrumbe porcentual sucedidoen un mismo día en la historia de los mercados de valores.

3.2. Modelo de Black-Scholes 33

tanto, el modelo de Black-Scholes es un modelo matemático para valorar el precio de unaopción nanciera.

Este modelo destaca ya que ha sido el primero que independiza el precio de la opciónde las expectativas que tengan los distintos agentes de mercado sobre el comportamientofuturo de los distintos subyacentes. Es decir, demuestra la existencia de un precio matemá-ticamente objetivo replicando su valor mediante una cartera autonanciada cuyo preciose conoce en todo momento (más información en [37], por ejemplo).

3.2.1. Ecuación de Black-Scholes

Para obtener la ecuación de Black-Scholes se adoptan las siguientes hipótesis previas:

El tipo de interés de descuento r y la volatilidad σ son funciones deterministas yconstantes.

No se consideran ni costes de transacción ni scales.

No existe oportunidad de arbitraje.

Se pueden negociar cantidades no enteras de activos nancieros, aunque no se po-sean, en tiempo continuo.

Las opciones son europeas y el subyacente (la acción en este caso) no paga dividendosen el horizonte de valoración.

El modelo de Black-Scholes asume que el mercado consiste en un modelo de mercadocompuesto por al menos un activo S con riesgo y una cuenta corriente sin riesgo.

El valor del activo a tiempo t, St, verica la siguiente ecuación diferencial estocástica:

dSt = rStdt+ σStdWt

Siendo:

µ: la deriva (es un valor constante).

σ: la volatilidad (es un valor constante).

Wt: el movimiento Browniano asociado.

Puede demostrarse empleando la fórmula de Itô-Doeblin (ver [35]) que la solución dela anterior ecuación diferencial estocástica es:

St = S0exp

((r − 1

2σ2t

)+ σWt

)Siendo:

S0: el precio del activo en el momento actual o precio spot.

34 Capítulo 3. Valoración de opciones nancieras

Para obtener la ecuación diferencial que gobierna el modelo, la idea clave es cubrirla opción comprando y vendiendo el activo subyacente de la manera correcta para, comoconsecuencia, eliminar el riesgo (una demostración completa se puede encontrar en [37]).

La ecuación de Black-Scholes es la siguiente:

∂V

∂t+

1

2σ2S2∂

2V

∂S2+ rS

∂V

∂S− rV = 0

Esta ecuación estará denida en D = (S, t) : S > 0, t ∈ [0, T ).En el caso particular de una opción europea, para que el problema esté bien formulado

desde el punto de vista matemático, habrá que imponer una condición nal a fecha devencimiento T . Es decir, habrá que denir su función de payo (que es única para cadaproducto), la cual es la siguiente:

V (S, T ) =

max(S −K, 0) opción call

max(K − S, 0) opción put

Siendo:

K: el valor del strike.

Para una opción digital cash-or-nothing europea, para que el problema esté bien for-mulado desde el punto de vista matemático, habrá que imponer la siguiente condiciónnal a fecha de vencimiento T :

V (S, T ) =

BH(S −K) opción call digital cash-or-nothing

BH(K − S) opción put digital cash-or-nothing

Siendo:

H: la función de Heaviside.

B: un cupón jo denido por contrato.

A pesar de que el modelo de Black-Scholes ofrece una solución analítica para calcularel precio de ciertos derivados nancieros (en la Sección 7.1 se detalla el caso particular deuna opción call europea), tiene las siguientes limitaciones:

Como todo modelo, es una adaptación a la realidad, por lo que no representa estarealidad de forma perfecta.

A priori, el modelo no tiene en cuenta la posibilidad de que la acción pague divi-dendos2, aunque esto modelo se puede adaptar fácilmente para tenerlos en cuenta.

2Dividendo: es la parte del benecio social que se reparte entre los accionistas de una sociedad. Juntocon las posibles plusvalías obtenidas por la revalorización, es la principal fuente de rentabilidad de lasacciones, y constituye el derecho económico por excelencia de sus titulares. Su importe debe ser aprobadopor la Junta General de Accionistas de la sociedad, a propuesta del consejo de administración.

3.2. Modelo de Black-Scholes 35

Debido a la existencia del smile, no se pueden valorar opciones correctamente conun modelo de volatilidad constante como el de Black-Scholes.

En general, el tipo de interés de descuento r cambia con el tiempo. El modelo deBlack-Scholes no contempla esto.

3.2.2. Ecuación de Black-Scholes para varios subyacentes

En el caso de que una opción nanciera dependa de varios subyacentes, la teoríapresentada anteriormente puede ser adaptada teniendo en cuenta que ahora los activosestarán correlados.

Dados n activos con i = 1, . . . , n, sus valores a tiempo t, Sit , verican la siguiente

ecuación diferencial estocástica:

dSit = riS

itdt+ σiS

itdW

it

Siendo:

ri: el tipo de interés de descuento de cada activo i.

σi: la volatilidad de cada activo i.

W it : el movimiento Browniano asociado a cada activo i.

Además, se cumple que:

dW it dW

jt = ρijdt

Siendo:

ρij: el coeciente de correlación instantánea entre los movimientos Brownianos W it ,

W jt .

Como en el caso de un único activo subyacente (ver Sección 3.2.1), puede demostrarsea partir de la fórmula de Itô-Doeblin que ecuación diferencial estocástica asociada parauna opción con varios activos subyacentes es:

dV =

(∂V

∂t+

1

2

n∑i=1

n∑j=1

σiσjρijSiSj∂2V

∂Si∂Sj

)dt+

n∑i=1

∂V

∂Si

dSi

Esta ecuación estará denida en D = (Si, t) : Si > 0,∀i = 1, . . . , n; t ∈ [0, T ).En el caso particular de una opción europea, para que el problema esté bien formulado

desde el punto de vista matemático, habrá que imponer una función de payo para tenerasí una condición de contorno a fecha de vencimiento.

36 Capítulo 3. Valoración de opciones nancieras

3.3. Modelos de volatilidad local

Tal y como se ha visto en la Sección 3.2, el modelo de Black-Scholes es un modelo conunas ciertas limitaciones.

Una de ellas es que en este modelo la volatilidad es un valor constante y es el únicoparámetro disponible para replicar los precios de las opciones nancieras. En esencia,la ecuación de Black-Scholes es una herramienta para transformar precio en volatilidady viceversa. Esto tiene unas limitaciones que se pueden ver claramente con el siguienteejemplo.

Dada una volatilidad σ, con el modelo de Black-Scholes se puede obtener el precio unaopción call VBS a cualquier vencimiento T y para cualquier strike K.

Para determinar la volatilidad σ se procede de forma inversa. Es decir, si se disponedel precio de mercado Vmarket de una opción call con vencimiento T y strike K, se puedecalcular la volatilidad despejando en la siguiente igualdad:

VBS(K,T, σ) = Vmarket(K,T )

El problema se complica cuando existen dos opciones call con vencimiento T1 y T2 ystrike K. En este caso la volatilidad se calcula despejando de las siguientes igualdades:

VBS(K,T1, σ) = Vmarket(K,T1)

VBS(K,T2, σ) = Vmarket(K,T2)

En general, no existe un único valor de volatilidad σ que cumpla a la vez las dosigualdades anteriores, por lo que el modelo de Black-Scholes no es adecuado para calibraresta volatilidad de mercado.

Dada una opción nanciera, la volatilidad implícita σimp(K,T ) es la volatilidad quehace que la fórmula de Black-Scholes estime el precio cotizado de la opción. Es decir:

VBS(K,T, σimp(K,T )) = Vmarket(K,T )

Existen muchos modelos que tratan de hallar la supercie de volatilidades implícita.Pero sin duda, algunos de los más importantes son los modelos de volatilidad local. Éstostratan de recoger todos los precios de mercado de las opciones generalizando el modelode Black-Scholes de manera que se cumpla la siguiente ecuación diferencial estocástica:

dSt = µ(t)Stdt+ σlocal(t, St)StdWt

El concepto de una volatilidad local se desarrolló cuando Bruno Dupire, EmanuelDerman e Iraj Kani señalaron la existencia de un único un proceso de difusión consistentecon lo observado en los mercados para los precios de las opciones europeas (para másinformación, ver [15]).

El objetivo de estos modelos de volatilidad local es determinar la forma de la supercieσlocal(K,T ) para que el modelo valore bien todo el conjunto de instrumentos vanilla paradistintos strikes y distintos vencimientos.

Se puede demostrar que:

3.4. Modelos de volatilidad estocástica 37

σ2local(x, t) =

∂tVmarket(x, t) + rx

∂xVmarket(x, t)

1

2x2 ∂2

∂x2Vmarket(x, t)

Esta expresión de la volatilidad local tiene dos inconvenientes importantes:

1. Es muy sensible a la forma en que se parametrice la supercie de precios de mercadoVmarket(K,T ).

2. El término que aparece en el denominador puede tender a cero fácilmente.

Puesto que la supercie de precios Vmarket(K,T ) se expresa, a través de la fórmula deBlack-Scholes en función de la supercie de volatilidades implícitas σimp(K,T ), se puedeobtener una expresión de la supercie de volatilidad local σlocal(K,T ) en función de lasupercie de volatilidades implícitas como:

σ2local(x, t) =

σimp(x, t)

t+ 2

∂tσimp(x, t) + 2rx

∂xσimp(x, t)

x2

[∂2

∂x2σimp(x, t)− y

√t

(∂

∂xσimp(x, t)

)2

+1

σimp(x, t)

(1

x√t+ y

∂xσimp(x, t)

)2]

Con:

y =

ln

(S0

x

)+ rt+

t

2σ2imp(x, t)

σimp(x, t)√t

La gran ventaja de los modelos de volatilidad local es que son fáciles de calibrar puestoque la única fuente de aleatoriedad es el precio del subyacente.

En la Sección 6.3.1 se describen brevemente el modelo CEV y el modelo de mixtura delognormales, los dos modelos de volatilidad local que se han implementado en el presenteTrabajo de Fin de Máster para valorar los derivados que se han empleado para obtenerlas griegas mediante diferenciación algorítmica.

Se han escogido estos dos ya que son dos modelos sencillos con pocos grados de li-bertad y ampliamente usados en la industria bancaria para valorar productos derivadosnancieros.

3.4. Modelos de volatilidad estocástica

Los modelos de volatilidad local pueden modelar correctamente el smile a fechas pró-ximas. Pero a medida que pasa el tiempo, los smiles obtenidos con estos modelos sonmenos realistas debido a que `aplanan' el smile forward.

Por este motivo surgen una serie nuevos modelos conocidos como modelos de volati-lidad estocástica que tratan de modelizar mejor los mercados nancieros y anar así losprecios de los derivados.

38 Capítulo 3. Valoración de opciones nancieras

El nombre deriva del tratamiento de los modelos de la volatilidad del valor subyacentecomo un proceso aleatorio. Para ampliar información sobre este tipo de modelos, se puedenconsultar [1], [5].

Estos modelos son de la forma:

dSt = µStdt+√νtStdWt

dνt = α(St, νt, t)dt+ νβ(St, νt, t)√νtdBt

dWtdBt = ρdt

Siendo:

S: el precio del activo subyacente.

µ: la deriva.

ν: la volatilidad del precio del activo subyacente.

ρ: la correlación entre las variaciones del precio del activo y de la volatilidad.

Wt, Bt: los movimientos Brownianos asociados al activo y a la volatilidad del activorespectivamente.

α, β: funciones particulares de cada modelo de volatilidad estocástica.

La característica principal de los modelos de volatilidad estocástica es que intentanmejorar las características propias de la volatilidad para obtener con ello mejores estima-ciones de los precios de las opciones. Estos modelos, entre otras cosas:

Permiten explicar de forma consistente el motivo de que distintas opciones condiferentes strikes y vencimientos tengan diferentes volatilidades implícitas calculadascon el modelo de Black-Scholes. Es decir, simulan bien el smile de volatilidad quese observa en los mercados.

Asumen que, al igual que hacen muchos traders, la distribución de probabilidadesdel precio de una acción tiene una cola izquierda más pesada y una cola derechamenos pesada que la distribución lognormal, que es la que se asume en el modelode Black-Scholes para el modelizar el activo subyacente.

Actualmente existen muchos modelos de volatilidad estocástica, como por ejemplo elmodelo de Heston, el modelo SABR y el modelo GARCH.

En el presente Trabajo de Fin de Máster no se ha implementado ninguno dada la com-plejidad computacional de estos modelos y la dicultad para ajustar ciertos parámetrosque repliquen correctamente los precios de mercado de las derivados nancieros.

3.5. Las griegas 39

3.5. Las griegas

Las griegas3 (greeks) también llamadas sensibilidades (sensitivities) son cantidadesque representan la sensibilidad de los productos derivados nancieros a las variaciones deciertos parámetros de mercado. Son herramientas esenciales en la gestión del riesgo yaque cada griega mide la sensibilidad del valor de una cartera a un pequeño cambio enun determinado parámetro subyacente, de modo que los riesgos de los componentes sepueden tratar de forma aislada.

Por lo tanto, además de calcular el precio de un producto derivado nanciero tambiénes muy importante calcular la variación de este precio frente a los factores de riesgo demercado más usuales. Esto permite una gestión adecuada del riesgo inducido por losderivados.

En el modelo de Black-Scholes (ver 3.2) estas magnitudes son relativamente fáciles decalcular, lo cual es una propiedad deseable de los modelos nancieros.

Dado un producto nanciero cuyo precio es V , las griegas más importantes son lassiguientes:

Delta: mide la sensibilidad respecto al valor del activo subyacente S.

∆ =∂V

∂S

Gamma: mide la sensibilidad de la ∆ respecto al valor del activo subyacente S.

Γ =∂∆

∂S=

∂2V

∂S2

Vega4: mide la sensibilidad a la volatilidad σ del activo subyacente.

ν =∂V

∂σ

Volga: mide la sensibilidad de la ν respecto al valor de la volatilidad σ.

V olga =∂ν

∂σ=

∂2V

∂σ2

Vanna: mide la sensibilidad respecto al valor del activo subyacente S y respecto ala volatilidad σ.

V anna =∂2V

∂S∂σ=

∂∆

∂σ=

∂ν

∂S

3Su nombre está motivado por el hecho de que cada una de las magnitudes se representa con diferentesletras del alfabeto griego.

4La vega de una opción vanilla comprada siempre es positiva debido a que, aunque las pérdidas estánacotadas, las ganancias pueden ser innitas.

40 Capítulo 3. Valoración de opciones nancieras

Rho: mide la sensibilidad a un tipo de interés r.

ρ =∂V

∂r

Típicamente, al tipo de interés de descuento.

Theta5: mide la sensibilidad al tiempo restante hasta la nalización del contrato τ .

Θ = −∂V

∂τ

Delta del strike6: mide la sensibilidad respecto al valor del strike K.

∆K =∂V

∂K

Delta de correlación: mide la sensibilidad respecto a un determinado parámetro decorrelación.

∆ρij =∂V

∂ρij

Las griegas se usan principalmente para lo siguiente:

Coberturas: si se quiere eliminar o minimizar el riesgo de una cartera, hay queconseguir que sea insensible a los factores de riesgo. Es decir, hay que intentar quesus sensibilidades sean iguales a cero o lo más pequeñas posible.

Gestión de riesgos.

• Control de límites: el establecimiento de los límites para los distintos tipos deriesgo se puede hacer empleando griegas. Estos límites son una medida delapetito de riesgo7 de las entidades nancieras.

• Cálculo de medidas de riesgo: las griegas pueden emplearse para calcular el VaR(más información sobre esta medida cuantitativa en la Sección 2.1) analizandolas variaciones de las carteras empleando estas sensibilidades a los distintosfactores de riesgo en un desarrollo de Taylor.

5Theta no representa una medida especíca de riesgo ya que la fecha de vencimiento de un derivadonanciero está denida por contrato y es inmutable.

6Aunque para la mayoría de las opciones el strike es jo, para algunos productos nancieros de interés(bonos convertibles, por ejemplo) este parámetro puede ser variable.

7Apetito de riesgo: nivel y tipo de riesgo que una entidad nanciera está dispuesta a asumir paralograr sus objetivos estratégicos así como su plan de negocio.

3.5. Las griegas 41

Tradicionalmente, en la industria bancaria se han calculado estas magnitudes emplean-do esquemas de diferencias nitas por dos motivos: sencillez y universalidad de implemen-tación. Pero tal y como se explica en la Sección 2.3.2, está metodología lleva asociadosunos errores de truncamiento, además de la difícil tarea de elegir el valor del bump, quetal y como se verá en sucesivos capítulos, puede ser determinante.

El presente Trabajo de Fin de Máster, tal como indica su título, explora las bondadesde una novedosa metodología llamada diferenciación algorítmica para calcular estas sen-sibilidades y evitar así, entre otras cosas, incurrir en errores de truncamiento asociados alcálculo numérico y tener que decidir de antemano el valor de bumpeo de los precios de lascarteras.

42 Capítulo 3. Valoración de opciones nancieras

Capítulo 4

Métodos Monte Carlo

Este capítulo responde a la pregunta de qué son los métodos Monte Carlo, por qué sontan populares en la industria nanciera y explica cómo se pueden emplear para calcularel precio de los productos derivados nancieros.

Además se introduce el concepto de número pseudoaleatorio, una herramienta muy útilpara simular aleatoriedad en un ordenador, para modelizar así comportamientos futurosde activos.

Para profundizar sobre los métodos Monte Carlo y su aplicación a las nanzas cuan-titativas, se pueden consultar, por ejemplo, [18], [27], [30].

4.1. ¾Qué son los métodos Monte Carlo?

Los métodos Monte Carlo abarcan un conjunto de métodos no deterministas o estadís-tico-numéricos, usados para aproximar con exactitud expresiones matemáticas complejasde evaluar.

Estos métodos reciben su nombre en referencia al Casino de Monte Carlo (Mónaco)ya que una ruleta de casino es, en esencia, un generador simple de números aleatorios.Se empezaron a usar en la década de 1940 en el Laboratorio Nacional de Los Álamos(Nuevo México, USA) como una herramienta para desarrollar la bomba atómica durantela Segunda Guerra Mundial.

Los métodos Monte Carlo proporcionan soluciones aproximadas a una gran variedadde problemas matemáticos, tanto de naturaleza determinista como estocástica, posibili-tando la realización de experimentos con muestreos de números pseudoaleatorios en unordenador.

La gran potencia de estos métodos hacen que se estén convirtiendo en la herramientaprincipal en la industria nanciera para evaluar precios o hacer coberturas de productosderivados nancieros complejos.

A partir del Primer Teorema Fundamental de Valoración de Activos y del Teorema deFeynman-Kac se puede demostrar que el precio de un producto V (t, x) a tiempo t:

V (t, x) = E [D(t, T,X)V (T,X)|Ft]

con:

43

44 Capítulo 4. Métodos Monte Carlo

dXt = µ(t,Xt)dt+ σ(t,Xt)dWt

Siendo:

V (T, x) la condición nal, o en términos nancieros, la función de payo del pro-ducto derivado nanciero que representa como se comporta el producto a fecha devencimiento.

D(t, T, x) = e−∫ Tt r(u,x)du el descuento que está relacionado con el valor temporal del

dinero.

En general, dados nMC caminos de Monte Carlo y aplicando la Ley fuerte de losgrandes números, el precio de una opción nanciera con un único subyacente puede seraproximado como:

V (t, x) ≈ 1

nMC

nMC∑i=1

e−∫ Tt r(u,xi)duV (T, xi)

Siendo:

x1, . . . , xnMC: una conjunto de muestras independientes e idénticamente distribuidas

del activo subyacente.

Para simular los valores x1, . . . , xnMCse puede discretizar la ecuación diferencial esto-

cástica de Xt del modo siguiente:

∆Xt = µ(t,Xt)∆t+ σ(t,Xt)∆Wt

Entonces, tomando P = 0, t1, t2, . . . , T una partición del intervalo temporal [0, T ]:

Xt+1 = Xt + µ(t,Xt)∆t+ σ(t,Xt) (Wt+1 −Wt)

sabiendo que:

Wt+1 −Wt ∼ N(0,√(t+ 1)− t

)Esta discretización se conoce como el método de Euler para ecuaciones diferenciales

estocásticas.Por lo tanto, para calcular V (t, x), se procede del modo siguiente:

1. Se ja un valor de nMC sucientemente grande.

2. Se generan nMC caminos independientes de la forma xi asociados al proceso X encada paso temporal.

3. Se calculan el descuento y el payo para cada camino i.

4. Se calcula el valor descontado para cada payo. Es decir, se calcula lo siguiente:

V (t, xi) = e−∫ Tt r(u,xi)duV (T, xi)

4.1. ¾Qué son los métodos Monte Carlo? 45

5. Se calcula el valor medio de los valores anteriores como:

V (t, x) ≈ 1

nMC

nMC∑i=1

V (t, xi)

Para una opción nanciera con n activos subyacentes, cuyos movimientos Brownianosestán correlados del modo siguiente:

dW it dW

jt = ρijdt

se puede establecer la matriz de correlaciones Ω de los movimientos Brownianos de losactivos subyacentes como:

Ω =

1 ρ12 ρ13 · · · ρ1nρ21 1 ρ13 · · · ρ2nρ31 ρ32 1 · · · ρ3n...

......

. . ....

ρn1 ρn2 ρn3 · · · 1

Esta matriz se obtendrá a partir de datos de mercado y será siempre semidenida

positiva. En caso de que no lo sea, se le aplicará el algoritmo Nearest correlation para quelo sea y además `sea lo más parecida posible a la original', tal y como se explicará en laSección 6.3.1.

Para poder obtener el precio de un producto derivado nanciero con varios subyacentescorrelados entre sí, se seguirán los siguientes pasos:

1. Se genera una matriz M ∈ Mn×nMC(R) tal que nMC es el número de caminos de

Monte Carlo y n el número de activos. Esta matriz debe contener variables normalesestándar independientes que se corresponden con los incrementos de los Brownianosasociados a la ecuación diferencial estocástica en cada nodo temporal asociada acada activo entre la fecha de valoración y la fecha de vencimiento.

2. Se dene una matriz de correlación Ω ∈ Mn×n(R) siendo n el número de activos.Esta matriz de correlación será semidenida positiva; en caso contrario, se emplearáel algoritmo Nearest correlation para forzar a que lo sea.

3. Se realiza la factorización de Cholesky de la matriz de correlación Ω; obteniendouna matriz L tal que Ω = LLT .

4. Se efectúa el producto LMT con lo que se obtiene una matriz M∗ ∈ Mn×nMC(R)

tal que ahora los caminos de Monte Carlo están correlados.

5. Se calculan los precios de cada activo a vencimiento para obtener Vm,n.

6. Se aplica la función de payo a los precios de los activos a vencimiento con lo quese obtiene Vn.

7. Se calcula el precio V del producto derivado nanciero.

46 Capítulo 4. Métodos Monte Carlo

Puesto que los métodos Monte Carlo proporcionan soluciones aproximadas, llevanasociados un error que tratará de minimizarse en la medida de lo posible.

El error de Monte Carlo, MCerror, se puede denir como:

MCerror =Σ

√nMC

siendo Σ2 la varianza de los caminos de Monte Carlo y calculada como:

Σ2 = E[Vi(t, x)

2]− E [Vi(t, x)]

2

Como se puede observar, esta expresión implica que el error disminuye con la raízcuadrada del número de caminos de Monte Carlo, lo que signica que si se quiere reducirel error en un factor 10, se necesitan evaluar 100 veces más caminos.

4.2. Generación de números aleatorios

Un número aleatorio es aquel obtenido al azar. Es decir, es un número que tiene lamisma probabilidad de ser elegido que otro a partir de un experimento basado en ladistribución uniforme (como por ejemplo a partir de una ruleta o de un dado ya que laelección del mismo no depende de la elección de otros. Las forma más sencilla de garantizarque un número o una secuencia de números sea aleatoria es usar un experimento físico,como por ejemplo una ruleta o un dado.

En un ordenador, un generador físico no es una buena herramienta para generar núme-ros aleatorios. Por lo tanto, en estos dispositivos hay que emplear una serie de algoritmospara generar, de forma predecible, unos números denominados pseudoaleatorios.

Por lo tanto, un número pseudoaleatorio se dene como un número generado a travésun proceso secuencial con un algoritmo determinista, es decir, no aleatorio. De todosmodos, por abuso del lenguaje, a los números pseudoaleatorios se les suele denominaraleatorios aunque, tal y como se ha explicado, son conceptos distintos.

Estos números se obtienen con unos algoritmos que producen una sucesión de númerosla cual es una muy buena aproximación a un conjunto aleatorio de números. Estos algo-ritmos se denominan generadores pseudoaleatorios de números (GPAN) y formalmente sedenen por:

Función de inicialización. Recibe un número (la semilla) y pone al generador en suestado inicial.

Función de transición. Transforma el estado del generador.

Función de salidas. Transforma el estado para producir un número jo de bits (0 ó1).

La mayoría de los algoritmos de generadores pseudoaleatorios producen sucesiones queposeen una distribución uniforme, aunque con ciertas transformaciones más o menos com-plejas se pueden obtener números pseudoaleatorios que tengan cualquier otra distribución.

4.2. Generación de números aleatorios 47

La gran ventaja de las secuencias de números pseudoaleatorios es que aparentementeno muestran ningún patrón o regularidad desde un punto de vista estadístico, a pesar dehaber sido generadas por un algoritmo completamente determinista.

Los principales inconvenientes de estos generadores deterministas son la falta de uni-formidad de la distribución y la posible correlación de valores sucesivos.

Existen numerosas técnicas para obtener muestras aleatorias en un ordenador, entre lasque destacan: generación por congruencia lineal y generadores de Fibonacci para muestrasuniformes, método de Box-Muller y variante polar de Marsaglia para la generación demuestras normales.

También existen técnicas para reducir la varianza. Las técnicas más usuales son elempleo de variables antitéticas y el empleo de variables de control.

En los librería desarrollada en este Trabajo de Fin de Máster se han usado las funcionesimplementadas en el lenguaje de programación utilizado (Python) para generar estosnúmeros evitando así la construcción a mano de las técnicas mencionadas en esta sección.

48 Capítulo 4. Métodos Monte Carlo

Capítulo 5

Diferenciación algorítmica

Para calcular las griegas de un producto derivado nanciero existen diferentes métodos.Tradicionalmente, en la industria bancaria se ha empleado el método de diferencias nitaspara calcular estas sensibilidades. Como se ha visto en la Sección 2.3.2, las diferenciasnitas no arrojan el valor exacto de las derivadas de una función ya que estos esquemasllevan asociado un error de truncamiento. Además, para calcular derivadas por diferenciasnitas hay que elegir un valor para el bump, lo que exige tomar decisiones trascendentesantes de realizar los cálculos.

El presente Trabajo de Fin de Máster explora una técnica novedosa en la industriadenominada diferenciación algorítmica, la cual arroja el valor exacto de las derivadasde una función aplicando sucesivamente la regla de la cadena y evitando así incurrir enerrores de truncamiento.

En este capítulo se describen los fundamentos de la diferenciación algorítmica.

En primer lugar se presenta la metodología para obtener las griegas, aplicando la reglade la cadena, de un derivado nanciero empleando métodos Monte Carlo.

A continuación se explica detalladamente qué es la diferenciación algorítmica y ladiferencia entre ésta y la diferenciación automática (un concepto que muchos manualesconfunden erróneamente).

Luego se explica el método forward y el método backward, dos técnicas distintas quepermiten evaluar las derivadas de una función aplicando la regla de la cadena sucesiva-mente;

Por último se detallan las diferencias más signicativas entre el método forward y elmétodo backward.

La diferenciación algorítmica se describe detalladamente en muchos textos, entre otros,[6], [9], [12], [17], [19], [22], [36].

Nota importante: Las Figuras de este capítulo han sido tomadas de [25] y del si-guiente link.

49

50 Capítulo 5. Diferenciación algorítmica

5.1. Cálculo de las griegas de un producto derivado -

nanciero

Tal y como se ha explicado en la Sección 4.1, el precio de un producto derivadonanciero se puede calcular como:

V (t, x) = E [D(t, T,X)V (T,X)|Ft]

Siendo:

V (T, x) la condición nal, o en términos nancieros, la función de payo del pro-ducto derivado nanciero que representa como se comporta el producto a fecha devencimiento.

D(t, T, x) = e−∫ Tt r(u,x)du el descuento que está relacionado con el valor temporal del

dinero.

Este valor se puede aproximar por medio de un método Monte Carlo tomando nMC

caminos como:

V (t, x) ≈ 1

nMC

nMC∑i=1

Vi(t, x)

Con:

Vi(t, x) = D(t, T, xi)V (T, xi)

La derivada exacta de una función derivable con respecto a un input genérico θi, talque x = x(θ), es:

∂V (t, x(θ))

∂θi=

∂θi[E [D(t, T, x)V (T, x)|Ft]] = E

[∂ [D(t, T, x(θ))V (T, x(θ))]

∂θi|Ft

]En el caso de que la función de payo no sea derivable en todo su dominio (por

ejemplo, si existen discontinuidades), no se podrá intercambiar la esperanza matemáticay la derivada, tal y como se pone de maniesto en [18].

5.2. Diferenciación algorítmica y diferenciación auto-

mática

La diferenciación algorítmica (Algorithmic Dierentiation o AD) es un conjunto detécnicas que se introdujo por primera vez a principios de la década de 1960 para eva-luar numéricamente las derivadas de una función especicada mediante un programa deordenador. Esta técnica tiene en cuenta que, cada software, ejecuta una secuencia de ope-raciones aritméticas elementales (suma, resta, multiplicación, división, etc.) y funciones

5.3. Método forward 51

elementales (exp, log, sin, cos, etc.) Al aplicar la regla de la cadena repetidamente a es-tas operaciones, las derivadas de cualquier orden se pueden calcular automáticamente enun ordenador teniendo únicamente en cuenta el error de máquina1 y evitando incurriren errores de truncamiento. Esta técnica se usa además de en matemática nanciera, enotros campos en los que sea necesario evaluar derivadas de funciones como por ejemploingeniería civil, ingeniería aeronáutica, física, etc.

Es importante entender que estas técnicas calculan la derivada del código ejecutado(es decir, del algoritmo) y no de una función ya que en la evaluación de una función seejecutan una serie de instrucciones. Por lo tanto, lo que realmente se obtiene al emplearla diferenciación algorítmica es la derivada del conjunto de instrucciones y no la derivadade la función abstracta que el código pretende calcular.

La gran ventaja de la diferenciación algorítmica es que mediante esta técnica se puedencalcular rápido y con precisión de máquina las derivadas de una función. Además, adiferencia del empleo del método de diferencias nitas, no se incurre en ningún error detruncamiento (ver Sección 2.3.2) y no es necesario denir un valor para el bump.

Hasta ahora se ha explicado qué es la diferenciación algorítmica. Pero, ¾es lo mismoque la diferenciación automática?

Aunque en algunos textos se habla indistintamente de diferenciación algorítmica ydiferenciación automática, esto no es del todo correcto. La diferenciación automática o deforma más precisa diferenciación algorítmica automática (Automatic Algorithmic Dieren-tiation o AAD) es el arte de escribir código en un determinado lenguaje de programaciónpara realizar la diferenciación algorítmica automáticamente (por ejemplo, sobrescribiendooperadores en un lenguaje de programación). En general, los desarrollos requeridos sonrelativamente pesados al principio debido a múltiples causas: cambio en el paradigma deprogramación, adaptación de librerías existentes, uso de funciones no manejadas a prioripor los desarrolladores, etc. Pero a partir de ahí, el coste de desarrollo sería mínimo yaque sólo habría que denir las funciones siguiendo unas reglas básicas de programación ysin preocuparse demasiado por lo que estas técnicas hagan internamente.

La diferenciación algorítmica tiene dos modos básicos de operación, el método forwardy método backward, los cuales se explicarán a continuación.

5.3. Método forward

El método forward (forward mode) es una técnica que permite evaluar las derivadasde una función aplicando la regla de la cadena de dentro hacia fuera.

Por ejemplo, dada una función real de variable vectorial y = F (x) tal que:

F = D C B A

con las funciones D, C, B, A tales que:

1Error de máquina: también llamado épsilon de la máquina (ϵ-mach) es el menor valor de una de-terminada máquina que cumple que 1.0 + ϵ-mach > 1.0. Es decir, representa la exactitud relativa de laaritmética del computador.

52 Capítulo 5. Diferenciación algorítmica

y = D(c), c = C(b), b = B(a), a = A(x)

de tal forma que:

y = F (x) = D(C(B(A(x))))

Entonces, aplicando la regla de la cadena de dentro hacia fuera, la matriz jacobianade la función y se puede calcular como:

y′ = F ′(x) = D′(C ′(B′(A′(x))))

∂y

∂x=

∂y

∂c

(∂c

∂b

(∂b

∂a

∂a

∂x

))y sabiendo que las siguientes operaciones dan como resultado matrices:

∂b

∂a

∂a

∂x=

∂b

∂x=

∂b1∂x1

· · · ∂b1∂xn

.... . .

...∂bm∂x1

· · · ∂bm∂xn

Por lo tanto, el método forward de diferenciación algorítmica consiste en el cálculo de

productos matriz jacobiana-vector (jacobian-vector) desde los inputs hasta el output dela función.

En la Figura 5.1 se muestra un pequeño ejemplo de aplicación de esta metodología.

Figura 5.1: Ejemplo de grafo para calcular el valor de una función y sus derivadas em-pleando el método forward.

5.3. Método forward 53

Dada la función y = sin(x1) + x1x2, se dene lo siguiente:

w1 = x1

w2 = x2

w3 = w1w2

w4 = sin (w1)

w5 = w3 + w4

f = w5

Por lo tanto, emplear el método forward para calcular las derivadas de la funciónconsiste en aplicar la regla de la cadena al algoritmo siguiendo el orden descrito a conti-nuación:

w1 =∂w1

∂x1

w2 =∂w2

∂x2

w3 =∂w3

∂x1

+∂w3

∂x2

w4 =∂w4

∂x1

w5 =∂w5

∂x1

+∂w5

∂x2

f =∂f

∂x1

+∂f

∂x2

w1 =∂w1

∂x1

w2 =∂w2

∂x2

w3 =∂w3

∂w1

∂w1

∂x1

+∂w3

∂w2

∂w2

∂x2

=∂w3

∂w1

w1 +∂w3

∂w2

w2

w4 =∂w4

∂w1

∂w1

∂x1

=∂w4

∂w1

w1

w5 =∂w5

∂w3

∂w3

∂x1

+∂w5

∂w3

∂w3

∂x2

+∂w5

∂w4

∂w4

∂x1

=∂w5

∂w3

w3 +∂w5

∂w4

w4

f =∂f

∂w5

∂w5

∂x1

+∂f

∂w5

∂w5

∂x2

=∂f

∂w5

w5

Sustituyendo:

54 Capítulo 5. Diferenciación algorítmica

w1 = 1.0

w2 = 1.0

w3 = 1.0w2 + 1.0w1 = w1 + w2

w4 = cos (w1)

w5 = w1 + w2 + cos (w1)

f = w1 + w2 + cos (w1) = x1 + x2 + cos (x1)

Por lo tanto:

div(f) = f =∂f

∂x1

+∂f

∂x2

= x1 + x2 + cos (x1)

5.4. Método backward

El método backward (backward mode) es una técnica que permite evaluar las derivadasde una función aplicando la regla de la cadena de fuera hacia dentro, a diferencia delmétodo forward, que tal y como se explicó en la Sección 5.3, aplica la regla de la cadenade dentro hacia fuera.

Es el método de diferenciación algorítmica que está implementado en Autograd, unalibrería escrita en Python descrita en la Sección 6.2 que se ha empleado para explorar lasbondades de estas técnicas.

Procediendo como en el caso anterior (ver Sección 5.3, dada una función real de variablevectorial y = F (x) tal que:

F = D C B A

con las funciones D, C, B, A tales que:

y = D(c), c = C(b), b = B(a), a = A(x)

de tal forma que:

y = F (x) = D(C(B(A(x))))

Entonces, aplicando la regla de la cadena de fuera hacia dentro, la matriz jacobianade la función y se puede calcular como:

5.4. Método backward 55

y′ = F ′(x) = D′(C ′(B′(A′(x))))

∂y

∂x=

∂y

∂c

(∂c

∂b

(∂b

∂a

∂a

∂x

))

y sabiendo que las siguientes operaciones dan como resultado vectores:

∂y

∂c

∂c

∂b=

∂y

∂b=

(∂y

∂b1· · · ∂y

∂bn

)

Por lo tanto, el método backward de diferenciación algorítmica consiste en el cálculo deproductos vector-matriz jacobiana (vector-jacobian) desde el output hasta los inputs de lafunción a evaluar. Es importante recordar que tal como se ha explicado en la Sección 5.3,el método forward consiste en el cálculo de productos matriz jacobiana-vector (jacobian-vector) desde los inputs hasta el output de la función.

En la Figura 5.2 se muestra un pequeño ejemplo de aplicación de esta metodología.

Figura 5.2: Ejemplo de grafo para calcular el valor de una función y sus derivadas em-pleando el método backward.

Dada la misma función que en el ejemplo anterior; es decir, dada y = sin(x1) + x1x2,se dene lo siguiente:

56 Capítulo 5. Diferenciación algorítmica

w1 = x1

w2 = x2

w3 = w1w2

w4 = sin (w1)

w5 = w3 + w4

f = w5

Por lo tanto, emplear el método backward para calcular las derivadas de la funciónconsiste en aplicar la regla de la cadena al algoritmo siguiendo el orden descrito a conti-nuación:

w5 =∂f

∂w5

w4 =∂f

∂w4

w3 =∂f

∂w3

w2 =∂f

∂w2

w1 =∂f

∂w1

x2 =∂f

∂x2

x1 =∂f

∂x1

w5 =∂f

∂w5

w4 =∂f

∂w5

∂w5

∂w4

= w5∂w5

∂w4

w3 =∂f

∂w5

∂w5

∂w3

= w5∂w5

∂w3

w2 =∂f

∂w3

∂w3

∂w2

= w3∂w3

∂w2

w1 =∂f

∂w4

∂w4

∂w1

+∂f

∂w3

∂w3

∂w1

= w4∂w4

∂w1

+ w3∂w3

∂w1

x2 =∂f

∂w2

∂w2

∂x2

= w2∂w2

∂x2

x1 =∂f

∂w1

∂w1

∂x1

= w1∂w1

∂x1

Sustituyendo:

5.5. Diferencias entre el método forward y el método backward 57

w5 = 1.0

w4 = 1.0

w3 = 1.0

w2 = w1

w1 = cos (w1) + w2

x2 = w1 = x1

x1 = cos (w1) + w2 = cos (x1) + x2

Por lo tanto:

∂f

∂x1

= cos (x1) + x2

∂f

∂x2

= x1

5.5. Diferencias entre el método forward y el método

backward

Comparando el método backward con el método forward, el tamaño de las operacio-nes intermedias a realizar para calcular las derivadas es muy diferente tal y como se haexplicado anteriormente en las Secciones 5.3 y 5.4 .

Además, el método backward es el más eciente para evaluar el gradiente (las derivadasparciales) de una función real de variable vectorial. Se explica fácilmente con la ayuda dela Figura 5.3 que muestra como ejemplo el cálculo de las derivadas de una función real devariable vectorial F : RD → R tal que F = C B A.

En la Figura 5.3 se puede apreciar como el método forward acumula valores como ∂a∂x

y ∂b∂x.La Figura 5.4 explica grácamente como se calculan las derivadas nodo a nodo em-

pleando el método backward cuando dos nodos apuntan a otro.Éstos son las matrices jacobianas de cada una de las variables intermedias con res-

pecto al input x. Esta operación se efectúa tras multiplicar por la izquierda la matrizjacobiana acumulada del paso anterior por la matriz jacobiana del nodo actual. En elmétodo backward se multiplican las matrices jacobianas en la otra dirección, por lo quelos valores acumulados son ahora matrices jacobianas del output con respecto a cada unade las variables intermedias ∂y

∂ay ∂y

∂b.

Por lo tanto, el método consiste en multiplicar por la derecha la matriz jacobianaacumulada del paso anterior por la matriz jacobiana del nodo actual. Es decir, en elmétodo forward, se efectúa un producto matriz jacobiana-vector (jacobian-vector) paracada dimensión de los inputs, mientras que en el método backward solo se aplica unproducto vector-matriz jacobiana (vector-jacobian) en cada paso una vez.

58 Capítulo 5. Diferenciación algorítmica

Figura 5.3: Diferencias de cálculo entre el método forward y el método backward.

Figura 5.4: Cálculo de las derivadas nodo a nodo con el método backward.

5.5. Diferencias entre el método forward y el método backward 59

Pero el método backward tiene una desventaja importante frente al método forward.Dado que se debe calcular el valor de la función (output) para evaluar los pasos interme-dios para así efectuar los productos matriz jacobiana-vector (jacobian-vector) y obtenerlas derivadas frente a los inputs ; se deben almacenar en la memoria todos los valoresintermedios del cálculo con todas las consecuencias negativas que ello conlleva.

De todos modos, tal y como se ha explicado en este capítulo, cada método es útil paraun tipo de problema distinto.

En líneas generales, para obtener las derivadas de una función real de variable vectorial(por ejemplo, las griegas de un producto derivado nanciero), el cálculo de estas derivadases mucho más eciente empleando el método backward.

60 Capítulo 5. Diferenciación algorítmica

Capítulo 6

Implementación numérica

En este capítulo se describirá la implementación numérica que se ha realizado paraevaluar la bondad de las técnicas de diferenciación algorítmica para el cálculo de sensibi-lidades de productos derivados nancieros mediante métodos Monte Carlo.

En primer lugar se comentarán los primeros pasos dados en el lenguaje de progra-mación MATLAB para implementar las técnicas de diferenciación algorítmica, que con-sistieron en aplicar la diferenciación algorítmica a mano y la diferenciación algorítmicaautomática, y los problemas asociados a dicho lenguaje de programación que se han en-contrado al explorar estas técnicas.

A continuación se describirá la librería Autograd, una librería escrita en Python quepermite obtener fácilmente las derivadas de una función empleando el método backwardde diferenciación algorítmica, y se mencionarán sus ventajas e inconvenientes.

Por último se explicará cómo se ha construido y qué modulos contiene la libreríadesarrollada en Python para la valoración, junto con las funciones de Autograd, de losproductos derivados nancieros implementados empleando el método Monte Carlo.

Nota importante: Las Figuras de este capítulo han sido tomadas de [25].

Nota importante: El código desarrollado y descrito en el presente capítulo es con-dencial y pertenece a Banco Santander, S.A. Por lo tanto no se incluirá en el presentedocumento ya que sus contenidos está protegidos por las leyes de propiedad industrial eintelectual.

6.1. Primeros pasos

Una de las primeras cuestiones que surgen a la hora de sumergirse en la diferenciaciónalgorítmica es qué lenguaje de programación emplear para implementar estas técnicas enun ordenador.

61

62 Capítulo 6. Implementación numérica

En este caso existían dos opciones principalmente: Python1 o MATLAB2, ya que sonlos lenguajes de programación en los que están desarrolladas las librerías de valoracióndel departamento de Validación Interna de Banco Santander.

Otra disyuntiva que puede surgir es si desarrollar diferenciación algorítmica automáticao a mano, es decir implementando dentro de cada función también su derivada escribiendoa mano la derivada de cada línea de código o instrucción aplicando los métodos forwardo backward de diferenciación algorítmica. Aunque la diferenciación algorítmica a manono parece estar extendida en la industria bancaria, existen defensores de esta modalidad.Para una discusión sobre ventajas e inconvenientes de los modos automático y a manopuede consultarse [22].

Si bien al nal se decidió optar por el lenguaje Python y el modo automático para estetrabajo, en este capítulo se resumen una serie de valiosas lecciones que se han aprendidoal dar unos primeros pasos con la diferenciación algorítmica a mano y el primer intentode desarrollar el modo automático en MATLAB.

6.1.1. Diferenciación algorítmica a mano

La diferenciación algorítmica a mano consiste en implementar cada función de unalibrería de modo que devuelva tanto el resultado de la función como su derivada respectode los argumentos. Dichas derivadas se escribirán a mano dentro del código de la propiafunción aplicando los principios de la diferenciación algorítmica en su modo forward obackward. Un buen ejemplo se encuentra en la Sección 5.4, donde se explica el métodobackward para la función f(x1, x2) = sin(x1) + x1x2. En este caso, la implementación dela función f contendría el código para calcular el valor f y a continuación el código paracalcular x1 y x2, y la propia función devolvería los tres valores. Es importante notar quecada instrucción de una función es a su vez una serie de llamadas a otras funciones, ypor tanto para poder aplicar la regla de cadena se debe conocer la derivada de todas lasfunciones usadas. Para las funciones más complejas dicha derivada estará implementaday será devuelta por la propia función mientras que para las funciones más elementales sepuede escribir la derivada a mano (esto llevará a una de las principales desventajas deesta modalidad frente al modo automático).

Para poder explorar el problema a tratar, se ha implementado una función que cal-cula el precio de una opción call europea con el modelo de Black-Scholes mediante unmétodo Monte Carlo. Sus derivadas se han implementado según el método backward amano. Es decir, deniendo la función como una composición de funciones más simples eimplementando a mano las derivadas de esas funciones más sencillas.

1Python es un lenguaje de programación multiparadigma, ya que soporta orientación a objetos, progra-mación imperativa y, en menor medida, programación funcional. Es un lenguaje interpretado, usa tipadodinámico y es multiplataforma. Fue desarrollado a nales de los años 80 por por Guido van Rossum yes administrado por la Python Software Foundation. Posee una licencia de código abierto, denominadaPython Software Foundation License. En el presente Trabajo de Fin de Máster se ha usado la versión3.7.1

2MATLAB (MATrix LABoratory) es un entorno de computación numérica multiparadigma y un len-guaje de programación desarrollado por la empresa americana MathWorks. Permite las operaciones ma-triciales, la representación de funciones y datos, la implementación de algoritmos y la implementación deinterfaces de usuario. En el presente Trabajo de Fin de Máster se ha usado la versión 8.2.0.701 (R2013b).

6.1. Primeros pasos 63

6.1.2. Una implementación del modo automático en MATLAB

Como primera aproximación a la Diferenciación Algorítmica en su modo automáticose han tenido en cuenta las ideas de [22], aunque adaptadas para explotar las bondadesde MATLAB en el empleo de estas técnicas. En particular se ha intentado vectorizarel código en la medida de lo posible. Más concretamente, dentro de la diferenciaciónalgorítmica automática se ha optado por la implementación por sobrecarga de operadores(en contraposición a la generación automática de código). Esta modalidad del métodobackward consiste básicamente en que al ejecutar el código se van anotando todas laoperaciones básicas realizadas en una cinta (tape). Una vez terminada su ejecución seprocede a interpretar la cinta, lo que consiste en recorrer la cinta de delante hacia atrásderivando la operación básica que se encuentra en cada entrada de la cinta y aplicando laregla de la cadena para obtener la derivada de la función respecto de cada variable.

Para llevar esto a cabo, las operaciones fundamentales deben saber interactuar con lacinta además de conocer la expresión de su derivada. Esto se consigue sobrecargando dichasoperaciones básicas. Sin embargo enseguida surge la primera limitación de MATLABal respecto, que es que no permite sobrecargar operadores ni funciones elementales. Lasolución a este problema consiste en crear una nueva librería (llamada MathAad en estecaso) con todas las operaciones básicas recogidas. Aquí surge el gran inconveniente, ya quetodo el código deberá estar escrito en función de dichas operaciones básicas. Por ejemplo,se debe escribir MathAad.sum(x, y) en lugar de x+ y.

A modo esquemático, la implementación de esta librería consiste en los siguientescomponentes:

Clase DoubleAad : Tipo de dato double `aumentado'. Es una estructura de datos quesustituye al tipo double y contiene el valor double de una variable y la posición dela cinta donde se almacena la operación que dio lugar a dicha variable.

Librería MathAad : Librería que contiene una lista de operaciones elementales. Cadaoperación elemental tiene implementada su derivada, sabe interactuar con la cinta.Sus argumentos y valores de retorno son de tipo DoubleAad.

Clase TapeAad : La cinta propiamente dicha. Contiene tres arrays donde se almacenarespectivamente de manera secuencial: las posiciones en la cinta de los argumentosde cada operación básica, el valor de la derivada de cada operación básica respecto desus argumentos, el valor de la derivada de la función respecto a cada variable creadadurante la ejecución. Los dos primeros arrays se rellenan en la pasada forward,mientras que el tercero se rellena en la pasada backward durante la interpretaciónde la cinta.

6.1.3. Lecciones aprendidas

Para respaldar algunas de las conclusiones que se presentan a continuación se harealizado el siguiente ejercicio. Se ha implementado una función que calcula el precio deuna opción call europea con el modelo de Black-Scholes empleando para ello un métodoMonte Carlo en tres versiones:

64 Capítulo 6. Implementación numérica

1. Versión clásica sin derivadas para poder aplicar el método de diferencias nitas.

2. Versión con el método backward de diferenciación algorítmica implementado a mano.

3. Versión con el método backward de diferenciación algorítmica automática.

Las tres versiones tienen cinco inputs de entrada: precio spot, volatilidad, strike, fechade vencimiento y tipo de interés. Por lo tanto, se han calculado cinco derivadas de primerorden.

En particular se ha intentado evaluar el rendimiento de cada versión y para ello se hamedido el siguiente ratio de cálculo:

η =TC(V +Griegas)

TC(V )

siendo:

TC: el tiempo de computación en segundos.

V : el precio de la opción call europea.

El resultado para 216 caminos de Monte Carlo se puede ver en la Tabla 6.1.

Método de diferenciación η

Diferencias nitas 5.6Diferenciación Algorítmica a mano 1.7Diferenciación Algorítmica Automática 347.7

Tabla 6.1: Ratio de tiempos de cálculo en MATLAB para una opción call europea con elmodelo de Black-Scholes mediante el método Monte Carlo.

Sobre las ventajas e inconvenientes de la diferenciación algorítmica a mano frente a laautomática se destaca lo siguiente:

La diferenciación algorítmica a mano permite optimizar los cálculos de la derivadapor parte del desarrollador. En este caso esto se evidencia en el ratio de cálculo dela Tabla 6.1, ya que las derivadas se han escrito minimizando cálculos y reutilizandovariables.

En el caso de la diferenciación algorítmica automática, el tratamiento y gestión de lacinta conlleva un sobrecoste de memoria del ordenador. Esto puede afectar ademásal rendimiento, algo que no es un problema en la modalidad a mano.

Como desventaja de la modalidad a mano, el desarrollo y mantenimiento del códigoconlleva una carga de trabajo extra muy considerable, debido a que cada funciónva acompañada de la implementación de sus derivadas. Además exige que todos losdesarrolladores tengan conocimientos de diferenciación algorítmica, ya que todas

6.1. Primeros pasos 65

las funciones implementadas deben ser capaces de devolver su derivada. En con-traposición, la modalidad automática tiene un coste inicial mayor, pero una vezdesarrollada la librería de operaciones elementales un desarrollador no tiene por quépreocuparse de las derivadas al implementar una función.

Las limitaciones que se han encontrado en MATLAB son las siguientes:

La limitación principal salta a la vista con sólo observar la Tabla 6.1, que muestraun ratio de tiempo de cálculo de precio y derivadas sobre cálculo de precio de 347.7.Este rendimiento tan malo se debe a una gestión ineciente de la memoria porparte de MATLAB (al menos en la implementación que se ha hecho como parte delpresente Trabajo de Fin de Máster). Como evidencia se puede tomar el análisis queha hecho MATLAB de una ejecución de la versión automática (véase la Figura 6.1).Puede verse que la mayor parte del tiempo se emplea interpretando la cinta, y enparticular con operaciones que permitan acceder a los arrays de manera no secuencialy sobreescribiendo sus valores. El hecho de que MATLAB limite mucho el controlsobre la gestión de la memoria y no tenga exibilidad en sus estructuras de datosse vuelve muy limitante en este caso3.

Figura 6.1: Proling en MATLAB de una ejecución del método Monte Carlo por diferen-ciación algorítmica automática.

3Se verá en sucesivos capítulos como Autograd, la librería escrita en Python y escogida para evaluar lasbondades de las técnicas de diferenciación algorítmica, aprovecha perfectamente la capacidad del lenguajepara gestionar la memoria (usando referencias) y crear estructuras de datos ecientes (se usa un grafo deejecución en lugar de una cinta secuencial).

66 Capítulo 6. Implementación numérica

El otro inconveniente de MATLAB es que no se pueden sobreescribir operadoreselementales por lo que es necesario escribir todo el código con una sintaxis desagra-dable y engorrosa (como por ejemplo escribiendo MathAad.sum(x, y) en lugar dex+ y). Nótese el esfuerzo que supondría adaptar un código ya existente.

Como conclusión nal es interesante remarcar que a la hora de implementar un módulode diferenciación algorítmica el lenguaje sí importa.

Llegados a este punto, se desechó la posibilidad de continuar trabajando en Matlabpor las limitaciones expuestas anteriormente.

Entonces, tras realizar un sesudo análisis sobre la materia en cuestión se llegó a laconclusión de que lo más cómodo era emplear una herramienta existente para calcular lasgriegas de un derivado nanciero.

Se decidió apostar por Autograd, una de las herramientas más competitivas paraemplear técnicas de diferenciación algorítmica en el cálculo de derivadas. Autograd destacasobre otras principalmente por tres motivos:

1. Es software libre y es una librería escrita en Python, por lo que se puede acoplar a lalibrería de valoración del departamento de Validación Interna de Banco Santander.

2. Es una herramienta muy sencilla de implementar y manejar.

3. Es independiente respecto del resto de módulos de una librería existente que con-tenga la maquinaria para obtener las funciones de las que se desean calcular susderivadas.

6.2. Autograd

6.2.1. ¾Qué es Autograd?

Autograd es una librería con licencia de software libre, escrita en Python por losinvestigadores del MIT (Massachusetts Institute of Technology) Dougal Maclaurin, DavidDuvenaud, y Matthew Johnson que permite obtener las derivadas de una función medianteel método backward de diferenciación algorítmica y la diferenciación automática.

Además, Autograd es una librería colaborativa que se puede encontrar en el siguientelink4 y que puede ser versionada por cualquier usuario para adaptarla a sus necesidades.También es el módulo implementado en PyTorch5 para obtener derivadas.

La información sobre esta librería contenida en el presente documento se puede com-pletar con [25].

La función grad de Autograd toma una función real de variable vectorial y calculaautomáticamente sus derivadas parciales, es decir, el gradiente de la función. Pero, ¾cómolo hace?

4https://github.com/HIPS/Autograd5PyTorch es una librería de deep learning desarrollada principalmente por el grupo de investigación de

inteligencia articial de Facebook y utilizada para múltiples aplicaciones tales como visión por ordenadory procesamiento de lenguaje natural.

6.2. Autograd 67

Para calcular el gradiente de una función, Autograd registra cada transformación quese ha aplicado a los inputs. Una vez que se aplica la función sobre ellos, se obtiene eloutput.

Para hacer esto, Autograd `envuelve' (wrap) las funciones usando el decorador dePython primitive para que cuando éstas sean llamadas, se agreguen a una lista que registralas operaciones realizadas. El núcleo de Autograd tiene una tabla que mapea estas wrappedprimitives a las funciones gradiente correspondientes, o más precisamente, a los productosvector-matriz jacobiana (VJP). Las variables a las que se les está calculando el gradiente,se envuelven usando la clase Box.

Tras evaluar la función, Autograd genera un grafo que especica todas las operacionesque se han realizado a los inputs con respecto a los cuales se quiere evaluar las derivadas.Por lo tanto, para calcular las derivadas de la función, simplemente se aplican las reglasde derivación a cada nodo en el gráco empleando el método backward de diferenciaciónalgorítmica automática.

Una de las ventajas de esta herramienta es que no es necesario crear una instanciaexplícita de las matrices jacobianas intermedias. En su lugar, se basa únicamente en laaplicación de una secuencia de productos vector-matriz jacobiana (VJP).

En la Figura 6.2 se muestra grácamente el ejemplo de un de grafo para calcular elvalor de una función y su gradiente empleando el método backward con Autograd.

Figura 6.2: Ejemplo de grafo para calcular el valor de una función y su gradiente empleandoel método backward con Autograd.

Autograd no tiene que conocer las secuencias condicionales, los bucles, las ramas, nila recursividad para decidir qué operaciones se han realizado para efectuar los cálculosde las derivadas. Para calcular el gradiente de una entrada particular, solo se necesitasaber qué transformaciones continuas se aplicaron a esa entrada particular, no qué otrastransformaciones se podrían haber aplicado. Como Autograd realiza un seguimiento delas operaciones relevantes en cada llamada de función por separado, no es un problemaque todas las operaciones de ujo de control de Python sean invisibles para Autograd. Dehecho, simplica enormemente la implementación.

En el cálculo de las derivadas usando la librería Autograd, hay tres partes básicas:

68 Capítulo 6. Implementación numérica

1. Construcción del grafo de cálculo. A diferencia de TensorFlow6 donde el usuarioconstruye directamente el grafo nodo a nodo, en Autograd el grafo se construye im-plícitamente calculando el output de la función a través de manipulaciones sencillasde unos inputs. Cada nodo contiene la siguiente información (ver Figura 6.3):

a) Value: el valor actual calculado a partir de una serie de inputs.

b) Function: la operación primitiva que dene el nodo.

c) Parents : los nodos que son padres del actual.

2. Implementación de los VJP. La denición de cada producto vector-matriz jacobianapara cada operación primitiva está implementada en Autograd y puede ser escritacomo:

xj =∑i

∂yi∂xj

x = yTJ

Siendo x e y vectores y J la matriz jacobiana. Estos gradientes nunca se calcu-lan ya que es mucho más eciente efecuar los productos vector-matriz jacobianadirectamente.

3. Aplicación del método backward para calcular las derivadas. Tal y como se ha des-crito en la Sección 5.4.

En la Figura 6.3 se muestra un ejemplo de aplicación de una función de la librería`Numpy' de Autograd. Cuando se llama con un Nodo como argumento, la versión envuelta(wrapped) de la función primitiva extrae el valor de la función en el Nodo y lo pasa a lafunción primitiva subyacente. A continuación guarda el resultado en un nuevo Nodo, juntocon punteros al argumento original y la función en sí.

Figura 6.3: Ejemplo de aplicación de una función envuelta en Autograd.

6TensorFlow es una biblioteca de software gratuita y de código abierto para el ujo de datos y laprogramación diferenciable en una gran variedad de tareas. Es una biblioteca matemática simbólica quetambién se utiliza para aplicaciones de aprendizaje automático, como por ejemplo las redes neuronales.Es desarrollada por Google.

6.2. Autograd 69

En la Figura 6.4 se muestra como se vinculan los nodos para generar un grafo decálculo con la dependencia entre padres que permite construir correctamente los productosvector-matriz jacobiana.

Figura 6.4: Representación de la vinculación de los nodos para generar un grafo de cálculocon la dependencia entre padres.

La principal restricción es que cualquier función que opera en la Box está marcadacomo primitive, y tiene su gradiente implementado. Esto se realiza para la mayoría delas funciones de la biblioteca Numpy. Además, también cabe la posibilidad de que undesarrollador escriba explícitamente la derivada de una función propia en caso de que noesté implementada.

La entrada puede ser un escalar, un número complejo, un vector, una tupla, una tuplade vectores, una tupla de tuplas, un np.array, etc.

Cuando se utiliza la función grad, la salida debe ser un escalar, pero las función jacobianpermiten calcular gradientes de vectores.

6.2.2. Ventajas y limitaciones de Autograd

`Numpy' y `Scipy' son librerías que tienen implementadas muchas funcionalidadesmatemáticas. Esto hace que, a fecha de redacción del presente documento, dichas libreríasse hayan sobrescrito para calcular derivadas automáticamente en Autograd entre otras:

La mayoría de operaciones matemáticas.

La mayoría de las operaciones que permiten manipular matrices.

Muchas funciones de álgebra lineal.

Algunas técnicas no han sido implementadas (la mayoría se encuentran detalladas enel tutorial de Autograd7). Pero sin duda la más problemática es la siguiente. En Autograd,se admite la indexación (x = A[i, j, :]) pero no la asignación (A[i, j] = x) en matrices que

7https://github.com/HIPS/Autograd/blob/master/docs/tutorial.md

70 Capítulo 6. Implementación numérica

se están derivando con respecto a. Esto está motivado porque la asignación es difícil desoportar ya que se requiere mantener continuamente copias de los datos sobrescritos, loque implica un gasto de memoria considerable.

A fecha de redacción del presente documento y a modo de resumen, se pueden usar:

La mayoría de las funciones de la librería `Numpy'.

Algunas funciones de `Scipy'.

Indexación y corte de matrices.

Creación explícita de matrices a partir de listas A = np.array([x, y]).

Por el contrario, las siguientes operaciones no están permitidas:

Asignación a matrices.

La conversión implícita de listas a matrices A = np.sum([x, y]) (en su lugar utilizarA = np.sum(np.array([x, y]))).

A.dot(B) (en su lugar utilizar np.dot(A,B)).

Operaciones como a += b (en su lugar utilizar a = a+ b).

Algunas vericaciones como isinstance(x, np.ndarray) o isinstance(x, tuple), sinhaber importado primero la librería correspondiente (from Autograd.builtins importisinstance, tuple).

Por lo tanto, a pesar de que Autograd es una herramienta muy útil para el propósitoque fue denida, tiene algunas particularidades que hace que el desarrollador deba deser especialmente cuidadoso al denir las funciones o expresiones cuyo gradiente quieraevaluar.

6.3. Descripción de la librería desarrollada

Una vez que se han descrito los problemas encontrados en MATLAB (ver Sección 6.1)y las bondades de la librería Autograd para el cálculo de griegas de derivados empleandoel método backward de diferenciación algorítmica automática con las funciones grad y/ojacobian tantas veces como se necesario (ver Sección 6.2), se describirá en esta sección lalibrería que se ha implementado.

Como ya se ha comentado, la librería está escrita en Python puesto que éste es ellenguaje en el que está escrito Autograd.

Esta librería está escrita de forma modular. Es decir, se compone de diferentes che-ros con extensión .py que agrupan toda la maquinaria necesaria para poder evaluar losejemplos que se describirán en el Capítulo 7. Los módulos se mencionarán y detallaránen las siguientes secciones.

Además, en la Figura 6.5 se muestra la estructura de la librería y establece comose acoplan los diferentes módulos de la misma para obtener el precio de los productos

6.3. Descripción de la librería desarrollada 71

derivados nancieros. En dicha gura es interesante comprobar que la librería Autogradno aparece, ya que sólo es necesario llamar a las funciones grad y/o jacobian de la mismacuando sea necesario para calcular así las derivadas. Es decir, Autograd es independientede la librería desarrollada.

Esta librería está diseñada tal que sea fácil incluir nuevos productos y metodologías.Además, se espera que sea una herramienta útil para el departamento de ValidaciónInterna de Banco Santander, el cual ha propuesto el presente Trabajo de Fin de Máster.

Nota importante: no se ha considerado el pago de ningún tipo de dividendos porparte de los activos subyacentes de equity para evitar añadir complejidad adicional a losmodelos de valoración.

6.3.1. Motor de Monte Carlo

Un motor de Monte Carlo contiene toda la maquinaria para valorar los productosderivados nancieros que se han empleado en el presente Trabajo de Fin de Máster.

Este formado por los siguientes módulos:

Un módulo de lectura de los inputs y parámetros que alimentarán cada modelo.

Un generador de números pseudoaleatorios normalmente distribuidos que se basaen la función por defecto de Numpy para generar dichos números.

Un generador de movimientos Brownianos correlados. Formado por un módulo deaplicación de la descomposición de Cholesky y por otro que tiene implementado elalgoritmo nearest correlation.

El modelo de Black-Scholes.

Dos modelos de volatilidad local: el modelo CEV y el modelo de mixtura de lognor-males.

Un módulo de discretización de la ecuación diferencial estocástica asociada al mo-vimiento del activo subyacente. Formado por un generador de la malla temporalpara los modelos de volatilidad local y el módulo de discretización en sí basado enel método de Euler para ecuaciones diferenciales estocásticas.

Un orquestador de Monte Carlo que permite calcular los valores de los activos sub-yacentes a vencimiento según cada camino de Monte Carlo.

Un módulo que contiene funciones de payo para evaluar el precio de cada productoa partir de la maquinaria anterior.

Modelo CEV

El modelo CEV (Constant Elasticity of Variance model) es un modelo de volatilidadlocal que intenta capturar la volatilidad de productos con distintos strikes y vencimientos,y el efecto de apalancamiento.

72 Capítulo 6. Implementación numérica

Este modelo es ampliamente utilizado en la industria nanciera, especialmente paramodelar productos de equity y commodities. Fue desarrollado por John Cox en 1975 y seencuentra completamente descrito en [26].

El modelo CEV describe la relación entre volatilidad y precio, introduciendo para ellola volatilidad local. Dados n activos subyacentes, el modelo supone que se modelan conla siguiente ecuación diferencial estocástica:

dSit = µ(t)Si

tdt+ σ(Sit

)γdW i

t

Con:

dW it dW

jt = ρijdt

Siendo:

γ: un parámetro que controla la relación entre volatilidad y precio. Cuando γ < 1se observa el efecto de apalancamiento descrito anteriormente que consiste en elaumento de la volatilidad a medida que cae el valor del activo subyacente.

Como se puede apreciar observando la ecuación diferencial estocástica que rige elmodelo, si γ = 1, estamos ante el modelo de Black-Scholes.

Modelo de mixtura de lognormales

El modelo de mixtura de lognormales es un modelo de volatilidad local desarrolladopor Damiano Brigo, Fabio Mercurio y Francesco Rapisarda. Está perfectamente descritoen [4].

El modelo supone que el activo subyacente cumplen la siguiente ecuación diferencialestocástica:

dSt = µ(t)Stdt+ ν(t, St)StdWt

Con:

ν(t, y) =

√√√√√√√√√N∑i=1

λiσ2i (t)

1

Vi(t)exp

− 1

2V 2i (t)

[ln

(y

S0

)− µt+

1

2V 2i (t)

]2N∑i=1

λi1

Vi(t)exp

− 1

2V 2i (t)

[ln

(y

S0

)− µt+

1

2V 2i (t)

]2Tal que:

N∑i=1

λi = 1

Vi(t) =

√∫ t

0

σ2i (u)du

6.3. Descripción de la librería desarrollada 73

Algoritmo nearest correlation

El algoritmo nearest correlation se emplea para obtener matrices simétricas, semide-nidas positivas y con diagonal principal formada por unos. Está completamente descritoen [23]

Dada una matriz A ∈ Mn×n(R), el objetivo es resolver el siguiente problema deoptimización matemática:

min J

J = ∥A− A∗∥F =

√√√√ n∑i=1

n∑j=1

∣∣aij − a∗ij∣∣2

Siendo:

A∗ una matriz semidenida positiva y con diagonal principal formada por unos.

∥·∥F la norma de Frobenius.

Para ello, el algoritmo proyecta repetidamente en el conjunto de matrices con diagonalprincipal formada por unos y el conjunto de matrices simétricas semidenidas positivas.Se garantiza que este algoritmo, de orden uno, converge al mínimo.

Este algoritmo es muy importante en la industria nanciera ya que, por ejemplo,la principal técnica para correlar n movimientos Brownianos con métodos Monte Carlonecesita emplear la factorización de Cholesky, tal y como se ha descrito en la Sección 4.1.

Y tal y como se ha explicado en la Sección 2.3.2, una matriz Ω ∈ Mn×n(R) podráser descompuesta empleando la factorización de Cholesky si y sólo si Ω es simétrica ysemidenida positiva. En caso de que una matriz Ω no lo sea, empleando este algoritmola matriz obtenida Ω∗ será semidenida positiva y podrá emplearse para obtener movi-mientos Brownianos correlados.

Payos

Tal y como se ha comentado, un módulo de la librería desarrollada recopila los payosque se emplearán para valorar correctamente los productos derivados nancieros y analizarasí, a partir de las pruebas descritas en el Capítulo 7, la idoneidad de la aplicación de lastécnicas de diferenciación algorítmica.

Una lista de las funciones de payo más comunes puede encontrarse en [37]; pero losque se han implementado en la librería son los que se recopilan en esta sección.

Dados los siguientes parámetros:

Si: el precio del activo i a fecha de vencimiento del producto.

Sitj: el precio del activo i a fecha tj.

K: el valor del strike.

74 Capítulo 6. Implementación numérica

T : el vencimiento del producto.

B: un cupón jo denido por contrato.

Los payos (de compra en todos los casos) que se han programado son:

Opción call :V = max(S −K, 0)

Opción put :V = max(K − S, 0)

Opción call digital cash-or-nothing :

V = BH(S −K)

Opción put digital cash-or-nothing :

V = BH(K − S)

Opción basket best-of call :

V = max [max(Si)−K, 0]

Opción basket worst-of call :

V = max [min(Si)−K, 0]

Opción basket best-of put :

V = max [K −max(Si), 0]

Opción basket worst-of put :

V = max [K −min(Si), 0]

Opción basket equally-weighted call :

V = max

[1

n

n∑i=1

Si −K, 0

]

Opción basket equally-weighted put :

V = max

[K − 1

n

n∑i=1

Si, 0

]

6.3. Descripción de la librería desarrollada 75

Opción call asiática con promedio aritmético:

V = max

[1

n

n∑j=1

Stj −K, 0

]

Opción put asiática con promedio aritmético:

V = max

[K − 1

n

n∑j=1

Stj , 0

]

Opción call basket asiática con promedio aritmético:

V = max

[1

n

n∑j=1

maxi

(Sitj

)−K, 0

]

Opción put basket asiática con promedio aritmético:

V = max

[K − 1

n

n∑j=1

maxi

(Sitj

), 0

]

También se ha implementado las funciones de payo de un autocall (automaticallycallable) y de un dispersion trade, que son dos productos un poco más complejos que losanteriores.

Un autocall se puede denir como un producto estructurado vinculado a uno o va-rios activos subyacentes que puede vencer automáticamente (`kick out' ) antes de su fechade vencimiento programada si se han cumplido ciertas condiciones de mercado predeter-minadas con respecto al activo o activos subyacentes. Para más información sobre esteproducto se puede consultar, por ejemplo, [13].

Dadas n fechas t1, t2, . . . , tn = T de autocall, la función de payo de este productopara j = 1, 2, . . . , n− 1 es la siguiente:

V (S, tj) = Bj Stj > Kj

El producto se cancelará automáticamente en tj si se cumple que Stj > Ktj . A fechade vencimiento T :

V (S, T ) =

B ST > KT

0 Barrera < ST < KT

ST −KT ST < Barrera

Un dispersion trade es un derivado nanciero que valora el estilo de dispersión depayos entre una basket y sus componentes individuales. Una descripción completa sobreeste producto se puede encontrar en, por ejemplo, [3].

Dada una cesta de n activos subyacentes y dependiendo de la tipología de la misma,la función de payo de un dispersion trade es la siguiente:

76 Capítulo 6. Implementación numérica

Para baskets call :

• Best-of :

V =1

n

n∑i=1

f

(Si(T )

Si(t)

)− f

[max

i

(Si(T )

Si(t)

)]• Worst-of :

V =1

n

n∑i=1

f

(Si(T )

Si(t)

)− f

[min

i

(Si(T )

Si(t)

)]con f(x) = max [x−K, 0]

Para baskets put :

• Best-of :

V =1

n

n∑i=1

f

(Si(T )

Si(t)

)− f

[max

i

(Si(T )

Si(t)

)]• Worst-of :

V =1

n

n∑i=1

f

(Si(T )

Si(t)

)− f

[min

i

(Si(T )

Si(t)

)]con f(x) = max [K − x, 0]

Basket equally-weighted call :

V =n∑

i=1

f

(Si(T )

Si(t)

)− f

(n∑

i=1

Si(T )

Si(t)

)

con f(x) = max [x−K, 0]

Basket equally-weighted put :

V =n∑

i=1

f

(Si(T )

Si(t)

)− f

(n∑

i=1

Si(T )

Si(t)

)

con f(x) = max [K − x, 0]

Las funciones de payo denidas anteriormente no son derivables en el strike puestoque en este punto la derivada por la izquierda y por la derecha no coinciden. Esto será unproblema tal y como se expondrá a partir de las pruebas analizadas en la Sección 7.4).

Por lo tanto, siguiendo las directrices que se adoptan en las entidades bancarias paralimitar la exposición al riesgo, se han denido unos payos suavizados.

El suavizado de funciones de payo no es una tarea trivial ya que existen multitudde métodos para tal n. En el presente Trabajo de Fin de Máster estos suavizados estánhechos a partir de splines s de clase C2 y están denidos en un intervalo [K − ϵ,K + ϵ]siendo ϵ un parámetro denido por el usuario. Por lo tanto, ahora sí las derivadas deprimer orden y de segundo orden son continuas en todo el dominio. Se han agrupado lossuavizados según cuatro clases de productos:

6.3. Descripción de la librería desarrollada 77

Para las opciones call, tanto simples como cestas, se han denido splines de dosnodos, tal que:

x0 = K − ϵ x1 = K + ϵ

s(x0) = 0 s(x1) = K + ϵ

ds

dx

∣∣∣x=x0

= 0ds

dx

∣∣∣x=x1

= 1

Para las opciones put, tanto simples como cestas, se han denido splines de dosnodos, tal que:

x0 = K − ϵ x1 = K + ϵ

s(x0) = K − ϵ s(x1) = 0

ds

dx

∣∣∣x=x0

= −1ds

dx

∣∣∣x=x1

= 0

Para las opciones call digitales cash-or-nothing, tanto simples como cestas, se handenido splines de tres nodos, tal que:

x0 = K − ϵ x1 = K x2 = K + ϵ

s(x0) = 0 s(x1) =1

2s(x2) = 1

ds

dx

∣∣∣x=x0

= 0ds

dx

∣∣∣x=x1

=1

ϵ

ds

dx

∣∣∣x=x2

= 0

Para las opciones put digitales cash-or-nothing, tanto simples como cestas, se handenido splines de tres nodos, tal que:

x0 = K − ϵ x1 = K x2 = K + ϵ

s(x0) = 1 s(x1) = −1

2s(x2) = 0

ds

dx

∣∣∣x=x0

= 0ds

dx

∣∣∣x=x1

=1

ϵ

ds

dx

∣∣∣x=x2

= 0

78 Capítulo 6. Implementación numérica

Esquemas de diferencias nitas

Se ha programado también un script en el que se recogen los esquemas de diferenciasnitas hacia delante, hacia atrás y centradas; tanto para aproximar la derivada de primerorden como para la de segundo orden.

Los valores de las griegas obtenidos con estos esquemas se emplearán para chequear silos valores obtenidos empleando Autograd son razonables tanto en términos de precisióncomo de tiempo.

Estos esquemas de diferencias nitas, que son las técnicas usadas tradicionalmente enla industria bancaria para calcular sensibilidades, tienen dos limitaciones importantes:

1. Llevan asociado un error de truncamiento.

2. Exigen tomar la trascendental decisión de un valor de bump, que como se verá en elCapítulo 7 puede ser determinante en la obtención de los valores de las griegas.

6.3. Descripción de la librería desarrollada 79

Figura 6.5: Estructura de la librería desarrollada.

80 Capítulo 6. Implementación numérica

Capítulo 7

Resultados

En este capítulo se describirán las pruebas que se han hecho para analizar las bondadesdel empleo del método backward de diferenciación algorítmica con técnicas de derivaciónautomática, aplicado al cálculo de griegas de productos derivados nancieros.

Para ello se describirán, analizarán y resolverán distintos casos poniendo en prácticatoda la información recopilada en los capítulos previos del presente documento.

Estas pruebas, hechas empleando la librería que se ha implementado y las funcionescorrespondientes de Autograd, se clasican en el presente capítulo según sean de rendi-miento, de inputs con restricciones y de estabilidad y precisión.

Nota importante: se asume que todos los productos tienen nominal igual a 1 salvoque se indique lo contrario, todos los valores están expresados en la misma divisa, lavolatilidad se considera anualizada, los tiempos hasta vencimiento se miden en años y lostiempos de computación están expresados en segundos.

7.1. Consideraciones previas

El primer caso de estudio de la metodología que se presenta y detalla en este documentoconsiste en el cálculo de uno de los productos más sencillos posibles: se ha evaluado elprecio y de las griegas de primer orden para una opción call europea mediante el modelo deBlack-Scholes (ver la Sección 3.2 para más información sobre este modelo). Se ha tomadoeste producto como primer caso de análisis puesto que la solución analítica de la ecuacióndiferencial en derivadas parciales asociada es conocida.

Dada una opción call europea que no paga dividendos, se puede demostrar (ver porejemplo [24]) que su precio V calculado mediante el modelo de Black-Scholes es:

V (t) = SΦ(d1)− e−rτKΦ(d2)

Con:

d1 =

ln

(S

K

)+

(r +

σ2

2

σ√τ

81

82 Capítulo 7. Resultados

d2 =

ln

(S

K

)+

(r − σ2

2

σ√τ

= d1 − σ√τ

Siendo:

S: el precio spot del activo subyacente.

K: el valor del strike.

r: el tipo de interés.

τ : el tiempo hasta vencimiento.

σ: la volatilidad.

Puesto que para este producto la fórmula del precio es analítica, las griegas tambiéntendrán una fórmula cerrada.

Se ha evaluado el precio de esta opción call europea usando las siguientes técnicas:

1. A partir de la formula analítica anteriormente expuesta.

2. Empleando un método Monte Carlo, siguiendo la metodología expuesta en la Sec-ción 4.1.

Las griegas se han calculado también de dos formas distintas para cada uno de loscasos anteriores:

1. Con la función grad de la librería Autograd.

2. Empleando un esquema de diferencias nitas centradas (DF) con bump = 10e-4.

Los inputs del modelo se recogen en la Tabla 7.1 y los resultados obtenidos en lasTablas 7.2 y 7.3.

Input Valor

Valor actual del subyacente 100.0Volatilidad del subyacente 0.2Tipo de interés 0.05Strike 100.0Tiempo hasta vencimiento 1.0Número de caminos de Monte Carlo 1,000,000

Tabla 7.1: Inputs para el cálculo de una opción call europea.

7.1. Consideraciones previas 83

Parámetro Valor Error absoluto

V 10.4506 -

Parámetro Valor (Autograd) Valor (DF) Error absoluto

∆ 0.6368 0.6368 1.11e-08ν 37.5240 37.5240 3.89e-08ρ 53.2325 53.2325 1.10e-08Θ -6.4140 -6.4140 4.57e-09

Tabla 7.2: Resultados para el cálculo de una opción call europea empleando la fórmulaanalítica.

Parámetro Valor Error absoluto

V 10.4507 -

Parámetro Valor (Autograd) Valor (DF) Error absoluto

∆ 0.6367 0.6367 5.71e-06ν 37.5241 37.5241 6.32e-05ρ 53.2324 53.2324 9.86e-05Θ -6.4140 -6.4140 2.89e-06

Tabla 7.3: Resultados para el cálculo de una opción call europea empleando el métodoMonte Carlo.

En la Tabla 7.2 se muestran los resultados obtenidos calculando el precio con la fórmulaanalítica y las griegas con Autograd (en este caso los valores de las sensibilidades sonexactos) y con el método de diferencias nitas. Se observa que en las sensibilidades existenunas pequeñas diferencias entre los valores debido a que los esquemas numéricos llevansiempre asociados errores de truncamiento.

En la Tabla 7.3 se muestran los resultados obtenidos calculando el precio con el métodoMonte Carlo y las griegas con Autograd y con el método de diferencias nitas. Como enel caso anterior, se vuelve a observar que en las sensibilidades existen unas pequeñasdiferencias de cálculo entre los valores obtenidos con ambos métodos teniendo en cuentaque en este caso además existe un error asociado al propio método de Monte Carlo (verSección 4.1 para más información).

La Tabla 7.4 recoge las diferencias obtenidas en el cálculo del precio con los dos métodos(analítico y Monte Carlo) y las sensibilidades calculadas con Autograd. Se puede observarque estos errores no son muy representativos. Por lo tanto se concluye que para estesencillo ejemplo la implementación del método Monte Carlo en la librería de valoracióndesarrollada es correcta.

84 Capítulo 7. Resultados

Parámetro Error absoluto

V 1.3318e-04

Parámetro Error absoluto

∆ 1.4285e-04ν 2.4786e-04ρ 9.1622e-05Θ 3.3948e-04

Tabla 7.4: Errores obtenidos en el cálculo del precio y las griegas de una opción calleuropea al emplear el método Monte Carlo.

Para evaluar las griegas empleando un esquema de diferencias nitas se ha empleadoun bump = 10e-4. Pero, ¾qué pasaría si se toma un valor diferente? Puesto que la derivadade una función es un límite cuando la distancia entre dos puntos tiende a cero, tendríalógica pensar que cuanto más pequeño sea el bump, mejor será el resultado obtenido paralas sensibilidades.

Para el producto denido al inicio de esta sección, se ha calculado el valor de la vega condiferentes valores de bump. Los resultados se representan grácamente en la Figura 7.1.

Figura 7.1: Valores obtenidos en el cálculo de la vega de una opción call europea con unesquema de diferencias nitas variando el valor del bump.

Se aprecia claramente en este ejemplo tan sencillo que la elección del valor del bumpes determinante para obtener el valor correcto de la griega en un ordenador: para valoresde bump muy pequeños, la sensibilidad explota. Esto pone de maniesto que siendo elcálculo numérico una herramienta muy poderosa, constituye un método aproximado ala resolución de un problema matemático. Por lo tanto, los resultados obtenidos estánsujetos a cierto tipo de errores.

7.2. Pruebas de rendimiento 85

7.2. Pruebas de rendimiento

Considérese una función unidimensional de m variables. Para calcular su gradiente pordiferencias nitas es necesario bumpear por separado cada variable y evaluar la funciónpara cada uno de esos estados bumpeados además de una evaluación con las variables sinbumpear. Esto signica que el ratio de tiempo de cálculo del valor de su función y sugradiente sobre el tiempo de cálculo de sólo el valor de la función será del orden de m+1.Supóngase entonces el caso de valorar un derivado sobre una cesta de m activos. Teniendoúnicamente en cuenta la sensibilidad a correlación se tendrán n = m(m−1)

2parámetros para

los que calcular su correspondiente sensibilidad, lo cual implica que el ratio de cálculode precio más derivadas sobre precio crece cuadráticamente con el número de activos.Tomando por ejemplo un derivado sobre una cesta de 10 activos subyacentes (un productode mercado usual) se tendría un ratio de cálculo aproximado de 45. Es decir, por cadasegundo que se tarde en calcular un precio, se necesitan 45 segundos más para calcular sussensibilidades a correlación. Si bien estos números pueden no parecer disuasorios para unproducto aisladamente, al considerar el cálculo de sensibilidades para carteras compuestaspor miles de instrumentos derivados se hace evidente la inviabilidad de esta metodología,especialmente cuando los cálculos se hacen en procesos batch que deben acabar en untiempo determinado y estar disponibles para la apertura del mercado al día siguiente.

Muchas veces la solución a este problema es renunciar al cálculo exhaustivo de todaslas sensibilidades, agrupando parámetros con la correspondiente pérdida de granularidady precisión.

La diferenciación algorítmica tiene por el contrario una propiedad tan sorprendentecomo atractiva: el ratio de cálculo de precio más derivadas sobre precio está acotada. Másconcretamente una regla conocida como el `Cheap Gradient Principle' (ver [21] para másinformación) nos dice que en el método backward dicho ratio de cálculo será aproximada-mente menor que 4. Se hace así evidente el potencial benecio de sustituir los esquemasclásicos en diferencias nitas ampliamente usados en la industria nanciera por técnicasde diferenciación algorítmica.

En esta sección se recopilan una serie de pruebas que tratan de analizar el rendimientode las técnicas de diferenciación algorítmica planteadas y estudiadas en este Trabajo deFin de Máster en comparación con las diferencias nitas. Se ha empezado analizandoun producto muy sencillo para a continuación valorar tres instrumento derivados máscomplicados con distintos modelos.

7.2.1. Opción call europea con varios subyacentes con el modelode Black-Scholes

El siguiente caso de estudio que se ha desarrollado para analizar la bondad de la meto-dología desarrollada consiste en la obtención del precio y de la sensibilidad a correlaciónde una opción basket best-of call europea cuyos subyacentes son varios activos correladosentre sí.

El precio del derivado se ha calculado empleando el modelo de Black-Scholes y losprecios de los subyacentes a vencimiento se han obtenido con un método Monte Carlo,ya que para este producto, no existe solución analítica. Las griegas se han calculado

86 Capítulo 7. Resultados

empleando la librería Autograd y se han comparado con las obtenidas mediante esquemasde diferencias nitas centradas.

El número de activos se ha ido variando para calcular la eciencia computacionalde ambos métodos. Es decir, se ha tratado de comparar la celeridad de ambos métodosevaluando el tiempo de computación en ambos casos.

Dada una cesta con n activos subyacentes, el número de sensibilidades a correlaciónes n(n−1)

2, de modo que el numero de deltas de correlación crece cuadráticamente con el

número de activos subyacentes de la cesta.

Los inputs del modelo se recogen en la Tabla 7.5.

Input Valor

Valor actual de cada subyacente 100.0Volatilidad de cada subyacente 0.2Tipo de interés 0.0Strike 100.0Tiempo hasta vencimiento 1.0Coeciente de correlación para

0.5todos los pares de activosNúmero de caminos de Monte Carlo 1,000,000

Tabla 7.5: Inputs para el cálculo de una opción basket best-of call europea.

Se ha evaluado como varía el tiempo de cálculo del precio de la cesta y de sus sen-sibilidades a correlación a medida que aumenta el número de activos subyacentes deinstrumento derivado analizando el siguiente ratio de cálculo:

η =TC(V +∆ρ)

TC(V )

Siendo:

TC: el tiempo de computación.

η: el ratio de cálculo.

En la Tabla 7.6 se recogen los resultados obtenidos al calcular el precio y la sensibilidada correlación de una opción basket best-of call europea con n activos subyacentes.

7.2. Pruebas de rendimiento 87

n η Autograd η FD TC(∆ρ) Autograd TC(∆ρ) FD TC(V)

2 3.6436 2.2525 0.3766 0.1784 0.14255 3.3842 14.8066 0.8401 4.8646 0.352310 3.6529 66.0671 2.1818 53.5120 0.822415 3.1419 147.0591 3.1432 214.3408 1.467520 3.0823 269.2396 4.5593 587.3306 2.189625 2.9517 459.2872 5.6850 1334.9516 2.912930 3.0700 699.5709 7.7889 2628.5048 3.762735 2.9030 977.4879 9.1331 4686.3909 4.7992

Tabla 7.6: Ratios de cálculo al variar el número de subyacentes para una opción basketbest-of call europea con un modelo de Black-Scholes.

Tal y como se puede apreciar a partir de los valores recogidos en las Tabla 7.6, el tiempode computación en el cálculo de las sensibilidades a correlación aumenta drásticamente amedida que aumenta el número de activos.

Teóricamente, empleando un esquema de diferencias nitas, el coste computacional decalcular el precio y las griegas se multiplica aproximadamente por el número de derivadasmás uno con respecto al coste computacional de calcular solo el precio. En cambio, em-pleando Autograd, este tiempo de computación crece más lentamente y η < 4 tal y comose desprende del `Cheap Gradient Principle'.

Figura 7.2: Comparativa entre el número de activos subyacentes y el ratio de cálculo conel modelo de Black-Scholes.

88 Capítulo 7. Resultados

Figura 7.3: Comparativa entre el número de activos subyacentes y el tiempo de cálculototal con el modelo de Black-Scholes.

En las Figuras 7.2 y 7.3 se puede observar mejor como se comporta este ratio de-nido anteriormente calculando las sensibilidades a correlación empleando las funcionesimplementadas en la librería Autograd. Se ve claramente que este ratio aumenta cuadrá-ticamente cuando se emplean esquemas de diferencias nitas a medida que la cesta secompone de más activos subyacentes.

A la vista de este resultado, se puede concluir que para calcular la sensibilidad acorrelación en cestas grandes, Autograd es mucho más eciente computacionalmente quelos esquemas de diferencias nitas, que son los que tradicionalmente se han empleado enla industria nanciera.

7.2.2. Opción call europea con varios subyacentes con un modeloCEV

Otro caso que se ha estudiado ha sido el cálculo del precio y de las deltas a correlacióndel mismo producto que en el planteado en la Sección 7.2.1, pero valorándolo ahora conel modelo CEV de volatilidad local y generando los precios de los activos a fecha devencimiento empleando el método Monte Carlo. Es decir, se ha considerado la mismaopción basket best-of call europea pero con un modelo de valoración computacionalmentemás complejo.

Las griegas se han vuelto a calcular empleando la librería Autograd y se han comparadocon los valores obtenidos mediante esquemas de diferencias nitas centradas.

Los inputs del modelo, que son los mismos que en el caso anterior, se recogen en laTabla 7.5.

7.2. Pruebas de rendimiento 89

Además, para emplear el modelo CEV de volatilidad local para obtener el precio dela cesta, hay que denir otros parámetros, los cuales se recogen el la Tabla 7.7.

Input Valor

γ 0.85Número de pasos por año 52

Tabla 7.7: Parámetros para el cálculo de una opción basket best-of call europea.

Se ha vuelto a evaluar la eciencia computacional de las metodologías propuestasvolviendo a analizar el ratio de computación denido en la Sección 7.2.1.

Los resultados obtenidos para este producto con el modelo CEV de volatilidad localse recogen en la Tabla 7.8.

n η Autograd η FD TC(∆ρ) Autograd TC(∆ρ) FD TC(V)

5 3.7438 11.5239 335.9651 1288.6010 122.4452

Tabla 7.8: Ratios de cálculo para una opción basket best-of call europea con un modeloCEV.

A partir de los valores recogidos en la Tabla 7.8, se observa que este modelo es máslento que el modelo de Black-Scholes, ya que emplea una malla compuesta por 52 nodostemporales para calcular cada valor del activo subyacente a vencimiento frente a un únicopaso en el modelo de Black-Scholes. De entre los dos métodos que se han empleado paracalcular las sensibilidades a correlación, Autograd vuelve a ser mucho más rápido.

Y, además, el ratio de cálculo η para el cálculo de las griegas con Autograd vuelve aser menor que 4 como en el caso anterior; cumpliendo así el `Cheap Gradient Principle'.También se cumple que este ratio de cálculo es proporcional al número de griegas másuno.

También se puede apreciar que en el tiempo de cálculo se reduce a la cuarta parteempleando técnicas de diferenciación algorítmica, lo que supone un ahorro considerableen tiempo de computación cuando se tienen que valorar muchos productos.

Por todo lo expuesto anteriormente, se puede concluir que estos resultados y las con-clusiones establecidas a partir del análisis de los mismos, están alineadas con los obtenidosen la Sección 7.2.1.

7.2.3. Precio y griegas de una opción call asiática con varios sub-yacentes

Tal y como se ha explicado en la Sección 2.2.1, una opción asiática es aquella para lacual el de la misma a fecha de vencimiento se determina como la media de las cotizacionesdel mismo durante un período de tiempo determinado (una descripción detallada de esteproducto se puede encontrar en [38]).

90 Capítulo 7. Resultados

Este es un modelo computacionalmente más complejo que el anterior puesto que paracalcular la función de payo hay que estimar una serie de valores del activo subyacente adeterminadas fechas para poder así denir correctamente la misma.

La función de payo de una opción basket call worst-of asiática con varios subyacentees:

V = max

[1

n

n∑j=1

maxi

(Sitj

)−K, 0

]Siendo:

tj: las fechas relevantes para calcular el precio de cada activo subyacente i.

Puesto que hay varias fechas relevantes en la valoración de este pricer, el modelo deBlack-Scholes no se puede emplear para valorar dicho producto. Por lo tanto, se ha usadoel modelo CEV de volatilidad local y un método Monte Carlo.

El objetivo es calcular todas las sensibilidades a correlación empleando las funcionescorrespondientes de la librería Autograd y luego comparando estos valores obtenidos conlos arrojados mediante el método de diferencias nitas.

Los inputs que alimentan al modelo se recogen en la Tabla 7.9.

Input Valor

Número de activos subyacentes 10Valor actual de cada subyacente 15.0Volatilidad de cada subyacente 0.2Tipo de interés 0.0Strike 15.0Tiempo hasta vencimiento 1.0Fechas importantes en la valoración 11Coeciente de correlación para

0.65todos los pares de activosNúmero de caminos de Monte Carlo 1,000,000Número de pasos por año 52

Tabla 7.9: Inputs para el cálculo de una opción basket call worst-of asiática con el modeloCEV.

El parámetro del modelo CEV de volatilidad local son los que aparecen en la Ta-bla 7.10.

Input Valor

γ 0.96

Tabla 7.10: Parámetro del modelo CEV para la valoración de una basket call worst-ofasiática.

7.3. Pruebas de inputs con restricciones 91

Como en el caso anterior, se ha analizado la eciencia computacional de ambas meto-dologías calculando y comparando el ratio de cálculo η denido en secciones anteriores.Los resultados obtenidos se recogen en la Tabla 7.11.

n η Autograd η FD TC(∆ρ) Autograd TC(∆ρ) FD TC(V)

5 3.6729 11.8113 397.8668 1609.2847 148.8521

Tabla 7.11: Ratios de cálculo para una opción basket call worst-of asiática con un modeloCEV.

A partir de los datos recogidos en la Tabla 7.11, se aprecia que el cálculo de las griegasempleando esquemas de diferencias nitas vuelve a ser más lento que a partir de lasfunciones implementadas en la librería Autograd.

Otra vez vuelve a cumplirse el `Cheap Gradient Principle' para el cálculo de las sen-sibilidades con Autograd puesto que η < 4.

También se cumple que este ratio de cálculo η es proporcional al número de griegasmás uno.

Por todo lo anterior se concluye que estos resultados están alineados con los obtenidosen las Secciones 7.2.1 y 7.2.2.

7.3. Pruebas de inputs con restricciones

A menudo los parámetros o inputs usados en la valoración de un derivado nancierono son libres, sino que deben respetar ciertas restricciones. Es evidente por ejemplo que lavolatilidad en el modelo de Black-Scholes debe ser positiva al corresponder a la desviacióntípica de una cierta variable aleatoria. Del mismo modo la matriz de correlación usadaen un método Monte Carlo (veáse 4.1) debe ser semidenida positiva. Esta restricciónno es sólo de carácter teórico (una matriz de correlación debe ser semidenida positivapor denición), sino que el propio algoritmo de simulación fallará al intentar realizar lafactorización de Cholesky si no se respeta. El problema es que actualmente en la industriananciera, las correlaciones suelen inferirse de mercado para cada par activos por separado,por lo que no está asegurado que al juntar estos activos en una basket su matriz decorrelación asociada resulte una matriz semidenida positiva. Lo que se suele hacer eneste caso es aplicar una corrección sobre esta matriz para obtener una lo más `parecida'posible cumpliendo que sea denida positiva. Para el algoritmo nearest correlation, muyextendido en la industria nanciera, `parecido' signica la distancia mínima medida enuna norma matricial. Esto implica que es posible trabajar con una matriz denida positivapero cerca de la frontera del conjunto de las matrices semidenidas positivas (las matricespermitidas). Entonces, ¾qué ocurre cuando se calculan las sensibilidades a correlaciónpor diferencias nitas bumpeando para ello los parámetros de esta matriz? Según en quédirección se haga el bump, podría ocurrir que la matriz resultante no fuese semidenidapositiva. Por lo que para calcular el precio se tendría que volver a corregir la matriz,contaminando potencialmente el valor de la derivada correspondiente.

92 Capítulo 7. Resultados

En esta sección se verá cómo la diferenciación algorítmica puede ayudar a abordar estepreciso problema.

Considérese el siguiente ejemplo. Dado un modelo de mercado formado por una cuentacorriente y tres activos de equity A1, A2, A3; se suponen los siguientes valores del correla-ción entre los movimientos Brownianos asociados a cada activo:

ρ12 = 0.745

ρ13 = 0.750

ρ23 = 0.125

Por lo tanto, la matriz de correlación de los tres de activos es:

Ω =

1.000 0.745 0.7500.745 1.000 0.1250.750 0.125 1.000

Esta es una matriz denida positiva ya que sus autovalores cumplen la condición

λi > 0, i = 1, 2, 3:Si se quiere calcular la sensibilidad a correlación de un cesta cuyo precio es V usando,

por ejemplo, el método de diferencias nitas habría que bumpear la matriz Ω un ciertovalor.

Si se toma, por ejemplo, un valor de bumpeo dado por ϵ = 10e−02 y se quiere calcular lasensibilidad a correlación de los activos A1 y A2, habría que evaluar la siguiente expresión:

∆ρ12 =∂V

∂ρ12≈ V (Ωϵ

12, x)− V (Ω, x)

ϵ

Siendo:

Ωϵ12 =

1.000 0.745 + ϵ 0.7500.745 + ϵ 1.000 0.1250.750 0.125 1.000

=

1.000 0.755 0.7500.755 1.000 0.1250.750 0.125 1.000

Esta matriz Ωϵ

12 es denida negativa ya que su determinante es negativo.Por lo tanto, para poder calcular el valor del precio con la matriz bumpeada, es decir

V (Ωϵ12, x), habría que emplear el algoritmo nearest correlation a la matriz Ωϵ

12

Este algoritmo arroja como resultado la siguiente matriz semidenida positiva:

ΩNC12 =

1.000 0.752941 0.7479590.752941 1.000 0.1263660.747959 0.126366 1.000

Se puede apreciar que esta matriz Ω12

NC está formada por unos nuevos coecientes decorrelación para los tres pares de activos. Es decir, los valores originales de los coecientesde correlación entre los pares de activos han sido modicados.

Eso implica que al calcular la delta de correlación se está cometiendo dos errores:

1. Los inputs del problema, es decir, ciertos pares de correlación entre activos subya-centes, se han modicado.

7.3. Pruebas de inputs con restricciones 93

2. No se está efectuando el bumpeo de un sólo coeciente de correlación, lo que conta-mina el valor de la derivada correspondiente.

En la Figura 7.4 se ha representado el problema grácamente.

Figura 7.4: Aplicación del algoritmo nearest correlation tras el bumpeo de una matriz quese sale fuera del espacio de las matrices semidenidas positivas.

Dada una matriz Ω que pertenece al conjunto de matrices denidas positivas W ,al bumpear dicha matriz según un vector ϵ, dicha matriz se sale fuera del conjunto Wy se obtiene la nueva matriz bumpeada Ωϵ. Por lo tanto, se aplica el algoritmo nearestcorrelation y se obtiene una nueva matriz de correlación semidenida positiva Ωϵ∗ denidapor el vector ϵ∗. Esta nueva matriz de correlación cumple que otros pares de correlacioneshan sido modicados ya que los vectores ϵ y ϵ∗ no son paralelos.

Por lo tanto, el valor que se obtendrían al emplear un esquema de diferencias nitasno sería el valor de la griega de correlación asociada a ese par de subyacentes, ya que seestarían bumpeando otros factores de riesgo que no se tendrían que mover en este cálculo.

Empleando la librería Autograd se evitaría este problema puesto que las sensibilidadesa correlación se obtienen derivando el algoritmo empleando la regla de la cadena sinnecesidad de bumpear ningún factor de riesgo. Para explicar más claramente esto se haimplementado el siguiente ejemplo.

Supongamos que se quiere calcular, empleando para ello el modelo de Black-Scholes(para realizar esta prueba el modelo de valoración no es relevante), la sensibilidad a unaopción basket best-of call europea cuyos inputs son los recogidos en la Tabla 7.12. Estassensibilidades se calcularán con Autograd y mediante un esquema de diferencias nitascentradas.

94 Capítulo 7. Resultados

Input Valor

Precio spot del activo 1 3.34Precio spot del activo 2 3.56Precio spot del activo 3 2.87Volatilidad de cada subyacente 0.28Tipo de interés 0.0Strike 3.0Tiempo hasta vencimiento 1.0ρ12 0.745ρ13 0.750ρ23 0.125Número de caminos de Monte Carlo 1,000,000Bump 10e-02

Tabla 7.12: Inputs para el cálculo de una opción basket best-of call europea.

Los resultados obtenidos tras valorar este producto con la librería desarrollada serecogen el la Tabla 7.13.

Parámetro Valor Error absoluto

V 0.8889 -

Parámetro Valor (Autograd) Valor (DF) Error absoluto

∆ρ12 -0.3813 -0.3385 4.25e-02∆ρ13 -0.2197 -0.1743 4.41e-02∆ρ23 0.0026 0.0024 7.38e-05

Tabla 7.13: Resultados para el cálculo de una opción basket best-of call europea empleandoAutograd y esquemas de diferencias nitas centradas con bump = 10e-02.

Como se ha explicado antes, las griegas calculadas empleando un esquema de diferen-cias nitas son erróneas porque la matriz de correlación bumpeada en cada dirección haceque varíen los coecientes de correlación asociados a los otros pares de activos. En estecaso particular, la sensibilidad a correlación se está infravalorando empleando las técnicasnuméricas.

Empleando un ahora un bump = 10e-04, los resultados son los que aparecen en laTabla 7.14.

7.3. Pruebas de inputs con restricciones 95

Parámetro Valor Error absoluto

V 0.8889 -

Parámetro Valor (Autograd) Valor (DF) Error absoluto

∆ρ12 -0.3813 -0.3813 1.85e-05∆ρ13 -0.2197 -0.2197 7.55e-06∆ρ23 0.0026 0.0026 1.36e-05

Tabla 7.14: Resultados para el cálculo de una opción basket best-of call europea empleandoAutograd y esquemas de diferencias nitas centradas con bump = 10e-04.

Como se puede apreciar, ahora los valores de las griegas obtenidas con ambos métodosestán alineados. Esto es así porque al bumpear la matriz en cada dirección, la matrizresultante vuelve a ser semidenida positiva y por lo tanto no hay que corregirla empleandoel algoritmo nearest correlation.

Pero, frente a un problema genérico en el que la matriz de correlación dada y la matrizde correlación bumpeada son ambas es denidas positivas, es muy difícil saber cuál es elbump adecuado para calcular las griegas de correlación evitando que los resultados noestén afectados por otros pares de correlación. Empleando las técnicas de diferenciaciónalgorítmica se evita este problema ya que no es necesario bumpear ninguna matriz.

La Figura 7.5 muestra como varía el precio de una cesta de activos correlados frentea la variación del coeciente de correlación asociado a un par de ellos, a medida que lamatriz de correlación se va acercando a la frontera del conjunto de matrices semidenidaspositivas.

En la parte derecha del gráco se aprecia que los resultados empleando ambas técnicasde derivación están alineados. A medida que la matriz de correlación se va acercando ala frontera del espacio denido por el conjunto de matrices semidenidas positivas segúnuna dirección, la derivada se va haciendo cada vez más grande.

Y, en el caso de que se emplee un método de diferencias nitas, la matriz bumpeadase saldrá fuera del conjunto de matrices semidenidas positivas cuando esté próxima ala frontera, por lo que esta matriz se corregirá con el algoritmo nearest correlation y elresultado de las sensibilidades a correlación será erróneo, tal y como se muestra en laparte izquierda de la representación inferior de la Figura 7.5.

Empleando técnicas de diferenciación algorítmica, los valores obtenidos para las griegasse obtendrán en un ordenador con precisión de máquina.

Se ve claramente como esta sensibilidad, calculada con Autograd, explota cuanto lamatriz de correlación esa muy próxima a la frontera. Esto es debido a que aplicar lafactorización de Cholesky a una matriz tiene la misma naturaleza que hacer una raízcuadrada a los autovalores de dicha matriz. Y la derivada de la raíz cuadrada de unavariable tiende a innito a medida que la variable tiende a cero.

Al emplear esquemas de diferencias nitas, esta derivada explota antes puesto que elbump elegido hace que la matriz de correlación bumpeada se aproxime antes a la fronteraque la matriz original. Y, como una vez que esta matriz bumpeada abandona el espaciodenido por las matrices denidas positivas se corrige empleando el algoritmo nearest

96 Capítulo 7. Resultados

Figura 7.5: Sensibilidad a la correlación de un par de activos al aproximarse la matriz decorrelación de los activos subyacentes a la frontera del espacio denido por el conjunto dematrices semidenidas positivas W .

correlation para que sea semidenida positiva, se explica así porque las sensibilidades enel entorno de la frontera ya no explotan, aunque los valores obtenidos sean erróneos.

La Figura 7.6 muestra como varía el precio de la opción basket a medida que lamatriz de correlación se va acercando a la frontera del espacio denido por el conjuntode matrices semidenidas positivas. Nótese cómo la variación de este precio, es decir, lagriega de correlación, efectivamente tiende a innito al acercarse a la frontera.

Pero, empleando técnicas de diferenciación algorítmica, se puede evitar que se obtenganunas sensibilidades erróneas ya que las matrices de correlación siempre son denidaspositivas o semidenidas positivas.

Un resumen de lo siguiente puede ejemplicarse de la siguiente manera. Calcular ladescomposición de Cholesky de la matriz A puede interpretarse como:

A ∼√A√A

7.4. Estabilidad y precisión 97

Figura 7.6: Valor de una opción basket al aproximarse la matriz de correlación de los acti-vos subyacentes a la frontera del espacio denido por el conjunto de matrices semidenidaspositivasW .

Además:

d(√x)

dx=

1

2√x

lımx→0+

=1

2√x= +∞

Esto es lo que permite explicar que cuando la matriz esté muy próxima a la fronteradel espacio generado por las matrices denidas positivas, la derivada explote.

7.4. Estabilidad y precisión

Implementar un esquema de diferencias nitas para el cálculo de derivadas obliga aenfrentarse inmediatamente a una importante elección: el valor del bump. Es evidente

98 Capítulo 7. Resultados

que un bump demasiado grande los errores cometidos al calcular sensibilidades seránimportantes, y por otro lado, tal y como evidencia la Figura 7.1, la aritmética nita de lamáquina hace que un bump demasiado pequeño introduzca inestabilidad e imprecisión. Laelección de un valor adecuado de entre las innitas posibilidades es un problema complejoy a menudo exige un conocimiento detallado del problema entre manos (véase por ejemplola sección 7.1.2 de [18]). Además elegir un valor de bumpeo ad hoc para cada producto, quepor otro lado podría ser necesario ajustar con las condiciones de mercado, es un procesocostoso tanto en desarrollo como en mantenimiento, y potencialmente podría aumentar eltiempo de computación. Es interesante recordar que una de los atractivos de los esquemasde diferencias nitas es que permiten hacer una implementación global y ahorra hacer untrabajo especíco para cada producto derivado nanciero.

En esta sección se verá cómo la diferenciación algorítmica evita el problema de laelección del valor del bump, ofreciendo la posibilidad de calcular la derivada con precisiónde máquina. Este problema se evidencia sobre todo en las derivadas de segundo orden,donde como se verá una mala elección del bump puede llevar a desviaciones signicativas.

7.4.1. Delta de una opción call digital cash-or-nothing europea

Tal y como se detalló en la Sección 6.3.1, la función de payo de una opción calldigital cash-or-nothing es la siguiente:

V = BH(S −K)

siendo:

H: la función de Heaviside.

S: el precio del activo a fecha de vencimiento del producto.

K: el valor del strike.

B: un cupón jo denido por contrato.

Grácamente, la función de payo se muestra en la Figura 7.7.Esta función de payo es derivable en todo su dominio excepto en el strike, ya que en

este punto la función no es continua. Sin embargo, el precio de la opción sí es derivableya que empleando el modelo de Black-Scholes se puede obtener una expresión analíticadel precio de este instrumento derivado. Y por consiguiente, el valor de las sensibilidadestambién se puede calcular analíticamente.

El precio de una opción call digital cash-or nothing europea es igual a:

V (t) = Be−rτΦ(d2)

con:

d2 =

ln

(S

K

)+

(r − σ2

2

σ√τ

7.4. Estabilidad y precisión 99

Figura 7.7: Función de payo de una opción call digital cash-or-nothing europea.

siendo:

r: el tipo de interés.

τ : el tiempo hasta vencimiento.

σ: la volatilidad.

Si se intentan calcular, con las funciones implementadas en la librería Autograd, lasgriegas de este producto para unos inputs determinados con un modelo de Black-Scholes yempleando un método Monte Carlo para generar los precios de los activos a vencimiento,aparece el siguiente error en el ordenador:

warnings.warn(Output seems independent of input.)

Además, Autograd arroja un valor de las sensibilidades igual a cero.Esto está motivado porque, tal y como se explicó antes, la derivada de la función de

Heaviside está denida en el sentido de las distribuciones y no se puede implementar enla librería Autograd la función delta de Dirac, lo que hace que no se puedan efectuarcorrectamente los productos vector-matriz jacobiana (VJP).

Las técnicas de diferenciación algorítmica derivan, tal y como se ha explicado en laSección 5.2, el algoritmo de construcción de la función y no la propia función en sí.

Como se ha explicado en la Sección 5.1, en el caso de que la función de payo nosea derivable en todo su dominio no se podrá intercambiar la esperanza matemática y laderivada, lo que hace que aparezca este error al intentar calcular las sensibilidades de esteproducto derivado nanciero. Numéricamente:

V (t, x) ≈ 1

nMC

nMC∑i=1

BHi(t, x)

Si se desea calcular la derivada:

100 Capítulo 7. Resultados

∂V (t, x)

∂x≈ 1

nMC

nMC∑i=1

∂x(BHi(t, x))

Y en un ordenador la siguiente operación no se puede realizar:

∂Hi(t, x)

∂x

ya que la derivada de la función de Heaviside está denida en el sentido de las distribucio-nes. Por lo tanto, Autograd interpreta que el resultado de esta operación es cero porqueen el barrido hacia atrás del grafo de cálculo no se pueden calcular correctamente losproductos vector-matriz jacobiana. Por lo tanto la herramienta interpreta que el outputes independiente de los inputs.

Para resolver este problema, se ha denido una función de suavizado compuesta pordos splines de clase C2 denidos en un intervalo [K − ϵ,K + ϵ] siendo ϵ un parámetrodenido por el usuario (ver Sección 6.3.1). Para este caso particular, la función de payose muestra en la Figura 7.8.

Figura 7.8: Función de payo suavizada de una opción call digital cash-or-nothing euro-pea.

Ahora el problema sí se puede resolver empleando la librería Autograd puesto que lafunción de payo es derivable en todo el dominio en el que está denida.

Para valorar una opción opción call digital cash-or-nothing europea con el modelo deBlack-Scholes, alimentado por los inputs recogidos en la Tabla 7.15 y un payo suavizadocon splines, se obtienen los resultados que se recogen en la Tabla 7.16.

7.4. Estabilidad y precisión 101

Input Valor

Valor actual del subyacente 7.13Volatilidad 0.26Tipo de interés 0.0Strike 7.44Tiempo hasta vencimiento 0.53Cupón jo 100.0Número de caminos de Monte Carlo 100,000ϵ 10e-01

Tabla 7.15: Inputs para el cálculo de una opción call digital cash-or-nothing europea conel payo suavizado.

Parámetro Fórmula analítica Método Monte Carlo

V 37.4678 37.4592

Parámetro Fórmula analítica Método Monte Carlo

∆ 28.0895 28.0914ν 18.9845 18.9302ρ 37.4678 37.4695Θ 4.6566 4.6433

Tabla 7.16: Resultados para el cálculo de una opción call digital cash-or-nothing europeacon el payo suavizado con el modelo de Black-Scholes.

También se ha calculado el error de Monte Carlo para comprobar si los resultados obte-nidos empleando las técnicas numéricas son aceptables. En este casoMCerror = 3.16e−03.

Se puede considerar que los resultados obtenidos son aceptables ya que los valoresobtenidos analíticamente cumplen lo siguiente:

ωanalitico ∈ [ωMC −MCerror, ωMC +MCerror]

siendo:

ω: el precio y/o las sensibilidades.

La contrapartida de esto es tener que denir el intervalo de suavizado (y, en general,también el método de suavizado), que para productos más complejos no tendría por quéser algo trivial.

Sin embargo, es importante notar que los payos de los derivados nancieros suelensuavizarse por motivos de gestión de riesgo, por lo que en la práctica no habría problemaen el uso de Autograd.

102 Capítulo 7. Resultados

7.4.2. Gamma de una opción call europea

Tal y como se ha descrito en la Sección 3.5, la gamma de un producto derivado nan-ciero es:

Γ =∂2V

∂S2=

∂∆

∂S

siendo:

V : el precio del producto.

S: el precio spot del subyacente.

∆: la delta del producto

Dada una opción call europea, se puede demostrar que:

Γ =ϕ(d1)

Sσ√τ

∆ = Φ(d1)

La función de payo de una opción call europea es la que se muestra en la Figura 7.9.

Figura 7.9: Función de payo de una opción call europea.

Esta función de payo es derivable en todo su dominio excepto en el strike ya que eneste punto las derivadas laterales existen pero adoptan valores distintos.

Estableciendo una analogía con el problema estudiado en la Sección 7.4.1, se puedecomprobar fácilmente que la derivada de la función de payo de una opción call europeaes la derivada de la función de payo de una opción call digital cash-or-nothing europea.

Por lo tanto, para calcular la gamma de una opción call europea, bastaría con calcularla delta de una opción cash-or-nothing europea. Pero, como se ha visto en la Sección 7.4.1,este no es un problema trivial a resolver en un ordenador empleando métodos Monte Carlo.

7.4. Estabilidad y precisión 103

Para resolver el problema de calcular la gamma de este producto, se han planteadolas dos siguientes metodologías:

1. Emplear un esquema de diferencias nitas centradas de segundo orden.

2. Emplear primero técnicas de diferenciación algorítmica y luego un esquema de di-ferencias nitas centradas de primer orden.

Este producto se ha valorado con el modelo de Black-Scholes y se han empleado losinputs recogidos en la Tabla 7.17:

Input Valor

Valor actual del subyacente 0.2Volatilidad del subyacente 0.4Tipo de interés 0.0Strike 0.2Tiempo hasta vencimiento 1.0Número de caminos de Monte Carlo 1,000,000

Tabla 7.17: Inputs para el cálculo de la gamma de una opción call europea con el modelode Black-Scholes.

Para este caso particular, la gamma calculada con la fórmula analítica es:

Γ = 4.8880

∆ = 0.5792

Se han realizado simulaciones variando el valor del bump empleado en los esquemasde diferencias nitas centradas. Los resultados obtenidos se recogen en las Tablas 7.18y 7.19.

bump Γ 2o orden FD Error absoluto Error relativo (%)

10e-01 4.9162 0.0282 0.576910e-02 4.9796 0.0916 1.874810e-03 5.1461 0.2581 5.280410e-04 5.8063 0.9183 18.787710e-05 7.9069 3.0188 61.7606

Tabla 7.18: Resultados obtenidos para el cálculo de la gamma de una opción call europeacon un esquema de diferencias nitas centradas de segundo orden.

104 Capítulo 7. Resultados

bump Γ Autograd + 1o orden FD Error absoluto Error relativo (%)

10e-01 4.9024 0.0144 0.294510e-02 4.9475 0.0595 1.217310e-03 5.1251 0.2371 4.850710e-04 5.5750 0.6870 14.054810e-05 7.4999 2.6119 53.4349

Tabla 7.19: Resultados obtenidos para el cálculo de la gamma de una opción call europeacon Autograd y un esquema de diferencias nitas centradas de primer orden.

Lo primero que salta a la vista al comparar los resultados es que para valores muypequeños del bump, los valores de esta griega son incorrectos puesto que los errores soninadmisibles. Además, no se puede saber a priori cual de los métodos funciona mejor yaque en los dos casos los resultados están alineados: a medida que disminuye el valor delbump, aumenta el valor de la griega.

Este es uno de los productos más sencillos al que se le puede calcular la gamma. Poreso en este punto se intentará responder a la pregunta de qué está pasando para queaparezcan estas inestabilidades en un cálculo aparentemente tan sencillo.

Para ello, empleando un conjunto de 50 semillas distintas para cada uno de los bumps,se ha calculado 50 veces cada uno de los valores de la delta y de la gamma y luego se hahecho el promedio de estos valores para calcular cada griega. Para intentar arrojar algo deluz al asunto, se han analizado el sesgo y la desviación típica de los resultados obtenidos.

Lo resultados para la gamma son los que se muestran en las Figuras 7.10 y 7.11.

Figura 7.10: Sesgo de la gamma.

7.4. Estabilidad y precisión 105

Figura 7.11: Desviación típica de la gamma.

Se aprecia que el sesgo y la desviación típica de la gamma calculada empleando losdos métodos propuestos no permiten establecer conclusiones puesto que, en ambos casos,estos valores crecen a medida que disminuye el valor del bump.

Para la delta, los resultados son los recogidos en las Figuras 7.12 y 7.13.

Figura 7.12: Sesgo de la delta.

106 Capítulo 7. Resultados

Figura 7.13: Desviación típica de la delta.

Puesto que el cálculo de la delta con Autograd no lleva asociados errores numéricos,el sesgo y la desviación típica se mantienen constantes para cada valor del bump.

Para la delta calculada con diferencias nitas, se aprecia claramente como al disminuirel valor del bump, el sesgo y la desviación típica de los cálculos recurrentes se aproximanal valor teórico obtenido empleando técnicas de diferenciación algorítmica.

A la vista de estos resultados, no se puede concluir que un método sea mejor que otroya que no hay ningún parámetro que indique lo contrario.

Por lo tanto, para intentar resolver el problema de calcular la gamma de una opción calleuropea, se ha optado por una tercera vía: emplear Autograd para calcular la sensibilidadde segundo orden tomando para ello una función de payo suavizada. El suavizado se haplanteado empleando un spline de clase C2 denido en un intervalo [K − ϵ,K + ϵ] siendoϵ un parámetro denido por el usuario. En este caso, la función de payo suavizada semuestra en la Figura 7.14.

Tomando ϵ = 10e− 01, los resultados obtenidos se muestran en la Tabla 7.20:

Γ analítica Γ con Autograd Error absoluto Error relativo (%)

4.8880 4.8881 0.0001 0.0020

Tabla 7.20: Resultados para el cálculo de la gamma de una opción call europea con elpayo suavizado empleando Autograd.

A la vista de los resultados obtenidos se puede concluir que el suavizado es la mejoropción para calcular la gamma de esta opción call europea. Aunque esto evita elegir unvalor del bump a emplear en los esquemas de diferencias nitas, exige denir un intervalode suavizado, lo que no implica una mejora sustancial.

7.4. Estabilidad y precisión 107

Figura 7.14: Función de payo suavizada de una opción call europea.

De todos modos, tal y como se ha explicado a lo largo del presente Trabajo de Fin deMáster, en las entidades nanciera las funciones de payo suelen suavizarse por criteriosrelacionados con la gestión de riesgos, por lo que empleando Autograd para calcular lagamma evitaría tomar la decisión de elegir un valor para el bump.

7.4.3. Precio y griegas de un autocall y de un dispersion trade

Para poner de maniesto lo transcendental que es elegir un valor adecuado del bumpen los esquemas de diferencias nitas, se ha estudiado cual es la relevancia de este modelinput en la valoración de dos instrumentos complejos: un autocall y un dispersion trade.

Se han elegido estos instrumentos porque se consideran representativos de la comple-jidad de productos que se manejan en Banco Santander día a día y tienen una curvaturamás interesante que las opciones vanilla.

Tal y como se ha explicado en la Sección 6.3.1, un autocall es un producto estructuradovinculado a uno o varios activos subyacentes que puede vencer automáticamente (`kickout' ) antes de su fecha de vencimiento programada si se han cumplido ciertas condicionesde mercado predeterminadas con respecto al activo o activos subyacentes.

El objetivo es calcular la delta y la gamma de un autocall con dos activos subyacentes.Para ello se ha empleado un modelo de volatilidad local (mixtura de lognormales) y se hananalizado las bondades de la librería Autograd en el cálculo de las sensibilidades frente alcálculo clásico con esquemas de diferencias nitas centradas. La función de payo se hasuavizado para evitar problemas al emplear el método backward de derivación algorítmicaal calcular las griegas.

Los inputs de este modelo se recogen en la Tabla 7.21.

108 Capítulo 7. Resultados

Input Valor

Número de activos subyacentes 2Valor actual de cada subyacente 15.0Tipo de interés 0.0Strike 12.75Barrera 9.5Tiempo hasta vencimiento 4.0Cupón jo 100.0Coeciente de correlación 0.80Número de caminos de Monte Carlo 1,000,000Número de pasos por año 12ϵ 0.1

Tabla 7.21: Inputs para el cálculo de un autocall.

Los parámetros del modelo de mixtura de lognormales son los que se muestran en laTabla 7.22.

Input Valor

Pesos del subyacente 1 (0.2, 0.3, 0.5)Volatilidades del subyacente 1 (0.5, 0.1, 0.2)Pesos del subyacente 2 (0.5, 0.3, 0.2)Volatilidades del subyacente 2 (0.1, 0.2, 0.4)

Tabla 7.22: Parámetros del modelo de mixtura de lognormales para valorar un autocall.

Los resultados obtenidos se recopilan en la Tablas 7.23 y 7.24.

Bump ∆1 ∆2 Γ1 Γ2

10e-02 0.0644 0.0413 -0.0434 -0.081510e-03 0.0561 0.0385 3.5581 -2.944310e-04 0.0991 0.0363 83.6661 -90.015810e-05 0.1806 0.1204 32.4007 -2.055510e-06 0.1805 0.1197 34.7781 -1.757310e-07 0.1805 0.1197 34.7775 -1.757410e-08 0.1805 0.1197 34.7574 -1.7566

Tabla 7.23: Resultados obtenidos para el cálculo de la delta y de la gamma de un autocallcon esquemas de diferencias nitas centradas.

7.4. Estabilidad y precisión 109

∆1 ∆2 Γ1 Γ2

0.1805 0.1197 34.7781 -1.7572

Tabla 7.24: Resultados obtenidos para el cálculo de la delta y de la gamma de un autocallcon Autograd.

Sabiendo que no existe una fórmula cerrada para valorar este producto derivado nan-ciero, se puede concluir que los esquemas de diferencias nitas no son un buen métodopara obtener las sensibilidades de este producto ya que los valores obtenidos dependen delbump elegido y hacen el cálculo de las griegas muy inestable, especialmente en el cálculode la gamma. Esto hace que el riesgo de modelo sea inadmisible. Si se emplea Autogradse elimina totalmente este riesgo de modelo al eliminar la incertidumbre asociada a laelección del bump.

Es cierto que a partir de los datos recogidos en las Tablas 7.23 (y comparando con elresultado de Autograd), se podría concluir que el mejor bump para calcular este productoes 10e-06. No obstante consideremos otro ejemplo

Un dispersion trade consiste en tomar una posición en una cesta y la opuesta en losactivos subyacentes que la componen.

Se ha procedido de modo análogo al caso del autocall. Es decir, se han calculado ladelta y la gamma para un dispersion trade asociado a una basket equally-weighted callcompuesta por dos activos subyacentes.

Este producto se ha valorado con un modelo de volatilidad de mixtura de lognormalesy se han comparado los valores obtenidos en las griegas empleando Autograd y con unesquema de diferencias nitas centradas. La función de payo se ha suavizado para evitarproblemas al emplear el método backward de derivación algorítmica.

Los inputs de este modelo se recogen en la Tabla 7.25.

Input Valor

Número de activos subyacentes 2Valor actual de cada subyacente 100.0Tipo de interés 0.0Strike 100.0Tiempo hasta vencimiento 1.2Coeciente de correlación 0.80Número de caminos de Monte Carlo 100,000Número de pasos por año 12ϵ 0.1

Tabla 7.25: Inputs para el cálculo de un dispersion trade.

Los parámetros del modelo de mixtura de lognormales son los que se muestran en laTabla 7.26.

110 Capítulo 7. Resultados

Input Valor

Pesos del subyacente 1 (0.2, 0.3, 0.5)Volatilidades del subyacente 1 (0.5, 0.1, 0.4)Pesos del subyacente 2 (0.5, 0.3, 0.2)Volatilidades del subyacente 2 (0.4, 0.2, 0.4)

Tabla 7.26: Parámetros del modelo de mixtura de lognormales para valorar un dispersiontrade.

Los resultados obtenidos se muestran en la Tablas 7.27 y 7.28.

Bump ∆1 ∆2 Γ1 Γ2

10e-02 0.001602 0.002013 0.004635 0.00464810e-03 0.001781 0.002181 0.004584 0.00455210e-04 0.001781 0.002183 0.004505 0.00457310e-05 0.001782 0.002183 0.004498 0.00456510e-06 0.001782 0.002183 0.004497 0.00456410e-07 0.001782 0.002183 0.004497 0.00456110e-08 0.001782 0.002183 0.004496 0.004552

Tabla 7.27: Resultados obtenidos para el cálculo de la delta y de la gamma de un dispersiontrade con esquemas de diferencias nitas centradas.

∆1 ∆2 Γ1 Γ2

0.001782 0.002183 0.004497 0.004561

Tabla 7.28: Resultados obtenidos para el cálculo de la delta y de la gamma de un dispersiontrade con Autograd.

A partir de los datos recogidos en las Tabla 7.27, se puede concluir que el mejorbump para calcular este producto es 10e-07. Aunque los valores sean muy parecidos, esimportante remarcar en este punto que se están considerando casos con nominal igual a1.

Para el autocall, tal como se ha visto anteriormente, el mejor bump para estimar lassensibilidades es 10e-06. Esto pone de maniesto que los esquemas de diferencias nitas noson un buen método para obtener las sensibilidades de ciertos productos ya que los valoresobtenidos dependen del bump elegido y hacen el cálculo de las griegas muy inestable.Además, no es una buena idea elegir un valor de bumpeo ad hoc para cada producto pordiversos motivos: ajuste del mismo con las condiciones de mercado, coste de desarrollo ymantenimiento, y aumento potencial del coste computacional principalmente.

7.4. Estabilidad y precisión 111

Por lo tanto, puesto que en las entidades nancieras las funciones de payo se suavizanpara limitar la exposición al riesgo, emplear técnicas de diferenciación algorítmica eliminael riesgo de modelo asociado a la elección de un bump para su empleo en esquemas dediferencias nitas.

112 Capítulo 7. Resultados

Capítulo 8

Conclusiones y futuras líneas de trabajo

El objetivo de este Trabajo de Fin de Máster era analizar la idoneidad del empleo delas técnicas de diferenciación algorítmica para el cálculo de sensibilidades de productosderivados nancieros mediante métodos Monte Carlo.

Las conclusiones generales tras haber realizado el presente Trabajo de Fin de Másterson las siguientes:

Se han aprendido los principios y fundamentos de la diferenciación algorítmica, yparticularmente del método backward.

Se han extraído una serie de lecciones sobre los requisitos del lenguaje de progra-mación empleado para aplicar las técnicas de diferenciación algorítmica. También sehan analizado las ventajas e inconvenientes de las diferentes modalidades: a mano,automática, sobrecarga de operadores, etc. Estas lecciones suponen un punto departida adelantado para el departamento de Validación Interna de Banco Santandera la hora de implementar las técnicas de diferenciación algorítmica en los procesosdiarios.

Se ha evidenciado que Autograd es una herramienta que se ajusta a la perfección alas necesidades e infraestructura del departamento de Validación Interna de BancoSantander. Además se han identicado las limitaciones de esta librería que puedanser relevantes para integrar esta herramienta con un código existente.

Se ha desarrollado un motor de Monte Carlo para valorar derivados de equity com-patible con Autograd. Este motor no sólo ha servido para adquirir un conocimientoprofundo de la herramienta Autograd y de las técnicas de diferenciación algorítmicaautomática, sino que además es sucientemente exible como para ser utilizado enlas labores de validación de modelos del departamento.

En particular, este motor de valoración cubrirá una importante limitación de laslibrerías actuales del departamento de Validación Interna de Banco Santander: elcálculo eciente de las sensibilidades a correlación de derivados de cestas de equity.

Durante la elaboración del presente Trabajo de Fin de Máster también se han extraídouna serie de conclusiones particulares. Son las siguientes:

113

114 Capítulo 8. Conclusiones y futuras líneas de trabajo

La diferenciación algorítmica en su modalidad backward demuestra ser signicativa-mente más eciente en el cálculo de sensibilidades a un número alto de parámetros.En particular se ha aplicado a derivados sobre cestas de equity, donde el nume-ro de parámetros de correlación crece cuadráticamente con el numero de activossubyacentes de la cesta.

La diferenciación algorítmica permite calcular la griega exacta de un producto de-rivado nanciero sobre una cesta de equity para matrices de correlación cercanas ala frontera del conjunto de matrices semidenidas positivas. Es decir, allí donde elmétodo de diferencias nitas arroja resultados erróneos debido a su naturaleza.

La diferenciación algorítmica resuelve el problema de elección del bump en las di-ferencias nitas. Se ha visto que está elección puede ser determinante para ciertosproductos y arrojar resultados erróneos.

Por último se recogen aquí una serie de cuestiones interesantes que han surgido trasrealizar el presente Trabajo de Fin de Máster que a juicio del autor sería interesanteabordar posteriormente con más tiempo. Son las siguientes:

Sería interesante analizar si, con Autograd, es posible calcular las sensibilidades deproductos derivados empleando para ello modelos de valoración más complejos quelos aquí presentados. En particular, podría emplearse un modelo de volatilidad localbasado en la fórmula de Dupire (ver [20] para más información) o algún modelo devolatilidad estocástica.

Sería interesante analizar el funcionamiento de la metodología objeto de estudio enel presente Trabajo de Fin de Máster en la calibración de modelos a partir de preciosde mercado de diferentes productos derivados nancieros.

Sería interesante analizar cómo se podría integrar Autograd en una futura libre-ría profesional de valoración de instrumentos derivados nancieros de una entidadnanciera. Es decir, habría que responder a la pregunta de si Autograd se acoplaperfectamente a un código existente desarrollado por un equipo de personas que noha trabajado jamás con esta librería y/o no conoce la diferenciación algorítmica; osi por el contrario habría que efectuar ajustes en la librería existente y cómo seríanéstos.

En lineas generales este trabajo intenta sentar las bases para la aplicación de las técni-cas de diferenciación algorítmica en las librerías del departamento de Validación Internade Banco Santander. De este modo se evitaría el uso de las técnicas clásicas empleadastradicionalmente en la industria bancaria basadas en el método de diferencias nitas lascuales llevan asociado un error de truncamiento, pueden aumentar considerablemente eltiempo de computación y exigen de antemano establecer un valor de bump que, como seha visto, puede ser trascendental.

Bibliografía

[1] Lorenzo Bergomi. Stochastic Volatility Modeling. CRC Press, Taylor y Francis Group,2015.

[2] Patrick Billingsley. Probability and measure. Ed. por Wiley. 3rd. 1995.

[3] Federico Borghese. Volatility and Dispersion strategies in Finance. Tesis doct.Universita degli Studi di Pisa, oct. de 2016.

[4] Damiano Brigo y col. Lognormal-mixture dynamics and calibration to market vo-latility smiles. En: International Journal of Theoretical and Applied Finance 05(jun. de 2002).

[5] Damiano Brigo y Fabio Mercurio. Interest Rate Models - Theory and Practice: WithSmile, Ination and Credit. Ed. por Springer. Springer Finance, 2006.

[6] Martin Bücker y col. Automatic Dierentiation: Applications, Theory, and Imple-mentations. Springer, 2005.

[7] Juan de Burgos. Cálculo innitesimal de una variable. 2nd. McGraw-Hill, 2007.

[8] Juan de Burgos. Cálculo innitesimal de varias variables. 2nd. McGraw-Hill, 2008.

[9] Luca Capriotti. Fast Greeks by algorithmic dierentiation. En: The Journal ofComputational Finance 14.3 (2011).

[10] Bruce Carnahan y col. Cálculo Numérico. Editorial Rueda, 1979.

[11] Yuan S. Chow y Henry Teicher. Probability Theory. Independence, interchangeabi-lity, martingales. Springer-Verlag, 1978.

[12] George Corliss y col. Automatic dierentiation of algorithsm: from simulation tooptimization. Springer, 2001.

[13] Geng Deng y col. Modeling Autocallable Structured Products. En: Journal ofDerivatives and Hedge Funds 17 (ago. de 2011), págs. 326-340.

[14] Daniel J. Duy. Finite dierence methods in nancial engineering: a partial die-rencial equation approach. John Wiley y Sons Ltd, 2006.

[15] Bruno Dupire. Pricing with a Smile. En: Risk 7 (ene. de 1994).

[16] James F. Epperson. An introduction to numerical methods and analysis. Wiley,2013.

[17] Michael Giles y Paul Glasserman. Smoking adjoints: fast Monte Carlo Greeks.En: Risk Magazine (2006).

115

[18] Paul Glasserman. Monte Carlo methods in nancial engineering. Springer, 2004.

[19] Andreas Griewank y Walther Andrea. Evaluating derivatives: principles and tech-niques of algorithmic dierentiation. 2nd. Society for Industrial y Applied Mathe-matics, 2008.

[20] Coskun Guler y Volkan Oban. On the Inverse Problem of Dupires Equation withNonlocal Boundary and Integral Conditions. En: Journal of Mathematical Finance07 (ene. de 2017), págs. 934-940.

[21] Marc Henrard. Adjoint Algorithmic Dierentiation: Calibration and Implicit Fun-ction Theorem. En: Journal of Computational Finance 17 (sep. de 2011).

[22] Marc Henrard. Algorithmic Dierentiation in Finance Explained. Springer Nature,2017.

[23] Nicholas J. Higham. Computing the nearest correlation matrix - a problem fromnance. En: IMA Journal of Numerical Analysis 22.3 (jul. de 2002), págs. 329-343.

[24] John C. Hull. Options, futures, and other derivatives. 7th. Prentice Hall Internatio-nal, 2009.

[25] Dougal Maclaurin. Modeling, Inference and Optimization with Composable Die-rentiable Procedures. Tesis doct. Harvard University, abr. de 2016.

[26] Farshid Mehrdoust y col. Ecient Monte Carlo Option Pricing under CEVModel.En: Communications in Statistics - Simulation and Computation 46 (nov. de 2015).

[27] Álvaro Montealegre Moyano. Métodos numéricos para la valoración de derivadoscomplejos. Tesis doct. Universidad de Castilla-La Mancha, sep. de 2013.

[28] Massimo Morini. Understanding and Managing Model Risk: A Practical Guide forQuants, Traders and Validators. Wiley Finance, 2011.

[29] Bernt Øksendal. Stochastic Dierential Equations. An Introduction with Applica-tions. 6th. Springer-Verlag, 2003.

[30] Art B. Owen. Monte Carlo theory, methods and examples. 2013. url: http://statweb.stanford.edu/%C3%B5wen/mc/.

[31] Vijay K. Rohatgi y A. K. Md. Ehsanes Saleh. An introduction to probability andstatistics. Ed. por Wiley. 3rd. 2015.

[32] Anthony Saunders y Marcia Millon Cornett. Financial institutions management arisk management approach. 5th. McGraw-Hill, 2006.

[33] Gregorio Serna. La sonrisa de la volatilidad en los mercados de opciones. En:Bolsa de Madrid 128 (feb. de 2004), págs. 34-37.

[34] Steven E. Shreve. Stochastic Calculus for Finance I: The Binomial Asset PricinModel. Springer Finance, 2004.

[35] Steven E. Shreve. Stochastic Calculus for Finance II: Continuous-Time Models.Springer Finance, 2004.

[36] Arun Verma y Andreas Griewank. An introduction to automatic dierentiation.En: PAMM (mar. de 2003).

116

[37] Paul Wilmott. Derivatives: The theory and practice of nancial engineering. Wiley,1998.

[38] Peter G. Zhang. Exotic Options: A Guide to Second Generation Options. WorldScientic, 1998.

117

118