DYOR für angehende Profis Do your own Research: Wo findet man gute Bitcoin-Daten?

Wie kann ein Bitcoin-Interessierter Geschichten aus den Daten herauslesen? Und wo findet man brauchbare Daten? Die ersten Schritte hierzu sollen im Artikel erläutert werden.

Dr. Philipp Giese
Teilen
Mehrere goldene Bitcoin Münzen die gestapelt sind und im Hintergrund wird eine grüne Chart Linie angezeigt

Beitragsbild: Shutterstock

Ein eng mit der Krypto-Szene verbundenes Motto: Don’t trust, verify. Vertraue nicht einfach, prüfe nach. Eine Haltung, die sich in der ebenfalls im Bitcoin-Ökosystem bekannten Abkürzung DYOR (Do your own research) niederschlägt. Es geht schließlich nicht einfach um eine Offenlegung, sondern darum, jeden BTC-ECHO-Leser zu einem mündigen Krypto-Bürger zu machen. Deshalb sollen in diesem Artikel zwei der verwendeten Datenquellen vorgestellt werden. Für heute fokussieren wir uns dabei auf Bitcoin.

Ein Wort vorneweg: Für die Datenanalyse verwende ich die Programmiersprache R. Alle im weiteren Verlauf genannten Datenquellen sind jedoch auch mit anderen Tools wie Python zugänglich.

TradingView: Hervorragende Quelle für Rohdaten

TradingView ist weit über die Bitcoin-Szene hinaus bekannt. Die Kursanalysen auf unserer Seite werden grundsätzlich mithilfe dieser mächtigen Plattform durchgeführt. TradingView ist eine phantastische Plattform zum Erstellen von Charts. Was wenige wissen: Ein erster Schritt zum Jonglieren mit Daten kann das Exportieren der TradingView-Daten sein. So verfügt TradingView mit Pine über eine recht mächtige Programmiersprache, die wir in in diesem Artikel vorstellten.

Was ist jedoch, wenn man externe Daten mit den TradingView-Daten kombinieren möchte? Hierfür bietet die Plattform seit wenigen Monaten die Möglichkeit des Datenexports. Ein Klick ermöglicht es, sowohl den Bitcoin-Kurs als auch alle Indikatoren im Layout als csv-Datei zu exportieren:

CSV-Dateien sind Tabellen, in denen alle Werte einer Zeile durch Kommata getrennt sind. Man erhält so ein einfach zu lesendes Format, das beispielsweise auch in Excel oder ähnliches importiert werden kann.

Der Analyst in spe kann nun mit diesen Daten arbeiten. In R würde er sie mit einem einfachen Befehl einlesen können:

daten <- read.csv("Pfad/zum/Dateinamen.csv")

Natürlich gibt es noch andere Möglichkeiten. Viele Fans von R schwören auf Tidyverse, eine Gruppe von Bibliotheken für R, die das Arbeiten mit Daten extrem erleichtert. Das Tidyverse schlägt sich auch insbesondere in den Bitcoin Reports nieder. Es würde jedoch jetzt den Rahmen sprengen, auf diese näher einzugehen.

Jonglieren mit Bitcoin-Kurs-Daten von Coingecko

Ein Nachteil bei obigem Ansatz: Prozesse lassen sich nicht automatisieren. Warum arbeitet man mit Programmiersprachen, wenn man für die weitere Verarbeitung der Daten noch dreimal klicken muss? Hier wäre ein direkterer Zugang zu den Kursen hilfreich.

Dazu geht es dem Analysten von Bitcoin & Co. oft nicht einfach um Kurse. Die Entwicklung von Supply und Marktkapitalisierung steht immer wieder im Fokus der Analyse. Zwar kann hier auch TradingView helfen und die Menge an verfügbaren Daten wird immer größer. Doch Analysten sind diesbezüglich auf zusätzliche Datenquellen angewiesen.

Hier bietet sich an vielen Stellen das Arbeiten mit Programmierschnittstellen, sogenannten APIs an. API steht für Application Programming Interface und ermöglicht, einfach gesprochen, den Zugang zu Daten von der Kommandozeile beziehungsweise aus einem Programm. Coingecko ist ein Beispiel für eine derartige Plattform mit API. Das Angenehme: Aktuell muss man sich für diese nicht registrieren.

