Optimización de portafolio con cardinalidad usando algoritmos genéticos de población dual

Portfolio optimization with cardinality using dual population genetic algorithms

Sergio Iván Vanegas Gutiérrez*

* Maestría en Finanzas. Analista identificación y medición riesgo de mercado en Banco de Bogotá [sevanegas1@gmail.com]; [sergio.vanegas01@est.uexternado.edu.co]; [ORCID ID: 0000-0003-0106-9619].

Para citar este artículo:
Vanegas Gutiérrez, S. I. (2024). Optimización de portafolio con cardinalidad usando algoritmos genéticos de población dual. Odeon, 26, pp. 95-126. DOI: https://doi.org/10.18601/17941113.n26.05

Artículo recibido: 10 de diciembre de 2023 Aceptado: 28 de marzo de 2024


Resumen

En algunos estudios se ha encontrado que, muchas veces, los algoritmos genéticos con una sola población para la solución de la optimización de portafolio con cardinalidad convergen lentamente y no obtienen los mejores resultados. Una manera de mejorar el desempeño de estos algoritmos ha sido incorporar una población adicional que actúe como buscador de máximos y mínimos locales; de esta manera, se aumenta la probabilidad de encontrar el óptimo global de la solución en un menor tiempo.

Este documento busca identificar el rendimiento en muestra y fuera de muestra de un portafolio de activos de renta variable con restricciones de cardinalidad usando algoritmos genéticos con una sola población y con población doble, estableciendo como universo el índice Dow Jones. Los resultados muestran que el desempeño puede verse afectado por los parámetros seleccionados para realizar la optimización, por lo que es importante tener en cuenta el error en la estimación de la media y la varianza del portafolio.

Palabras clave: optimización de portafolio; cardinalidad; algoritmos genéticos; portafolio de Markowitz; algoritmos evolutivos; población múltiple.

Clasificación JEL: C63, D81, G11.


Abstract

Some studies have found that genetic algorithms using a single population for portfolio optimization with cardinality constraints often converge slowly and do not achieve the best results. One way to improve the performance of these algorithms has been to incorporate an additional population that acts as a seeker of local maxima and minima; this increases the likelihood of finding the global optimum of the solution in a shorter time.

This document seeks to identify the in-sample and out-of-sample performance of an equity portfolio with cardinality constraints using genetic algorithms with a single population and with a double population, using the Dow Jones index as the universe. The results show that performance can be affected by the parameters selected for optimization, so it is important to consider the error in estimating the mean and variance of the portfolio.

Key words: Portfolio optimization; cardinality; genetic algorithms; markowitz portfolio; evolutionary algorithms; multiple population.

JEL classification: C63, D81, G11.


Introducción

Muchas investigaciones han hecho modificaciones del modelo de Markowitz (1952), incorporando restricciones prácticas a las que se enfrentan los gestores de portafolio. El problema de optimización de portafolio se vuelve complejo al solucionarlo con enfoques numéricos tradicionales cuando se incluyen restricciones que modelan el sentimiento del inversor y las fricciones que pueden ocurrir en el mercado. En la práctica, los gestores de portafolio tienen que operar bajo restricciones estrictas; una de ellas es la restricción de cardinalidad que, de acuerdo con Jimbo et al. (2017), ocurre cuando el inversionista o gestor solo puede invertir en K activos de un universo de N activos, para un valor K preespecificado. Como lo mencionan Ruiz y Suárez (2015), una de las razones principales para asumir una restricción de cardinalidad es que el limitar el número de activos en que el portafolio invierte hace la gestión del portafolio más simple. Adicionalmente, según Jalota y Thakur (2018), las restricciones de cardinalidad se usan para reducir el costo de transacción evitando un monto más alto al hacer una pequeña inversión en un número mayor de activos. Así mismo, de acuerdo con Maringer (2005) una característica importante en la selección de portafolio es que no es necesaria una selección amplia de activos para diversificar el riesgo, la diversificación de riesgo se puede lograr con un conjunto pequeño y con buenas selecciones de activos.

El inconveniente de incorporar las restricciones de cardinalidad en el modelo de Markowitz (1952) es que se vuelve complejo, ya que cambia a un problema de programación cuadrática entera mixta haciéndolo difícil de resolver por métodos numéricos tradicionales; por tal razón es necesario un método heurístico como el enfoque de los algoritmos genéticos.

