From tradermonty-claude-trading-skills
Screens S&P 500 stocks for Minervini's Volatility Contraction Pattern (VCP) and detects historical VCPs in single ticker price paths. Identifies Stage 2 uptrend stocks with contracting volatility near breakout pivot points.
How this skill is triggered — by the user, by Claude, or both
Slash command
/tradermonty-claude-trading-skills:vcp-screenerThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
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.
references/fmp_api_endpoints.mdreferences/scoring_system.mdreferences/vcp_methodology.mdscripts/_fmp_compat.pyscripts/calculators/__init__.pyscripts/calculators/execution_state.pyscripts/calculators/forward_outcome.pyscripts/calculators/pattern_classifier.pyscripts/calculators/pivot_proximity_calculator.pyscripts/calculators/relative_strength_calculator.pyscripts/calculators/trend_template_calculator.pyscripts/calculators/vcp_pattern_calculator.pyscripts/calculators/volume_pattern_calculator.pyscripts/fmp_client.pyscripts/historical_report.pyscripts/historical_scanner.pyscripts/report_generator.pyscripts/scorer.pyscripts/screen_vcp.pyscripts/tests/conftest.pyScreen S&P 500 stocks for Mark Minervini's Volatility Contraction Pattern (VCP), identifying Stage 2 uptrend stocks with contracting volatility near breakout pivot points.
--history --ticker SYM)FMP_API_KEY environment variable or pass --api-key)--full-sp500)Run the VCP screener script:
# Default: S&P 500, top 100 candidates
python3 skills/vcp-screener/scripts/screen_vcp.py --output-dir skills/vcp-screener/scripts
# Custom universe
python3 skills/vcp-screener/scripts/screen_vcp.py --universe AAPL NVDA MSFT AMZN META --output-dir skills/vcp-screener/scripts
# Full S&P 500 (paid API tier)
python3 skills/vcp-screener/scripts/screen_vcp.py --full-sp500 --output-dir skills/vcp-screener/scripts
Only return stocks with valid_vcp=True AND execution_state in (Pre-breakout, Breakout):
python3 skills/vcp-screener/scripts/screen_vcp.py --strict --output-dir reports/
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.
# Default: scan ~5 years (1260 trading days), 5-day stride, 60-day outcome window
python3 skills/vcp-screener/scripts/screen_vcp.py \
--history --ticker FIX --output-dir reports/
# Custom scan length: 750 trading days (~3 years), 90-day outcome window
python3 skills/vcp-screener/scripts/screen_vcp.py \
--history 750 --ticker TSLA \
--stride-days 5 --outcome-days 90 \
--output-dir reports/
# Long scan: 10 years (2520 trading days)
python3 skills/vcp-screener/scripts/screen_vcp.py \
--history 2520 --ticker NVDA --output-dir reports/
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:
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.(T1_high_date, last_low_date, pivot) so
the same VCP isn't reported repeatedly as the cursor ages.Adjust VCP detection parameters for research and 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/
| 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 |
references/vcp_methodology.md for pattern interpretation contextreferences/scoring_system.md for score threshold guidanceFor each top candidate, present:
composite_score / rating) — how well-formed is the VCP pattern?execution_state) — is it buyable now? (Pre-breakout / Breakout = actionable)pattern_type) — Textbook VCP / VCP-adjacent / Post-breakout / Extended Leader / Damaged★ marker if a State Cap was applied (raw score was downgraded)By Execution State (primary filter):
By Rating (secondary, after state confirms actionability):
vcp_screener_YYYY-MM-DD_HHMMSS.json - Structured resultsvcp_screener_YYYY-MM-DD_HHMMSS.md - Human-readable reportreferences/vcp_methodology.md - VCP theory and Trend Template explanationreferences/scoring_system.md - Scoring thresholds and component weightsreferences/fmp_api_endpoints.md - API endpoints and rate limitsnpx claudepluginhub tradermonty/claude-trading-skillsGenerates Minervini breakout trade plans from VCP screener JSON: worst-case risk calculation, position sizing, portfolio heat management, and Alpaca-compatible order templates.
Performs technical analysis of US stocks using chart patterns (head & shoulders, triangles), candlesticks, indicators (RSI, MACD, Bollinger Bands, moving averages), volume, trends, and support/resistance. Generates price and volume chart data tables with --chart flag.
Identifies market regimes (trending/ranging, high/low volatility) using ATR percentile and ADX to guide strategy selection and position sizing.