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.
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:
Wert | Bedeutung | Beschreibung |
---|---|---|
1d | 1 Tag | Alle Preise vom letzten Tag |
5d | 5 Tage | Alle Preise der letzten Woche |
1m | 1 Monat | Alle Preise des letzten Monats |
3m | 3 Monate | Alle Preise der letzten 3 Monate |
6m | 6 Monate | Alle Preise der letzten 6 Monate |
1y | 1 Jahr | Alle Preise des letzten Jahres |
2y | 2 Jahre | Alle Preise der letzten 2 Jahre |
5y | 5 Jahre | Alle Preise der letzten 5 Jahre |
10y | 10 Jahre | Alle Preise der letzten 10 Jahre |
ytd | Year to Date | Alle Preise der letzten 360 Tage |
max | Maximum | Alle vorhandenen Daten |
Dabei wird noch nach Intervall eingeschränkt.
Verfügbare Intervalle sind:
Wert | Bedeutung | Beschreibung |
---|---|---|
1m | 1 Minute | 1 Preis pro Minute |
2m | 2 Minuten | 1 Preis alle 2 Minuten |
5m | 5 Minuten | 1 Preis alle 5 Minuten |
15m | 15 Minuten | 1 Preis alle 15 Minuten |
30m | 30 Minuten | 1 Preis alle 30 Minuten |
60m | 60 Minuten | 1 Preis alle 60 Minuten |
90m | 90 Minuten | 1 Preis alle 90 Minuten |
1h | 1 Stunde | 1 Preis je Stunde |
1d | 1 Tag | 1 Preis pro Tag |
5d | 5 Tage | 1 Preis alle 5 Tage |
1wk | 1 Woche | 1 Preis pro Woche |
1mo | 1 Monat | 1 Preis pro Monat |
3mo | 3 Monate | 1 Preis alle 3 Monate |
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.
Spalte | Bedeutung | Beschreibung |
---|---|---|
Open | Eröffnungswert des Intervalls | Welcher Preis war der erste in der vergangenen Minute |
High | Höchstwert im Intervall | Welcher Preis war der Höchste in der vargangenen Minute |
Low | Niedrigster Wert im Intervall | Welcher Preis war der Niedrigste in der vergangenen Minute |
Close | Schlusswert des Intervalls | Welcher Preis war am Ende der Minute |
Volume | Handelsvolumen im Intervall | Wieviele Stück wurden gehandelt |
Dividends | Dividende im Intervall | Wieviel Dividende wurde im Intervall ausgeschüttet |
Stock Splits | Aktien Splits im Intervall | Welche Splits wurden in dem Intervall vorgenommen |
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.
Ingo Janssen ist ein Softwareentwickler mit über 10 Jahren Erfahrung in der Leitung seines eigenen Unternehmens.
Er studierte Wirtschaftsinformatik an der TH Deggendorf und hat Softwareentwicklung an der FOM Hochschule in München unterrichtet.
Ingo hat mit einer Vielzahl von Unternehmen zusammengearbeitet, von kleinen und mittelständischen Unternehmen bis hin zu MDAX- und DAX-gelisteten Unternehmen.
Ingo ist leidenschaftlich daran interessiert, sein Wissen und seine Expertise mit anderen zu teilen. Aus diesem Grund betreibt er einen YouTube-Kanal mit Programmier-Tutorials und eine Discord-Community, in der Entwickler miteinander in Kontakt treten und voneinander lernen können.
Sie können Ingo auch auf LinkedIn, Xing und Gulp finden, wo er Updates über seine Arbeit teilt und Einblicke in die Tech-Branche gibt.
YouTube | Discord | LinkedIn | Xing | Gulp Profile