Kurswertelisten automatisiert erstellen
Daten aus dem Internet
Es gibt zahlreiche Webseiten im Internet, die Daten zur Entwicklung des DAX bereit stellen, so z.B. auch auf der Seite Yahoo! Finanzen. Hier ein Ausschnitt aus dieser Seite:
Beachte hier insbesondere den Link, mit dem man die Daten aufbereitet für ein Tabellenkalkulationsprogramm herunterladen kann. Man erhält eine Datei, in der die Daten im CSV-Format dargestellt sind.
Date,Open,High,Low,Close,Adj Close,Volume 2020-01-02,13233.709961,13425.030273,13225.160156,13385.929688,13385.929688,75341400 2020-01-03,13266.389648,13282.740234,13120.719727,13219.139648,13219.139648,80793400 2020-01-06,13085.490234,13143.110352,12948.169922,13126.990234,13126.990234,71778600 2020-01-07,13199.589844,13283.879883,13166.400391,13226.830078,13226.830078,78282300 2020-01-08,13140.490234,13334.040039,13106.269531,13320.179688,13320.179688,88178800 2020-01-09,13474.759766,13523.339844,13456.780273,13495.059570,13495.059570,86965600 2020-01-10,13533.459961,13548.200195,13483.309570,13483.309570,13483.309570,77941000
Die Datei table2020.csv enthält alle DAX-Werte aus dem Jahr 2020. Die Datei table2020demo.csv enthält nur einen Teil der Daten und dient zum Testen. Wir benutzen den Close-Wert beim jeweiligen Börsenschluss.
Aufbereitung der Daten
Aus diesen Daten lässt sich mit einer Python-Funktion eine Liste mit den gewünschten Kurswerten erstellen.
def aktienkursListe(csvDatei):
try:
datei = open(csvDatei, 'r', encoding='iso-8859-1')
liste = []
for zeile in datei:
jahr = zeile[0:4]
if jahr != 'Date':
daten = zeile.strip().split(',')
kurs = round(float(daten[4]), 2)
liste = liste + [kurs]
datei.close()
return liste
except:
return []
Mit einem Funktionsaufruf, bei dem man den Dateinamen mit den Rohdaten übergibt, erhält man die gewünschte Liste.
>>> aktienkursListe('table2020demo.csv')
[13385.93, 13219.14, 13126.99, 13226.83, 13320.18, 13495.06, 13483.31]
Aufgabe 1
Probiere das selbst aus. Erstelle so auch eine Liste mit allen Kursdaten des Jahres 2015.
Aufgabe 2
Teste auch die folgende Funktion. Was leistet sie? Warum macht es für viele Anwendungen Sinn, mit den hier erzeugten Daten weiterzuarbeiten?
def aktienkursListeMitDatum(csvDatei):
try:
datei = open(csvDatei, 'r', encoding='iso-8859-1')
liste = []
for zeile in datei:
jahr = zeile[0:4]
if jahr != 'Date':
daten = zeile.strip().split(',')
datum = daten[0]
kurs = round(float(daten[4]), 2)
liste = liste + [(datum, kurs)]
datei.close()
return liste
except:
return []