Está en la página 1de 27

Computaci

on cientfica aplicada a Finanzas

Cesar Sanchez de Lucas (jcsanchd@banesto.es)


Sabado, 13 de Marzo de 2010

Universidad de Murcia

Computacion cientfica aplicada a Finanzas

Introducci
on
La Matematica financiera conlleva de forma inherente el uso y desarrollo de tecnicas
numericas para la soluci
on de distintos problemas. Todas las tecnicas matematicas que
se pueden pensar no seran nada sin el apoyo de los ordenadores modernos. De hecho,
es muy facil encontrarse problemas financieros que hace pocos a
nos eran intratables
computacionalmente y que con el paso del tiempo y la mejora del hardware han pasado
a ser triviales.
En la siguiente charla vamos a ver algunos ejemplos de problemas relacionados con la
matematica financiera y la implementaci
on de su soluci
on numerica.
El entorno que hemos elegido para implementar esta soluci
on es Matlab, por diversas
razones. De hecho es el entorno de desarrollo que usamos en mi entorno profesional
(Banesto).
Entre las razones que podemos citar para usar Matlab cabe destacar el hecho de que
utilice un lenguaje de muy alto nivel (entendiendo alto nivel como pr
oximo al lenguaje
humano). Esto nos permite generar c
odigo muy facilmente, que a su vez es muy facil
de mantener y de usar por el resto de desarrolladores.
Fecha de elaboracion: March 12, 2010

Universidad de Murcia

Computacion cientfica aplicada a Finanzas

Otra raz
on para usar Matlab es la facilidad con la que se puede integrar con el resto de
software del banco. Desde las aplicaciones de escritorio de los traders (Excel) hasta los
sistemas globales de gesti
on de la tesorera (Murex)
Tambien (y para que no se diga) podemos mencionar alg
un inconveniente como sera
el que se genere c
odigo en principio menos eficiente computacionalmente que el que
haramos, por ejemplo, con un programa en C. Otro inconveniente a tener en cuenta
sera que se use para desarrollar un lenguaje que no es standard.

Fecha de elaboracion: March 12, 2010

Universidad de Murcia

Computacion cientfica aplicada a Finanzas

Esquema T
ecnico

Fecha de elaboracion: March 12, 2010

Universidad de Murcia

Computacion cientfica aplicada a Finanzas

Planteamiento y primera aproximaci


on.
El problema fundamental en la matematica financiera es el de la valoraci
on de lo que se
ha dado en llamar Derivados. Es decir, valorar un contrato financiero que pagara
en un tiempo futuro en funci
on del comportamiento de un determinado subyacente
basico. Estos subyacentes basicos pueden ser el precio de las acciones, tipos de cambio,
tipos de interes, precio del petr
oleo, zumo de naranja concentrado ...
El ejemplo tpico de Derivado es la opci
on que me permite comprar (pero no obliga) en
un tiempo futuro T una acci
on/subyacente a un precio fijado K, independientemente
del valor de la acci
on en el mercado en ese momento. A este Derivado se le llama
opci
on de compra o mas com
unmente opci
on Call. Si denotamos por St el precio del
subyacente en tiempo t, tendremos que el valor de la Call en tiempo T sera:
max(ST K, 0)
A esta funci
on de pago se la denomina payoff de la Call. Nuestro objetivo sera poner
precio a este contrato.
Fecha de elaboracion: March 12, 2010

Universidad de Murcia

Computacion cientfica aplicada a Finanzas

Hip
otesis fundamental, el subyacente sigue la siguiente ecuaci
on de evoluci
on
estocastica:
dSt
= dt + dWt
St
donde dWt es un browniano standard. Esta es la ecuaci
on de evoluci
on de un browniano
geom
etrico. Al termino se le conoce como deriva y a como volatilidad. Podemos
interpretar la ecuaci
on estocastica anterior seg
un la siguiente aproximaci
on discreta:

Si Si+1 Si
=
= t + ti
Si
Si

Si+1 = Si(1 + t + ti)


{i} es una colecci
on de normales standard independientes.
Fecha de elaboracion: March 12, 2010

Universidad de Murcia

Computacion cientfica aplicada a Finanzas

Es decir, podemos interpretar nuestra hip


