Programmieren statistischer Algorithmen mit R
Programmierprojekt zu Tick-Daten
Inhalt
1. Motivation und Themenstellung 1
2. Theorie 1
2.1 Theorie zu Tick-Daten. 1
Theorie zu time sampling 1
2.2
2.2.1 Tick based time sampling 1
2.2.2 Calendar time sampling 2
2.2.3 Transcation based time sampling 2
3. Methodik 2
3.1 Vorgehensweise 2
3.2 Vorstellung der erstellten, generischen Funktionen 3
3.2.1 Funktionen zur Anpassung und Bereinigung des Datensatzes 3
3.2.2 Funktionen zur weiteren Bearbeitung und für zusätzliche Ergebnisse 5
4. Ergebnisse. 6
5. Fazit und Zusammenfassung 12
6. Anhang II
6.1 Verwendeter R-Code II
I
Programmieren statistischer Algorithmen mit R
1. Motivation und Themenstellung
Diese Arbeit beschäftigt sich mit der Bearbeitung und der Auswertung von Tick-Daten. Es geht hauptsächlich darum, die Rohdaten mithilfe von Funktionen zu bearbeiten, die im Anschluss auch für vergleichbare Datensätze wieder verwendet werden können. Unter anderem werden die Datenreihen harmonisiert, Ausreißer gelöscht und zusätzliche Daten errechnet.
Anschließend werden die Daten ausgewertet, graphisch präsentiert, Besonderheiten hervorgehoben sowie sonstige Fragen beantwortet.
2. Theorie
Zu Beginn wird kurz auf die Theorie eingegangen. Dies wurde in der Themenstellung gewünscht, allerdings gibt es aufgrund weniger umfangreicher Quellen nur einen kurzen Einblick.
2.1 Theorie zu Tick-Daten
Für Tickdaten gibt es verschiedene Definitionen. Eine Möglichkeit lautet:
„Als Tickdaten bezeichnet man die vollständige, nicht-aggregierte Aufstellung
aller Preise eines Wertpapiers, die innerhalb eines Handelstages zutande kommen. Diese Preise werden entweder im vollelektronischen Handelssystem Xetra® automatisch gebildet oder im Präsenzhandel vom Skontroführer festgestellt.“ 1
2.2 Theorie zu ‚time sampling‘
Zum ‚time sampling‘ sollen nun kurze Beschreibungen gegeben werden, aller- dingsist es wegen dünner Quellenlage schwer hier umfangreiche, allgemeine Definitionen zu finden.
2.2.1 Tick based time sampling
Tick Time Sampling (TTS): basiert auf Preisveränderungen (Angebot an der Börse), eine Aufteilung die äquidistant in Bezug auf die Ticks ist.
1 Gefunden unter http://www.awd.de/awdde/de/home/service/finanzlexikon.html, aufgerufen
am 13.07.2010
1
Programmieren statistischer Algorithmen mit R
2.2.2 Calendar time sampling
Calendar Time Sampling (CTS): τn j = T j /(n+1), eine Aufteilung, die zeitlich äquidistant ist.
2.2.3 Transcation based time sampling
Transaction Time Sampling (TTS) sammelt die Abfolge der Preise P unter Beachtung der Transaktionen.
3. Methodik
Nach der Theorie folgt nun die Beschreibung der Methodik. Zuerst wird die allgemeine Vorgehensweise der Datenbearbeitung beschrieben, im Anschluss werden die programmierten Funktionen vorgestellt; welchen Zweck erfüllen sie, welche Besonderheiten haben sie und was muss man beachten.
3.1 Vorgehensweise
Ausgangspunkt des Projektes sind zwei Datenreihen mit Datum/Zeit und Bidbzw. Ask-preisen für jeden Tick über 6 Tage (175.964 bzw. 175.965 Beobachtungen) im .csv-Format. Damit kann man die später beschriebenen Funktionen für alle vergleichbaren Daten verwenden. Der erste Schritt muss folglich sein, die Daten in R einzulesen, die beiden Tabellen bezüglich ihrer Datumsspalte anzupassen (d.h. sicherstellen, dass in beiden Tabellen in jeder Zeile jeweils der gleiche Wert ist) und die gleiche Anzahl von Reihen in beiden Datensätzen zu erhalten. Hat man nun einen solchen Datensatz (3 Spalten: Datum, ask-price, bid-price) kann die weitere Verarbeitung folgen. Extreme Ausreißer sollen gelöscht, Mittelwerte sowie die Spreads zwischen Bid- und Ask-price eingefügt werden.
Ein weiteres Problem sind mehrere Zeilen mit genau derselben ‚Sekunde‘. Sollten mehrere Ticks pro Sekunde aufgetaucht sein, soll jeweils nur der letzte stehen bleiben. Nach der Theorie wird es dadurch begründet, dass nur der letzte Preis gültig ist, bis der nächste Tick eintritt.
2
Programmieren statistischer Algorithmen mit R
Schließlich können in weiteren Schritten die Returns und die Duration berechnet werden sowie der Datensatz in Stundenschritte unterteilt, bevor dann am Ende die Ergebnisse präsentiert werden, graphisch und anhand deskriptiver Statistik.
3.2 Vorstellung der erstellten, generischen Funktionen
Im Zuge der Bearbeitung wurde eine Reihe von Funktionen erstellt, die soweit wie möglich generisch gehalten wurden. Dies bedeutet, dass sie selbstverständlich auch für zukünftige Bearbeitungen von vergleichbaren Datensätzen verwendet werden können (unverändert oder mit leichten Modifikationen).
3.2.1 Funktionen zur Anpassung und Bereinigung des Datensatzes
Hierunter fallen die Funktionen, die, wie oben beschrieben, die Datensätze bereinigen und sie vorbereiten auf die folgende Bearbeitung. Im Einzelnen sind es die folgenden Funktionen
fit_nrow_fun (ds1, ds2)
Als ersten Schritt formatiert die Funktion (fit_nrow_fun) die Datumsspalten in das posix-Format und passt die Anzahl der Reihen der beiden Datensätze an. Hierzu ist zu sagen, dass folgende Theorie dahinter steht: Ist in einem der beiden Datensätze beispielsweise eine Zeile mehr als in dem anderen, so ist es wahrscheinlich, dass einfach irgendwo eine Zeile ‚zu viel‘ ist (In diesem Fall wäre es fahrlässig, einfach alle Zeilen zu löschen, in denen die Zeitspalte nicht übereinstimmt, so würden vermutlich viel zu viele Zeilen gelöscht; und auch wenn dies nicht der Fall ist, so löscht man auf diese Weise auch nicht zu viel und kann immer noch später die ‚delete_fun‘-Funktion anwenden). Die erste Zeile mit fehlender Übereinstimmung wird gesucht und gelöscht. Die Prozedur wird solange wiederholt, bis die Anzahl der Zeilen übereinstimmt (sollten mehr als eine Zeile Unterschied bestehen). Umsetzung mithilfe einer while()-Funktion, solang nrow(ds1) ungleich nrow(ds2) ist und zwei if()-Funktionen, ob nrow (ds1) größer oder kleiner als nrow(ds2) ist.
Das Resultat der Funktion ist ein zusammengefügter Datensatz mit natürlich gleich viel Zeilen in den Bid- und den Ask-Preisen.
3
Programmieren statistischer Algorithmen mit R
Die folgende Funktion
delete_fun (ds)
geht nun die weiteren Schritte und löscht die Zeilen, in denen jetzt noch die Werte in den Datum/Zeit-Spalten nicht übereinstimmen (sollten nicht mehr allzu viele sein, zumindest im konkreten Beispiel nicht). Außerdem löscht sie (da jetzt dann alles übereinstimmt und daher nicht mehr gebraucht wird) die zweite Datumsspalte.
Das Resultat ist daher ein bereinigter, dreispaltiger Datensatz aus Datum, Ask-Preis und Bid-Preis.
Eine weitere Bereinigung der Daten findet in der Funktion
doubles_fun (ds)
statt. Es werden Zeilen gesucht, in denen in der Datumsspalte exakt der gleiche Wert (also bis auf die Sekunde genau) steht. Nach der Theorie machen mehrere, verschiedene Werte für die gleiche Sekunde nicht viel Sinn. Es wird also nur der letzte Wert für die jeweilige Sekunde als gültig betrachtet. Die anderen, vorherigen sollen gelöscht werden (Umsetzung mithilfe des Logikvektors ‚doubles‘ (über die duplicated()-Funktion; anschließend wird noch ‚-1‘ gerechnet, damit der letzte Wert übrig bleibt).
Das Resultat ist nun ein, bezüglich der Datumsspalte fertig bereinigter Datensatz. Doch auch bezüglich der Preisspalten sind eventuell Bereinigungen nötig. Bei krassen Ausreißern kann man natürlich argumentieren, dass es immer Extremwerte gibt und sie trotzdem plausibel sind. In der Funktion
outlier_fun (ds, factor)
jedoch, werden Ausreißer, die mehr als ein zu bestimmendes Vielfaches des Mittelwertes (in dem konkreten Beispiel der Arbeit wurde 2 als factor gewählt, d.h. Werte, die mehr als doppelt so groß wie der Mittelwert sind, fallen unter das Schema) betragen, als zu extrem betrachtet und folglich gelöscht. Damit kann hier auch sehr restriktiv vorgegangen werden (z.B. indem man den factor sehr hoch
4
Arbeit zitieren:
Jan Reichenberger, 2010, Bearbeitung und Auswertung von Tick-Daten, München, GRIN Verlag GmbH
Dieser Text kann über folgende URL aufgerufen und zitiert werden:
Einbetten
DOI
Formatvorlage (Microsoft Word) für eine Diplomarbeit, Masterarbeit, Ha...
Für MS Word 2003 - Update 2010
Vorlagen, Muster, Formulare, Infobroschüren
Ausarbeitung, 25 Seiten
Formatvorlage (OpenOffice) für eine Diplomarbeit, Masterarbeit, Hausar...
Vorlagen, Muster, Formulare, Infobroschüren
Ausarbeitung, 35 Seiten
Formatvorlage / Vorlage zur Erstellung einer Diplomarbeit, Bachelorarb...
Vorlagen, Muster, Formulare, Infobroschüren
Ausarbeitung, 15 Seiten
Formatvorlage / Vorlage für eine Diplomarbeit / Hausarbeit
Für MS Word 2007 - dotx
Vorlagen, Muster, Formulare, Infobroschüren
Ausarbeitung, 25 Seiten
Anleitung zum Erstellen schriftlicher Arbeiten: Der Aufbau einer wisse...
Vorlagen, Muster, Formulare, Infobroschüren
Ausarbeitung, 20 Seiten
Erstellen einer schriftlichen Hausarbeit
Vorlagen, Muster, Formulare, Infobroschüren
Hausarbeit, 14 Seiten
Grundtechniken wissenschaftlichen Arbeitens
Bibliografieren - Reden - Schr...
Vorlagen, Muster, Formulare, Infobroschüren
Skript, 46 Seiten
Ratgeber zur Erstellung wissenschaftlicher Arbeiten. Diplomarbeiten - ...
Vorlagen, Muster, Formulare, Infobroschüren
Ausarbeitung, 39 Seiten
BWL - Investition und Finanzierung: Bearbeitung und Auswertung von Tick-Daten ist nun auf dem Buchmarkt erhältlich
BWL - Investition und Finanzierung: neuer Titel erschienen: Bearbeitung und Auswertung von Tick-Daten
Jan Reichenberger hat einen neuen Text hochgeladen
Ticks and Tick-Borne Pathogens
Proceedings of the 4th Interna...
Frans Jongejan, W. Reuben Kaufman
What Do Leaders Really Do: Getting Under the Skin of What Makes a Grea...
Getting under the skin of what...
Jeff Grout, Liz Fisher
A Field Guide to Ticks: Prevention and Treatment of Lyme Disease and O...
Susan Carol Hauser
0 Kommentare