Erstelle Deine eigenen Marktdaten-Charts mit der lemon.markets API


blog photo
Veröffentlicht von Marius Sprenger am 27. Oktober 2021
Insights


Hallo zusammen! Mein Name ist Marius und ich bin Teil von lemon.markets, einem early-stage Startup aus dem ❤️-en von Berlin. Wir arbeiten daran, eine API zu entwickeln, mit der Du Deine eigene Trading Experience an der Börse gestalten kannst. In diesem Blogpost möchte ich ein Projekt vorstellen, das aus unserer Community kommt. Wir gucken uns an, wie Du die lemon.markets API nutzen kannst, um mit Python ganz einfach Deine eigenen Marktdaten-Charts zu erstellen. Lass uns gleich loslegen 🚀.

Ein kurzer Gedanke zu unserer Community

Vor etwa drei Monaten haben wir die API relauncht und sind jetzt mit unserer Closed Beta live. Mittlerweile unterstützen wir über 100 Entwickler:innen dabei, ihre eigenen Projekte ins Leben zu rufen. Wir haben uns für die Closed Beta entschieden, um mit der steigenden Nachfrage Schritt halten zu können und auf jeden Fehlerbericht oder Feature Request individuell eingehen zu können. Dadurch wollen wir sicherstellen, dass wir mit einer wirklich stabilen API in die offene Beta übergehen. Ein positiver Nebeneffekt der Closed Beta ist, dass wir durch die überschaubare Anzahl an Nutzer:innen eng in die Community-Projekte eingebunden sind und aus erster Hand sehen, was sie bauen.

In diesem Blogpost schauen wir uns das Projekt von unserem Community Mitglied Peter an. Peter hat ein Python-Projekt entwickelt, mit dem Du Marktdaten für Wertpapiere Deiner Wahl visualisieren kannst.

Das Projekt wurde von Peter entwickelt, einem unserer treusten Mitglieder, der uns fast von Anfang an mit Feedback und Input unterstützt hat. Er arbeitet vorzugsweise mit Python in PyCharm, da ihm die große Auswahl an verfügbaren Packages bei der Entwicklung viel Zeit erspart. Anfang des Jahres entwickelte er ein allgemeines Interesse am Aktienmarkt und begann, sich in verschiedene (Online-)Ressourcen einzuarbeiten, um mehr über das Thema zu erfahren. Er verbesserte seine Kenntnisse in diesem Bereich, indem er verschiedene Projekte mit der lemon.markets API erstellte. Außerdem verfolgte er andere Coding-Projekte wie Robotik-Modellautos oder (in letzter Zeit) die Aggregation und Visualisierung verfügbarer COVID-19-Daten. Wenn dann noch etwas Zeit übrig ist, hat er vor kurzem mit seinem neuen Hobby Golf begonnen, bei dem er die Bewegung an der frischen Luft genießt. Schön, Dich an Bord zu haben, Peter.

Das ist unser Community-Mitglied Peter

Warum Datenvisualisierung ein großer Vorteil sein kann

Es ist kein Zufall, dass Marktdaten ein so wichtiges Feature der lemon.markets API sind. Vor einiger Zeit haben wir die lemon.markets API in zwei Teile aufgeteilt, um deutlich zu machen, dass wir zwei separate Projekte anbieten: Eine Trading-API und eine Marktdaten-API. In diesem Blogpost erfährst Du mehr über die Marktdaten-API, ihre Struktur und alle enthaltenen Endpunkte. In unserer API bieten wir verschiedene Arten von Marktdaten an:

  • Du kannst frühere Quotes mit dem Endpunkt /quotes/ abrufen. 
  • Du kannst Open High Low Close (OHLC) Daten auf einer Minuten-/Studen-/Tagesbasis über den Endpunkt /ohlc/ abrufen.
  • Du kannst frühere Trades über den Endpunkt /trades/ abrufen.

Über unsere API-Struktur kannst Du pro Anfrage Marktdaten für bis zu 10 Wertpapiere in dem Format Deiner Wahl abrufen (füge entsprechende Query Parameter in Deiner Request-URL hinzu). Generell sind wir der Meinung, dass umfangreiche Marktdaten Dir helfen können, bessere und fundiertere Investitionsentscheidungen zu treffen. Dies kann entweder geschehen indem Du Kauf- oder Verkaufsregeln in Deine automatisierte Handelsstrategie einbaust (ließ einen unserer früheren Blogposts zur Inspiration) oder durch eine visuelle Analyse der Daten. Du hast es vielleicht bereits geahnt: In diesem Blogpost konzentrieren wir uns auf Letzteres.