otesis fundamental sobre el subyacente diciendo
que los rendimientos instant
aneos del subyacente vienen dados por una distribuci
on
normal de media t y varianza 2t. Algo en principio, bastante razonable y que
encuentra justificaci
on a partir del analisis estadstico de las series de datos de los
mercados financieros.
Queda, por supuesto, la tarea de determinar cuanto debe valer y .
Esto nos lleva al primer ejemplo que vamos a tratar que es Cu
al es la distribuci
on
de S en tiempo T ?. En principio no la conocemos, pero dado que sabemos que los
rendimientos tienen saltos normales podemos simular esta distribuci
on.

Fecha de elaboracion: March 12, 2010

Universidad de Murcia
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027
0028
0029

Computacion cientfica aplicada a Finanzas

function BG = brownianogeometrico(S0,T,sigma,mu, nsaltos, nsim)


%
Funcion para generar una aproximacion discreta de una
%
simulacion de un browniano geometrico
%
BG = brownianogeometrico(S0,T,sigma,mu, nsaltos, nsim)
%
%
INPUT:
%
%
S0:
Valor inicial del subyacente/browniano geometrico.
%
T:
Tiempo hasta vencimiento(en aos)
%
sigma: Volatilidad del BG.
%
mu:
Termino de deriva.
%
nsaltos:Numero de saltos en la discretizacion.
%
nsim:
Numero de simulaciones.
%
%
OUTPUT:
%
%
BG:
Matriz nsim x (nsaltos + 1) columnas con el resultado de la
%
simulacion
dt = T/nsaltos;
N = randn([nsim nsaltos]);
N = 1 + mu*dt + sigma*sqrt(dt)*N;
BG = zeros(nsim, nsaltos+1);
BG(:,1) = S0;
BG(:,2:end) = N;
BG = cumprod(BG,2);

Fecha de elaboracion: March 12, 2010

Universidad de Murcia

Computacion cientfica aplicada a Finanzas

800

160

150

700

140
600
130
500

120

400

110

100

300

90
200
80
100

0
40

70

60

80

100

120

140

160

180

200

220

240

60

50

100

150

200

250

300

350

400

Ejercicio
Comprobar el efecto que tiene asignar distintos valores de y

Fecha de elaboracion: March 12, 2010

Universidad de Murcia

Computacion cientfica aplicada a Finanzas

Utilizaci
on del lema de Ito.
Lo que hemos hecho hasta ahora no es mas que simular una aproximaci
on discreta de la
distribuci
on final. El siguiente paso sera calcular dicha distribuci
on con las herramientas
que nos proporciona el calculo estocastico. Usando el lema de Ito se puede comprobar
que la distribuci
on final de ST viene dada por:

ST = S0 exp

T + T
2

Donde es, de nuevo, una normal standard.


el subyacente a vencimiento sigue

Es decir,

2
una distribuci
on lognormal de parametros 2 T , T .
Ejercicio
A partir de la discretizacion anterior, haciendo t 0 y usando las propiedades de la distribucion
normal se puede calcular la distribucion de ST sin necesidad del Lema de Ito.

El c
odigo para simular ahora el subyacente a vencimiento sera:
Fecha de elaboracion: March 12, 2010

10

Universidad de Murcia
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027
0028
0029

Computacion cientfica aplicada a Finanzas

function escenarios = escenariosLN(S0,T,sigma,mu,nsaltos, nsim)


%
Funcion para generar una simulacion exacta de un browniano geometrico
%
escenarios = brownianogeometrico(S0,T,sigma,mu, nsaltos, nsim)
%
%
INPUT:
%
%
S0:
Valor inicial del subyacente/browniano geometrico.
%
T:
Tiempo hasta vencimiento(en aos)
%
sigma:
Volatilidad del BG.
%
mu:
Termino de deriva.
%
nsaltos:
Numero de saltos en la discretizacion.
%
nsim:
Numero de simulaciones.
%
%
OUTPUT:
%
%
escenarios:
Matriz nsim x (nsaltos + 1) columnas con el resultado de la
%
simulacion
N = randn([nsim nsaltos]);
escenarios = zeros( nsim, nsaltos + 1 );
dt = T/nsaltos;
escenarios(:,1) = S0;
escenarios(:,2:end) = exp((mu- sigma*sigma*0.5)*dt + sigma*sqrt(dt)* N);
escenarios = cumprod(escenarios,2);

Fecha de elaboracion: March 12, 2010

11

Universidad de Murcia

Computacion cientfica aplicada a Finanzas

