Projekt 2: Optionsbewertung

In zeitdiskretisierten Finanzmarktmodellen wird die Entwicklung eines Aktienkurses in einem Zeitintervall [0,T] beschrieben durch eine stochastische Differenzengleichung vom Typ

({{(Subscript[({{S}}), k])-(Subscript[S, k-1]) = r·(Subscript[S, k-1])·Δt+σ·(Subscript[S, k-1])·(Subscript[Y, k])·(Sqrt[Δt])               (k=1,2,....,n),            (Subscript[S, 0])=(Subscript[s, 0]).}})

Dabei ist n die Schrittzahl, Δt=T/n die Schrittweite der Zeitdiskretisierung, (Subscript[s, 0]) der Kurs am Anfang des Zeitintervalls, und (Subscript[S, k]) der Aktienkurs zur Zeit k·Δt. Insbesondere ist (Subscript[S, n]) der Kurs zur Zeit T=n·Δt. Die reellwertigen Zufallsvariablen (Subscript[Y, 1]),(Subscript[Y, 2]),...,(Subscript[Y, n])  sind unabhängig und identisch verteilt mit

({{({{E[(Subscript[Y, k])]=0          und          Var[(Subscript[Y, k])]=1.}})}})

Der "Drift" r und die "Volatilität" σ sind positive Konstanten, die zunächst beliebige Werte annehmen können. Betrachtet man das Modell unter der "risikoneutralen Wahrscheinlichkeitsverteilung", dann ist r der aktuelle Zinssatz, siehe z.B. Albrecher, Binder, Mayer: Einführung in die Finanzmathematik. 
Die Gleichung oben kann man als Zeitdiskretisierung der dem Black-Scholes-Modell zugrundeliegenden stochastischen Differentialgleichung interpretieren (Nobelpreis für Wirtschaftswissenschaften 1997 für Scholes und Merton). Für die Zufallsvariablen (Subscript[Y, k]) kann man verschiedene Verteilungen zugrundelegen, die unterschiedlichen Zeitdiskretierungen der stochastischen Differentialgleichung entsprechen:

Binomialmodell

Im einfachsten Fall nimmt man an, daß die Zufallsvariablen (Subscript[Y, k]) die Werte +1 und -1 jeweils mit Wahrscheinlichkeit 1/2 annehmen. Dann verändert sich der Aktienkurs in jedem Schritt jeweils mit Wahrscheinlichkeit 1/2 um einen der Faktoren
({{({{u = 1+r·Δt+σ·(Sqrt[Δt])}})            bzw.}})
({{({{d = 1+r·Δt-σ·(Sqrt[Δt])}})                       .}})

Diskretes Black-Scholes-Modell

Eine bessere Diskretisierung der stochastischen Differentialgleichung des Black-Scholes-Modells erhält man, wenn man annimmt, daß die Zufallsvariablen (Subscript[Y, k]) standardnormalverteilt sind, d.h.

({{({{P[a≤(Subscript[Y, k])≤b] = (∫_a^b)(1/(Sqrt[2π]))(e^(-(x^2)/2))dx}})         für alle  a,b∈ℝ mit a≤b.}})

Standardnormalverteilte Stichproben simuliert man in Mathematica mit RandomReal[NormalDistribution[0, 1]].

Optionen

Eine Aktienoption gibt dem Besitzer das Recht (aber nicht die Pflicht), eine zugrundeligende Aktie zu einem bestimmten Zeitpunkt n (europäische Option) bzw. bis zur Zeit n (amerikanische Option) zu einem bestimmten Preis zu kaufen oder zu verkaufen. Der Payoff einer Option ist ihr Wert V zum Zeitpunkt n - dieser hängt i.a. vom Kursverlauf bis zur Zeit n ab:

({{({{V = V((Subscript[S, 0]),(Subscript[S, 1]),...,(Subscript[S, n]))}})}})

