Wie verhalten sich die Bitcoin-Märkte? Was sind die Gründe für den plötzlichen Anstieg und Abfall der Kryptowährungspreise? Gibt es eine enge untrennbare Verbindung zwischen den Altcoin-Märkten oder sind sie größtenteils unabhängig voneinander? Wie können wir vorhersagen, was in Zukunft passieren wird?
Informationsanalytischer Ansatz zum Denken in Kryptowährung
Artikel, die Kryptowährungen wie Bitcoin und Ethereum gewidmet sind, sind reich an Argumenten und Theorien. Hunderte von selbsternannten Experten argumentieren für Trends, von denen sie glauben, dass sie sich bald zeigen werden. Was vielen solcher Analysen mit Sicherheit fehlt, ist eine solide Grundlage in Form von Daten und Statistiken, die bestimmte Aussagen stützen können.
Der Zweck dieses Artikels ist eine einfache Einführung in die Kryptowährungsanalyse mit Python. Darin werden wir uns Schritt für Schritt ein einfaches Python-Skript zum Empfangen, Analysieren und Visualisieren von Daten in verschiedenen Kryptowährungen ansehen. Im Laufe der Arbeit werden wir einen interessanten Trend im Verhalten volatiler Märkte entdecken und herausfinden, welche Veränderungen in ihnen eingetreten sind.

In diesem Beitrag wird nicht erklärt, was Kryptowährungen sind (wenn Sie eine solche Erklärung benötigen, würde ich Ihnen diese hervorragende
Bewertung empfehlen). Es wird keine Diskussion darüber geben, welche bestimmten Währungen an Wert gewinnen oder fallen werden. Stattdessen konzentriert sich der Leitfaden darauf, Zugriff auf grobe Rohdaten zu erhalten und den Verlauf unter Zahlenschichten zu finden.
Stufe 1. Wir rüsten unser Labor aus
Dieser Leitfaden richtet sich an eine breite Palette von Enthusiasten, Ingenieuren und Datenverarbeitungsfachleuten, unabhängig von ihrer Professionalität. Von den Fähigkeiten benötigen Sie nur ein grundlegendes Verständnis von Python und die minimalen Befehlszeilenfähigkeiten, die zum Konfigurieren des Projekts erforderlich sind.
Die Vollversion der geleisteten Arbeit und alle Ergebnisse finden Sie
hier .
1.1 Installieren Sie Anaconda
Der einfachste Weg, Abhängigkeiten für dieses Projekt von Grund auf neu zu installieren, ist die Verwendung von Anaconda, einem Python-Ökosystem und Abhängigkeitsmanager, der alle erforderlichen Pakete enthält, um mit Daten zu arbeiten und diese zu analysieren.
Für die Installation von Anaconda würde ich empfehlen, die
hier verfügbaren offiziellen Anweisungen zu verwenden.
Wenn Sie ein fortgeschrittener Benutzer sind und Anaconda nicht Ihren Wünschen entspricht, ist eine Installation nicht erforderlich. In diesem Fall benötigen Sie meiner Meinung nach keine Hilfe bei der Installation der erforderlichen Abhängigkeiten, und Sie können direkt zur zweiten Stufe übergehen.1.2 Einrichten der Projektumgebung in Anaconda
Sobald Anaconda installiert ist, möchten wir eine neue Umgebung für die Organisation der Arbeit mit Abhängigkeiten erstellen.
Geben Sie den Befehl
conda create --name cryptocurrency-analysis python=3
, um eine neue Anaconda-Umgebung für unser Projekt zu erstellen.
source activate cryptocurrency-analysis
Nächstes die
source activate cryptocurrency-analysis
und (unter Linux / macOS) oder
activate cryptocurrency-analysis
(unter Windows), um die Umgebung zu aktivieren.
Und schließlich
conda install numpy pandas nb_conda jupyter plotly quandl
die erforderlichen Abhängigkeiten in der Umgebung. Dieser Vorgang kann einige Minuten dauern.
Warum nutzen wir die Umwelt? Wenn Sie gleichzeitig mit vielen Python-Projekten auf Ihrem Computer arbeiten möchten, ist es hilfreich, die Abhängigkeiten (Softwarebibliotheken und Pakete) separat zu platzieren, um Konflikte zu vermeiden. Innerhalb jedes Projekts erstellt Anaconda ein spezielles Verzeichnis für Abhängigkeiten in der Umgebung, in dem Sie sie von den Abhängigkeiten anderer Projekte trennen und die Arbeit mit ihnen organisieren können.1.3 Starten des Jupyter Notebook Interactive Notebook
jupyter notebook
nach der Installation der Umgebung und der Abhängigkeiten in der Konsole
jupyter notebook
ein, um den iPython-Kernel zu starten, und öffnen Sie den Link
http: // localhost: 8888 / im Browser. Erstellen Sie ein neues Python-Notizbuch und überprüfen Sie, ob es den
Python [conda env:cryptocurrency-analysis]
Kernel verwendet
Python [conda env:cryptocurrency-analysis]
.

