Indian-trading-skills nse-vcp-screener

Screen Nifty 500 stocks for Mark Minervini's Volatility Contraction Pattern (VCP) — identifying Stage 2 uptrends with tightening price ranges and declining volume before potential breakouts. Use this skill when the user requests VCP screening, Minervini-style setups, Stage 2 breakout candidates, or volatility contraction patterns on NSE/BSE stocks.

install
source · Clone the upstream repo
git clone https://github.com/ajeeshworkspace/indian-trading-skills
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/ajeeshworkspace/indian-trading-skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/nse-vcp-screener" ~/.claude/skills/ajeeshworkspace-indian-trading-skills-nse-vcp-screener && rm -rf "$T"
manifest: skills/nse-vcp-screener/SKILL.md
source content

NSE VCP Screener

Overview

This skill screens Indian stocks (Nifty 50/200/500) for Mark Minervini's Volatility Contraction Pattern (VCP). The VCP identifies stocks in Stage 2 uptrends that are forming tightening bases with declining volume — the classic setup before a potential breakout.

The screening pipeline has 3 phases:

  1. Pre-filter: Quick quote-based filtering to eliminate obvious non-candidates
  2. Trend Template: Apply Minervini's 7-point Stage 2 criteria using 260-day histories
  3. VCP Detection & Scoring: Pattern analysis with 5-component composite scoring

Data Source

This screener uses yfinance with

.NS
suffix for NSE stocks and the niftystocks package for stock universe lists. No paid API keys required.

Execution

python3 scripts/screen_vcp.py --universe nifty500

Command-Line Arguments

ArgumentDefaultDescription
--universe
nifty50
Stock universe:
nifty50
,
nifty200
,
nifty500
, or
custom
--custom-tickers
Comma-separated tickers for custom universe (e.g.,
RELIANCE,TCS,INFY
)
--min-contractions
2
Minimum number of contractions (2-4)
--t1-depth-min
10
Minimum T1 contraction depth %
--t1-depth-max
40
Maximum T1 contraction depth %
--contraction-ratio
0.75
Each contraction must be ≤ this ratio of the previous
--min-contraction-days
5
Minimum days per contraction
--lookback-days
120
Days to look back for pattern detection
--breakout-volume-ratio
1.5
Minimum volume ratio for breakout confirmation
--trend-min-score
85
Minimum trend template score (0-100)
--output-dir
reports/
Output directory for results

Workflow

Step 1: Execute the Screener

Run the Python script with desired parameters:

python3 skills/nse-vcp-screener/scripts/screen_vcp.py \
  --universe nifty500 \
  --output-dir reports/

Step 2: Review Results

Load and review the generated reports:

  • JSON:
    reports/vcp_screener_YYYY-MM-DD_HHMMSS.json
    (structured data)
  • Markdown:
    reports/vcp_screener_YYYY-MM-DD_HHMMSS.md
    (human-readable report)

Step 3: Load References for Interpretation

Read: references/vcp_methodology.md
Read: references/scoring_system.md

Step 4: Present Top Candidates

For each top-scoring candidate, present:

  1. Composite Score (0-100)
  2. Contraction Structure (T1/T2/T3 depths and durations)
  3. Volume Pattern (dry-up ratio)
  4. Pivot Level (breakout price)
  5. Relative Strength vs Nifty 50

Step 5: Actionable Insights

For the top 5-10 candidates:

  • Note proximity to pivot/breakout level
  • Assess if volume is confirming or diverging
  • Check for upcoming F&O expiry or result season impacts
  • Identify F&O lot size (if stock is in F&O segment)

Scoring System

The composite score (0-100) weights 5 components:

ComponentWeightWhat It Measures
Trend Template25%Minervini's 7-point Stage 2 criteria
Contraction Quality25%Tightening base structure
Volume Pattern20%Volume dry-up ratio
Pivot Proximity15%Distance from breakout level
Relative Strength15%Performance vs Nifty 50

Indian Market Adaptations

  • Universe: Nifty 50/200/500 instead of S&P 500
  • Benchmark: Relative strength measured vs Nifty 50 (^NSEI) instead of S&P 500
  • Volatility: T1 depth range widened to 10-40% (vs 8-35% for US) due to higher small-cap volatility
  • Circuit Limits: Stocks hitting circuits may show false VCP patterns — flagged in results
  • Liquidity Filter: Minimum average daily volume of ₹1 crore to filter illiquid stocks
  • F&O Availability: Results indicate whether the stock is in the F&O segment

Resources

references/vcp_methodology.md

Mark Minervini's VCP theory, Stage 2 criteria, contraction rules, and entry methodology adapted for Indian markets.

references/scoring_system.md

Detailed breakdown of the 5-component composite scoring system with thresholds and examples.