Statistik für Finanzmärkte
¶

Wintersemester 2025/2026
¶

Übung 06 & 07 - Visualisierung von Finanzmarktdaten
¶

Aufgabe 1 - Datenaufbereitung mit Pandas und Visualisierungen mit Seaborn¶

1.1) Datenimport und Datenaufbereitung:¶

Importieren Sie die Datensätze der EON-Schlusskurse und RWE-Schlusskurse -- laden Sie diese zunächst herunter und speichern diese in einen Data-Ordner Ihrer Python-Umgebung. Achten Sie darauf, dass die Spaltennamen sinnvoll sind und das Datum als solches initialisiert ist. Vereinen Sie die beiden Datensätze zu einem neuen Dataframe, der das Datum sowie beide Schlusskurse enthält. Erzeugen Sie außerdem jeweils eine neue Variable 'Year', 'Quartal' und 'Year_Quartal' aus dem Datum.

In [ ]:
import os

cwd = os.getcwd()
print(os.listdir("../Data"))          
print(cwd)
In [ ]:
 

Ihr fertiger Dataframe sollte wie folgt aussehen:

In [ ]:
print(df_all.info()) 

print(df_all.head())
print(df_all.tail())

1.2) Darstellung Aktienkursverlauf¶

Stellen Sie den Kursverlauf beider Aktien geeignet graphisch dar. Erzeugen Sie eine Graphik, in der der Verlauf beider Aktien gleichzeitig ersichtlich wird. Auftrag Wie können die Skalierungseffekte, durch die unterschiedlichen Wertebereiche beider Schlusskurse gelöst werden?

In [ ]:
 
In [ ]:
 

1.3) Darstellung Zusammenhang der Schlusskurse¶

Stellen Sie den Zusammenhang der Schlusskurse beider Energiezulieferer sowohl in einem Scatterplot als auch einen Regressionsplot (inkl. Regressionsgerade) mithilfe des seaborn-Packages dar. Wie erklären Sie sich die Muster?

In [ ]:
 

1.4) Geben Sie die Dichtefunktion der EON- und RWE-Schlusskurse. Nutzen Sie dazu erneut das seaborn-Package.¶

Aufgabe 2 - Visualisierung eines Aktienportfolios¶

In den letzten Jahren hat sich das Thema Künstliche Intelligenz ebenfalls als ein sehr lukrativer Investmentzweig auf den Finanzmärkten etabliert. Sie als Anleger:in haben diesen Trend nicht von anfang an mit verfolgt. Nun stellen Sie sich die Frage, wie hätte sich ein Aktienportfolio, bestehend aus den fünf führenden AI-Bluechips, entwickelt, wenn Sie von Jahresanfang 2023 bis zum 01.November 2025 aktiv in den KI-Trend investiert hätten.

Die fünf führenden AI-Bluechips nach Marktkapitalisierung sind NVIDIA, Apple, Microsoft, Alphabet (Google) und META (ehemals Facebook). Die Gewichtung der einzelnen Positionen ist Ihnen überlassen, jedoch gilt selbstverständlich die Bedingung, dass in jedes der aufgeführten Unternehmen investiert wird.

Bemerkung: Laden Sie sich aktuelle Kursdaten auf Yahoo-Finance mit Python herunter und speichern diese auf Ihrem Rechner ab im CSV-Format ab!

Für die Erstellung des Skriptes verwenden Sie folgende Packages:

  • yfinance
  • pandas
  • matplotlib.pyplot
  • matplotlib.ticker
  • seaborn
  • numpy

Zusatz probieren Sie die verschiedenen Optionen zur Erstellung von Graphiken, indem Sie verschiedene Pakete verwenden.

In [ ]:
#################################### Vorarbeit zum Speichern der einzelnen csv-Datein
import os
cwd = os.getcwd()
print(cwd)

#aktuelles working directory = Ausgangspunkt
print(cwd)

save_folder = "./../Data/uebung_07"  #bei relativen Pfad muss nur "Startverzeichnis" und alle Unterverzeichnisse identisch sein

isExist = os.path.exists(save_folder)

print(isExist)

if not isExist:
   # Create a new directory because it does not exist
   os.makedirs(save_folder)
   print("The new directory is created!")
   print("check: %s" % os.path.exists(save_folder))
else:
   print("Directory already exists!")

selbe Graphiken mit Matplotlib:¶

Portfoliozusammensetzung:¶

In [ ]:
#Portfolio
portfolio = close_df.copy()

S0 = portfolio.iloc[0]

print(S0)
print(weights_array)
stocks = weights_array / S0 * start_invest
print(stocks)

print("check start investment = %f" % S0.dot(stocks))


portfolio['Portfolio'] = portfolio.dot(stocks)

print(portfolio)
In [ ]:
portfolio_scaled = portfolio / portfolio.iloc[0] * 100
portfolio_scaled.plot()

Aufgabe 3 - Visualisierung eines Aktienportfolios via plotly¶

Visualisieren Sie den Kursverlauf eines der AI-Bluechips in Form eines Liniencharts. Zusatz Ergänzen Sie time buttons sowie eine Slidebar, welche den gesamten Datensatz, das letzte Jahr, die letzten sechs Monate, die letzten drei Monate und eine selbstgewählte Zeitspanne darstellen.

Aufgabe 4: Renditen und Returns¶

4.1) Betrachten Sie für die Schlusskurse aus Aufgabe 1 die täglichen und kumulierten Wertzuwächse. Stellen Sie diese graphisch dar und anylsieren diese analog zu Aufgabe 1. Was ergibt sich für den Zusammenhang der Renditen bzw. Returns? Berechnen Sie außerdem statistische Kennzahlen für die täglichen Zuwächse.¶

4.2) Berechnen Sie für Aufgabe 2 die Portfolio-Returns¶

1. Berechnung der täglichen und kumulierten Wertzuwächse¶

In [ ]:
 

Log-Returns: erzeugen Sie außerdem selbige Graphiken für die Log-Returns, siehe Skript

2. Zusammenhang:¶

3. Kerndichteschätzer:¶

Zusatz: Vorteile Arbeiten mit Tidy-Format und Unterschied long vs. wide¶

Tidy-Format im Skript

Im "klassichen" wide-Format steht jede Aktie in einer Spalte und die Berechnung neuer Variablen wie Renditen oder Returns wird für jede Variable einzeln durchgeführt. In vielen Anwendungen ist es aber deutlich bequemer den DataFrame in ein sogenanntes long-Format zu überführen, für den es nur noch eine Variable für die Kurse gibt, dafür aber eine neue Variable hinzukommt, die die Aktiengesellschaft angibt. Diese Idee entspricht dem Tidy-FFormat. Dadurch können nach Übergang neue Variablen wie Renditen oder Returns gleichzeitig für alle Aktienkurse berechnet werden und auch die Erstellung von Graphiken ist deutlich bequemer.

4. Stastische Kennzahlen:¶

5. Portfolioreturns & -renditen¶

In [ ]: