fbpx

Aktienkurse abfragen mit Python | Schritt für Schritt

Inhalt
    Add a header to begin generating the table of contents

    Aktienkurse verfolgen macht Spaß!

    Natürlich sind sie gerade auch im Trend, aber wie sollte es anders sein?
    WallStreetBets hat wohl jeder mitbekommen.

    Und auch davor gab (und gibt es noch immer) wenig Alternativen.
    Ob Nullzins oder die Angst vor steigender Inflation. An Aktien führt kaum noch ein Weg vorbei.

    Aber je länger du Aktien beobachtest, desto länger wird auch deine Liste der Aktien, die du beobachten möchtest.
    Den Aufwand willst du dir natürlich sparen und die Arbeit am besten automatisieren.

    Deshalb schreiben wir heute ein Skript, dass die Arbeit für uns erledigt.
    Lass den Computer die stupide Arbeit machen und die Daten zusammen sammeln.

    Dafür sind nur ein paar wenige Zeilen Python Code nötig.

    Du weißt nicht, was du mit den Dateien machen sollst?
    Hier findest du Hilfe.

    Update 16.02.2023

    Die Bibliothek ‘yfinance‘ wurde etwas angepasst.
    Um an den Preis zu kommen, brauchst du jetzt den folgenden Code:

    import yfinance
    
    microsoft = yfinance.Ticker('MSF.DE')
    daten = microsoft.basic_info
    print(f'{daten.last_price:.2f} {daten.currency}')

    Bibliothek installieren

    Am einfachsten lassen sich die Daten mithilfe einer Bibliothek abfragen. Wir werden hier yfinance verwenden.

    Vor ein paar Jahren hat Yahoo Finance die offizielle Schnittstelle abgestellt.
    Zum Unmut vieler Nutzer.
    yfinance springt genau hier ein und hat sich als würdiger Nachfolger erwiesen.

    Die Bibliothek ist stabil und deckt alles ab, was du auf https://finance.yahoo.com/ auch finden kannst.

    Installieren lässt sie sich einfach über:

    %pip install yfinance

    Ticker Symbol auswählen

    Die Bibliothek arbeitet über die Ticker Symbole der Aktien.
    Aber was ist ein Ticker Symbol und wo bekommst du das her?

    Eigentlich ganz einfach. Lass mich kurz erklären:

    Was ist ein Ticker Symbol?

    Eine Aktie die in den USA an der NYSE oder dem NASDAQ registriert ist, hat eine Abkürzung als Kennzeichnung.
    Diese Abkürzungen sind 1 – 4 Buchstaben lang und identifizieren eine Aktie.

    So ist Microsoft zum Beispiel unter MSF (NYSE) oder MSFT (NASDAQ) registirert.
    Ford mit F.
    AT&T mit T
    und so weiter.

    Als Gegenstück hat Deutschland die WKN (Wertpapier Kennnummer).
    International ist es die ISIN (International Securities Identification Number).

    Welches Ticker Symbol brauche ich?

    Das Ticker-Symbol setzt sich aus dem Kürzel der Aktie (z.B. MSF) und dem Kürzel der Börse (z.B. DE) zusammen.
    Microsoft an der XETRA ist damit MSF.DE

    Wunderbar, was ein Ticker Symbol ist, ist jetzt also geklärt.
    Aber wo bekommst du es jetzt her?
    Und brauchst du für Microsoft MSF oder MSFT?

    Das hängt davon ab, an welcher Börse du die Aktienkurse beobachten willst.
    Jede Börse hat ihren eigenen Preis und ihr eigenes Registrierungssymbol.

    Möchtest du also den Preis für Microsoft an der NYSE wissen, brauchst du MSF.
    Interessiert dich der Preis für Microsoft an der NASDAQ brauchst du das Symbol MSFT.

    Wo finde ich das Ticker Symbol zu meiner Aktie?

    Am einfachsten ist es den Namen der gewünschten Aktie in die Suchleiste auf https://finance.yahoo.com einzugeben.
    Es öffnet sich eine Vorschlagsliste mit Ticker Symbol und Börsenplatz.

    Wie der Name sagt, fragt yfinance die Aktienkurse von Yahoo Finance ab.

    Einen ersten Überblick über das Datenangebot bekommst du hier:
    https://help.yahoo.com/kb/exchanges-data-providers-yahoo-finance-sln2310.html

    Du siehst sowohl welche Börsen alle vertreten sind, als auch wie aktuell die Daten sind.

    Zum Beispiel ist die XETRA – die elektronische Börse Deutschlands – Mit der Endung .DE vertreten.
    Die Datenversorgung findet hier alle 15 Minuten statt.

    15 Minuten aktuelle Daten reichen für uns auf jeden Fall aus.

    Das Symbol für die von dir gewählt Aktie und den Börsenplatz findest du ganz leicht auf der Seite von Yahoo Finance:
    https://finance.yahoo.com/

    Sobald du den Namen deiner Aktie in die Suchleiste eingibst, bekommst du darunter Vorschläge angezeigt.
    Zum Beispiel siehst du für Microsoft am XETRA Börsenplatz das Symbol MSF.DE.

    Autovervollständigung hilft mit den Ticker Symbolen
    Autovervollständigung hilft mit den Ticker Symbolen

    Aktieninformationen abfragen

    Jetzt soll’s aber endlich mal dran gehen, Daten zu sammeln!

    Alle Microsoft Daten findest du hier:
    https://finance.yahoo.com/quote/MSF.DE/key-statistics?p=MSF.DE

    Und alles, was du dort siehst, kannst du auch über die Bibliothek abfragen.

    Dafür importierst du zunächst die Bibliothek yfinance.
    Als Nächstes erzeugst du mit der Ticker Klasse eine neue Instanz – dafür wird das Ticker-Symbol benötigt.

    Die Ticker Klasse kommt mit einem Attribut info, dass dir alle Aktieninformationen ausgibt:

    import yfinance
    
    microsoft = yfinance.Ticker('MSF.DE')
    print(microsoft.info)

    Mithilfe von json.dumps aus dem json Modul kannst du die Ausgabe etwas übersichtlicher darstellen:

    import yfinance, json
    
    microsoft = yfinance.Ticker('MSF.DE')
    print(json.dumps(microsoft.info, indent=4))

    Du siehst also, von Sektor über Beschreibung hin zu Finanzdaten ist alles dabei.

    Aktienkurse extrahieren

    In der langen Liste von Attributen solltest du regularMarketPrice finden. Hier ist der aktuelle Preis deiner Aktie am gewählten Börsenplatz hinterlegt.
    Mit dem Wissen kannst du natürlich auch direkt die Ausgabe einschränken:

    import yfinance
    microsoft = yfinance.Ticker('MSF.DE')
    print(microsoft.info['regularMarketPrice'])

    Der Preis ist natürlich ein Zahlen-Wert und damit ist auch keine Währung mit angegeben.
    Die Währung hängt immer davon ab, für welche Börse du die Daten abfragst.
    Also, welches Ticker-Symbol du verwendest.

    Willst du wissen, welche Währung es ist, kannst du zusätzlich noch das Feld currency abfragen:

    import yfinance
    
    microsoft = yfinance.Ticker('MSF.DE')
    daten = microsoft.info
    print(f'{daten["regularMarketPrice"]} {daten["currency"]}')

    Nehmen wir zum Vergleich einmal die NYSE:

    import yfinance, json
    
    microsoft = yfinance.Ticker('MSFT')
    daten = microsoft.info
    print(f'{daten["regularMarketPrice"]} {daten["currency"]}')

    Und schon bekommst du den Aktienkurs in USD.

    Historische Preise abfragen

    Alternativ kannst du auch über die historischen Preise gehen.
    Über das Attribut history kannst du dir die historischen Preisdaten liefern lassen.
    Mit dem Attribut period kannst du auswählen, welche Daten du möchtest:

    WertBedeutungBeschreibung
    1d1 TagAlle Preise vom letzten Tag
    5d5 TageAlle Preise der letzten Woche
    1m1 MonatAlle Preise des letzten Monats
    3m3 MonateAlle Preise der letzten 3 Monate
    6m6 MonateAlle Preise der letzten 6 Monate
    1y1 JahrAlle Preise des letzten Jahres
    2y2 JahreAlle Preise der letzten 2 Jahre
    5y5 JahreAlle Preise der letzten 5 Jahre
    10y10 JahreAlle Preise der letzten 10 Jahre
    ytdYear to DateAlle Preise der letzten 360 Tage
    maxMaximumAlle vorhandenen Daten
    Zeiträume für historische Preise

    Dabei wird noch nach Intervall eingeschränkt.
    Verfügbare Intervalle sind:

    WertBedeutungBeschreibung
    1m1 Minute1 Preis pro Minute
    2m2 Minuten1 Preis alle 2 Minuten
    5m5 Minuten1 Preis alle 5 Minuten
    15m15 Minuten1 Preis alle 15 Minuten
    30m30 Minuten1 Preis alle 30 Minuten
    60m60 Minuten1 Preis alle 60 Minuten
    90m90 Minuten1 Preis alle 90 Minuten
    1h1 Stunde1 Preis je Stunde
    1d1 Tag1 Preis pro Tag
    5d5 Tage1 Preis alle 5 Tage
    1wk1 Woche1 Preis pro Woche
    1mo1 Monat1 Preis pro Monat
    3mo3 Monate1 Preis alle 3 Monate
    Intervalle für historische Preise

    Je nachdem, welche Periode du gewählt hast, kannst du nicht aus allen Intervallen auswählen.
    Willst du zum Beispiel die Aktienkurse der letzten 5 Jahre, kannst du nicht einen Preis pro Minute bekommen.
    Es wären schlicht zu viele Daten.

    import yfinance, json
    
    microsoft = yfinance.Ticker('MSF.DE')
    print(microsoft.history(period='1d', interval='1m'))

    Preis aus historischen Daten beziehen

    Wie du siehst, werden dir dabei mehrere Daten geliefert.

    SpalteBedeutungBeschreibung
    OpenEröffnungswert des IntervallsWelcher Preis war der erste in der vergangenen Minute
    HighHöchstwert im IntervallWelcher Preis war der Höchste in der vargangenen Minute
    LowNiedrigster Wert im IntervallWelcher Preis war der Niedrigste in der vergangenen Minute
    CloseSchlusswert des IntervallsWelcher Preis war am Ende der Minute
    VolumeHandelsvolumen im IntervallWieviele Stück wurden gehandelt
    DividendsDividende im IntervallWieviel Dividende wurde im Intervall ausgeschüttet
    Stock SplitsAktien Splits im IntervallWelche Splits wurden in dem Intervall vorgenommen
    Datensätze in den historischen Daten

    Die Daten sind sicher auch interessant! Aber für uns gerade nicht wichtig.
    Jetzt geht es erstmal darum, den aktuellsten Preis zu finden.

    Und der aktuellste Preis ist der letzte in den historischen Daten.
    Dabei interessieren wir uns noch für den Close Preis. Das ist der letzte Preis, der in dem Zeitraum gehandelt wurde.

    Zusammenfassung

    • Ticker Symbol auf https://finance.yahoo.com/ heraussuchen
    • yfinance installieren
    • Objekt mit Ticker(Symbol) erstellen

    Option 1:

    • Daten mit objekt.info abfragen
    • Preis aus regularMarketPrice entnehmen

    Option 2:

    • Historische Daten über objekt.history abfragen
    • Preis aus dem letzten Eintrag entnehmen

    Vollständiger Code

    %pip install yfinance
    
    import yfinance, json
    
    microsoft = yfinance.Ticker('MSF.DE')
    daten = microsoft.info
    print(json.dumps(daten, indent=4))
    
    print(daten['regularMarketPrice'])
    
    print(f'{daten["regularMarketPrice"]} {daten["currency"]}')
    
    print(microsoft.history(period='1d', interval='1m')['Close'][-1])
    WebScraping Angebot

    Kurse

    Code Challenges und YouTube Videos führen nicht immer zum gewünschten Erfolg.
    Manchmal ist es besser, gezielt und strukturiert durch ein Thema zu arbeiten.

    Schau dich einfach mal bei meinen Kursen um.
    Ohne lästiges Blah Blah steigen wir direkt in das Thema ein und behandeln alles, was du brauchst.

    Ingo Janßen

    Ingo Janßen

    Lerne nicht einfach programmieren. Löse Probleme und automatisiere Aufgaben!

    Das könnte dich auch interessieren

    Nach oben scrollen
    Newsletter Popup Form

    Keine Inhalte mehr verpassen?

    Melde dich direkt für den "Code-Kompass" an und erhalte nützliche Tipps und Informationen direkt in deinen Posteingang.