Projekt Fondsauswahl aufgrund von Indexanalysen für Bank Medici Markus Fulmek 11. November 2004.

Post on 05-Apr-2015

106 views 0 download

Transcript of Projekt Fondsauswahl aufgrund von Indexanalysen für Bank Medici Markus Fulmek 11. November 2004.

Projekt „Fondsauswahl aufgrund von Indexanalysen“

für Bank Medici

Markus Fulmek 11. November 2004

Hintergrund des Projekts

• Wunsch, Funds of Funds aufzulegen ...• ... Mit maßvoller Ertragserwartung (etwa

8-12% jährliche Rendite) ...• ... Bei geringem Risiko (noch geeignet

zu quantifizieren: Volatilität, maximum drawdown, ...)

• ... Auf der Basis von beobachteten Indexzeitreihen der MSCI-Familie.

Was bisher geschah:

• Reformatierung der Rohdaten (EXCEL-Format) für weitere Untersuchungen,

• Erste Versuche mit der Software Mathematica:– „Graphische Analysen“,– „Klassische“ technische Analyse (MACD, ...),– Korrelationsmatrix,– Autokorrelationsfunktion,– Regressionsanalysen.

Warum „Mathematica“?

• Mathematica ermöglich schnelle (prototypische) Entwicklung von Programmen für mathematisch-statistische Analysen, weil – Viele mathematische Funktionen eingebaut sind,– Viele graphische Ausgabemöglichkeiten eingebaut

sind.

• Zudem: Viel Erfahrung mit Mathematica!

Wie sollen die Programmier-arbeiten später weitergehen?

• Mathematica ist (als interpretierte Programmiersprache) weniger gut geeignet für rechenzeitintensive Anwendungen mit großen Datenmengen,

• Daher wird das „fine-tuning“, das mit umfangreicheren numerischen Berechnungen einhergeht, in C++ entwickelt werden.

Wie lautet die Problemstellung?

• Liefere (statistisch) gute Vorhersage für „Trends“ in den verschiedenen MSCI-Indices,

• Diese Vorhersagen sollen als Grundlage für die Auswahl von Direkt-Investitionen in Fonds dienen, unter den Einschränkungen:– Keine Short-Positions,– Keine Derivate,– „Adäquate“ (...) Haltedauer.

Welche Methoden stehen dazu (u.a.) zur Verfügung?

• „Technische Analyse“ (MACD, RSI, ...),

• Klassische Zeitreihenanalyse (uni- und multivariat),

• Pattern recognition (computational geometry),

• Sonstige gute Ideen ...

Erste Ansätze

• „Klassische“ Technische Analyse: MACD,

• Betrachtung der (univariaten) Autokorrelation,

• Betrachtung der Korrelationen,

• „Signalzerlegung“ mit Regressionsanalyse.

Technische Analyse: MACD

• Der „klassische“ Moving-Average Convergence-Divergence Indikator vergleicht zwei gleitende Durchschnitte verschiedener Länge,

• In „paper trades“ (simuliertem long/short-Handel) kann die Performance solch einfacher Trading-Signale (rückblickend!) untersucht und optimiert werden,

• Eine sehr vereinfachte Simulation (keine Transaktionskosten ...) zeigt: Performance leicht positiv.

• Ausbau: Verschiedene andre Indikatoren, extensive Optimierung der Parameter ...

Autokorrelationsfunktion

• mißt, wie gut die Preisänderung heute mit der von gestern, vorgestern, vorvorgestern, ... korreliert ist,

• Ausbau: Modellierung als (univariate) ARMA-Prozesse ...

Korrelationsuntersuchung

• Graphik links zeigt 3D-Plot der Korrelationsmatrix der ersten 38 Europa-Indices,

• Beobachtung: Alle positiv!

• Ausbau: Modellierung mit multivariaten auto-regressiven Prozessen.

10

20

30

10

20

30

00.250.5

0.75

1

10

20

30

Zwischenfrage: Warum nur die ersten 38 Indices (von

63)? • Ab dem 39 Index treten

fehlende Daten auf,• Für diese ersten

Untersuchungen sind auch 38 Indices ein ausreichendes Sample,

• Im „fine-tuning“ werden dann alle Indices untersucht.

Identifikation von „Trends“ in den Daten

• Was uns eigentlich interessiert, sind die „Trends“ in den Daten -

• Diese wollen wir mit - „ausreichender“ statistischer Güte - vorhersagen,

• Dabei gilt unser Augenmerk insbesondere den up-Trends (nur long-Positionen ...).

Wir brauchen eine geeignete (quantitative) Fassung des

Begriffs „Trend“

• Ein Trend soll „hinreichend lange“ dauern (kein short-term-Trading - sonst zu hoher Abwicklungsaufwand!),