1.4 Abhängigkeiten an den oberen Rand des Notebooks importieren
Sobald Sie ein sauberes Jupyter-Protokoll sehen, müssen Sie zuerst die erforderlichen Abhängigkeiten importieren.
import os import numpy as np import pandas as pd import pickle import quandl from datetime import datetime
Außerdem müssen Sie Plotly importieren und den Offline-Modus dafür aktivieren.
import plotly.offline as py import plotly.graph_objs as go import plotly.figure_factory as ff py.init_notebook_mode(connected=True)
Stufe 2. Abrufen von Bitcoin-Preisdaten
Nachdem alle Einstellungen abgeschlossen sind, können wir Informationen zur Analyse empfangen. Zunächst müssen wir Bitcoin-Preisdaten mit der kostenlosen
Bitcoin-API Quandl anfordern .
2.1 Definieren Sie eine Quandl-Hilfsfunktion
Um die Datenerfassung zu erleichtern, definieren wir eine Funktion, mit der Datensätze von Quandl heruntergeladen und zwischengespeichert werden können.
def get_quandl_data(quandl_id): '''Download and cache Quandl dataseries''' cache_path = '{}.pkl'.format(quandl_id).replace('/','-') try: f = open(cache_path, 'rb') df = pickle.load(f) print('Loaded {} from cache'.format(quandl_id)) except (OSError, IOError) as e: print('Downloading {} from Quandl'.format(quandl_id)) df = quandl.get(quandl_id, returns="pandas") df.to_pickle(cache_path) print('Cached {} at {}'.format(quandl_id, cache_path)) return df
Um die heruntergeladenen Daten zu konvertieren und in einer Datei zu speichern, verwenden wir
pickle
. Dadurch wird verhindert, dass bei jeder Ausführung des Skripts dieselben Daten erneut heruntergeladen werden. Die Funktion gibt Daten als
Pandas -Datenrahmen zurück. Wenn Sie mit Datenrahmen nicht vertraut sind, können Sie sie in Form sehr leistungsfähiger Tabellenkalkulationen darstellen.
2.2 Wir beziehen Preisdaten von der Kraken-Börse
Lassen Sie uns zunächst die historischen Daten zum Bitcoin-Wechselkurs von der
Kraken- Börse
abrufen .
# Pull Kraken BTC price exchange data btc_usd_price_kraken = get_quandl_data('BCHARTS/KRAKENUSD')
Wir können die ersten 5 Zeilen des Datenrahmens mit der
head()
-Methode überprüfen.
btc_usd_price_kraken.head()

Als Nächstes erstellen wir ein einfaches Diagramm zur schnellen visuellen Überprüfung der Richtigkeit der Daten.
# Chart the BTC pricing data btc_trace = go.Scatter(x=btc_usd_price_kraken.index, y=btc_usd_price_kraken['Weighted Price']) py.iplot([btc_trace])