Es gibt viele verschiedene Ansätze, wenn es um die visuelle Analyse von Aktienkursen geht. Dieser Artikel ist unserer Meinung nach ein guter Ausgangspunkt. Allgemein, gibt es sehr unterschiedliche Strategien für die Analyse von Aktienchart-Indikatoren. Ein häufiger Wunsch ist es jedoch Trends in einem Aktienchart zu finden, um darauf reagieren zu können und eine Aktie zu kaufen oder zu verkaufen.

Bei einem gleitenden Durchschnitt zum Beispiel kann ein Crossover (z.B. durch den Vergleich eines 50- und 200-Tage gleitenden Durchschnitts, mehr dazu hier) ein Kaufsignal auslösen. Dies passiert, wenn der 50-Tage Wert den 200-Tage Wert kreuzt. Andere Signale, die auf historischen Daten basieren sind unter anderem der Relative-Strength-Index (RSI) oder das On-Balance-Volumen (OBV). Generell sind den visuellen Signalen (fast) keine Grenzen gesetzt. Deshalb sehen wir es als unsere Aufgabe, die API-Struktur so zu gestalten, dass Du all diese Signale ganz einfach in Deiner eigenen Trading App erstellen kannst.

Genau das hat Peter in seinem Projekt getan, was uns aus mehreren Gründen gefällt:

  • Es nimmt einen rein numerischen Output und wandelt ihn in etwas Visuelles um, das für viele unserer Nutzer:innen wahrscheinlich "verdaulicher" ist - ein Feature, das wir selbst nicht direkt anbieten wollen. Wir wissen nämlich, dass unsere Nutzer:innen selber viel bessere Lösungen für diese Art von Problemen entwickeln können. In der Zwischenzeit konzentrieren wir uns darauf, eine stabile API aufzubauen.
  • Es kann ein guter Ausgangspunkt sein, um sich mit unserer Marktdaten-API vertraut zu machen und ein Gefühl für die Art der Daten zu bekommen, die wir anbieten. 
  • Es lässt viel Raum für Deine eigene Kreativität, da Peters Projekt viele Erweiterungen zulässt (wir haben sogar selbst einige Ideen ausgearbeitet, siehe unten, wenn Du daran interessiert bist).

Umsetzung

Du findest das GitHub-Repository von Peters Projekt zu Marktdaten-Charts hier. Da es sich um ein Community Projekt handelt, gehört der Code voll und ganz Peter und wir feuern ihn nur vom Spielfeldrand an 👯.

Lass uns jetzt ein bisschen tiefer in die Umsetzung eintauchen.

Wenn Du einen Blick auf das Projekt wirfst, wirst Du feststellen, dass es aus drei Hauptdateien besteht:

1plot_candlestick_chart.py
2plot_candlestick_Interactive.py
3plot_candlestick_w_dash.py

Sie können als eine Art "Evolution" betrachtet werden. Das erste Projekt ist ein einfaches Python-Skript, das einen Graphen für ein Wertpapier Deiner Wahl ausgibt, und das Letzte ist ein Dashboard, das in Deinem Browser läuft und viele interaktive Anpassungsmöglichkeiten bietet.

Candlestick-Chart erstellen

Eine Order wird unter anderem durch ihre ISIN charakterisiert - auch hier findest Du in unserer Dokumentation eine ausführliche Beschreibung. Sie muss platziert, aktiviert und abgerufen werden. Diese Funktionen sind in der Order Klasse (siehe unten) zu finden.

Das erste Skript ist die einfachste Version. Hier gibst Du die ISIN einer bestimmten Aktie, an der Du interessiert bist (Amazon im Beispiel unten) an und erhältst ein Candle-Stick-Chart mit den Daten der letzten 31 Tage.

Es gibt eine Reihe von Packages, die in Peters Projekt verwendet werden und erwähnt werden sollten. Zum Beispiel verwendet es Pandas, um die OHLC-Daten zu strukturieren und bequem mit ihnen weiterzuarbeiten. Wir haben Pandas bereits in einem unserer früheren Blogposts als hilfreiches Tool für die Datenmanipulation und -verarbeitung erwähnt und dieses Projekt beweist einmal mehr wie nützlich es ist.

