IniziaInizia gratis

Calcolare i rendimenti di portafoglio

Per costruire e fare il backtest di un portafoglio, devi sentirti a tuo agio nel lavorare con i rendimenti di più asset in un unico oggetto.

In questo esercizio userai un oggetto DataFrame di pandas, già salvato nella variabile StockReturns, per contenere i rendimenti di più asset e calcolare i rendimenti di un portafoglio modello.

Il portafoglio modello è costruito con pesi predefiniti per alcune delle aziende più grandi al mondo appena prima di gennaio 2017:

Company Name Ticker Portfolio Weight
Apple AAPL 12%
Microsoft MSFT 15%
Exxon Mobil XOM 8%
Johnson & Johnson JNJ 5%
JP Morgan JPM 9%
Amazon AMZN 10%
General Electric GE 11%
Facebook FB 14%
AT&T T 16%

Nota che, nella maggior parte dei casi, la somma dei pesi di portafoglio dovrebbe essere pari al 100%

Questo esercizio fa parte del corso

Introduzione alla gestione del rischio di portafoglio in Python

Visualizza il corso

Istruzioni dell'esercizio

  • Completa la definizione dell'array NumPy portfolio_weights con i valori indicati nella tabella sopra.
  • Usa il metodo .mul() per moltiplicare portfolio_weights lungo le righe di StockReturns e ottenere i rendimenti azionari ponderati.
  • Poi usa il metodo .sum() lungo le righe sull'oggetto WeightedReturns per calcolare i rendimenti del portafoglio.
  • Infine, esamina il grafico dei rendimenti cumulati nel tempo.

Esercizio pratico interattivo

Prova a risolvere questo esercizio completando il codice di esempio.

# Finish defining the portfolio weights as a numpy array
portfolio_weights = np.array([0.12, 0.15, 0.08, 0.05, 0.09, 0.10, 0.11, ____, ____])

# Calculate the weighted stock returns
WeightedReturns = StockReturns.____(portfolio_weights, axis=____)

# Calculate the portfolio returns
StockReturns['Portfolio'] = WeightedReturns.____(axis=____)

# Plot the cumulative portfolio returns over time
CumulativeReturns = ((1+StockReturns["Portfolio"]).cumprod()-1)
CumulativeReturns.plot()
plt.show()
Modifica ed esegui il codice