Zur Visualisierung wird
hier Plotly verwendet. Dies ist ein weniger traditioneller Ansatz im Vergleich zu den maßgeblicheren Python-Visualisierungsbibliotheken wie
Matplotlib , aber meiner Meinung nach ist Plotly eine ausgezeichnete Wahl, da Sie damit mithilfe von
D3.js vollständig interaktive Grafiken
erstellen können. Als Ergebnis erhalten Sie am Ausgang schöne visuelle Diagramme ohne Einstellungen. Darüber hinaus ist Plotly leicht zu erlernen und die Ergebnisse lassen sich leicht in Webseiten einfügen.
Natürlich sollten Sie immer daran denken, dass Sie die resultierenden Visualisierungen mit öffentlich verfügbaren Kryptowährungs-Preisdiagrammen (z. B. auf Coinbase) vergleichen müssen, um die Zuverlässigkeit der heruntergeladenen Daten grundlegend zu überprüfen.2.3 Preisdaten von anderen BTC-Börsen anfordern
Möglicherweise haben Sie Abweichungen in diesem Satz festgestellt: Die Grafik sinkt an mehreren Stellen auf Null, insbesondere Ende 2014 und Anfang 2016. Diese Rückgänge sind im Kraken-Datensatz enthalten, und wir möchten natürlich nicht, dass sie in unserer endgültigen Preisanalyse berücksichtigt werden.
Die Art der Bitcoin-Börsen ist so, dass die Preise durch Angebot und Nachfrage bestimmt werden. Daher kann keine der bestehenden Börsen behaupten, dass ihre Quotes den einzig wahren „Referenzpreis“ von Bitcoin widerspiegeln. Um diesen Nachteil zu berücksichtigen und den Preisverfall auf dem Chart zu beseitigen, der höchstwahrscheinlich auf technische Fehler oder Datensatzfehler zurückzuführen ist, werden wir zusätzlich Daten von drei anderen großen Bitcoin-Börsen sammeln, um den Gesamtpreisindex für Bitcoin zu berechnen.
Laden Sie zunächst die Daten von jedem Austausch in ein Wörterbuch mit Datenrahmen herunter.
# Pull pricing data for 3 more BTC exchanges exchanges = ['COINBASE','BITSTAMP','ITBIT'] exchange_data = {} exchange_data['KRAKEN'] = btc_usd_price_kraken for exchange in exchanges: exchange_code = 'BCHARTS/{}USD'.format(exchange) btc_exchange_df = get_quandl_data(exchange_code) exchange_data[exchange] = btc_exchange_df
2.4 Alle Preisdaten in einem Datenrahmen zusammenfassen
Als nächstes definieren wir eine einfache Funktion, die die ähnlichen Spalten jedes Datenrahmens zu einem neuen kombinierten Rahmen kombiniert.
def merge_dfs_on_column(dataframes, labels, col): '''Merge a single column of each dataframe into a new combined dataframe''' series_dict = {} for index in range(len(dataframes)): series_dict[labels[index]] = dataframes[index][col] return pd.DataFrame(series_dict)
Kombinieren wir nun alle Datenrahmen basierend auf der Spalte Gewichteter Preis.
# Merge the BTC price dataseries' into a single dataframe btc_usd_datasets = merge_dfs_on_column(list(exchange_data.values()), list(exchange_data.keys()), 'Weighted Price')
Schauen Sie sich zum Schluss die letzten fünf Zeilen mit der
tail()
-Methode an, um sicherzustellen, dass das Ergebnis unserer Arbeit normal aussieht.
btc_usd_datasets.tail()

Die Preise sehen wie erwartet aus: Sie liegen innerhalb ähnlicher Grenzen, es gibt jedoch geringfügige Unterschiede in Bezug auf das Verhältnis von Angebot und Nachfrage an jeder einzelnen Börse.
2.5 Preisdatensätze visualisieren
Der nächste logische Schritt besteht darin, den Vergleich der resultierenden Datensätze zu visualisieren. Zu diesem Zweck definieren wir eine Hilfsfunktion, mit der mithilfe eines einzeiligen Befehls ein Diagramm basierend auf einem Datenrahmen erstellt werden kann.
def df_scatter(df, title, seperate_y_axis=False, y_axis_label='', scale='linear', initial_hide=False): '''Generate a scatter plot of the entire dataframe''' label_arr = list(df) series_arr = list(map(lambda col: df[col], label_arr)) layout = go.Layout( title=title, legend=dict(orientation="h"), xaxis=dict(type='date'), yaxis=dict( title=y_axis_label, showticklabels= not seperate_y_axis, type=scale ) ) y_axis_config = dict( overlaying='y', showticklabels=False, type=scale ) visibility = 'visible' if initial_hide: visibility = 'legendonly' # Form Trace For Each Series trace_arr = [] for index, series in enumerate(series_arr): trace = go.Scatter( x=series.index, y=series, name=label_arr[index], visible=visibility ) # Add seperate axis for the series if seperate_y_axis: trace['yaxis'] = 'y{}'.format(index + 1) layout['yaxis{}'.format(index + 1)] = y_axis_config trace_arr.append(trace) fig = go.Figure(data=trace_arr, layout=layout) py.iplot(fig)
Der Kürze halber werde ich nicht näher auf die Funktionsweise einer Hilfsfunktion eingehen. Wenn Sie mehr darüber erfahren
möchten, lesen Sie die Dokumentation zu Pandas und
Plotly .
Wir können leicht ein Diagramm für Bitcoin-Preisdaten erstellen.
# Plot all of the BTC exchange prices df_scatter(btc_usd_datasets, 'Bitcoin Price (USD) By Exchange')

