Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Universidad de Murcia
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
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.
Universidad de Murcia
Esquema T
ecnico
Universidad de Murcia
Universidad de Murcia
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
Universidad de Murcia
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
Universidad de Murcia
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
Universidad de Murcia
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
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
11
Universidad de Murcia
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.
12
Universidad de Murcia
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:
13
Universidad de Murcia
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:
14
Universidad de Murcia
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.
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
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);
16
Universidad de Murcia
0033
0034
0035
0036
0037
0038
0039
0040
0041
0042
0043
0044
0045
0046
0047
0048
0049
0050
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
17
Universidad de Murcia
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
Cual es la diferencia?
Fecha de elaboracion: March 12, 2010
18
Universidad de Murcia
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
!+
19
Universidad de Murcia
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
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);
20
Universidad de Murcia
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
!+
21
Universidad de Murcia
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:
2
2
ST = S0 exp
T + 2 T 2
r
2
22
Universidad de Murcia
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
24
Universidad de Murcia
0033
0034
0035
0036
0037
0038
0039
0040
0041
0042
0043
0044
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);
25
Universidad de Murcia
26
Universidad de Murcia
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)
27