Screenshot aus dem PyCharm-Projekt

Interaktives Candlestick-Chart

Die zweite "Evolutionsstufe" des Python-Projekts ist eine interaktive Version (daher der Name). Nachdem Du die Aktie angegeben hast, für die Du Dich interessierst (wir verwenden hier wieder Amazon), erstellt das Skript ein Chart und lässt Dich direkt in Deinem Browser damit interagieren.

Ähnlich wie das Candlestick-Chart verwendet die Grafik die OHLC-Daten, die Du ganz einfach über unsere API abrufen kannst (siehe unsere Dokumentation hier). Das Ergebnis ist ein einfaches Chart, das die Daten für Open, High, Low und Close anzeigt.

Einen kleinen Vorgeschmack auf das Ergebnis kannst Du unten sehen. Das Skript verwendet Plotly, um das Chart zu erstellen. Das ist sehr praktisch, da die Erstellung interaktiver Charts damit sehr intuitiv und einfach ist. Du kannst alternativ  auch den Balken unten verwenden, um einen Zeitbereich festzulegen, indem Du den Schieberegler von links nach rechts ziehst.

Normaler OHLC Output Graph

Schieberegler, um einen spezifischen Zeitbereich festzulegen

Candlestick mit Dash erstellen

Das letzte, komplexeste, aber deshalb auch interaktivste Skript ist:

1plot_candlestick_w_dash.py

Im Grunde ist es eine richtige App, die in Deinem Browser läuft und Dir eine Menge Anpassungsmöglichkeiten bietet, um Marktdaten für ein Wertpapier Deiner Wahl zu visualisieren. Zusätzlich zu Pandas und Plotly verwendet dieses Python-Skript Dash, mit dem Du eine intuitive und interaktive Webanwendung mit verschiedenen UI-Elementen wie Dropdowns, Eingabefeldern oder Schaltflächen erstellen kannst. Da es auf Plotly aufbaut, lässt es sich gut mit jeglichen Arten von Charts integrieren.

Lass uns einen kurzen Blick darauf werfen, wie das in Peters Projekt aussieht:

UI, wenn ISIN nicht angegeben ist

UI, nachdem Du eine ISIN eingegeben hast

In der App kannst Du eine ISIN Deiner Wahl eingeben (überraschenderweise verwenden wir wieder Amazon). Danach wird die UI aktualisiert und Du bekommst zusätzliche Optionen angezeigt. Wenn Du nach unten scrollst, siehst Du das bereits bekannte Candelstick-Chart, das die OHLC-Daten anzeigt. Im Gegensatz zum vorherigen Projekt hast Du jetzt zusätzlich die Möglichkeit, verschiedene Zeitspannen auszuwählen, z.B. die Daten des letzten Tages, der letzten Woche oder des letzten Monats. Das ist praktisch, denn so kannst Du die Visualisierung an Deine Bedürfnisse anpassen: Wenn Du eher an kurzfristigen Daten interessiert bist, kannst Du Dich für die Tages-/Wochendaten entscheiden und wenn Du ein langfristiger Typ bist, kannst Du Dir die monatliche/jährliche Entwicklung ansehen (obwohl wir noch etwas mehr Zeit brauchen, um Marktdaten weit aus der Vergangenheit zu liefern, aber Du verstehst schon 😉).

OHLC Daten für den letzten Tag

OHLC Daten für die letzte Woche

OHLC Daten für den letzten Monat

Wenn Du auf der Seite noch weiter nach unten scrollst, stellt das Projekt zusätzlich ein Liniendiagramm mit vier Linien für die OHLC-Daten bereit. Im Wesentlichen sind die Informationen dieselben wie im obigen Chart, aber manche von Euch finden vielleicht die eine Darstellung besser als die andere. Du kannst auch mit dem Mauszeiger über die Linien fahren, um detaillierte Informationen für ein bestimmtes Datum zu erhalten.

Liniendiagramm für OHLC-Daten

Code-Anpassungen

