Otto-von-Guericke-Universität Magdeburg. Studienarbeit. Simulation der Euler- und Milsteinapproximation

Ähnliche Dokumente
Das Black-Scholes Modell

13 Mehrdimensionale Zufallsvariablen Zufallsvektoren

Brownsche Bewegung. M. Gruber. 20. März 2015, Rev.1. Zusammenfassung

Brownsche Bewegung. M. Gruber SS 2016, KW 11. Zusammenfassung

Stochastik-Praktikum

Brownsche Bewegung. M. Gruber. 19. März Zusammenfassung

Euler-Approximation. Leonie van de Sandt. TU Dortmund Prof. Dr. Christine Müller. 5. Juni 2012

Brownsche Bewegung. Satz von Donsker. Bernd Barth Universität Ulm

Stochastische Prozesse

Einige parametrische Familien für stochastische Prozesse

Seminarvortrag. Euler-Approximation. Marian Verkely TU Dortmund

7. Die Brownsche Bewegung

Wichtige Definitionen und Aussagen

3. Gemeinsame und bedingte Verteilung, stochastische Unabhängigkeit

Einführung und Grundlagen

Angewandte Stochastik

13 Grenzwertsätze Das Gesetz der großen Zahlen

I Grundbegriffe 1 1 Wahrscheinlichkeitsräume Bedingte Wahrscheinlichkeiten und Unabhängigkeit Reellwertige Zufallsvariablen...

4 Absolutstetige Verteilungen und Zufallsvariablen 215/1

Reelle Zufallsvariablen

4. Verteilungen von Funktionen von Zufallsvariablen

70 Wichtige kontinuierliche Verteilungen

Seminar Gewöhnliche Differentialgleichungen

Diffusionsprozesse und lineare stochastische DGL

Gegenbeispiele in der Wahrscheinlichkeitstheorie

1 Erwartungswert und Kovarianzmatrix von Zufallsvektoren

Varianz und Kovarianz

Der Metropolis-Hastings Algorithmus

Darstellungsformeln für die Lösung von parabolischen Differentialgleichungen

Kapitel 4. Stochastische Grundlagen. 4.1 Filtrationen und Stoppzeiten

Erwartungswert und Varianz von Zufallsvariablen

Konvergenz gegen einen Prozess mit unabhängigen Zuwächsen - Anwendungen

1 Einführung, Terminologie und Einteilung

Charakteristische Funktionen

Strukturerhaltende Integrationsverfahren für stochastische Differentialgleichungen in der Modellierung von Zinsderivaten

4. Gemeinsame Verteilung und Grenzwertsätze

4. Gemeinsame Verteilung und Grenzwertsätze

DWT 1.4 Rechnen mit kontinuierlichen Zufallsvariablen 234/467 Ernst W. Mayr

Institut für Stochastik Prof. Dr. N. Bäuerle Dipl.-Math. S. Urban

Unabhängige Zufallsvariablen

Vorlesung im SoSe 2010 Stochastische Analysis & Zeitstetige Finanzmathematik

Lösungen zur Klausur GRUNDLAGEN DER WAHRSCHEINLICHKEITSTHEORIE UND STATISTIK

Kapitel II Kontinuierliche Wahrscheinlichkeitsräume

Einführung in die Stochastik für Informatiker Übungsaufgaben mit Lösungen

8 Verteilungsfunktionen und Dichten

Dynamische Systeme und Zeitreihenanalyse // Multivariate Normalverteilung und ML Schätzung 11 p.2/38

Kapitel 6 Martingale

Gaußsche Felder und Simulation

Mathematik für Biologen

Stochastik. 1. Wahrscheinlichkeitsräume

Kapitel 6. Irrfahrten und Bernoullischemata

Finanzmathematische Modelle und Simulation

Schwache Konvergenz. Ivan Lecei. 18. Juni Institut für Stochastik

7.5 Erwartungswert, Varianz

1 Stochastische Konvergenz 2. 2 Das Gesetz der grossen Zahlen 4. 3 Der Satz von Bernoulli 6

Wichtige Begriffe und Sätze aus der Wahrscheinlichkeitsrechnung

Zufallsvariablen [random variable]

Definition Sei X eine stetige Z.V. mit Verteilungsfunktion F und Dichte f. Dann heißt E(X) :=

Konvergenz im quadratischen Mittel und die Parsevelsche Gleichung

2 Zufallsvariable, Verteilungen, Erwartungswert

0 für t < für 1 t < für 2 t < für 3 t < für 4 t < 5 1 für t 5

1 Verteilungsfunktionen, Zufallsvariable etc.

I Grundbegriffe 1 1 Wahrscheinlichkeitsräume Bedingte Wahrscheinlichkeiten und Unabhängigkeit Reellwertige Zufallsvariablen...

Statistik III. Walter Zucchini Fred Böker Andreas Stadie

Wirtschaftsmathematik

TECHNISCHE UNIVERSITÄT BERLIN BACHELORARBEIT. Theorie und Simulation einer zweidimensionalen stochastischen Differentialgleichung.

Wahrscheinlichkeit und Statistik: Zusammenfassung

Kapitel 8. Parameter multivariater Verteilungen. 8.1 Erwartungswerte

- 1 - angeführt. Die Beschleunigung ist die zweite Ableitung des Ortes x nach der Zeit, und das Gesetz lässt sich damit als 2.

Wahrscheinlichkeitstheorie

2 Zufallsvariable und Verteilungsfunktionen

Probeklausur zu Funktionentheorie, Lebesguetheorie und gewöhnlichen Differentialgleichungen

Multivariate Verteilungen

12 Gewöhnliche Differentialgleichungen

Scheinklausur zur Vorlesung Stochastik II

Stochastische Unabhängigkeit, bedingte Wahrscheinlichkeiten

Stochastik I. Vorlesungsmitschrift

Übung Zeigen Sie, dass dies als Grenzwert der Wahrscheinlichkeitsfunktion der Binomialverteilung mit

Erfolgsgeschichte eines stochastischen Prozesses: Die Brown sche Bewegung

Motivation. Benötigtes Schulwissen. Übungsaufgaben. Wirtschaftswissenschaftliches Zentrum 10 Universität Basel. Statistik

I.1.3 b. (I.7a) I.1 Grundbegriffe der Newton schen Mechanik 9

