Volver a publicaciones

Optimizacion financiera

ParetoInvest: una herramienta para optimizar carteras con datos financieros reales

Como integrar datos, algoritmos multiobjetivo y visualizacion para explorar carteras eficientes sin programar todo el proceso desde cero.

Interfaz principal de ParetoInvest para configurar datos financieros, algoritmos y parametros de optimizacion

Aplicar optimizacion avanzada a una cartera no consiste solo en ejecutar una formula. Antes hay que obtener datos, limpiarlos, calcular retornos y covarianzas, preparar archivos, configurar algoritmos y entender los resultados.

ParetoInvest reune ese recorrido en una aplicacion de escritorio: descarga o reutiliza datos, prepara el problema financiero, ejecuta algoritmos multiobjetivo y ayuda a visualizar las carteras eficientes.

La pagina explica la herramienta desde el punto de vista de quien quiere analizar carteras reales sin construir desde cero toda la infraestructura tecnica.

+11.000activos financieros disponibles
5algoritmos multiobjetivo
6mercados estadounidenses
1flujo integrado

El problema

Como aplicar optimizacion avanzada a carteras reales sin programar todo el proceso desde cero.

Quien quiere usar algoritmos multiobjetivo en finanzas necesita conectar varias tareas que normalmente viven separadas: datos de mercado, preparacion estadistica, configuracion de algoritmos, ejecucion y visualizacion.

Primero hay que obtener precios fiables, seleccionar fechas y activos, preparar retornos historicos y matrices de covarianza, y generar archivos compatibles con el motor de optimizacion.

Despues llega otra parte igual de importante: configurar los metodos, ejecutar experimentos, visualizar el frente de Pareto, interpretar carteras y conservar datos, parametros y semillas para poder repetir el resultado.

Por que es dificil

Datos dispersos

Los precios financieros deben descargarse desde fuentes externas y organizarse antes de poder utilizarlos.

Preparacion tecnica

Los datos deben transformarse en retornos, matrices de covarianza y archivos compatibles con el motor de optimizacion.

Algoritmos complejos

Los metodos multiobjetivo requieren seleccionar parametros, operadores, tamanos de poblacion y criterios de parada.

Objetivos enfrentados

Aumentar la rentabilidad suele implicar aceptar mas riesgo, por lo que no existe una unica solucion ideal.

Interpretacion de resultados

El algoritmo devuelve varias carteras eficientes y el usuario debe entender como se diferencian.

Reproducibilidad

Para repetir un experimento deben conservarse los datos, parametros, fechas y semilla aleatoria.

La idea principal

La intuicion es reunir en una misma aplicacion todo el recorrido: obtener datos financieros, preparar el problema, ejecutar algoritmos, visualizar soluciones y exportar resultados.

El usuario no recibe una respuesta unica y cerrada. Obtiene un conjunto de carteras no dominadas que muestran distintos compromisos entre riesgo y rentabilidad.

ParetoInvest no intenta decidir por el inversor. Le muestra distintas carteras eficientes para que pueda elegir el equilibrio entre riesgo y rentabilidad que mejor encaja con sus objetivos.

Una forma sencilla de verlo

Es como convertir un conjunto de herramientas tecnicas separadas en un unico laboratorio de optimizacion financiera.

Como se resolvio

El flujo integra datos reales, preparacion automatizada, configuracion de algoritmos y analisis visual de las soluciones.

  1. Seleccionar activos y periodo

    El usuario decide que mercado, fechas y numero de activos quiere analizar.

  2. Obtener o reutilizar datos

    La herramienta puede descargar informacion mediante Alpaca e Interactive Brokers o trabajar unicamente con archivos CSV locales.

  3. Preparar el problema financiero

    El sistema calcula retornos historicos y matrices de covarianza, y genera los archivos necesarios para jMetal.

  4. Configurar el algoritmo

    El usuario selecciona el metodo y ajusta parametros como poblacion, evaluaciones, operadores y restricciones.

  5. Ejecutar la optimizacion

    Los algoritmos generan carteras que representan distintos compromisos entre rentabilidad y riesgo.

  6. Visualizar el frente de Pareto

    La aplicacion muestra graficamente las soluciones no dominadas.

  7. Analizar y exportar carteras

    Los resultados incluyen activos, pesos, retorno, riesgo y ordenacion mediante el ratio de Sharpe.

NSGA-II

Metodo evolutivo para generar soluciones diversas dentro de un problema multiobjetivo.

MOEA/D

Divide el problema en subproblemas para explorar distintos compromisos entre objetivos.

MOEA/D-DE

Variante de MOEA/D que incorpora evolucion diferencial dentro del proceso de busqueda.

SMS-EMOA

Metodo que prioriza soluciones segun su aportacion al conjunto de alternativas eficientes.

SMPSO

Algoritmo inspirado en enjambres para mover soluciones hacia zonas prometedoras del espacio de busqueda.

El experimento

El documento incluye una ejecucion practica con 100 activos y seleccion de 5 activos por cartera sobre datos historicos del mercado estadounidense.

