Nachrichten
Nachrichten löschen

Aktienkurse per API abfragen

Seite 1 / 2
stef
 stef
(@stef)
Verdienter Freiheitskämpfer

Hallo zusammen,

früher war alles einfacher: Wenn man Aktienkurse von einer API bekommen wollte, hat man einfach die Yahoo API benutzt.

Dann hat Yahoo die API geschlossen. Als Lösung habe ich mir einen Crawler für die finance.yahoo.com Seite gebastelt. Yahoo mag das aber nicht: Die Seite wird regelmäßig verändert und die Maßnahmen gegen Crawler sind recht gut gemacht.

Also habe ich mich auf die Suche nach einer kostenlosen, zuverlässigen API gemacht.

Gelandet bin ich bei alphavantage.co.

Die API funktioniert seit fast einem Jahr bei mir gut, ist sauber dokumentiert und bietet sogar exotische Dinge wie Cryptocurrencies.

Man kann sich auf der Website registrieren und erhält einen kostenlosen API Key.

Wer seine Mail-Adresse nicht hinterlassen möchte, kann alternativ einen Random Key generieren (16 Zeichen, nur uppercase ASCII und Zahlen). Das ist natürlich nicht dokumentiert, funktioniert aber prima.

Die Restriktionen für die kostenlose API sind: Maximal 5 Requests pro Minute, 500 Requests pro Tag.

Wer möchte, kann hier gerne Python Code dazu von mir bekommen.

Siehe Anhang.

Viele Grüße,

Stef.

 

Zitat
Themenstarter Veröffentlicht : 19. Mai 2020 09:44
Canonius und Maschinist mögen das
Maschinist
(@maschinist)
Maschinist

Ganz vielen Dank für Deine Mühe und das Python File für die API stef.

 

AntwortZitat
Veröffentlicht : 20. Mai 2020 23:58
stef mag das
stef
 stef
(@stef)
Verdienter Freiheitskämpfer

Vielen Dank @Maschinist für die Unterstützung!

AntwortZitat
Themenstarter Veröffentlicht : 21. Mai 2020 09:16
stef
 stef
(@stef)
Verdienter Freiheitskämpfer

Hallo Forum,

den versierten Nerds unter euch ist natürlich klar, was man mit so einer API alles anstellen kann.

Für den Rest der Welt mal ein Use-Case:

Max Mustermann zählt mittlerweile 4 Aktiendepots im Haushalt. Das ging ganz schnell: Eine Altlast bei der Hausbank, ein Discount-Broker für den ETF Sparplan, das Depot der besseren Hälfte, das Depot für den Nachwuchs, …

Immer mal wieder fragt er sich, wie hoch das Familienvermögen eigentlich ist. Manchmal fragt auch die bessere Hälfte nach. Dann setzt er sich hinter den Rechner, loggt sich bei den 4 Websites nacheinander ein, notiert brav die Summen auf einen Zettel und summiert sie.

Eine erfreuliche Tätigkeit, aber das muss doch auch einfacher gehen?

Er hat kurz mit dem Gedanken gespielt, eine Tabelle in Google Sheets anzulegen und dort automatisch die Kurse abzufragen, aber eigentlich möchte die Details zum Familienvermögen nicht mit Google teilen.

Max hat das kleine Script im ersten Posting gefunden. Darin gibt es zwei für ihn brauchbare Funktionen:

get_av_quote(symbol): Hier bekommt er den aktuellen Kurs zum Code der Aktie zurück. Die Währung richtet sich nach der Börse. get_av_quote(’APC.F’) ergibt den Kurs von Apple an der Frankfurter Börse, natürlich in EUR. get_av_quote(’ROG.SW’) dagegen den Kurs von Roche an der Schweizer Börse in CHF.

get_av_fx(from_currency, to_currency='EUR'): Das kann Max benutzen, um z.B. von CHF in EUR umzurechnen, mit get_av_fx(’CHF’).

AntwortZitat
Themenstarter Veröffentlicht : 21. Mai 2020 12:46
Maschinist mag das
stef
 stef
(@stef)
Verdienter Freiheitskämpfer

Max pflegt eh seit Jahren eine kleine Excel-Tabelle mit folgenden Spalten:

Company (z.B. Apple), Code (finance.yahoo.com Code, z.B. APC.DE), Amount (Anzahl der Aktien), Depot (bei den Mustermanns gibt es die Depots „O“, „S“ und „U“), Currency (meistens „EUR“, aber bei Roche z.B. „CHF“).

depot tabelle

Er benötigt keine Details zu all den Positionen. Das kann er bei Bedarf schnell nachschauen. Er möchte einfach die Summe des Mustermann-Geldspeichers in €.

Max speichert seine Tabelle als CSV Datei „depot.csv“. Das kann jede Tabellenkalkulation.

Das Ergebnis schaut so aus:

depotcsv
AntwortZitat
Themenstarter Veröffentlicht : 21. Mai 2020 12:51
Maschinist mag das
stef
 stef
(@stef)
Verdienter Freiheitskämpfer

