munger-engine / docs /api_reqs.md
dromerosm's picture
Refactor project structure: Move docs to /docs, update README
4811dd1

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.