Aktienkurse per PHP abrufen
Die letzten Wochen waren durch den Corona-Virus sehr turbulent an den Börsen. Daher dachte ich mir hier ein kleines Script zu veröffentlichen, wie Aktienkurse mittels PHP abgerufen werden können.
Datenschnittstelle
An eine Programmschnittstelle (API) für aktuelle Aktienkurse zu kommen ist leider nicht ganz einfach. Es gibt diverse kommerzielle Anbieter, die für teures Geld diese Daten anbieten. Kostenlos ist das Angebot leider eingeschränkter.
Ein Anbieter mit einer kostenlosen Schnittstelle ist Alpha Vantage. Mit diesem könnt ihr bis zu 500 kostenlose Anfragen pro Tag senden.
Den aktuellen Kurs eines Unternehmens könnt ihr über folgende URL aufrufen (hier beispielsweise MSFT = Microsoft):
https://www.alphavantage.co/query?function=GLOBAL_QUOTE&symbol=MSFT&apikey=demo
Weitere Details zu der Rückgabe der API findet ihr in der Dokumentation von Alpha Vantage.
Aktienkurse abrufen
Folgendes Script ruft die API von Alpha Vantage auf, fragt den aktuellen Aktienkurs ab und gibt dies als Liste aus. Damit euer Kontingent mit kostenlosen Abrufen nicht zu schnell aufgebraucht ist und um die Server von Alpha Vantage zu schonen, enthält der Code einen Caching-Mechanisums. Die Antwort der API wird in einer lokalen Datei (z.B. cache_FB.json) gespeichert. Nur wenn die Datei älter als 1 Stunde ist, werden die Daten aktualisiert.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
<?php //Unser API Endpunkt um Aktienkurse abzurufen $api_key = 'AOIAMG3WFZ8LS58W'; $url = "https://www.alphavantage.co/query?function=GLOBAL_QUOTE&apikey=$api_key&symbol="; //Tickersymbole der Aktien (siehe https://de.wikipedia.org/wiki/Tickersymbol) $stock_symbols = [ 'AAPL', #Apple 'MSFT', #Microsoft 'GOOGL', #Google 'FB', #Facebook ]; //Ruft die API auf und speichert das Ergebnis in einer lokalen Cache-Datei //Aktualisiert diese Cache-Datei jede Stunde (3600 Sekunden) function get_stock_data($symbol, $url) { $filename = "cache_$symbol.json"; if(!file_exists($filename) || (time()-filemtime($filename)) > 3600) { $json_data = file_get_contents($url.$symbol); file_put_contents($filename, $json_data); } return json_decode(file_get_contents($filename), true); } //Ausgabe der Aktienkurse echo "<h2>Aktuelle Aktienkurse</h2>"; echo "<ul>"; foreach($stock_symbols as $symbol) { $data = get_stock_data($symbol, $url); echo "<li>$symbol: ".number_format($data["Global Quote"]['05. price'], 2, ',', '')." - Change: ".number_format($data["Global Quote"]['09. change'], 2, ',', '')."</li>"; } echo "</ul>"; |
Welche Aktien abgefragt werden wird über das so genannte Tickersymbol definiert. Dies ist eine Abkürzung für die Bezeichnung eines börsennotierten Unternehmen in den USA, z.B. 'FB' steht für Facebook.
Die Ausgabe ist eine simple HTML Liste mit dem aktuellen Preis ('05. price') sowie der Änderung des Preises zum Vortag ('09. change').
Deutsche Aktienkurse abrufen
Leider sind mir keine leicht zu bedienen, kostenfreien Programmschnittstellen für deutsche Aktienkurse bekannt. Um dennoch deutsche Aktienkurse zu erhalten, lässt sich die Funktion Historische Kurse von Ariva, verwenden. Dort findet ihr unten rechts eine Option Kurse als CSV-Datei herunterzuladen.
Um zum Beispiel die Kurse von Volkswagen zu erhalten, kann man folgende URL aufrufen:
Interessant an dieser URL sind die Parameter 'secu', womit das Unternehmen definiert wird (hier 1753 = Volkswagen), sowie die Parameter min_time und max_time, womit man den Zeitraum angeben kann.
Solch eine CSV-Datei lässt sich recht einfach mittels PHP analysieren und darstellen. Allerdings sollte man, bevor man ein größeres Projekt startet, sich die AGBs von Ariva genau durchlesen, ob und wie man diese Daten denn nutzen darf.
Diese kleinen Scripts helfen leider noch nicht zu entscheiden, ob man Aktien handelt oder kauft, aber vielleicht sind diese Daten ja ganz nützlich um auf dem laufendem Stand zu bleiben und die Entwicklung von gewissen Aktienunternehmen zu verfolgen.
Autor: Nils Reimers