• Ein Trend soll „hinreichend steil“ sein (sonst lohnt sich ja das Investment nicht, wegen zu hoher Transaktionskosten).

Beispiel der „Daten“

500 1000 1500 2000

100

125

150

175

200

2258EUROPEêENERGYEQUIP & SVC<

Regressionsanalyse

Die Regressionsanalyse für unsere Zeitreihen bedeutet den Versuch, die Rohdaten in ein „gefiltertes Signal“ von bestimmtem Typ (Polynomfunktionen, trigonometrische Funktionen) und ein „Rauschen“ (quadrierte mittlere Abweichung vom „Signal“) zu zerlegen.

Lineare Regression

Versuche zeigen: Dies gelingt (anscheinend) am besten mit der einfachsten Variante, der Linearen Regression: Diese „zerlegt“ die Daten in

• Ein gefiltertes Signal, (~moving average),• Die erste Ableitung des Signals,• Eine Rauschkomponente (~Volatilität).

Lineare Regression (window: 25), Rohdaten

500 1000 1500 2000

100

110

120

130

140

150

160

8EUROPEêOIL & GAS<

Lineare Regression (window: 25), gefiltertes „Signal“

500 1000 1500 2000

80

100

120

140

160

Lineare Regression (window: 25), Ableitung des Signals

500 1000 1500 2000

-1

-0.5

0.5

1

Lineare Regression (window: 25), Rauschkomponente

500 1000 1500 2000

1

2

3

4

5

Nützliche Beobachtung

• Eigentlich war diese Zerlegung mit linearer Regression nur dazu gedacht, die Trends zunächst einmal „quantitativ zu beschreiben“,

• Augenscheinlich läßt sich aber aus der linearen Regression auch ein Trendindikator ableiten, der nur auf dem beobachteten Signal und seiner Ableitung basiert.

Identifizierte up-Trends

500 1000 1500 2000

80

100

120

140

160

Identifizierte down-Trends

500 1000 1500 2000

100

110

120

130

140

150

160

„Graphische“ Analyse

„Rein optisch“ sieht das ganz gut aus! - Der Trendindikator ist hier durch nur 3 Parameter charakterisiert (also „ziemlich sicher“ kein „curve-fitting“):

• Länge des gleitenden Zeitfensters: mwl,• Schwellenwert für Signaldifferenzen:

eps1,• Schwellenwert für die Ableitung: eps2.

Quantitative Analyse mit „Paper Trades“, 1

Um den „rein optischen“ Eindruck mit Zahlen zu unterlegen: Simuliere (sehr vereinfacht - ohne Transaction costs, Slippage, Commissions, ...) „paper trades“:

• Long in der nächsten Periode, wenn Trendindikator „up“,

• Short in der nächsten Periode, wenn Trendindikator „down“,

• Flat in der nächsten Periode, wenn Trendindikator „seitwärts“.

Quantitative Analyse mit „Paper Trades“, 2

• „Buchführung“, getrennt nach long- und short-deals,

• Ermittlung der annualisierten Rendite,• Optimierung (sehr grob, wegen Rechenzeit)

der Parameter (mwl, eps1, eps2) im Hinblick auf die Rendite,

• Einschränkung auf jene Simulationsergebnisse, bei denen lange (>= 500 Tage) investiert und nicht zu oft (<=40 Trades) gedreht wurde.

Ergebnisse, Tabelle 1

Ergebnisse, Tabelle 2

Vorläufige Beurteilung

• Die Ergebnisse wirken recht ermutigend!• (Die auftretenden Negativ-Performances sind

nicht unbedingt ein Problem: Hier kann man ja eine andere Trading-Strategie wählen - dies muß freilich näher untersucht werden ...).

• Besonders erfreulich ist die einfache Struktur des Indikators: Bei sehr komplexen Modellierungen besteht immer die Gefahr des „curve-fitting“.

AusblickAuf Basis der bisherigen Untersuchungen und Ergebnisse wären die nächsten Schritte:

• Programmierung in C++ (um die Rechengeschwindigkeit zu erhöhen),

• Verfeinerung der Untersuchung in Richtung– Einbeziehung aller Daten (auch unvollständige),– Mehrere Trendindikatoren vergleichen,– Verbesserte Optimierung,– Einbeziehung von Risikomaßen (maximum drawdown),– Verfeinerte Tests der Vorhersagegüte (in sample

optimisation, out-of-sample testing).

Abschließende Fragen

• Entsprechen die bisher erzielten Ergebnisse und die geplanten weiteren Schritte den Erwartungen und Wünschen der Bank Medici?

• Wenn ja: Wie sollte das Deliverable aussehen? - Software (DLL?), die täglich– neue Indexdaten einliest (wie?)– und auf dieser Basis Trend-Vorhersagen für die

Indices liefert (in welchem Format)?

Vielen Dank für Ihre Aufmerksamkeit!