Los motivos de usar algoritmos genéticos van más allá de la programación cuadrática entera mixta, según Gen y Cheng (2000) una propiedad importante es que los algoritmos evolucionarios son útiles cuando la función objetivo tiene varios óptimos locales. La característica principal de los algoritmos genéticos es la búsqueda global y multidireccional, en donde una población de soluciones potenciales se mantiene de generación en generación. Además, en la investigación de Sinha et al. (2015) se menciona que el enfoque población a población es benéfico en la exploración de soluciones para el portafolio óptimo, esta particularidad es fundamental ya que permite al algoritmo encontrar una solución global sin las restricciones de un mínimo retorno aceptable, proveyendo la mejor y más aceptable solución.

Sin embargo, estudios como el de Sabar y Song (2014) han encontrado que los algoritmos genéticos que utilizan una sola población para la solución de un portafolio con cardinalidad generalmente convergen lentamente, y esto puede evitar que obtengan buenos resultados. La solución para lo anterior ha sido incluir una población adicional con el fin de aumentar el espacio de búsqueda y encontrar el óptimo global de la solución en un menor tiempo. En la investigación de Sabar y Song (2014), los algoritmos genéticos de una sola población y los algoritmos genéticos con población dual han sido comparados en términos de eficiencia y resultados computacionales; pese lo anterior, estas metodologías de algoritmos genéticos con una sola población y población dual para portafolios con cardinalidad no han sido utilizadas en una instancia para la medición del rendimiento del portafolio.

Por esta razón, el propósito de esta investigación es estudiar el rendimiento en muestra y fuera de muestra de un portafolio de activos de renta variable con restricciones de cardinalidad usando algoritmos genéticos con población simple y población dual, y determinar cuál metodología ofrece mejores resultados. Para esto, se tendrán en cuenta las principales acciones que cotizan en el mercado de Estados Unidos, estableciendo como universo de acciones el índice Dow Jones, y se utilizarán los indicadores de Sharpe, Treynor, Sortino, Alfa de Jensen e Information Ratio para comparar el rendimiento del portafolio seleccionado.

1. Algoritmos genéticos

Los algoritmos genéticos son una optimización numérica inspirada en la selección natural y la genética natural, este método puede utilizarse en un rango amplio de problemas (Coley, 1999, p. 1). Un algoritmo genético permite que una población compuesta de muchos individuos evolucione bajo reglas específicas de selección a un estado que maximice o minimice la función objetivo (Haupt y Haupt, 2004, p. 22).

1.1. Operadores

Los principales operadores genéticos son tres: selección, intercambio genético (crossover) y mutación.

1.1.1. Selección

Este operador selecciona cromosomas en la población para la reproducción. Entre más adecuado sea el cromosoma más veces será su probabilidad de ser seleccionado para reproducirse.

1.1.2. Crossover

Este operador selecciona aleatoriamente una ubicación e intercambia la secuencia anterior y posterior de esa ubicación entre dos cromosomas para crear dos crías.

1.1.2.1. Crossover de límite promedio

El operador de crossover propuesto por Ling y Leung (2007) está dirigido a codificaciones de números reales. A este operador se le denomina crossover de límite promedio. Inicialmente, cuatro cromosomas son generados de dos padres seleccionados; después, las mejores dos crías en términos de valor de ajuste se seleccionarán para reemplazar a sus padres.

El operador propuesto por Ling y Leung (2007) utiliza dos operaciones. Cruce promedio y cruce con límite.

1.1.2.1.1. Crossover promedio.

El cruce promedio se define de la siguiente manera:

1.1. 2.1. 2. Crossover con límite.

El cruce con límite se define:

Donde:

0Sck = [OS1k, 0S2k, … ,0Sno-vars k],k = 1,2,3,4

Pi = [Pi1,Pi2,…,Pij,…,Pinovars],i = 1,2; j= 1,2,…,no - vars

parajmin ≤ pij ≤ parajmax,

Pmax = [para1max,para2max,…,parano-varsmax]

Pmin = [para1min,para2min,…,parano-varsmin]

Los cromosomas P1 y P2 son los padres seleccionados, las variables Wa y Wb son pesos definidos por el usuario, Max (P1, P2) denota el vector con cada elemento obtenido tomando el máximo entre el padre 1 (P1) y el padre 2 (P2), igualmente pasa con el vector Min (P1, P2) el cual utiliza el mínimo. Osc representa las crías (Ling y Leung, 2007, p. 9).