2.6 Bereinigen und Kombinieren von Preisdaten
Wir können sehen, dass trotz der Tatsache, dass sich alle 4 Datenreihen ungefähr gleich verhalten, es einige Abweichungen von der Norm gibt, die beseitigt werden müssen.
Entfernen wir alle Nullwerte aus dem Frame, da wir wissen, dass der Preis für Bitcoin in dem von uns betrachteten Zeitraum nie Null war.
# Remove "0" values btc_usd_datasets.replace(0, np.nan, inplace=True)
Nachdem wir das Diagramm erneut erstellt haben, erhalten wir eine sauberere Kurve ohne scharfe Einbrüche.
# Plot the revised dataframe df_scatter(btc_usd_datasets, 'Bitcoin Price (USD) By Exchange')

Und jetzt können wir eine neue Spalte berechnen, die den durchschnittlichen täglichen Bitcoin-Preis basierend auf Daten aller Börsen enthält.
# Calculate the average BTC price as a new column btc_usd_datasets['avg_btc_price_usd'] = btc_usd_datasets.mean(axis=1)
Diese neue Spalte ist unser Bitcoin-Preisindex! Zeichnen wir es, um sicherzustellen, dass es normal aussieht.
# Plot the average BTC price btc_trace = go.Scatter(x=btc_usd_datasets.index, y=btc_usd_datasets['avg_btc_price_usd']) py.iplot([btc_trace])

Ja, es sieht gut aus. Wir werden die kombinierten Preisreihen in Zukunft verwenden, um die Wechselkurse anderer Kryptowährungen in US-Dollar umzurechnen.
Stufe 3. Abrufen von Altcoin-Preisdaten
Nachdem wir nun eine zuverlässige Zeitreihe von Preisen für Bitcoin haben, fordern wir einige Daten für Nicht-Bitcoin-Kryptowährungen an, die oft als Altcoins bezeichnet werden.
3.1 Hilfsfunktionen für die Arbeit mit der Poloniex-API definieren
Um Altcoin-Daten zu erhalten, verwenden wir
die Poloniex-API . Zwei Hilfsfunktionen, die an diese API übergebene JSON-Daten herunterladen und zwischenspeichern, helfen uns dabei.
Zunächst definieren wir
get_json_data
, mit dem JSON-Daten unter der angegebenen URL heruntergeladen und zwischengespeichert werden.
def get_json_data(json_url, cache_path): '''Download and cache JSON data, return as a dataframe.''' try: f = open(cache_path, 'rb') df = pickle.load(f) print('Loaded {} from cache'.format(json_url)) except (OSError, IOError) as e: print('Downloading {}'.format(json_url)) df = pd.read_json(json_url) df.to_pickle(cache_path) print('Cached {} at {}'.format(json_url, cache_path)) return df
Als Nächstes definieren wir eine Funktion, die HTTP-Anforderungen an die Poloniex-API generiert und dann
get_json_data
, die wiederum die angeforderten Daten speichert.
base_polo_url = 'https://poloniex.com/public?command=returnChartData¤cyPair={}&start={}&end={}&period={}' start_date = datetime.strptime('2015-01-01', '%Y-%m-%d') # get data from the start of 2015 end_date = datetime.now() # up until today pediod = 86400 # pull daily data (86,400 seconds per day) def get_crypto_data(poloniex_pair): '''Retrieve cryptocurrency data from poloniex''' json_url = base_polo_url.format(poloniex_pair, start_date.timestamp(), end_date.timestamp(), pediod) data_df = get_json_data(json_url, poloniex_pair) data_df = data_df.set_index('date') return data_df
Sie nimmt eine Zeichenfolge, die das Kryptowährungspaar angibt (z. B. BTC_ETH), und gibt einen Datenrahmen zurück, der historische Daten zum Wechselkurs enthält.
3.2 Handelsdaten mit Poloniex herunterladen
Die meisten Altcoins können nicht direkt für US-Dollar gekauft werden. Um sie zu erwerben, kaufen die Leute oft Bitcoins und tauschen sie an Börsen gegen Altcoins ein. Daher laden wir die BTC-Wechselkurse für jede Münze herunter und verwenden die Daten zum BTC-Preis, um die Kosten für Altcoins in USD zu berechnen.
Wir laden Bestandsdaten für die neun beliebtesten Kryptowährungen herunter -
Ethereum ,
Litecoin ,
Ripple ,
Ethereum Classic ,
Stellar ,
Dashcoin ,
Siacoin ,
Monero und
NEM .
altcoins = ['ETH','LTC','XRP','ETC','STR','DASH','SC','XMR','XEM'] altcoin_data = {} for altcoin in altcoins: coinpair = 'BTC_{}'.format(altcoin) crypto_price_df = get_crypto_data(coinpair) altcoin_data[altcoin] = crypto_price_df
Jetzt haben wir ein Wörterbuch mit 9 Datenrahmen, von denen jeder historische Daten zu den durchschnittlichen täglichen Wechselkurspaaren von Altcoins und Bitcoin enthält.
Wir werden erneut die letzten fünf Zeilen der Ethereum-Preistabelle überprüfen, um sicherzustellen, dass alles in Ordnung ist.
altcoin_data['ETH'].tail()

