Un proceso muy común en la elección de un portafolio óptimo de inversión es el cálculo de las rentabilidades de un conjunto de activos. Es un proceso recurrente, por lo cual es útil automatizarlo con una macro.
En el ejemplo (calculo_rentabilidades) se tiene una base de datos con las cotizaciones de 17 activos distintos en un período de 7 años. Se han creado dos macros
- La primera, define el número de observaciones totales y el número de activos, para lo cual se utiliza un loop que empieza a contar desde la primera celda de cada lista
- La segunda macro es la que calcula los rendimientos. En primer lugar, lee los valores obtenidos en la primera macro. Luego, se crea un InputBox que permite escoger el número de días del horizonte de inversión. Después, se elimina la hoja Rendimientos , se vuelve a colocar y se activa. En la primera celda de esta hoja se coloca el valor del horizonte de inversión leído en el InputBox y se prepara el formato de la hoja para que reciba los datos (se pone nombre a las columnas). Para empezar el cálculo, se leen las fechas de la Hoja cotizaciones y se les resta el horizonte (para obtener las fechas de referencia), también con un loop para que el cálculo se realize a todas las fechas disponibles en la base inicial. Finalmente, se establecen las variables para el cálculo (x1, x2 y x3) y se realiza la operación (que consiste en dividir la cotización del activo hoy, entre su cotización el día siguiente y elevar todo al horizonte de inversión establecido)
Adicionalmente, se creó un MessageBox con un mensaje para cuando finaliza el cálculo y se colocó un botón que ejecuta la segunda macro. El cálculo demora un poco por la utilización de más de un loop, y cuanto mayor es el horizonte de inversión, mayor el tiempo requerido.
Elaborado por: Andrea Padilla
29/05/2015 a las 12:08 am
Una excelente de manera de facilitar las cosas en la hora de calcular activos para una inversión de variables. Como futuro financista, este proceso me va a servir bastante para calcular y determinar un mejor portafolio para invertir.