VCP + TTM Squeeze Breakout Strategy

This strategy combines Mark Minervini’s Volatility Contraction Pattern (VCP) with the TTM Squeeze momentum framework to detect explosive breakouts in strong trending markets.
It identifies periods of volatility contraction within up-trending stocks and executes only when price, momentum, and volume confirm a valid breakout.
The system was designed to be robust and non-optimized, using one set of parameters that performs consistently across multiple stocks and indices without overfitting.
This strategy is based on the previously published “VCP + TTM Squeeze Breakout Detection Tool”, which is a public indicator by the same author.
The strategy expands upon that indicator by adding position management, ATR-based stop logic, Supertrend trailing, and full backtesting functionality.
Core Concept
- VCP detects volatility contraction using ATR and volume.
- TTM Squeeze measures compression between Bollinger Bands and Keltner Channels.
- EMA filter ensures that trades only occur in established uptrends.
- Pivot logic tracks recent highs and resets automatically after failed attempts.
- Breakout triggers when price closes above pivot, volume exceeds its average, momentum is positive, and—if enabled—the TTM Squeeze releases (green).
- Stop-loss is ATR-based and transitions to a Supertrend trailing stop once profits exceed ≈ 1 %.
- This creates a mechanical system that mirrors institutional-style breakout trading while minimizing noise and false signals.
Input Parameters
🔹 VCP Settings
- VCP Period (10) – ATR lookback for volatility contraction
- Pivot Lookback (5) – number of bars used to define resistance
- Volatility Tolerance (1.1) – ATR compression threshold
- Volume & TrueRange Comparisons (5) – lookbacks for breakout validation
- Max Days Active (50) – how long the pattern remains valid
- EMA 50 / 100 / 200 – trend filter; must be aligned upward
- Use TTM Squeeze (true) – activates compression filter
🔹 TTM Squeeze Settings
- Length (20) – core period for BB and KC calculations
- Bollinger STD (2.0) – standard deviation multiplier
- Keltner Channels (1.5 / 2 / 3) – three compression zones
- Green = No Squeeze
- Orange/Red/Black = Compression levels
🔹 ATR Stop Loss
- ATR Length (14)
- Smoothing (RMA)
- Multiplier (1.0) – defines distance below swing low
- Show Lines (true) – optional visualization
🔹 Trailing Stop (Supertrend)
- ATR Length (10)
- Factor (3.0) – standard Supertrend setting
- Active after ≈ 1 % profit – replaces initial ATR stop
Entry Conditions
- Price > EMA 50/100/200 and EMAs in ascending order
- ATR indicates volatility contraction (≤ lowest ATR × 1.1)
- A Pivot High is set over the last 5 bars
Breakout occurs when:
• Close > Pivot High
• Volume > average of past 5 bars
• Momentum > 0
• (If enabled) TTM Squeeze = No Squeeze (green)
• Price > Supertrend
A new position is entered the next bar when all conditions are true.
Exit Logic
- Initial Stop-Loss: Low[1] − ATR × Multiplier
- Trailing Stop: Supertrend (ATR 10 × Factor 3) after ≈ 1 % gain
- Exit Condition: Triggered if price hits stop or volume/TR drops below average.
- Stops are handled through strategy.exit() to ensure immediate execution.
Visualization
- Yellow dots = VCP setup (active contraction)
- Green dots = active breakout
- Red/Blue lines = current stop loss
- Green line = entry price
- Colored bars (top) = momentum strength
- Bottom squares = Squeeze status (green = free, orange/red = compressed)
Performance and Risk Considerations
- Designed for daily or 4-hour charts of trending equities or ETFs.
- Best results in high-momentum stocks (e.g., tech, growth sectors).
- Avoid using on range-bound or low-volume assets.
- Typical backtests show a high profit factor (> 2) with controlled drawdowns.
- Each trade risks ≈ 1 – 2 % of equity when sized per ATR.
Disclaimer
This strategy is for educational purposes only and does not constitute financial advice.
Past performance from backtesting does not guarantee future results.
Use responsibly and adjust risk according to your account size and broker conditions.
สคริปต์แบบเฉพาะผู้ได้รับเชิญเท่านั้น
เฉพาะผู้ใช้ที่ได้รับการอนุมัติจากผู้เขียนเท่านั้นที่สามารถเข้าถึงสคริปต์นี้ได้ คุณจะต้องร้องขอและได้รับอนุญาตก่อนจึงจะสามารถใช้งานได้ โดยปกติจะได้รับอนุญาตหลังจากชำระเงินแล้ว สำหรับรายละเอียดเพิ่มเติม ทำตามคำแนะนำของผู้เขียนด้านล่างหรือติดต่อ kaspareit-trading โดยตรง
TradingView ไม่แนะนำให้ชำระเงินหรือใช้สคริปต์ เว้นแต่ว่าคุณจะเชื่อถือผู้เขียนสคริปต์และเข้าใจวิธีการทำงานของมัน คุณยังอาจพบทางเลือกของโอเพนซอร์ส แบบฟรีในสคริปต์ชุมชนของเรา
คำแนะนำของผู้เขียน
คำจำกัดสิทธิ์ความรับผิดชอบ
สคริปต์แบบเฉพาะผู้ได้รับเชิญเท่านั้น
เฉพาะผู้ใช้ที่ได้รับการอนุมัติจากผู้เขียนเท่านั้นที่สามารถเข้าถึงสคริปต์นี้ได้ คุณจะต้องร้องขอและได้รับอนุญาตก่อนจึงจะสามารถใช้งานได้ โดยปกติจะได้รับอนุญาตหลังจากชำระเงินแล้ว สำหรับรายละเอียดเพิ่มเติม ทำตามคำแนะนำของผู้เขียนด้านล่างหรือติดต่อ kaspareit-trading โดยตรง
TradingView ไม่แนะนำให้ชำระเงินหรือใช้สคริปต์ เว้นแต่ว่าคุณจะเชื่อถือผู้เขียนสคริปต์และเข้าใจวิธีการทำงานของมัน คุณยังอาจพบทางเลือกของโอเพนซอร์ส แบบฟรีในสคริปต์ชุมชนของเรา