Calculando os retornos de um portfólio
Para construir e fazer o backtest de um portfólio, você precisa se sentir à vontade trabalhando com os retornos de vários ativos em um único objeto.
Neste exercício, você usará um DataFrame do pandas, já armazenado na variável StockReturns, para manter os retornos de vários ativos e calcular os retornos de um portfólio modelo.
O portfólio modelo é construído com pesos predefinidos para algumas das maiores empresas do mundo pouco antes de janeiro de 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% |
| FB | 14% | |
| AT&T | T | 16% |
Observe que, na maioria dos casos, os pesos do portfólio devem somar 100%
Este exercício faz parte do curso
Introdução ao Gerenciamento de Risco de Portfólio em Python
Instruções do exercício
- Conclua a definição do array do numpy
portfolio_weightscom os valores de acordo com a tabela acima. - Use o método
.mul()para multiplicarportfolio_weightsao longo das linhas deStockReturnse obter os retornos ponderados das ações. - Em seguida, use o método
.sum()ao longo das linhas no objetoWeightedReturnspara calcular os retornos do portfólio. - Por fim, confira o gráfico dos retornos acumulados ao longo do tempo.
Exercício interativo prático
Experimente este exercício completando este código de exemplo.
# 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()