Rastreador de riesgo y rentabilidad de cartera con EODHD
La mayoría de los inversores particulares llevan su cartera en una hoja de cálculo.
Algunos dan el salto a una app gratuita que muestra el valor total y la variación diaria. Y ahí se queda todo.
Ninguna de las dos te da los números que realmente importan: tu volatilidad anualizada, tu ratio de Sharpe, tu beta frente al mercado, tu máximo drawdown, o cuán correlacionadas están de verdad tus posiciones entre sí.
Los inversores institucionales llevan décadas teniendo esto. Los particulares se conforman con un gráfico de tarta.
Si estás:
- gestionando tu propia cartera repartida entre varios brokers,
- construyendo un proyecto fintech,
- o simplemente cansado de adivinar cuánto riesgo tienen realmente tus posiciones,
esto te interesa.
El problema de la hoja de cálculo
Excel es donde van a morir la mayoría de las carteras.
Empiezas con una hoja limpia. Una columna por posición, una fila por operación. Funciona… durante unos tres meses.
Luego añades una cuenta en otro broker. Luego empiezas a llevar los dividendos aparte. Luego una fórmula se rompe porque insertaste una fila en el sitio equivocado, y no te das cuenta hasta que el total falla por un 4%.
Las hojas de cálculo no calculan volatilidad, beta ni drawdown por defecto. Tendrías que construir esas fórmulas tú mismo, sacar los precios históricos a mano y mantenerlos actualizados — para siempre, manualmente.
La mayoría de la gente no lo hace. Así que acaba gestionando una cartera sin saber cuál es su perfil de riesgo real.
El problema de las herramientas de pago
La otra opción es un rastreador de carteras de pago o un terminal al estilo Bloomberg.
Estos resuelven el problema del cálculo. No resuelven el problema de la confianza.
- El tamaño de tus posiciones, tus tickers y tus precios de entrada quedan en un servidor de terceros.
- Pagas una cuota mensual por unas métricas que, matemáticamente, no son complicadas.
- Muchas de estas herramientas están optimizadas para venderte su bróker o su plan premium, no para darte una visión neutral de tu riesgo.
El ratio de Sharpe, la beta, el drawdown, la correlación… no son modelos propietarios de caja negra. Son fórmulas perfectamente definidas. Pagar 30 $/mes para que otro las ejecute sobre tus datos, en sus servidores, es una concesión que mucha gente hace sin cuestionarla.
El problema real no es la falta de datos financieros. Es la falta de una herramienta que calcule métricas de riesgo reales, en local, sin pedirte que entregues tu cartera a un tercero.
Vault: un rastreador de cartera que corre en tu navegador
Construí Vault, un rastreador de carteras de código abierto hecho con React 19 y Vite que usa la API de EODHD para traer datos de mercado reales y calcular seis métricas que cualquier inversor serio debería vigilar:
- Rentabilidad — rendimiento de la cartera frente al S&P 500, indexado y por posición
- Diversificación — peso de cada posición y concentración (índice Herfindahl-Hirschman)
- Riesgo — volatilidad anualizada, ratio de Sharpe, beta frente al mercado, VaR diario al 95%
- Drawdown — curva "underwater" y máximo drawdown histórico
- Correlaciones — matriz de correlación de Pearson entre tus posiciones
- Exposición sectorial — desglose por sector GICS a partir de los fundamentales de EODHD
Sin backend. Sin cuenta. Sin ningún servidor guardando tus posiciones.
Todo corre en el navegador, y tu cartera se guarda en localStorage — en tu máquina, no en la mía.
Una nota rápida sobre EODHD
He usado EODHD en varios proyectos antes de este, principalmente por tres motivos:
- Una sola API key cubre precios históricos, fundamentales y búsqueda — sin tener que combinar tres proveedores distintos
- El plan gratuito es lo bastante generoso como para construir y probar un proyecto real con él
- El formato de respuesta es consistente entre endpoints, lo que reduce el código de conexión necesario
Si quieres seguir el tutorial o hacer un fork de Vault, necesitarás una key — consíguela gratis aquí.
Cómo funcionan realmente los cálculos
Todas las matemáticas viven en un único archivo: [src/utils/finance.js](https://github.com/Kevinelectronics/portafoliotracker/blob/main/src/utils/finance.js). Sin librerías estadísticas externas — cada fórmula está implementada desde cero.
Rentabilidad ponderada por tiempo
Cada día se pondera con el valor de cierre del día anterior. Esto importa más de lo que parece: sin ello, añadir una posición nueva a mitad de mes distorsiona la rentabilidad diaria de toda la cartera.
Volatilidad y ratio de Sharpe
Desviación estándar de las rentabilidades diarias, anualizada con √252, y convertida después en un ratio de Sharpe frente a un tipo libre de riesgo configurable.
Aquí tienes el núcleo del cálculo, simplificado a Python para que se entienda:
import numpy as np
def annualized_volatility(daily_returns):
return np.std(daily_returns) * np.sqrt(252)def sharpe_ratio(daily_returns, risk_free_rate=0.02):
excess_returns = np.array(daily_returns) - (risk_free_rate / 252)
return (np.mean(excess_returns) / np.std(daily_returns)) * np.sqrt(252)
Beta
Covarianza de las rentabilidades de la cartera frente al S&P 500 (GSPC.INDX en EODHD), dividida entre la varianza del índice de referencia.
Drawdown
Caída porcentual desde el máximo histórico de una curva indexada en base 100. Este es el número que te dice cómo se habría sentido de verdad mantener esta cartera durante su peor tramo.
Matriz de correlación
Coeficiente de Pearson por pares entre activos, alineado por fecha. Es la métrica que más carteras particulares interpretan mal sin saberlo — cinco acciones pueden parecer diversificadas y aun así moverse juntas el 90% del tiempo.
Concentración (HHI)
Índice Herfindahl-Hirschman aplicado a los pesos de cada posición. Un solo número que te dice cuán concentrado estás realmente, más allá de "tengo 12 posiciones, así que estoy diversificado".
A partir de aquí, los mismos bloques se pueden extender hacia:
- alertas de riesgo automatizadas
- scripts de rebalanceo de cartera
- motores de backtesting
Cómo se ve en la práctica
Añades una posición, y los endpoints de búsqueda (Search) y precios de cierre (EOD) de EODHD autocompletan el ticker y el precio de cierre en tu fecha de compra.
A partir de ahí, Vault dibuja tu curva de rentabilidad frente al S&P 500, tu mapa de calor de correlaciones y tu exposición sectorial, sacada directamente de los datos de fundamentales.
Sin construir fórmulas a mano. Sin volver a introducir precios cada vez que una posición cambia.
Ideas clave
- Las métricas de riesgo de cartera (Sharpe, beta, drawdown, correlación) no son propietarias — son fórmulas estándar que la mayoría de herramientas simplemente esconden detrás de un muro de pago
- Calcularlas en el cliente significa que tus posiciones nunca salen de tu navegador
- Los endpoints de Search, EOD y Fundamentals de EODHD cubren todo lo necesario para construir esto sin combinar varios proveedores de datos
Pruébalo tú mismo
git clone https://github.com/Kevinelectronics/portafoliotracker.git
cd portafoliotracker
npm install
Añade tu API key de EODHD al .env, ejecuta npm run dev y añade tu primera posición.
Consigue tu API key gratuita de EODHD
Vault funciona por completo con los endpoints de Search, EOD y Fundamentals de EODHD — sin backend, sin muro de pago en las métricas.
→ Consigue tu API key de EODHD
Si trabajas en una empresa de software o de APIs y buscas explicar tu producto con contenido técnico de calidad — no marketing genérico — no dudes en escribirme por LinkedIn.
¿Necesitas contenido técnico como este para tu producto?
→ kevinmeneses.com
¿Buscas contenido técnico para tu empresa? Puedo ayudarte — LinkedIn · kevinmenesesgonzalez@gmail.com