Opcje amerykańskie na drzewku dwumianowym

maj 30, 2008

Opcja amerykańska daje jej posiadaczowi prawo do realizacji opcji w dowolnej chwili przed wygaśnięciem. Załóżmy, że mamy amerykańską opcję sprzedaży (american put) o terminie wygaśnięcia T. Zatem możemy ją zrealizować w dowolnej chwili t \in [0,T]. W jaki sposób wycenić taki kontrakt przy użyciu drzewka dwumianowego? Bardzo prosto…

Z matematycznego punktu widzenia musimy być ostrożni przy interpretacji czasu realizacji t. Gdybyśmy przyjęli strategię: realizuj opcję wtedy, gdy cena akcji osiągnie maksimum na [0,T]. Taka strategia nie ma sensu, gdyż nie możemy wiedzieć czy cena już osiągnęła swoje maksimum czy też dopiero osiągnie. Dlatego decyzję o realizacji musimy podejmować na podstawie informacji dostępnej w momencie realizacji. Zatem czas realizacji musi być momentem zatrzymania (czasami też nazywany momentem Markowa).

Wycena opcji na drzewku dwumianowym jest dosyć prosta. Przyjmujemy, że stała stopa procentowa jest równa r. Odcinek czasu [0,T] dzielimy na N równych części dt=T/N. Po drzewku przesuwamy się w prawo. Za każdym krokiem cena S może wzrosnąć prawdopodobieństwem p do ceny Su lub spaść z prawdopodobieństwem (1-p) do ceny Sd. Węzły drzewka oznaczamy (i,j).

Weźmy ostatnie węzły drzewka o N krokach tzn. (i,N) w których cena akcji wynosi S_{iN}=Su^id^{N-i}. Wtedy cena amerykańskiej opcji sprzedaży o cenie realizacji K wynosi dla każdego węzła

f_{iN} = \max\{K-S_{iN},0\}

Cofnijmy się o jeden krok w tył do węzłów (i,N-1). Tutaj już mamy możliwość zdecydowania czy chcemy realizować opcję czy też czekamy dalej. Jeśli S_{i,N-1}>K wówczas nie realizujemy opcji, gdyż nic na tym nie zyskamy. W przeciwnym razie możemy zrealizować opcję zarabiając K-S_{i,N-1} lub też czekać z nadzieją że w przyszłości osiągniemy większy zysk z realizacji opcji. W ogólności tego typu problemy nie są łatwe do rozwiązania, lecz w naszym przypadku jest to proste.

Porównujemy ze sobą zysk, który uzyskujemy z natychmiastowej realizacji

K-S_{i,N-1}

z ceną jaką ma opcja jeśli jej nie zrealizujemy

e^{-r dt}(pf_{i+1,N} + (1-p)f_{i,N})

Oczywiście wybieramy maksimum z dwóch powyższych i wtedy

f_{i,N-1}=\max\{K-S_{i,N-1}, e^{-r dt}(pf_{i+1,N} + (1-p)f_{i,N})\}

To samo rozumowanie stosujemy do kolejnych węzłów cofając się na drzewku. Wtedy

f_{i,j}=\max\{K-S_{i,j}, e^{-r dt}(pf_{i+1,j+1} + (1-p)f_{i,j+1})\}

To właściwie wszystko co jest potrzebne do implementacji takiego sposobu wyceny. Zaczynamy od ostatnich węzłów drzewa(nie wiem jak finansista, ale informatyk nazwałby je liściami) i rekurencyjnie przechodzą do początku drzewa (korzenia) wyliczamy cenę naszej opcji.

Zanim podam przykładowy sposób implementacji, kilka uwag.

Zajmowaliśmy się opcją sprzedaży. Amerykańska opcja kupna jest mało interesująca( a może właśnie dlatego jest interesująca) z tego względu, że możliwość wcześniejszej realizacji nie wnosi nic do jej ceny. Innymi słowy amerykańska opcja kupna ma taką samą cenę jak opcja europejska z tymi samymi parametrami.

Pokazałem tutaj tylko sposób wyceny, przy uzasadnieniu tej metody machałem jednak rękami. Uzasadnienie, że jest to dobry sposób wyceny nie jest tak banalne, ale na razie to musi nam wystarczyć.

Na koniec kod Matlab.

function price = AmPutBin(S0,K,r,T,sigma,N)

%wyliczenie stałych wartości
dt = T/N;
u=exp(sigma * sqrt(dt));
d=1/u;
p=(exp(r*dt) - d)/(u-d);
discount = exp(-r*dt);
pu = discount*p;
pd = discount*(1-p);

% ustalenie cen S
S = zeros(2*N+1,1);
S(N+1) = S0;
for i=1:N
S(N+1+i) = u*S(N+i);
S(N+1-i) = d*S(N+2-i);
end

% wyliczenie wartości w liściach
f = zeros(2*N+1,1);
for i=1:2:2*N+1
f(i) = max(K-S(i),0);
end

% cofamy się na drzewie
for t=1:N
for i= (t+1):2:(2*N+1-t)
hold = pu*f(i+1) + pd*f(i-1);
f(i) = max(hold, K-S(i));
end
end
price = f(N+1);

Radzę pobawić się trochę. Spróbować dla różnyośćch wartości S0 i dla różnych N. Sprawdzić jak wygląda zbieżność itp.

Entry Filed under: Finanse, Instrumenty pochodne. Tagi: , , , , .

Leave a Comment

Required

Required, hidden

Some HTML allowed:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <pre> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Trackback this post  |  Subscribe to the comments via RSS Feed


Kategorie

Archiwa

Tagi

drzewko dwumianowe logika martyngał matlab opcje opcje amerykańskie rynek efektywny ryzyko wycena opcji zadanie zagadka logiczna

Kanały