Cool, denkt Max. Jetzt brauche ich nur noch eine Funktion, die durch ein Depot rödelt und mir die Summe zurückgibt. Die Funktion könnte durch die gesamte Datei kämmen und fertig, aber Max möchte flexibel bleiben. Er hat ja schließlich in seiner Tabelle mit einem Buchstaben-Kürzel vermerkt, in welchem Depot die jeweilige Aktie liegt. Also lieber eine Summe pro Depot, und dann die Depots zur gewünschten Gesamtsumme addieren.

Max schreib also die Funktion get_share_data(depot): Will er sein Discount-Broker Depot summiert haben, wäre der Aufruf get_share_data(’O’).

get share data
AntwortZitat
Themenstarter Veröffentlicht : 21. Mai 2020 12:55
Maschinist mag das
stef
 stef
(@stef)
Verdienter Freiheitskämpfer

Jetzt schreibt Max noch schnell ein main(): Ein Hauptprogramm, welches die einzelnen Depots abklappert, die Summe bildet und auf dem Bildschirm ausgibt. Dieses platziert er am Ende des Scripts.

main

Am Anfang des Scripts schreibt Max noch zwei kleine Hilfsfunktionen. Eine formatiert Fehlermeldungen, wenn die API mal nicht funktionieren sollte oder es ein Aktienkürzel nicht gibt. Die andere Funktion rundet seine Gesamtsumme auf eine ganze Zahl und setzt einen Punkt zwischen den Tausendern.

Hilfsfunktionen

Max kann das Script jetzt einfach laufen lassen, wann er möchte.

…oder er lässt es mit einem Cron-Job regelmäßig laufen und schiebt das Ergebnis auf einen Webserver seines Vertrauens, natürlich mit Credentials. Vielleicht mit einer interaktiven Grafik zur Wertentwicklung?

…oder er er bastelt sich eine neue verborgene Taste an seine schicke Vintage-Uhr, die von einem Raspberry PI gesteuert wird, und lässt sich den Geldspeicher auf Tastendruck auf der roten Retro-LED-Anzeige anzeigen, auf ganze Tausender gerundet.

…oder…

AntwortZitat
Themenstarter Veröffentlicht : 21. Mai 2020 13:05
Natman und Maschinist mögen das
BananenRapper
(@bananenrapper)
Freiheitskämpfer Silber
Veröffentlicht von: @stef

…oder er er bastelt sich eine neue verborgene Taste an seine schicke Vintage-Uhr, die von einem Raspberry PI gesteuert wird, und lässt sich den Geldspeicher auf Tastendruck auf der roten Retro-LED-Anzeige anzeigen, auf ganze Tausender gerundet...

hehe, sehr coole Idee, quasi die Schuldenuhr des Bund der Steuerzahler, nur andersrum.

Da ich etwas die Frickelei scheue, nutze in MoneyMoney auf dem Mac. Aber Respekt an dich und danke fürs Teilen!

 
AntwortZitat
Veröffentlicht : 22. Mai 2020 09:12
stef
 stef
(@stef)
Verdienter Freiheitskämpfer

Danke dir @bananenrapper

Wenn du doch mal 'frickeln' möchtest und irgendwo stecken bleibst, melde dich einfach ;)

Da du mit einem Mac arbeitest, brauchst du übrigens nicht mal Python zu installieren - ist schon drauf. So kann man Scripts auch ohne Raspberry PI oder sowas ausprobieren.

Leider installiert Apple noch Python 2, nicht Python 3. Es müssten daher 2 Zeilen verändert werden. Einfach die "3" am Ende der ersten Zeile löschen:

#!/usr/bin/env python

Und das Encoding beim Öffnen der CSV Datei weglassen:

with open('depot.csv', mode='r') as csv_file:

Bei ner Win-Dose muss man Python installieren (dann aber bitte gleich Python 3). Ist aber auch kein Akt:

www.python.org

Anbei das komplette Script von Max Mustermann (für Python 2 oder 3, egal) und die Beispiel-CSV-Datei.

 

AntwortZitat
Themenstarter Veröffentlicht : 22. Mai 2020 10:35
zitronenbaum
(@zitronenbaum)
Neuer Freiheitskämpfer

Wenn du nach einer kostenlosen API suchst, um deine Aktiendaten zu streamen, kann ich dir eine empfehlen. Ich habe nämlich dasselbe Problem gehabt. Durch eine Empfehlung bin ich auf lemon.markets aufmerksam geworden. Mit ihrer API kannst du Livedaten streamen von Aktien, Anleihen, ETFs und einigen Derivaten.  

Du kannst außerdem deinen eigenen Trading Alogrithmus schreiben und ihn mit Paper Money testen, falls das für dich relevant sein sollte.

Alles bei denen ist kostenlos und gibtst deine Daten keiner Datenkrake bekannt ;) Das ist für mich auch ein Grund, weshalb ich deren Produkt nutze. Schau mal vorbei, vielleicht ist es ja etwas für dich.

[Hinweis Maschinist: Nach aktuellem Kenntnisstand ist User Zitronenbaum Teil/Mitinhaber der Lemon Markets Plattform]

AntwortZitat
Veröffentlicht : 6. Oktober 2020 12:06
Maschinist
(@maschinist)
Maschinist

