Skip to content

portfolio · cvxpy · mcp

Optimization Engine

Motor de optimización de portafolios multi-activo — mean-variance, risk parity, HRP, Black-Litterman, CVaR — publicado en PyPI, con UI en Streamlit, CLI y servidor MCP.

https://pypi.org/project/finport-optengine/ ↗

Resumen

Un motor de optimización de portafolios multi-activo con una API en Python, una UI en Streamlit, una CLI y un servidor MCP para que los agentes lo llamen como herramientas. Publicado en PyPI como finport-optengine — a un pip install de distancia. Construido sobre cvxpy, scipy, pandas y scikit-learn, con la UI, los proveedores de datos, el servidor MCP y la regresión detrás de extras opcionales.

El motor tiene una sola obsesión: una asignación no es un resultado hasta que puedes ver sobre qué se sostiene. Cada solución regresa los pesos y la evidencia — qué solver respondió, si las restricciones se respetaron, qué tan bien condicionada quedó la estimación de covarianza, qué tan concentrado está el libro en riesgo y no en capital, y cuánto del backtest sobrevive fuera de muestra.

Instalación

pip install finport-optengine            # motor + CLI
pip install "finport-optengine[mcp]"     # + servidor MCP (optengine-mcp)
pip install "finport-optengine[all]"     # todo para los ejemplos completos

Qué hace

  • Mean-variance, mínima varianza global, máximo Sharpe, risk parity / ERC, HRP, Black-Litterman, mean-CVaR, máxima diversificación, inversa de volatilidad, equal weight.
  • Cotas por activo, cotas por grupo / clase de activo, retorno objetivo / volatilidad objetivo / utilidad con aversión al riesgo.
  • Long-only o con apalancamiento, con presupuesto de turnover opcional respecto a pesos previos.
  • Diagnósticos en cada solución: solver usado, cumplimiento de restricciones, condicionamiento de la covarianza, concentración de riesgo, decaimiento fuera de muestra.
  • Servidor MCP (optengine-mcp) habla el Model Context Protocol sobre stdio, para que los agentes llamen el motor como herramientas en vez de escribir código.
  • Controles pre-trade: un universo point-in-time, escenarios de estrés por choques y una auditoría de mandato que puede rechazar un portafolio que no cumple.
  • Fallas honestas: una solución imprecisa lanza un error en lugar de regresar una respuesta degradada, y una caída del solver ya no se reporta como un mandato imposible.
  • UI en Streamlit para usuarios no-coder; CLI para corridas en batch.

Stack

Python · cvxpy · scipy · pandas · scikit-learn · plotly · Streamlit · MCP. La UI, los proveedores de datos (yfinance / Parquet), el servidor MCP y la regresión viven detrás de extras opcionales.

Estado

En PyPI como finport-optengine (v0.7.0). Open source, con 1,307 pruebas, revisión de tipos y una celda de Windows en CI. Los agentes lo pueden llamar vía MCP.

PyPI → · GitHub →