1.1.3. Mutación

Este operador aleatoriamente cambia algunos caracteres en un cromosoma. La mutación puede ocurrir en cada posición de la cadena de caracteres con alguna probabilidad, usualmente muy pequeña (Mitchell, 1999, p. 8).

1.2. Estructura del algoritmo genético simple

Según Mitchell (1999), un algoritmo genético simple funciona de la siguiente manera.

  1. Se comienza con una población aleatoriamente generada de n l-bits cromosomas (soluciones candidatas).
  2. Se calcula la adecuación en la función objetivo de cada cromosoma en la población.
  3. Repetir los siguientes pasos hasta que n crías hayan sido creadas.
    1. Seleccionar un par de cromosomas progenitores de la población actual, la probabilidad de selección es una función creciente de adecuación. La selección se realiza por sustitución, es decir, el mismo cromosoma puede ser seleccionado más de una vez para convertirse en progenitor.
    2. Con la probabilidad de crossover ocurre el intercambio de genes de par en un punto seleccionado aleatoriamente con probabilidad uniforme para formar dos crías. Si no ocurre el crossover, se forman dos crías exactamente iguales a los progenitores.
    3. Ocurre la mutación con probabilidad de mutación, y se colocan los cromosomas resultantes en la nueva población.
  4. Se reemplaza la actual población con la población nueva.
  5. Se va al paso 2.

Cada iteración es una generación y el conjunto entero de generaciones es conocido como un recorrido (figura 1).

1.3. Estructura del algoritmo genético con población dual

El modelo propuesto por Sabar y Song (2014) estimula el proceso de convergencia de los algoritmos genéticos y utiliza dos poblaciones. La primera población se encarga de la exploración del espacio de búsqueda, mientras que la segunda actúa como un operador de búsqueda local para mejorar el proceso de convergencia. Las dos poblaciones intercambian individuos periódicamente para compartir soluciones prometedoras (figura 2).

POP1 es la población 1 y POP2 es la población 2.

1.4. Manejo de condiciones

De acuerdo con Michalewicz (1996), hay diferentes métodos de manejo de restricciones usados en los algoritmos genéticos. Este autor clasificó la mayoría de los métodos de manejos de restricciones evolucionarios en cuatro categorías.

  1. Métodos basados en preservar la factibilidad de las soluciones.
  2. Métodos basados en funciones de penalidad.
  3. Métodos que hacen distinción entre soluciones factibles y no factibles.
  4. Métodos híbridos.

Para esta investigación se utilizó el método propuesto por Deb (2000), que se encuentra clasificado como método basado en funciones de penalidad y métodos que hacen distinción entres soluciones factibles y no factibles.

1.4.1. Método de Deb

El método de Deb (2000) añade un término de penalidad a la función objetivo, sin embargo, el termino de penalidad no se define como en los métodos convencionales. Este método usa el operador de método de selección por torneo, en donde dos soluciones se comparan al mismo tiempo y siguen los siguientes criterios:

2. Asignación de portafolio

Markowitz (1952) afirma que, para cualquier nivel dado de retorno esperado, un inversor racional seleccionaría el portafolio con varianza mínima entre un conjunto de todos los portafolios posibles.

El conjunto de todos los posibles portafolios que pueden ser construidos se llama el conjunto factible, los portafolios de mínima varianza se llaman portafolios de media varianza eficientes y el conjunto de todos los portafolios de media varianza eficientes, para diferentes niveles deseados de retorno esperado, se le conoce como la frontera eficiente (Fabozzi et al., 2007, p. 22).

El modelo de Markowitz (1952) necesita los parámetros de los retornos esperados U y la matriz de covarianza E. De acuerdo con Fabozzi et al. (2007, p. 25), Al seleccionar las ponderaciones del portafolio un inversor selecciona en los pares media-varianza disponibles. Para calcular las ponderaciones para un par posible, se debe establecer primero un retorno esperado objetivo, Uo. (p. 25).

De acuerdo con Markowitz (1952), el problema del inversor es un problema de minimización con restricciones, en donde se buscará minimizar la varianza del portafolio.

La anterior formulación se refiere al problema de optimización clásica de media-varianza como una formulación de minimización de riesgo.

Otro tipo de formulación busca seleccionar un cierto nivel objetivo de riesgo para el portafolio, Sigma0, y luego maximizar el retorno esperado del portafolio.

Esta formulación se refiere como la maximización del retorno esperado del problema de optimización media-varianza.

2.1. Restricciones de cardinalidad

De acuerdo con Maringer (2005), las restricciones de cardinalidad son restricciones prácticas, en donde el inversor quiere mantener K activos diferentes en el portafolio de un universo de activos N.

Para utilizar las restricciones de cardinalidad, Chang et al. (2000) dan a conocer dos limitaciones en el modelo de Markowitz (1952): el supuesto de normalidad multivariada no es sostenible, ya que la distribución de los retornos de un activo individual tiende a exhibir alta probabilidad de los valores extremos, esto significa que se deben considerar momentos más altos. La otra limitación recae en la difícil aplicación de restricciones de enteros o restricciones de límites en la proporción del portafolio mantenido en un determinado activo.

El problema puede verse desde dos enfoques: el primero es utilizar algoritmos disponibles para resolver el problema de programación cuadrática entera mixta o reemplazar la medida de riesgo cuadrática de Markowitz (1952) por una medida que tenga una función lineal.

Para solucionar la limitación de las restricciones, Chang et al. (2000) utilizan métodos heurísticos y resuelve el problema utilizando la siguiente formulación:

Con esta formulación no es necesario establecer un mínimo retorno esperado, para ello se utiliza el parámetro lambda, donde lambda es el grado de aversión al riesgo entre 0 y 1, siendo 1 el grado más alto de aversión y 0 el menor grado de aversión. En esta especificación están incorporadas las restricciones de cardinalidad, presupuesto y cantidad en las ponderaciones.

3. Implementación de algoritmos genéticos en la optimización de portafolio

A continuación, se muestran las tablas resumen de los parámetros (tablas 1 y 2).

3.1. Datos económicos

Para fines comparativos, el retorno mínimo esperado utilizado para contrastar el rendimiento en muestra fue del 1 %.

3.2. Parámetros generales

La función objetivo por optimizar es la propuesta por Chang et al. (2000). El parámetro que se usó para realizar las optimizaciones fue del 0,5 con el fin de maximizar los rendimientos y minimizar la varianza.

Inicialmente se calculan los rendimientos logarítmicos de las acciones, a partir de esta información se obtienen los retornos esperados, las volatilidades y las matrices de varianza y covarianza. Para cada uno de estos parámetros se realiza la respectiva optimización de portafolio asumiendo restricciones de cardinalidad. Los pasos que se siguen en la metodología de Demiguel y Garlappi (2008) son los siguientes:

  1. Se comienza en el periodo de tiempo t-126, en donde se estiman los parámetros requeridos para la optimización sobre la longitud seleccionada (120).
  2. Con estos parámetros se resuelve el problema de optimización de portafolio para las metodologías de una sola población y población dual.
  3. Se computa el resultado en el periodo t + 1 con la optimización obtenida, es decir, se obtiene el retorno del portafolio con las rentabilidades realizadas en el siguiente periodo, en este caso se utilizan las rentabilidades de las acciones del mes 121 y hallamos el rendimiento del portafolio con la optimización hecha para la ventana M = 120, de esta manera obtenemos el retorno del portafolio fuera de muestra.

La muestra rodante consiste en añadir los retornos del mes siguiente y quitar los retornos iniciales, esto mantiene la longitud de estimación fija. Para la segunda iteración, la ventana de estimación iría desde el mes 7 hasta el mes 126 y el retorno fuera de muestra del portafolio seria para el mes 127. Este proceso se repite hasta llegar al final del conjunto de datos.

Una vez obtenidos los rendimientos de los portafolios, se calculan los indicadores de desempeño como Sharpe, Treynor, Alfa de Jensen, Information Ratio y Sortino. El cálculo de betas se realizó teniendo como referencia el índice Russell 3000. El índice de comparación para el Alfa de Jensen e Information Ratio fue el Dow Jones Industrial.

3.3. Parámetros generales algoritmos genéticos

3.4. Parámetros de algoritmos genéticos (simple 1 y dual 1)

La programación de los algoritmos genéticos se realizó en Python y se utilizaron las librerías: pytickersymbols, y finance, Pandas y Numpy.

3.4.1. Para el algoritmo genético con población simple 1

3.4.2. Para el algoritmo genético con población dual 1

Las configuraciones simple 2, dual 2, simple 3 y dual 3 se encuentran en los anexos.

4. Resultados

4.1. Rendimiento índice Dow Jones (fuera de muestra)

