i

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:

Entwicklung des DAX

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 zu 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 []

Suche

v
6.3.1.4.1.9
inf-schule.de/imperative-programmierung/python/projekte/datenstrukturen/aktienkurse/realedaten
inf-schule.de/6.3.1.4.1.9

Rückmeldung geben