Aktienkurse mithilfe der Yahoo Finance API aus dem Web ziehen

Inhalt

Yahoo! Finance API

Um Aktien zu analysieren, benötigen wir regelmäßig historische oder aktuelle Kursinformationen und andere Finanzkennzahlen. Mithilfe der Yahoo Finance API und ein paar einfachen VBA-Makros ist es ganz leicht, diese Daten direkt nach Excel zu importieren.

Wie so oft ist es allerdings so, dass die Abdeckung für US-amerikanische Aktien am besten ist. Eine äquivalente Seite mit vollständigen Infos zu europäischen bzw. deutschen Werten, die gleichzeitig einen komfortablen Download erlauben, habe ich bisher noch nicht gefunden.


Was du in diesem Artikel lernst

  • Was API bedeutet und wie die Yahoo Finance API funktioniert
  • Welche Arten von Daten bei Yahoo Finance verfügbar sind
  • Wie du die Daten einfach mithilfe eines einfachen Makros nach Excel importieren kannst

Was ist die Yahoo Finance API?

Der Begriff API steht für “Application Programming Interface” (umgangssprachlich bei uns “Programmierschnittstelle”). Dabei handelt es sich allgemein um eine Schnittstelle, die von einer Software oder einem Softwaresystem zur Verfügung gestellt wird und die es erlaubt, das Softwaresystem bzw. die Daten aus dem System in ein anderes Programm einzubinden.

Die Daten stellt in diesem Fall Yahoo Finance (finance.yahoo.com) zur Verfügung. Mithilfe der Schnittstelle können wir dann die Daten mehr oder weniger direkt nach Excel importieren.

[stextbox id=”diy_2_blau”]Update März 2018

Yahoo Finance hat kürzlich die API für den Download von historischen und auch von Echtzeitdaten angepasst. Ein automatisierter Download nach Excel ist nun nicht mehr ohne Weiteres möglich. Der Download der Daten von Google Finance nach Excel scheint auch nur noch eingeschränkt zu funktionieren.

Als neue Alternative für den Download historischer Daten könnt ihr aber nun die API von Alpha Vantage nutzen (funktioniert fast genauso wie die Yahoo Finance API).[/su_note]


Wie die Yahoo Finance API-Schnittstelle aufgebaut ist

Yahoo Finance ist eine der bekanntesten Finanzwebseiten und enthält umfangreiche Informationen zu den meisten gelisteten Unternehmen. Dazu gehören Aktienkurse (historisch sowie in Echtzeit), Gewinn pro Aktie (Earnings per Share bzw. EPS), KGV, Dividende etc., aber auch Unternehmens- und Wirtschafts-News. Grundsätzlich gibt es zwei Arten von Daten, die wir von Yahoo Finance nach Excel importieren können:

  • historische Kursdaten für ein bestimmtes Unternehmen
  • Echtzeitdaten (ca. 10-15 Minuten verzögert) für eine Reihe von Unternehmen

Beide APIs funktionieren grundsätzlich über den Download eines CSV-Dokuments (Dateiendung .csv), die wir dann automatisiert über ein Makro nach Excel importieren können. CSV steht dabei für “Comma Separated Values” und beschreibt den Aufbau einer Textdatei zum Austausch einfach strukturierter Daten.

Die verschiedenen CSV-Datei werden jeweils über die festgelegte Struktur von Yahoo Finance aufgerufen, was uns die Möglichkeit gibt, das ganze in Excel zu automatisieren.

Disclaimer

Die Anzeige von Aktienkursen auf einer Webseite erfordern typischerweise eine Lizenz der relevanten Börse(n).

Die Yahoo Finance API wird nicht offiziell unterstützt und die Daten können daher manchmal auch inakkurat sein. Die kommerzielle Nutzung der API kann ggf. gegen die Geschäftsbedingungen von Yahoo verstoßen.


Historische Kursdaten

Die historischen Kursdaten finden wir, indem wir auf der Yahoo Finance Webseite in der linken oberen Ecke ein Tickersymbol oder einen Unternehmensnamen eingeben.

2Yahoo-Finance-Tickersuche

Tickersymbole bestehen typischerweise aus drei bis vier Buchstaben oder Zahlen. Bei internationalen Werten (u.a. auch bei den deutschen Aktien) wird der Ticker noch um das Kürzel der Börse ergänzt, an der die Aktie gehandelt wird. Auch die bekannten Indizes (DAX, MDAX, Dow Jones, NASDAQ etc.) besitzen einen Yahoo Finance Ticker. Dieser fängt typischerweise mit einem ^ Zeichen an. Hier ein paar Beispiele:

  • Apple Inc.: AAPL
  • Daimler: DAI.DE
  • DAX: ^GDAXI

