vcp-screener

Screen S&P 500 stocks for Mark Minervini's Volatility Contraction Pattern (VCP) and detect historical VCPs in a single ticker's price path. Identifies Stage 2 uptrend stocks forming tight bases with contracting volatility near breakout pivot points; in historical single-ticker mode walks a multi-yea

By tradermonty · 2,220 installs

npx skills add tradermonty/claude-trading-skills --skill vcp-screener

Source repository · Upstream listing

VCP Screener Minervini Volatility Contraction Pattern Screen S&P 500 stocks for Mark Minervini's Volatility Contraction Pattern (VCP), identifying Stage 2 uptrend stocks with contracting volatility near breakout pivot points. When to Use User asks for VCP screening or Minervini style setups User wants to find tight base / volatility contraction patterns User requests Stage 2 momentum stock scanning User asks for breakout candidates with defined risk User asks "find every historical VCP in <TICKER " or wants to study one ticker's past VCP setups with forward outcomes ( history ticker SYM ) Prerequisites FMP API key (set FMP API KEY environment variable or pass api key ) Free tier (250 calls/day) is sufficient for default screening (top 100 candidates) Paid tier recommended for full S&P 500 screening ( full sp500 ) Workflow Step 1: Prepare and Execute Screening Run the VCP screener script: Strict Mode (Minervini pure setup) Only return stocks with valid vcp=True AND execution state in (Pre breakout, Breakout) : Historical single ticker mode Walk one ticker's multi year history, detect every VCP that ever formed, and attach forward outcome stats (breakout / stop hit / timeout, days to outcome, max gain, max loss) per detection. Useful for pattern study and backtesting context — not a real time screener. Outputs (timestamped): vcp history <SYM <YYYY MM DD HHMMSS .json — timeline of detections with full analyzer payload + forward outcome per detection + summary stats. vcp history <SYM <YYYY MM DD HHMMSS .md — human readable timeline. Mode specific flags: Parameter Default Range Effect history [DAYS] (off) / 1260 if bare 100 5040 Enable historical mode; optionally specify trading day scan window (requires ticker ) ticker SYM — — Ticker to scan stride days 5 1 60 Trading day step between as of cursor positions outcome days 60 5 252 Forward window evaluated per detection Notes: Two FMP API calls per scan (ticker + SPY history), not 100+ like the cross sectional pipeline. marketCap and absolute RS percentile reflect the ticker in isolation, not against the live screening universe — use this report for pattern study, not portfolio sizing. Detections are deduplicated by (T1 high date, last low date, pivot) so the same VCP isn't reported repeatedly as the cursor ages. Advanced Tuning (for backtesting) Adjust VCP detection parameters for research and backtesting: Parameter Default Range Effect min contractions 2 2 4 Higher = fewer but higher quality patterns t1 depth min 10.0% 1 50 Higher = excludes shallow first corrections breakout volume ratio 1.5x 0.5 10 Higher = stricter volume confirmation trend min score 85 0 100 Higher = stricter Stage 2 filter atr multiplier 1.5 0.5 5 Lower = more sensitive swing detection contraction ratio 0.70 0.1 1 Lower = requires tighter contractions min contraction days 5 1 30 Higher = longer minimum contraction lookback days 120 30 365 Longer = finds older patterns max sma200 extension 50.0% — SMA200 distance threshold for Overextended state and penalty wide and loose threshold 15.0% — Final contraction depth above which wide and loose flag triggers strict off — Minervini strict mode: only Pre breakout or Breakout with valid VCP Step 2: Review Results 1. Read the generated JSON and Markdown reports 2. Load references/vcp methodology.md for pattern interpretation context 3. Load references/scoring system.md for score threshold guidance Step 3: Present Analysis For each top candidate, present: Quality ( composite score / rating) — how well formed is the VCP pattern? Execution State ( execution state ) — is it buyable now? (Pre breakout / Breakout = actionable) Pattern Type ( pattern type ) — Textbook VCP / VCP adjacent / Post breakout / Extended Leader / Damaged ★ marker if a State Cap was applied (raw score was downgraded) Contraction details (T1/T2/T3 depths and ratios) Trade setup: pivot price, stop loss, risk percentage Volume dry up ratio and breakout volume score Relative strength rank Step 4: Provide Actionable Guidance By Execution State (primary filter): Pre breakout / Breakout: Pattern is in the active entry window — apply rating based sizing Early post breakout: Breakout underway but above ideal entry — reduced size or wait for pullback Extended / Overextended: Trade missed — add to watchlist for next base Damaged / Invalid: Setup invalidated — do not enter By Rating (secondary, after state confirms actionability): Textbook VCP (90+): Buy at pivot with aggressive sizing (1.5 2x) Strong VCP (80 89): Buy at pivot with standard sizing (1x) Good VCP (70 79): Buy on volume confirmation above pivot (0.75x) Developing (60 69): Add to watchlist, wait for tighter contraction Weak/No VCP (<60): Monitor only or skip 3 Phase Pipeline 1. Pre Filter Quote based screening (price, volume, 52w position) ~101 API calls 2. Trend Template 7 point Stage 2 filter with 260 day histories ~100 API calls 3. VCP Detection Pattern analysis, scoring, report generation (no additional API calls) Output vcp screener YYYY MM DD HHMMSS.json Structured results vcp screener YYYY MM DD HHMMSS.md Human readable report Resources references/vcp methodology.md VCP theory and Trend Template explanation references/scoring system.md Scoring thresholds and component weights references/fmp api endpoints.md API endpoints and rate limits