Wir bei lemon.markets glauben fest an die Kraft von Open Source (wie wir über unsere Community denken, erfährst Du hier). Deshalb freuen wir uns, dass unsere Nutzer:innen kontinuierlich Projekte entwickeln, die für sie selbst (und potenziell auch anderen) hilfreich sind und einen Bedarf decken, den kein anderes Produkt auf dem Markt erfüllen kann. Wir sehen uns als Enabler - wir stellen die Infrastruktur zur Verfügung, mit der Du alles bauen kannst, was Du Dir vorstellen kannst. Deshalb konzentrieren wir den Großteil unserer Entwicklungsressourcen darauf, ein Produkt zu entwickeln, das genau das tut. Wir werden uns aber auch immer bemühen, die Community bei bestimmten Projekten zu unterstützen, so wie bei diesem Projekt. Wir haben die Idee hinter dem Projekt in enger Zusammenarbeit mit Peter entwickelt und uns ständig über den aktuellsten Stand des Projekts ausgetauscht. Außerdem haben wir einen Blick auf den Code geworfen, nachdem das Projekt abgeschlossen war, und haben einige “Verbesserungsvorschläge” für den Code gegeben (ihr seht, wohin das führt - wir übergeben ihn jetzt an die Community). Wirf einen Blick auf das GitHub-Repository, um den Code besser zu verstehen :)

Zum Beispiel wird der TOKEN_KEY direkt im Skript gespeichert. Es könnte sinnvoll sein, ihn in eine Environment Variable auszulagern, um zu vermeiden, dass sensible Anmeldedaten auf GitHub veröffentlicht werden. Das Gleiche gilt für den Market Identifier Code oder die API Base URL(s). Es ist sinnvoll, diese als Environment Variablen zu verwenden, da dies auf lange Sicht Flexibilität bietet. Zum Beispiel könnte sich die Basis-URL irgendwann ändern (wir befinden uns noch in einem sehr frühen Stadium und die Dinge ändern sich schnell). In diesem Fall müsstest Du nur eine Environment Variable ändern, anstatt jeden Codeabschnitt einzeln zu suchen und jede einzelne URL zu ersetzen.

Vor allem in dem Chart plot_candlestick_chart.py könnte es eine Idee sein, mehr mit Funktionen und Klassen zu arbeiten und die Hauptfunktion am Ende so aufzurufen:

1if __name__ == '__main__':

Wenn Du Dir alle drei Python-Skripte ansiehst, wirst Du feststellen, dass es einige Wiederholungen gibt (zum Beispiel bei der Erstellung des Candlestick-Charts oder beim Abrufen der OHLC-Daten von unserer API). Um die Skripte kürzer zu halten (vor allem die Datei plot_candlestick_w_dash.py ist ziemlich lang und es ist schwer, den Überblick zu behalten), wäre es vielleicht eine Idee, das Gesamtprojekt besser zu strukturieren, um verschiedene Komponenten in verschiedenen Skripten wiederverwenden zu können. Hierfür könnte das Model-View-Controller-Konzept hilfreich sein. Es ermöglicht Dir, einen skalierbaren Code zu schreiben, der langfristig leicht zu überarbeiten ist.

Das sind jedoch nur Anregungen von unserer Seite für ein insgesamt tolles Projekt, bei dem es wirklich Spaß gemacht hat es zu begleiten. Eröffne gerne einen PR oder nimm Kontakt mit Peter auf. Er freut sich darauf, über mögliche Projektverbesserungen zu sprechen. Und wenn Du Dein eigenes Projekt ins Leben rufen willst: Tritt unserer Slack Community bei oder kontaktiere uns unter [email protected].

Mögliche Ergänzungen

Ein Softwareprojekt ist nie fertig. Wenn Du selbst Entwickler:in bist, weißt Du, wovon wir sprechen. Unserer Meinung nach ist das sowohl das Schöne als auch das Schreckliche am Schreiben von Software. Speziell für Peters Projekt haben wir eine Reihe von Ideen für zusätzliche Funktionen, über die wir schnell sprechen wollen (vielleicht wird ja jemand inspiriert, einen PR zu eröffnen, wer weiß?).