Geben wir z.B. “aapl” ein, wählen “Apple Inc.” als Unternehmen aus und klicken dann auf “Go”, erscheint die Seite des Unternehmens Apple.

aapl-suche-yahoo-finance

Auf der linken Seite sehen wir dann eine Rubrik namens “Historische Kurse” bzw. “Historical Prices”. Wenn wir auf den entsprechenden Link klicken, gelangen wir direkt zur Seite mit den historischen Aktienkursen der Firma Apple. Ganz unten auf der Seite finden wir dann den Link “Download to Spreadsheet”. Wenn wir auf diesen Link klicken, werden die Kursdaten als .csv Dokument auf unserem Rechner gespeichert.

yahoo finance api download-to-spreadsheet

Wenn wir einmal nur mit der Maus über den Link fahren, sehen wir die genaue URL:

http://real-chart.finance.yahoo.com/table.csv?s=AAPL&d=4&e=10&f=2016&g=d&a=11&b=12&c=1980&ignore=.csv

Dies ist die URL, die wir in unserem Excel-Makro nutzen werden, um die Daten über eine so genannte Webabfrage nach Excel zu importieren. Hierbei tauchen in der URL folgende Werte auf:

  • s=AAPL – Das Tickersymbol des Unternehmens, für das wir die Daten benötigen
  • d=4, e=10, f=2016 – Enddatum (Monat, Tag und Jahr) der Zeitreihe, die wir herunterladen möchten. In diesem Fall endet die Zeitreihe am 10. Mai 2016
  • a=11, b=12, c=1980 – Anfangsdatum (Monat, Tag, Jahr) der Zeitreihe. In diesem Fall beginnt die Zeitreihe am 12. Dezember 1980

Zu beachten ist hier, dass bei Yahoo die Monate von 0 bis 11 durchnummeriert sind, also der Januar dem Monat 0 entspricht.


Echtzeitdaten

Für die Echtzeitdaten gibt es ebenfalls eine API mit folgender URL:

http://finance.yahoo.com/d/quotes.csv?s=AAPL+MCD+DAI.DE&f=snl1hg

Hier haben wir folgende Variablen:

  • s=AAPL+MCD+DAI.DE – Tickersymbole der Unternehmen, für die wir die Daten benötigen. Bei mehreren Unternehmen werden die Tickersymbole durch ein Pluszeichen getrennt (in diesem Fall fragen wir die Daten für die Unternehmen Apple, McDonald’s und Daimler ab)
  • f=snl1hg – Tags von Yahoo Finance, die die zu übergebenden Daten definieren (in diesem Fall fragen wir Ticker (s), Name (n), aktuellen Kurs (l1), Tageshoch (h) und Tagestief (g) ab)

Die Definition der Tags ist an mehreren Stellen im Netz zu finden. Trotzdem liste ich sie hier nochmal mit einer deutschen Übersetzung des wesentlichen Tags auf.

