wycena_opcji_metoda_Monte-Carlo.pdf

(122 KB) Pobierz
Wycena opcji europejskich put oraz call metod¹ Monte Carlo
Wycena opcji europejskich put oraz call metodĢ Monte Carlo
Jednym z podstawowych zagadnieı wspþczesnych nauk ekonomicznych jest
wycena produktw finansowych i ubezpieczeniowych. Poprawna wycena pozwala nie tylko
na osiĢgniħcie przewagi konkurencyjnej ale rwnieŇ na skuteczne zarzĢdzanie ryzykiem.
W poniŇszej pracy przedstawiona zostanie jedna z metod wyceny opcji europejskich Î metoda
Monte Carlo.
W praktyce stosuje siħ nastħpujĢce metody wyceny instrumentw pochodnych [4]:
metoda analityczna - w tej grupie dominujĢ metody oparte na czĢstkowych
rwnaniach rŇniczkowych oraz metody martyngaþowe,
metody numeryczne, m.in. numeryczne metody rozwiĢzywania czĢstkowych
rwnaı rŇniczkowych oraz metody symulacji Monte Carlo.
Skoncentrujemy siħ na metodach symulacyjnych. PoniewaŇ ewolucja cen akcji ma
naturħ losowĢ, modelowana jest stochastycznymi rwnaniami rŇniczkowymi. Najprostszym
modelem ewolucji cen jest geometryczny ruch Browna [3], [4]:
dS
=
m +
s
SdW
(1)
gdzie:
S - cena akcji,
m - dryf,
s - zmiennoĻę,
W - proces Wienera.
Stochastyczne rwnanie rŇniczkowe (1) bħdzie rozumiane w sensie Ito (wybr
parametryzacji nie wpþywa na wycenħ opcji [1]). Jednym z gþwnych rezultatw
martyngaþowej wyceny jest formuþa [3]:
C
=
E
[ ]
rT
Payoff
(2)
0
gdzie:
C - cena opcji,
r - stopa (intensywnoĻę) oprocentowania instrumentu wolnego od ryzyka,
T - czas do wykonania opcji,
Payoff - profil wypþaty z opcji,
Q
0
E - wartoĻę oczekiwana obliczana wzglħdem miary martyngaþowej (arbitraŇowej).
KorzystajĢ z pojħę teorii miary i teorii procesw stochastycznych moŇna pokazaę, Ňe
stochastyczne rwnanie rŇniczkowe (1) moŇe byę zapisane alternatywnie w postaci [3]:
dS s
=
rSdt
+
SdW
Q
(3)
Proces
W Q
=
W
+
m-
r
t
jest procesem Wienera wzglħdem miary martyngaþowej
s
Q zdefiniowanej za pomocĢ pochodnej Radona-Nikodyma [3]:
dQ =
T dP
Z
T
T
(4)
gdzie:
P - miara subiektywna (rzeczywista),
Ç
m
r
1
Ä -
m
r
Ô
2
×
Z
=
exp
È
É
-
W
-
Æ
Ö
T
Ø
Ù
.
T
s
T
2
s
È
Ø
Z formuþ (2) i (3) wynika, Ňe cenħ opcji moŇna wyznaczyę losujĢc (symulujĢc)
zdyskontowane wartoĻci profilu wypþaty opcji a nastħpnie obliczajĢc ĻredniĢ po wszystkich
otrzymanych realizacjach. PoniewaŇ rozwiĢzanie (silnym) rwnania (3) jest [3], [4]:
Sdt
Q -
e
-
313432351.005.png
S
=
S
exp
Ç
Æ
r
-
1
s 2
Ö
T
+
s
W
×
(5)
É
Ù
T
0
2
T
wystarczy wygenerowaę wartoĻci W z rozkþadu ( )
N 0 , wstawię do (5). Otrzymany
rezultat wstawię do profilu wypþaty opcji, zdyskontowaę i obliczyę ĻredniĢ z otrzymanych
wartoĻci.
T
W poniŇszej pracy pjdziemy innĢ drogĢ: drogĢ symulacji stochastycznych rwnaı
rŇniczkowych (3). PodejĻcie to jest bardziej czasochþonne od opisanego wyŇej, jednak moŇe
byę bezpoĻrednio zastosowane do wyceny opcji egzotycznych.
W pracy zastosowano dwie dyskretyzacje stochastycznego rwnania rŇniczkowego
(3): algorytm Eulera-Maruyamy oraz algorytm Milsteina.
Algorytm Eulera-Maruyamy ma postaę [2]:
D
S
=
rS
D
t
+
s
S
D
W
(6)
gdzie:
D +1 - przyrost ceny akcji w czasie D ,
=
S
i S
i
D e
=
D
t
- przyrost procesu Wienera w czasie D (
e
: N
( 0
.
RozwiĢzanie numeryczne ma postaę:
T
-
1
D
t
Ã
S
=
S
+
D
S
(7)
T
0
i
i
=
0
lub zapisujĢc (6) w postaci:
S
i
+
1
=
1
+
r
D
t
+
s
D
W
(8)
S
i
+
1
i
znajdujemy:
T
-
1
T
-
1
S
D
t
D
t
³
³
(
)
S
=
S
i
+
1
=
S
1
+
r
D
t
+
s
D
W
(9)
T
0
S
0
i
+
1
i i
=
0
i
=
0
W zaþĢczonych skryptach Matlaba zastosowano reprezentacjħ (9).
Algorytmu Milsteina dla geometrycznego ruchu Browna ma postaę [2]:
S
i
+
1
=
1
+
r
D
t
+
s
D
W
+
1
s
2
[ ] t
( )
D
W
2
-
1
D
(10)
S
i
+
1
2
i
+
1
i
T
-
1
T
-
1
D
t
S
D
t
Ä
1
[ ]
Ô
³
³
( )
S
=
S
i
+
1
=
S
Æ
1
+
r
D
t
+
s
D
W
+
s
2
D
W
2
-
1
D
t
Ö
(11)
T
0
S
0
i
+
1
2
i
+
1
i i
=
0
i
=
0
WielkoĻci losowe e pochodzĢce z rozkþadu
N generowane sĢ za pomocĢ
( 0
funkcji Matlaba randn().
W zaþĢczniku znajdujĢ siħ cztery skrypty obliczajĢce ceny opcji call z cenĢ
wykonania K . Dwa z nich stosujĢ algorytm Eulera-Maruyamy i dwa algorytm Milsteina.
Ponadto W kaŇdej z tych dwch grup zastosowano kod szybki i wolniejszy od poprzedniego
(szybkiego). ZwiĢzane to jest ze sposobem w jakim Matlab zarzĢdza pamiħciĢ komputera.
Skrypty oprcz oszacowaı ceny, podajĢ jej Ļredni bþĢd standardowy. Ponadto
weryfikowany jest parytet kupna Î sprzedaŇy oraz porwnywane sĢ otrzymane droga
symulacji ceny z wynikami dokþadnymi (formuþa Blacka-Scholesa).
Skrypty pozwalajĢ osobie nie posiadajĢcej zaawansowanych umiejħtnoĻci obsþugi
Matlaba na wycenħ opcji call i put dla dowolnych wartoĻci: ceny wykonania, terminu
wykonania, stopy wolnej od ryzyka oraz zmiennoĻci. UŇytkownik z niewielkimi
Ä
Ô
S -
W
dist
313432351.006.png 313432351.007.png 313432351.008.png 313432351.001.png
umiejħtnoĻciami bez problemu zmodyfikuje kod na potrzeby wyceny kombinacji opcji lub
wycenħ instrumentu z áegzotycznymÑ profilem wypþaty.
Literatura:
1. Czernik T. Skazani na formalizm Ito?, Metody matematyczne,
ekonometryczne i informatyczne w finansach i ubezpieczeniach, AE
Katowice, 2007,
2. Kloeden P.E., Platen E., Numerical solution of stochastic differential
equations, Springer, 1995,
3. Shiryaev A.N., Essentials of stochastic finance. Facts, models, theory.,
World Scientific, 2001,
4. Wilmott P., Paul Wilmott on quantitative finance, Wiley, 1998,
313432351.002.png
Listingi skryptw
Algorytm Eulera Î Maruyamy (duŇa liczba realizacji)
% wycena opcji europejskich typu call i put metodĢ symulacji Monte Carlo
% dynamika instrumentu bazowego S jest geometrycznym ruchem Browna:
% dS=S*(mi*dt+sigma*dW) gdzie:
% S - cena instrumentu bazowego
% mi - dryf (drift); w algorytmie zostaþa zastĢpiona stopa wolnĢ od ryzyka r (risk neutral pricing)
% sigma - zmiennoĻę (volatility)
% W - proces Wienera
clear
tic % start zegara odmierzajĢcego czas obliczeı
n=100000; % liczba symulowanych trajektorii/scenariuszy
S0=1; % aktualna cena instrumentu bazowego
K=1.1; % cena wykonania opcji
r=0.1; % stopa wolna od ryzyka
sigma=0.2; % zmiennoĻę
T=1; % termin wykonania
deltaT=0.001; % przyrost czasu - skoıczona aproksymacja przyrostu dt
m=T/deltaT; % iloĻę krokw - iloĻę przedziaþw na ktre dzielimy horyzont T
deltaS=ones(1,n); % inicjalizacja algorytmu - deltaS jest wzglħdnym przyrostem ceny instrumentu bazowego
for k=1:1:m
A=randn(1,n);
deltaS=deltaS.*(1+r*deltaT+sigma*A*sqrt(deltaT));
end
cenaakcji=S0*deltaS; % cena instrumentu bazowego w dniu wykonania opcji
call=(cenaakcji>K); % zwraca 1 gdy wartoĻę opcji call w dniu jej wykonania jest dodatnia, zero w przeciwnym przypadku
put=(cenaakcji<K); % zwraca 1 gdy wartoĻę opcji put w dniu jej wykonania jest dodatnia, zero w przeciwnym przypadku
PCall=(1/n)*exp(-r*T)*sum((cenaakcji-K).*call) % estymator/oszacowanie ceny opcji call
odch_stand_call=(1/sqrt(n))*exp(-r*T)*std((cenaakcji-K).*call) % Ļredni bþĢd oszacowania ceny opcji call
PPut=(1/n)*exp(-r*T)*sum((K-cenaakcji).*put)
% estymator/oszacowanie ceny opcji put
% pħtla generujĢca wzglħdne przyrosty ceny instrumentu bazowego - algorytm Eulera
313432351.003.png
odch_stand_put=(1/sqrt(n))*exp(-r*T)*std((K-cenaakcji).*put) % Ļredni bþĢd oszacowania ceny opcji put
parytet=PCall-PPut-S0+K*exp(-r*T) % sprawdzenie parytetu kupna-sprzedaŇy; teoretyczna wartoĻę wynosi zero
% poniewaŇ algorytm szacuje ceny opcji, obliczona wartoĻę
% powinna byę zbliŇona do zera
d1=(log(S0/K)+(r+sigma*sigma/2)*T)/(sigma*sqrt(T)); % d1 - wystħpuje w formule Blacka-Scholesa
d2=d1-sigma*sqrt(T); % d2 - wystħpuje w formule Blacka-Scholesa
cena_analityczna_call=S0*normcdf(d1,0,1)-K*exp(-r*T)*normcdf(d2,0,1) % dokþadna cena opcji call (model Blacka-Scholesa)
cena_analityczna_put=-S0*normcdf(-d1,0,1)+K*exp(-r*T)*normcdf(-d2,0,1) % dokþadna cena opcji put (model Blacka-Scholesa)
wzgledny_blad_call=abs(PCall-cena_analityczna_call)/cena_analityczna_call % wzglħdne rŇnice cen otrzymanych na drodze symulacji oraz
wzgledny_blad_put=abs(PPut-cena_analityczna_put)/cena_analityczna_put % ze wzoru Blacka-Scholesa
czas_obliczen=toc
% czas wykonywania skryptu/symulacji w sekundach
clear
Algorytm Milsteina (duŇa liczba realizacji)
% wycena opcji europejskich typu call i put metodĢ symulacji Monte Carlo
% dynamika instrumentu bazowego S jest geometrycznym ruchem Browna:
% dS=S*(mi*dt+sigma*dW) gdzie:
% S - cena instrumentu bazowego
% mi - dryf (drift); w algorytmie zostaþa zastĢpiona stopa wolnĢ od ryzyka r (risk neutral pricing)
% sigma - zmiennoĻę (volatility)
% W - proces Wienera
clear
tic
% start zegara odmierzajĢcego czas obliczeı
n=100000;
% liczba symulowanych trajektorii/scenariuszy
K=1.1;
% cena wykonania opcji
r=0.1;
% stopa wolna od ryzyka
S0=1;
% aktualna cena instrumentu bazowego
313432351.004.png
Zgłoś jeśli naruszono regulamin