Der Satz von Taylor. Kapitel 7

2. Ein Zufallsvektor X IR d ist multivariat normal verteilt dann und nur dann wenn seine charakteristische Funktion folgendermaßen gegeben ist:

7 Der Satz von Girsanov

1.4 Stichproben aus einer Normalverteilung

Der Weg eines Betrunkenen

30 Die Gammafunktion und die Stirlingsche Formel

Stochastische Prozesse

Kapitel 10 VERTEILUNGEN

1.3 Wiederholung der Konvergenzkonzepte

Wahrscheinlichkeitsrechnung und stochastische Prozesse

Geometrische Brownsche Bewegung und Brownsche Brücke

Einführung in die Theorie der Markov-Ketten. Jens Schomaker

K8 Stetige Zufallsvariablen Theorie und Praxis

Normalverteilung. 1 2πσ. Gauß. 2 e 1 2 ((x µ)2 σ 2 ) Werkzeuge der empirischen Forschung. W. Kössler. Einleitung. Datenbehandlung. Wkt.

Kapitel VII. Einige spezielle stetige Verteilungen

Errata zu Goebbels, Ritter: Mathematik verstehen und anwenden

Brownsche Bewegung Seminar - Weiche Materie

Seite 1. sin 2 x dx. b) Berechnen Sie das Integral. e (t s)2 ds. (Nur Leibniz-Formel) c) Differenzieren Sie die Funktion f(t) = t. d dx ln(x + x3 ) dx

Transkript:

Otto-von-Guericke-Universität Magdeburg Studienarbeit Simulation der Euler- und Milsteinapproximation Anja Schulze 8. Oktober 22

Inhaltsverzeichnis 1 Einleitung 1 2 Ein spezieller zeitstetiger Prozess: Der Wiener Prozess 2 2.1 Stochastischer Prozess................................ 3 2.2 Der Wiener Prozess................................. 3 3 Simulation eines Wiener-Prozess 6 3.1 Donskers Invarianzprinzip.............................. 6 3.2 Programmierung des Python-Programms..................... 7 3.3 Programm eines Wiener-Prozesses in Python................... 8 3.3.1 Das Ergebnis................................. 1 3.4 Im Vergleich dazu: Excel............................... 12 4 Stochastische Differentialgleichungen 14 4.1 Einführung in die Grundlagen der Differentialgleichungen............ 14 4.2 Numerische Lösung.................................. 15 4.2.1 Euler-Approximation............................. 15 4.2.2 Milstein-Approximation........................... 18 4.2.3 Der direkte Vergleich............................. 22 5 Anwendung in der Finanzwissenschaft 23 6 Schluss 25 i

Abbildungsverzeichnis 3.1 Verschiedene Pfade eines Wiener-Prozesses.................... 11 3.2 Verschiedene Pfade des Wiener-Prozesses in Excel................ 13 4.1 Der Vergleich der Euler- und Milstein-Entwürfe mit a(x ti ) =.1X ti und b(x ti ) = 2X ti wobei t [, 1] und X = 1.......................... 22 ii

Kapitel 1 Einleitung Vor rund 1 Jahren ist Samuel Smiles zu der Erkenntnis gekommen:...hätten nicht die Mathematiker sich so lange und (...) scheinbar so unnütz mit den abstrakten Beziehungen von Linien zu Flächen abgemüht, so würden wahrscheinlich nur wenige unserer mechanischen Erfindungen das Licht der Welt erblickt haben. In der heutigen Zeit hat der Bereich der Finanzmathematik mehr an Bedeutung gewonnen, natürlich u.a. durch die vielgelobte Black/Scholes-Formel. Doch was steckt eigentlich dahinter? Die Antwort lautet: Das Gebiet der stochastischen Differentialgleichung. Diese Studienarbeit bezieht sich nur auf einen kleinen Teil dieses komplexen Bereiches. In der Wahrscheinlichkeitsrechnung treffen wir mittels stochastischer Modelle Vorhersagen über zukünftige Entwicklungen. Meine Aufgabe war es, stochastische Prozesse zu simulieren und speziell mögliche Kursverläufe mit Hilfe der Euler- und der Milstein-Approximation darzustellen. Diese Arbeit beginnt mit der grundlegenden Definition eines stochastischen Prozesses. Im darauffolgendem Abschnitt wird speziell der Wiener-Prozess und seine graphische Darstellung betrachtet. Im darauffolgendem Abschnitt werden die Euler- und Milstein-Approximationen eingeführt. Beendet wird diese Arbeit mit einem kurzen Einblick in die Finanzwelt, um die Anwendung der Approximation zu zeigen. 1

Kapitel 2 Ein spezieller zeitstetiger Prozess: Der Wiener Prozess Die Grundvoraussetzung für eine stochastische Differentialgleichung ist ein stochastischer Prozess mit stetigem Zeitparameter, das bedeutet, dass der Zeitparameter T entweder T = R + = [, ) oder das Intervall T = [, T ] ist, wobei T den endlichen Zeithorizont angibt. Einer der wichtigsten Prozesse dieser Art ist der Wiener Prozess, der auch unter dem Namen Standard Brownsche Bewegung bekannt ist. Die Brownsche Bewegung ist nach dem schottischen Botaniker Robert Brown (1773 bis 1858) benannt. 1827 beobachtete er bei Untersuchungen von Pollenkörner unter dem Lichtmikroskop eine Zick-Zack-Bewegung. Weitere Experimente mit Staubkörner und kleinen Metallsplittern führten zu dem Ergebnis, dass die Teilchen sich umso heftiger bewegten, je kleiner und damit leichter sie waren. Das heißt, die Geschwindigkeit der Teilchen ist umso größer, je weniger Masse sie haben. Diese Erkenntnis war wichtig für die Physik, da sie die Idee des Atomismus stützte. Die Brownsche Bewegung wurde erstmal 195 von Albert Einstein (1879 bis 1955) in seinem Aufsatz Über die von der molekularkinetischen Theorie der Wärme geforderte Bewegung von in ruhenden Flüssigkeiten suspendierten Teilchen formuliert. Er beschreibt die Brownsche Bewegung als Folge unregelmäßiger Stöße, der sich ständig bewegenden Atome und Moleküle. Diese, erst unter dem Mikroskop sichtbaren, Teilchen, werden von den viel kleineren Molekülen der Flüssigkeit bzw. des Gases angestoßen, sozusagen herumgeschubst. Anzahl, Stärke und Richtung der stoßenden Moleküle ändert sich, so dass die beobachtete zufällige Zick-Zack-Bewegung ensteht. Ebenfalls 195 schlug Louis Bachelier (187 bis 1946) in seiner Dissertation die Brownsche Bewegung als Modell für Aktienkurse vor. Weder die Börsenmärkte noch die Mathematik waren dieser Idee gewachsen. 1923 formulierten Norbert Wiener (1894 bis 1964) und Paul Pierre Levy (1886 bis 1971) die erste mathematische Definition. 2