Como comentario se
nalar que en esta versi
on de la simulaci
on tambien pedimos como
input nsaltos que es el n
umero de saltos que damos hasta vencimiento, al igual
que en la primera versi
on. Pero mientras que en la primera versi
on este n
umero
deba ser necesariamente alto para obtener una buena aproximaci
on con el consiguiente
coste computacional, en esta versi
on basta con dar un u
nico salto para obtener una
simulaci
on exacta. La raz
on para seguir incluyendo este input sera aparente en
breve.

Fecha de elaboracion: March 12, 2010

12

Universidad de Murcia

Computacion cientfica aplicada a Finanzas

Black-Scholes
Hasta ahora lo u
nico que hemos utilizado son principios del calculo estocastico que son
de alguna forma independientes de la Matematica Financiera.
El siguiente paso es fundamental, y, de hecho, le vali
o el premio Nobel a Scholes y
Merton (Fischer Black haba fallecido con anterioridad ). Bajo ciertas hip
otesis entre
las que cabe destacar la Ausencia de Oportunidades de Arbitraje el valor de
un contrato que paga un cierto payoff(S,K,....) en un tiempo futuro T viene dado por:

V (0) = erT E[payof f (S, K, ....)]


donde r es el tipo libre de riesgo. El termino erT representa el descuento a da de hoy
de un cierto pago futuro. El valorar un producto como una Esperanza de un posible
pago futuro coincide con la intuici
on que tenemos todos a partir de la teora de juegos.
Pero ojo porque la raz
on es mucho mas profunda y de hecho esta esperanza se calcula
un:
suponiendo que = r . Esto es consideramos que S evoluciona seg
Fecha de elaboracion: March 12, 2010

13

Universidad de Murcia

Computacion cientfica aplicada a Finanzas

dSt
= rdt + dWt
St
y que por tanto, para la valoraci
on correcta de cualquier derivado no interviene nada
que tenga que ver con posibles rentabilidades medias pasadas o estimaciones de
rentabilidades futuras (como poco es chocante no?).
En concreto el valor de la Call vendra dado por:
V (0) = erT E[(ST K)+]
Esta esperanza tiene f
ormula explcita:

Valor Call : C(S, K, T, , r) = SN (d1) KerT N (d2)


Valor Put : P (S, K, T, , r) = KerT N (d2) SN (d1)
Donde:
Fecha de elaboracion: March 12, 2010

14

Universidad de Murcia

Computacion cientfica aplicada a Finanzas

log(S/K) + (r 2/2)T

d1 =
T

d2 = d1 T
Que son las f
ormulas de Black-Scholes. Valor Put corresponde al valor de una opci
on
Put de venta (derecho de vender una acci
on a un precio fijado hoy K), su payoff viene
dado por (K ST )+.
Lo que haremos en el siguiente c
odigo es valorar una opci
on Call, una Put por Montecarlo
y compararlo con el precio obtenido de la f
ormula explcita.

Fecha de elaboracion: March 12, 2010

15

Universidad de Murcia
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027
0028
0029
0030
0031
0032

Computacion cientfica aplicada a Finanzas

S0 = 100;
T = 1;
sigma = 0.2;
mu = 0.05;
r = 0.05;
K = 90;
nsaltos = 1;
nsim = 1000;
tic
escenarios = escenariosLN(S0,T,sigma,mu, nsaltos, nsim);
toc
tic
escenarios2 = escenariosLN2(S0,T,sigma,mu, nsaltos, nsim);
toc
escenarios = escenarios(:,end);
payoffCall = max(escenarios - K, 0);
payoffPut = max(K - escenarios, 0);
valorCall = mean(payoffCall)*exp(-r*T);
valorPut = mean(payoffPut)*exp(-r*T);
%Paridad Call Put (valorCall + dinero = valorPut + S0)
v0 = valorCall + K *exp(-r*T);
v1 = valorPut + S0;
if v0 == v1
disp(Paridad Call Put se cumple);
else
disp(Hay algo mal);

Fecha de elaboracion: March 12, 2010

16

Universidad de Murcia
0033
0034
0035
0036
0037
0038
0039
0040
0041
0042
0043
0044
0045
0046
0047
0048
0049
0050

Computacion cientfica aplicada a Finanzas

end

