Antigravity OCC Strategy (MA 5 + Delayed TSL)# OCC Strategy Optimized (MA 5 + Delayed TSL) - User Guide
## Introduction
The **OCC Strategy Optimized** is an enhanced version of the classic **Open Close Cross (OCC)** strategy. This strategy is designed for high-precision trend following, utilizing the crossover logic of Open and Close moving averages to identify market shifts. This optimized version incorporates advanced risk management, multi-timeframe analysis, and a variety of moving average types to provide a robust trading solution for modern markets.
>
> **Special Thanks:** This strategy is based on the original work of **JustUncleL**, a renowned Pine Script developer. You can find their work and profile on TradingView here: (in.tradingview.com).
---
## Key Features
### 1. Optimized Core Logic
- **MA Period (Default: 5):** The strategy is tuned with a shorter MA length to reduce lag and capture trends earlier.
- **Crossing Logic:** Signals are generated when the Moving Average of the **Close** crosses the Moving Average of the **Open**.
### 2. Multi-Timeframe (MTF) Analysis
- **Alternate Resolution:** Use a higher timeframe (Resolution Multiplier) to filter out noise. By default, it uses $3 \times$ your current chart timeframe to confirm the trend.
- **Non-Repainting:** Includes an optional delay offset to ensure signals are confirmed and do not disappear (repaint) after the bar closes.
### 3. Advanced Risk Management
This script features a hierarchical exit system to protect your capital and lock in profits:
- **Fixed Stop Loss (Initial):** Protects against sudden market reversals immediately after entry.
- **Delayed Trailing Stop Loss (TSL):**
- **Activation Delay:** The TSL only activates after the trade reaches a specific profit threshold (e.g., 1%). This prevents being stopped out too early in the trade's development.
- **Ratchet Trail:** Once activated, the stop loss "ratchets" up/down, never moving backward, ensuring you lock in profits as the trend continues.
- **Take Profit (TP):** A fixed percentage target to exit the trade at a pre-defined profit level.
### 4. Versatility
- **12 MA Types:** Choose from SMA, EMA, DEMA, TEMA, WMA, VWMA, SMMA, HullMA, LSMA, ALMA, SSMA, and TMA.
- **Trade Direction:** Toggle between Long-only, Short-only, or Both.
- **Visuals:** Optional bar coloring to visualize the trend directly on the candlesticks.
---
## User Input Guide
### Core Settings
- **Use Alternate Resolution?:** Enable this to use the MTF logic.
- **Multiplier for Alternate Resolution:** How many charts higher the "filter" timeframe should be.
- **MA Type:** Select your preferred moving average smoothing method.
- **MA Period:** The length of the Open/Close averages.
- **Delay Open/Close MA:** Use `1` or higher to force non-repainting behavior.
### Risk Management Settings
- **Use Trailing Stop Loss?:** Enables the TSL system.
- **Trailing Stop %:** The distance the stop follows behind the price.
- **TSL Activation % (Delay):** The profit % required before the TSL starts moving.
- **Initial Fixed Stop Loss %:** Your hard stop if the trade immediately goes against you.
- **Take Profit %:** Your ultimate profit target for the trade.
---
## How to Trade with This Strategy
1. **Identify the Trend:** Look for the Moving Average lines (Close vs Open) to cross.
2. **Wait for Confirmation:** If using MTF, ensure the higher timeframe also shows a trend change.
3. **Manage the Trade:** Let the TSL work. Once the trade hits the activation threshold, the TSL will take over, protecting your runner.
4. **Position Sizing:** Adjust the `Properties` tab in the script settings to match your desired capital allocation (Default is 10% of equity).
---
## Credits
Original Strategy by: **JustUncleL**
Optimized and Enhanced by: **Antigravity AI**
Motif-Motif Chart
QuantCrawler 5m ORB Pro - Opening Range with Confluence FiltersThis indicator captures the 5-minute Opening Range and generates entry signals using a breakout-then-retest methodology. It includes optional confluence filters to refine entries and reduce false signals.
HOW IT WORKS
1. Captures the 5-minute Opening Range (high, low, midpoint) at your selected session open
2. Waits for price to break beyond OR high or low by your defined distance
3. After breakout, monitors for price to retest the OR midpoint
4. Signals LONG after bullish breakout + midpoint retest
5. Signals SHORT after bearish breakout + midpoint retest
6. Marks invalidated signals with (X) if price breaks through the opposite side
PRE-CONFIGURED SESSIONS
- NYSE - 9:30-9:35 ET
- CME - 8:30-8:35 CT
- London - 3:00-3:05 ET
- Asia - 7:00-7:05 PM ET
- Custom - Define your own session times and timezone
BREAKOUT DISTANCE OPTIONS
Choose between fixed points or percentage-based breakout threshold. Percentage mode automatically scales to the instrument price.
CONFLUENCE FILTERS
Optional filters to add confirmation before signals fire:
- VWAP - Long requires price above VWAP, short requires below
- EMA Slope - Confirms trend direction using 20-period EMA
- Volume - Requires relative volume above 1.5x average
- FVG - Requires a Fair Value Gap supporting trade direction
- ATR - Filters Opening Ranges that are abnormally small or large relative to ATR
When filters block a valid setup, the indicator displays a BLOCKED label so you can see what you missed and why.
STATUS BOX
Real-time display showing:
- Current trade state (Building OR, Watching, Awaiting Retest, Long/Short Active)
- OR High, Low, and Midpoint levels
- Active filters and block reasons
ALERTS
Built-in alerts for Long Entry, Short Entry, or Any Entry.
QuantCrawler ORB Break & Retest 15m - Opening Range StrategyThis indicator automates the 15-minute Opening Range Breakout and Retest strategy. It captures the high, low, and midpoint of the first 15-minute candle, then monitors for confirmed breakouts followed by midpoint retests to generate entry signals.
HOW IT WORKS
1. Captures the high, low, and midpoint of the first 15-minute candle (default 8:00-8:15 premarket)
2. Waits for price to close beyond the OR high or low by your specified breakout distance
3. After breakout confirmation, monitors for price to pull back and touch the midpoint
4. Signals LONG after bullish breakout + midpoint retest
5. Signals SHORT after bearish breakout + midpoint retest
6. Resets after each signal allowing multiple setups per session
WHY 15-MINUTE ORB
The 15-minute Opening Range captures more price action than a 5-minute OR, often providing stronger support/resistance levels. The 8:00 AM default captures premarket activity before the 9:30 open, giving you levels established before the crowd arrives.
WHY BREAKOUT + RETEST
Entering on the initial breakout often results in chop and false signals. This indicator requires confirmation - price must first prove direction by closing beyond the breakout distance, then offer a pullback entry at the midpoint. This filters out many failed breakouts.
SETTINGS
- Breakout Distance - Points beyond OR zone required to confirm breakout
- Timezone - Select your market timezone
- Opening Range Time - Customizable (default 8:00-8:15)
- Session End Time - When to stop monitoring (default 4:00 PM)
VISUAL OUTPUT
- Green line - OR High
- Red line - OR Low
- Orange dotted line - OR Midpoint
- Status box displays current state (Watching, Active, Closed)
ALERTS
Built-in alerts for Long Entry, Short Entry, or Any Entry.
Works on any timeframe chart. The indicator pulls 15-minute data automatically using request.security().
Gann ArchitectThe Gann Architect is a quantitative geometric engine designed to solve the primary limitation of standard Gann tools: Scaling.
Standard Gann Fans use fixed angles (e.g., 45 degrees for 1:1), which often fail when applied to volatile assets or different timeframes because they do not account for the specific price-to-time ratio of the asset. This indicator solves this by calculating a Dynamic Slope. It identifies the initial "Impulse Phase" (Anchor Low → First Major High) and mathematically "squares" the chart to fit that specific market structure.
Key Features
Dynamic Squaring: Automatically calculates the true 1:1 Master Line based on the asset's actual volatility, not an arbitrary angle.
Quantitative Alerts: Includes a built-in alert system. You can set alerts for "Crossed 1:1" (Trend Break), "Structural Fail 1:2" (Support Break), or "Impulse Breakout 2:1".
Real-Time Data Panel: A dashboard displays the exact price targets for the geometric levels, removing the need to eyeball the lines.
Efficiency: Uses a circular buffer memory system to ensure high performance ("100% potential") without slowing down your chart.
How to Use
This tool is designed as a Trend Following & Structure Map, not a reversal signal.
The 1:1 Line (Solid): This represents the "True Trend." In a strong bullish phase, price should respect this line as dynamic support. A confirmed close below this line often signals momentum loss.
The 1:2 Line (Bottom Support): This acts as the "Structural Floor." If price loses the 1:1 but holds the 1:2, it is considered a healthy correction. A break below the 1:2 typically invalidates the geometric structure of the current cycle.
The 2:1 Line (Top Resistance): This marks the "Impulse Zone." A break above this line suggests parabolic or over-extended behaviour.
Settings
Cycle Stiffness: Controls the sensitivity of the pivot detection. Increase this value (e.g., to 4 or 5) to filter out noise and focus on macro trends.
Anchor Pivot #: Allows you to select which historical cycle bottom to anchor the geometry to (1 = most recent confirmed bottom).
Slope Multiplier: Adjusts the aggressiveness of the fan. Default is 1.0 (Geometric Standard).
Technical Disclosure (Repainting & Lag)
This script utilises a Confirmed Pivot Detection system.
Signal Lag: To ensure reliability, the geometric fans anchor to confirmed pivots. A pivot is only confirmed after Right Length bars have passed. Therefore, the fans will appear on the chart with a slight delay relative to the absolute low.
Repainting: Once a pivot is confirmed and the fans are drawn, the lines for that specific cycle do not repaint history. However, if a new, lower low forms that invalidates the previous structure, the script will dynamically shift to the new anchor point to maintain geometric accuracy.
Disclaimer This script is for educational and experimental purposes only. Geometric analysis is a mapping tool, not a guarantee of future price action. Always use proper risk management. Past performance of geometric levels does not guarantee future results.
SMC Structure & Expectation [WavesUnchained]SMC Structure & Expectation - Professional Context & Confirmation Tool
A sophisticated Smart Money Concepts indicator that combines objective market structure analysis with intelligent expectation logic and professional order block validation. Built for traders who value context over signal spam.
4-LAYER ARCHITECTURE
Layer 1: Market Structure
✓ Objective HH/HL/LH/LL detection based on confirmed pivot swings
✓ Internal structure tracking (micro swings within major legs)
✓ Structure alignment detection (Internal + External agreement)
✓ No predictions - pure price action description
Layer 2: Expectation/Bias
✓ Logical hypotheses derived from current structure
✓ "Expect HL" in bullish structure / "Expect LH" in bearish structure
✓ "Expect Continuation" after BOS events
✓ Expectation ≠ Signal (can be wrong, that's the point)
Layer 3: Confirmation (BOS + Order Blocks)
✓ Break of Structure (BOS) detection with 2 modes:
• Conservative: Close-cross (default)
• Aggressive: High/Low-cross with optional close confirmation
✓ Professional Order Block System with 8 intelligent filters
✓ Only creates OBs when expectation is met
✓ Maximum 1 OB per direction (quality over quantity)
Layer 4: Optional Warnings
✓ Trendline break detection
✓ Early Top/Bottom warnings (volume + volatility divergence)
✓ Can be disabled for clean chart focus
PROFESSIONAL ORDER BLOCK SYSTEM
8 Quality Filters (Cascade Logic):
1. BOS-Only Guard : No OB without confirmed Break of Structure
2. Displacement Filter : Minimum 1.0 ATR momentum (customizable)
3. Location Filter : Must be in Premium (bearish) or Discount (bullish) zone
4. Size Filter : 3 modes available:
• Hard Limit: Reject oversized OBs (strict)
• Score Penalty: Allow but reduce priority (balanced, default)
• Disabled: No size filtering (permissive)
5. Volume Filter : Optional relative volume threshold
6. FVG Filter : Optional Fair Value Gap requirement
7. Mitigation Tracking : 30% penetration = mitigated (score penalty)
8. TTL (Time-To-Live) : Auto-delete after 80 bars (prevents chart clutter)
Priority Scoring System (0-100):
• HIGH Priority (>80) : Bright colors, zero transparency
• MED Priority (50-80) : Normal colors, 30% transparency
• LOW Priority (<50) : Faded colors, 60% transparency
Score Components:
✓ Displacement strength (10-30 points)
✓ FVG confluence (+20 points)
✓ Relative volume (+5-15 points)
✓ Premium/Discount location (+10-20 points)
✓ Structure alignment (+30 points if aligned, -15 if conflict)
✓ Leg strength (+15-25 points for strong impulse vs correction ratio)
✓ Size penalty (-0 to -30 points if oversized, Score Penalty mode only)
BAR COLORING MODES
Choose your preferred visual feedback:
1. Off : No bar coloring
2. Structure : Bullish/Bearish/Neutral structure states
3. Expectation : Continuation zones (green = expect bullish, red = expect bearish)
4. BOS + OB Priority (Default):
• Highlights active Order Blocks by priority
• BOS events in bright neon
• Faded structure colors when no OB active
5. Multi-Layer : Combines structure + priority intensity
6. Alignment : Shows Internal/External structure alignment (orange = conflict warning)
INTELLIGENT LOGGING SYSTEM
Priority-based log filtering to reduce noise:
• All : Every event (debug mode)
• MED+ : Only medium and high priority events
• HIGH Only : Only high priority setups
• Smart (Default): Adaptive filtering based on priority + context
Logs include:
✓ Structure changes (HH/HL/LH/LL)
✓ Expectation updates
✓ BOS events with confirmation status
✓ OB creation with full scoring breakdown
✓ OB reactions (Tap/Deep/Failure classification)
✓ Rejection reasons with "Potential Lost" analysis
CONFIGURATION HIGHLIGHTS
Layer 1: Structure
• Pivot detection length: 5 (left) / 5 (right)
• Internal structure: Optional micro-swing tracking
• Swing confirmation: Closes beyond pivot required
Layer 2: Expectation
• Expectation expiry: 40 bars (auto-reset after timeout)
• Visual feedback: Labels + optional expectation zones
Layer 3: Confirmation
• BOS Mode: Close-cross (conservative) / High/Low-cross (aggressive)
• Close Confirmation: Optional 3-bar window for aggro mode
• Displacement: Min 1.0 ATR (customizable)
• Size Filter Mode: Hard Limit / Score Penalty / Disabled
• OB Location: 38% discount / 62% premium thresholds
• OB Size Range: 0.3-1.2 ATR (customizable)
• TTL: 80 bars default
• Volume Filter: Optional, 1.0x minimum
• FVG Requirement: Optional
Layer 4: Warnings
• Trendline break detection
• Early Top/Bottom signals
• Can be fully disabled
BEST USE CASES
✓ Context Tool : Understand where you are in the market cycle
✓ Confirmation Filter : Validate trade ideas with structure alignment
✓ Order Block Trading : High-probability zones with priority scoring
✓ Educational : Learn SMC concepts with transparent logic
✓ Multi-Timeframe Analysis : Combine with HTF structure for confluence
Optimized for:
• Commodities (NatGas, Gold, Oil)
• 1H - 4H timeframes
• Swing trading / Intraday positioning
KEY FEATURES SUMMARY
✓ Zero signal spam - only high-conviction setups
✓ Transparent scoring system - know why each OB matters
✓ Adaptive to market conditions - structure alignment detection
✓ Flexible filtering - customize to your risk tolerance
✓ Priority-based visuals - instantly identify best opportunities
✓ Professional logging - learn from rejections and acceptances
✓ Clean chart - auto-cleanup with TTL system
✓ Bar coloring modes - choose your visual feedback style
✓ Size Filter Mode - prevent blocking of high-quality oversized setups
PHILOSOPHY
This indicator follows the principle: "Context over signals, quality over quantity"
Expectations can be wrong - that's the point. They help you stay aware of the most likely scenario while remaining open to structure changes. When expectation is met AND confirmed by BOS + quality OB, you get a high-conviction setup.
Not a holy grail. Not a signal service. A professional analysis tool.
Version: 1.0.0
Author: WavesUnchained
Pine Script: v6
Cave Diving 3 Lines System
🤿 Cave Diving Dashboard - A Deep Dive into Market Structure
## The Cave Diving Analogy
Imagine you're a cave diver exploring underwater caverns. As you descend deeper, you encounter different layers of the cave system:
- **The Surface (Internal Levels)** - Where you currently are, constantly shifting with each breath
- **The First Chamber (De Novo Levels)** - Your last known safe position, recently established
- **Deep Caverns (External Levels)** - Ancient, untouched chambers deeper in the system
Just as a cave diver must constantly monitor their position relative to these reference points, traders must track price action against key structural levels.
---
## 🎯 Understanding the Three-Tiered System
### 📍 **INTERNAL LEVELS** (Current 15m Candle)
*Your real-time position in the market*
**Internal High** 🟡 - The highest point reached in the current unfinished 15-minute candle
**Internal Low** 🟢 - The lowest point reached in the current unfinished 15-minute candle
**Think of these as:**
- Your current depth while actively diving
- They update continuously as price moves
- Status shows "Updating" when actively changing, "Intact" when stable
- These are NOT trade levels—they're awareness zones
**Key Insight:** When Internal Low drops below De Novo Low, you're in **Situation A** (bearish pressure building)—the indicator highlights this with red coloring.
---
### 🎯 **DE NOVO LEVELS** (Previous Closed 15m Candle)
*Your most recent confirmed safe zone*
**De Novo High** 🔵 - The high of the last completed 15-minute candle
**De Novo Low** 🟣 - The low of the last completed 15-minute candle
**Etymology:** "De Novo" = Latin for "from new" or "anew"—these are freshly established reference points
**Think of these as:**
- The last solid ground you stood on
- Your most recent confirmed position
- The bridge between where you are (Internal) and where you've been (External)
**Status Tracking:**
- **⬆️ Upgrade** - Level moved favorably (Higher high for resistance, Higher low for support)
- **⬇️ Downgrade** - Level moved unfavorably (Lower high, Lower low)
- **= Same** - No structural change from previous candle
**Trading Significance:**
- Primary reference points for intraday structure
- Breaking De Novo levels often signals directional commitment
- Can merge with External Level 1 when they align (shown as "DN🟰Ext1")
---
### ⛽🤿 **EXTERNAL LEVELS** (Unmitigated Historical 15m Levels)
*Deep liquidity pools waiting to be discovered*
**External High 1 & 2** 🟢🔵 - The two most recent unmitigated 15m highs
**External Low 1 & 2** 🟠🌸 - The two most recent unmitigated 15m lows
**Think of these as:**
- Untouched chambers in the cave system
- Liquidity pools that smart money is targeting
- Levels that "remember" and attract price
**What Makes a Level "Unmitigated"?**
- **Highs**: Price has NOT yet traded through them (broken above)
- **Lows**: Price has NOT yet swept them (broken below)
- Once touched, they're "mitigated" and removed from tracking
- The indicator automatically maintains the two most recent unmitigated levels
**Why "External"?**
They exist outside your current candle structure—historical reference points that institutions use for:
- Stop loss placement
- Profit taking targets
- Liquidity hunting zones
---
## 🎨 Color Coding System
### HIGHS (Resistance/Targets) - Cool Colors
- 🔵 **Ext High 2** - Light Blue (Distant target)
- 🟢 **Ext High 1** - Lime Green (Primary target)
- 🔵 **De Novo High** - Cyan (Recent resistance)
- 🟡 **Internal High** - Lemon Yellow (Current ceiling)
### LOWS (Support/Stops) - Warm Colors
- 🟢 **Internal Low** - Lime (Current floor)
- 🟣 **De Novo Low** - Purple (Recent support)
- 🟠 **Ext Low 1** - Orange-Red (Primary stop zone)
- 🌸 **Ext Low 2** - Pink (Distant support)
---
## 📊 Dashboard Breakdown
### The Table Shows:
1. **Level** - Which level you're tracking
2. **Price** - Exact price of the level
3. **Pts** - Distance from current price (+ above, - below)
4. **Status** - Current state or role of the level
### Special Features:
- **⏰ Countdown Timer** - Shows time remaining until next 15m candle close (next De Novo update)
- **⚠️ Proximity Alerts** - Bottom row warns when within threshold distance of key levels (default: 25 points, adjustable)
---
## 🎯 Trading Applications
### **For Buyers (Going Long):**
- **Entry Zone**: Between De Novo Low and Ext Low 1
- **Stops**: Below Ext Low 1 (or Ext Low 2 for wider stops)
- **Targets**: De Novo High → Ext High 1 → Ext High 2
- **Confirmation**: Internal Low holds above De Novo Low
### **For Sellers (Going Short):**
- **Entry Zone**: Between De Novo High and Ext High 1
- **Stops**: Above Ext High 1 (or Ext High 2 for wider stops)
- **Targets**: De Novo Low → Ext Low 1 → Ext Low 2
- **Warning**: Watch for Situation A (Internal Low < De Novo Low)
### **Risk Management:**
- **DN🟰Ext1** status means De Novo = External 1 (tighter range, use caution)
- Proximity alerts help you avoid chasing price into resistance/support
- "Updating" status on Internal levels = active volatility
- "Upgrade/Downgrade" signals = structural shift in progress
---
## ⚙️ Customization Options
### Lookback Period
- Default: 500 candles (searches 125 hours of 15m data)
- Increase for more historical External levels
- Decrease for focus on recent structure
### Proximity Threshold
- Default: 25 points
- Set based on your instrument's average range
- Lower = tighter alerts (for scalping)
- Higher = strategic warnings (for swing trading)
### Visual Customization
- Line thickness (1-5)
- Line style (Solid/Dashed/Dotted)
- All colors fully customizable
- Show/hide lines independently
---
## 🧭 The Cave Diving Mindset
**Never dive deeper than you can safely return from.**
In trading terms:
- Know your Internal position (real-time awareness)
- Respect your De Novo levels (recent structure)
- Hunt for External liquidity (where the targets are)
- Always have an exit plan (stops below Ext Lows, above Ext Highs)
The market, like a cave, has structure. This indicator illuminates that structure across three timeframes of reference, helping you navigate with precision rather than guessing in the dark.
---
## 🎓 Key Takeaways
1. **Internal** = Real-time, unfinished, awareness only
2. **De Novo** = Just confirmed, primary reference, updates every 15m
3. **External** = Historical, unmitigated, high-probability targets/stops
4. **Upgrades/Downgrades** = Trend signals
5. **DN🟰Ext1** = Structural alignment (tighter range)
6. **Situation A** = Bearish warning (Internal < De Novo Low)
---
## 📝 Credits
*"In cave diving, you plan your dive and dive your plan. In trading, you plan your levels and trade your levels."*
**Indicator:** Cave Diving Dashboard - Part 1: Price Levels
**Timeframe:** Optimized for 15-minute structure on any chart timeframe
**Philosophy:** Structure first, price second. Know where you are, where you've been, and where the liquidity waits.
---
Happy Diving! 🤿📈
SMT Divergence [Kodexius]SMT Divergence is a correlation-based divergence detector built around the Smart Money Technique concept: when two normally correlated instruments should be making similar swing progress, but one prints a new extreme while the other fails to confirm it. This “disagreement” can be a valuable contextual signal around liquidity runs, distribution phases, and potential reversal or continuation points.
The script compares the chart symbol (primary) with a user-selected comparison symbol (for example BTC vs ETH, ES vs NQ, EUR/USD vs GBP/USD) and automatically scans both instruments for confirmed swing highs and swing lows using pivot logic. Once swings are established, it checks for classic SMT conditions:
Primary makes a new swing extreme while the comparison symbol forms a non-confirming swing .
To support a wider range of markets, the indicator includes an Inverse Correlation option for pairs that typically move opposite to each other (for example DXY vs EUR/USD). With this enabled, the divergence rules are logically flipped so that the script still detects “non-confirmation” in a way that is consistent with the pair’s relationship.
The indicator is designed to be readable and actionable. It can draw divergence labels directly on the main chart, connect the relevant swing points with lines, show a compact information table with the last signal and settings, and optionally render the comparison symbol as a mini candle chart in the indicator pane for quick visual validation.
🔹 Features
🔸 Two-Symbol SMT Analysis (Primary vs Compare)
Select any comparison symbol to evaluate correlation structure and divergence. The script fetches the comparison OHLC data using the current chart timeframe to keep both series aligned for analysis.
🔸 Inverse Correlation Mode
For inversely correlated pairs, enable “Inverse Correlation” so the script interprets confirmation appropriately (for example, a higher low on the comparison instrument might be expected to correspond to a lower low on the primary, depending on the relationship). This helps avoid false conclusions when the pair naturally moves opposite.
🔸 Pivot-Based Swing with Adjustable Sensitivity
Swings are detected using confirmed pivots (left bars and right bars). This provides cleaner structural swing points compared with raw candle-to-candle comparisons, and it lets you control sensitivity for different market conditions and timeframes. The script also limits stored swing history to keep performance stable.
🔸 Flexible Detection Mode: Time Matched or Independent Swings
You can choose how swings are paired across instruments:
Time Matched searches for a comparison swing that occurred at the same pivot time as the primary swing.
Independent Swings compares each symbol’s own last two swings without requiring an exact time match.
🔸 Range Control and Noise Filtering
To reduce weak or irrelevant signals:
“Max Bars Between Swings” ensures the two swings being compared are close enough in structure to be meaningful.
“Min Price Diff (%)” can require a minimum percentage change between the primary’s last two swing prices to confirm the move is significant.
🔸 Clear Visual Output with Tooltips
When a divergence is detected, the script can print a label (“SMT”) with bullish or bearish styling and a tooltip that includes the symbol pair and the primary swing price for quick context.
🔸 Divergence Lines for Context
Optional lines connect the relevant swing points, making it easier to see the exact structure that triggered the signal. One line can be drawn on the main chart and another in the indicator pane for the comparison series.
🔸 Info Table (At a Glance)
A compact table can display the active symbols, correlation mode, total divergences stored, and the most recent signal type.
🔸 Alerts Included
Built-in alert conditions are provided for bullish SMT, bearish SMT, and any SMT event so you can automate notifications without editing the code.
🔸 Optional Comparison Candle Panel
If enabled, the indicator can plot the comparison symbol as candles in the indicator pane. This is useful for confirming whether the divergence is happening around major levels, consolidations, or impulsive legs on the secondary instrument.
🔹 Calculations
This section summarizes the core logic used by the script.
1. Data Synchronization (Comparison Symbol)
The comparison instrument is requested on the chart’s current timeframe so swing calculations are performed consistently:
=
request.security(compareSymbolInput, timeframe.period, )
This ensures pivots and swing times are derived from the same bar cadence as the primary chart.
2. Swing Detection via Confirmed Pivots
Swings are detected using pivot logic with user-defined left and right bars:
primaryPivotHigh = ta.pivothigh(high, pivotLeftBars, pivotRightBars)
primaryPivotLow = ta.pivotlow(low, pivotLeftBars, pivotRightBars)
Because pivots are confirmed only after the “right bars” have closed, the script stores each swing using an offset so the swing’s bar index and time reflect where the pivot actually occurred, not where it was confirmed.
3. Swing Storage and Retrieval
Both symbols maintain arrays of SwingPoint objects. Each new swing is pushed into the array, and older swings are dropped once the array exceeds the configured maximum. This makes the divergence engine predictable and prevents uncontrolled memory growth.
The script then retrieves the last and previous swing highs and lows (per symbol) to evaluate structure.
4. Matching Logic (Time Matched vs Independent)
When “Time Matched” is selected, the script searches the comparison swing array for a pivot that occurred at the exact same timestamp as the primary swing. When “Independent Swings” is selected, it simply uses the comparison symbol’s last two swings of the same type.
5. Bullish SMT Condition (LL vs HL)
A bullish SMT event is defined as:
Primary forms a lower low (last low < previous low)
Comparison forms a higher low (last low > previous low)
If inverse correlation is enabled, the comparison condition flips to maintain logical confirmation rules
The two primary swings must be within the configured bar distance window
Optional minimum percentage difference must be satisfied
A simple anti duplication rule prevents repeated triggers on the same structure
These checks are implemented directly in the bullish detection block.
6. Bearish SMT Condition (HH vs LH)
A bearish SMT event is defined as:
Primary forms a higher high (last high > previous high)
Comparison forms a lower high (last high < previous high)
Inverse correlation flips the comparison rule
Range checks, minimum difference filtering, and duplicate protection apply similarly
These checks are implemented in the bearish detection block.
7. Percentage Difference Filter
The optional “Min Price Diff (%)” filter measures the relative distance between the last two primary swing prices. This prevents very small structural changes from being treated as valid SMT signals.
priceDiffPerc = math.abs(lastSwing.price - prevSwing.price) / prevSwing.price * 100.0
The divergence condition is only allowed to trigger if this value exceeds the user defined threshold.
priceOk = priceDiffPerc >= minPriceDiff
This filter is especially useful on higher timeframes or during low volatility conditions, where micro structure noise can otherwise produce misleading signals.
8. Visualization and Output
When a divergence is confirmed, the script:
Stores the event in a divergence array (limited by “Max Divergences to Display”)
Draws a directional SMT label with a tooltip (optional)
Draws connecting lines using time based coordinates for clean alignment (optional)
It also updates an information table on the last bar only, and exposes alertconditions for automation workflows.
Unmitigated MTF High Low Pro - Cave Diving Bookmap Heatmap Plot
Unmitigated MTF High Low Pro - Cave Diving Bookmap Heatmap Plot
---
## 📖 Table of Contents
1. (#what-this-indicator-does)
2. (#core-concepts)
3. (#visual-components)
4. (#the-cave-diving-framework)
5. (#how-to-use-it-for-trading)
6. (#settings--customization)
7. (#best-practices)
8. (#common-scenarios)
---
## What This Indicator Does
The **Unmitigated MTF High Low v2.0** tracks unmitigated (untouch) high and low levels across multiple timeframes, helping you identify key support and resistance zones that the market hasn't revisited yet. Think of it as a sophisticated memory system for price action - it remembers where price has been, and more importantly, where it *hasn't been back to*.
### Why "Unmitigated" Matters
In futures trading, especially on instruments like NQ and ES, the market has a tendency to revisit levels where liquidity was left behind. An "unmitigated" level is one that hasn't been touched since it was formed. These levels often act as magnets for price, and understanding their age and proximity gives you a significant edge in:
- **Entry timing** - Waiting for price to approach tested levels
- **Exit planning** - Taking profits before ancient resistance/support
- **Risk management** - Avoiding entries when approaching multiple old levels
- **Liquidity mapping** - Visualizing where orders likely cluster
---
## Core Concepts
### 1. **Sessions & Age**
The indicator uses **New York trading sessions** (6:00 PM to 5:59 PM NY time) as the primary time measurement. This aligns with how futures markets naturally segment their activity.
**Age Categories:**
- 🟢 **New (0-1 sessions)** - Fresh levels, recently formed
- 🟡 **Medium (2-3 sessions)** - Tested by time, gaining significance
- 🔴 **Old (4-6 sessions)** - Highly significant, survived multiple days
- 🟣 **Ancient (7+ sessions)** - Extreme significance, major support/resistance
The longer a level remains unmitigated, the more significant it becomes. Think of it like compound interest - time adds weight to these zones.
### 2. **Multi-Timeframe Tracking**
You can set the indicator to track high/low levels from any timeframe (default is 15 minutes). This means you're watching for unmitigated 15-minute highs and lows while trading on, say, a 1-minute or 5-minute chart.
**Why this matters:**
- Higher timeframe levels have more weight
- You can see multiple timeframe structure simultaneously
- Helps you avoid fighting larger timeframe momentum
### 3. **Mitigation**
A level becomes "mitigated" (deactivated) when price touches it:
- **High levels** are mitigated when price reaches or exceeds them
- **Low levels** are mitigated when price reaches or goes below them
Once mitigated, the level disappears from view. The indicator only shows you the untouch levels that still matter.
---
## Visual Components
### 📊 The Dashboard Table
Located in the corner of your chart (configurable), the table shows:
```
┌─────────┬───────────┬────────┬─────┬───────┐
│ Level │ Price │ Points │ Age │ % │
├─────────┼───────────┼────────┼─────┼───────┤
│ ↑↑↑↑↑ │ 21,450.25 │ +45.50 │ 8 │ +0.21%│ ← 5th High (Ancient)
│ ↑↑↑↑ │ 21,430.00 │ +25.25 │ 5 │ +0.12%│ ← 4th High (Old)
│ ↑↑↑ │ 21,420.50 │ +15.75 │ 3 │ +0.07%│ ← 3rd High (Medium)
│ ↑↑ │ 21,412.00 │ +7.25 │ 1 │ +0.03%│ ← 2nd High (New)
│ ↑ ⚠️ │ 21,408.25 │ +3.50 │ 0 │ +0.02%│ ← 1st High (Proximity Alert!)
├─────────┼───────────┼────────┼─────┼───────┤
│ 15 mins │ 🟢 │ Δ 8.75 │ 2U │ │ ← Status Row
├─────────┼───────────┼────────┼─────┼───────┤
│ ↓ ⚠️ │ 21,399.50 │ -5.25 │ 0 │ -0.02%│ ← 1st Low (Proximity Alert!)
│ ↓↓ │ 21,395.00 │ -9.75 │ 2 │ -0.05%│ ← 2nd Low (Medium)
│ ↓↓↓ │ 21,385.25 │ -19.50 │ 4 │ -0.09%│ ← 3rd Low (Old)
│ ↓↓↓↓ │ 21,370.00 │ -34.75 │ 6 │ -0.16%│ ← 4th Low (Old)
│ ↓↓↓↓↓ │ 21,350.75 │ -54.00 │ 9 │ -0.25%│ ← 5th Low (Ancient)
├─────────┼───────────┼────────┼─────┼───────┤
│ 📊 15↑ / 12↓ │ ← Statistics (optional)
└─────────┴───────────┴────────┴─────┴───────┘
```
**Reading the Table:**
- **Level Column**: Number of arrows indicates position (1-5), color shows age
- **Price**: The actual price level
- **Points**: Distance from current price (+ for highs, - for lows)
- **Age**: Number of full sessions since creation
- **%**: Percentage distance from current price
- **⚠️**: Proximity alert - price is within threshold distance
- **Status Row**: Shows timeframe, direction (🟢 bullish/🔴 bearish), tunnel width (Δ), and Strat pattern
### 📈 Visual Elements on Chart
**1. Level Lines**
- Horizontal lines showing each unmitigated level
- **Color-coded by age**: Bright colors = new, darker = older, deep purple/teal = ancient
- **Line style**: Customizable (solid, dashed, dotted)
- Automatically turn **yellow** when price gets close (proximity alert)
**2. Price Labels**
- Show the exact price and age: "21,450.25 (8d)"
- Fixed at small size for clean readability
- Positioned with configurable offset from current bar
**3. Bands (Optional)**
- Shaded zones between pairs of unmitigated levels
- Default: Between 1st and 2nd levels (the "tunnel")
- Can switch to 1st-3rd, 2nd-3rd, or disable entirely
- **Upper band** (pink/maroon) - Between unmitigated highs
- **Lower band** (blue/teal) - Between unmitigated lows
- These represent the "no man's land" or consolidation zones
---
## The Cave Diving Framework
This indicator is designed around the **Cave Diving Trading Framework** - a psychological and technical approach that maps cave diving safety protocols to futures trading risk management.
### 🤿 The Core Metaphor
**Cave diving has clear danger zones based on depth and overhead environment. Your trading should too.**
#### Shallow Water (New Levels, 0-1 Sessions)
- **Light**: Bright colors (bright red highs, bright green lows)
- **Psychology**: Fresh territory, recently tested
- **Trading**: Be aware but not overly concerned
- **Cave Diving Parallel**: You can see the surface, easy exit
#### Penetration Depth (Medium Levels, 2-3 Sessions)
- **Light**: Medium intensity colors
- **Psychology**: Building significance, market memory forming
- **Trading**: Start respecting these levels for entries/exits
- **Cave Diving Parallel**: Deeper in, need to track your line back
#### Deep Dive Zone (Old Levels, 4-6 Sessions)
- **Light**: Dark colors (deep maroon, dark blue)
- **Psychology**: Highly tested support/resistance
- **Trading**: Major decision points, plan accordingly
- **Cave Diving Parallel**: Significant overhead, careful navigation required
#### Overhead Environment (Ancient Levels, 7+ Sessions)
- **Light**: Very dark, purple/deep teal
- **Psychology**: Extreme caution required, major liquidity zones
- **Trading**: These are your "turn back" signals - don't fight ancient levels
- **Cave Diving Parallel**: Maximum danger, no room for error
### 🎯 The Proximity Alert System
Just like a cave diver's depth gauge that warns at critical thresholds, the proximity alerts (⚠️) tell you when you're entering a danger zone. When price gets within your configured threshold (default 5 points), the indicator:
- Highlights the level in **yellow** on the chart
- Shows **⚠️** in the table
- Signals: "You're entering a high-significance zone - adjust your position accordingly"
This prevents the trading equivalent of going deeper into a cave without checking your air supply.
---
## How to Use It for Trading
### 🎯 Entry Strategies
**1. The "Bounce Setup" (Mean Reversion)**
- Wait for price to approach an old or ancient unmitigated level
- Look for confluence: multiple levels nearby, bands narrowing
- Enter when price shows rejection (reversal candle patterns)
- **Example**: Price drops to a 6-session-old low, shows bullish engulfing → Long entry
**2. The "Break and Retest" (Trend Following)**
- Wait for price to break through an unmitigated level (mitigates it)
- Enter on the retest of the newly broken level
- **Example**: Price breaks above 4-session-old high → Wait for pullback to that level → Long entry
**3. The "Tunnel Trade" (Range Trading)**
- When bands are active, trade the range between 1st-2nd levels
- Short near upper band resistance, long near lower band support
- Exit at opposite side or when bands break
### 🚨 Risk Management Rules
**The Ancient Level Rule**
> Never fight ancient levels (7+ sessions). If you're long and approaching an ancient high, take profits. If you're short and approaching an ancient low, take profits.
These levels have survived a full trading week without being touched - there's likely significant liquidity and institutional interest there.
**The Proximity Exit Rule**
> When you see ⚠️ proximity alerts on multiple levels above/below your position, tighten stops or scale out.
This is your "overhead environment" warning. You're in dangerous territory.
**The New Level Filter**
> Be cautious taking positions based solely on new levels (0-1 sessions). Wait for them to age or combine with other confluence.
Fresh levels haven't been tested by time. They're like unconfirmed support/resistance.
### 📊 Reading Market Structure
**Bullish Structure (🟢 in status row)**
- Unmitigated lows are aging and holding
- Price respecting the lower band
- Old lows below acting as strong support
- **Bias**: Look for long entries at lower levels
**Bearish Structure (🔴 in status row)**
- Unmitigated highs are aging and holding
- Price respecting the upper band
- Old highs above acting as strong resistance
- **Bias**: Look for short entries at higher levels
**The Tunnel Compression**
- When the Δ (delta) in the status row is small, levels are tight
- This often precedes a breakout
- **Trading**: Wait for breakout direction, then trade the break
### 🔄 Strat Integration
The indicator shows Strat patterns in the status row:
- **1** - Inside bar (consolidation)
- **2U** - Broke high only (bullish)
- **2D** - Broke low only (bearish)
- **3** - Broke both (wide range, volatility)
Use these with the unmitigated levels:
- **2U near old high** → Potential resistance, watch for rejection
- **2D near old low** → Potential support, watch for bounce
- **3 pattern** → High volatility, respect wider stops
---
## Settings & Customization
### 📅 Session & Timeframe Settings
**HL Interval** (Default: 15 minutes)
- The timeframe for high/low calculation
- **Lower (1m, 5m)**: More levels, more noise, good for scalping
- **Higher (30m, 1H, 4H)**: Fewer levels, stronger significance, good for swing trading
- **Recommendation for NQ/ES**: 15m or 30m for day trading, 1H for swing trading
**Session Age Threshold** (Default: 2)
- How many sessions before a level is considered "old"
- Lower = more levels classified as old
- Higher = stricter definition of significance
### 📊 Level Display Options
**Show Level Lines**
- Toggle: Display horizontal lines for each level
- **Turn off** if you prefer a cleaner chart and only want the table
**Show Level Labels**
- Toggle: Display price labels on the chart
- **Turn off** for minimal visual clutter
**Label Offset**
- Distance (in bars) from current price bar to place labels
- Increase if labels overlap with price action
**Level Line Width & Style**
- Customize visual appearance
- **Thin solid**: Minimal distraction
- **Thick dashed**: High visibility
### 🎨 Age-Based Color Coding
Customize colors for each age category (high and low separately):
- **New (0-1 sessions)**: Default bright red/green
- **Medium (2-3 sessions)**: Default medium intensity
- **Old (4+ sessions)**: Default dark red/blue
- **Ancient (7+ sessions)**: Default deep purple/teal
**Color Strategy Tips:**
- Keep ancient levels in highly contrasting colors
- Use opacity (transparency) if you want subtler lines
- Match your chart's color scheme for aesthetic coherence
### 🎯 Band Settings
**Band Mode**
- **1st-2nd** (Default): The primary "tunnel" between most recent levels
- **1st-3rd**: Wider band, more room for price action
- **2nd-3rd**: Band between less immediate levels
- **Disabled**: No bands, lines only
**Band Colors & Borders**
- Customize fill color and border separately
- **Tip**: Keep bands very transparent (90-95% transparency) to avoid obscuring price action
### ⚠️ Proximity Alert Settings
**Enable Proximity Alerts**
- Toggle: Turn on/off the warning system
- When enabled, levels within threshold distance show ⚠️ and turn yellow
**Alert Threshold** (Default: 5.0 points)
- Distance in points to trigger the alert
- **For NQ**: 5-10 points is reasonable
- **For ES**: 2-5 points is reasonable
- **For MES/MNQ**: Scale down proportionally
**Alert Highlight Color**
- The color lines/labels turn when proximity is triggered
- Default: Yellow (high visibility)
### 📋 Table Settings
**Show Table**
- Toggle: Display the dashboard table
**Table Location**
- Top Left, Top Right, Bottom Left, Bottom Right
- Choose based on your chart layout and other indicators
**Text Size**
- Tiny, Small, Normal, Large
- **Recommendation**: Normal for 1080p monitors, Small for 4K
**Show % Distance**
- Toggle: Add percentage distance column to table
- Useful for comparing relative distances across different price ranges
**Show Statistics Row**
- Toggle: Show total count of unmitigated highs/lows
- Format: "📊 15↑ / 12↓" (15 unmitigated highs, 12 unmitigated lows)
- Useful for gauging overall market structure
### ⚡ Performance Settings
**Enable Level Cleanup**
- Automatically remove very old levels to maintain performance
- **Keep on** unless you want unlimited history
**Max Lookback Levels** (Default: 10,000)
- Maximum number of levels to track
- 10,000 ≈ 6+ months of 15-minute bars
- **Increase** if you want more history
- **Decrease** if experiencing performance issues
**Max Boxes Per Band** (Default: 245)
- TradingView limit is 500 total boxes
- With 2 bands, 245 each = 490 total (safe maximum)
---
## Best Practices
### 🎯 Position Management
**1. Scaling In Near Old Levels**
```
Price approaching 5-session-old low:
- First position: 30% size at proximity alert (⚠️)
- Second position: 40% size at exact level
- Third position: 30% size if it shows strong rejection
```
**2. Scaling Out Near Ancient Levels**
```
Holding long position, approaching 8-session-old high:
- Exit 50% at proximity alert (⚠️)
- Exit 30% at exact level
- Trail stop on remaining 20%
```
### 🧠 Trading Psychology Integration
Drawing from principles in *The Mountain Is You*, this indicator helps you:
**1. Recognize Self-Sabotage Patterns**
- **The Premature Entry**: Entering before price reaches your planned level
- **Solution**: Set alerts at unmitigated levels, wait for proximity warnings
- **The Profit-Taking Problem**: Exiting too early from fear
- **Solution**: Identify the next unmitigated level and commit to holding until proximity alert
- **The Loss Holding**: Refusing to exit losing trades
- **Solution**: When price breaks through and mitigates your entry level, it's telling you the structure changed
**2. Building Better Habits**
The color-coded age system trains your brain to:
- Respect levels that have proven themselves over time
- Distinguish between noise (new levels) and structure (old levels)
- Make decisions based on objective data, not fear or greed
**3. Emotional Regulation**
The proximity alerts serve as:
- **Circuit breakers** - Forcing you to re-evaluate before dangerous zones
- **Permission to act** - Giving you objective signals to exit without second-guessing
- **Validation** - Confirming when you're in alignment with market structure
### 📝 Pre-Market Routine
**Daily Setup Checklist:**
1. ✅ Identify the 3 nearest unmitigated highs above current price
2. ✅ Identify the 3 nearest unmitigated lows below current price
3. ✅ Note which are ancient (7+) - these are your "no-go" zones
4. ✅ Check the tunnel width (Δ in status row) - tight or wide?
5. ✅ Set alerts at the 1st high and 1st low for proximity warnings
6. ✅ Plan: "If we go up, I exit at ___. If we go down, I enter at ___."
### 🔄 Timeframe Confluence
**Multi-Timeframe Strategy:**
Run the indicator on **three instances**:
- **15-minute** (short-term structure)
- **1-hour** (intermediate structure)
- **4-hour** (major structure)
**Strong Setup**: When all three timeframes show unmitigated levels converging at the same price zone.
**Example:**
- 15m: Old low at 21,400
- 1H: Ancient low at 21,398
- 4H: Ancient low at 21,395
- **Result**: 21,395-21,400 is a monster support zone
### ⚠️ What This Indicator Doesn't Do
**Not a Crystal Ball**
- It doesn't predict where price will go
- It shows you where price *hasn't been* and how long it's been avoided
- The trading decisions are still yours
**Not an Entry Signal Generator**
- It provides context and structure
- You need to combine it with your entry methodology (price action, indicators, order flow, etc.)
**Not Foolproof**
- Ancient levels get broken
- Proximity alerts can trigger early in strong trends
- The market doesn't "owe" you a reversal at any level
---
## Common Scenarios
### Scenario 1: "Level Cluster Ahead"
**Situation**: You're long at 21,400. The table shows:
- 1st High: 21,425 (2 sessions old)
- 2nd High: 21,428 (3 sessions old)
- 3rd High: 21,435 (6 sessions old)
**Interpretation**: There's a resistance cluster just 25-35 points away. The 6-session-old level is particularly significant.
**Action**:
- Set first profit target at 21,420 (before the cluster)
- Set second target at 21,426 (between 1st and 2nd)
- Trail remaining position, but be ready to exit on rejection at 21,435
**Cave Diving Analogy**: You're approaching an overhead section with limited clearance. Lighten your load (reduce position) before entering.
---
### Scenario 2: "Ancient Level Approaches"
**Situation**: The market is grinding higher. You see ⚠️ appear next to a 9-session-old high at 21,500.
**Interpretation**: This level has survived over a week without being touched. Massive potential liquidity zone.
**Action**:
- If long, this is your absolute exit zone. Take profits before or at level.
- If looking to short, wait for clear rejection (price taps and reverses)
- Don't try to buy the breakout until it clearly breaks and retests
**Cave Diving Analogy**: Your dive computer is beeping - you've reached your planned turn-back depth. No matter how interesting it looks ahead, honor your plan.
---
### Scenario 3: "Mitigated Levels Create New Structure"
**Situation**: Price breaks and mitigates the 1st High. The previous 2nd High becomes the new 1st High.
**Interpretation**: The structure just shifted. What was the 2nd level is now most relevant.
**Action**:
- Watch how price reacts to the newly-mitigated level
- If it holds below (acts as resistance), bearish
- If it reclaims and holds above (acts as support), bullish
- The NEW 1st High is your next target/resistance
**Cave Diving Analogy**: You've passed through a restriction - the cave layout ahead is different now. Update your mental map.
---
### Scenario 4: "Tight Tunnel, Upcoming Breakout"
**Situation**: The Δ in the status row shows 3.25 points (very tight). Bands are converging.
**Interpretation**: Price is consolidating between very close unmitigated levels. Breakout likely.
**Action**:
- Don't try to predict direction
- Set alerts above 1st High and below 1st Low
- When break occurs, trade the retest
- Expect volatility - use wider stops
**Cave Diving Analogy**: You're in a narrow passage. Movement will be sudden and directional once it starts.
---
### Scenario 5: "Imbalanced Structure"
**Situation**: The statistics row shows "📊 22↑ / 7↓"
**Interpretation**: There are many more unmitigated highs than lows. This suggests:
- Price has been declining (hitting lows, leaving highs behind)
- Potential bullish reversal zone (lots of overhead supply mitigated)
- Or continued bearish structure (resistance everywhere above)
**Action**:
- Look at the age of those 22 highs
- If mostly new (0-2 sessions): Just a recent downmove, not significant yet
- If many old/ancient: Strong overhead resistance, be cautious on longs
- Compare to price action: Is price respecting the remaining lows?
**Cave Diving Analogy**: You've swam deeper than your starting point - most of your markers are above you now. Are you planning the ascent or going deeper?
---
## Final Thoughts: The Philosophy
This indicator is built on a simple but powerful principle: **The market has memory, and that memory has weight.**
Every unmitigated level represents:
- Liquidity left behind
- Orders waiting to be filled
- Institutional interest potentially parked
- Psychological significance for participants
The longer a level remains unmitigated, the more "charged" it becomes. When price finally revisits it, something significant usually happens - either a strong reversal or a definitive break.
Your job as a trader isn't to predict which outcome will occur. Your job is to:
1. **Recognize** when you're approaching these charged zones
2. **Respect** them by adjusting position size and risk
3. **React** appropriately based on how price behaves at them
4. **Remember** that ancient levels (like ancient wisdom) deserve extra reverence
The Cave Diving Framework embedded in this indicator serves as a constant reminder: Trading, like cave diving, requires rigorous respect for environmental hazards, meticulous planning, and the discipline to turn back when your limits are reached.
**Every proximity alert is the market asking you**: *"Do you really want to go deeper?"*
Sometimes the answer is yes - when your setup, confluence, and risk management all align.
Often, the answer should be no - and that's the trader avoiding the accident that would have happened to the gambler.
---
### 🎯 Quick Reference Card
**Color System:**
- 🟢 Bright colors = New (0-1 sessions) = Shallow water
- 🟡 Medium colors = Medium (2-3 sessions) = Penetration depth
- 🔴 Dark colors = Old (4-6 sessions) = Deep dive zone
- 🟣 Deep dark colors = Ancient (7+ sessions) = Overhead environment
**Symbols:**
- ↑ ↑↑ ↑↑↑ ↑↑↑↑ ↑↑↑↑↑ = High levels (1st through 5th)
- ↓ ↓↓ ↓↓↓ ↓↓↓↓ ↓↓↓↓↓ = Low levels (1st through 5th)
- ⚠️ = Proximity alert (danger zone)
- 🟢 = Bullish structure
- 🔴 = Bearish structure
- Δ = Tunnel width (distance between 1st high and 1st low)
**Critical Rules:**
1. Never fight ancient levels (7+ sessions)
2. Respect proximity alerts (⚠️)
3. Scale out near old/ancient resistance
4. Wait for confluence when entering
5. Let mitigated levels prove their new role
---
**Remember**: The indicator gives you structure. The trading edge comes from your discipline in respecting that structure.
Trade safe, trade smart, and always know your exit before your entry. 🎯
---
*"You don't become your best self by denying your patterns. You become your best self by recognizing them, understanding them, and choosing differently." - Adapted from The Mountain Is You*
In trading: You don't become profitable by ignoring market structure. You become profitable by recognizing it, understanding it, and choosing your entries accordingly.
Swing Elite Trend Direction [Free]Swing Elite Trend Direction
This indicator automatically identifies and labels market structure by detecting swing highs and swing lows, then classifying them as Higher Highs (HH), Higher Lows (HL), Lower Highs (LH), and Lower Lows (LL).
🔍 What It Does
The indicator uses a depth-based pivot detection algorithm to find significant swing points in price action. Each swing is then compared to the previous swing of the same type to determine the market structure:
HH (Higher High): Current swing high is above the previous swing high → bullish structure
HL (Higher Low): Current swing low is above the previous swing low → bullish structure
LH (Lower High): Current swing high is below the previous swing high → bearish structure
LL (Lower Low): Current swing low is below the previous swing low → bearish structure
📈 How To Use
Trend Identification:
Bullish trend is confirmed when you see HH followed by HL (or HL followed by HH)
Bearish trend is confirmed when you see LL followed by LH (or LH followed by LL)
The zigzag line color changes based on confirmed trend direction
Trade Setups:
In a bullish trend, look for pullbacks to HL areas for long entries
In a bearish trend, look for rallies to LH areas for short entries
Trend changes are signaled when structure breaks (e.g., bullish trend making a LL)
Depth Setting:
Higher depth values (e.g., 34-55) capture major swings for higher timeframe analysis
Lower depth values (e.g., 8-21) capture minor swings for shorter-term trading
Adjust based on your trading style and timeframe
Heikin Ashi Color Flip StrategyManual HA calculation → no repainting
✔ Entry on first green after red
✔ Exit on first red after green
✔ process_orders_on_close = false → orders execute on next bar open
✔ Logic is clean and readable
How to make it your kind of strategy (next step)
Given your past preferences, the best upgrade is:
• Trade only when price > EMA 21
• Or only when SPY > EMA 50 & VIX < 20
• Exit on price close below EMA 21 (your preferred rule)
Consider the following to increase win rate and decrease drawdown:
• Add EMA-21 exit instead of HA red
• Add SPY/VIX regime filter
• Give you real QQQ daily backtest metrics
• Convert this into a scan/alert-only indicator
Disclaimer:
This indicator is provided for educational and informational purposes only and does not constitute financial, investment, or trading advice. The signals generated by this indicator are not guaranteed to be accurate or profitable. Past performance is not indicative of future results. Trading and investing involve substantial risk, and you should perform your own analysis and consult a qualified financial professional before making any trading decisions. The author is not responsible for any financial losses incurred from the use of this indicator.
ICT Unicorn Model [Kodexius]ICT Unicorn Model is a market structure and imbalance confluence tool that automatically detects high probability “Unicorn” setups by combining three key elements into a single, clean script:
-A first, clean break of that swing level (displacement style break)
-A Fair Value Gap that overlaps a breaker candle body range
Instead of plotting every pivot or every imbalance independently, the script waits for a specific sequence: price establishes a valid swing, breaks that swing for the first time, and prints a setup only when the resulting context aligns with a valid, volatility filtered FVG and a clearly defined breaker range.
Each detected setup is drawn directly on the chart with labeled zones (Breaker and FVG) and is then actively monitored. If price violates the breaker boundary based on your chosen invalidation basis (Close or Wick), the setup is marked inactive and can optionally be removed to keep the chart clean.
This indicator is designed for traders who work with ICT style concepts such as liquidity runs, displacement, breaker blocks, and imbalance reversion, and who want a structured, rules based visualization rather than discretionary drawing.
🔹 Features
🔸 Fair Value Gap Detection With Volatility Filtering
Bullish and bearish FVGs are detected using classic three candle imbalance logic. To avoid low quality gaps during compression, the script applies an ATR based minimum size filter using the “FVG Min Size (ATR Multiplier)” input. Only gaps larger than ATR * threshold are considered valid.
🔸 First Break Validation (Clean Break Logic)
A key part of the model is identifying a “first break” of a swing level. The script checks whether the swing price has already been invalidated between the swing bar and the current bar. If it has, the swing is ignored. This helps reduce repeated signals and focuses on fresh structural breaks.
🔸 Breaker and FVG Confluence With Overlap Requirement
After a valid break occurs, the script defines a breaker range using the body of the swing candle (open and close). A setup is only created if this breaker body range overlaps the detected FVG price range. This overlap requirement is what filters many “almost” conditions and keeps signals more selective.
Bullish Unicorn:
Bearish Unicorn:
🔸 Configurable Invalidation Basis (Close or Wick)
You can choose how a setup fails:
-Close: invalidation requires a candle close beyond the breaker boundary
-Wick: invalidation occurs as soon as any wick crosses beyond the breaker boundary
This allows the tool to adapt to different trading styles, from conservative confirmation to more sensitive risk control.
🔸 Automatic Cleanup of Failed Setups
If “Delete Invalidated Setups” is enabled, the script removes the breaker box, FVG box, and label as soon as the setup is invalidated. If disabled, the zones remain visible for review while the setup is marked inactive internally.
🔸 Clear Chart Visuals
Each setup plots:
-A labeled Breaker zone box
-A labeled FVG zone box
-A directional Unicorn label (Bull or Bear) that updates position as the chart advances
Colors for bullish and bearish structures are fully configurable.
🔸 Alert Conditions
Two alert conditions are provided:
-Bullish Unicorn Setup Detected
-Bearish Unicorn Setup Detected
Alerts trigger only on the bar a new setup is created.
🔹 Calculations
This section summarizes the main computations used internally. The goal here is to explain the model mechanics rather than reproduce every implementation detail.
1. Swing Detection (Pivot High / Pivot Low)
Swing levels are detected using a symmetric pivot definition with “Swing Length” bars on both sides:
float ph = ta.pivothigh(high, swingLength, swingLength)
float pl = ta.pivotlow(low, swingLength, swingLength)
When a pivot is confirmed, its price and originating bar index are stored:
-Swing High: price = pivot high, isHigh = true
-Swing Low: price = pivot low, isHigh = false
The script keeps a limited history (most recent swings) to stay efficient.
2. Fair Value Gap Detection
FVGs use the classic three candle displacement imbalance:
Bullish FVG condition
bool isBullFVG = high < low
Bullish gap range is defined as:
-Top = low
-Bottom = high
Bearish FVG condition
bool isBearFVG = low > high
Bearish gap range is defined as:
-Top = low
-Bottom = high
3. ATR Based Minimum Gap Filter
ATR is computed (length 14), then the gap size is compared against a user threshold:
float atr = ta.atr(14)
bool validBullFVG = isBullFVG and (bullFvgTop - bullFvgBot) > (atr * fvgThreshold)
bool validBearFVG = isBearFVG and (bearFvgTop - bearFvgBot) > (atr * fvgThreshold)
This prevents very small imbalances from generating setups in low volatility conditions.
4. “First Break” Check Using Level Invalidation Scan
Before accepting a swing break, the script scans forward from the swing bar to the current bar to confirm the level has not already been breached. The scan can be based on wick or close:
-Wick mode: uses high or low
-Close mode: uses close
Conceptually:
priceToCheck = mode == "Wick" ? (checkBelow ? low : high) : close
If a prior breach is found, the swing is treated as already invalidated and is ignored for setup creation.
5. Break Of Structure Condition
Bullish break requirement
A bullish setup requires breaking a stored swing high with bullish body intent:
-close > swingHighPrice
-open < close
Bearish break requirement
A bearish setup requires breaking a stored swing low with bearish body intent:
-close < swingLowPrice
-open > close
An additional proximity filter is applied in the bearish branch to reduce weak or overly extended breaks by requiring the prior close to be reasonably near the swing level.
6. Breaker Range Construction
Once a qualifying swing is found, the breaker range is derived from the body of the swing candle (the candle at the swing bar index). The body boundaries are:
float breakerTop = math.max(bOpen, bClose)
float breakerBot = math.min(bOpen, bClose)
This models the breaker as the candle body range rather than full wick range, which typically produces more practical invalidation boundaries.
7. Overlap Test Between Breaker and FVG
A setup is only created if the breaker body overlaps the FVG zone. Conceptually the script rejects cases where one range is fully above or fully below the other:
-If there is no overlap, no setup is created
-If overlap exists, the Unicorn setup is valid
8. Active Monitoring and Invalidation
Each setup remains active until invalidated. Invalidation is evaluated every bar using your selected basis:
-Close basis: compares close to breaker boundary
-Wick basis: compares high or low to breaker boundary
Bullish invalidation
Setup fails if price crosses below breaker bottom.
Bearish invalidation
Setup fails if price crosses above breaker top.
If deletion is enabled, all drawings related to that setup are removed immediately on invalidation.
9. Drawing Updates and Object Lifecycle
Breaker and FVG boxes are extended to the right while the setup is active to keep zones visible into the near future. The Unicorn label is also repositioned as new bars print so the most recent context stays readable.
ZNOX Spot Trading Signalsthis is build for znox to give the user batter view not correct 100% and following it under your risk
Gold Sniper MGC1! - M30 Precision vPOCThis Pine Script, titled "Gold Sniper MGC1! - M30 Precision vPOC," is a high-precision intraday trading tool designed specifically for Micro Gold (MGC1!) futures. It integrates Market Profile and Volume Profile logic to identify key institutional levels across various trading sessions.
Core Functionality
The script identifies and plots the Volume Point of Control (vPOC)—the price level with the highest traded volume—for specific time windows:
P.vPOC (Previous vPOC): Calculated using a Daily VWAP sync to align perfectly with institutional data from the previous day.
vPOC Today: Tracks the developing Point of Control for the current global session (18:00 - 17:00).
Killzone vPOCs: Specifically isolates the highest volume price levels for the Asia (02h-08h), London (08h-14h), and New York (14h-17h) sessions.
Key Technical Features
Institutional Alignment: By utilizing request.security and hl2 median price calculations on a 30-minute basis, the script filters out market noise and aligns with the structural levels used by "Smart Money".
Dynamic Labels (Vignettes): Each level is projected to the right of the price action with a color-coded label. These labels dynamically display both the Level Name and the Exact Price (to two decimal places), facilitating rapid order entry.
Visual Hierarchy:
Black (Solid): Previous Day's Value (P.vPOC).
White (Dotted): Current Day's Developing Value.
Gold/Cyan/Orange: Specific Killzone session values.
Strategic Application
This script serves as the "Map" for the Gold Sniper MGC1! strategy. Traders use these levels to identify Liquidity Sweeps or Market Structure Shifts (MSS). When the price interacts with these vPOCs, it often signals institutional rejection or acceptance, providing high-probability entry points for intraday "Sniper" setups.
ML Adaptive SuperTrend Strategy [trade_crush]# ML Adaptive SuperTrend Strategy - User Guide
## Introduction
The **ML Adaptive SuperTrend Strategy** is a sophisticated trading tool that combines traditional trend-following logic with **Machine Learning (K-Means Clustering)** to dynamically adapt to market volatility. Unlike standard SuperTrend indicators that use a fixed ATR, this strategy analyzes historical volatility to categorize the current market into distinct clusters, providing more precise entries and exits.
>
> **Special Thanks:** This strategy is based on the innovative work of **AlgoAlpha**. You can explore their extensive library of high-quality indicators and strategies on TradingView: (www.tradingview.com).
---
## Machine Learning Engine (K-Means)
The core of this strategy is its ability to "learn" from recent market behavior.
- **K-Means Clustering**: The script takes the last $N$ bars of ATR data and runs an iterative clustering algorithm to find three "centroids" representing **High**, **Medium**, and **Low** volatility.
- **Adaptive ATR**: Based on the current volatility, the strategy selects the nearest centroid to use as the ATR value for the SuperTrend calculation. This ensures the trailing stop tightens during low volatility and widens during high volatility to avoid "noise".
---
## Key Features
### 1. Non-Repainting Signals
- **Confirm Signals**: When enabled, signals are only triggered after a bar closes. This ensures that the arrows and entries you see on the chart are permanent and reliable for backtesting.
### 2. Intelligent Risk Management
- **Multiple SL/TP Types**: Choose between **Percentage** based stops or **ATR** based stops for both Stop Loss and Take Profit.
- **Trailing Stop Loss (TSL)**:
- Supports both Percentage and ATR modes.
- **Activation Offset**: Only activates the trailing mechanism after the price has moved a certain percentage in your favor, protecting early-stage trades.
### 3. Risk-Based Position Sizing
- **Dynamic Quantity**: If enabled, the strategy automatically calculates the trade size based on your **Risk % Per Trade** and the distance to your **Stop Loss**. This ensures you never lose more than your defined risk on a single trade.
---
## User Input Guide
### SuperTrend & ML Settings
- **ATR Length**: The window used to calculate market volatility.
- **SuperTrend Factor**: The multiplier that determines the distance of the trailing stop from the price.
- **Use ML Adaptive ATR**: Toggle between the ML-enhanced logic and standard ATR.
- **Training Data Length**: How many historical bars the ML engine analyzes to find clusters.
### Risk Management
- **Stop Loss Type**: Set to Percentage, ATR, or None.
- **TS Activation Offset**: The profit buffer required before the trailing stop starts following the price.
- **Use Risk-Based Sizing**: Toggle this to let the script manage your position size automatically.
---
## How to Trade with This Strategy
1. **Monitor the Dashboard**: Check the top-right table to see which volatility cluster the market is currently in.
2. **Observe the Fills**: The adaptive fills (green/red) visualize the "breathing room" the strategy is giving the price.
3. **Execution**: The strategy enters on "ML Bullish" (Triangle Up) and "ML Bearish" (Triangle Down) signals.
4. **Exits**: The script will automatically exit based on your SL, TP, or Trailing Stop settings.
---
## Credits
Original Concept: **AlgoAlpha**
Strategy Conversion & Enhancements: **Antigravity AI**
FVG Strategy with validationThe code needs to be fixed because it renders the boxes incorrectly, otherwise you can see that the code is profitable in some markets
HMA Pivot Buy/Sell (only) + AlertsThis Pine Script is a lightweight indicator that plots only HMA-based pivot Buy/Sell signals and provides alert conditions for them.
What it does
Calculates a Hull Moving Average (HMA) using either:
a dynamic length based on the chart timeframe, or
a custom user-defined length.
Detects HMA pivot points (local turning points):
Buy signal when the HMA forms a local minimum (trend turns up).
Sell signal when the HMA forms a local maximum (trend turns down).
Optionally plots the HMA line and prints only the Buy/Sell markers on the chart (no extra arrows/emoji/labels from other systems).
Adds TradingView alerts for Buy, Sell, and combined Buy/Sell events.
Signal logic
Buy (HMA Pivot Low) triggers when:
HMA > HMA and HMA < HMA
Meaning: the HMA was falling, formed a bottom, and has started rising.
Sell (HMA Pivot High) triggers when:
HMA < HMA and HMA > HMA
Meaning: the HMA was rising, formed a top, and has started falling.
Inputs
Source: price source used to compute HMA (default: close).
Use Custom HMA Length: enables manual override.
Custom HMA Length: manual HMA period (default: 55).
Alerts: only on bar close:
If enabled, alerts fire only after the bar closes (confirmed signals).
If disabled, alerts can fire intrabar (faster but less stable).
Draw signal on pivot bar (offset -1):
If enabled, markers are drawn on the pivot bar (one bar back) using offset = -1.
If disabled, markers are drawn on the confirmation bar (no offset).
Show HMA line: toggles display of the HMA line.
Alerts available
BUY (HMA Pivot) — triggers on Buy signal.
SELL (HMA Pivot) — triggers on Sell signal.
BUY/SELL (HMA Pivot) — triggers on either Buy or Sell.
Each alert message includes ticker, timeframe, and close price via placeholders:
{{ticker}}, {{interval}}, {{close}}.
V3 Valentini Pro Scalper [Dashboard]Gemini 3.0 pro's take on Fabio Valentini's world #1 strategy scalp 12/19/2025
ORB FX REPLAY - FINAL SAFEHere is the description in English, written to sound professional and meet all the requirements for publishing on TradingView:
Script Description:
Title: ORB Strategy Backtest Pro - Ultra Compatibility
Description: This is an Opening Range Breakout (ORB) strategy specifically designed for professional backtesting. It is optimized to run smoothly on external platforms like FX Replay and TradingView's replay mode.
Key Features:
Custom Session: Automatically calculates the High and Low of a specific time window (default: 10:00 - 10:15 Bucharest/GMT+2).
Impulse Confirmation: Features a "Min Impulse" filter to ensure entries happen on strong momentum, avoiding "fake-outs" near the range boundaries.
Hard Target Management: Designed for "Set & Forget" backtesting. Once a trade is triggered, the script tracks it until it hits either the Stop Loss (SL) or the final Take Profit 3 (TP3).
Visual Projections: Draws clear, real-time lines for Entry, SL, and TP3 on the chart for easy visual tracking.
Automated Statistics: Includes a dynamic label system that tracks Total Trades, Win Count, and Loss Count based on the TP3/SL logic.
Optimized Code: Built using Pine Script v5 with a focus on stability and compatibility, avoiding complex tables that often cause errors on external engines.
Shadow Momentum EngineA proprietary oscillator that detects hidden divergences and momentum shifts before they appear on traditional indicators. Ideal for early entries in trends and for avoiding false breakout traps.
--
Un oscilador propietario que detecta divergencias ocultas y cambios de momentum antes de que aparezcan en los indicadores tradicionales. Perfecto para entradas tempranas en tendencias y para evitar trampas de falso breakout.
Solid Dynamic Corridors[AkmanBey]
Solid Dynamic Corridors: Technical Overview
The Solid Dynamic Corridors indicator is a sophisticated, multi-layered trend-following and volatility-channel system. Unlike standard indicators, it combines RSI-derived price projections, ATR-based volatility expansion, and a 20-level support/resistance matrix to identify high-probability trend zones.
1. RSI-Based Price Projection
The foundation of the indicator starts with an inverse calculation of RSI levels. By setting specific overbought (51) and oversold (49) thresholds, the script projects these momentum levels directly onto the price chart as dynamic bands. This allows the trader to see where the price would be if it reached those specific RSI exhaustion points.
2. The Multi-Layered Support & Resistance Matrix
The core strength of the script lies in its 20-level calculation engine. It computes 10 distinct resistance levels (H1-H10) and 10 distinct support levels (L1-L10) using a hybrid blend of:
* Exponential Moving Averages (EMA)
* Average True Range (ATR)
* Historical Extremes (High/Low Lookbacks)
* Price Action Ratios
These levels are then averaged to create the Final Resistance and Support Averages, providing a "solid" boundary that filters out market noise more effectively than a single moving average.
3. Volatility-Adjusted Dynamic Expansion
To adapt to changing market conditions, the indicator employs an ATR-based expansion mechanism. By applying a user-defined multiplier to the current ATR, the bands expand during high-volatility periods and contract during consolidation, ensuring the "Corridors" remain relevant regardless of market speed.
4. Trend Tracking & Persistence Logic
The system features a unique Signal Persistence logic. When a trend shift is detected (via an ATR-based trailing stop mechanism):
* Buy/Sell Signals: Triggered when the price breaks through the calculated trailing limits.
* Persistence Lines: Once a signal is generated, the indicator "locks" the support or resistance level at that moment and tracks it for an extended period (up to 19,999 bars). This helps traders identify long-term historical anchor points even after the immediate trend has passed.
5. Extreme Range Analysis (HH-LL)
Finally, the script calculates Extreme Upper and Lower Bounds based on the highest and lowest points of the signal tracking lines. This creates a "Master Range" that colors the chart dynamically, signaling whether the market is in a Red (Overextended High), Green (Overextended Low), or Blue (Neutral) state.
Summary of Key Features
* Hybrid Momentum/Volatility Engine: Combines RSI and ATR logic.
* Noise Reduction: Averages 20 different data points to find "True" support and resistance.
* Long-Term Reference: Unique tracking system that remembers signal levels for thousands of bars.
* Visual Clarity: Intuitive color coding for trend direction and extreme price zones.
Absorption DetectorSource: Prof Michael G.
Credit: GreatestUsername for the coding & implementation.
Zones of Support and Resistance can feel like drawing boxes on the chart. This indicator to help spot areas of possible reversal. It uses Volume Confirmation and Body-to-Wick Ratio to do this and defined as:
1. Volume Confirmation
High Volume: A candle that absorbs sitting limit orders is often accompanied with higher than average volume. The indicator define this type of candle if it has a volume is greater than 250%/350% of the average volume over the last 10 candles.
2. Body-to-Wick Ratio
Body vs. Wick: A candle with a small body and large wicks can indicate higher probability of reversal. You can define an absorption candle if the body of the candle is less than 50% of the total range (high-low).
These settings are also customizable to your own desired settings and should be used as a visual aid.






