En la tabla 6 se muestra que el resultado promedio para los indicadores Sharpe, Treynor y Sortino fue negativo para el periodo fuera de muestra seleccionado.

Dado lo anterior, los resultados fuera de muestra que se presentarán con los algoritmos genéticos van a estar relacionados con el desempeño que tuvo el Dow Jones durante el periodo de estudio escogido.

4.2. Resultados fuera de muestra

4.2.1. Cardinalidad de 5

4.2.2. Cardinalidad de 10

4.2.3. Cardinalidad de 15

El desempeño fuera de muestra de ambos algoritmos genéticos fue deficiente. Bajo diferentes niveles de cardinalidad, los retornos de las estrategias escogidas por los algoritmos fueron negativos, por lo que no superaban el rendimiento del mercado de los valores del Tesoro de Estados Unidos, con vencimiento constante de un mes. Esto en gran parte es resultado de utilizar los parámetros media y varianza como estimadores del mercado (Demiguel y Garlappi, 2008).

De igual forma, el resultado presentado por los algoritmos genéticos está altamente relacionado con el desempeño que tuvo el Dow Jones durante dicho periodo, como se mostró en el anexo.

Adicionalmente, se debe tener en cuenta que posiblemente el desempeño fuera de muestra de estos algoritmos puede mejorar sí se toma una mayor cantidad de datos, con el fin de que se tenga una mejor estimación de los parámetros del mercado.

4.3. Resultados en muestra por especificación

4.3.1. Cardinalidad de 5

Para una cardinalidad de 5, la configuración que tuvo un mejor resultado fue la número 3 (ver anexos).

4.3.2. Cardinalidad de 10

Para una cardinalidad de 10, la configuración que tuvo un mejor resultado fue la número 2 (ver anexos).

4.3.3. Cardinalidad de 15

Para una cardinalidad de 15, la configuración que tuvo un mejor resultado fue la número 3, seguida de la número 1.

4.3.4. Mejores puntajes para todas las cardinalidades y especificaciones

Para todas las cardinalidades, la mayoría de los mejores resultados los tiene la cardinalidad de 5, a excepción del indicador Information ratio. Además, el algoritmo genético con población dual supera al simple en todos los indicadores a excepción del indicador de Sharpe.

4.4. Cardinalidad

4.4.1. Población simple

En el algoritmo con población simple una mayor cardinalidad resultó en un menor retorno en el portafolio. La cardinalidad que obtuvo mejores resultados fue en un nivel de 10, la segunda cardinalidad que obtuvo mejores retornos fue de 5.

4.4.2. Población dual

En el algoritmo con población dual, una menor cardinalidad resultó en un mejor desempeño de portafolio para la mayoría de los indicadores especialmente en Sharpe, Ratio y Sortino.

5. Conclusiones y extensión

Como extensión para esta investigación se propone comparar el esquema de población múltiple propuesto por Sabar et al. (2018) frente al esquema de población dual y simple. De igual forma, se puede plantear la utilización de métodos más robustos para la estimación de parámetros y usarlos con los algoritmos genéticos para la optimización del portafolio, y comparar su desempeño fuera de muestra, esto con el fin de obtener mejores resultados. Los métodos que se pueden usar son los expuestos por Demiguel y Garlappi (2008).


Referencias

Amenc, N. y Le sourd, V. (2003). Portfolio Theory and Performance Analysis. John Wiley & Sons Ltd.

Arnone, S., Loraschi, A. y Tettamanzi, A. (1993). A genectic approach to portfolio selection. In Neural Network World (pp. 597-604). https://doi.org/10.1007/978-3-7091-7535-4_100

Best, M. J. (2017). Quadratic programming with computer programs. In Quadratic Programming with Computer Programs. https://doi.org/10.1201/9781315120881

Chang, T. J., Meade, N., Beasley, J. E. y Sharaiha, Y. M. (2000). Heuristics for cardinality constrained portfolio optimisation. Computers and Operations Research, 27(13), 1271-1302. https://doi.org/10.1016/S0305-0548(99)00074-X

Christopherson, J. A., Cariño, D. Runge. y Ferson, W. E. (2009). Portfolio performance measurement and benchmarking. McGraw-Hill.

Coley, D. (1999). An introduction to genetic algorithms for scientists and engineers. World Scientific.