La prueba utiliza NSGA-II con poblacion de 100, 5.000 evaluaciones, probabilidad de cruce de 0,9 y semilla aleatoria 12345.

La semilla permite repetir exactamente una ejecucion cuando se mantienen tambien los mismos datos, fechas y parametros.

100activos del experimento
5activos por cartera
5.000evaluaciones
5.692 mstiempo mostrado
Ejemplo de frente de Pareto generado por ParetoInvest para comparar soluciones de cartera

Que se descubrio

Al ejecutar la herramienta aparecen carteras conservadoras, con poco riesgo y menor rentabilidad, y carteras mas agresivas, con mayor retorno y tambien mayor riesgo.

Tambien existen soluciones intermedias que pueden representar un equilibrio mas razonable segun el criterio de analisis.

El frente de Pareto permite comparar estas alternativas visualmente y el ratio de Sharpe ayuda a ordenar carteras segun su rentabilidad ajustada al riesgo.

  • Cartera conservadora del ejemplo: retorno 0,067 y riesgo 0,048.
  • Cartera agresiva del ejemplo: retorno 1,068 y riesgo 0,573.
  • Cartera mas equilibrada segun el fitness mostrado: retorno 1,05, riesgo 0,524 y fitness 1,355.
  • El resultado no es una unica cartera obligatoria, sino un conjunto de opciones comparables.
Estos resultados muestran el funcionamiento de la herramienta en un experimento concreto. No representan asesoramiento financiero ni garantizan rendimientos futuros.

Por que importa

ParetoInvest reduce la necesidad de programar manualmente todo el flujo de datos, optimizacion y visualizacion.

La herramienta facilita el acceso a algoritmos avanzados, permite comparar metodos y ayuda a preparar experimentos reproducibles.

Tambien permite exportar resultados para analizarlos en Python, R o MATLAB, y trabajar tanto con datos recientes como con datos locales sin conexion.

El valor demostrado no es prometer mejores inversiones, sino reducir barreras tecnicas y facilitar el analisis de alternativas.

Aplicaciones reales

Investigacion

Investigacion en optimizacion

Evaluar y comparar algoritmos multiobjetivo sobre datos financieros.

Quant

Analisis cuantitativo

Explorar distintas asignaciones de activos y perfiles de riesgo.

Formacion

Formacion

Ensenar conceptos como frontera de Pareto, diversificacion y configuracion de metaheuristicas.

jMetal

Desarrollo de algoritmos

Probar nuevas variantes integradas con jMetal.

Datos

Preparacion de datasets

Descargar, organizar y exportar datos financieros para otros analisis.

Repro

Reproduccion de experimentos

Repetir ejecuciones manteniendo datos, parametros y semillas.

Que podemos aprender

En problemas financieros complejos, el mayor obstaculo no siempre es el algoritmo. Integrar correctamente los datos, la configuracion, la ejecucion y la interpretacion de resultados puede ser igual de importante que el propio metodo de optimizacion.

Preguntas frecuentes

Que es ParetoInvest

Una aplicacion de escritorio para obtener y preparar datos financieros, ejecutar algoritmos multiobjetivo y analizar carteras eficientes.

ParetoInvest elige una unica cartera

No. Genera un conjunto de soluciones no dominadas con distintos equilibrios entre riesgo y rentabilidad.

Es necesario programar para utilizarlo

La interfaz permite configurar y ejecutar los algoritmos sin programarlos directamente, aunque la instalacion y ciertos usos avanzados pueden requerir conocimientos tecnicos.

Puede trabajar sin conexion

Si. Una vez que los datos existen localmente, todo el proceso de preparacion y optimizacion puede ejecutarse con archivos CSV, sin conectarse a Interactive Brokers o Alpaca.

Que algoritmos incluye

NSGA-II, MOEA/D, MOEA/D-DE, SMS-EMOA y SMPSO.

Que significa el frente de Pareto

Es el conjunto de carteras en las que no es posible mejorar uno de los objetivos sin empeorar al menos otro.

Los resultados son recomendaciones financieras

No. Son resultados experimentales que ayudan a analizar alternativas, pero no sustituyen el asesoramiento financiero profesional.

Como se reproducen los resultados

Manteniendo los mismos datos, periodo, configuracion y semilla aleatoria.

Publicacion y recursos

Titulo cientificoParetoInvest: Integrating Real-Time Financial Data and Multi-Objective Meta-heuristics for Portfolio Optimization
AutoresAntonio J. Hidalgo-Marin, Antonio J. Nebro, Jose Garcia-Nieto
RevistaSoftwareX
Ano2026
EstadoPreprint fechado el 12 de julio de 2026
Versionv1.0.0
Lenguajes y herramientasPython, Java y Maven
RequisitosPython 3.12, JDK 22, Maven 3.8.1 y jMetal 6.7
LicenciaCC BY-NC 4.0
DocumentacionREADME del repositorio
Soporteantonio.hidalgo@uma.es

Hidalgo-Marin, A.J.; Nebro, A.J.; Garcia-Nieto, J. ParetoInvest: Integrating Real-Time Financial Data and Multi-Objective Meta-heuristics for Portfolio Optimization. Preprint, 12 de julio de 2026.