LoslegenKostenlos loslegen

Prognose von Asset-Preisen

Jetzt kannst du ein neuronales Netz verwenden, um einen Asset-Preis vorherzusagen – eine zentrale Aufgabe der quantitativen Finanzanalyse und des Risikomanagements.

Du nutzt die Aktienkurse von 2005–2010 von Citibank, Goldman Sachs und J. P. Morgan, um ein Netz zu trainieren, das den Kurs der Morgan-Stanley-Aktie vorhersagt.

Du erstellst und trainierst ein neuronales Netz mit einer Eingabeschicht, einer Ausgabeschicht und zwei verborgenen Schichten.

Anschließend wird ein Streudiagramm angezeigt, das zeigt, wie stark die vorhergesagten Morgan-Stanley-Preise von den tatsächlichen Werten im Zeitraum 2005–2010 abweichen. (Erinnere dich: Sind die Vorhersagen perfekt, liegt das Streudiagramm auf der 45-Grad-Linie.)

Die Objekte Sequential und Dense sind verfügbar sowie das DataFrame prices mit den Kursen der Investmentbanken von 2005–2010.

Diese Übung ist Teil des Kurses

Quantitative Risk Management in Python

Kurs anzeigen

Anleitung zur Übung

  • Setze die Eingabedaten auf alle Bank-prices außer Morgan Stanley und die Ausgabedaten auf nur die prices von Morgan Stanley.
  • Erstelle ein Sequential-neuronales Netz model mit zwei verborgenen Dense-Schichten: die erste mit 16 Neuronen (und drei Eingabeneuronen) und die zweite mit 8 Neuronen.
  • Füge eine einzelne dichte Ausgabeschicht mit 1 Neuron hinzu, die den Preis von Morgan Stanley repräsentiert.
  • Kompiliere das neuronale Netz und trainiere es, indem du das model fitst.

Interaktive Übung

Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.

# Set the input and output data
training_input = prices.____('Morgan Stanley', axis=1)
training_output = prices['Morgan Stanley']

# Create and train the neural network with two hidden layers
model = ____()
model.add(Dense(16, input_dim=____, activation='sigmoid'))
model.add(____(8, activation='relu'))
model.add(____(1))

model.____(loss='mean_squared_logarithmic_error', optimizer='rmsprop')
model.____(training_input, training_output, epochs=100)

# Scatter plot of the resulting model prediction
axis.scatter(training_output, model.predict(training_input)); plt.show()
Code bearbeiten und ausführen