CommunityProgramación y desarrollogithub.com

tradermonty/vcp-screener

Filtra acciones del S&P 500 para el Patrón de Contracción de Volatilidad (VCP) de Mark Minervini y detecta VCPs históricas en la trayectoria de precios de un solo ticker.

¿Qué es vcp-screener?

Esta habilidad permite identificar el Patrón de Contracción de Volatilidad (VCP) de Mark Minervini en acciones del S&P 500. Detecta formaciones de bases apretadas con contracción de volatilidad cerca de puntos de pivote de ruptura, dentro de una tendencia alcista de Etapa 2. Incluye un modo histórico que recorre varios años de un ticker específico, emitiendo cada VCP formada con estadísticas de resultado futuro (ruptura, stop alcanzado, tiempo de espera). Es compatible con plataformas como Claude Code, Cursor y Codex, y utiliza la API de Financial Modeling Prep (FMP) para obtener datos de mercado. El flujo de trabajo consiste en ejecutar un script de Python que realiza un análisis en tres fases: prefiltro, filtro de tendencia y detección VCP. Los resultados se presentan en informes JSON y Markdown, con recomendaciones accionables basadas en el estado de ejecución y la puntuación de calidad del patrón.

Compatible con~Claude Code~Codex CLI✓Cursor
npx skills add https://github.com/tradermonty/claude-trading-skills/tree/main/skills/vcp-screener

Installed? Explore more Programación y desarrollo skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

VCP Screener - Patrón de Contracción de Volatilidad de Minervini

Filtra acciones del S&P 500 para el Patrón de Contracción de Volatilidad (VCP) de Mark Minervini, identificando acciones en tendencia alcista de Etapa 2 con volatilidad contrayéndose cerca de puntos de pivote de ruptura.

Cuándo Usarlo

  • El usuario solicita un screener VCP o configuraciones estilo Minervini
  • El usuario quiere encontrar patrones de base apretada / contracción de volatilidad
  • El usuario solicita escaneo de acciones de impulso en Etapa 2
  • El usuario busca candidatos a ruptura con riesgo definido
  • El usuario pide "encuentra cada VCP histórica en " o quiere estudiar las configuraciones VCP pasadas de un ticker con resultados futuros (--history --ticker SYM)

Requisitos Previos

  • Clave API de FMP (configurar la variable de entorno FMP_API_KEY o pasar --api-key)
  • El nivel gratuito (250 llamadas/día) es suficiente para el filtrado predeterminado (top 100 candidatos)
  • Se recomienda el nivel de pago para el filtrado completo del S&P 500 (--full-sp500)

Flujo de Trabajo

Paso 1: Preparar y Ejecutar el Filtrado

Ejecuta el script del screener VCP:

# Predeterminado: S&P 500, top 100 candidatos
python3 skills/vcp-screener/scripts/screen_vcp.py --output-dir skills/vcp-screener/scripts

# Universo personalizado
python3 skills/vcp-screener/scripts/screen_vcp.py --universe AAPL NVDA MSFT AMZN META --output-dir skills/vcp-screener/scripts

# S&P 500 completo (nivel de API de pago)
python3 skills/vcp-screener/scripts/screen_vcp.py --full-sp500 --output-dir skills/vcp-screener/scripts

Modo Estricto (configuración pura de Minervini)

Solo devuelve acciones con valid_vcp=True Y execution_state en (Pre-breakout, Breakout):

python3 skills/vcp-screener/scripts/screen_vcp.py --strict --output-dir reports/

Modo histórico de un solo ticker

Recorre el historial de varios años de un ticker, detecta cada VCP que se haya formado y adjunta estadísticas de resultado futuro (ruptura / stop alcanzado / tiempo de espera, días hasta el resultado, ganancia máxima, pérdida máxima) por detección. Útil para estudio de patrones y contexto de backtesting, no es un screener en tiempo real.