3.3 Umrechnung der Preise in US-Dollar
Jetzt können wir die Daten zu Preispaaren mit unserem Bitcoin-Preisindex vergleichen, um direkt historische Daten zum Wert von Altcoins in US-Dollar zu erhalten.
# Calculate USD Price as a new column in each altcoin dataframe for altcoin in altcoin_data.keys(): altcoin_data[altcoin]['price_usd'] = altcoin_data[altcoin]['weightedAverage'] * btc_usd_datasets['avg_btc_price_usd']
Mit diesem Code haben wir eine neue Spalte im Datenrahmen jeder Altmünze mit Dollarmünzenpreisen erstellt.
Außerdem können wir die zuvor definierte Funktion
merge_dfs_on_column
, um einen
merge_dfs_on_column
zu erstellen, der Dollarpreise für jede Kryptowährung enthält.
# Merge USD price of each altcoin into single dataframe combined_df = merge_dfs_on_column(list(altcoin_data.values()), list(altcoin_data.keys()), 'price_usd')
Einfach so. Fügen wir nun auch Bitcoin-Preise zur letzten Spalte des kombinierten Datenrahmens hinzu.
# Add BTC price to the dataframe combined_df['BTC'] = btc_usd_datasets['avg_btc_price_usd']
Und jetzt haben wir einen einzigen Frame mit täglichen Dollarpreisen für die zehn Kryptowährungen, die wir untersuchen.
Lassen Sie uns die zuvor festgelegte Funktion
df_scatter
, um ein Vergleichsdiagramm der Preisänderungen bei
df_scatter
zu zeichnen.
# Chart all of the altocoin prices df_scatter(combined_df, 'Cryptocurrency Prices (USD)', seperate_y_axis=False, y_axis_label='Coin Value (USD)', scale='log')

