Posty otagowanedrzewko dwumianowe
Opcje amerykańskie na drzewku dwumianowym
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 . 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 . Wtedy cena amerykańskiej opcji sprzedaży o cenie realizacji K wynosi dla każdego węzła
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 wówczas nie realizujemy opcji, gdyż nic na tym nie zyskamy. W przeciwnym razie możemy zrealizować opcję zarabiając
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
z ceną jaką ma opcja jeśli jej nie zrealizujemy
Oczywiście wybieramy maksimum z dwóch powyższych i wtedy
To samo rozumowanie stosujemy do kolejnych węzłów cofając się na drzewku. Wtedy
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.
Add comment maj 30, 2008