# Predeterminado: escanea ~5 años (1260 días de negociación), paso de 5 días, ventana de resultado de 60 días
python3 skills/vcp-screener/scripts/screen_vcp.py \
  --history --ticker FIX --output-dir reports/

# Longitud de escaneo personalizada: 750 días de negociación (~3 años), ventana de resultado de 90 días
python3 skills/vcp-screener/scripts/screen_vcp.py \
  --history 750 --ticker TSLA \
  --stride-days 5 --outcome-days 90 \
  --output-dir reports/

# Escaneo largo: 10 años (2520 días de negociación)
python3 skills/vcp-screener/scripts/screen_vcp.py \
  --history 2520 --ticker NVDA --output-dir reports/

Salidas (con marca de tiempo):

  • vcp_history_<SYM>_<YYYY-MM-DD_HHMMSS>.json — línea de tiempo de detecciones con carga completa del analizador + forward_outcome por detección + estadísticas resumidas.
  • vcp_history_<SYM>_<YYYY-MM-DD_HHMMSS>.md — línea de tiempo legible para humanos.

Banderas específicas del modo:

ParámetroPredeterminadoRangoEfecto
--history [DAYS](desactivado) / 1260 si está vacío100-5040Habilita el modo histórico; opcionalmente especifica la ventana de escaneo en días de negociación (requiere --ticker)
--ticker SYM——Ticker a escanear
--stride-days51-60Paso en días de negociación entre posiciones del cursor "a fecha de"
--outcome-days605-252Ventana futura evaluada por detección

Notas:

  • Dos llamadas a la API de FMP por escaneo (historial del ticker + SPY), no 100+ como el pipeline transversal.
  • marketCap y percentil absoluto de RS reflejan el ticker de forma aislada, no contra el universo de filtrado en vivo; usa este informe para estudio de patrones, no para dimensionamiento de cartera.
  • Las detecciones se deduplican por (T1_high_date, last_low_date, pivot) para que la misma VCP no se reporte repetidamente a medida que el cursor envejece.

Ajuste Avanzado (para backtesting)

Ajusta los parámetros de detección VCP para investigación y backtesting:

python3 skills/vcp-screener/scripts/screen_vcp.py \
  --min-contractions 3 \
  --t1-depth-min 12.0 \
  --breakout-volume-ratio 2.0 \
  --trend-min-score 90 \
  --atr-multiplier 1.5 \
  --output-dir reports/
ParámetroPredeterminadoRangoEfecto
--min-contractions22-4Más alto = menos patrones pero de mayor calidad
--t1-depth-min10.0%1-50Más alto = excluye correcciones iniciales superficiales
--breakout-volume-ratio1.5x0.5-10Más alto = confirmación de volumen más estricta
--trend-min-score850-100Más alto = filtro de Etapa 2 más estricto
--atr-multiplier1.50.5-5Más bajo = detección de oscilaciones más sensible
--contraction-ratio0.700.1-1Más bajo = requiere contracciones más ajustadas
--min-contraction-days51-30Más alto = duración mínima de contracción más larga
--lookback-days12030-365Más largo = encuentra patrones más antiguos
--max-sma200-extension50.0%—Umbral de distancia SMA200 para estado Sobreextendido y penalización
--wide-and-loose-threshold15.0%—Profundidad de contracción final por encima de la cual se activa la bandera wide-and-loose
--strictdesactivado—Modo estricto de Minervini: solo Pre-breakout o Breakout con VCP válido

Paso 2: Revisar Resultados

  1. Lee los informes JSON y Markdown generados
  2. Carga references/vcp_methodology.md para contexto de interpretación de patrones
  3. Carga references/scoring_system.md para orientación sobre umbrales de puntuación

Paso 3: Presentar Análisis

