Aktienkurse abfragen mit Python | Schritt für Schritt

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])

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.

3 Kommentare zu „Aktienkurse abfragen mit Python | Schritt für Schritt“

  1. Hallo Ingo,

    vielen Dank für deine großartige Seite, die mir bisher gute Dienste beim Verstehen der yfinance API geleistet hat.
    Jetzt bin ich aber auf Fonds gestoßen, die kein Symbol (Ticker) haben – z.B. LU1881477043.
    Damit fehlt mir das Kriterium um yfinance.Ticker( “…”) zu instanzieren.

    Wie komme ich jetzt an den “regularMarketPrice”?
    Kann ich – worst case – yfinance in diesen Fällen gar nicht verwenden?

    Danke vorab für deine Antwort und beste Grüße
    Martin

    1. Hi Martin,

      Vielen Dank für deine Frage!
      Im Endeffekt kannst du mit yfinance alles abfragen was du auf yahoo.finance findest.
      Die von dir angegebene ISIN finde ich zum Beispiel bei yahoo.finance gar nicht.

      Wenn du bei yahoo.finance eine Aktie (oder ETF oder …) aufrufst, sieht die URL in etwa so aus:
      https://finance.yahoo.com/quote/IWDA.AS/holdings?p=IWDA.AS
      oder so:
      https://finance.yahoo.com/quote/IWDA.AS
      oder so:
      https://de.finance.yahoo.com/quote/MSF.DE?p=MSF.DE&.tsrc=fin-srch
      oder so:
      https://de.finance.yahoo.com/quote/MSF.DE
      etc.

      Was du für yfinance brauchst ist der Teil der URL, der nach /quote/ kommt.
      Wenn du dein Fond, ETF, Aktie nicht bei yahoo.finance findest, dann kannst du die Daten auch nicht mit yfinance abfragen.
      yfinance benutzt im Hintergrund eben yahoo.finance.

Kommentar verfassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Scroll to Top
ANFORDERN
Anfordern
Bereit zum Ausdrucken | Mit Erklärungen
IMMER ZUR HAND
ANFORDERN
Anfordern
Bereit zum Ausdrucken | Mit Erklärungen
IMMER ZUR HAND
Trag dich schnell ein und bekomme Zugang zum Download!
Gib mir den Download!