Großartig! Mit dem Diagramm können Sie die Dynamik der Wechselkurse jeder Kryptowährung in den letzten Jahren ganz klar bewerten.
Bitte beachten Sie, dass wir die logarithmische Ordinatenskala verwenden, da wir damit alle Währungen in einem Diagramm anpassen können. Wenn Sie möchten, können Sie verschiedene Parameterwerte (z. B. scale='linear'
) ausprobieren, um die Daten aus einer anderen Perspektive zu betrachten.3.4 Korrelationsanalyse
Möglicherweise haben Sie bemerkt, dass die Wechselkurse für Kryptowährungen trotz ihrer völlig unterschiedlichen Werte und Volatilität so aussehen, als ob eine gewisse Korrelation zwischen ihnen besteht. Insbesondere wenn Sie das Intervall nach dem Anstieg im August betrachten, treten bei verschiedenen Token sogar kleine Schwankungen auf, als ob sie synchron wären.
Eine Vorahnung, die auf äußerer Ähnlichkeit beruht, ist jedoch nicht besser als eine einfache Vermutung, bis wir sie mit statistischen Daten belegen können.
Wir können unsere Korrelationshypothese mit der
corr()
-Methode aus der Pandas-Sammlung testen und damit den Pearson-Korrelationskoeffizienten aller Spalten des Frames zueinander berechnen.
Korrektur vom 22.08.2017 - Dieser Teil der Arbeit wurde überarbeitet. Zur Berechnung der Korrelationskoeffizienten werden nun anstelle der absoluten Preiswerte die Prozentwerte ihrer täglichen Änderungen verwendet.Die Berechnung von Korrelationen direkt zwischen instationären Zeitreihen (z. B. Rohpreisdaten) kann zu verzerrten Ergebnissen führen. Wir werden diesen Fehler korrigieren, indem wir die Methode
pct_change()
anwenden, die den Wert jeder Rahmenzelle von einem absoluten Wert in einen Prozentsatz ihrer täglichen Änderung umwandelt.
Zunächst berechnen wir die Korrelation im Jahr 2016.
# Calculate the pearson correlation coefficients for cryptocurrencies in 2016 combined_df_2016 = combined_df[combined_df.index.year == 2016] combined_df_2016.pct_change().corr(method='pearson')

Jetzt haben wir überall Chancen. Werte nahe 1 oder -1 geben an, dass zwischen den Zeitreihen eine starke Vorwärts- bzw. Rückwärtskorrelation besteht. Koeffizienten nahe Null bedeuten, dass die Werte nicht korrelieren und unabhängig voneinander variieren.
Um die Ergebnisse zu visualisieren, müssen wir eine weitere Hilfsvisualisierungsfunktion erstellen.
def correlation_heatmap(df, title, absolute_bounds=True): '''Plot a correlation heatmap for the entire dataframe''' heatmap = go.Heatmap( z=df.corr(method='pearson').as_matrix(), x=df.columns, y=df.columns, colorbar=dict(title='Pearson Coefficient'), ) layout = go.Layout(title=title) if absolute_bounds: heatmap['zmax'] = 1.0 heatmap['zmin'] = -1.0 fig = go.Figure(data=[heatmap], layout=layout) py.iplot(fig)
correlation_heatmap(combined_df_2016.pct_change(), "Cryptocurrency Correlations in 2016")

Dunkelrote Zellen auf dem Diagramm zeigen eine starke Korrelation an (und jede der Währungen korreliert offensichtlich so weit wie möglich mit sich selbst), dunkelblau - eine starke inverse Korrelation. Alle Blau-, Orange-, Grau- und Sandfarben zwischen ihnen weisen auf unterschiedliche Grade schwacher Korrelation oder deren Abwesenheit hin.
Was sagt uns diese Tabelle? Tatsächlich zeigt sich, dass der statistisch signifikante Zusammenhang zwischen Preisschwankungen verschiedener Kryptowährungen im Jahr 2016 gering ist.
Um unsere Hypothese zu testen, dass Kryptowährungen in den letzten Monaten stärker korreliert sind, wiederholen wir denselben Test mit Daten, die bereits für 2017 vorliegen.
combined_df_2017 = combined_df[combined_df.index.year == 2017] combined_df_2017.pct_change().corr(method='pearson')

Die erhaltenen Koeffizienten zeigen das Vorhandensein einer signifikanteren Korrelation an. Ist sie stark genug, um diese Tatsache für Investitionen zu nutzen? Auf keinen Fall.
Wir sollten jedoch darauf achten, dass fast alle Kryptowährungen insgesamt stärker miteinander korreliert sind.
correlation_heatmap(combined_df_2017.pct_change(), "Cryptocurrency Correlations in 2017")

