IniziaInizia gratis

Previsione del prezzo di un asset

Ora puoi usare una rete neurale per prevedere il prezzo di un asset, un aspetto fondamentale dell’analisi finanziaria quantitativa e del risk management.

Userai i prezzi azionari 2005-2010 di Citibank, Goldman Sachs e J. P. Morgan per addestrare una rete che preveda il prezzo dell’azione di Morgan Stanley.

Creerai e addestrerai una rete neurale con uno strato di input, uno di output e due strati nascosti.

Poi verrà mostrato uno scatter plot per vedere quanto i prezzi previsti di Morgan Stanley si discostano dai loro valori reali nel periodo 2005-2010. (Ricorda che se le previsioni sono perfette, lo scatter plot risultante giacerà sulla linea a 45 gradi del grafico.)

Gli oggetti Sequential e Dense sono disponibili, così come il DataFrame prices con i prezzi delle investment bank dal 2005 al 2010.

Questo esercizio fa parte del corso

Gestione quantitativa del rischio in Python

Visualizza il corso

Istruzioni dell'esercizio

  • Imposta i dati di input come tutti i prices delle banche tranne Morgan Stanley, e i dati di output come solo i prices di Morgan Stanley.
  • Crea un model neurale Sequential con due livelli nascosti Dense: il primo con 16 neuroni (e tre neuroni di input), e il secondo con 8 neuroni.
  • Aggiungi un singolo livello di output Dense con 1 neurone per rappresentare il prezzo di Morgan Stanley.
  • Compila la rete neurale e addestrala effettuando il fit del model.

Esercizio pratico interattivo

Prova a risolvere questo esercizio completando il codice di esempio.

# 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()
Modifica ed esegui il codice