d1 = (log(S0/K) + (r + sigma*sigma*0.5)*T)/(sigma*sqrt(T));
d2 = d1 - sigma*sqrt(T);
valorExactoCall = S0 * normcdf(d1) - K *exp(-r*T) * normcdf(d2);
valorExactoPut = -S0 * normcdf(-d1) + K *exp(-r*T) * normcdf(-d2);
%Paridad Call Put (valorCall + dinero = valorPut + S0)
v0 = valorExactoCall + K *exp(-r*T);
v1 = valorExactoPut + S0;
if v0 == v1
disp(Paridad Call Put se cumple);
else
disp(Hay algo mal);
end

Ejercicio
Comprobar la paridad Call-Put

Fecha de elaboracion: March 12, 2010

17

Universidad de Murcia

Computacion cientfica aplicada a Finanzas

El c
odigo de la funci
on escenariosLN2 es:
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027

function escenarios = escenariosLN2(S0,T,sigma,mu,nsaltos, nsim)


%
Funcion para generar una simulacion exacta de un browniano geometrico
%
escenarios = brownianogeometrico(S0,T,sigma,mu, nsaltos, nsim)
%
%
INPUT:
%
%
S0:
Valor inicial del subyacente/browniano geometrico.
%
T:
Tiempo hasta vencimiento(en aos)
%
sigma:
Volatilidad del BG.
%
mu:
Termino de deriva.
%
nsaltos:
Numero de saltos en la discretizacion.
%
nsim:
Numero de simulaciones.
%
%
OUTPUT:
%
%
escenarios:
Matriz nsim x (nsaltos + 1) columnas con el resultado de la
%
simulacion
N = randn([1 nsim]);
escenarios = zeros( nsaltos + 1 , nsim );
dt = T/nsaltos;
escenarios(1,:) = S0;
escenarios(2:end,:) = exp((mu- sigma*sigma*0.5)*dt + sigma*sqrt(dt)* N);
escenarios = cumprod(escenarios,1);

Cual es la diferencia?
Fecha de elaboracion: March 12, 2010

18

Universidad de Murcia

Computacion cientfica aplicada a Finanzas

Valoraci
on de productos con dependencia del camino
Si nuestro problema fuese valorar u
nicamente derivados europeos (aquellos cuyo valor
depende del nivel de subyacente a vencimiento) no estaramos hablando de valoraciones
por simulaci
on, bastara con integrar la funci
on de pago a vencimiento contra la densidad
adecuada. Pero que pasa cuando tenemos un producto que paga a vencimiento seg
un
la siguiente f
ormula?:

P ayof f =

n
X

1
Si K
n i=1

!+

Donde Si es el subyacente observado en tiempo ti [0, T ]i . A este contrato se le


conoce como Call Asiatica y es un ejemplo de derivado cuyo payoff depende del camino
que haya seguido el subyacente.
Para esta Call Asiatica no existe f
ormula de valoraci
on explcita y no nos queda otro
remedio por tanto que simular los posibles caminos del subyacente para calcular el pago
en funci
on de dicho camino.
Fecha de elaboracion: March 12, 2010

19

Universidad de Murcia
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015

Computacion cientfica aplicada a Finanzas

S0 = 100;
T = 1;
sigma = 0.2;
mu = 0.05;
r = 0.05;
K = 90;
nsaltos = 12;
nsim = 10000;
escenarios = escenariosLN(S0,T,sigma,mu, nsaltos, nsim);
mediaAsiatica = sum(escenarios(2:end),2)/nsaltos;
payoffCall = max(mediaAsiatica - K, 0);
valorAsiatica = mean(payoffCall)*exp(-r*T);

Fecha de elaboracion: March 12, 2010

20

Universidad de Murcia

Computacion cientfica aplicada a Finanzas

Valoraci
on de productos multisubyacente
La cosa se complica un poco si nos planteamos valorar un producto multisubyacente
como haremos en el siguiente ejemplo.
Queremos poner precio a una Call Asiatica sobre una cesta de subyacentes. La f
ormula
del payoff vendra dada por:

P ayof f =

n
X

1
Si K
n i=1

!+

donde Si = 12 (Si1 + Si2) es la media de 2 activos vistos en tiempo ti.

Fecha de elaboracion: March 12, 2010

21

Universidad de Murcia

Computacion cientfica aplicada a Finanzas

La dinamica vendra dada por:


dSt1
1
1
=
rdt
+

dW
t
St1
dSt2
2
2
=
rdt
+

dW
t
St2
dWt1 dWt2 son dos brownianos con correlaci
on . Lo podemos interpretar pensando
que las normales que generan ambas dinamicas tienen correlaci
on . De forma analoga
a como se hace en el caso de un u
nico subyacente, el lema de Ito nos da las siguientes
soluciones para este sistema de ecuaciones diferenciales estocasticas:

