---------------------------------------------------
#                                                 #
#    Chapter 9: Stochastic Volatility Models      #
#                                                 #
---------------------------------------------------


Das GARCH(1,1)-Modell, mit dem wir bisher den besten 
Fit an reale Zeitreihen-Daten bekommen hatten, im 
Sinne der Maximum-Likelihood-Methode, war gegeben 
durch

S(t_k) = S(t_{k-1}) * [ 1 + vol(t_{k-1})*phi_k ]                  (1)

mit der Vol-Spezifikation

  vol^2(t_k) =                                                    (2)

      alpha0 + alpha1 * ret^2(t_k) + beta1 * vol^2(t_{k-1})      

Gleichung (1) koennen wir auch Gleichung fuer die 
returns umschreiben, naemlich 

 ret(t_k) = [ S(t_k)-S(t_{k-1}) ] / S(t_{k-1})

          = vol(t_{k-1}) * phi_k                                  (3)

oder

 ret^2(t_k) = vol^2(t_{k-1}) * phi_k^2                            (4)

Das koennen wir auf der rechten Seite von (2) einsetzen:

  vol^2(t_k) = alpha0                                             

      alpha1 * vol^2(t_{k-1}) * phi_k^2 + beta1 * vol^2(t_{k-1})     

    = alpha0 + [ alpha1 + beta1 ] * vol^2(t_{k-1})

      + alpha1 * vol^2(t_{k-1}) * ( phi_k^2 - 1 )                 (5)

Der Grund fuer die Art und Weise der Klammerung in (5) 
wird deutlicher, wenn wir uns an die geeignete Parametri-
sierung des GARCH(1,1)-Modells erinnern: Wir hatten 

    alpha0 = (1-w)*w0*bsvol^2
    alpha1 = (1-w)*(1-w0)                                         (6)
    beta1  = w 

mit w = 1 - 1/d, so dass

    alpha1 + beta1 = 1-w - w0*(1-w) + w
                   = 1 - w0*(1-w)
                   = 1 - w0/d

Damit wird aus (5)

vol^2(t_k) = w0/d * bsvol^2 + (1-w0/d) * vol^2(t_{k-1}) 

             + alpha1 * vol^2(t_{k-1}) * ( phi_k^2 - 1 )  

  = vol^2(t_{k-1}) + w0/d * [ bsvol^2 - vol^2(t_{k-1}) ]

    + alpha1 * vol^2(t_{k-1}) * ( phi_k^2 - 1 )                   (7)

Die Zufallszahlen 

    psi_k := ( phi_k^2 - 1 ) / sqrt(2)                            (8)

haben wieder Mittelwert 0 und Standardabweichung 1 (aber 
sind natuerlich nicht mehr normalverteilt). Mit der 
Abkuerzung 

  Delta_vol^2(t_k) :=  vol^2(t_k) - vol^2(t_{k-1})                (9)

koennen wir (7) dann auch in folgender Form schreiben: 


Delta_vol^2(t_k) = w0/d * [ bsvol^2 - vol^2(t_{k-1}) ]

                 + sqrt(2)*alpha1 * vol^2(t_{k-1}) * psi_k       (10)


Gleichung (10) hat die typische Form eines mean-reverting 
stochastischen Prozesses: Ist vol^2(t_{k-1}) groesser als 
bsvol^2, dann ist bsvol^2 - vol^2(t_{k-1}) negativ und 
vol^2(t_k) wird im Mittel (die psi_k haben Erwartungswert 0) 
eher kleiner sein als vol^2(t_{k-1}), und ist vol^2(t_{k-1}) 
kleiner als bsvol^2, dann ist bsvol^2 - vol^2(t_{k-1}) positiv, 
so dass vol^2(t_k) im Mittel eher groesser sein wird als 
vol^2(t_{k-1}). 

Die Vol-Spezifikation (10) ist nach wie vor aequivalent zur 
Spezifikation (2) mit dem Preisprozess (1), wir haben das 
ja nur etwas umgeschrieben. Beim Modell (1,2), wie bei allen 
Modellen, die wir bisher betrachtet haben, ist die Volatili-
taet vollstaendig bestimmt durch die return-Historie. Das 
ist nun bei Modellen mit stochastischer Volatilitaet anders, 
dort waehlt man einen zweiten set von standard-normalverteil-
ten Zufallszahlen 

       eps_1, eps_2, eps_3, ...    in N(0,1)                     (11)

und erlaubt es der Volatilitaet, sich stochastisch zu ent-
wickeln. Das heisst, man betrachtet folgendes Modell:

S(t_k) = S(t_{k-1}) * [ 1 + vol(t_{k-1})*phi_k ]                  (1)

mit der Vol-Spezifikation

Delta_vol^2(t_k) = w0/d * [ bsvol^2 - vol^2(t_{k-1}) ]

                 + sqrt(2)*alpha1 * vol^2(t_{k-1}) * eps_k       (12)