Europäische Call-Option

Diese Option erlaubt es dem Besitzer, die Aktie zur Zeit n zum vorgegebenen Preis K zu kaufen. Der Payoff beträgt also (Subscript[S, n])-K, falls (Subscript[S, n])>K, und 0 sonst, d.h.

({{({{V = max ((Subscript[S, n])-K,0) }}).}})

Europäische Up-and-Out-Barrier-Option

Diese Option unterscheidet sich von der europäischen Call-Option durch die zusätzliche Einschränkung, dass sie Null auszahlt, falls der Aktienpreis innerhalb der Laufzeit den Level  B (die Barrier) überschreitet. Der Payoff ist

({{({{V = max ((Subscript[S, n])-K,0)·(Subscript[I, {(Subscript[S, l])≤B für alle l=0,1,...,n}]) .}})}})

Fairer Optionspreis

Setzt man voraus, daß es in dem Modell nicht möglich ist, einen risikolosen Gewinn zu machen 
("No Arbitrage Bedingung"), dann kann man zeigen, daß der Optionspreis (Subscript[v, 0]) zur Zeit 0 sich wie folgt berechnet:

({{({{(Subscript[v, 0]) = (((1+r Δt))^(-n))·E[V]}})}})

Hierbei ist E[V] der Erwartungswert des Payoffs unter der risikoneutralen WV.

Binomialmodell

Im Binomialmodell kann man den fairen Preis europäischer Call-Optionen exakt berechnen. Es gilt

({{({{(Subscript[S, k]) = (Subscript[s, 0])·(u^(Subscript[N, k]))·(d^(k-(Subscript[N, k])))}})        (k=0,1,...,n),}})

wobei (Subscript[N, k])=|{1≤l≤k: (Subscript[Y, l])=1}| die Anzahl der "günstigen" Kursverläufe in den ersten k Schritten ist. Für i=0,1,2,...,k sei

({{({{(Subscript[v, k,i]) = (((1+r Δt))^(-(n-k)))·E[V|(Subscript[N, k])=i].}})}})

Wir können (Subscript[v, k,i]) interpretieren als fairen Optionspreis zur Zeit k, wenn der Aktienkurs zu dieser Zeit den Wert (Subscript[S, k])=(Subscript[S, 0])·(u^i)·(d^(k-i)) hat. Insbesondere ist (Subscript[v, 0,0])=(Subscript[v, 0]) der gesuchte faire Optionspreis zur Zeit 0, und

({{({{(Subscript[v, n,i]) = }}) max ((Subscript[s, 0])·(u^i)·(d^(n-i))-K,0)                 (i=0,1,...,n).}})

Es gilt die Rekursionsformel

({{(Subscript[({{v}}), k-1,i]) = (1/2)((Subscript[v, k,i])+(Subscript[v, k,i+1]))/(1+r Δt)               (k=n,n-1,...,1).}})

Aus (2) und (3) ergibt sich der folgende Rückwärtsalgorithmus zur Berechnung von (Subscript[v, 0]), siehe Albrecher, Binder, Mayer: Einführung in die Finanzmathematik, Kapitel X:

BinomialEuropeanCall[s0_,K_,r_,sigma_,T_,n_]:=Module[{dt,u,d,q,BinomTree,value},
dt=T/n;
u=1+r*dt+sigma*Sqrt[dt];
d=1+r*dt-sigma*Sqrt[dt];
q=1/2;
BinomTree=Table[Max[s0*u^i*d^(n-i)-K,0],{i,0,n}];
Do[
BinomTree=Table[(1/(1+r*dt))*{q,1-q}.{BinomTree[[i+2]],BinomTree[[i+1]]},
{i,0,k}],
{k,n-1,0,-1}];
value=BinomTree[[1]];
Clear[BinomTree];
value]

Der faire Preis einer europäischen Up-and-Out-Barrier-Option kann auf ähnliche Weise rekursiv berechnet werden, s.u.