Das Projekt konzentriert sich derzeit auf OHLC-Daten. Unsere API bietet jedoch auch Kurs- und Handelsdaten an (siehe hier). Eine Idee wäre es zu ermöglichen, dass auch diese Art von Daten angezeigt werden können, z. B. durch ein separates Chart oder ein Kontrollkästchen neben dem Chart, in dem Du die von Dir bevorzugte(n) Option(en) auswählen kannst. Außerdem könnte man mit Dropdowns anstelle von Schaltflächen arbeiten, um die Art von Daten auszuwählen, an denen Du interessiert bist. Derzeit nimmt dieser Bereich viel Platz in Anspruch. Die Verwendung von Dropdowns könnte die Benutzerfreundlichkeit dabei erheblich verbessern.

Unsere API ermöglicht es, Marktdaten für mehr als ein Wertpapier abzurufen: Füge einfach mehrere ISINs an den Request Parameter ?isin an. Das könnte sich für Peters Projekt als nützlich erweisen. Warum nicht zwei Wertpapiere in einem Chartanzeigen? Das könnte ein guter Ausgangspunkt für eine Pairs Trading Strategie sein (nicht sicher, was das bedeutet? → sieh Dir unseren kürzlich veröffentlichten Blogpost über einsteigerfreundliche Handelsstrategien an).

Takeaways

Das sind nur ein paar schnelle Ideen von unserer Seite. Hast Du selbst eine? Fantastisch! Sorge dafür, dass Du sie zum Leben erweckst. Wir freuen uns auf eine kontinuierliche Zusammenarbeit bei diesem Projekt.

Wir hoffen, Du hast einen guten Einblick in Peters Arbeit bekommen. Wir denken, dass es ein guter Ausgangspunkt ist, um sich mit unserer Marktdaten-API vertraut zu machen und Deine Fähigkeiten in Richtung einer Trading Strategie weiterzuentwickeln, die auf der visuellen Inspektion von Marktdaten basiert. Trage Dich in unsere Warteliste ein, um ein eigenes Projekt zu starten und wir sehen uns bald auf lemon.markets 🍋.

Marius und das lemon.markets Team

Das könnte Dich auch interessieren

Die lemon.markets Trading API verstehen

blog photo

lemon.markets wurde aus dem Mangel an europäischen Brokern mit einer stabilen, zuverlässigen API geboren. Wir haben unsere Trading API für Entwickler:innen gebaut, sodass Du fast jedes erdenkliche Brokerage-Produkt damit bauen kannst. Lies weiter, um mehr über die verschiedenen Endpunkte zu erfahren.

Trading Terminologie, die Du als Anfänger:in kennen solltest

blog photo

Das Trading-Universum ist bekannt für seine ganz eigene Sprache - was ist überhaupt der Unterschied zwischen einem "Bärenmarkt" und einem "Bullenmarkt"? Und warum werden Finanzinstrumente immer mit zwei Preisen aufgeführt? Wenn Du gerade erst mit dem Trading anfängst oder eine kurze Zusammenfassung benötigst, lies weiter, um die Fachbegriffe für Anfänger:innen aufzufrischen. Du wirst im Handumdrehen ein Expert:in sein!

Trading basierend auf Nachrichten: Eine Sentiment Strategie mit der lemon.markets API

blog photo

Wenn Du jemals darüber nachgedacht hast Deine Trading Entscheidungen basierend auf den Nachrichten zu treffen, dann weißt Du wahrscheinlich auch welcher Zeitaufwand mit dieser Strategie verbunden ist. Was wäre also, wenn Du den Prozess automatisieren könntest? Lies weiter, um zu erfahren wie Du einen Sentiment-Analyse Bot einrichtest, der für Dich basierend auf Nachrichtenmeldungen handelt.

Tiefer eintauchen

Finde weitere Ressourcen für einen einfachen Einstieg

In unserer Dokumentation erfahrt Ihr mehr über unsere API-Struktur, die verschiedenen Endpunkte und spezifische Anwendungsfälle.

Austauschen

Tritt der lemon.markets Community bei

Tritt unserem Slack-Channel bei, um Dich aktiv an unserer Community zu beteiligen, Fragen an andere Nutzer:innen zu stellen und immer auf dem Laufenden zu bleiben.

Team unterstützen

Lust lemon.markets mit uns zu bauen?

Wir sind immer auf der Suche nach großartigen Ergänzungen für unser Team, die uns beim Aufbau einer Brokerage Infrastruktur für das 21. Jahrhundert helfen.

Products
Pricing
For Developers
SlackGithubBlog
© lemon.markets 2021Privacy PolicyImprint
All systems normal