Hallo Zitronenbaum,

es ist in Ordnung Deine Plattform hier als Lösung eines Problems vorzustellen.

Bitte aber in Deinem Beitrag kenntlich machen, dass Du Teil dieser Plattform bist.

Beitrag also bitte umformulieren. 

Danke und schönen Tag

AntwortZitat
Veröffentlicht : 6. Oktober 2020 12:16
stef
 stef
(@stef)
Verdienter Freiheitskämpfer

Hallo zusammen,

ich bin von alphavantage.co auf stockdio.com umgestiegen, weil die alphavantage-API in letzter Zeit leider unzuverlässig wurde.

Wenn Interesse besteht, kann ich gerne auch dazu ein Python-Script posten.

Kriterien zur API Auswahl für mich sind:

1. Kostenlos

2. Zuverlässig

3. Alle Börsen, die ich benötige (Frankfurt, Amsterdam, Zürich, NYSE)

@zitronenbaum, kannst du uns mehr zu lemon.markets berichten? Werden meine Kriterien erfüllt? Welche Beschränkungen bestehen (zB API Calls pro Tag/ pro Monat)?

Viele Grüße,

Stef.

AntwortZitat
Themenstarter Veröffentlicht : 22. Oktober 2020 13:10
Maschinist mag das
zitronenbaum
(@zitronenbaum)
Neuer Freiheitskämpfer

Hallo @stef,

aktuell sind wir in der open Beta, heißt für Dich konkret: alles ist kostenlos und Du hast dabei die volle Funktionalität unserer API. In Punkto Zuverlässigkeit kann ich Dir sagen, dass wir alles dafür tun, unseren Kunden ein optimales Produkt zu liefern. Dabei ist Feedback bei uns immer gerne gesehen.
Mach Dir am besten ein eigenes Bild von uns und lasse Dein Python-Script über uns ausführen. Wir stellen ein Python-SDK bereit. Wenn Du Feedback haben solltest, findest Du auf unserer Website entsprechende Gelegenheiten uns dieses zukommen zu lassen.
Unsere Partnerbörse ist Lang&Schwarz. Andere Partnerbörsen besitzen wir leider nicht.

Es bestehen keine Beschränkungen in Bezug auf API-Calls pro Tag/Monat. Du kannst in unserer Sandbox so viele Request an unserer API stellen, wie Du möchtest. Teste bei uns Deine Strategie ausgiebig mit Paper-Money und gewinne dabei ein Preisgeld und coolen Merch bei unserer Trading Competition. 

In unserer Doku findest Du alle Hinweise, um schnell mit dem Trading zu starten.

lemon.markets gibt es seit 2020. Schon im nächsten Jahr planen wir Live-Trading zu ermöglichen und die open Beta zu verlassen. Unsere Community wächst schnell und unsere Plattform entwickelt sich ständig weiter.

Ich hoffe, das hat Dir als erste Information gereicht. Bei weiteren Fragen immer gerne nachhaken. 

Zu unserer Website oder direkt zur Registriereung.

AntwortZitat
Veröffentlicht : 22. Oktober 2020 14:27
stef mag das
stef
 stef
(@stef)
Verdienter Freiheitskämpfer

Vielen Dank für die ausführliche Info @zitronenbaum.

Im Moment kommt die API für uns leider nicht in Frage, da unser Ziel ist, das Gesamtvermögen über alle Depots zu ermitteln. Da sind einige Werte dabei, die über Lang&Schwarz nicht abgefragt werden können, z.B. Brookfield Renewable (BEP und BEPC).

Viel Erfolg & Viele Grüße,

Stef.

AntwortZitat
Themenstarter Veröffentlicht : 23. Oktober 2020 09:19
Judge Dredd mag das
Aktien4mich
(@aktien4mich)
Aktiver Freiheitskämpfer

Hallo stef,

der Python-Code für stockdio.com würde mich interessieren.

Möchte nicht nur regelmäßig den Wert meines Depots erfassen, sondern auch historische Werte "meiner" Aktien in einer DB erfassen.

Vielen Dank.

AntwortZitat
Veröffentlicht : 17. Mai 2021 20:07
stef mag das
stef
 stef
(@stef)
Verdienter Freiheitskämpfer

Moin,

gerne doch, hier ist der Code.

Ich optimiere die Anzahl der API Calls, da mir Stockdio max. 500 Calls im Monat (umsonst) erlaubt. Es ist aber möglich, mehrere Positionen an einer Börse in einem Call abzufragen. Daher fasse ich FX (Wechselkurse) und die anzufragenden Börsen in jeweils einem GET Request zusammen.

Wenn ich also meine Liste mit 60 Positionen durch das Script schicke, so werden lediglich 4 Calls verbraucht: Ein Request für FX (CHF und USD), ein Request pro Börse (Frankfurt, Zürich, New York).

Fragen? Fragen ;)

Viele Grüße,

Stef.

AntwortZitat
Themenstarter Veröffentlicht : 18. Mai 2021 10:25
MirkoFrei, reinvest, Natman und 1 User mögen das
Seite 1 / 2