Spaces:
Running
Running
| # Documento de Especificaciones T茅cnicas: Munger Intelligence Engine API | |
| **Versi贸n:** 1.0 | |
| **Tecnolog铆as:** Node.js, Next.js (App Router), TypeScript, yahoo-finance2 | |
| **Despliegue:** Hugging Face Spaces (Docker) | |
| --- | |
| ## 1. Resumen del Proyecto | |
| El "Munger Intelligence Engine" es una API de an谩lisis financiero dise帽ada para automatizar la estrategia de inversi贸n de Charlie Munger: comprar empresas de "alta calidad" cuando cotizan cerca de su media m贸vil de 200 semanas (200-WMA). El sistema debe realizar descargas diarias, filtrar por capitalizaci贸n de mercado y gestionar estados de se帽ales en tiempo real. | |
| --- | |
| ## 2. Definici贸n de la Watchlist e Ingesta de Datos | |
| ### 2.1 Segmentaci贸n por Capitalizaci贸n (Market Cap) | |
| El sistema debe ignorar cualquier activo que no cumpla con los umbrales de seguridad institucional: | |
| * **Elite Compounders (Mega Cap):** > $100B. Empresas con fosos econ贸micos globales. | |
| * **Blue Chips (Large Cap):** > $10B. Est谩ndar m铆nimo de liquidez y estabilidad para la estrategia. | |
| ### 2.2 Estrategia de Descarga Paralelizada (Batching) | |
| Para optimizar el rendimiento y evitar bloqueos de IP/Rate Limiting de Yahoo Finance: | |
| * **Tama帽o de Lote (Batch):** 50 tickers por iteraci贸n. | |
| * **Concurrencia:** Utilizar `Promise.all` para procesar los 50 tickers de cada lote simult谩neamente. | |
| * **Frecuencia:** Descarga diaria automatizada de `quote` y `quoteSummary`. | |
| --- | |
| ## 3. L贸gica del Motor de An谩lisis (Munger Strategy) | |
| Cada ticker debe ser evaluado bajo tres filtros secuenciales: | |
| 1. **Filtro Fundamental (Calidad):** | |
| * **ROE (Return on Equity):** > 15% (M铆nimo), > 25% (Excelente). | |
| * **Debt/Equity:** < 50% (M铆nimo), < 15% (Ideal). | |
| 2. **Filtro T茅cnico (Valor):** | |
| * **200-WMA:** Media m贸vil simple de los 煤ltimos 200 cierres semanales. | |
| * **Gatillo (Trigger):** Precio Actual $\leq$ (200-WMA * 1.05). | |
| 3. **Margen de Seguridad:** Diferencia porcentual entre el Precio Actual y el Target Mean de analistas. | |
| --- | |
| ## 4. Gesti贸n de Estados por Ticker | |
| El sistema debe mantener un estado persistente para cada ticker en la base de datos o archivo de estado en Hugging Face: | |
| | Estado | Descripci贸n | | |
| | :--- | :--- | | |
| | `SCANNING` | Iniciando descarga de datos de `yahoo-finance2`. | | |
| | `FILTERING` | Validando Market Cap y m茅tricas de calidad (ROE/Deuda). | | |
| | `TECHNICAL_EVAL` | Calculando posici贸n respecto a la 200-WMA. | | |
| | `SIGNAL_READY` | Activo listo para compra o seguimiento activo. | | |
| | `ERROR` | Fallo en la ingesta de datos o ticker no encontrado. | | |
| --- | |
| ## 5. Especificaci贸n de Endpoints de la API | |
| ### `GET /api/v1/health` | |
| * **Prop贸sito:** Monitorizaci贸n del sistema y estado de las APIs externas. | |
| * **Response:** JSON con `status`, `last_sync_timestamp` y `api_latency`. | |
| ### `POST /api/v1/sync` | |
| * **Prop贸sito:** Disparador del ciclo de descarga diaria (v铆a Cron). | |
| * **L贸gica:** Ejecuta el procesamiento por lotes (50 tickers) usando `Promise.all`. | |
| * **Payload:** `{ "force": boolean, "segments": ["mega", "large"] }`. | |
| ### `GET /api/v1/signals` | |
| * **Prop贸sito:** Listar oportunidades activas para el Dashboard. | |
| * **Filtros:** Por `sector`, `munger_score` (0-100) y `upside`. | |
| * **Response:** Array de objetos `MungerStock`. | |
| ### `GET /api/v1/ticker/:id` | |
| * **Prop贸sito:** Deep Dive de un activo espec铆fico. | |
| * **Response:** Detalle completo incluyendo `quoteSummary`, hist贸rico de WMA y catalizadores fundamentales. | |
| ### `GET /api/v1/portfolio` | |
| * **Prop贸sito:** Estado de las posiciones actuales en Alpaca (Paper Trading). | |
| * **Response:** Equity total, P&L de posiciones y "D铆as de Disciplina" (tiempo sin trades impulsivos). | |
| --- | |
| ## 6. Despliegue en Hugging Face Spaces | |
| * **Docker Image:** Base `node:20-slim`. | |
| * **Persistencia:** Utilizar **HF Datasets** o **R2 de Cloudflare** para evitar p茅rdida de datos por reinicio del Space. | |
| * **Variables de Entorno:** `ALPACA_KEY`, `ALPACA_SECRET`, `HF_TOKEN`. | |