Document ID: /fineweb-2-swissfilter-quality_10-filterrobots/filtered/03331.jsonl.gz/221

um historische Daten aller aktuellen DAX Firmen in einem separaten Ordner abzulegen. Output Format ist csv.
Nötig ist nur ein Python Editor wie Spyder. Code reinkopieren, Zielverzeichnis (für die erstellten csv's ändern (im Code mit zwei Sternen gekennzeichnet). Beachten, dass zwei \\ für die Verzeichnisse nötig sind) und ausführen. Historische Werte werden von Yahoo Finance entnommen. Handelsplatz ist Xetra. Daten beinhalten Eröffnung, Hoch, Tief, Schluss, Volumen. Der Zeitraum wird mit DataEnd und DataBegin festgelegt. Bei Fragen oder Problemen einfach unter dem Posting antworten.
...wenn man die Firmen-Kennungen des jeweiligen Index in ein "Include-Files" auslagert, so dass man nach Bedarf ggf. auch Firmen aus Dow/Nasdaq/S&P500 auswerten kann, ohne den halben Code umschreiben zu müssen?
Vielen Dank für diesen Thread, es ist ein sehr interessantes Thema.
Dummerweise bin ich seit dieser Woche wieder in einem Projekt beschäftigt, dass mir im Moment wenig Zeit bleibt mich näher mit dem Thema zu beschäftigen. Mit Hilfe der historischen Daten könnte man weitere Daten ausrechnen, wie z.B. Kursänderungen auf täglicher, wöchentlicher oder monatlicher Basis.
Trotz meines momentanen Freizeitengpasses werde ich das Python Skript ausführen und mir die Daten extrahieren. Hiermit lerne ich gleichzeitig den Umgang mit der Sprache Python. Auf jeden Fall freue ich mich auf eine Diskussion, was man mit den historischen Daten alles anfangen kann.
ist mit den Daten dann weiterzuarbeiten. Denke da auf jeden Fall an Korrelationsmatrizen zwischen verschiedenen Größen wie Spread vs. Volumen etc.
Ich will mit rein objektiven Ergebnissen die Zusammenhänge etwas näher herausarbeiten. Wenn dabei rauskommt, dass es keine Zusammenhänge gibt ist das auch gut. Bin nicht voreingenommen :).
Für die die sich mit Matrizen auskennen:
Idee wäre die Tage vor und nach Wendepunkten genauer zu untersuchen. Mit einer Korrelationsmatrix ist das super einfach, da ich mir dazu nur die über bzw. unter der eigentlichen Spur liegenden Diagonale ansehen muss. Wenn die Spur also die Summe dieser Diagonalelemente um Null liegt, haben wir keinerlei Korrelation. Wenn die Summe / # der Elemente bei 1 liegt haben wir perfekte Korrelation oder eben bei - 1 ganz schlechte Korrelation.
Diese Untersuchung ist noch super einfach und sicherlich keine tiefere Sache. Mir schweben aber noch einige andere Dinge vor, die aus der reinen Signaltheorie kommen und mathematisch aufwändig sind. Hier würde ich mich auch über eine weitere Diskussion freuen.
Die Liste ist so oder so gut, da wir damit auch die von travel vorgeschlagenen include files erzeugen können.
Für weitere statistische Kniffe können wir auch gerne R oder Mathlab bemühen, wobei Python auch super einfach ist um allerlei Dinge mit Matrizen anzustellen.
Der weitere Weg sollte auf jeden Fall (zumindest in meinen Augen) über Matrizen gehen, da man hier Abhängigkeiten (sehr einfach) herausarbeiten kann. Multidimensional, mit allen Infos zu bestimmten Aktien.
Letztendlich braucht man dafür kein erhöhtes Mathematikverständnis. Lediglich die Programmierung erfordert dies, um zu wissen was man nun überhaupt macht. Die Interpretation ist auch ohne größere Kenntnisse möglich. Deshalb sollte es auch für Leute interessant sein, die damit weniger zu tun haben.
ganz schlechte Korrelation sollte eigentlich heissen gegensätzliche Korrelation. Sprich eine größe fällt, die andere steigt und umgekehrt.
Es wär eine große Sache, wenn eine dieser Größen irgendwas interessantes vor potentiellen Wendepunkten machen. Ich bin da zwar skeptisch aber untersuchen will ich es trotzdem, da es relativ billige Dinge sind, die man mit viel mächtigeren Werkzeugen verlinken kann.
#! /usr/bin/env python # # Create a List of all Yahoo-Finance Stock Symbols #
from __future__ import print_function import itertools import urllib
# Maximal length of the Symbols to Download # E.g. 3 will Download all Symbols from AAA to ZZZ LENGTH = 2 # Filename and Path FILENAME = 'symbols.csv'
symbols = []
for l in xrange(LENGTH + 1): alphabet = list("ABCDEFGHIJKLMNOPQRSTUVWXYZ") symbols += [''.join(i) for i in itertools.product(alphabet, repeat = l)]
def chunks(l, n): """ Yield successive n-sized chunks from l. """ for i in xrange(0, len(l), n): yield l[i:i+n]
symbolCounter = 0 with open(FILENAME, 'w') as out: for chunk in chunks(symbols, 1024): url = 'http://finance.yahoo.com/d/quotes.csv?s=' + '+'.join(chunk) + '&f=sn' data = urllib.urlopen(url) for line in data: if not 'N/A' in line: print(line, file=out) symbolCounter += 1 if (symbolCounter % 1000) == 0: print(unicode(symbolCounter) + ' Symbols loaded')
Vielen Dank. Der Code funktioniert on the fly. Hier kann man durch Analyse dieses kleinen Programms sehr viel über Python lernen, ohne sich erst einmal durch Tutorials oder Bücher zu quälen. Ich hab einmal alle Symbole mit maximal 3 stellen extrahiert. Das Ergebnis ist beeindruckend.
Das Fundamentaldatenprojekt läuft von meiner Seite noch und soll abschließend mit den neuen Ansätzen verbunden werden. Ziel ist es neben der Fundamentaldaten einen geeigneten Einstiegszeitpunkt besser einzugrenzen.
@ fernseher
Ich bin eigentlich in C++ eingearbeitet. Python hab ich mir mal angesehen, da sogar Google damit arbeitet. Es ist super einfach und die Codes sind sehr schnell erstellt. Mit der numpy Bib kann man alle möglichen statistischen bzw. algebraischen Rechnungen in der Matrixschreibweise sehr schnell implementieren. R ist sicher auch interessant aber in meinen Augen etwas mehr auf die statistische Anwendung fokusiert als Python.
@Bruno
Eventuell sagt dir statt Korrelationsmatrix Kovrianzmatrix was :). Beide Begriffe sind in gewisser Weise identisch. Ich verwende nur immer Korrelation, da es griffiger ist. Du kannst dir eine Kovarianzmatrix bei Wikipedia ansehen. Sie ergibt sich aus einem einfachen Spaltenvektor. Uns interessiert aber nicht die Info, die sich aus einem einfachen Spaltenvektor ergibt, da uns z.b. die Korrelation des Volumens vor 100 Tagen nicht mit dem Volumen von heute interessiert.
Sowas interessiert mich aber z.b. überhaupt nicht, da man daraus nur lernt, wie sich einige Aktien (völlig unterschiedlicher Branchen) zueinander verhalten. So ein Ergebnis halte ich für zufällig bzw. Indexgetrieben.
Aber ein Volumen des Vortags oder der letzten drei Tage mit der Trendumkehr des Folgetags etc. nicht. Und dafür sind solche Matrizen wie geschaffen. Damit können wir große Datenmengen schnell aufbereiten und vor allem müssen wir damit nicht selbst jede Situation bewerten.
solche Infos nutzen zu können (und auch den Nutzen richtig einzuschätzen), müssen wir erstmal Daten auswerten.
Wenn wir dann zum Ergebnis kommen, dass der Volumenverlauf, in Verbindung mit einem gewissen Bewegungsmuster, zu 60 % auf eine Trendumkehr hindeutet, haben wir schon was gewonnen. Dies, in Verbindung mit Fundamentaldaten und zusätzlichen Ansätzen (wie z.b. mean reversal ...) , kann uns schon ordentlich weiterbringen.
gehts im übrigen nicht um gleitende Durchschnitte. Ich stell mir das so vor:
Wir zeichnen zu jedem Titel den dynamischen Abstand der Aktie von den Indizes auf. Natürlich gewichtet mit dem Anteil dieser Aktien im Index.
Es gibt einen Ansatz, der darauf baut, dass sich Aktien mit hohem Indexgewicht mit größerer Wahrscheinlichkeit (kann nicht die Zahl nennen) dem Index wieder nähert. Wann ist nicht auszumachen. Aber es wär sicherlich interessant diesen Pool von Aktien mit Fundamentalansätzen und dann auch mit den obig genannten Instrumenten abzugleichen. Die Programme geben uns dann nur eine Liste an potentiellen Kandidaten. Die Auswahl erfolgt dann individuell.
Nun kann man sagen: Fein das ist auch mit Charttechnik möglich. Ich sage das ist es nicht, da man damit nicht den großen Bereich im Blick hat und immense Zeit dafür aufwendet eine Vorselektion zu machen und letztendlich auf ein paar Unternehmen beschränkt ist. Gleichzeitig kann es aber sein, dass gewisse Daten ein anderes Unternehmen als "sicherer" - hinsichtlich des Einstiegs - ansieht.
So weit ich es nebenbei aufgeschnappt habe, ist mean reversal Ansatz tatsächlich einer, der auch im insitutionellen bereich (speziell auch von HF) angewandt wird.
"Nun kann man sagen: Fein das ist auch mit Charttechnik möglich. Ich sage das ist es nicht, da man damit nicht den großen Bereich im Blick hat und immense Zeit dafür aufwendet eine Vorselektion zu machen und letztendlich auf ein paar Unternehmen beschränkt ist."
In dem Falle würde man ggf. ein paar ETF's aus verschiedenen Wirtschaftsräumenen nehmen und sich womöglich erst gar nicht mit Einzelaktien abgeben.
"Wenn wir dann zum Ergebnis kommen, dass der Volumenverlauf, in Verbindung mit einem gewissen Bewegungsmuster, zu 60 % auf eine Trendumkehr hindeutet, haben wir schon was gewonnen. Dies, in Verbindung mit Fundamentaldaten und zusätzlichen Ansätzen (wie z.b. mean reversal ...) , kann uns schon ordentlich weiterbringen."
Ich glaube da funktioniert so nicht mit 60 oder wie viel auch immer %. Das wäre zu einfach. Auch wenn man bestimmte (von mir aus auch stark ausgeprägte) Korrelationen in den angedachten Szenarios findet, wird es wohl noch nicht unbedingt einen praktischen Nutzen haben (im Sinne, dass es Geld einbringen könnte). Ich bin mir sogar ziemlich sicher, dass man entsprechende "harte" mathematische Korrelationen in den jeweiligen Trendphasen (Bewegung/Korrektur/Konsolidierung) eines beliebigen Zeitraumes finden wird. Diese Erkenntnisse in ein anwendbares Handlungsansatz zu gießen, welcher dann einen positiven Erwartungswert haben soll, wird wohl die größere Herausforderung sein.
Wenn wir z.B. bei "Korrelationen am Wendepunkt Ansatz" bleiben, so ist es doch so, dass ein jedes Ende einer Bewegung im Abwärtstrend die gleiche Charakteristika und gleiche begleitende Korrelatinen haben wird. Was man halt in dem Moment nie wissen wird, ist halt, ob dieser eine Wendepunkt nicht nur zu einer Korrektur, sondern auch zum Trendbruch führt. Was man wahrscheinlich ins Augenschein nehmen muss, wäre die Entwicklung/Evolution dieser Korrelationen auf der Zeitachse und zwar determiniiert von Bewegung zur Bewegung, von Korrektur zur Korrektur. Diese Evolution müsste dann mit einer Funktion beschrieben werden können, die dann ggf auch ein Signal liefert.