Typischerweise sind dabei die Zufallszahlen eps_k und phi_k 
negativ korreliert: Geht der Markt runter, steigt typischer-
weise das Volatilitaetsniveau. Wir werden zunaechst unkor-
relierte Zufallszahlen eps_k und phi_k betrachten und uns 
ueberlegen muessen, wie wir denn die Likelihood-Funktion 
berechnen koennen, das wird bereits fuer diesen Fall nicht 
ganz einfach sein. 

Bevor wir jedoch das Problem der Parameterschaetzung fuer 
stochastic volatility models betrachten, sollen an dieser 
Stelle einige gebraeuchliche stochastic volatility models 
aufgelistet werden: Der Preis-Prozess lautet fuer saemt-
liche Modelle 

     S(t_k) = S(t_{k-1}) * [ 1 + vol(t_{k-1})*phi_k ] ; 

was variiert, ist jeweils der Vol-Prozess:


1) Das GARCH-Diffusion Modell: Das ist das Modell (12):

Delta_vol^2(t_k) = kappa * [ bsvol^2 - vol^2(t_{k-1}) ]

                    + beta * vol^2(t_{k-1}) * eps_k              (13)


2) Das Heston-Modell: Ist wie das Modell (13), nur in 
   der letzten Zeile nimmt man vol, nicht vol^2:

Delta_vol^2(t_k) = kappa * [ bsvol^2 - vol^2(t_{k-1}) ]

                      + beta * vol(t_{k-1}) * eps_k              (14)


3) Das Schoebel-Zhu Modell: Ist ein Ornstein-Uhlen- 
   beck-Prozess fuer die vol (nicht vol^2): 

Delta_vol(t_k) = kappa * [ bsvol - vol(t_{k-1}) ]

                                     + beta * eps_k              (15)


Im Equity Derivatives Bereich ist das Heston-Modell 
(oder Erweiterungen davon) das mit Abstand gebraeuch-
lichste Modell. Der Grund liegt darin, dass es fuer 
dieses Modell eine analytische Loesung fuer die Preise 
von Standard-Call-Optionen gibt und so den Kalibrie-
rungsprozess, dessen oberste Prioritaet es ist, im Markt 
beobachtete Preise von Standard-Call-Optionen richtig 
wiederzugeben, massiv vereinfacht. Im Derivate-Bereich 
werden also stochastic volatility models nicht an 
Zeitreihen-Daten kalibriert, sondern an im Markt beob-
achtbaren Optionspreisen. 

Das Schoebel-Zhu Modell erlaubt ebenfalls eine analy-
tische Loesung fuer Standard-Call-Optionen, allerdings 
ist die Vol-Dynamik weniger realistisch. 

Die Vol-Dynamik des GARCH-Diffusion Modells wird 
weitestgehend als am realistischsten angesehen, jedoch 
gibt es keine analytische Preisformel fuer Standard-
Call-Optionen, deswegen wird dieses Modell im Derivate-
Bereich kaum angewendet.


Wenn man diese Modelle an Zeitreihen-Daten kalibrieren 
moechte und die Zeitreihe hat Laenge N (etwa N=2500 
fuer unsere DAX-Zeitreihe), dann ist die Likelihood-
Funktion fuer alle 3 Modelle gegeben durch ein N-dimen-
sionales Integral, was nicht analytisch berechnet wer-
den kann. Wir brauchen also eine nach Moeglichkeit 
nicht zu zeitintensive numerische Methode. Typischer-
weise wird das was Monte-Carlo artiges sein. Um ein 
Gefuehl fuer die Problematik zu bekommen, betrachten 
wir deshalb noch folgendes Demo-Modell, fuer das die 
Likelihood-Funktion explizit berechnet werden kann: 


4) Demo-Test-Modell: 

    S(t_k) = S(t_{k-1}) * [ 1 + vol(t_{k-1})*phi_k ] 

mit Vol-Prozess

    vol^2(t_k) = sigma^2 * ( eps1_k^2 + eps2_k^2 )/2             (16)

mit eps1_k und eps2_k standard-normalverteilte Zufalls-
zahlen.



Die Modelle (1-3) werden typischerweise nicht in dis-
kreter, sondern in stetiger Zeit formuliert, und die 
Gleichungen (13-15) sind dann stochastische Differen-
tialgleichungen, gegeben durch 

d(vol^2_t) = kappa(bsvol^2-vol^2_t)dt + beta*vol^2_t*dW_t       (13b)

d(vol^2_t) = kappa(bsvol^2-vol^2_t)dt + beta*vol_t*dW_t         (14b)

dvol_t     = kappa(bsvol-vol_t)dt + beta*dW_t                   (15b)

wobei dW_{t_k} = sqrt(dt)*eps_k das Inkrement einer 
Brownschen Bewegung W_t ist.



Bevor wir uns jetzt mit dem Problem der Berechnung der 
Likelihood-Funktion befassen, wollen wir einige Preis- 
und Vol-Pfade der Modelle (1-4) simulieren. Das machen 
wir auf dem neuen Uebungsblatt.