Dow und Co

Published Sept. 7, 2020, 6:56 a.m. by finsteininvest

Dow und Co

Hier ein ganz kurzer Artikel - in dem ich aufzeige, wie die Wertentwicklung von Dow Jones Index, Bitcoin und Ethereum visualisiert werden kann.

Mit »investpy« existiert ein Modul, um ganz einfach Kurshistorien herunterzuladen. »investpy« bietet eine Schnittstelle zu den den Daten von investing.com.

Ich möchte wissen, wie sich BTC, ETH und DOW seit Jahresanfang entwickelt haben. Dazu benötigen wir die Kurse seti dem 1.1.2020. Vorher notwendige Module importieren.

import investpy
import matplotlib.pyplot as plt

df_btc = investpy.get_crypto_historical_data(
crypto='bitcoin',
from_date='01/01/2020', to_date='09/06/2020')
df_eth = investpy.get_crypto_historical_data(
crypto='ethereum',
from_date='01/01/2020', to_date='09/06/2020')
df_dow = investpy.get_index_historical_data(
index='Dow 30', country = 'united states',
from_date='01/01/2020', to_date='09/06/2020')

Jetzt haben wir ein Pandas Dataframe je Wert. Mit den nächsten Zeilen werden alle Daten zusammengeführt, überflüssige Spalten gelöscht und die übrig gebliebenen Zeilen erhalten einen neuen Namen.

df_merged_btc_eth = df_btc.merge(df_eth, on='Date') 
df_merged_btc_eth = df_merged_btc_eth.drop(
['Open_x','High_x','Low_x','Volume_x',
'Currency_x','Open_y','High_y','Low_y','Volume_y'], axis=1)
df_merged_btc_eth = df_merged_btc_eth.rename(
columns={"Close_x":"Close_BTC","Close_y":"Close_ETH"})
df_merged_btc_eth_dow = df_merged_btc_eth.merge(df_dow, on='Date')
df_merged_btc_eth_dow = df_merged_btc_eth_dow.drop(
['Open','High','Low','Volume','Currency_y'], axis=1)
df_merged_btc_eth_dow = df_merged_btc_eth_dow.rename(
columns={"Close":"Close_DOW"})
df_merged_btc_eth_dow = df_merged_btc_eth_dow.drop(['Currency'],axis=1)

In dem nächsten Schritt werden alle Werte umgerechnet, um die prozentuale Entwicklung (seit Januar 2020) zu bekommen.

df_merged_btc_eth_dow['Close_BTC'] = ((df_merged_btc_eth_dow['Close_BTC'] / \
df_merged_btc_eth_dow['Close_BTC'].iloc[0])-1)*100
df_merged_btc_eth_dow['Close_ETH'] = ((df_merged_btc_eth_dow['Close_ETH'] / \
df_merged_btc_eth_dow['Close_ETH'].iloc[0])-1)*100
df_merged_btc_eth_dow['Close_DOW'] = ((df_merged_btc_eth_dow['Close_DOW'] / \
df_merged_btc_eth_dow['Close_DOW'].iloc[0])-1)*100

Und zum Schluss möchte ich ein Chart erstellen. Hinweis: Ich mag den xkcd Stil...

with plt.xkcd():
df_merged_btc_eth_dow.plot()
plt.title('Veränderung seit 1.1.2020')
plt.xlabel('Datum')
plt.ylabel('Veränderung in %')
plt.show()

Dow und Co

Wenn Du die Analyse selbst nachvollziehen möchtest. Den Code kannst Du von Git herunterladen. Bitte auch die Datei »requirements.txt« herunterladen und mit:

pip install requirements.txt

sicherstellen, dass alle notwendigen Module installiert sind.

Für geringere Kursabfragen habe ich bei investing.com keine Bedenken - Sollten aber viele Werte durchsucht werden empfehle ich financialmodelingprep.com. Früher kostenlos; inzwischen wird ein Abo angeboten.