Wykład

advertisement
Matematyka finansowa w pakiecie Matlab
Wykład 6. Wycena opcji — modele ciągłe, metoda Monte Carlo
Bartosz Ziemkiewicz
Wydział Matematyki i Informatyki UMK
Kurs letni dla studentów studiów zamawianych
na kierunku „Matematyka w ekonomii i finansach”
Bartosz Ziemkiewicz
Matematyka finansowa w pakiecie Matlab
1/31
Ciągłe modele rynku
Dotychczas rozważaliśmy dyskretne modele rynku. Transakcji
można było dokonywać tylko w określonych momentach, a ceny
instrumentów zmieniały się w sposób skokowy.
Modele dyskretne są jednak tylko pewnym przybliżeniem
prawdziwego rynku. Wykresy cen akcji, które znamy z gazet
i telewizji nie przypominają wykorzystywanych przez nas drzewek
dwumianowych.
W rzeczywistości ceny zmieniają się w sposób ciągły, a nie
skokowy. Wiemy też, że transakcje na giełdzie mogą być
wykonywane w dowolnej chwili, a nie np. tylko o pełnych
godzinach.
Bartosz Ziemkiewicz
Matematyka finansowa w pakiecie Matlab
2/31
Proces Wienera
Głównym narzędziem wykorzystywanym do modelowania ewolucji
cen akcji są procesy stochastyczne.
Procesem stochastycznym nazywamy rodzinę zmiennych losowych
{Xt }t∈T określonych na wspólnej przestrzeni probabilistycznej.
Najczęściej parametr t interpretujemy jako czas, a T = R+ lub
T = [0, T ].
Jednym z najważniejszych procesów stochastycznych jest proces
Wienera nazywany także ruchem Browna.
Proces Wienera to proces określony na przestrzeni
probabilistycznej (Ω, F, P) spełniający następujące warunki:
proces startuje z 0, tzn. W0 = 0 z prawdopodobieństwem 1,
jest procesem o przyrostach niezależnych, tzn. Wt − Ws i Wv − Wu
są niezależnymi zmiennymi losowymi dla 0 < s < t < u < v ,
jego przyrosty mają rozkład normalny Wt − Ws ∼ N (0, t − s) dla
wszystkich 0 < s < t,
jest procesem o ciągłych trajektoriach.
Bartosz Ziemkiewicz
Matematyka finansowa w pakiecie Matlab
3/31
Modelowanie ceny akcji
W 1900 roku Louis Bachelier w swojej rozprawie doktorskiej
Théorie de la spéculation zaproponował, żeby cenę akcji
modelować za pomocą procesu postaci
St = S0 + µt + σWt ,
gdzie µ ∈ R, σ > 0, a Wt jest procesem Wienera. Praca
Bacheliera była bardzo nowatorska i została doceniona dopiero po
wielu latach.
W 1965 roku Paul Samuelson, zaproponował żeby do modelowania
cen akcji wykorzystać geometryczny proces Wienera, tzn. proces
określony wzorem
1 2
St = S0 exp
µ − σ t + σWt ,
2
gdzie µ ∈ R, σ > 0, a Wt jest procesem Wienera.
Współczynnik µ nazywamy dryfem, odzwierciedla on pewne stałe
tendencje zmian akcji, współczynnik σ określa zmienność cen akcji.
Bartosz Ziemkiewicz
Matematyka finansowa w pakiecie Matlab
4/31
Model Blacka-Scholesa
Rozważmy rynek idealny, na którym funkcjonuje jeden instrument
ryzykowny (akcja) o cenie zadanej wzorem
1
St = S0 exp
µ − σ 2 t + σWt ,
2
oraz jeden instrument pozbawiony ryzyka (obligacja, rachunek
bankowy) o cenie Bt = e rt , gdzie r > 0.
Model ten nazywamy modelem Blacka-Scholesa.
Jego nazwa pochodzi od Fishera Blacka i Myrona Scholesa, którzy
w 1973 roku podali wzór na cenę sprawiedliwą europejskiej opcji
kupna w tym modelu i skonstruowali odpowiednią strategię
zabezpieczającą.
W tym samym roku Robert C. Merton uogólnił ten wzór na
przypadek akcji wypłacającej dywidendę. W 1997 roku Scholes i
Merton otrzymali za te wyniki Nagrodę Nobla w dziedzinie
ekonomii (Black zmarł w 1995 roku).
Bartosz Ziemkiewicz
Matematyka finansowa w pakiecie Matlab
5/31
Wzór Blacka-Scholesa
Black i Scholes pokazali, że cena sprawiedliwa w chwili t 6 T europejskiej opcji kupna o cenie wykonania K i terminie wykonania T (na akcję
niepłacącą dywidendy) zadana jest wzorem:
Ct = St Φ(d+ ) − Ke −r (T −t) Φ(d− ),
(1)
gdzie
2
ln St + (r + σ2 )(T − t)
√
,
d+ = K
σ T −t
2
ln St + (r − σ2 )(T − t)
√
d− = K
,
σ T −t
a Φ(x) jest wartością dystrybuanty standardowego rozkładu normalnego
w punkcie x. Wzór ten nazywamy wzorem Blacka-Scholesa.
Korzystając z parytetu kupna-sprzedaży, możemy łatwo otrzymać wzór
na cenę europejskiej opcji sprzedaży
Pt = −St Φ(−d+ ) + Ke −r (T −t) Φ(−d− ),
Zauważmy, że ceny opcji kupna ani opcji sprzedaży nie zależą od dryfu µ.
Bartosz Ziemkiewicz
Matematyka finansowa w pakiecie Matlab
6/31
Wzór Blacka-Scholesa
Wzór Blacka-Scholesa można wyprowadzić różnymi metodami.
Black i Scholes doszli do niego, rozwiązując pewne równanie
różniczkowe cząstkowe
Alternatywne podejście polega na skonstruowaniu pewnej miary
probabilistycznej Q nazywanej miarą martyngałową, takiej, że cena
instrumentu finansowego jest zdyskontowaną wartością oczekiwaną
funkcji wypłaty tego instrumentu względem miary Q, tzn:
C0 = e −rT E Q f (ST ).
Miara taka istnieje, jeżeli na rynku nie ma możliwości arbitrażu.
Bartosz Ziemkiewicz
Matematyka finansowa w pakiecie Matlab
7/31
Wzór Blacka-Scholesa
Dynamikę ceny akcji względem miary Q opisuje wzór
1 2
St = S0 exp
r − σ t + σ W̃t ,
2
gdzie W̃t jest procesem Wienera względem miary Q.
Dryf µ został zastąpiony przez wolną od ryzyka stopę
procentową r . Cena europejskiej opcji kupna wynosi więc:
C0 = e −rT E Q (ST − K )+
+
1 2
−rT Q
=e
E
S0 exp
r − σ T + σ W̃T − K
.
2
W powyższym wzorze tylko W̃T jest zmienną losową, pozostałe
wielkości są deterministyczne. Ponieważ W̃T ∼ N (0, T ), to
wykonując kilka standardowych przekształceń, możemy otrzymać
wzór Blacka-Scholesa.
Bartosz Ziemkiewicz
Matematyka finansowa w pakiecie Matlab
8/31
Cena opcji lookback w modelu Blacka-Scholesa
W przypadku, gdy funkcja wypłaty ma bardziej skomplikowaną
postać, wyprowadzenie wzoru na cenę instrumentu staje się trudne.
Rozważmy na przykład europejską opcję kupna typu lookback o
funkcji wypłaty fT (St ) = (ST − mint∈[0,T ] St )+ .
Wówczas wzór na cenę sprawiedliwą przyjmuje postać:
ln(St /m) + r+ (T − t)
ln(m/St ) − r+ (T − t)
σ2
√
√
Ct =St Φ
− St Φ
2r
σ T −t
σ T −t
ln(St /m) + r− (T − t)
−r (T −t)
√
− me
Φ
σ T −t
2(T −t)σ−2 2
m
ln(m/St ) + r− (T − t)
−r (T −t) σ
√
+ St e
,
2r St
σ T −t
gdzie m = mint∈[0,T ] St , r+ = r + 12 σ 2 , r− = r − 21 σ 2 .
Bartosz Ziemkiewicz
Matematyka finansowa w pakiecie Matlab
9/31
Model Blacka-Scholesa w Matlabie
Pakiet Financial Derivatives Toolbox zawiera funkcję pozwalającą wyznaczać ceny europejskich opcji kupna i sprzedaży w modelu BlackaScholesa.
Price = optstockbybls(RateSpec, StockSpec, Settle, Maturity,
OptSpec, Strike)
gdzie
RateSpec — obiekt zawierający strukturę opisującą ewolucję
stopy procentowej, tworzymy ją za pomocą funkcji intenvset,
StockSpec — struktura opisująca parametry akcji, tworzymy ją za
pomocą funkcji stockspec,
Settle — termin wyceny opcji,
Maturity — termin wygaśnięcia opcji,
OptSpec — typ opcji: ’Call’ lub ’Put’,
Strike — cena wykonania opcji.
Bartosz Ziemkiewicz
Matematyka finansowa w pakiecie Matlab
10/31
Model Blacka-Scholesa w Matlabie — przykład
Załóżmy, że aktualna cena akcji (na dzień 1 lipca 2010) wynosi 100.
Współczynnik zmienności σ = 0,2, a roczna stopa procentowa r = 0,1.
Wyznaczymy cenę europejskiej opcji kupna o cenie wykonania K = 100
i terminie wykonania 1 lipca 2011.
>> RateSpec = intenvset(’Compounding’, -1, ’Rates’, 0.1,
’StartDates’, ’1-Jul-2010’,
’EndDates’, ’1-Jul-2011’);
>> StockSpec = stockspec(0.2, 100);
>> Price = optstockbybls(RateSpec, StockSpec, ’1-Jul-2010’,
’1-Jul-2011’, ’Call’, 100)
Price =
13.2697
Oprócz standardowych opcji kupna i sprzedaży możemy również wyceniać opcje binarne typu asset-or-nothing — funkcja assetbybls, lub
typu cash-or-nothing — funkcja cashbybls.
Bartosz Ziemkiewicz
Matematyka finansowa w pakiecie Matlab
11/31
Model Blacka-Scholesa w Matlabie
Omówione funkcje nie są zbyt proste w użyciu, wymagają wcześniejszego
zdefiniowania struktur StockSpec i RateSpec. Pakiet Financial Toolbox
zawiera funkcję blsprice, za pomocą której możemy wyznaczyć cenę
opcji w bardziej przyjazny sposób.
[Call, Put] = blsprice(Price, Strike, Rate, Time,
Volatility, Yield)
Price — cena początkowa instrumentu bazowego,
Strike — cena wykonania opcji,
Rate — roczna stopa procentowa,
Time — czas do wygaśnięcia opcji (w latach),
Volatility — zmienność instrumentu bazowego,
Yield — parametr opcjonalny, jest to stopa dywidendy płaconej
przez akcję (zakłada się, że dywidenda jest płacona w sposób
ciągły).
Funkcja zwraca ceny europejskich opcji kupna i sprzedaży.
Bartosz Ziemkiewicz
Matematyka finansowa w pakiecie Matlab
12/31
Model Blacka-Scholesa w Matlabie — przykład
Sprawdźmy, czy blspricedaje taki sam wynik jak funkcja optstockbybls.
> > [Call, Put] = blsprice(100, 100, 0.1, 1, 0.2)
Call =
13.2697
Put =
3.7534
Widzimy, że cena opcji kupna jest identyczna jak poprzednio.
Funkcja ta jest bardzo wygodna w użyciu, jeżeli okres między terminem
kupna opcji a terminem wygaśnięcia wyraża się w pełnych latach lub
w prostych ułamkach. Jeżeli te dwa terminy są dowolne, to warto się
zastanowić, czy łatwiej będzie przeliczyć okres między nimi na lata, czy
wykorzystać funkcję optstockbybls.
Bartosz Ziemkiewicz
Matematyka finansowa w pakiecie Matlab
13/31
Aproksymacja modelu ciągłego modelami dwumianowymi
Poznaliśmy dwa modele wyceny opcji: dyskretny model
Coxa-Rossa-Rubinsteina (CRR) oparty na drzewach
dwumianowych oraz ciągły model Blacka-Scholesa (BS) oparty na
geometrycznym procesie Wienera.
Powstaje naturalne pytanie o związki między tymi modelami.
Czy jeżeli będziemy zwiększali liczbę poziomów drzewa
dwumianowego, to czy model CRR będzie w jakimś sensie zbiegał
do modelu BS i cena opcji w modelu CRR będzie się zbliżać do
ceny opcji w modelu BS?
Bartosz Ziemkiewicz
Matematyka finansowa w pakiecie Matlab
14/31
Aproksymacja modelu ciągłego modelami dwumianowymi
Rozważmy ciąg modeli CRR skonstruowany w następujący sposób.
Dzielimy przedział czasu [0, T ] na n równych części i zakładamy,
że transakcji możemy dokonywać tylko w chwilach tk = kT
n dla
k = 0, 1, . . . , n.
Ustalmy r > 0 i σ > 0 i określamy rn , an i bn wzorami
T
1 + rn = e r n ,
1 + an = e
1 + bn = e
−σ
σ
q
q
T
n
T
n
,
.
Zakładamy, że dynamikę cen instrumentu pozbawionego ryzyka
opisują równania:
Btn0 = B0n = 1,
Btnj = Btnj−1 (1 + rn ).
Nietrudno zauważyć, że dla wszystkich t ∈ [0, T ]
lim Btn = e rt
n→∞
Bartosz Ziemkiewicz
Matematyka finansowa w pakiecie Matlab
15/31
Aproksymacja modelu ciągłego modelami dwumianowymi
Cena instrumentu ryzykownego wyraża się wzorem
Stn0 = S0n = s > 0,
Stnj = Stnj−1 Ujn ,
gdzie Ujn to niezależne zmienne losowe o rozkładzie
dwupunktowym P(Ujn = 1 + bn ) = pn , P(Ujn = 1 + an ) = 1 − pn .
Prawdopodobieństwo pn wzrostu ceny akcji zadajemy przez
r n − an
pn =
.
bn − an
Wówczas, korzystając z centralnego twierdzenia granicznego,
można pokazać, że dla wszystkich t ∈ [0, T ] ciąg Stn zbiega
według rozkładu do
σ2
St = S0 exp
r−
t + σZ ,
2
gdzie Z ∼ N (0, t).
Bartosz Ziemkiewicz
Matematyka finansowa w pakiecie Matlab
16/31
Aproksymacja modelu ciągłego modelami dwumianowymi
Wynika stąd, że przy przejściu z n do nieskończoności ciąg modeli
CRR zbiega (według rozkładu) do modelu Blacka-Scholesa.
Korzystając z powyższych rozważań, możemy udowodnić, że jeżeli
Ctn jest ceną sprawiedliwą europejskiej opcji kupna w n-tym
modelu CRR, to cena ta zbiega do ceny określonej wzorem
Blacka-Scholesa. Fakt ten jest również prawdziwy dla cen innych
rodzajów opcji, w tym dla opcji zależnych od trajektorii.
Bartosz Ziemkiewicz
Matematyka finansowa w pakiecie Matlab
17/31
Potwierdzenie doświadczalne
Spróbujemy potwierdzić doświadczalnie, że ceny w modelu CRR
zbiegają (wraz ze wzrostem liczby poziomów drzewa) do cen w
modelu BS.
Umiemy już budować drzewa CRR i wyceniać opcje w oparciu o
nie przy pomocy Matlaba.
Możemy łatwo napisać funkcję
> > MyCRRCallPrice(S0, K, r, t0, T, sigma, n)
która będzie wyznaczać cenę europejskiej opcji kupna w oparciu o
model CRR. Ostatni parametr tej funkcji określa liczbę poziomów
drzewa (innymi słowy dokładność aproksymacji).
Załóżmy, że S0 = 100 (na dzień 1 lipca 2010), σ = 0,15,
a r = 0,1.
Rozważmy europejska opcje kupna o cenie wykonania K = 90 i
terminie wykonania T = 1 lipca 2011.
Bartosz Ziemkiewicz
Matematyka finansowa w pakiecie Matlab
18/31
Potwierdzenie doświadczalne
Wyznaczmy najpierw prawdziwą cenę Blacka-Scholesa.
> > blsprice(100, 90, 0.1, 1, 0.15)
ans =
19.0947
Cena tej opcji w modelu CRR dla n = 10, 100, 1000 to
> > MyCRRCallPrice(100, 90, 0.1, ’01-Jul-2010’,
’01-Jul-2011’, 0.15, 10)
ans =
19.0601
> > MyCRRCallPrice(100, 90, 0.1, ’01-Jul-2010’,
’01-Jul-2011’, 0.15, 100)
ans =
19.0984
> > MyCRRCallPrice(100, 90, 0.1, ’01-Jul-2010’,
’01-Jul-2011’, 0.15, 1000)
ans =
19.0944
Bartosz
Ziemkiewicz
finansowa
pakiecie
Widzimy, że wraz
ze wzrostem
n Matematyka
cena zbliża
się wdo
cenyMatlab
19/31
Potwierdzenie doświadczalne
Widzimy, że wraz ze wzrostem n cena zbliża się do ceny
Blacka-Scholesa.
Dla n = 1000 błąd pojawia się dopiero na czwartym miejscu po
przecinku.
Zależność błędu od dokładności aproksymacji przedstawia rysunek.
Bartosz Ziemkiewicz
Matematyka finansowa w pakiecie Matlab
20/31
Metody Monte Carlo
W przypadku opcji o skomplikowanej funkcji wypłaty, znalezienie
ceny może być trudne niezależnie od tego, czy korzystamy z
dwumianowego modelu CRR czy ciągłego modelu Blacka-Scholesa.
Metodami Monte Carlo nazywamy klasę metod, które do
numerycznego rozwiązywania złożonych zagadnień wykorzystują
generowane komputerowo liczby pseudolosowe odpowiadające
możliwym parametrom wejściowym badanego układu (opisanego
modelem matematycznym).
Idee tej metody przedstawili w latach 40. XX wieku naukowcy
pracujący w laboratorium w Los Alamos przy projekcie Manhattan:
Stanisław Ulam, John von Neumann, Enrico Fermi i Nicholas
Metropolis.
Metody Monte Carlo stosowane są w różnych dziedzinach, przy
projektowaniu eksperymentów fizycznych (np. doświadczeń z
cząstkami elementarnymi), modelowaniu procesów fizycznych (np.
powstawania struktur we wszechświecie itp.), bądź zjawisk
ekonomicznych.
Bartosz Ziemkiewicz
Matematyka finansowa w pakiecie Matlab
21/31
Metody Monte Carlo
Nie ma jednej metody Monte Carlo. Nazwa ta opisuje szeroką
klasę różnych metod. Ogólny schemat ich działania jest jednak
podobny. Należy
określić przestrzeń możliwych wyników doświadczenia,
powtórzyć doświadczenie określoną liczbę razy,
przeprowadzić odpowiednie obliczenia (deterministyczne) na
wynikach poszczególnych doświadczeń,
zebrać wyniki pojedynczych obliczeń i przedstawić końcowy
rezultat.
W matematyce metody Monte Carlo stosujemy między innymi do
obliczania całek, w szczególności wielowymiarowych, w których
obszar całkowania ma skomplikowany kształt. Pewnego rodzaju
całką jest również wartość oczekiwana zmiennej losowej.
Ideę działania metody Monte Carlo pokażemy właśnie na
przykładzie obliczania wartości oczekiwanej.
Bartosz Ziemkiewicz
Matematyka finansowa w pakiecie Matlab
22/31
Metody Monte Carlo, a wartość oczekiwana
Załóżmy , że mamy całkowalną zmienną losową X i chcemy
wyznaczyć jej wartość oczekiwaną EX .
Jeżeli umiemy wygenerować ciąg niezależnych zmiennych losowych
X1 , X2 , . . . , Xn o takim samym rozkładzie jak rozkład zmiennej X ,
to z mocnego prawa wielkich liczb wynika, że
X1 + X2 + . . . + Xn
= EX .
n→∞
n
lim
Oznacza, to że dobrym oszacowaniem wartości oczekiwanej jest
średnia z pewnej (odpowiednio dużej) liczby elementów ciągu.
Bartosz Ziemkiewicz
Matematyka finansowa w pakiecie Matlab
23/31
Wycena opcji metodą Monte Carlo
Pokazaliśmy wcześniej, że cena opcji w modelu Blacka-Scholesa
jest zdyskontowaną wartością oczekiwaną jej funkcji wypłaty fT
względem pewnej miary probabilistycznej Q, tzn.
C0 = e −rT E Q fT (St ).
Aby skorzystać z metody Monte Carlo, musimy wygenerować
odpowiednio dużą liczbę trajektorii procesu ceny akcji St i obliczyć
wartość funkcji wypłaty dla każdej z tych trajektorii.
Na koniec obliczymy średnią wartość funkcji wypłaty
i zdyskontujemy ją.
Otrzymana wartość powinna być zbliżona do sprawiedliwej ceny
opcji.
Jakość tego przybliżenia zależy od liczby symulacji i jakości
używanego generatora liczb losowych.
Bartosz Ziemkiewicz
Matematyka finansowa w pakiecie Matlab
24/31
Wycena opcji metodą Monte Carlo
Nie jesteśmy w stanie wygenerować wartości procesu ceny akcji w
każdym punkcie z przedziału [0, T ].
Możemy jedynie symulować go w skończonej liczbie punktów
0 = t0 < t1 < . . . < tn = T i przyjąć, że funkcja wypłaty zależy
tylko od wartości cen akcji w tych punktach. Po przeprowadzeniu
n symulacji cenę opcji wyznaczamy ze wzoru
" n
#
X
−rT 1
k
k
k
C0 = e
f (St0 , St1 , . . . , Stn ) .
n
k=1
Jest to kolejne potencjalne źródło niedokładności w wycenie.
Jeżeli np. wypłata opcji zależy od maksymalnej ceny akcji w
przedziale [0, T ], to może się zdarzyć, że cena osiąga maksimum w
punkcie różnym od tych, w których symulujemy proces St .
Należy więc odpowiednio dobrać odległości pomiędzy punktami
t0 , t1 , . . . tn . Jeżeli będą zbyt duże, to wynik będzie niedokładny,
jeżeli zbyt małe, to obliczenia będą trwały za długo.
Bartosz Ziemkiewicz
Matematyka finansowa w pakiecie Matlab
25/31
Wycena opcji metodą Monte Carlo
Spróbujemy teraz wyznaczyć za pomocą metody Monte Carlo cenę
europejskiej opcji kupna o funkcji wypłaty fT = (ST − K )+ .
Przypomnijmy, że w modelu Blacka-Scholesa cenę akcji
modelujemy za pomocą geometrycznego procesu Wienera, tzn.
1 2
St = S0 exp
r − σ t + σWt ,
2
gdzie Wt jest standardowym procesem Wienera względem miary
Q.
Pokazaliśmy wcześniej , że
+
1 2
−rT Q
C0 = e
E
S0 exp
r − σ T + σWT − K
.
2
Jedyną losową wielkością w tym wzorze jest WT . Z własności
procesu Wienera wiemy, że WT ∼ N (0, T ).
Bartosz Ziemkiewicz
Matematyka finansowa w pakiecie Matlab
26/31
Wycena opcji metodą Monte Carlo
Cena europejskiej opcji kupna zależy tylko od ceny akcji w chwili
T , nie musimy więc generować całej trajektorii procesu cen.
Wystarczy generować wartości tego procesu w chwili T .
Wystarczy więc wygenerować ciąg niezależnych zmiennych
losowych X1 , X2 , . . . , Xn o takim samym rozkładzie N (0, T )
i wyznaczyć cenę opcji z wzoru:
" n + #
X
1
1
C0 = e −rT
S0 exp
r − σ 2 T + σXk − K
.
n
2
k=1
Bartosz Ziemkiewicz
Matematyka finansowa w pakiecie Matlab
27/31
Wycena opcji metodą Monte Carlo
Oto prosta funkcja wyznaczająca ceny europejskiej opcji kupna o zadanych parametrach za pomocą metody Monte Carlo.
function C = my_montecarlo(S0,K,r,T,sigma,n)
% generujemy n zmiennych losowych o rozkładzie N(0,T)
X = sqrt(T) * randn(1,n);
% obliczamy wartosci funkcji wypłaty w chwili T
% dla wszystkich wartosci zmiennej X
f = max(S0*exp( (r-0.5*sigma^2) * T + sigma * X) - K,0);
% obliczamy średnią wartość funkcji wypłaty i ją dyskont.
C = exp(-r*T) * mean(f);
Bartosz Ziemkiewicz
Matematyka finansowa w pakiecie Matlab
28/31
Wycena opcji metodą Monte Carlo
Sprawdzimy działanie funkcji dla S0 = 100, K = 90, r = 0,1, T = 1
i σ = 0,15. Obliczymy najpierw dokładną cenę Blacka-Scholesa.
> > blsprice(100, 90, 0.1, 1, 0.15)
ans =
19.0947
Ustalmy liczbę symulacji n na 10 000 i wywołajmy kilka razy funkcję.
> > my_montecarlo(100, 90, 0.1, 1, 0.15,10000)
ans =
19.1307
> > my_montecarlo(100, 90, 0.1, 1, 0.15,10000)
ans =
19.1841
> > my_montecarlo(100, 90, 0.1, 1, 0.15,10000)
ans =
19.2360
Widzimy, że błąd wynosi około 0,1 – 0,15.
Bartosz Ziemkiewicz
Matematyka finansowa w pakiecie Matlab
29/31
Wycena opcji metodą Monte Carlo
Spróbujmy zwiększyć liczbę symulacji do 1 000 000.
> > my_montecarlo(100, 90, 0.1, 1, 0.15,1000000)
ans =
19.1000
> > my_montecarlo(100, 90, 0.1, 1, 0.15,1000000)
ans =
19.0843
> > my_montecarlo(100, 90, 0.1, 1, 0.15,1000000)
ans =
19.1121
Po 100-krotnym zwiększeniu liczby symulacji błąd zmniejszył się około
10-krotnie do 0,01 – 0,02. Jest to charakterystyczna cecha metod
Monte Carlo — n-krotne zwiększenie liczby symulacji powoduje około
√
n-krotne zmniejszenie wielkości błędu.
Bartosz Ziemkiewicz
Matematyka finansowa w pakiecie Matlab
30/31
Wycena opcji metodą Monte Carlo
Spróbujemy teraz znaleźć cenę sprawiedliwą opcji typu lookback o funkcji
wypłaty
f (St ) = (ST − min St )+ .
t∈[0,T ]
Jest to opcja zależna od trajektorii i do wyznaczenia jej ceny będziemy
potrzebować całych trajektorii procesu St . Wyznaczanie ceny możemy
podzielić na kilka etapów:
Piszemy funkcję generującą trajektorie procesu Wienera Wt .
Korzystając z tej funkcji generujemy trajektorie procesu cen akcji.
Dla każdej wygenerowanej trajektorii wyznaczamy wartość opcji w
chwili T .
Po wygenerowaniu liczby trajektorii obliczamy średnią wartość
opcji.
Dyskontujemy tę średnią i uzyskujemy cenę opcji (przybliżoną).
Bartosz Ziemkiewicz
Matematyka finansowa w pakiecie Matlab
31/31
Download