CÓDIGO ABIERTO · AUTOALOJADO · ENGLISH & ESPAÑOL

Análisis de portafolio donde la IA muestra su trabajo.

Faro calcula métricas de riesgo — Sharpe, Valor en Riesgo, beta, drawdown — desde sus fórmulas publicadas, y un copiloto de IA te las explica en español o inglés. Un verificador compara las cifras de cada respuesta con los resultados del motor y marca las que no puede emparejar. No revisa valores cotidianos como 1 o 100, y una cifra equivocada muy cercana a una real puede pasar. La página de metodología explica sus límites.

Descárgalo en GitHub Mira cómo funciona el anclaje

Licencia MIT · Sin conectar tu banco · Sin nube obligatoria · Herramienta educativa, no asesoría de inversión

97
pruebas unitarias del motor cuantitativo
24/60
respuestas totalmente ancladas con historial de chat · 59/60 preguntadas en fresco (modelo local 7B, 3 corridas, 24 de septiembre de 2026)
EN·ES
totalmente bilingüe, un toque
$0
para usarlo — datos gratis, IA local
MIT
código abierto, autoalojado
Míralo funcionar

Pantallas reales, números reales

No son mockups — es la app real corriendo el portafolio de demostración.

Tablero de Faro con el valor del portafolio, tarjetas de métricas de riesgo, rendimiento vs SPY, asignación y una matriz de correlación
El tablero — valor y P/G, Sharpe · VaR · beta · drawdown, rendimiento vs SPY, asignación, drawdown y una matriz de correlación. El copiloto llama al mismo motor, así que el chat y las gráficas nunca se contradicen.
Por qué Faro

Análisis serio. IA honesta. Tu computadora.

La mayoría de las herramientas financieras con IA te piden confiar en un chatbot. Faro está construido al revés: primero matemáticas deterministas, luego el modelo de lenguaje, y verificación siempre.

🧮

Motor cuantitativo desde las fórmulas

Cada métrica implementada desde su fórmula documentada y verificada contra referencias independientes — Sharpe, Sortino, alfa/beta, VaR histórico y paramétrico, CVaR, drawdown máximo, correlaciones, concentración, contribuciones al riesgo.

🔍

Un copiloto que muestra su trabajo

Pregunta "¿qué tan riesgoso es mi portafolio?" o "¿qué pasa si NVDA cae 20%?" El agente tiene instrucciones de responder llamando las herramientas del motor cuantitativo. Cada cifra de su respuesta se compara con esos cálculos, y los números que no se pueden rastrear se marcan.

🌎

Verdaderamente bilingüe

Tablero, copiloto, escenarios, resúmenes — todo funciona en español e inglés con un toque. Pregunta en cualquier idioma; recibe respuestas, formatos numéricos y documentos legales en el tuyo.

⚡

Laboratorio de escenarios y resumen diario

Simula caídas de precio instantáneas con impacto por posición, y genera un resumen diario con un clic: movimientos, fuentes de riesgo y próximos reportes — narrado solo a partir de datos calculados.

🔒

Privado y replicable

Tus datos viven en una base de datos local en tu máquina. Clonar → docker compose up → funcionando en 5 minutos. Con Claude si agregas una clave; con un modelo local gratuito si no.

⚖️

Consciente del cumplimiento

Análisis educativo, no asesoría. Faro nunca ejecuta operaciones, nunca toca tu casa de bolsa, y está instruido para rechazar "¿debería comprar?" (comportamiento puesto a prueba en la evaluación pública) — mostrándote cómo evaluarlo tú mismo.

La idea central

Los números inventados no se corrigen con prompts. Se detectan y se muestran.

El principal defecto de las apps financieras con IA son los números inventados. La respuesta de Faro es arquitectónica — y se mide, no se asume.

1

Motor determinista debajo

Implementaciones puras en numpy/pandas de cada fórmula, documentadas y contrastadas con bibliotecas independientes en 97 pruebas.

quant/risk.py historical_var(returns, 0.95) → 0.0162 # unit-tested
2

El motor es la única fuente aprobada

El copiloto tiene instrucciones de tomar cada número de cinco herramientas tipadas que llegan a la misma capa de servicios que usa el tablero: un motor, dos consumidores. Nada lo obliga a hacerlo, y por eso existe el siguiente paso.

tools: get_metric get_position_detail run_price_shock_scenario compare_to_benchmark
3

Cada respuesta se revisa