2.1 Stochastischer Prozess Definition 1 Der stochastische Prozess X ist eine Familie von Zufallsgrößen X = {X t : t T } = {X t (ω) : t T, ω Ω} (2.1) über den gemeinsamen Wahrscheinlichkeitsraum (Ω, A, P ). Dabei ist T = [a, b] oder T = [a, b) oder T = [a, ) meist ein Zeitintervall. X ist ein Prozess mit stetigem Zeitparameter. Beispiel 1 Ein zufälliger Prozess X = {X t : t T } heißt Gaußscher Prozess, wenn alle endlich dimensionalen Verteilungen Gaußsch sind, d.h. mehrdimensionale Normalverteilungen. Ein n-dimensionaler Gaußvektor Y = (Y 1, Y 2,..., Y n ) T hat die Dichte: f Y ( x) = 1 exp{ 1 (2π) 1 2 (detσ) 1 2 2 ( x µ)t Σ 1 ( x µ)} (2.2) mit x = (x 1, x 2,..., x n ) T µ = (µ 1, µ 2,..., µ n ) T Σ = {σ ij } i,j=1,2,...,n mit detσ. Dabei ist µ = EY = (EY 1, EY 2,..., EY n ) T der Mittelwertvektor und Σ die Kovarianzmatrix, mit σ ij = E(Y i µ i )(Y j µ j ) für i, j = 1, 2,..., n wobei für i = 1, 2,..., n. Somit gilt Y N(µ, Σ). σ ii = V ar(y i ) = D 2 Y i Satz 1 Der Gaußprozess X = {X t : t T } besteht aus unabhängigen, identisch N(, 1)- verteilten Zufallsgröße X t, also X t und X s sind unabhängig, wenn t s. Dann gilt: EX t = und Σ X (t, s) = { 1 für s = t für s t (2.3) 2.2 Der Wiener Prozess... oder die Standard Brownsche Bewegung Definition 2 Ein stochastischer Prozess (W t ) t [, ) (auch: (W (t)) t [, ) oder (W (t)) t ) auf einem Wahrscheinlichkeitsraum (Ω, A, P ) heißt Wiener-Prozess oder Standard Brownsche Bewegung, falls gilt: 1. W = (mit Wahrscheinlichkeit 1) 2. für s < t ist W t W s normalverteilt mit dem Erwartungswert und der Varianz t s 3

3. für t < t 1 < t 2 <... < t n sind die Zuwächse W ti W ti 1 mit i = 1, 2,..., n stochastisch unabhängig 4. die Pfade t W t sind stetig. Ein Ziel dieser Arbeit ist es, die Pfade eines Wiener-Prozesses zu simulieren. Doch vorher erläutern wir einige Eigenschaften dieses Prozesses: W t hat homogene identisch verteilte Zuwächse, d.h. W t W s = d W t+h W s+h Aus Punkt 2. der Definition folgt, dass die Verteilung der Zuwächse W t W s nur von der Differenz t s abhängig ist, nicht von t und s separat. Wir sagen, der Wiener-Prozess habe homogene Zuwächse. So sind z.b. die Verteilungen von W 5 W 4, W 4 W 3, W 3 W 2, W 2 W 1, W 1 W = W 1 alle gleich, nämlich standardnormalverteilt. Mit < t 1 < t 2 <... < t n gilt: sind unabhängige Zufallsgrößen. W t1 W, W t2 W t1,..., W tn W tn 1 Die Zuwächse W t W s sind normalverteilt. Es gilt W t W s = d wg.2. W t s W = wg.3. W t s N(, t s) d.h. W t W s und W t s haben dieselbe Verteilung, aber die Realisierungen können verschieden sein: W t W s W t s. Für alle t > gilt: W t N(, t), der Wiener-Prozess ist ein Gaußprozess. Die Erwartungswertfunktion lautet: µ t = für t. Die Varianzfunktion lautet: σ 2 t = t für t. Die Kovarianzfunktion lautet für t > s : γ(t, s)= E(W t W s ) = E((W t W s )W s ) + E(W s W s ) = + s = s. Also allgemein bedeutet: γ(t, s) = min{t, s} W t ist stochastisch stetig: W s P s t W t P ( W t W s > ɛ) t s für alle ɛ > W t ist quadratmittelstetig, d.h.: E( W t W s 2 ) t s Aus W s L W t folgt die stochastische Konvergenz. 4

W t ist nirgends differenzierbar 1 Die n-dimensionalen Randverteilungen des Wiener-Prozesses, d.h. die gemeinsame Verteilung von W t1, W t 2,..., W tn, haben eine interessante Eigenschaft, die wir als Selbstähnlichkeit in Verteilung bezeichnen. Für T > gilt: ( T W t1, T W t2,..., T W tn ) und (W T t1, W T t2,..., W T tn ) (2.4) haben die gleiche Verteilung. Skalieren wir die Zeitachse mit dem Faktor T, so ändert sich entsprechend die gemeinsame Verteilung. Die Selbstähnlichkeit bezieht sich die Verteilung und nicht auf die Zufallsvariablen bzw. die Pfade. 1 vgl. dazu das Skript Stochastik der Finanzmärkte Seite 49f und die Mitschriften zur Vorlesung Stochastische Differentialgleichung 5

Kapitel 3 Simulation eines Wiener-Prozess Wir werden zeigen, wie einzelne Pfade t W t des Wiener-Prozesses für t [, T ] simuliert werden. 3.1 Donskers Invarianzprinzip Es sei (ɛ i ) i N eine Folge von unabhängigen standardnormalverteilten Zufallsvariablen (ein reiner Gaußscher Standardzufallsprozess). Daraus folgt der zeitstetige Prozess S n (t) für t T und n N: S n (t) = T n i j=1 ɛ j falls t = T i n lineare Interpolation sonst mit i =,..., n (3.1) Für jedes n hat der stochastische Prozess (S n (t)) t [,T ] folgende Eigenschaften: 1. S n () = mit Wahrscheinlichkeit 1 2. Für t = k n T und s = r nt mit r < k ist S n ( k n T ) Sn ( r n T ) normalverteilt mit dem Erwartungswert und der Varianz t s 3. Für < i 1 < i 2 <... < i m sind die Differenzen stochastisch unabhängig verteilt. 4. Die Pfade t S n (t) sind stetig. S n ( i 2 n T ) Sn ( i 1 n T ),..., Sn ( i m n T ) Sn ( i m 1 n T ) 6

Der Prozess (S n (t)) t [,T ] schaut so ähnlich aus wie der Wiener-Prozess (W t ) t [,T ]. Satz 2 Donskers Invariaionsprinzip Der Prozess (S n (t)) t [,T ] konvergiert in Verteilung gegen den Wiener-Prozess (W t ) t [,T ] Es gilt: Die Folge S n konvergiert gegen die korrespondierende Folge W t : P (S n (t 1 ) x 1, S n (t 2 ) x 2,..., S n (t m ) x m ) P (W t1 x 1, W t2 x 2,..., W tm x m ) (3.2) wobei t i [, T ], x i R, i = 1, 2,..., m und m 1. Beweis. Die Beweisidee ist im Mikosch auf den Seiten 45f. nachzulesen. 3.2 Programmierung des Python-Programms In dieser Arbeit werden die Simulationen mit Hilfe des Programms Python 1 erzeugt. Python hat nichts mit den gefährlichen Reptilien zu tun. Der Name kommt von Monty Python s Flying Circus der erfolgreichen britischen Comedy Truppe. Manche behaupten, dass Python als Programmiersprache insofern etwas mit einem Reptil zu tun habe, weil sie genauso verführerisch wie eine Schlange sei. Sie ist einfach zu erlernen, kraftvoll wie Java, aber nicht so kompliziert. Mich hat sie verführt, diese Programmieraufgaben mit ihr zu lösen. Ich habe mich für die Programmiersprache Python und nicht für die Sprache Pascal entschieden, da Python im Vergleich zu Pascal handlicher ist. Z.B. besitzt Python ein Stochastik-Paket mit dem wir u.a. (Standard-)Normalverteilte Zufallszahlen erzeugen können mit nur einem Befehl. Im Gegensatz dazu brauchen wir in Pascal dafür eine Prozedur, die erst Zufallszahlen in Normalverteilte Zufallszahlen umwandelt 2. Python erlaubt es, sich mehr auf das Wesentliche zu konzentrieren und unterstützt im Gegensatz zu Pascal moderne Programmierkonzepte wie die Objektorientiertheit. Python ist eine sogenannte objektorientierte Skriptsprache, die neben Perl und Tcl mehr Verwendung findet. Python ist als einbettbare Sprache für die Integration von Softwarekomponenten entstanden. Eingesetzt wird Python zum Bespiel bei Office-Paketen. Python ist eine minimalistische Sprache. Der Schöpfer von Python, Guido van Rossum, hat sich beim Design von Python auf Weniges beschränkt und vertraut auf die Erweiterbarkeit der Sprache, d.h. er akkumulierte keine Features, sondern konzentrierte sich auf wenige Prinzipien: 3 1 vgl. www.python.org 2 vgl. Peter E.Kloeden Numerical Solution of SDE Through Computer Experiments ab Seite 5 3 vgl. dazu die Ausgabe November 1999 der Zeitschrift IX -Magazin für professionelle Informationstechnik 7

Sparsamkeit durch Orthogonalität: Es gibt nur eine begrenzte Zahl von - leistungsfähigen und kombinierbaren - Konstrukten, Grunddatentypen und Standardfunktionen. Abgestufte Strukturierungsmittel: Auf mehreren Ebenen stukturierbar durch Module, Klassen und Funktionen. Programmkomponenten: dynamische Datenobjekte. Die strukturellen Einheiten von Programmen sind selbst solche Objekte. Sie lassen sich inspizieren, manipulieren, zur Laufzeit erzeugen und generell wie andere Daten handhaben. Konsistente Erweiterbarkeit: Werkzeuge für spezielle Anwendungsgebiete sind nicht fest in die Sprache integiert, sondern Erweiterungsmodule realisieren sie; wobei die vorhandenen Konstrukte und Standardfunktionen auf neue Objektklassen übertragbar sind. Die Sparsamkeit der Ausstattung und die abgestufte Struktur machen Python zu einem akzeptablen Werkzeug. Unter folgenden Plattformen kann Python verwendet werden: Unix, Win, Mac, OS/2, BeOS, Amiga et cetera. 3.3 Programm eines Wiener-Prozesses in Python Hier das Python-Programm zur Simulation eines Wiener-Prozesses mit Hilfe des Donskers Invarianzprinzip. Zu Anfang werden die verschiedenen Module aufgerufen. import random import math import Gnuplot Das Paket Gnuplot wird für die graphische Darstellung im Koordinatensystem benötigt. Die Anzahl der Realisationen wird eingegeben. Diese Zahl sollte möglichst groß sein. zahl = input("gib eine Zahl ein: ") Wenn wir das Programm starten, wird gefragt, wieviele Realisierungen wir simulieren möchten. Ein Koordinatensystem wird erzeugt, dass bis jetzt noch ohne Inhalt ist. Das k und das n wird später in den For-schleifen benötigt. g = Gnuplot.Gnuplot(debug=1) g.clear() k=zahl+1 n=zahl+1. 8

Es werden Felder erzeugt, die in erster Linie wie Vektoren aufgebaut sind. Der Vektor epsilon ist zuerst leer und wird dann in der For-schleife mit Standard-Normalverteilten Zufallszahlen gefüllt. Gleichzeitig wird auch der Vektor Wienerprozess erzeugt. Mit Hilfe des Donskers Invarianzprinzip 4 werden die einzelnen Realisierungen berechnet. 4 vgl. dazu Kapitel 3.1 auf Seite 6 9

epsilon=[] wienerprozess=[] for i in range(,k): epsilon.append(random.gauss(.,1.)) sum= for j in range(,i): sum=sum+epsilon[j] l=math.sqrt(n) wienerprozess.append(sum/l) Und das war es eigentlich schon. Mit dem print wienerprozess Befehl könnten die Daten ausgegeben werden. Doch mich interessierte mehr die graphische Darstellung. wert=[] Daten=[] for i in range(,k): j=i/n wert.append(j) wert.append(wienerprozess[i]) Daten.append(wert) wert=[] g( set data style linespoints ) g.plot(daten) g.title( Wiener Prozess ) g.xlabel( Zeit ) g.ylabel( Kurs ) g.replot() g.hardcopy( gp_wp.ps, enhanced=1, color=1) raw_input( Please press return to continue...\n ) Das Programm wird gestartet: Wir geben die Anzahl der Realisierung ein und erhalten als Output ein Koordinatenssystem. Auf der -Achse ist die Zeit abgetragen. Auf der Y-Achse sind die Realisierungen des Wiener-Prozesses. Beachte, dass die Annahmen t [, 1] getroffen wurde. 3.3.1 Das Ergebnis Den Wiener-Prozess mit verschiedenen Realisierungen finden Sie in der Abbildung 3.1 auf Seite 11. 1

1.5 1.5 -.5-1 -1.5 Wiener Prozess.1.2.3.4.5.6.7.8.9 1 Zeit Abbildung 3.1: Verschiedene Pfade eines Wiener-Prozesses Kurs 11

3.4 Im Vergleich dazu: Excel 1. Wir wählen n 5 sehr groß und berechnen 6 i n für i =, 1, 2,..., n: In das Feld A1 kommt der Wert. In das Feld A2 schreiben wir =1/1, in das Feld A3 =2/1. Wir markieren diese drei Felder und ziehen das Feld an der rechten unteren Ecke bis zum Feld A11 herunter. 2. Wir erzeugen die Realisierungen von ɛ 1, ɛ 2,..., ɛ n : In das Feld B2 schreiben wir den Befehl =norminv(zufallszahl();;1). Es wird eine Standardnormalverteilte Zufallszahl erzeugt. Um 1 Standardnormalverteilte Zufallszahlen zu erhalten, markieren wir B2 und ziehen das Feld bis B11 herunter. 3. Berechnet wird i j=1 ɛ j für i = 1, 2,..., n: In das Feld C2 schreiben wirn =B2. In das Feld C3 schreiben wir =B3+C2. Diesen Befehl vervielfältigen wir wieder bis zum Feld C11. 4. Wir können die Realisierungen des Wiener-Prozesses mit Hilfe der Formel 7 W ( i n ) = 1 n i ɛ j für i = 1, 2,..., n j=1. W () =, d.h. in das Feld D1 schreiben wir den Anfangswert In das FeldD2 kommt der Befehl =wurzel(1/1)*c2. Auch dieser Befehl wird durch herunterziehen bis D11. 5. Die graphische Darstellung: 8 Über den Befehl Diagramme in der Menüleiste können wir ein x,y-koordinatensystem zeichnen lassen. Die x-werte stehen in diesem Beispiel in der Spalte A und die y-werte in der Spalte D. Verschiedene Pfade des Wiener-Prozesses wie Excel sie erzeugt, finden wir in der Abbildung 3.2 auf der Seite 13. 5 hier sei n = 1 6 auch hier gilt die Annahme, dass mein Betrachtungszeitraum ein [, 1] Intervall ist, das heißt t [, 1] 7 vgl. Kapitel 3.1 auf der Seite 6 8 die lineare Interpolation macht Excel automatisch 12

1,5 -,5-1 -1,5-2 -2,5 Der Wienerprozess,2,4,6,8 1 1,2 Zeit Abbildung 3.2: Verschiedene Pfade des Wiener-Prozesses in Excel Realiesierungen 13

Kapitel 4 Stochastische Differentialgleichungen 4.1 Einführung in die Grundlagen der Differentialgleichungen Die grundlegende Idee der gewöhnlichen Differentialgleichung ist die folgende funktionale Beziehung: f(t, x(t), x (t), x (t),..., x n (t)) =, mit t T (4.1) wobei t die Zeit ist und x(t) eine unbekannte Funktion ist. Das Ziel ist die Funktion x(t) zu finden, die (4.1) erfüllt. Diese Funktion nennen wir Lösung der Differentialgleichung (4.1) n ter Ordnung. Die Lösung ist eindeutig, wenn eine Startlösung x() = x gegeben ist. Die einfachste Differentialgleichung ist die der 1. Ordnung, d.h. wir benötigen t, x(t) und die erste Ableitung x (t), so dass die Differentialgleichung die Form: x (t) = dx(t) dt hat, wobei a(t, x(t)) eine Funktion ist. Standardmäßig schreibt wir (4.2) folgendermaßen um: = a(t, x(t)), mit x() = x (4.2) dx(t) = a(t, x(t))dt, mit x() = x (4.3) Der einfachste Weg, den Zufall in die Gleichung (4.3) einzuführen, ist es, im Ausgangszustand mit Zufallsvariablen zu arbeiten. Die Lösung x(t) wird durch einen stochastischen Prozess (X t, t [, T ]) ersetzt: dx t = a(t, X t )dt, mit X (ω) = Y (ω) (4.4) Solch eine Gleichung wird stochastische Differentialgleichung genannt. Diese stochastischen Differentialgleichungen können auch als Differentialgleichung mit einem gestörten Ausgangszustand aufgefaßt werden. Wir führen einen zusätzlichen Zufallsterm ein: dx t = a(t, X t )dt + b(t, X t )dw t, mit X (ω) = Y (ω) (4.5) 14

wobei W = (W t, t ) der Wiener-Prozess und a(t, x) und b(t, x) deterministische Funktionen sind. Die Lösung X, wenn sie existiert, ist ein stochastischer Prozess. Die Gleichung (4.5) können wir anders interpretieren: t t X t = X + a(s, X s )ds + b(s, X s )dw s, mit t T (4.6) }{{}}{{} Riemann-Integral Ito-stochastisches Integral Den Term (4.6) können wir mit Hilfe des Ito-Lemma und dem Lemma von Stratonovich lösen 1. 4.2 Numerische Lösung Stochastische Differentialgleichungen mit einer expliziten Lösung sind allgemein die Ausnahme. Daher brauchen wir numerische Approximationsverfahren zur Lösung stochastischer Differentialgleichungen. Solche Approximationstechniken werden numerische Lösungen genannt. Solche numerischen Lösungsverfahren werden aus verschiedenen Gründen gebraucht: Sie zeigen einen einfachen Weg, die Lösung zu bekommen. Mit Hilfe von diesen numerischen Verfahren können wir eine Art Vorhersage von stochastischen Prozessen machen. Zu beachten sollte aber sein, dass wir diese möglichen Lösungen mit Vorsicht behandeln. Wir erhalten eine vernünftige Approximation an die Verteilung des stochastischen Prozesses, so dass wir den Erwartungswert, die Varianz und andere Momente höherer Ordnung berechnen können. Numerische Lösungen erlauben uns, verschiedene Pfade zu simulieren. Um also solche Pfade dazustellen beschränken wir unsere numerische Lösung auf das folgende stochastische Differential: dx t = a(x t )dt + b(x t )dw t, mit t [, T ] (4.7) wobei W t ein Wiener-Prozess und die Funktionen a(x) und b(x) Lipschitz stetig sind. (Eine Funktion f : [p, q] [p, q] heißt Lipschitz stetig, wenn eine Konstante r R existiert, so daß für alle Paare x, y [p, q] folgendes gilt: f(x) f(y) < r x y ). Es wurde die Annahme EX 2 < getroffen, um die Existenz und Eindeutigkeit der Lösung zu garantieren. 4.2.1 Euler-Approximation Für die Anwendung ist es interessant eine kleine Änderung X t+h X t des Prozesses zu betrachten. Meistens steht X t für den Kurs eines Wertpapiers zum Zeitpunkt t (vgl. Kapitel 5 auf Seite 23). X t+h X t a(t, X t ) h + b(t, X t ) (W t+h W t ) (4.8) 1 vgl. dazu die Abschnitte 3.2 und 3.3 im Mikosch 15

bedeutet 2, dass der Zuwachs X t+h X t in dem kleinen Zeitintervall [t, t + h] zwei Ursachen hat, nämlich die durch a(t, X t ) h gegebene sogenannte Driftkomponente des Prozesses, die die Richtung und Stärke der Veränderung bestimmt, und eine durch b(t, X t ) (W t+h W t ) gegebene Fluktuationskomponente, die etwas über die Stärke der zufälligen Veränderung aussagt. Wir unterteilen das Intervall [, 1]: τ n : = t < t 1 < t 2... < t n 1 < t n = 1 um den Term (4.8) zu charakterisieren. Dabei bezeichne δ n = max (t i ) i=1,...,n die Feinheit der Einteilung. Wir wählen n groß und setzen h = h (n) = 1 n, sowie t i = i h = i 1 n. Wir wissen bereits aus Abschnitt 3.1, auf Seite 6, wie wir die Werte W t des Wiener-Prozesses (W t ) t [,1] zu den Zeitpunkten t i für i = 1, 2,..., n simulieren können. Das Eulerschema ist wie folgt gegeben: X (n) = X X (n) t 1 = X (n) + a(x (n) )(t 1 t ) + b(x (n) )(W t1 W t ) X (n) t 2 = X (n) t 1 + a(x (n) t 1 )(t 2 t 1 ) + b(x (n) t 1 )(W t2 W t1 ). X (n) t n 1 = X (n) t n 2 + a(x (n) t n 2 )(t n 1 t n 2 ) + b(x (n) t n 2 )(W tn 1 W tn 2 ) X (n) t n = X (n) t n 1 + a(x (n) t n 1 )(t n t n 1 ) + b(x (n) t n 1 )(W tn W tn 1 ) Zwischen den Punkten i 1 n und i n wird linear interpoliert, so dass wir einen annähernd stetigen Pfad t X (n) t für t [, 1] erhalten. Wir können zeigen, dass für n ( und somit h (n) ) die Folge der Euler-Approximationen (X (n) t ) t [,1] in Verteilung gegen die Lösung (X t ) t [,1] konvergiert. Das Programm Wie bereits in Kapitel 3.3 auf der Seite 8 werde ich das Programm der Euler-Approximation in Python vorstellen. Dabei habe ich den obenstehenden Algorithmus mit X = 1, a(x i ) =.1 X i und b(x i ) =.1 X i mit i = 1, 2,..., n verwendet: Der Kopf ist genauso aufgebaut wie bei dem Programm für den Wiener-Prozess: 2 die Formel (4.5) ensteht in gewissem Sinne durch den Grenzübergang h aus der Differenzenfolge (4.8) 16

import random import math import Gnuplot zahl = input("gib eine Zahl ein: ") Wie wir in der Approximation gesehen haben, brauchen wir als erstes einen Wiener-Prozess, der genauso erzeugt wird wie in Kapitel 3.3 auf der Seite 8: g = Gnuplot.Gnuplot(debug=1) g.clear() k=zahl+1 n=zahl+1. epsilon=[] wienerprozess=[] for i in range(,k): epsilon.append(random.gauss(.,1.)) sum= for j in range(,i): sum=sum+epsilon[j] l=math.sqrt(n) wienerprozess.append(sum/l) Hier beginnt der eigentliche Approximationsalgorithmus. Den Startwert X setze ich auf 1, a(x i ) =.1 X i und b(x i ) =.1 X i. Die anderen Werte X 1, X 2,... berechne ich in einer For-Schleife: kurs=[1] for i in range(1,k): j=i-1 f=kurs[j]+.1*kurs[j]*((i)/k+(j)/k)+.1*kurs[j]*(wienerprozess[i]-wienerprozess[j]) kurs.append(f) Jetzt nur noch die graphische Ausgabe 3 : wert=[] Daten=[] for i in range(,k): j=i/n wert.append(j) wert.append(kurs[i]) 3 vgl. dazu auch die Abbilgung 4.1 auf der Seite 22 17

Daten.append(wert) wert=[] print Daten g( set data style linespoints ) g.plot(daten) g.title( Euler ) g.xlabel( Zeit ) g.ylabel( Kurs ) g.replot() g.hardcopy( gp_test.ps, enhanced=1, color=1) raw_input( Please press return to continue...\n ) Die numerische Lösung x (n) (t) konvergiert fast sicher gegen X(t), da 4.2.2 Milstein-Approximation P ( lim n X(n) = X) = 1 Die Euler Approximation kann aber noch verbessert werden. Wir berücksichtigen die stochastische Differentialgleichung (4.6): X t = X + t a(x s )ds + t b(x s )dw s mit t [, T ] Für t i aus der Intervallzerlegung τ n berücksichtigen wir die Differenz X ti X ti 1 und erhalten: ti ti X ti = X + a(x s )ds + b(x s )dw s mit i = 1, 2,..., n (4.9) Die Euler-Approximation basiert auf die Diskretisierung des Integral (4.9), denn: ti a(x s )ds a(x ti 1 )(t i ) Wenn wir X ti mit X (n) t i ti b(x s )dw s b(x ti 1 )(W ti W ti 1 ) ersetzten, erhalten wir: X (n) t i = X (n) + a(x (n) )(t i ) + b(x (n) )(W ti W ti 1 ) mit i = 1, 2,..., n Die Milstein-Approximation benutzt dagegen eine sogenannte Taylor-Ito-Entwicklung. Die Idee ist, wir wenden das Ito-Lemma 4 auf a(x s ) und b(x s ) in der Formel (4.9)an. Um die Gleichung 4 vgl. dazu Mikosch Seite 12 bzw. die Vorlesung Stochastische Differentialgleichung 18

übersichtlicher zu gestalten, schreibe ich a, b, a,... für a(x y ), b(x y ), a (X y ),...: X ti X ti 1 = + ti [a(x ti 1 ) + ti s (aa + 1 2 b2 a )dy + s s s ba dw y ]ds [b(x ti 1 ) + (ab + 1 2 b2 b )dy + bb dw y ]dw s = a(x ti 1 )(t i ) + b(x ti 1 )(W ti W ti 1 ) + R i (4.1) wobei das Restglied R i definiert ist mit R i = R (1) i + R (2) i + Das Doppel-stochastische Integral R (1) i Zu zeigen ist: R (1) i ti s [ bb dw y ]dw s + R (2) i ist approximativ folgender Term: b(x ti 1 )b (X ti 1 ti s [ dw y ]dw s t } i 1 {{} =I I = 1 2 ((W t i W ti 1 ) 2 (t i )) Beweis: Wir können leicht zeigen, dass (dw t ) 2 = (W t=dt W t ) 2 = dt Daraus folgt: ti (dw s ) 2 = t i ds = (t i ) Berücksichtigen wir das Doppel-Integral: (W ti W ti 1 ) 2 = (W ti W ti 1 )(W ti W ti 1 ) = ( t i (dw s ))( t i (dw y )) ( t i (dw s ))( t i (dw y )) = ( t i ( t i dw y )dw s ) und das ist wieder: ( t i ( s dw y )dw s ) + ( t i ( t i s = 2 ( ti s ( dw y )dw s ) +(t i ) } {{ } vgl. mit I Daraus folgt: I = 1 2 ((W t i W ti 1 ) 2 (t i )) dw y)dw s ) + t i (dw s ) 2 = Das heisst: R (1) i 1 2 b(x )b (X ti 1 ((W ti W ti 1 ) 2 (t i )) Unter milden Annahmen für die Funktionen a(x) und b(x) können wir zeigen, dass R (2) i Vergleich zu R (2) i sehr klein ist. Mit Hilfe der Formel (4.9) definieren wir die Milstein-Approximation: im 19

Definition 3 Für X o (n) = X und für i = 1, 2,..., n gilt: X (n) t i = X (n) +a(x (n) )(t i )+b(x (n) )(W ti W ti 1 )+ 1 2 b(x )b (X ti 1 ((W ti W ti 1 ) 2 (t i )) Zur Qualität der numerischen Lösung sagen wir: Die Milstein Approximation konvergiert stark mit der Ordnung 1. Das Programm (4.11) Das Programm in Python sieht fast genauso au wie das Programm zur Euler-Approximation, nur die For-Schleife hat sich im Vergleich zu 11 auf der Seite 16 geändert. Hier das klomplette Programm: #!/usr/bin/python import random import math import Gnuplot zahl = input("gib eine Zahl ein: ") k=zahl+1 n=zahl+1. g = Gnuplot.Gnuplot(debug=1) g.clear() epsilon=[] wienerprozess=[] for i in range(,k): epsilon.append(random.gauss(.,1.)) sum= for j in range(,i): sum=sum+epsilon[j] l=math.sqrt(n) wienerprozess.append(sum/l) kurs=[1] for i in range(1,k): j=i-1 f=kurs[j]+.1*kurs[j]*((i)/k-(j)/k)+.1*kurs[j]* (wienerprozess[i]-wienerprozess[j])+.5*.1*kurs[j]*.1* ((wienerprozess[i]-wienerprozess[j])**2-((i)/k-(j)/k)) kurs.append(f) Zu beachten sollte hier sein, dass ich aus Form-Gründen die Gleichung f =... nicht auf eine Zeile bringen konnte. 2

wert=[] Daten=[] for i in range(,k): j=i/n wert.append(j) wert.append(kurs[i]) Daten.append(wert) wert=[] g( set data style linespoints ) g.plot(daten) g.title( Milstein Approximation ) g.xlabel( Zeit ) g.ylabel( Kurs ) g.replot() g.hardcopy( gp_milstein.ps, enhanced=1, color=1) raw_input( Please press return to continue...\n ) 21

4.2.3 Der direkte Vergleich Kurs 1.8 1.6 1.4 1.2 1.8.6.4.2 Milstein und Euler Approximation Milstein Euler.1.2.3.4.5.6.7.8.9 1 Zeit Abbildung 4.1: Der Vergleich der Euler- und Milstein-Entwürfe mit a(x ti ) =.1X ti b(x ti ) = 2X ti wobei t [, 1] und X = 1 und Wir sehen, dass besonders im letzten Drittel der Datensatz, der mit der Euler-Approximation berechent wurde, keine größeren Ausschläge mehr aufweist, als der Datensatz, der mit der Milstein-Approximation berechnet wurde. Der Grund dafür ist, dass die Milstein-Approximation, dass Ito-Lemma berücksichtig. Eine mögliche Verbesserung der Milstein-Approximation kann erreicht werden, wenn ich das Ito-Lemma auf den Integranten im Term R i anwende. Die Form der nurmerischen Lösung wird so immer mehr komplizierter. 22

Kapitel 5 Anwendung in der Finanzwissenschaft Seit dem berühmten Paper von Black und Scholes (1973) sowie Merton (1973) wurde es immer moderner, stochastische Rechnungen in die Finanzwelt einzusetzen, um Preise von riskanten Anleihen zu modellieren. Das führte zu einer neuen Branche der angewandten Wahrscheinlichkeitstheorie, dem Gebiet der Finanz-Mathematik. Ich möchte hier nur einen kurzen Exkurs in die Finanzwelt machen. 1 Angenommen der Preis X t einer riskanten Anleihe (eine sogenannte Aktie) zur Zeit t sei durch einen Wiener-Prozess in folgender Form gegeben: X t = f(t, W t ) = X e (c.5σ2 )t+σw t (5.1) wobei W = (W t, t ) der Wiener-Prozess ist. Zusätzlich sollte noch vorausgesetzt sein, dass X unabhängig von W ist. Diese Voraussetzung braucht man, da X die eindeutige starke Lösung der linearen stochastischen Differential Gleichung ist: Daraus folgt: X t = X + c t X s ds + σ t dx t = cx t dt + σx t dw t Wenn man die Erkenntnisse aus Formel (4.8) anwendet, erhält man: Das ist äquivalent zu: X t dt X t = cx t dt + σx t dw t X s dw s (5.2) X t+dt X t = cdt + σdw X }{{ t }{{} t } beschreibt lin.trend, der durch den Zufall gestört wird relative Rendite der Aktie Die Konstante c > ist die sogenannte Mittere Nettorendite und σ > die Volatilität, dabei ist σ ein Maß für das Risiko der Anleihe. Betrachten wir folgende zwei Fälle: 1 Eine ausführliche Einführung in die Optionswelt kann man im Mikosch (Kapitel 4) nachlesen 23

σ = : Der Term (5.2) ist eine deterministische Differential Gleichung, welche die wohlbekannte Lösung X t + X o exp{ct} hat. σ > : Man erhält die Zufallsgestörte Exponential Funktion (5.1) Angenommen man hat eine risikolose Anleihe, einen sogenannten Bond. β t = β e rt wobei β mein Anfangskapital und r > der konstante Zinssatz 2 ist. Beachte, dass β foldender deterministischen Integralgleichung genügt: I β t = β = r tβ s ds (5.3) Im allgemeinen hält man eine bestimmte Menge an Anleihen: a t beschreibt die Anzahl der Aktien und b t die Anzahl der Bonds. Sie bilden das Portfolio. Das Vermögen V t (oder Wert des Portfolio) zur Zeit t ist gegeben durch: V t = a t X t + b t β t Wenn man annimmt, dass das Vermögen V t nur von Preisen für die Aktien X t und für die Bonds β t abhängen, kann man den Differential-Term betrachten: dv t = d(a t X t + b t β t ) = a t dx t + b t dβ t Diese Gleichung kann man im Sinne von Ito 3 umschreiben: V t V = t d(a s X s + b s β s ) = t a s dx s + t b s dβ s Ersetzt man dx s mit der Formel (5.2) und dβ s mit der Formel (5.3) erhält man: V t V = t V t = V + = V + [a s (cx s ds + σx s dw s ) + b s (rβ s ds)] t t [a s (cx s ds + σx s dw s ) + b s (rβ s ds)] (a s cx s + b s rβ s )ds + t σx s dw s Der Wert des Portfolio V t ist genau gleich dem Anfangswert V plus dem Kapitalgewinn von den Aktien und den Bonds zur Zeit t. 2 Diese Annahme kann so getroffen, obwohl die EZB den Zinssatz ändern kann, aber sie tut dies meistens nur aus volkswirtschaftlichen Gründen 3 vgl. die Vorlesung Stochastische Dgl. 24

Kapitel 6 Schluss Wie in der Einleitung bereits erwähnt, bezog sich meine Studienarbeit auf einen bestimmten Teil der Stochastischen Differential Gleichung. Meine Hauptaufgabe war die Simulation eines Aktienkurses mit Hilfe der Euler- und Milstein-Approximation. Begonnen habe ich mit der Darstellung eines Wiener-Prozesses, da der Wiener-Prozess die Grundvoraussetzung der beiden Approximationen ist. Doch auch der sogenannte Ornstein-Uhlenbeck-Prozess ist sehr interessant für den Bereich der Stochastischen Differential Gleichung, das heißt hier würde auch weiteres Potential für eine Arbeit liegen. Für mich war es auch eine Herausforderung, mich in eine neue Skriptsprache einzuarbeiten. Doch Python hat es mir leicht gemacht. Im Vergleich zu Pascal ist es viel umgänglicher und leichter zu handhaben. Das zeigt aber auch, dass die Simulation von Aktienkursen gar nicht so schwierig ist. Wir brauchen nur eine Programmier- bzw. Skript-Sprache die Standardnormalverteilte Zufallszahlen ohne größeren Aufwand erzeugt. Wir könnten zusätzlich noch eine graphische Oberfläche programmieren, mit der wir die Programme noch erweitern können. 25

Literaturverzeichnis [1] T. Mikosch: Elementary Sochastic Calculus with Finance in View, 1998, World Scientific, Singapur [2] P.E. Kloeden, E. Platen, H. Schurz: Numerical Solution of SDE Through Computer Experiments, 2. überarbeitete Auflage 1997, Springer Verlag, Heidelberg [3] M. Trede: Skript zur Vorlesung Stochastik der Finanzmärkte, Wintersemester 21/22, Magdeburg [4] G. Christoph: Mitschriften zur Vorlesung Stochastische Differential Gleichung, Wintersemester 21/22, Magdeburg [5] R. Fischbach: Beschränkung aufs Wesentliche, 1999, ix 11/1999, S. 184ff [6] R. Fischbach: Schwierige Abgrenzung, 1999, ix 12/1999, S. 6ff [7] http://www.python.org [8] http://www.freenetpages.co.uk/hp/alan.gauld/german/index.htm [9] http://gnuplot-py.sourceforge.net/ 26