Upload
hadwigis-werlinger
View
106
Download
0
Embed Size (px)
Citation preview
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!