Un verificador de anclaje extrae cada número de la respuesta y lo compara con los resultados de las herramientas de ese turno. Lo que no se puede rastrear se marca en la app. Tiene puntos ciegos, que la página de metodología enumera, y se mide con una evaluación pública bilingüe de dos modos, con registros crudos en el repositorio.

grounding_check: every number in the reply must trace to a tool result → flagged if not
Copiloto de Faro en español con una advertencia ámbar de que tres cifras no pudieron rastrearse a un resultado de herramienta
Atrapado en el acto. Al preguntarle de nuevo su beta a mitad de la conversación, el modelo local recitó “1.35” de un mensaje anterior en vez de volver a llamar la herramienta — y Faro lo marcó en la app: “3 cifras … no pudieron rastrearse a un resultado de herramienta.” Así funciona el verificador de anclaje — aquí, en español.

Honesto con dos medidas, no con un solo número halagador

La evaluación corre de dos formas, y el repositorio publica ambas con registros crudos. Preguntada en fresco, cada número de la respuesta se rastrea a las herramientas de ese turno. En una conversación libre de varios turnos, un modelo local pequeño recita cifras anteriores de memoria — y cada una se marca en la app en vez de ocultarse. No se ha probado si Claude lo hace mejor.

59/60
respuestas totalmente ancladas, preguntadas en fresco — modelo local 7B, 3 corridas, 24 de septiembre de 2026
24/60
respuestas totalmente ancladas, con historial de chat como funciona el chat real — mismo modelo, 3 corridas, 24 de septiembre de 2026
Flujo de trabajo

De tus posiciones al análisis en cuatro pasos

Sin cuentas, sin conectar tu casa de bolsa — ingresa lo que tienes y Faro hace las matemáticas.

📋

Ingresa tus posiciones

Símbolos, acciones, costo. Los datos se quedan en un archivo SQLite local en tu máquina.

📈

Faro calcula tu perfil de riesgo

Datos de mercado diarios y gratuitos, en caché local, alimentan todas las métricas — con degradación elegante sin conexión.

💬

Pregúntale lo que quieras al copiloto

Respuestas en tiempo real con las herramientas usadas a la vista, en tu idioma, con cada número citado de los cálculos.

📰

Lee tu resumen diario

Impulsores, fuentes de riesgo y próximos reportes de tus posiciones — generado bajo demanda.

Por dentro

Un motor, dos consumidores

El tablero y el copiloto leen la misma capa de servicios, así que las gráficas y el chat nunca se contradicen — y además cada respuesta del copiloto pasa por el verificador de anclaje.

Tablero en React

React 18 · TypeScript · Tailwind · Recharts · i18next EN/ES

Copiloto de IA

Claude como principal ⇄ Ollama local de respaldo, se cambia con una variable de entorno. Su única fuente de números: cinco herramientas tipadas.verificador de anclaje en cada respuesta
↓  REST + SSE  ↓

Capa de servicios FastAPI — la única ruta de cálculo

Un solo conjunto de servicios responde a las llamadas REST del tablero y a las herramientas del agente.
↓

Motor cuantitativo

numpy/pandas puro, cada fórmula documentada y con pruebas unitarias — sin bibliotecas cuantitativas caja-negra.

Datos de mercado

Barras diarias gratuitas: yfinance con respaldo de Stooq, con caché en disco — sigue funcionando desde la caché si los proveedores no responden.
Para reclutadores

Cómo evaluarlo en cinco minutos

Hecho como muestra de trabajo. Aquí está dónde mirar, y qué busca demostrar cada decisión.

El motor cuantitativo es desde las fórmulas

Cada métrica implementada desde su fórmula documentada en numpy/pandas puro — sin bibliotecas caja-negra — probada contra referencias calculadas a mano más verificaciones independientes.

Ver el motor →

La protección es código, no confianza

El verificador de anclaje que extrae cada número y lo compara con un resultado de herramienta — el mecanismo que hace de “detectado y señalado” una afirmación comprobable.

Ver el verificador →

La evaluación es pública y honesta

Un chequeo bilingüe de dos modos con el historial de iteraciones (28 → 4 → 2) y registros crudos incluidos — incluyendo el $12,345.67 inventado que el verificador atrapó.

Ver los resultados →

Corre desde un clon limpio

97 pruebas unitarias, mypy estricto, CI verde en cada push, y clonar → docker compose up → funcionando en cinco minutos. La replicación como restricción de diseño.

Ver las pruebas →

Funcionando en cinco minutos

git clone https://github.com/CarlosM787/faro && docker compose up

Esa es toda la instalación. No se requieren claves API — agrega ANTHROPIC_API_KEY después para cambiar el copiloto a Claude sin tocar el código.