ST1 = S01 exp


r
T + 1 T 1
2

2
2
ST = S0 exp
T + 2 T 2
r
2

con 1 y 2 normales standard con correlacion .


Fecha de elaboracion: March 12, 2010

22

Universidad de Murcia

Computacion cientfica aplicada a Finanzas

El problema ahora consistira en ser capaces simular normales con correlaci


on, ya que un
ordenador lo que genera de forma natural son variables independientes.
Para solucionar este problema utilizamos una propiedad estupenda de la distribuci
on
normal que es:
Sean Xi variables aleatorias normales independientes.
Sea R una matriz de correlaci
on.
Sea M una raz cuadrada de R, es decir, R = M tM
Yi = XiM t son variables aleatorias normales con correlaci
on R.
Generar variables aleatorias con correlaci
on para distribuciones distintas de la normal,
es un problema que no es en absoluto trivial.
Tpicamente se escoge como raz cuadrada la descomposici
on de choleski: de todas las
raices cuadradas, aquella que es triangular superior.
Fecha de elaboracion: March 12, 2010

23

Universidad de Murcia
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027
0028
0029
0030
0031
0032

Computacion cientfica aplicada a Finanzas

function escenarios = escenariosLN2suby(S0, T,sigma, rho, mu,nsaltos, nsim)


%
Funcion para generar una simulacion exacta de un browniano geometrico
%
escenarios = brownianogeometrico(S0,T,sigma,mu, nsaltos, nsim)
%
%
INPUT:
%
%
S0:
Vector con los Valores inicial de los subyacentes.
%
T:
Tiempo hasta vencimiento(en aos)
%
sigma:
Vector con las Volatilidades.
%
mu:
Terminos de deriva.
%
nsaltos:
Numero de saltos.
%
nsim:
Numero de simulaciones.
%
%
OUTPUT:
%
%
escenarios:
Matriz nsim x nsubyacentes x (nsaltos + 1) columnas
%
con el resultado de la simulacion
%
nsuby = length(S0);
X = randn([nsim nsuby nsaltos]);
N = X*0;
dt = T/nsaltos;
ch = chol(rho);
sigmaMatriz = diag(sigma.*sqrt(dt));
for i = 1:nsaltos
N(:,:,i) = X(:,:,i)*ch*sigmaMatriz;
end

Fecha de elaboracion: March 12, 2010

24

Universidad de Murcia
0033
0034
0035
0036
0037
0038
0039
0040
0041
0042
0043
0044

Computacion cientfica aplicada a Finanzas

dt = T/nsaltos;
escenarios = zeros([nsim nsuby nsaltos+1]);
escenarios(:,:,1) = repmat(S0, nsim,1);
derivaln = repmat((mu- sigma.*sigma.*0.5)*dt,[nsim,1,nsaltos]);
escenarios(:,:,2:end) = exp(derivaln + N);
escenarios = cumprod(escenarios,3);

Fecha de elaboracion: March 12, 2010

25

Universidad de Murcia

Computacion cientfica aplicada a Finanzas

Algunos problemas abiertos de la


Computaci
on Cientfica en Finanzas
La siguiente es una lista no exhaustiva que nos puede servir para hacernos una idea de
problemas abiertos con utilidad practica en finanzas. Hay muchos mas, seguramente
mas interesantes, pero estos los podemos entender con lo que hemos visto hasta ahora:
Integraci
on rapida de gaussianas multivariantes.
Integraci
on rapida de opciones asiaticas.
Integraci
on rapida de opciones Range Accrual.
Generaci
on de distribuciones multivariantes no gaussianas con correlaci
on.
Lo bueno que tienen, los tres primeros al menos, es que con el paso del tiempo y aunque
no los solucionemos, dejaran de ser un problema.

Fecha de elaboracion: March 12, 2010

26

Universidad de Murcia

Computacion cientfica aplicada a Finanzas

Bibliografa
Options, Futures and other Derivatives
(John C. Hull)
Derivatives
(Paul Wilmott)
Financial Calculus: An Introduction to Derivative Pricing
(Martin Baxter, Andrew Rennie)
Monte Carlo Methods in Financial Engineering.
(Paul Glasserman)

Fecha de elaboracion: March 12, 2010

27

También podría gustarte