Diskretes Black-Scholes-Modell

Da in diesem Modell der Kurs sich in jedem Schritt um unendlich viele verschiedene Werte ändern kann, ist eine exakte Berechnung des fairen Optionspreises wie im Binomialmodell nicht mehr möglich. Es gibt verschiedene numerische Verfahren zur approximativen Berechnung des Erwartungswerts. Eine Möglichkeit sind Monte Carlo Methoden: Man simuliert N Stichproben ((Subscript[s, 0]^((j))),(Subscript[s, 1]^((j))),...,(Subscript[s, n]^((j)))), j=1,...,N, von Verläufen des Aktienkurses, und schätzt den Erwartungswert ϑ=E[V] durch das arithmetische Mittel

({{(Subscript[({{(OverHat[ϑ])}}), N]) = (1/N)(∑_(j=1)^N)((v )^((j)))}})

der jeweiligen Payoffs (v^((j))). In einfachen Fällen (z.B. europäische Call-Option) sind Monte Carlo Verfahren nicht so effizient wie andere Methoden - sie lassen sich aber leicht auf exotischere Optionen und komplexere Modelle übertragen, bei denen andere Verfahren versagen.

Aufgabenstellung

Optionsbewertung im Binomialmodell

Zeigen Sie, daß die Rekursionsformel (3) aus der Markoveigenschaft des stochastischen Prozesses (Subscript[N, k]), k=0,1,...,n, folgt.

Erstellen Sie mithilfe des obigen Algorithmus einen Plot vom Verlauf des fairen Preises einer europäischen Call-Option für K=100, r=0.05, σ=0.3, T=7/365 und n=40 für Anfangskurse (Subscript[s, 0]), die zwischen 90 und 120 variieren. Erklären Sie in wenigen Worten, warum der Verlauf nicht überraschend ist.

Als nächstes wollen wir den Effekt der Anzahl der Zeitdiskretisierungsschritte auf den Optionspreis untersuchen. Plotten Sie den Verlauf des Optionspreises für obige Parameter und (Subscript[s, 0])=100, wenn n zwischen 20 und 140 bzw. zwischen 20 und 1200 variiert. Wie könnte man ein zuverlässigeres Ergebnis auch schon mit einer geringen Anzahl von Diskretisierungsschritten erhalten ?

Um den Preis einer europäischen Up-and-Out-Barrier-Option zu berechnen, betrachten wir für k=n,n-1,...,0 die Werte
({{({{(Subscript[v, k,i]) = (((1+r Δt))^(-(n-k)))·E[(Subscript[V, k])|(Subscript[N, k])=i]                     (i=0,1,...,k),}})}})
wobei({{({{(Subscript[V, k]) := max ((Subscript[S, n])-K,0)·(Subscript[I, {(Subscript[S, l])≤B für l=k,k+1,...,n}]) .}})                                        }})
Zeigen Sie, daß die Rekursionsformel
({{(Subscript[({{v}}), k-1,i]) =(Piecewise[{{(1/2)((Subscript[v, k,i])+(Subscript[v, k,i+1]))/(1+r Δt) , falls  (Subscript[s, 0])·(u^i)·(d^(k-i))≤B }, {0, falls  (Subscript[s, 0])·(u^i)·(d^(k-i))>B}}])                }})
mit Anfangsbedingung
({{({{(Subscript[v, n,i]) =(Piecewise[{{max ((Subscript[s, 0])·(u^i)·(d^(n-i))-K,0),        falls  K<(Subscript[s , 0])·(u^i)·(d^(n-i)) <B}, {0,        sonst}}])}})}})
gilt. Erstellen Sie durch Modifikation des obigen Algorithmus eine Mathematica-Funktion BinomialEuropeanUO[s0_, K_,B_, r_, sigma_, T_, n_], die den Preis einer europäischen Up-and-Out-Barrier-Option berechnet.