Deb, K. (2000). An efficient constraint handling method for genetic algorithms. Computer Methods in Applied Mechanics and Engineering, 186(2-4), 311-338. https://doi.org/10.1016/S0045-7825(99)00389-8

DeMiguel, V., Garlappi, L. y Uppal, R. (2008). The Society for Financial Studies Optimal versus Naive Diversification: How Inefficient is the 1 / N Portfolio Strategy? Review of Financial Studies, 22(5), 1915-1953. https://doi.org/10.1093/rfs/hhm075

Fabozzi, F. J., Kolm, P. N., Pachamanova, D. A. y Focardi, S. M. (2007). Robust portfolio optimization. Journal of Portfolio Management, 33(Issue 3). https://doi.org/10.3905/jpm.2007.684751

Fama, E. F. (1965). The behavior of stock-market prices. The Journal of Business, 38(1), 34-105.

Febrianti, W., Sidarto, K. A. y Sumarti, N. (2022). Solving constrained mean-variance portfolio optimization problems using spiral optimization algorithm. International Journal of Financial Studies, 11(1), 1. https://doi.org/10.3390/ijfs11010001

Francis, J. y Kim, D. (2013). Modern portfolio theory foundations, analysis and new developments. In Wiley Finance Series (Vol. 4, Issue 1). John Wiley & Sons Ltd.

FRED Economic Data (2023). Market Yield on U.S. Treasury Securities at 1-Month Constant Maturity, Quoted on an Investment Basis. Federal Reserve Economic Data. https://fred.stlouisfed.org/series/DGS1MO

Gen, M. y Cheng, R. (2000). Genetic algorithms and engineering optimization. In Wiley-interscience. John Wiley & Sons Ltd.

Guijarro, F. (2018). A similarity measure for the cardinality constrained frontier in the mean-variance optimization model. Journal of the Operational Research Society, 69(6), 928-945. https://doi.org/10.1057/s41274-017-0276-6

Guijarro, F. y Tsinaslanidis, P. E. (2021). A surrogate similarity measure for the mean-variance frontier optimisation problem under bound and cardinality constraints. Journal of the Operational Research Society, 72(3), 564-579. https://doi.org/10.1080/01605682.2019.1657367

Haupt, R. L. y Haupt, S. E. (2004). Practical genetic algorithms. In Practical Genetic Algorithms. https://doi.org/10.1002/0471671746

Holland, J. H. (1992). Adaptation in Natural and Artificial Systems. An Introductory Analysis with Applications to Biology, Control, and Artificial Intelligence. MIT Press.

Jalota, H. y Thakur, M. (2018). Genetic algorithm designed for solving portfolio optimization problems subjected to cardinality constraint. International Journal of System Assurance Engineering and Management, 9(1), 294-305. https://doi.org/10.1007/s13198-017-0574-z

Jimbo, H. C., Ngongo, I. S., Andjiga, N. G., Suzuki, T. y Onana, C. A. (2017). Portfolio optimization under cardinality constraints: A comparative study. Open Journal of Statistics, 07(04), 731-742. https://doi.org/10.4236/ojs.2017.74051

Kalayci, C. B., Polat, O. y Akbay, M. A. (2020). An efficient hybrid metaheuristic algorithm for cardinality constrained portfolio optimization. Swarm and Evolutionary Computation, 54, 100662. https://doi.org/10.1016/j.swevo.2020.100662

Kolusheva, D. (2008). Out of Sample Performance of Asset Allocation Strategies. SSRN Electronic Journal.

Konstantinou, C., Tzanetos, A. y Dounias, G. (2022). Cardinality constrained portfolio optimization with a hybrid scheme combining a Genetic Algorithm and Sonar Inspired Optimization. Operational Research, 22(3), 2465-2487. https://doi.org/10.1007/s12351-020-00614-1

Kramer, O. (2017). Studies in Computational Intelligence 679 Genetic Algorithm Essentials. Springer-Berlin.

Leyffer, S. y Lee, J. (2012). Mixed Integer Nonlinear Programming, MINLP. In SpringerReference. https://doi.org/10.1007/springerreference_72472

Ling, S. H. y Leung, F. H. F. (2007). An improved genetic algorithm with average-bound crossover and wavelet mutation operations. Soft Computing, 11(1), 7-31. https://doi.org/10.1007/s00500-006-0049-7

Loraschi, A., Tomassini, M., Tettamanzi, A. y Verda, P. (1995). Distributed genetic algorithms with an application to portfolio selection problems. Artificial Neural Nets and Genetic Algorithms (Conference paper), 384-387. https://doi.org/10.1007/978-3-7091-7535-4_100

