Die meisten von euch – jedenfalls diejenigen mit einer gewissen Affinität zu Kursdaten in Excel – haben ja sicher inzwischen mitbekommen, dass die Yahoo Finance API abgeschaltet wurde und deshalb die meisten (oder eigentlich alle) meiner Makros zum Download dieser Daten nach Excel nicht mehr funktionieren. Auch der Download über Google Finance ist inzwischen offenbar stark eingeschränkt. So weit so schlecht. Allerdings bin ich nun eher zufällig über eine Webseite namens Alpha Vantage gestolpert, die eben eine solche API mit Download historischer Kursdaten in einer .csv-Datei wieder anbietet.
Das Tolle dabei: Die Funktionsweise bzw. die Struktur der API ist zwar etwas anders als zuvor bei Yahoo Finance. Allerdings lässt sich das Makro, welches ich einmal vor längerer Zeit für den Download der Yahoo-Daten nach Excel zusammengeschustert hatte, fast in genau der gleichen Form wieder verwenden.
Im Folgenden erkläre ich euch einmal ganz kurz, wie ihr das originale Yahoo Finance Makro (herunterzuladen unter den DIY Tools) in nicht mehr als 5 Minuten auf Alpha Vantage umstellen könnt.
Wem selbst das zu umständlich ist, der kann das aktualisierte Tool ebenfalls auf der DIY Tools Seite herunterladen.
Here we go.
Übersicht über Alpha Vantage
Alpha Vantage scheint ein Projekt zu sein, dass neben historischen Kursdaten auch Daten von Fremdwährungen (also Wechselkursen) und Indikatoren für die technische Analyse auch die Kurse von Kryptowährungen in Form einer API zur Verfügung stellt. Dass das Ganze auch als .csv Download angeboten wird, ist natürlich super.
Alpha Vantage bietet zwei APIs an: Eine für JSON und eine im .csv Format. Letztere ist die für uns Interessante.
Aufbau der Alpha Vantage API
Da mich als langfristig orientierten Value Investor vor allem die historischen Aktienkurse interessieren (die ich allerdings nicht in Realtime oder auf Tagesbasis benötige), habe ich mir für die Illustration einmal die API
TIME_SERIES_MONTHLY_ADJUSTED
ausgewählt. Diese gibt mir die monatlichen Schlusskurse soweit zurück, wie in der Datenbank hinterlegt. Ihr könnt natürlich das Makro analog zu euren Wünschen für jede der APIs anpassen. Für den aktuellen Monat wird der letzte Schlusskurs zurückgegeben (das heißt ich habe schonmal den für meine fundamentale Bewertung wichtigsten Kurswert mit drin :-)).
Und so ist die API aufgebaut (schaut euch für weitere Details auch die Dokumentation auf der Seite an):
https://www.alphavantage.co/query?function=TIME_SERIES_MONTHLY_ADJUSTED&symbol=MSFT&apikey=demo&datatype=csv
Es gibt also die vier Variablen:
- function
- symbol
- apikey
- datatype
Die Funktion (function) ist im Wesentlichen der Name der API bzw. die Alpha Vantage Bezeichnung für das spezifische Datenset. In unserem Fall zieht die Funktion die monatlichen Schlusskurse (inkl. der für Aktiensplits angepassten Kurse) und braucht von uns nicht verändert zu werden.
Das Symbol (symbol) gibt den Ticker der Aktie an. Diesen müssen wir in unserem Makro auf eine Eingabezelle in unserem Excel Spreadsheet verlinken.
Der API Key (apikey) ist der Key, den wir auf der Webseite von Alpha Vantage erhalten haben. Dieser ist ebenfalls (aktuell) unverändert und kann deshalb direkt in den VBA-Code geschrieben werden.
Der Datentyp (datatype) ist das .csv-Format und braucht von uns auch nicht verändert werden.
Einmaligen API Key von Alpha Vantage anfordern
Wie ihr an der API-Struktur gesehen habt, ist für den Download der Kursdaten ein API Key erforderlich. Diesen API Key bekommt ihr ganz einfach, indem ihr auf die Seite https://www.alphavantage.co/support/#api-key geht und dort Namen und Email-Adresse hinterlegt.
Laut Seite wird der API-Key sowie die API selbst dauerhaft kostenlos sein… na mal sehen. Erstmal funktionierts jedenfalls.
Yahoo Finance Makro in Excel anpassen
Folgendes Makro hatte ich für den Download der historischen Kursdaten von Yahoo Finance nach Excel verwendet (für eine detaillierte Erläuterung zum Aufzeichnen des Makros schaut euch den Artikel zur Yahoo Finance API an):
Mit den roten Pfeilen habe ich bereits die Stellen markiert, an denen wir gleich Anpassungen vornehmen müssen, um das VBA-Makro auf die API von Alpha Vantage umzustellen.
Geänderte Datenstruktur berücksichtigen
Als nächstes laden wir das Excel einmal von der Webseite herunter, um die Struktur anzusehen:
Bis auf die Höhe der Dividende in Spalte H ist das .csv-File identisch zu dem, welches wir von Yahoo Finance gewohnt waren. Die Dividende ist aber natürlich eine schöne Zusatzinformation, die wir gerne mit runterladen.
Ganz zu Beginn des Makros haben wir ja den Befehl Range(“A9:G5000”).ClearContents, der bei jeder neuen Abfrage zunächst alle alten Daten aus dem Spreadsheet löscht. Diesen müssen wir also zunächst um die Spalte H erweitern, damit sich die Tabellenstruktur nicht bei jedem Download verschiebt (weil Daten nicht überschrieben werden).
Download automatisieren
Im zweiten Schritt müssen wir eigentlich nur noch die Download-Link selbst sowie die Verlinkung zur Ticker-Eingabe (und ggf. Funktion und API Key) in Excel anpassen. Die Variablen zu Start- und Enddatum benötigen wir nicht mehr, da die Alpha Vantage API die Kurse direkt für die gesamte verfügbare Historie zieht. Um Fehlermeldungen zu vermeiden, können wir diese einfach löschen.
Wir ersetzen also zunächst den gesamten Download-Link beginnend mit den Anführungszeichen durch Folgendes:
“TEXT;https://www.alphavantage.co/query?function=TIME_SERIES_MONTHLY_ADJUSTED&symbol=MSFT&apikey=demo&datatype=csv” _
, Destination:=Range(“$A$9”))
Damit kann unser Tool bereits die Demo-Daten von Microsoft (Ticker MSFT) ziehen.
Als Nächstes ersetzen wir den Demo API-Key durch denjenigen, welchen wir von Alpha Vantage erhalten haben:
…&apikey=TI1ZZ0V49496TGFC&…
Da der API-Key unveränderlich ist, könnt ihr diesen direkt im VBA-Code verändern.
Anschließend ersetzen wir den Ticker (im Beispiel noch MSFT) durch unsere Variable (nämlich “ticker”):
…&symbol=” & ticker & “&…
Damit sollte eigentlich die Anpassung bereits abgeschlossen sein und das Tool sollte funktionieren.
[stextbox id=”diy_2_blau”]Für das Download-Tool habe ich neue Variablen für API-Key und Funktion erstellt und diese mit dem Makro verlinkt. Ihr braucht also nicht in den Code, wenn ihr eine andere Funktion wählen oder einen anderen API-Key nutzen möchtet, solltet aber beachten, dass nicht alle Funktionen die gleiche Struktur haben.[/su_note]Excel Tool zum Download
Wie oben bereits angekündigt gibt es auch zum Download der historischen Kursdaten nach Excel mithilfe der API von Alpha Vantage ein Excel-Tool zum Download, welches ihr hier herunterladen könnt:
10 Kommentare zu „Historische Kursdaten nach Excel importieren mit Alpha Vantage“
Interessant zu wissen wäre noch wo man die Ticker-Info herbekommt.
Bei Google Finance konnte man sich die logischerweise bei Google ergooglen.
Bei Yahoo Finance dort auf der entsprechenden Seite. Aber bei diesem Anbieter finde ich leider nichts
Die Ticker sollten identisch zu denen von Yahoo Finance sein… bei mir haben die Ticker bisher jedenfalls alle funktioniert.
Viele Grüße,
Axel
Bietet die API auch Daten zu DAX Werten an oder nur zu US Aktien?
Hallo Urs,
Aktienkurse gibt es auch für die deutschen Werte.
Viele Grüße,
Axel
Guten Morgen,
ich habe versucht, mit
https://www.alphavantage.co/query?function=TIME_SERIES_DAILY&symbol=WDI&apikey=XXXXXXXXXXXXX&datatype=csv&outputsize=compact
die historischen Tagesdaten der Wirecard (DAX-Unternehmen) runterzuladen. Statt der X steht natürlich mein Key. 😉
Das CSV kommt auch, aber die Daten sind nur für die letzten drei Tage gefüllt. In allen anderen Zeilen stehen nur Nullen.
Was mache ich denn da falsch?
Viele Grüße
Andreas
Hallo Andreas,
bei mir funktioniert das hier (mit WDI.DE als Ticker):
https://www.alphavantage.co/query?function=TIME_SERIES_DAILY&symbol=WDI.DE&outputsize=full&apikey=XXXXXXX&datatype=csv
Viele Grüße,
Axel
Guten Abend,
wenn man den Ticker “TIME_SERIES_MONTHLY_ADJUSTED” umstellt auf “TIME_SERIES_DAILY_ADJUSTED” erhält man die täglichen Aktienkurse mit einer Historie von 100 Tagen. Habe ich ausprobiert 🙂 Ist es auch irgendwie möglich die Historie von 200 Tagen zu erhalten? Ist wichtig für die berühmte 200 Tage Linie 🙂
Viele Grüße
Alexander
Hallo Alexander,
geh am besten mal auf die Dokumentations-Seite von Alpha Vantage, da gibt es eine Beschreibung aller möglichen APIs.
Viele Grüße,
Axel
Für Fonds oder ETF’s an deutschen Börsen liefert die API einen Fehler, obwohl ich das Symbol über die API mit searchEndpoint ermittelt habe.
Könnt ihr das bestätigen?
Bspw.https://www.alphavantage.co/query?function=TIME_SERIES_DAILY_ADJUSTED&symbol=YF5J.MUN&apikey=APIKEY
Hi, ich habe mich gefragt ob es auch eine Möglichkeit gibt, die Daten mit ISIN oder WKN Nummern herunter zu laden. Die Ticker zu den verschiedenen Aktien sind nicht immer eindeutig und teils schwierig zu finden. Weiß das jemand? Oder gibt es einen Grund warum man die Ticker Nummern braucht?
Danke!