Saltar la navegación

Tratamiento de los modelos de cartera con hoja de cálculo

Los modelos de Markowitz y Sharpe son cuadráticos, y pueden resolverse empleando cualesquiera de los algoritmos disponibles a tal efecto, muchos de los cuales están inciorporados a software ad hoc; también con métodos matemáticos comunes, como el de multiplicadores de Lagrange.

También podemos emplear las herramientas de cálculo iterativo de Excel y Calc, que proporcionan soluciones muy precisas. En esta guía puede obtener directrices generales sobre el uso de la hoja de cálculo y, en particular, de sus herramientas de optimización. Aquí hallará un caso de aplicación y aclaraciones adicionales; también puede consultar el capítulo 7 de este libro.

El Solucionador de LibreOffice, llamado Solver en Excel, permite tratar problemas de optimización, con o sin restricciones. En el escenario más sencillo, puede ayudarnos a hallar el mínimo de una función cuadrática; en una situación más realista, podemos emplearlo para identificar la mezcla de productos y precios que nos permite maximizar el beneficio, o quizá el flujo neto de tesorería, respetando ciertas restricciones relativas por ejemplo a la capacidad productiva o el consumo de recursos. En el capítulo 10 formulamos dos modelos de optimización de cartera (los propuestos por Markowitz y Sharpe), que podemos resolver fácilmente con estas herramientas; también podemos usarlas para tratar problemas de selección de inversiones con presupuesto limitado como los que se describen en el capítulo 14 (Lorie y Savage, Weingartner, Baumol y Quandt, etc.).

Vamos a describir brevemente cómo podríamos emplear el Solucionador para optimizar una inversión en renta variable, empleando el modelo de Markowitz. El procedimiento nos permite tratar cualquier otro modelo, basta con diseñar las fórmulas correspondientes a los objetivos y restricciones de ese problema en particular.

Si emplea LibreOffice Calc, continúe adelante; si utiliza Excel, compruebe en primer lugar que el Solver está instalado y activo.

Optimizando una cartera de renta variable

Considere tres títulos (A, B, C) cuyos estadísticos descriptivos se detallan en la captura de pantalla mostrada más abajo.

Vamos a identificar la cartera óptima para un inversor que aspira a un rendimiento del 10% en el próximo período. Para ello formulamos el modelo propuesto por Markowitz:

y para resolverlo construimos las correspondientes expresiones en una hoja de cálculo. Dejaremos todas las fórmulas referenciadas a tres celdas (A10:C10) que por el momento dejamos vacías, ya que contienen los valores que la hoja de cálculo va a estimar por nosotros (es posible que alguna fórmula devuelve un mensaje de error, por el momento hacemos caso omiso de ello).

El siguiente paso consiste en construir el modelo de Solver. La ventana tiene tres paneles claramente diferenciados:

  • Objetivo, la celda donde reside la fórmula cuyo valor queremos optimizar. La hoja admite optimizaciones clásicas (maximización o minimización) y también metas. En este caso pretendemos minimizar el riesgo, medido por la varianza que hemos formulado en A12.
  • Celdas variables, que se corresponden con lo que técnicamente son los procesos del programa: las variables que determinan el objetivo alcanzado, y cuyos valores queremos establecer. En este caso son las participaciones de los títulos (A, B, C) que están en las tres celdas que reservamos inicialmente (A10:C10).
  • Restricciones, que son condiciones o límites que acotan los valores admisibles para las variables. Nuestro modelo tiene una meta de rendimiento (celda A14) y varias restricciones técnica s(con las que exigimos que los procesos sumen 1 y no tomen utilizaciones negativas). La primera de esas restricciones se formula en B15, la segunda se define activando la casilla "Convertir variables sin restricciones en no negativas".

Para introducir las restricciones hacemos clic en el botón Agregar, señalamos la celda en la que se ha formulado el término izquierdo de la restricción, y definimos el término independiente (o apuntamos a la celda en la que hemos escrito el valor de dicho término). Podemos introducir desigualdades o restricciones en términos de igualdad.