Möchte man nun eine Historie vom Bitcoin-Kurs reproduzierbar erfragen, ist das im ersten Schritt über eine URL möglich:

https://api.coingecko.com/api/v3/coins/bitcoin/market_chart?vs_currency=usd&days=30

Das Problem: Das Format ist zunächst etwas ungewohnt. Anders als eine CSV-Datei ist dieses sogenannte JSON-Format nicht eine einfache Tabelle. Dennoch ist es in R recht einfach zu nutzen:

library(jsonlite)
daten <- fromJSON("https://api.coingecko.com/api/v3/coins/bitcoin/market_chart?vs_currency=usd&days=30")

Die Variable Daten wird nun drei Tabellen enthalten, jeweils den Kurs, die Marktkapitalisierung und das Volumen enthalten. Über daten$prices, daten$market_caps und daten$total_volumes können diese einzelnen Tabellen weiter bearbeitet werden.

Anno 1970: Das Unix-Zeitformat

Für daten$prices sehen die ersten fünf Zeilen wie folgt aus:

Die Rohdaten von einem API-Call bzgl Bitcoin

Die zweite Spalte ist zweifellos der (frühere) Bitcoin-Kurs, aber was ist die erste? Es handelt sich hierbei um eine von Computern gut lesbare Zeitangabe, der Unix-Epoche. Sie zählt vom 1.1.1970 um null Uhr morgens in überschaubaren Zeiteinheiten. Hierfür werden häufig Sekunden oder Millisekunden wie in diesem Fall gezählt.

Natürlich kann uns R helfen, das in eine etwas lesbarere Zeit zu konvertieren:

as.POSIXct(daten$prices[,1]/1000,origin = "1970-01-01")
Dieser Befehl macht aus den Unix-Epochen lesbare Zeitstempel:

Statt eines obskuren Unix-Timestamps haben wir nun ein wirklich lesbares Format für die Zeit.

Wir haben nun gemeinsam den ersten Schritt in Richtung Datenanalyse im Bitcoin-Ökosystem unternommen. Natürlich haben wir nur die Oberfläche berührt. Dinge wie On-chain-Daten haben wir noch nicht einmal angesprochen. Doch jeder Weg, auch der zum Krypto-Analysten, beginnt mit einem ersten Schritt. Obige Strategien können einen schon weit bringen. Nicht nur, dass man sich Kurs, Marktkapitalisierung und Handelsvolumen von Bitcoin nun visuell darstellen kann, man kann auch auf Abhängigkeiten der Größen untereinander achten. Mit diesem Befehl:

plot(daten$prices[,2],daten$total_volumes[,2]/10^9,xlab="Bitcoin-Kurs / US-Dollar", ylab = "Handelsvolumen in Mrd. US-Dollar")

kommt der Bitcoin-Analyst in spe auf diesen Chart:
Über den letzten Monat konnte man keinen Zusammenhang zwischen Kurs und Handelsvolumen feststellen

Bevor man sich über das recht hohe Handelsvolumen wundert: Zu jedem Zeitstempel speichert Coingecko das Handelsvolumen der letzten 24 Stunden.

Zugegeben: Das ist erstmal nicht der spannendste aller Charts. Wir wissen nun, dass es innerhalb des letzten Monats keine wirkliche Abhängigkeit zwischen Handelsvolumen und Bitcoin-Kurs gab. Aber was dieses Beispiel aufzeigen möchte: Das ist erst der Anfang eines Wegs. Man könnte sich fragen, ob es einen gewissen Lag zwischen Handelsvolumen und Kurs gibt und den Code entsprechend umformulieren. Man könnte den API Call derart erweitern, dass man nicht nur Daten der letzten dreißig Tage anschaut. Und wie steht es um die Abhängigkeit zwischen Handelsvolumen und Kurs bei anderen Kryptowährungen?

Dir, lieber Leser, wünschen wir viel Spaß und Erfolg bei deinen eigenen Analysen.

Disclaimer

Dieser Beitrag wurde bereits im Januar 2021 veröffentlicht. Für die erneute Veröffentlichung wurde er überprüft und entsprechend überarbeitet.

Du willst Terra Classic (LUNC) kaufen oder verkaufen?
Wir zeigen dir in unserem Leitfaden, wie und wo du einfach und seriös echte Terra Classic (LUNC) kaufen kannst.
Terra Classic kaufen