File size: 3,908 Bytes
4811dd1
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
# 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`.