Und das ist eine ziemlich interessante Beobachtung.
Warum passiert das?
Gute Frage. Ich kann es nicht sicher sagen.
Der erste Gedanke, der mir in den Sinn kommt: Der Grund dafür ist, dass Hedge-Fonds seit kurzem offen mit Kryptowährungsmärkten handeln. [
1 ] [
2 ] Solche Fonds haben viel mehr Kapital als Durchschnittshändler, und wenn sie sich vor Risiken schützen, indem sie ihre Fonds auf eine Vielzahl von Kryptowährungen sprühen und für jeden von ihnen ähnliche Handelsstrategien verwenden, basierend auf unabhängigen Variablen (wie sie es tun) Eine logische Konsequenz dieses Ansatzes kann dann beispielsweise die Entstehung eines Trends zur Erhöhung der Korrelationen sein.
Eingehende Analyse: XRP und STR
Beispielsweise bestätigt einer der Trends indirekt die obigen Überlegungen. XRP (Ripple Token) korreliert am wenigsten mit anderen Altcoins. Es gibt jedoch eine bemerkenswerte Ausnahme: STR (das stellare Token, das offizielle heißt „Lumen“), dessen Korrelationskoeffizient mit XRP 0,62 beträgt.
Interessanterweise sind sowohl Stellar als auch Ripple ziemlich ähnliche Fintech-Plattformen, deren Aktivitäten darauf abzielen, den Prozess internationaler Interbankenzahlungen zu vereinfachen.
Ich sehe eine sehr reale Situation, in der einige wohlhabende Spieler und Hedgefonds ähnliche Strategien für den Handel mit in Stellar und Ripple investierten Fonds anwenden, da beide Dienste hinter diesen Token sehr ähnlich sind. Diese Annahme könnte erklären, warum XRP viel stärker mit STR korreliert als mit anderen Kryptowährungen.
Du bist dran
Diese Erklärung ist jedoch weitgehend eine spekulative Schlussfolgerung. Aber vielleicht kannst du es besser machen? Das Fundament, das wir in dieser Arbeit gelegt haben, ermöglicht es uns, das Studium von Daten in verschiedene Richtungen fortzusetzen.
Hier sind einige Ideen zu überprüfen:
- Fügen Sie der Analyse Daten für weitere Kryptowährungen hinzu.
- Korrigieren Sie den Zeitrahmen und den Detaillierungsgrad der Korrelationsanalyse, indem Sie die Trends detaillierter betrachten oder umgekehrt, allgemeiner ausgedrückt.
- Suchen Sie nach Trends bei Handelsvolumen und / oder Datensätzen für das Blockchain-Mining. Verkaufs- / Einkaufsverhältnisse eignen sich besser zur Vorhersage von Preisschwankungen als Rohpreisdaten.
- Fügen Sie Preisdaten für Aktien, Rohstoffe und Rohstoffe sowie Fiat-Währungen hinzu, um herauszufinden, welche dieser Vermögenswerte mit Kryptowährungen korrelieren. (Aber denken Sie immer an das gute alte Sprichwort: „Korrelation bedeutet noch keine Kausalität.“)
- Quantifizieren Sie den Hype um einzelne Kryptowährungen mithilfe von Event Registry , GDELT und Google Trends .
- Trainieren Sie mithilfe von maschinellem Lernen ein Programm zur Analyse von Daten, um Preisentwicklungen vorherzusagen. Wenn es der Ehrgeiz erlaubt, können Sie sogar versuchen, dies mit einem wiederkehrenden neuronalen Netzwerk zu tun.
- Verwenden Sie Ihre Analyse, um einen automatisierten Bot-Trader-Handel auf Websites wie Poloniex und Coinbase mithilfe der entsprechenden APIs zu erstellen. Aber seien Sie vorsichtig: Ein schlecht optimierter Handelsbot kann Ihnen schnell alle verfügbaren Mittel entziehen.
- Teilen Sie Ihre Funde! Das Beste an Bitcoin und anderen Kryptowährungen im Allgemeinen ist, dass sie aufgrund ihrer Dezentralität im Vergleich zu fast allen anderen Vermögenswerten freier und demokratischer sind. , , , -.
HTML- python-
.
, , - , , , .
, , , - , . - ,
Github- .
, , , . , , , .
