Calcular la rentabilidad de una cartera
Para construir y hacer backtesting de una cartera, tienes que sentirte cómodo trabajando con la rentabilidad de varios activos en un único objeto.
En este ejercicio, usarás un DataFrame de pandas, ya almacenado en la variable StockReturns, para guardar las rentabilidades de varios activos y calcular la rentabilidad de una cartera modelo.
La cartera modelo se construye con pesos predefinidos para algunas de las empresas más grandes del mundo justo antes de enero 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% |
Ten en cuenta que, en la mayoría de los casos, los pesos de la cartera deben sumar el 100%
Este ejercicio forma parte del curso
Introducción a la gestión del riesgo de cartera en Python
Instrucciones del ejercicio
- Termina de definir el array de numpy
portfolio_weightscon los valores de la tabla anterior. - Usa el método
.mul()para multiplicarportfolio_weightsa lo largo de las filas deStockReturnsy obtener las rentabilidades ponderadas de las acciones. - Después, usa el método
.sum()a lo largo de las filas sobre el objetoWeightedReturnspara calcular la rentabilidad de la cartera. - Por último, revisa la gráfica de rentabilidad acumulada en el tiempo.
Ejercicio interactivo práctico
Prueba este ejercicio y completa el código de muestra.
# 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()