Para cada candidato principal, presenta:

  • Calidad (composite_score / calificación) — ¿qué tan bien formado está el patrón VCP?
  • Estado de Ejecución (execution_state) — ¿es comprable ahora? (Pre-breakout / Breakout = accionable)
  • Tipo de Patrón (pattern_type) — VCP de libro / VCP-adyacente / Post-ruptura / Líder Extendido / Dañado
  • Marcador ★ si se aplicó un Límite de Estado (la puntuación bruta fue reducida)
  • Detalles de contracción (profundidades y ratios T1/T2/T3)
  • Configuración de trading: precio pivote, stop-loss, porcentaje de riesgo
  • Ratio de agotamiento de volumen y puntuación de volumen de ruptura
  • Rango de fuerza relativa

Paso 4: Proporcionar Orientación Accionable

Por Estado de Ejecución (filtro principal):

  • Pre-breakout / Breakout: El patrón está en la ventana de entrada activa — aplica dimensionamiento basado en calificación
  • Post-ruptura temprana: La ruptura está en marcha pero por encima de la entrada ideal — tamaño reducido o esperar un retroceso
  • Extendido / Sobreextendido: Operación perdida — añadir a la lista de seguimiento para la próxima base
  • Dañado / Inválido: Configuración invalidada — no entrar

Por Calificación (secundario, después de que el estado confirme accionabilidad):

  • VCP de libro (90+): Comprar en el pivote con dimensionamiento agresivo (1.5-2x)
  • VCP fuerte (80-89): Comprar en el pivote con dimensionamiento estándar (1x)
  • VCP buena (70-79): Comprar con confirmación de volumen por encima del pivote (0.75x)
  • En desarrollo (60-69): Añadir a la lista de seguimiento, esperar una contracción más ajustada
  • VCP débil/sin VCP (<60): Solo monitorear o saltar

Pipeline de 3 Fases

  1. Pre-Filtro - Filtrado basado en cotizaciones (precio, volumen, posición a 52 semanas) ~101 llamadas API
  2. Plantilla de Tendencia - Filtro de Etapa 2 de 7 puntos con historiales de 260 días ~100 llamadas API
  3. Detección VCP - Análisis de patrones, puntuación, generación de informes (sin llamadas API adicionales)

Salida

  • vcp_screener_YYYY-MM-DD_HHMMSS.json - Resultados estructurados
  • vcp_screener_YYYY-MM-DD_HHMMSS.md - Informe legible para humanos

Recursos

  • references/vcp_methodology.md - Teoría VCP y explicación de la Plantilla de Tendencia
  • references/scoring_system.md - Umbrales de puntuación y pesos de componentes
  • references/fmp_api_endpoints.md - Puntos finales de API y límites de tasa

Individual skills in this repo

This repo contains 14 individual skills — each has its own dedicated page.

tradermonty/backtest-expert

Expert guidance for systematic backtesting of trading strategies. Use when developing, testing, stress-testing, or validating quantitative trading strategies. Covers "beating ideas to death" methodology, parameter robustness testing, slippage modeling, bias prevention, and interpreting backtest results. Applicable when user asks about backtesting, strategy validation, robustness testing, avoiding overfitting, or systematic trading development.

tradermonty/market-environment-analysis

Comprehensive market environment analysis and reporting tool. Analyzes global markets including US, European, Asian markets, forex, commodities, and economic indicators. Provides risk-on/risk-off assessment, sector analysis, and technical indicator interpretation. Triggers on keywords like market analysis, market environment, global markets, trading environment, market conditions, investment climate, market sentiment, forex analysis, stock market analysis, 相場環境, 市場分析, マーケット状況, 投資環境.

tradermonty/market-news-analyst

This skill should be used when analyzing recent market-moving news events and their impact on equity markets and commodities. Use this skill when the user requests analysis of major financial news from the past 10 days, wants to understand market reactions to monetary policy decisions (FOMC, ECB, BOJ), needs assessment of geopolitical events' impact on commodities, or requires comprehensive review of earnings announcements from mega-cap stocks. The skill automatically collects news using WebSearch/WebFetch tools and produces impact-ranked analysis reports. All analysis thinking and output are conducted in English.

