Wir einige von euch bereits bemerkt haben, hat Yahoo Finance kürzlich die URL für den Download der historischen Kursdaten angepasst. Da die neue URL einen sich regelmäßig ändernden Session-Key beinhaltet, ist der automatische Download/Import nach Excel nun nicht mehr ohne Weiteres möglich. Der Download von Realtime-Daten (bzw. hier für Excel 2013) und die Tags der Yahoo Finance API funktionieren aber nach wie vor – jedenfalls soweit ich das beurteilen kann. Wir benötigen also “nur” eine neue Methode, mit der wir historische Kursdaten nach Excel importieren können. Die einfachste Option hierfür ist für mich einfach die Nutzung von Google Finance.
Warum?
Weil der Download historischer Daten von Google Finance fast genauso funktioniert wie ehemals von Yahoo Finance. Deshalb werde ich hier auch nicht auf jeden einzelnen Schritt – vom Aufzeichnen des Makros bis hin zur grafischen Darstellung der Kursverläufe – nochmal eingehen.
[stextbox id=”diy_2_blau”]Update März 2018Der Download der Daten von Google Finance nach Excel scheint aktuell nur noch eingeschränkt zu funktionieren (Kurse nur für die letzten 12 Monate verfügbar).
Als neue Alternative für den Download historischer Daten könnt ihr nun die API von Alpha Vantage nutzen (funktioniert fast genauso wie die Yahoo Finance API).[/su_note]
In unseren DIY Tools findet ihr aber das Excel zum Download. Darüber hinaus könnt ihr das konkrete Vorgehen zum Aufzeichnen des VBA-Makros am Beispiel Yahoo Finance nochmal in dem entsprechenden Artikel nachlesen.
Und wie gesagt, Google Finance funktioniert eigentlich genauso. Das Einzige, was wir anpassen müssen ist das Format der URL.
Wie die Google Finance URL aufgebaut ist
Analog zu Yahoo Finance bietet auch Google Finance historische Aktienkurse an, die als .csv-Datei heruntergeladen werden können. Dazu brauchen wir nur auf Google Finance zu gehen (google.com/finance) und oben in das Suchfenster einen Unternehmensnamen (hier Apple) einzugeben.
Wählen wir Apple aus dem Dropdown-Menü aus, dann öffnet sich folgende Seite. Links sehen wir bereits den Link zu den historischen Daten:
Folgen wir dem Link, gelangen wir auf eine Seite mit den täglichen Aktienkursen des letzten Jahres. Oben können wir den angezeigten Zeitraum entsprechend unseren Bedürfnissen anpassen. Auf der rechten Seite sehen wir den Download-Link.
Wählen wir nun einmal einen anderen Zeitraum aus und fahren mit der Maus über den Download-Link, sehen wir unten rechts in unserem Browserfenster die URL eingeblendet:
So sieht der Link aus:
http://www.google.com/finance/historical?cid=22144&startdate=May+26%2C+2012&enddate=May+25%2C+2017&num=30&ei=g38mWfjSAcSAsAHu_5SgBw&output=csv
Hier finden wir nur leider nicht das Tickersymbol, sondern nur Anfangs- und Enddatum.
Folgende URL funktioniert aber auch:
http://www.google.com/finance/historical?q=NASDAQ:AAPL&startdate=May+25%2C+2012&enddate=May+25%2C+2017&output=csv
Dies ist die URL, die wir in unserem Excel-Makro analog zu Yahoo Finance nutzen werden, um die Daten über eine so genannte Webabfrage nach Excel zu importieren. Hierbei tauchen in der URL folgende Werte auf:
- q=NASDAQ:AAPL – Das Tickersymbol des Unternehmens, für das wir die Daten benötigen
- startdate=May+25%2C+2012 – Startdatum (Monat, Tag und Jahr) der Zeitreihe, die wir herunterladen möchten. In diesem Fall beginnt die Zeitreihe am 25. Mai 2012
- enddate=May+25%2C+2017 – Enddatum (Monat, Tag, Jahr) der Zeitreihe. In diesem Fall endet die Zeitreihe am 25. Mai 2017
Import historischer Daten nach Excel automatisieren
Nochmal zur Erinnerung: Wenn wir eine Webabfrage durchführen, die Daten von Yahoo Finance runterladen und entsprechend mit Excel verlinken, dann sieht (bzw. sah… die URLs funktionieren ja nicht mehr in der gleichen Form) der VBA-Code ungefähr so aus:
Die wesentlichen Variablen, also Tickersymbol (ticker bzw. tickerbm), Start- und Enddatum (smonth, sday, syear und emonth, eday, eyear) hatten wir ja mit den entsprechenden Zellen im Excel verlinkt, sodass eigentlich alles automatisch funktionierte.
Zur Umstellung auf die Daten von Google Finance sind nun eigentlich nur drei einfache Schritte erforderlich:
- Wir müssen zunächst mal die Webadresse von Yahoo Finance durch die von Google Finance ersetzen
- Anschließend müssen wir die Verlinkung zu den Excel-Inputs entsprechend auf die Logik der URL von Google Finance anpassen
- Abschließend müssen wir noch die anzuzeigenden Spalten auswählen, weil die .csv-Datei von Google Finance natürlich etwas anders aussieht
1. Webadresse ersetzen
Der erste Schritt beinhaltet eigentlich nur das Kopieren und Einfügen bzw. Überschreiben der URL in der zweiten Zeile unseres Codes:
2. Inputvariablen mit Excel-Zellen verlinken
Im zweiten Schritt ersetzen wir den gesamten oberen Teil des Codes, heißt die Definition der Variablen und die Umwandlung in die von Google Finance geforderte Struktur.
Die URL von Google Finance hat wie oben bereits erläutert, die drei Inputs Ticker, Anfangsdatum und Enddatum. Für jeden dieser Inputs müssen wir in unserem VBA-Code eine Variable definieren und diese mit einer Excel-Zelle verknüpfen.
Außerdem müssen wir die Inputs in der URL (also z.B. q=NASDAQ:AAPL) durch die entsprechende Variable (also z.B. ticker) ersetzen.
Hier das Resultat (die Details erspare ich euch hier, ich denke die Logik wird klar, wenn ihr den Artikel zum Download historischer Kursdaten von Yahoo Finance durchlest:
3. Darzustellende Spalten auswählen
Schlussendlich müssen wir noch die Auswahl bzw. Anzeige der Daten entsprechend anpassen. Die Daten von Google Finance werden in der .csv-Datei in folgender Form heruntergeladen:
Wir haben also insgesamt 6 Spalten. Da uns die Spalte 5, also der Tagesschlusskurs (Close), am meisten interessiert, passen wir die Abfrage entsprechend so an, dass auch nur das Datum und der Schlusskurs nach Excel importiert werden:
Eine 9 bedeutet in diesem Fall, dass die Spalte nicht berücksichtigt wird. Die erste Spalte wird als Datum (Kennziffer 4) importiert.
Excel Tool zum Download
Haben wir diese Anpassungen einmal gemacht und den Code einmal abgespeichert, dann sind wir eigentlich auch schon fertig.
Damit ihr das Ganze nicht selbst machen müsst, habe ich das angepasste Excel-File auf unserer DIY Tools Seite zum Download bereitgestellt.
So sieht das fertige Excel dann aus:
3 Kommentare zu „Google Finance: Historische Kursdaten in Excel“
Kann es sein, dass der Download von historischen Kursen nun auch über Google nicht mehr funktioniert – bei eurer URL kommt eine Fehlermeldung!
Ja, das stimmt leider. Inzwischen hat auch Google seine API abgeschaltet. Versuch aber mal Alpha Vantage (https://diyinvestor.de/historische-kursdaten-nach-excel-importieren-mit-alpha-vantage/). Ist eine neue kostenlose API und funktionier ganz ähnlich zu der von Yahoo Finance (jedenfalls was die historischen Kursdaten angeht).
Viele Grüße,
Axel
Sehe ich richtig, das API Alpha Vantage keine historischen Werte für Währungen bereitstellt, nur realtime Daten?
Hat jemand eine Quelle (API oder .csv-download) for historische Währungsdaten gefunden?