Maringer, D. G. (2005). Portfolio management with heuristic optimization. In Springer (Ed.), Portfolio Management with Heuristic Optimization (Vol. 00008). Springer. https://doi.org/10.1007/b136219

Markowitz, H. (1952). Portfolio Selection. Journal of Finance, 7(1), 77-91._https://doi.org/10.2307/2975974

Michalewicz, Z. (1996). Evolutionary algorithms for constrained parameter optimization problems. Evolutionary Computation, 4(1), 1-32. https://doi.org/10.1162/evco.1996.4.1.1

Mitchell, M. (1999). An Introduction to Genetic Algorithms. The MIT Press.

Moral-Escudero, R., Ruiz-Torrubiano, R. y Suárez, A. (2006). Selection of optimal investment portfolios with cardinality constraints. 2006 IEEE Congress on Evolutionary Computation, CEC 2006, 2382-2388. https://doi.org/10.1109/cec.2006.1688603

Ruiz-Torrubiano, R. y Suárez, A. (2010). Hybrid approaches and dimensionality reduction for portfolio selection with cardinality constraints. IEEE Computational Intelligence Magazine, 5(2), 92-107. https://doi.org/10.1109/MCI.2010.936308

Ruiz-Torrubiano, R. y Suárez, A. (2015). A memetic algorithm for cardinality-constrained portfolio optimization with transaction costs. Applied Soft Computing Journal, 36, 125-142. https://doi.org/10.1016/j.asoc.2015.06.053

Sabar, N. R. y Song, A. (2014). Dual population genetic algorithm for the cardinality constrained portfolio selection problem. In G. Dick, W. N. Browne, P. Whigham, M. Zhang, L. T. Bui, H. Ishibuchi, … K. Tang (Eds.), Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics) (Vol. 8886, pp. 703-712). Springer International Publishing. https://doi.org/10.1007/978-3-319-13563-2_59

Sabar, N. R., Turky, A., Leenders, M. y Song, A. (2018). Multi-population genetic algorithm for cardinality constrained portfolio selection problems. Lecture Notes in Computer Science (Including Subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics), 10860 LNCS, 129-140. https://doi.org/10.1007/978-3-319-93698-7_10

Sadjadi, S. J., Gharakhani, M. y Safari, E. (2012). Robust optimization framework for cardinality constrained portfolio problem. Applied Soft Computing Journal, 12(1), 91-99. https://doi.org/10.1016/j.asoc.2011.09.006

Sinha, P., Chandwani, A. y Sinha, T. (2015). Algorithm of construction of optimum portfolio of stocks using genetic algorithm. International Journal of System Assurance Engineering and Management, 6(4), 447-465. https://doi.org/10.1007/s13198-014-0293-7

Sivanandam, S. N. y Deepa, S. N. (2008a). Genetic Algorithms BT-Introduction to Genetic Algorithms (S. N. Sivanandam & S. N. Deepa, Eds, pp. 15-37). Springer Berlin Heidelberg. https://doi.org/10.1007/978-3-540-73190-0_2

Sivanandam, S. N. y Deepa, S. N. (2008b). Introduction to Genetic Algorithms. Springer. https://doi.org/10.1007/978-3-540-73190-0

Soleimani, H., Golmakani, H. R. y Salimi, M. H. (2009). Markowitz-based portfolio selection with minimum transaction lots, cardinality constraints and regarding sector capitalization using genetic algorithm. Expert Systems with Applications, 36(3 part 1), 5058-5063. https://doi.org/10.1016/j.eswa.2008.06.007

Woodside-Oriakhi, M., Lucas, C. y Beasley, J. E. (2011). Heuristic algorithms for the cardinality constrained efficient frontier. European Journal of Operational Research, 213(3), 538-550. https://doi.org/10.1016/j.ejor.2011.03.030

Yaman, I. y Erbay Dalkiliç, T. (2021). A hybrid approach to cardinality constraint portfolio selection problem based on nonlinear neural network and genetic algorithm. Expert Systems with Applications, 169(December 2020), 114517. https://doi.org/10.1016/j.eswa.2020.114517

Anexos

Anexo A. Configuración algoritmos genéticos (simple 2 y dual 2)

Anexo B. Configuración algoritmos genéticos (simple 3 y dual 3)