Guía de interpretación
Cómo leer los datos de la plataforma — qué mide cada número y qué significa en la práctica.
Universo de análisis
No todos los stocks del mercado entran en los cálculos. La plataforma aplica tres filtros mínimos para excluir penny stocks, acciones ilíquidas y nombres sin volatilidad operativa. A este conjunto filtrado se le llama el universo de calidad.
Filtros aplicados (condición necesaria para cualquier setup)
Estos thresholds son condición necesaria para que un símbolo aparezca en cualquier lista (actionable, live feed, las 3 lentes del queue). Todos los porcentajes de breadth, liderazgo y participación se calculan sobre este universo institucional.
Market Context — la barra de contexto
La barra superior del dashboard muestra el estado actual del mercado en dos dimensiones independientes: participation (amplitud) y leadership (calidad del liderazgo institucional). Cada dimensión tiene su propio descriptor y sus propias métricas. No se colapsan en un solo número — intencionalmente.
Un mercado puede tener participation EXPANDING y leadership THINNING al mismo tiempo. Eso significa que más stocks suben, pero los institucionales se están retirando. Es una señal de advertencia que una etiqueta única ("risk on") ocultaría.
Participation — amplitud del mercado
Mide cuántos stocks del universo de calidad están participando del movimiento. El indicador central es la breadth: el porcentaje de stocks que cotizan por encima de su EMA21.
Cómo se calcula la breadth
Se cuenta cuántos stocks tienen el precio por encima de su media exponencial de 21 días, y se divide por el total del universo. Cada stock cuenta igual: 1 si está arriba, 0 si está abajo. No hay ponderación por capitalización.
Ejemplo: 1,085 stocks sobre EMA21 ÷ 1,978 en el universo = 54.95% de breadth.
Descriptor — qué está haciendo la breadth
El descriptor refleja el cambio de breadth en los últimos ~5 días de trading (medido en puntos porcentuales, pp).
Métricas de referencia
Cómo leerlo en práctica
El descriptor EXPANDING con un momentum_20d negativo indica un rebote técnico desde un piso, no una expansión desde base. Siempre cruzar el descriptor con el momentum_20d y el highs/lows ratio para entender si la fuerza es nueva o es recuperación.
Leadership — calidad del liderazgo institucional
Mide cuántos stocks califican como líderes institucionales y qué tan saludable es ese grupo. La definición de "líder" es estricta: tiene que cumplir los 8 criterios Minervini SEPA simultáneamente.
Qué es un líder institucional (8 criterios Minervini SEPA)
Descriptor — qué le está pasando al pool de líderes
El descriptor refleja el cambio porcentual en la cantidad de líderes vs ~5 días atrás, con un override de agotamiento que toma prioridad sobre cualquier crecimiento de count.
Métricas de referencia
La señal más importante: EXHAUSTED
Un mercado donde el count de líderes crece pero más del 25% están haciendo movimientos climácticos es un mercado a punto de rotar. El override EXHAUSTED existe para capturar exactamente eso: expansión aparente con deterioro interno. Es la señal más contraintuitiva y la más valiosa del engine.
Setup Queue — lentes de búsqueda
La cola de setups organiza los líderes institucionales en tres lentes según el tipo de oportunidad. Cada lente tiene criterios propios de calidad y ordena los resultados por score de relevancia.
U&R Queue — Undercut & Rally
Líderes que bajaron bajo un soporte clave (mínimo de base, EMA21) y están recuperando activamente. Es el setup de mayor confianza estadística en mercados con liderazgo institucional: el mercado probó el nivel, rechazó la debilidad y volvió a cerrar sobre estructura.
Busca: líderes Minervini + señal de U&R activa + price_above_low_pct alto + volumen en la recuperación.
Emerging Leaders
Stocks que están a punto de calificar como líderes Minervini pero todavía no pasan todos los criterios. Muestra cuántos criterios cumplen y cuáles les faltan. Permite monitorear candidatos antes de que entren al pool principal.
Busca: stocks que cumplen 5, 6 o 7 de los 8 criterios Minervini.
Building Bases — líderes contrayendo rango
Líderes Minervini con 6+ semanas en base, ordenados por contracción de rango (la idea real del VCP). Son los candidatos a la próxima ruptura: el rango se está cerrando, la volatilidad entrando.
Gate estructural: líder Minervini + weeks_in_base ≥ 6. Sin cutoff absoluto. Ranking por vcp_quality (0–1):
vcp_quality = (0.55·band + 0.45·volume_dryup) × gap_penalty
band = 1 − rango_reciente/rango_previo (la banda cerrándose). volume_dryup = 1 − vol_reciente/vol_previo (volumen secándose — un VCP real necesita las dos cosas). gap_penalty castiga nombres con un salto overnight grande (>1.5 ATR close-to-close): un gap de noticia infla el rango previo y simula contracción sin ser un VCP. Top 8 por quality. Tiers: ≥0.5 limpio, 0.3–0.5 en desarrollo, <0.3 flojo.
Por qué compuesto y no rango solo: el universo exige ADR ≥ 4%, así que bases apretadas absolutas casi no existen (mediana ~4.4 ATR de rango en 20d). Iteraciones previas fallaron: vcp_score≥70 (detector de pivotes 20d) dejaba bases largas en 0; la oscilación d21_atr colaba pullbacks (EMA21 cae con el precio); la contracción de rango sola se dejaba engañar por gaps de evento (IMVT saltó +35% y luego quedó quieto → falsa "contracción"). El score con volumen + gap penalty resuelve los tres. Si toda la lista tiene quality bajo, es que no hay VCPs limpios.
RS Leaders — watchlist para días de caída
El pool de líderes Minervini ordenado por fuerza relativa vs SPY (RS) descendente. En una corrección, los líderes que más aguantan son los que lideran el próximo rebote — esta lente los ordena para armar la watchlist desde la cual posicionarse cuando el mercado gira.
Membership: solo el gate Minervini (8 criterios) sobre el universo de calidad. RS es la clave de orden, no un filtro. Cada fila muestra vs SPY 1w (cuánto le sacó o cedió al SPY esta semana) y un estado de holding: en máximos / sobre EMA21 / testea EMA50 (ya perdió la EMA21) / pullback profundo. Top 40.
Nunca se suprime por contexto — es la herramienta que necesitás justo cuando la participation está NARROWING o COLLAPSING.
Dos modos (toggle): el orden por RS de 13 semanas es acumulado — una acción puede rankear alto por subas de hace 2 meses y estar cediendo hoy. El modo RS Momentum responde "¿hacia dónde fluye la fuerza relativa ahora?".
Ordena por rs_momentum_score = pendiente del RS line en las últimas N sesiones (rs_delta_pct, % scale-free para no premiar solo a los de RS ya altísimo) + resiliencia (retorno_stock − retorno_SPY) sumada solo cuando el SPY cae en la ventana. Ventana configurable: 3 / 5 / 10 sesiones. El badge aguantó marca los que cerraron planos o positivos mientras el SPY bajó — la señal de mayor calidad para anticipar al líder del rebote.
Puntuación y ranking — cómo se evalúa cada acción
Esta es la matemática que decide qué acciones aparecen primero. Cada lista usa scores distintos, y los scores se componen de varios sub-scores. Cada uno está documentado con su fórmula exacta. Cumplir los criterios filtra; el score ordena. Cumplir + tener score bajo significa quedarse fuera del cutoff de su lista.
Capas del scoring — del dato crudo al ranking final
El score final de un setup en /actionable se compone en 5 capas:
[1] indicadores crudos (price, EMA, RS, vol)
[2] sub-scores normalizados (pullback_quality, vcp_score, weekly_trend_quality)
[3] priority_score base = Σ(sub-scores × pesos)
[4] final_priority = base × context_mult × group_mult
[5] sort + cutoff top-N
Los siguientes bloques desarman cada capa.
[2a] pullback_quality_score — 0 a 100
Componente más importante del priority_score. Mide qué tan "ordenada" está la retracción. Suma de 5 sub-componentes (todos los thresholds son ATR-normalizados):
Total clampeado a [0, 100]. pullback_quality_score ≥ 55 es el threshold de entrada a /actionable; ≥ 70 es "excellent".
[2b] vcp_score — 0 a 100 (Volatility Contraction Pattern)
Score que detecta el patrón VCP de Minervini (Volatility Contraction Pattern): contracciones sucesivas con depth decreciente y volumen secándose.
Limitación conocida: al medir sobre solo 20 velas diarias con piso duro en 0 si no hay 2+ contracciones, deja en cero la mayoría de las bases multi-semana (el ápice apretado tiene pocos swings). Por eso ya NO es el gate de Building Bases (que ahora rankea por contracción de rango relativa: rango reciente ÷ previo). El vcp_score se conserva como dato de referencia/secundario, no como filtro.
[3] priority_score base — para /actionable
Cada candidato del top 50 (ya filtrado por SQL y ordenado por pullback_quality) recibe un score base entre 0 y ~1.0:
base = 0.40 × pq/100
+ 0.25 × freshness_score(days_in_state)
+ regime_alignment_weight (0.08–0.20)
+ 0.15 × pq/100
+ regime_setup_confidence_adjust (residual, < 0.1)
Notar que pullback_quality contribuye dos veces: 40% como "pullback quality" + 15% como "leader quality" = 55% efectivo del base score. Es por diseño: la quality del pullback es la señal dominante.
[3a] Freshness decay — cuánto pierde el score con días en estado
days_in_state = días que el stock lleva en su estado actual (e.g. EMA9_PULLBACK). Más viejo = score menor.
Tabla expuesta en el card como badge (fresh / aging / late / stale / extended).
[3b] Regime alignment weight
Componente que vale 0.08–0.20 según el régimen detectado por MarketRegimeEngine:
[4] Multipliers compositivos
El base se multiplica por DOS factores externos antes del clamp:
final_priority = min(1.0, base × context_multiplier × group_multiplier)
Context multiplier (participation × leadership)
Group multiplier (market group performance)
Group strength se basa en performance_monthly del market group del stock (e.g. "Electronic Technology", "Renewables"). Hay ~25 groups canónicos.
Regime cont multiplier (solo aplica a continuation_prob)
Este multiplier NO afecta priority_score — solo modula la probabilidad de continuación que se muestra en el card.
[5] observation_priority — el score para /live (distinto al de /actionable)
/live NO usa priority_score. Usa otro score 0–100 que mide "qué tan worth monitoring es esta acción ANTES de que reclame":
/live ordena: ENTERING_PULLBACK primero, luego pre_reclaim por observation_priority desc, luego strength. Top 10 sale.
[5] Sort + cutoff por lista
Por qué un setup puede pasar TODO y no aparecer
Caso real (ARWR, 2026-05-27): el stock pasa los 13 criterios de filtro de /actionable con pullback_quality = 89.40 (el highest del universo). Pero queda fuera del top 12 porque otros 12 stocks tienen final_priority ≥ 1.000 (clamp) después de aplicar context × group multipliers. Resultado: ARWR pasa filtro pero no aparece.
Lo mismo puede pasar en /live (cutoff 10) y /queue/emerging-leaders (cutoff 30). /queue/u-and-r y /queue/building-bases no tienen cutoff numérico: el filtro hace todo el trabajo, todos los survivors aparecen.
Diagnosticar un símbolo específico — usar /stock/[symbol]
Escribí el ticker en el search del nav (esquina superior derecha). El page muestra por cada lista los 3 estados posibles:
✓ verde = pasa criterios Y aparece (con rank exacto N/total)
⚠ amber = pasa criterios pero queda debajo del cutoff top-N (con explicación inline)
✗ rojo = falla uno o más criterios (expandible muestra cuáles y por cuánto)
Además abajo se muestra el detalle Minervini SEPA (8 criterios) y la historia de transitions del último mes con outcome.
Transitions — cambios de estado
El feed de transitions muestra stocks que cambiaron de estado de setup en las últimas horas. No es un screener — es detección de movimientos específicos en stocks que ya cumplen criterios de calidad.
Tipos de transición — pre-reclaim (foco operacional)
Son las que aparecen primero en el feed: el setup nace acá, antes del reclaim. El reclaim es la consecuencia, no el setup.
Tipos de transición — reclaim / continuación (existen, no dominan)
Tipos de transición — deterioro (eliminar)
stable — no se registra
stable ("monitoring, sin cambio") es el estado por defecto y nunca genera una observación. El feed y la base de transition_observations solo guardan transiciones non-stable. Por eso no aparece en ninguna cola ni en las cohorts empíricas.
Por qué estos nombres importan — son la cohort key empírica
El transition_type que ves acá es exactamente la primera mitad de la clave que usa la probabilidad de continuación empírica: (transition_type, rs_bucket). Cada vez que el sistema reporta "empirical (N=…)", está agrupando todas las observaciones resueltas del mismo transition_type y rango de RS. Por eso un tipo raro como flush_and_recover tarda más en tener suficiente N para salir de rule-based que uno común como entering_pullback.
Qué NO es el feed de transitions
No es una señal de compra automática. Es detección de comportamiento: el sistema observa que algo cambió en la estructura de precio del stock y lo registra. La decisión de entrada siempre requiere confirmar contexto de mercado (participation + leadership) y estructura propia del setup.
Probabilidad de continuación — empirical vs rule-based
Cada setup card muestra un porcentaje que estima la probabilidad de que el setup continúe favorablemente. Debajo del porcentaje aparece una etiqueta que indica de dónde viene ese número. Hay dos orígenes posibles.
empirical (N=…) — calculado sobre observaciones reales
El número viene de observaciones históricas reales almacenadas en la base de datos. El sistema busca todos los setups del mismo tipo y rango de RS que ya se resolvieron, y calcula la tasa de éxito real:
éxitos / (éxitos + fracasos)
Los resultados NEUTRAL (ni claro éxito ni claro fracaso dentro de la ventana de evaluación) se excluyen del denominador. No inflan ni deflactan la tasa — representan ambigüedad genuina.
El número entre paréntesis es el tamaño de la muestra: N=18 significa que la tasa se calculó sobre 18 observaciones resueltas. Un N=5 es el mínimo válido — técnicamente correcto pero estadísticamente escaso. Un N=50+ ya es robusto.
rule-based — fórmula compuesta
No hay suficientes observaciones históricas para este tipo de setup y rango de RS. El sistema usa una fórmula de pesos fijos: calidad semanal (40%), pullback quality (30%), RS vs SPY (20%), contracción de volumen (10%).
Esta fórmula no fue calibrada contra outcomes reales — es heurística. La etiqueta amber sirve para distinguirla visualmente del número empírico. Con el tiempo, a medida que se acumulen observaciones, más setups migrarán a fuente empírica.
Por qué N importa — cómo leer el tamaño de muestra
Por qué algunos setups siempre muestran rule-based
Tipos de transición raros o rangos de RS poco frecuentes tienen muy pocas observaciones históricas. El sistema requiere al menos 5 observaciones resueltas para reportar un número empírico. La proporción de setups con fuente empírica crecerá semana a semana a medida que la base de datos acumule más datos.
Cómo el contexto filtra los setups
Los descriptores de Participation y Leadership no son solo informativos — se traducen en decisiones concretas sobre cada lens y cada setup. El sistema aplica un multiplicador al priority_score y puede suprimir lenses completas cuando las condiciones de mercado lo justifican.
Multiplicadores de score — tres niveles
Supresión de lenses — cuándo y cuáles
Dos lenses pueden ser suprimidas por contexto. Building Bases nunca se suprime (formación estructural de semanas — independiente del régimen de corto plazo).
Supresión no oculta — respuesta estructurada
Cuando una lens está suprimida, la respuesta del sistema incluye suppressed: true con una razón en español y el context_snapshot que produjo la decisión. La lista de candidatos se calcula igual — el botón "ver de todas formas" la muestra sin un nuevo llamado al servidor.
El sistema siempre dice la verdad. El override es UI-only: el operador puede decidir ignorar la supresión, pero el backend no cambia su evaluación.
EXHAUSTED leadership — la advertencia amber
Cuando leadership = EXHAUSTED (y la combinación no está cubierta por una regla más fuerte), cada setup card muestra un badge amber exhausted junto al porcentaje de continuación. Los setups sobreviven la supresión pero el sistema avisa que el liderazgo está en fase de agotamiento.
UNKNOWN — nunca suprime
Si el motor de contexto devuelve UNKNOWN en cualquier dimensión (arranque en frío, base de datos vacía, cache vencido sin datos), el multiplicador es 1.0 y no se suprime ninguna lens. El sistema nunca restringe la vista del operador por datos ausentes — solo por datos adversos observados.
Barra de contexto — indicador de supresión
La barra superior muestra · suprime N lenses cuando el contexto actual activa alguna regla. Hacer click sobre ese texto muestra cuáles lenses están afectadas. Esto permite correlacionar el estado de la barra con el comportamiento de las colas sin abrir cada una.
Conceptos clave
ATR — Average True Range
El rango promedio diario de movimiento del stock, medido en precio absoluto. Se usa para normalizar distancias: en lugar de decir "el precio está $2 bajo la EMA21", se dice "está −0.8 ATR bajo la EMA21". Esto hace que las distancias sean comparables entre stocks de distintos precios y volatilidades.
RS — Relative Strength vs SPY (Mansfield, 13 semanas)
Mide la performance del stock contra el SPY sobre las últimas 13 semanas (65 sesiones), normalizada a 100 con la fórmula Mansfield:
RS = ((1 + retorno_stock_13w) / (1 + retorno_SPY_13w)) × 100
100 = paridad con el SPY · >100 lo superó · <100 quedó debajo. Es un cociente de factores de crecimiento, no una resta: con retornos chicos, RS 115 ≈ ~15% de outperformance, pero la aproximación se rompe con retornos grandes.
La escala no tiene techo: un líder de momentum fuerte que subió +350% en el trimestre da RS ≈ 400+ (≠ el RS-Rating percentil 1–99 tipo IBD, que no es lo que se calcula acá). SPY y QQQ quedan con RS nulo (se excluyen).
Distancias normalizadas por ATR
Muchas métricas de la plataforma expresan distancias en unidades de ATR en lugar de porcentajes. Por ejemplo, distance_to_ema21_atr de +2.5 significa que el precio está a 2.5 rangos diarios sobre su EMA21. Encima de +3 ATR se considera sobreextendido.
Por qué no hay un score único de mercado
Un número único como "mercado al 72%" o una etiqueta como "risk on" colapsa información en una dimensión y oculta contradicciones internas. Un mercado puede tener breadth expanding mientras el liderazgo se agota — eso es información crítica que un score único borra. La plataforma reporta dimensiones separadas para que el operador pueda ver esas contradicciones.