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.
Scanned 9/2/2026
Install to Claude Code
npx -y skills add majiayu000/claude-skill-registry --skill nse-vcp-screener --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Nse Vcp Screener?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/majiayu000-nse-vcp-screener-claude-skill-registry)More formats (shields.io, HTML) on the badges page.
---
name: nse-vcp-screener
description: 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.
---
# 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
```bash
python3 scripts/screen_vcp.py --universe nifty500
```
### Command-Line Arguments
| Argument | Default | Description |
|----------|---------|-------------|
| `--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:
```bash
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:
| Component | Weight | What It Measures |
|-----------|--------|-----------------|
| Trend Template | 25% | Minervini's 7-point Stage 2 criteria |
| Contraction Quality | 25% | Tightening base structure |
| Volume Pattern | 20% | Volume dry-up ratio |
| Pivot Proximity | 15% | Distance from breakout level |
| Relative Strength | 15% | 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.
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!