Plotten Sie den Verlauf des Preises der Up-and-Out-Barrier-Option für K=100, B=120, r=0.05, σ=0.3, T=7/365 und n=40 bzw. n=200  für Anfangskurse (Subscript[s, 0]), die zwischen 90 und 120 variieren. Wählen Sie dabei eine hinreichend feine Diskretisierung der (Subscript[s, 0])-Achse, etwa (Subscript[s, 0])=90, 90.1, 90.2, ...,120. Im wesentlichen steigt der Preis bis zu einem gewissen Wert an, und beginnt dann zu fallen. Erklären Sie dieses Verhalten anschaulich.

Für Anwendungen ist es sehr wichtig, die sogenannten "Griechen", d.h. die Ableitungen des Optionspreises nach den Parametern (Subscript[s, 0]), r, σ... akkurat berechnen zu können, um Optionen in geeigneter Weise absichern zu können (zu "hedgen"). Betrachten Sie noch einmal den Plot aus 1.5. Warum ist das Binomialmodell nicht sehr gut dazu geeignet, das "Delta", d.h. die Ableitung des Preises eines europäischen Up-and-Out-Calls nach dem Anfangskurs (Subscript[s, 0]) zu schätzen?

Optionsbewertung im zeitdiskreten Black-Scholes-Modell

Wir betrachten nun das diskrete Black-Scholes-Modell mit normalverteilten Inkrementen, für das eine exakte Preisberechnung nicht mehr möglich ist.

Simulieren Sie N=50 Kursverläufe für die Parameter aus 1.5 mit (Subscript[s, 0])=100 und (Subscript[s, 0])=115. Stellen Sie diese Kursverläufe in einem Plot graphisch dar.

Schreiben Sie Mathematica Funktionen EuropeanCallMC[s0_, K_, r_, sigma_, T_, n_, N_] und EuropeanUOMC[s0_, K_, B_,r_, sigma_, T_, n_, N_], die jeweils eine Liste {(v^((1))),...., (v^((N)))} von Payoffs europäischer Call bzw. europäischer Up-and-Out-Barrier-Optionen für N simulierte Kursverläufe erzeugen. Achten Sie darauf, ein effizientes Programm zu erstellen, das nicht zuviel Speicherplatz verbraucht (- die gesamten Kursverläufe müssen nicht gespeichert werden !)

Berechnen Sie Monte-Carlo-Schätzer (Subscript[(OverHat[ϑ]), N]) für den Erwartungswert ϑ=E[V] und (Subscript[(OverHat[σ]), N]) für die Standardabweichung σ(V). Als Monte-Carlo-Schätzer für die Standardabweichung können Sie
({{(Subscript[({{(OverHat[σ])}}), N]) =(Sqrt[ (1/(N-1))(∑_(j=1)^N)(((((v )^((j)))-(Subscript[(OverHat[ϑ]), N])))^2)])}})
verwenden. Berechnen Sie daraus einen Schätzwert mit Fehlerangabe für den fairen Optionspreis (Subscript[v, 0]) für die Parameter von oben (s. 2.1) und N=10000. Vergleichen Sie mit den Ergebnissen für das Binomialmodell.

Berechnen Sie für die Parameter von oben auch Monte-Carlo-Schätzer für 
({{({{Delta  := (((1+r Δt))^(-n))·((∂E[V])/(∂(Subscript[s, 0])))}})}})
Simulieren Sie dazu Kursverläufe (v^((j))) und  (w^((j))) mit Startwerten (Subscript[s, 0]) und (Subscript[s, 0])+h (z.B. für h=0.1) unter Verwendung derselben Zufallszahlen, und verwenden Sie den Monte-Carlo-Schätzer 
({{ (1/N)(∑_(j=1)^N)((((w )^((j)))-(v^((j))))/h)}})
für den Differentialquotienten.