Ventana de trabajo del Solver de Excel
Ventana de trabajo del Solucionador de LibreOffice

Una vez hayamos completado el modelo, hacemos clic en el botón Resolver y prestamos atención a la siguiente ventana. Si todo ha ido bien la hoja de trabajo nos muestra la solución optimizada y ofrece la posibilidad de realizar análisis adicionales (por ejemplo para explorar la sensibilidad o los límites de permanencia de esa solución); también podemos generar un escenario, que es una "fotografía" de un caso o situación (en este caso, la composición y los estadísticos de la cartera con rendimiento esperado del 10%); si resolvemos recurrentemente el modelo para diferentes metas de rendimiento y guardamos los correspondientes escenarios, podemos generar una tabla resumen y a partir de ella trazar la frontera de carteras eficientes.

Es posible que la herramienta falle, por ejemplo porque sea imposible verificar simultáneamente las restricciones o porque el conjunto factible no esté acotado; en este caso tendremos que repensar el diseño del modelo, no sin antes comprobar las fórmulas.

La cartera óptima (formada al 40,65% por A, el 29,44% por B y el 29,91% restante por C) tiene un riesgo medido por la varianza igual a 0,605 (σ = 0,2460). Es el punto señalado en azul en el gráfico inferior, donde se muestran también varias decenas de carteras del conjunto factible (en gris) y los tres títulos (A, B, C). Observe que la cartera optimizada está situada en un extremo, sobre la frontera de carteras eficientes.

Controlando el proceso de optimización

Internamente, las herramientas de optimización emplean algoritmos que les permiten hallar soluciones óptimas sin necesidad de verificar todas y cada una de las soluciones del conjunto factible. Para ello identifican una solución inicial y a partir de ella realizan decenas o centenares de iteraciones, cada una de las cuales da lugar a una nueva solución más cercana a ese óptimo. Usualmente este procedimiento concluye sin incidencias, pero dependiendo del tipo y características del problema, es posible que no hallemos solución o que ésta no sea la esperada.

Tanto Excel como LibreOffice proporcionan algunas opciones para controlar la forma en que se realizan las iteraciones:

  • Elegir el algoritmo de búsqueda. Tratándose de un programa lineal (todas las restricciones y la función objetivo son funciones lineales de los procesos) podemos optar por el método Simplex, que es muy eficiente. En el resto de casos comunes, la opción por defecto en Excel es el algoritmo de gradiente reducido generalizado (GRG) que, recuerde, puede detenerse en soluciones que son solo localmente óptimas. La condición de parada es que durante varias iteraciones, la diferencia entre las soluciones consecutivas sea suficientemente pequeña, y "suficientemente" depende de los valores que se hayan especificado en el cuadro de Opciones. Evolutionary es un algoritmo genético adecuado cuando el modelo incluye funciones de "pasos", tales como saltos condicionales IF...THEN. Los algoritmos disponibles en LibreOffice son más sofisticados: DEPS es una combinación de dos algoritmos (Differential Evolution y Particle Swarm) adecuados para problemas de optimización numérica, y que operan con una lógica inspirada en los algoritmos genéticos; SCO (Social Cognitive Optimization) es también adecuado para problemas no lineales, y se inspira en la forma en que los individuos aprenden a partir del acervo cultural y de conocimiento del conjunto de la sociedad, y de procesos de prueba-error.
  • Controlar las iteraciones. Haciendo clic en el botón Opciones podemos ajustar varios parámetros, incluyendo el nivel de precisión al que se hace referencia en el apartado anterior. También que puede definir un tiempo máximo de trabajo y/o iteraciones, que limita el riesgo de que el sistema se cuelgue si la secuencia de soluciones entra en un bucle. También se puede especificar que el modelo se ejecute un número determinado de veces, con diferentes semillas.