tradermonty/options-strategy-advisor

Options trading strategy analysis and simulation tool. Provides theoretical pricing using Black-Scholes model, Greeks calculation, strategy P/L simulation, and risk management guidance. Use when user requests options strategy analysis, covered calls, protective puts, spreads, iron condors, earnings plays, or options risk management. Includes volatility analysis, position sizing, and earnings-based strategy recommendations. Educational focus with practical trade simulation.

tradermonty/portfolio-manager

Comprehensive portfolio analysis using Alpaca MCP Server integration to fetch holdings and positions, then analyze asset allocation, risk metrics, individual stock positions, diversification, and generate rebalancing recommendations. Use when user requests portfolio review, position analysis, risk assessment, performance evaluation, or rebalancing suggestions for their brokerage account.

tradermonty/scenario-analyzer

Skill that analyzes 18-month scenarios from a news headline. Runs the primary analysis with the scenario-analyst agent and obtains a second opinion with the strategy-reviewer agent. Generates a comprehensive English report covering 1st/2nd/3rd-order impacts, recommended stocks, and a critical review. Example: /scenario-analyzer "Fed raises rates by 50bp" Triggers: news analysis, scenario analysis, 18-month outlook, medium-to-long-term investment strategy

tradermonty/sector-analyst

This skill should be used when analyzing sector rotation patterns and market cycle positioning. It fetches sector uptrend data from CSV (no API key required) and optionally accepts chart images for supplementary analysis. Use this skill when the user requests sector rotation analysis, cyclical vs defensive assessment, overbought/oversold identification, or market cycle phase estimation. All analysis and output are conducted in English.

tradermonty/signal-postmortem

Record and analyze post-trade outcomes for signals generated by edge pipeline and other skills. Track false positives, missed opportunities, and regime mismatches. Feed results back to edge-signal-aggregator weights and skill improvement backlog.

tradermonty/skill-designer

Design new Claude skills from structured idea specifications. Use when the skill auto-generation pipeline needs to produce a Claude CLI prompt that creates a complete skill directory (SKILL.md, references, scripts, tests) following repository conventions.

tradermonty/skill-idea-miner

Mine Claude Code session logs for skill idea candidates. Use when running the weekly skill generation pipeline to extract, score, and backlog new skill ideas from recent coding sessions.

tradermonty/theme-detector

Detect and analyze trending market themes across sectors. Use when user asks about current market themes, trending sectors, sector rotation, thematic investing, what themes are hot or cold, or wants to identify bullish and bearish market narratives with lifecycle analysis.

tradermonty/uptrend-analyzer

Analyzes market breadth using Monty's Uptrend Ratio Dashboard data to diagnose the current market environment. Generates a 0-100 composite score from 5 components (breadth, sector participation, rotation, momentum, historical context). Use when asking about market breadth, uptrend ratios, or whether the market environment supports equity exposure. No API key required.

tradermonty/us-stock-analysis

Comprehensive US stock analysis including fundamental analysis (financial metrics, business quality, valuation), technical analysis (indicators, chart patterns, support/resistance), stock comparisons, and investment report generation. Use when user requests analysis of US stock tickers (e.g., "analyze AAPL", "compare TSLA vs NVDA", "give me a report on Microsoft"), evaluation of financial metrics, technical chart analysis, or investment recommendations for American stocks.

tradermonty/value-dividend-screener

Screen US stocks for high-quality dividend opportunities combining value characteristics (P/E ratio under 20, P/B ratio under 2), attractive yields (3% or higher), and consistent growth (dividend/revenue/EPS trending up over 3 years). Supports two-stage screening using FINVIZ Elite API for efficient pre-filtering followed by FMP API for detailed analysis. Use when user requests dividend stock screening, income portfolio ideas, or quality value stocks with strong fundamentals.

Skills relacionados