ItemKennzahlYahoo API Tag
Kursdaten
AskAska
BidBidb
Ask (Realtime)Ask (Realtime)b2
Bid (Realtime)Bid (Realtime)b3
Previous CloseSchlusskurs Vortagp
OpenEröffnungskurso
Dividenden
Dividend YieldDividendenrenditey
Dividend per ShareDividende pro Aktied
Dividend Pay DateDatum Dividendenzahlungr1
Ex-Dividend DateDatum ex-Dividendeq
Daten und Kursänderungen
ChangeKursveränderungc1
Change & Percent ChangeKursveränderung abs. + in Prozentc
Change (Realtime)kursveränderung (Echtzeit)c6
Change Percent (Realtime)Kursveränderung in Prozent (Echtzeit)k2
Change in PercentKursveränderung in Prozentp2
Last Trade DateLetztes Handelsdatumd1
Trade DateAkt. Handelsdatumd2
Last Trade TimeLetzter Tradet1
Durchschnitte
After Hours Change (Realtime)After Hours Change (Realtime)c8
CommissionCommissionc3
Day’s LowTagestiefg
Day’s HighTageshochh
Last Trade (Realtime) With TimeLetzter Trade (Echtzeit) mit Zeitk1
Last Trade (With Time)Letzter Trade (mit Zeit)l
Last Trade (Price Only)Letzter Trade (nur Preis)l1
1 yr Target PriceTarget-Preis 1-Jahrt8
Change From 200 Day Moving AverageÄnderung ggü. 200-Tage-Durchschnittm5
Percent Change From 200 Day Moving AverageÄnderung ggü. 200-Tage-Durchschnitt (in Prozent)m6
Change From 50 Day Moving AverageÄnderung ggü. 50-Tage-Durchschnittm7
Percent Change From 50 Day Moving AverageÄnderung ggü. 50-Tage-Durchschnitt (in Prozent)m8
50 Day Moving AverageGleitender 50-Tage-Durchschnittm3
200 Day Moving AverageGleitender 200-Tage-Durchschnittm4
Ticker Informationen
More InfoWeitere Informationeni
Market CapitalizationMarktkapitalisierungj1
Market Cap (Realtime)Marktkapitalisierung (Echtzeit)j3
Float SharesFloat Sharesf6
NameNamen
NotesAnmerkungenn4
SymbolTickers
Shares OwnedEigene Aktiens1
Stock ExchangeBörsex
Shares OutstandingAnzahl Aktienj2
52 Wochen Kurse
52 Week High52-Wochen-Hochk
52 week Low52-Wochen-Tiefj
Change From 52 Week LowÄnderung ggü. 52-Wochen-Tiefj5
Change From 52 week HighÄnderung ggü. 52-Wochen-Hochk4
Percent Change From 52 week LowProzentuale Änderung ggü. 52-Wochen-Tiefj6
Percent Change From 52 week HighProzentuale Änderung ggü. 52-Wochen-Hochk5
52 week Range52-Wochen Bandbreitew
Volumen
VolumeHandelsvolumenv
Ask SizeAsk Größea5
Bid SizeBid Größeb6
Last Trade SizeGröße letzter Tradek3
Average Daily VolumeDurchschnittl. Tägliches Handelsvolumena2
Ratios
Earnings per ShareGewinn pro Aktiee
EPS Estimate Current YearEPS Schätzung laufendes Jahre7
EPS Estimate Next YearEPS Schätzung nächstes Jahre8
EPS Estimate Next QuarterEPS Schätzung nächstes Quartale9
Book ValueBuchwertb4
EBITDAEBITDAj4
Price / SalesKurs-Umsatz-Verhältnisp5
Price / BookKurs-Buchwert-Verhältnisp6
P/E RatioKGVr
P/E Ratio (Realtime)KGV (Echtzeit)r2
PEG RatioPEGr5
Price / EPS Estimate Current YearKurs / Gewinnschätzung laufendes Jahrr6
Price / EPS Estimate Next YearKurs / Gewinnschätzung nächstes Jahrr7
Short RatioShort Ratios7
Verschiedene
Ticker TrendTicker Trendt7
Trade LinksTrade Linkst6
Order Book (Realtime)Orderbuch (Echtzeit)i5
High LimitHigh Limitl2
Low LimitLow Limitl3
Holdings ValueHoldings Valuev1
Holdings Value (Realtime)Holdings Value (Echtzeit)v7
RevenueUmsatzs6
Day’s Value ChangeDay’s Value Changew1
Day’s Value Change (Realtime)Day’s Value Change (Echtzeit)w4
Price PaidPrice Paidp1
Day’s RangeDay’s Rangem
Day’s Range (Realtime)Day’s Range (Echtzeit)m2
Holdings Gain PercentHoldings Gain Percentg1
Annualized GainAnnualized Gaing3
Holdings GainHoldings Gaing4
Holdings Gain Percent (Realtime)Holdings Gain Percent (Echtzeit)g5
Holdings Gain (Realtime)Holdings Gain (Echtzeit)g6

Das heißt alle diese Daten können wir in Echtzeit über Yahoo Finance nach Excel importieren (sofern die Daten bei Yahoo hinterlegt sind).


Den Datenimport nach Excel automatisieren

Wenn wir nun den Datenimport nach Excel automatisieren wollen, dann müssen wir die Webanfrage so modifizieren, dass genau die richtigen Daten heruntergeladen werden (also die richtigen Indikatoren bzw. der richtige Zeitraum für die für uns interessanten Ticker). Hierfür können wir die Webanfrage mit den entsprechenden Zellen in unserem Excel-Tabellenblatt verlinken, in denen wir den Ticker usw. einfach eintragen. Z.B. über einen “Aktualisieren”-Button können wir dann die Aktualisierung der Webanfrage auslösen.

Ich habe noch zwei weitere Artikel verfasst, in denen ich etwas genauer beschreibe, wie du so eine Webanfrage einfach erstellen und über ein Makro und einen Button automatisieren kannst. Die beiden Anleitungen findest du hier:

Wenn du Excel 2013 installiert hast, dann solltest du dir außerdem diesen Artikel einmal ansehen (es geht nämlich noch einfacher):

Wenn du außerdem Wechselkurse in dein Spreadsheet ziehen möchstest, dann schau dir auch diesen Artikel an:

13 Kommentare zu „Aktienkurse mithilfe der Yahoo Finance API aus dem Web ziehen“

  1. Hi Axel,
    ich habe die API einige Jahre lang genutzt. Seit kurzem kommt eine Fehlermeldung: Access denied.
    Das passiert sowohl bei aktuellen Daten wie auch bei historischen Daten.
    Hat Yahoo den Service eingestellt?

  2. Sehr geehrte Damen und Herren,

    sie schreiben oben, dass mit dem Befehl “http://real-chart.finance.yahoo.com/table.csv?s=AAPL&d=4&e=10&f=2016&g=d&a=11&b=12&c=1980&ignore=.csv” eine Abfrage stattfinden kann. Ich habe das versucht und erhalte die folgende Meldung: “Die DNS-Adresse des Servers von real-chart.finance.yahoo.com wurde nicht gefunden”.
    Wurde diese abgeschaltet. Können Sie mir hier weiterhelfen?

    Vielen Dank im Voraus.

    Mit freundlichen Grüßen
    Werner Puchinger

  3. Hallo Axel,
    ich bin am überlegen, ob ich mir nicht eine kleine App fürs Smartphone schreibe, die mir den Piotroski F Score bzw. den Lebemann Index berechnet, da ich kein sonderlich grosser Fan von Excel bin.
    Ich konnte Dein Excel zu Piotroski leider nicht nachvollziehen, d.h. ob ich da eigene Werte eintragen kann.
    Weist Du, ob die Kennzahlen für die beiden Scores über yahoo oder google verfügbar sind? Gibt es da Restriktionen?

    Beste Grüße
    Peter

    1. Hallo Peter,

      ich schätze, dass du für eine amerikanische Aktie auch die relevanten Fundamentaldaten finden wirst. Für deutsche Aktien glaube ich hängt es vom Wert ab, da sind Yahoo und Google oft unvollständig.

      Beste Grüße,
      Axel

  4. Michael Algermissen

    Die Yahoo Finance API wurde abgeschaltet.
    Kennt jemand eine Alternative?

    It has come to our attention that this service is being used in violation of the Yahoo Terms of Service. As such, the service is being discontinued. For all future markets and equities data research, please refer to finance.yahoo.com.

  5. Vielen Dank für diesen Beitrag. Ich habs ausprobiert und fand, dass es mit Yahoo eigentlich noch ganz wunderbar funktioniert. Der Servername und auch die Parameter habe sich geändert: Diese URL zum beispiel hat gerade für mich funktioniert:

    https://query1.finance.yahoo.com/v7/finance/download/LHA.DE?period1=883612800&period2=1587340800&interval=1d&events=history

    Die Perioden sind als Anzahl Sekunden seit 1.1.1970 angegeben. Mit Java ergibt sich mit “System.out.println(new Date(883612800L*1000L));” die Meldung:
    Thu Jan 01 01:00:00 CET 1998

    Ein kurzes Sample-Java-Programm dazu:

    public class YahooDownload {

    public static void downloadFile(URL url, String outputFileName) throws IOException {
    try(InputStream in = url.openStream();
    ReadableByteChannel rbc = Channels.newChannel(in);
    FileOutputStream fos = new FileOutputStream(outputFileName))
    {
    fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE);
    }
    }

    public static void main(String[] args) throws Exception {
    URL url = new URL(“https://query1.finance.yahoo.com/v7/finance/download/LHA.DE?period1=883612800&period2=1587340800&interval=1d&events=history”);
    String outFile = “E:\\Yahoo.com\\download.csv”;
    YahooDownload.downloadFile(url,outFile);
    }
    }

    P.S: Eigentlich wollte ich schon aufgeben diesen Beitrag zu posten – nach 3 Fehlversuchen mit dem Captcha!

    1. Hy Ulrich,

      wo setze ich in den Link jetzt die richtige Aktie ein?

      Ich benötige beispelsweise den DAX für eine Data Analyse.

      Und brauch ich die API dann garnicht für einmalige Abfrage? Der Link funktioniert ja auch so 🙂 Dankeschön!

      LG Martina

Kommentar verfassen

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

Weitere relevante Artikel zum Thema

Warenkorb
Nach oben scrollen