Price Action High 2 + Risk/Reward VisualizerIntroduction: Price Action High 2 (Bull Flag) Setup
This script identifies the High 2 (H2) setup, a staple price action pattern popularized by Al Brooks. The High 2 is a high-probability continuation pattern designed to catch the resumption of a bull trend after a two-legged pullback (a "complex" bull flag).
In a strong uptrend, the first attempt to end a pullback often fails (High 1). The High 2 represents the second, and usually more reliable, attempt by bulls to take control, often forming a "double bottom" structure within the flag.
How the Logic Works
The indicator follows a strict state-machine logic to ensure the pattern is valid:
Trend Confirmation: The script filters for an established uptrend where price is above a rising EMA (adjustable in settings).
Pullback Identification: It looks for a sequence of bars making lower highs.
High 1 (H1): The first bar in the correction that breaks above the high of the prior bar.
The Second Leg: The script then waits for the price to again fail to break a high, confirming a second leg of the pullback.
High 2 (H2): The signal is triggered when a bar breaks the high of the previous bar for the second time.
Key Features
Signal Bar Quality Filter: Not all High 2s are equal. This script includes a filter ensuring the signal bar closes in the upper portion of its range (bullish conviction) to avoid "weak" breakouts.
Automated Risk/Reward Visualizer: Upon a signal, the script automatically projects a Stop Loss (at the signal bar low) and a Take Profit level based on a customizable R:R ratio.
Clean Visuals: Labeled "H2" markers and dashed trend lines keep the chart uncluttered.
How to Trade It
Entry: Place a buy-stop order 1 tick above the High 2 signal bar.
Stop Loss: Traditionally placed below the low of the signal bar or the most recent swing low.
Target: Common targets include a 1:2 Risk/Reward ratio or the previous major swing high.
Settings Guide
EMA Length: Adjust this to match your timeframe (e.g., 20 for intraday, 50 for daily).
Min Close %: Set this to 50% or higher to ensure you only take trades where the bulls finished the bar strong.
Risk:Reward Ratio: Customize your profit targets to align with your personal trading plan.
Priceaction
Liquidity Void and Repair EngineLiquidity Void & Repair Engine
OVERVIEW
The Liquidity Void & Repair Engine is a high-fidelity institutional order flow tool designed to identify and track "Market Imbalances" or "Fair Value Gaps" (FVG). Unlike standard gap indicators that clutter the chart with every minor price jump, this engine uses Volatility-Adjusted Range Mapping to isolate high-conviction voids where price moved so rapidly that liquidity was left "unfilled."
The standout feature of this tool is its Active Repair Logic. The engine doesn't just draw static boxes; it monitors price action in real-time to determine when an imbalance has been "healed" by subsequent trading volume, providing a dynamic look at where the market has "unfinished business."
TECHNICAL LOGIC & ORIGINALITY
This script is published Open Source to contribute to the Pine Script community’s understanding of dynamic object management and order flow visualization.
ATR-Relative Filtering: To ensure only significant voids are plotted, the script uses a user-defined ATR (Average True Range) multiplier. This filters out market noise and focuses on institutional "impulse" moves.
Dynamic Box Management: Utilizing the Pine Script box array system, the script manages memory efficiently by updating existing objects rather than creating redundant ones.
The "Repair" Algorithm: The script tracks the high and low of every active void. When price action fully traverses the coordinates of a void, the script "seals" the box, visually marking the moment of liquidity equilibrium.
HOW TO USE
1. Identifying the "Magnet" (The Void)
When price moves aggressively, it leaves a "hole" in the auction.
Bullish Voids (Green): These represent areas where price surged so fast that buyers may still have unfilled orders sitting below. These act as Magnets for pullbacks.
Bearish Voids (Red): These represent areas where price plummeted, leaving a vacuum of selling pressure. These act as Magnets for relief rallies.
2. Trading the "Repair" Process
The Engine tracks how the market "repairs" these holes:
Partial Fill: If price enters a box but doesn't cross it, the "Magnet" is still active.
Full Repair: When a box is "sealed" (stops extending right), it indicates the imbalance is gone. If price "Seals" a green box and then bounces, it confirms the zone as Valid Institutional Support.
3. Confluence with the Trend
Continuation: In a strong uptrend, look for price to drop into a Green Bullish Void and find support. This is often the "Golden Entry" for trend followers.
Reversal Confirmation: If price ignores a Red Bearish Void and blasts right through it (sealing it instantly), it signals a massive shift in market regime and extreme bullish conviction.
USER SETTINGS
Lookback Period: How far back the engine searches for un-repaired gaps.
Min Gap Size (ATR %): Increase this to see only the "Major" institutional gaps; decrease it for a more granular intraday look.
Visual Styles: Fully customizable colors and transparency to match any chart theme (Dark/Light).
NOTES & DISCLAIMER
This script is a visualization of historical price imbalances and is intended for educational purposes only. It does not provide trade signals, entry/exit points, or financial advice. All trading involves risk.
Sen Regression ChannelSen Regression Channel
OVERVIEW
The Sen Regression Channel is a trend-structure visualization tool built on the Theil–Sen estimator, a median-based regression method designed to reduce sensitivity to price outliers. Unlike traditional least-squares regression channels, this approach anchors trend using the most representative slope across the lookback period, resulting in a more stable and noise-resistant structure.
TECHNICAL LOGIC & ORIGINALITY
To protect the proprietary implementation of the median-slope engine and adaptive band construction, this script is published as Protected.
Median Slope Engine
Calculates the Theil–Sen slope by evaluating the median rate of change across the lookback window, producing a trendline less distorted by extreme candles or transient volatility.
Adaptive Volatility Bands
Channel width can be derived from either Standard Deviation or ATR, allowing the envelope to adjust dynamically to changing volatility regimes.
Multi-Reference Context (Optional)
VWAP and EMA/SMA overlays can be enabled to compare the median regression structure against commonly used price and volume-weighted references.
HOW TO USE (EDUCATIONAL)
This tool is designed to help analyze trend quality and market structure, not to generate trade signals.
Trend Direction & Stability
A sustained upward or downward slope of the median regression line indicates directional structure with reduced noise sensitivity.
Volatility Expansion Zones
Price closing outside the channel bands highlights volatility expansion relative to the median trend and may signal regime change.
Mean-Reversion Context
Price oscillation between the median line and bands reflects balanced conditions; movement toward the outer bands indicates relative extension.
VWAP Confluence
Alignment between the regression midline and VWAP may highlight areas of consensus value.
USER INPUTS
Lookback Period – Sets the window for the median slope calculation
Band Multiplier – Scales the channel width
Band Method – Standard Deviation or ATR-based envelope
Visual Overlays – Toggle VWAP, midline, and cloud transparency
NOTES
This script is a historical charting and visualization tool for educational purposes only.
It does not provide trade signals, alerts, or financial advice.
All values are calculated in real time using available chart data.
Structure Lite - Automatic Major Trend LinesStructure Lite – Pivot-Based Market Structure Visualization
OVERVIEW
Structure Lite is an open-source charting tool designed to assist traders in visualizing higher-timeframe market structure. The script identifies major swing points using high-period pivot analysis and projects structural support and resistance lines directly on the chart. Its purpose is to highlight persistent market structure while minimizing visual noise.
CORE CONCEPTS & CALCULATIONS
Pivot Identification
The script uses Pine Script’s built-in ta.pivothigh() and ta.pivotlow() functions to identify confirmed swing highs and lows. A pivot is only validated after a user-defined number of bars (Major Pivot Lookback) have formed on both sides of the price extreme, ensuring that only structurally significant pivots are selected.
Structural Pairing
Each structural line is created only after two consecutive pivots of the same type are confirmed (high-to-high or low-to-low). The script stores the price and bar index of these pivots and uses them as fixed anchor points.
Line Projection
Once a valid pivot pair is formed, the script draws a line between the two points using line.new() and extends it forward using extend.right. These lines represent projected structural boundaries rather than trade signals.
Object Management
To maintain chart clarity and performance, the script manages all drawn objects through a line array. A FIFO (First-In, First-Out) method is applied so that only the three most recent structural lines remain visible. Older lines are automatically deleted as new ones are created.
DESIGN PHILOSOPHY & ORIGINALITY
While many indicators plot frequent swing points or short-term pivots, Structure Lite focuses on structural persistence. By filtering for higher-period pivots and limiting the number of displayed projections, the script emphasizes dominant market structure rather than short-term fluctuations. This approach is intended to support discretionary analysis, not replace it.
HOW TO USE
Major Pivot Lookback
Increase the value to focus on higher-timeframe structure (e.g., swing or position trading).
Decrease the value to visualize intraday structural levels.
Visual Encoding
Green lines represent projected structural support
Red lines represent projected structural resistance
Visibility Control
A boolean input allows all structure lines to be hidden instantly to restore a clean price chart.
LIMITATIONS & DISCLAIMER
This script is a visualization tool only. It does not generate trade signals, entry or exit points, alerts, or directional forecasts. All plotted levels are derived from historical price action and may change as new pivots form. The script is provided for educational and analytical purposes and should be used in conjunction with other forms of market analysis
Order Flow Signals - Alphaomega18═══════════════════════════════════════════════════════════════════════════════
ORDER FLOW SIGNALS - TRADINGVIEW PUBLICATION (ENGLISH)
Created by Alphaomega18
═══════════════════════════════════════════════════════════════════════════════
📌 PUBLICATION TITLE
═══════════════════════════════════════════════════════════════════════════════
Order Flow Signals - Absorptions & CVD Divergences - Alphaomega18
📝 COMPLETE DESCRIPTION
═══════════════════════════════════════════════════════════════════════════════
🎯 DETECT INSTITUTIONAL MOVES IN REAL-TIME
Order Flow Signals is an advanced order flow analysis indicator that displays institutional absorption signals, hidden CVD divergences, and extreme buy/sell pressure directly on your chart.
Fully customizable with 9 configurable colors, adjustable label sizes, and extreme absorption detection (300%+), this indicator allows you to trade WITH institutions, not against them.
🔥 THE PROBLEM IT SOLVES
Have you ever:
✗ Taken a technically perfect setup but got stopped out?
✗ Seen price reject a support/resistance but go the other way?
✗ Entered counter-trend without knowing institutions were accumulating?
✗ Missed big moves due to lack of confirmation?
Order Flow Signals solves these problems by revealing what smart money is REALLY doing behind each candle.
📊 SIGNALS DISPLAYED ON CHART
🔷 ABSORPTIONS (💎 Diamonds)
Institutions absorb order flow when volume is high BUT price doesn't move in the expected direction.
💎 BULLISH ABSORPTION (Cyan)
→ Volume spike + bearish candle + positive delta
→ Institutions are BUYING despite selling pressure
→ Strong accumulation signal
💎 BEARISH ABSORPTION (Orange)
→ Volume spike + bullish candle + negative delta
→ Institutions are SELLING despite buying pressure
→ Strong distribution signal
🔥 EXTREME ABSORPTIONS (Fuchsia Fire)
→ Volume > 300% of average (customizable)
→ MASSIVE institutional activity
→ Ultra-rare and ultra-strong signals
→ Indicates major moves in preparation
🔺 DIVERGENCES (▲ Green Triangles)
Price makes lower lows BUT CVD makes higher lows
→ Hidden accumulation in progress
→ Bullish reversal signal likely
→ Confirms your BUY entries
🔻 DIVERGENCES (▼ Red Triangles)
Price makes higher highs BUT CVD makes lower highs
→ Hidden distribution in progress
→ Bearish reversal signal likely
→ Confirms your SELL entries
🚀 EXTREME BUY PRESSURE (Rockets)
Delta > 2x average
→ Massive aggressive buying
→ Strong bullish momentum
→ Continuation likely
💥 EXTREME SELL PRESSURE (Explosions)
Delta < -2x average
→ Massive aggressive selling
→ Strong bearish momentum
→ Capitulation or panic
📈 DELTA PER CANDLE DISPLAY (NEW)
Option to display numerical delta on each candle:
• ✅ GREEN when delta positive (+250, +180, etc.)
• ❌ RED when delta negative (-320, -150, etc.)
• Tiny size to avoid clutter
• Perfect for tracking flow in real-time
🎯 REAL USE CASES
📌 Example 1: Avoid the Classic Trap
Technical setup:
→ Price rejects VWAP Weekly (resistance)
→ FVG below attracting
→ Single Prints above
→ You think: "Perfect SELL setup!"
WITHOUT Order Flow Signals:
❌ You enter SELL
❌ Price goes up and stops you out
❌ Frustration and loss
WITH Order Flow Signals:
✅ You see 💎 CYAN DIAMOND (Bullish absorption)
✅ Institutions are BUYING despite rejection
✅ You DON'T ENTER SELL
✅ Trade saved, loss avoided!
📌 Example 2: Confirm a Breakout
Setup:
→ Price breaks major resistance
→ But is it a real breakout or fakeout?
Check Order Flow Signals:
→ 🚀 ROCKET appears (extreme buy pressure)
→ 💎 CYAN DIAMOND (bullish absorption)
→ Massive positive delta visible
Clear signal: It's a REAL breakout!
→ Enter BUY with confidence
→ Institutions pushing price
📌 Example 3: Detect Hidden Accumulation
Situation:
→ Price consolidating in range
→ Apparently neutral
→ No clear technical signal
Order Flow Signals reveals:
→ ▲ GREEN TRIANGLE (bullish divergence)
→ Price flat BUT CVD rising progressively
→ Institutional accumulation in progress
Action: Prepare LONG position
→ When price breaks, it will be violent!
⚙️ COMPLETE CUSTOMIZATION
🎨 COLORS (9 configurable colors)
• Bullish Absorption (default: cyan)
• Bearish Absorption (default: orange)
• EXTREME Absorption (default: fuchsia)
• Bullish Divergence (default: green)
• Bearish Divergence (default: red)
• Buy Pressure (default: lime)
• Sell Pressure (default: fuchsia)
• Positive Delta (default: green)
• Negative Delta (default: red)
Adapt the indicator to your chart style!
📏 LABEL SIZES
5 sizes available: Tiny / Small / Normal / Large / Huge
→ Perfect for all screen types
→ Large 4K screen? → Large or Huge
→ Small laptop? → Small or Normal
🔍 CUSTOMIZABLE DETECTION
• Normal Absorption Threshold: 1.5x (default)
• EXTREME Absorption Threshold: 3.0x (default)
• Divergence Periods: 14 (default)
• All thresholds adjustable to your style
👁️ ON/OFF DISPLAY
• Absorptions 💎 (On/Off)
• Divergences ▲▼ (On/Off)
• Extreme Pressure 🚀💥 (On/Off)
• Delta per Candle (On/Off)
Display only what you need!
🔔 COMPLETE ALERT SYSTEM
8 independently configurable alert types:
1. 🔵 Bullish Absorption
2. 🔴 Bearish Absorption
3. 🔥🔵 EXTREME Bullish Absorption
4. 🔥🔴 EXTREME Bearish Absorption
5. 📈 Bullish Divergence
6. 📉 Bearish Divergence
7. 🚀 Extreme Buy Pressure
8. 💥 Extreme Sell Pressure
Receive push, email or SMS notifications when institutions act!
💡 MARKETS AND TIMEFRAMES
✅ ALL markets compatible:
• Futures (ES, NQ, YM, RTY, MNQ, MES, etc.)
• Forex (EUR/USD, GBP/USD, USD/JPY, etc.)
• Crypto (BTC, ETH, altcoins)
• Stocks (Tesla, Apple, Nvidia, etc.)
• Indices (S&P 500, Nasdaq, Dow Jones)
• Commodities (Gold, Oil, etc.)
✅ All timeframes:
• Scalping: 1min, 5min
• Day Trading: 15min, 30min, 1H ⭐ (optimal!)
• Swing Trading: 4H, Daily
Note: More reliable signals with real volume data
→ TradingView Premium recommended for tick data
🏆 UNIQUE ADVANTAGES
✅ Automatic institutional absorption detection
✅ EXTREME absorptions (300%+) for ultra-strong signals
✅ Integrated CVD (Cumulative Volume Delta)
✅ Optional per-candle delta display (green/red)
✅ 9 customizable colors - adapt to your style
✅ 5 label sizes - perfect for all screens
✅ Clear visual signals directly on chart
✅ Detailed tooltips on each signal
✅ 8 independent configurable alerts
✅ Clean, optimized code, no repaint
✅ Compatible all markets and timeframes
📊 RECOMMENDED CONFIGURATION
For MNQ / ES / NQ (15min):
```
Detection:
├─ Normal Absorption Threshold: 1.5x
└─ EXTREME Absorption Threshold: 3.0x
Display:
├─ Absorptions: ✅ ON
├─ Divergences: ✅ ON
├─ Extreme Pressure: ✅ ON
└─ Delta per Candle: ❌ OFF (or ON if preferred)
Customization:
└─ Label Size: Normal (or Large for big screen)
Colors:
└─ Default (or customize!)
Alerts:
└─ All ✅ ON
```
For Scalping (1-5min):
```
└─ Label Size: Small
└─ Delta per Candle: ✅ ON (useful in scalping)
└─ Absorption Threshold: 2.0x (stricter)
```
🎓 SUPPORT AND TOOLTIPS
Each signal includes detailed tooltip on hover:
• Exact volume and multiplier (e.g. 2.3x)
• Precise delta
• Signal explanation
• Suggested action
Hover over 💎▲🚀 to understand each signal!
🔗 PERFECT COMPLEMENT
This indicator works perfectly with:
• Order Flow Dashboard (to see CVD and pressures)
• VWAP Multi-Timeframe
• Fair Value Gaps (FVG)
• Market Profile (POC/VPOC)
• Support/Resistance
Combine Order Flow signals with your technical analysis!
⚠️ DISCLAIMER
Technical indicators are decision support tools. No indicator guarantees profits. Always use:
• Appropriate risk management
• Stop loss on every trade
• Proper position sizing
• Demo account testing first
Order Flow Signals improves your analysis but doesn't replace a complete strategy.
📞 CONTACT AND SUPPORT
Created by Alphaomega18
For questions, bugs or suggestions:
Find my other indicators:
• Order Flow Dashboard (CVD and pressures)
• VWAP Multi-Timeframe Pro
• Fair Value Gap Detector
• Volume & Volatility Crisis Detector
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! 🤿📈
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.
Quasimodo (QML) Pattern [Kodexius]Quasimodo (QML) Pattern is a market structure indicator that automatically detects Bullish and Bearish Quasimodo formations using confirmed swing pivots, then visualizes the full structure directly on the chart. The script focuses on the classic liquidity-grab narrative of the QML: a sweep beyond a prior swing (the Head) followed by a decisive market structure break (MSB), leaving behind a clearly defined reaction zone between the Left Shoulder and the Head.
Detection is built on pivot highs and lows, so patterns are evaluated only after swing points are validated. Once a valid 4 pivot sequence is identified, the indicator draws the pattern legs, highlights the internal triangle area to emphasize the grab, marks the MSB leg, and projects a QML zone that can be used as a potential area of interest for retests.
This tool is designed for traders who work with structure, liquidity concepts, and reversal/continuation triggers, and who want a clean, repeatable QML visualization without manually marking swings.
🔹 Features
🔸 Confirmed Pivot Based Structure Mapping
The script uses classic built-in pivot logic to detect swing highs and swing lows.
🔸 Automatic Bullish and Bearish QML Detection
The indicator evaluates the most recent 4 pivots and checks for a valid alternating sequence (High-Low-High-Low or Low-High-Low-High). When the sequence matches QML requirements, the script classifies the setup as bullish or bearish:
Bullish logic (structure reversal up):
- Left Shoulder is a pivot Low
- Head is a lower Low than the Left Shoulder (liquidity sweep)
- MSB pivot exceeds the Reaction pivot
Bearish logic (structure reversal down):
- Left Shoulder is a pivot High
- Head is a higher High than the Left Shoulder (liquidity sweep)
- MSB pivot breaks below the Reaction pivot
🔸 Full Pattern Visualization (Legs + Highlighted Core)
When a pattern triggers, the script draws:
Three main legs: Left Shoulder to Reaction, Reaction to Head, Head to MSB
A shaded triangular highlight over the internal structure to make the liquidity-grab shape easy to spot at a glance
🔸 QML Zone Projection
A QML Zone box is drawn using the price range defined between the Left Shoulder and the Head, then extended to the right to remain visible as price develops. This zone is intended to act as a practical reference area for potential retests and reaction planning after MSB confirmation.
🔸 MSB Emphasis
A dotted MSB line is drawn between the Reaction point and the MSB point to visually emphasize the confirmation leg that completes the pattern logic.
🔸 Clean Point Tagging and Directional Labeling
Key points are labeled directly on the chart:
- “LS” at the Left Shoulder
- “Head” at the sweep pivot
- “MSB” at the break pivot
A directional label (“Bullish QML” or “Bearish QML”) is also printed to quickly identify the detected bias.
🔸 Configurable Visual Style
All main visual components are user configurable:
- Bullish and bearish colors
- Line width
- Label size
🔸 Efficient Update Logic
Pattern checks are only performed when a new pivot is confirmed, avoiding unnecessary repeated calculations on every bar. The most recent pattern’s projected elements (zone and label positioning) are updated as new bars print to keep the latest setup readable.
🔹 Calculations
This section summarizes the core logic used for detection and plotting.
1. Pivot Detection (Swing Highs and Lows)
The script relies on confirmed pivots using the user inputs:
Left Bars: how many bars must exist to the left of the pivot
Right Bars: how many bars must exist to the right to confirm it
float ph = ta.pivothigh(leftLen, rightLen)
float pl = ta.pivotlow(leftLen, rightLen)
When a pivot is confirmed, its true bar index is the pivot bar, not the current bar, so the script stores:
bar_index
2. Pivot Storage and History Window
Each pivot is stored as a structured object containing:
- price
- index
- isHigh (true for pivot high, false for pivot low)
A rolling history is maintained (up to 50 pivots) to keep processing stable and memory usage controlled.
3. Sequence Validation (Alternation Check)
The pattern evaluation always uses the latest 4 pivots:
p0: Left Shoulder candidate
p1: Reaction candidate
p2: Head candidate
p3: MSB candidate
Before checking bullish/bearish rules, the script enforces alternating pivot types:
bool correctSequence =
(p0.isHigh != p1.isHigh) and
(p1.isHigh != p2.isHigh) and
(p2.isHigh != p3.isHigh)
This prevents invalid structures like consecutive highs or consecutive lows from being interpreted as QML.
4. Bullish QML Conditions
A bullish QML is evaluated when the Left Shoulder is a Low:
Head must be lower than Left Shoulder (sweep)
MSB must be higher than Reaction (break)
if not p0.isHigh
if p2.price < p0.price and p3.price > p1.price
// Bullish QML confirmed
Interpretation:
p2 < p0 represents the liquidity grab below the prior swing low
p3 > p1 represents the market structure break above the reaction high
5. Bearish QML Conditions
A bearish QML is evaluated when the Left Shoulder is a High:
Head must be higher than Left Shoulder (sweep)
MSB must be lower than Reaction (break)
if p0.isHigh
if p2.price > p0.price and p3.price < p1.price
// Bearish QML confirmed
Interpretation:
p2 > p0 represents the liquidity grab above the prior swing high
p3 < p1 represents the market structure break below the reaction low
6. Drawing Logic (Structure, Highlight, Zone, Labels)
When confirmed, the script draws:
Three connecting legs (LS to Reaction, Reaction to Head, Head to MSB)
A shaded triangle using a transparent “ghost” line to enable filling
A dotted MSB emphasis line between Reaction and MSB
A QML Zone box spanning the LS to Head price range and projecting to the right
Point labels: LS, Head, MSB
A direction label: “Bullish QML” or “Bearish QML”
7. Latest Pattern Extension
To keep the newest setup readable, the script updates the most recently detected pattern by extending its projected elements as new bars print:
QML zone right edge is pushed forward
The main label x position is pushed forward
This keeps the last identified QML zone visible as price evolves, without having to redraw historical patterns on every bar.
Amihud Illiquidity Ratio [MarkitTick]💡This indicator implements the Amihud Illiquidity Ratio, a financial metric designed to measure the price impact of trading volume. It assesses the relationship between absolute price returns and the volume required to generate that return, providing traders with insight into the "stress" levels of the market liquidity.
Concept and Originality
Standard volume indicators often look at volume in isolation. This script differentiates itself by contextualizing volume against price movement. It answers the question: "How much did the price move per unit of volume?" Furthermore, unlike static indicators, this implementation utilizes dynamic percentile zones (Linear Interpolation) to adapt to the changing volatility profile of the specific asset you are viewing.
Methodology
The calculation proceeds in three distinct steps:
1. Daily Return: The script calculates the absolute percentage change of the closing price relative to the previous close.
2. Raw Ratio: The absolute return is divided by the volume. I have introduced a standard scaling factor (1,000,000) to the calculation. This resolves the issue of the values being astronomically small (displayed as roughly 0) without altering the fundamental logic of the Amihud ratio (Absolute Return / Volume).
- High Ratio: Indicates that price is moving significantly on low volume (Illiquid/Thin Order Book).
- Low Ratio: Indicates that price requires massive volume to move (Liquid/Deep Order Book).
3. Dynamic Regimes: The script calculates the 75th and 25th percentiles of the ratio over a lookback period. This creates adaptive bands that define "High Stress" and "Liquid" zones relative to recent history.
How to Use
Traders can use this tool to identify market fragility:
- High Stress Zone (Red Background): When the indicator crosses above the 75th percentile, the market is in a High Illiquidity Regime. Price is slipping easily. This is often observed during panic selling or volatile tops where the order book is thin.
- Liquid Zone (Green Background): When the indicator drops below the 25th percentile, the market is in a Liquid Regime. The market is absorbing volume well, which is often characteristic of stable trends or accumulation phases.
- Dashboard: A visual table on the chart displays the current Amihud Ratio and the active Market Regime (High Stress, Normal, or Liquid).
Inputs
- Calculation Period: The lookback length for the average illiquidity (Default: 20).
- Smoothing Period: The length of the additional moving average to smooth out noise (Default: 5).
- Show Quant Dashboard: Toggles the visibility of the on-screen information table.
● How to read this chart
• Spike in Illiquidity (Red Zones)
Price is moving on "thin air." Expect high volatility or potential reversals.
• Low Illiquidity (Green/Stable Zones)
The market is deep and liquid. Trends here are more sustainable and reliable.
• Divergence
Watch for price making new highs while liquidity is drying up—a classic sign of an exhausted trend.
Example:
● Chart Overview
The chart displays the Amihud Illiquidity indicator applied to a Gold (XAUUSD) 4-hour timeframe.
Top Pane: Price action with manual text annotations highlighting market reversals relative to liquidity zones.
Bottom Pane: The specific technical indicator defined in the logic. It features a Blue Line (Raw Illiquidity), a Red Line (Signal/Smoothed), and dynamic background coloring (Red and Green vertical strips).
● Deep Visual Analysis
• High Stress Regime (Red Zones)
Visual Event: In the bottom pane, the background periodically shifts to a translucent red.
Technical Logic: This event is triggered when the amihudAvg (the smoothed illiquidity ratio) exceeds the 75th percentile ( hZone ) of the lookback period.
Forensic Interpretation: The logic calculates the absolute price change relative to volume. A spike into the red zone indicates that price is moving significantly on relatively lower volume (high price impact). Visually, the chart shows these red zones aligning with local price peaks (volatility expansion), leading to the bearish reversal marked by the red box in the top pane.
• Liquid Regime (Green Zones)
Visual Event: The background shifts to a translucent green in the bottom pane.
Technical Logic: This triggers when the amihudAvg falls below the 25th percentile ( lZone ).
Forensic Interpretation: This state represents a period where large volumes are absorbed with minimal price impact (efficiency). On the chart, this green zone corresponds to the consolidation trough (green box, top pane), validating the annotated accumulation phase before the bullish breakout.
• Indicator Lines
Blue Line: This is the illiquidityRaw value. It represents the raw daily return divided by volume.
Red Line: This is the smoothedVal , a Simple Moving Average (SMA) of the raw data, used to filter out noise and define the trend of liquidity stress.
● Anomalies & Critical Data
• The Reversal Pivot
The transition from the "High Stress" (Red) background to the "Liquid" (Green) background serves as a visual proxy for market regime change. The chart shows that as the Red zones dissipate (volatility contraction), the market enters a Green zone (efficient liquidity), which acted as the precursor to the sustained upward trend on the right side of the chart.
● About Yakov Amihud
Yakov Amihud is a leading researcher in market liquidity and asset pricing.
• Brief Background
Professor of Finance, affiliated with New York University (NYU).
Specializes in market microstructure, liquidity, and quantitative finance.
His work has had a major impact on both academic research and practical investment models.
● The Amihud (2002) Paper
In 2002, he published his influential paper: “Illiquidity and Stock Returns: Cross-Section and Time-Series Effects” .
• Key Contributions
Introduced the Amihud Illiquidity Measure, a simple yet powerful proxy for market liquidity.
Demonstrated that less liquid stocks tend to earn higher expected returns as compensation for liquidity risk.
The measure became one of the most widely used liquidity metrics in finance research.
● Why It Matters in Practice
Used in quantitative trading models.
Applied in portfolio construction and risk management.
Helpful as a liquidity filter to avoid assets with excessive price impact.
In short: Yakov Amihud established a practical and robust link between liquidity and returns, making his 2002 work a cornerstone in modern financial economics.
Disclaimer: All provided scripts and indicators are strictly for educational exploration and must not be interpreted as financial advice or a recommendation to execute trades. I expressly disclaim all liability for any financial losses or damages that may result, directly or indirectly, from the reliance on or application of these tools. Market participation carries inherent risk where past performance never guarantees future returns, leaving all investment decisions and due diligence solely at your own discretion.
SMC Academy [PhenLabs]📊 SMC Academy
Version: PineScript™ v6
📌 Description
The SMC Academy indicator is a comprehensive educational tool designed to demystify Smart Money Concepts (SMC) for traders of all levels. Unlike standard indicators that simply print signals, this script uses a “Learning Phase” system that allows users to toggle between individual concepts—such as Market Structure, Liquidity, Imbalances, and Order Blocks—or view them all simultaneously. It lets you focus on one piece of the puzzle at a time.
🚀 Points of Innovation
Progressive Learning Modes: Toggle between 5 distinct phases to master concepts individually before using the Full Strategy Mode.
Educational Tooltips: Hover over labels to read detailed explanations of why a BOS, MSS, or Liquidity zone was identified.
Smart Filtering: Uses ATR and Volume integration to filter out low-quality Fair Value Gaps and weak Order Blocks.
HTF Dashboard: A built-in panel analyzes Higher Timeframe (4H) data to ensure you are trading in alignment with the broader trend.
🔧 Core Components
Market Structure Engine: Automatically detects Swing Highs and Lows to map out market direction using configurable swing lengths.
Liquidity Manager: Identifies unmitigated swing points that serve as Buy-Side (BSL) and Sell-Side (SSL) liquidity magnets.
Imbalance Detector: Highlights Fair Value Gaps (FVG) where price inefficiencies exist, using ATR thresholds to ignore noise.
Order Block Identifier: Locates the specific candles responsible for structure breaks, validated by volume analysis.
🔥 Key Features
Break of Structure (BOS): Automatically marks trend continuation signals with solid lines and color-coded labels.
Market Structure Shift (MSS): Identifies potential trend reversals when significant swing points are breached.
Dashboard Context: Displays the current trend direction and the 4H context directly on your chart.
Custom Alerts: Built-in alert conditions for structure breaks and new Order Blocks allow for automated tracking.
🎨 Visualization
Structure Lines: Solid lines indicate confirmed breaks (Green for Bullish, Red for Bearish).
Liquidity Zones: Dotted lines extending rightward indicate resting liquidity levels that price may target.
FVG Boxes: Shaded boxes highlight imbalance zones, automatically extending for a user-defined number of bars.
Dashboard: A clean, non-intrusive table in the top-right corner displays trend status and active mode.
📖 Usage Guidelines
Setting Categories
Learning Mode: Select from ‘1. Market Structure’ through ‘5. Full Strategy Mode’ to filter what appears on the chart.
Swing Detection Length: Default (5). Determines the sensitivity of the swing high/low detection.
Structure Break Type: Options (Close/Wick). Choose whether a candle close or just a wick is required to confirm a break.
Min FVG Size: Default (0.5 ATR). Filters out gaps smaller than this multiplier to reduce noise.
Filter Weak OBs by Volume: Default (True). Only highlights Order Blocks where volume exceeds the 20-period average.
✅ Best Use Cases
Educational Study: Isolate “Phase 1: Market Structure” to practice identifying trend changes without distraction.
Trend Following: Use “Phase 3: Imbalances” to find entry points within an established trend.
Reversal Trading: Combine “Phase 2: Liquidity” and “Phase 4: Order Blocks” to catch reversals at key levels.
⚠️ Limitations
Subjectivity: Market structure can be interpreted differently depending on the swing length settings used.
Ranging Markets: Like all trend-following concepts, false BOS/MSS signals may generate during choppy, sideways price action.
Repainting: While the signals are non-repainting once confirmed, the live candle may flash a signal before the close if “Close” mode is selected.
💡 What Makes This Unique
Interactive Learning: The inclusion of tooltip explanations transforms this from a simple tool into an active mentor.
Phase-Based Workflow: The ability to strip the chart back to basics at the click of a button is unique to the PhenLabs ecosystem.
🔬 How It Works
Swing Analysis: The script calculates pivot highs and lows based on your length input to define the structural landscape.
Break Validation: It checks if price crosses these pivot points to trigger BOS (Continuation) or MSS (Reversal) logic.
Volume Confirmation: For Order Blocks, it looks back inside the swing leg to find the specific candle responsible for the move, verifying it has significant volume.
💡 Note:
For the best experience, start in Phase 1 to calibrate your Swing Detection Length to the specific volatility of the asset you are trading before enabling Full Strategy Mode.
3SPC Three Candle Price Action Setup3SPC (Three Candle Price Action Setup) is an open-source indicator designed to detect
a simple and clearly defined three-candle price action pattern.
The logic is based on the following structure:
• The first two candles move in the same direction (bullish or bearish).
• The third candle interacts with the real bodies of both previous candles,
which may indicate a short-term liquidity sweep or price reaction.
• A bullish setup is confirmed when price holds above the open of the first candle.
• A bearish setup is confirmed when price holds below the open of the first candle.
This script does not use oscillators or lagging indicators.
It is intended as a visual aid for discretionary traders and should be used
together with market context, risk management and higher timeframe analysis.
The script is published as open-source for educational and transparency purposes.
UI Labels Translation:
- نمایش ستاپ صعودی: Show bullish setups
- نمایش ستاپ نزولی: Show bearish setups
Market Structure Pivots with BOS & CHoCH [zazenio]What is Market Structure?
Market structure is simply the pattern of highs and lows that price creates as it moves. When you look at any chart, you'll notice price doesn't move in a straight line — it swings up, pulls back, swings up again (in an uptrend), or the opposite in a downtrend.
These swing points — the peaks and valleys — are what traders call pivots . Identifying them correctly is the foundation of understanding where a market has been and where it might go next.
What This Indicator Does
Swing Pivots automatically marks these peaks and valleys on your chart so you don't have to draw them manually. It works on any market — stocks, crypto, forex, futures, indices — and on any timeframe.
Beyond just marking pivots, this indicator also draws BOS (Break of Structure) and CHoCH (Change of Character) lines — two essential concepts that help you understand when a trend is continuing or potentially reversing.
How Pivots Are Detected
This indicator confirms pivots based on price structure, not a fixed bar count.
Here's how it works:
A swing high is confirmed when price breaks below the previous swing low. At that moment, we know the high was real — price tried to go higher, failed, and reversed. The market "proved" that level was a genuine turning point.
A swing low is confirmed when price breaks above the previous swing high. The same logic applies — price tried to go lower, failed, and reversed direction.
This creates a natural alternation: high, low, high, low. Each pivot is validated by the market's actual behavior, not by waiting for an arbitrary number of bars to pass.
Understanding BOS and CHoCH
Once you can identify pivots, the next step is understanding what happens when price breaks through them. This is where BOS and CHoCH come in.
BOS (Break of Structure)
A Break of Structure occurs when price continues in the direction of the current trend by breaking a previous pivot level.
In an uptrend : Price breaks above a previous swing high → This signals strength. Buyers are pushing price to new highs, and the trend is likely to continue.
In a downtrend : Price breaks below a previous swing low → This signals weakness. Sellers are pushing price to new lows, and the trend is likely to continue.
Think of BOS as the market saying "the trend is still intact." Each BOS confirms that the dominant side (buyers or sellers) remains in control.
CHoCH (Change of Character)
A Change of Character occurs when price breaks a pivot level in the opposite direction of the current trend. This is an early warning signal that the trend may be reversing.
In an uptrend : Price breaks below a previous swing low → This is unexpected. In a healthy uptrend, lows should hold. When they don't, it suggests buyers are losing control and sellers may be taking over.
In a downtrend : Price breaks above a previous swing high → This is unexpected. In a healthy downtrend, highs should hold. When they don't, it suggests sellers are losing control and buyers may be stepping in.
Think of CHoCH as the market's behavior "changing character" — it's no longer acting the way it should if the trend were healthy.
Why BOS and CHoCH Matter
These concepts give you a framework for reading what the market is actually doing:
BOS tells you the trend is continuing — stay with it or look for entries in that direction
CHoCH warns you the trend may be ending — time to be cautious, take profits, or look for trades in the new direction
By visualizing these breaks directly on your chart, you don't have to guess. You can see at a glance whether the market is trending smoothly (consecutive BOS) or showing signs of reversal (CHoCH).
Why This Approach Works
Most pivot indicators use a "lookback" method — they wait for a certain number of bars (say, 5 or 10) on each side of a candle before confirming it as a pivot. This creates a fixed delay. By the time the pivot appears on your chart, price has already moved on.
This indicator doesn't wait. It confirms pivots the moment price structure proves them. The result is pivots that align with how traders actually read charts — based on breaks of structure, not arbitrary countdowns.
Settings
Configuration
Swing Width : Controls how sensitive the detection is. Higher numbers show only major swings; lower numbers capture smaller moves within the structure.
Pivot Settings
High/Low Color : Customize the colors of swing high and swing low markers
Style : Choose between Triangle or Circle markers
Size : Adjust the size of pivot markers (Auto, Tiny, Small, Normal)
Structure Lines
Show CHoCH : Toggle Change of Character lines on/off
CHoCH Color : Customize the color of CHoCH lines
CHoCH Label : Show/hide the "CHoCH" text label
Show BOS : Toggle Break of Structure lines on/off
BOS Color : Customize the color of BOS lines
BOS Label : Show/hide the "BOS" text label
Use Cases
See the "skeleton" of price action at a glance
Identify potential support and resistance levels
Understand if the market is trending or ranging
Spot trend continuations with BOS lines
Catch early reversal signals with CHoCH lines
Build a foundation for more advanced trading strategies
━━━━━━━━━━━━━━━━━━━━━━
Version History
v1.1
Added BOS (Break of Structure) lines to visualize trend continuation
Added CHoCH (Change of Character) lines to identify potential trend reversals
Added toggle options for BOS and CHoCH visibility
Added customizable colors for structure lines
Added optional labels for BOS and CHoCH
v1.0
Initial release
Automatic swing high and swing low detection
Structure-based pivot confirmation (not fixed lookback)
Customizable pivot markers (style, size, colors)
Adjustable swing width sensitivity
━━━━━━━━━━━━━━━━━━━━━━
Disclaimer:
This script is provided for educational and informational purposes only. It is not financial advice and does not constitute a recommendation to buy or sell any financial instrument. Always do your own research and trade at your own risk.
Swing Pivots - Market Structure High Low [zazenio]What is Market Structure?
Market structure is simply the pattern of highs and lows that price creates as it moves. When you look at any chart, you'll notice price doesn't move in a straight line — it swings up, pulls back, swings up again (in an uptrend), or the opposite in a downtrend.
These swing points — the peaks and valleys — are what traders call pivots. Identifying them correctly is the foundation of understanding where a market has been and where it might go next.
What This Indicator Does
Swing Pivots automatically marks these peaks and valleys on your chart so you don't have to draw them manually. It works on any market — stocks, crypto, forex, futures, indices — and on any timeframe.
How Pivots Are Detected
This indicator confirms pivots based on price structure, not a fixed bar count.
Here's how it works:
A swing high is confirmed when price breaks below the previous swing low. At that moment, we know the high was real — price tried to go higher, failed, and reversed. The market "proved" that level was a genuine turning point.
A swing low is confirmed when price breaks above the previous swing high. The same logic applies — price tried to go lower, failed, and reversed direction.
This creates a natural alternation: high, low, high, low. Each pivot is validated by the market's actual behavior, not by waiting for an arbitrary number of bars to pass.
Why This Matters
Most pivot indicators use a "lookback" method — they wait for a certain number of bars (say, 5 or 10) on each side of a candle before confirming it as a pivot. This creates a fixed delay. By the time the pivot appears on your chart, price has already moved on.
This indicator doesn't wait. It confirms pivots the moment price structure proves them. The result is pivots that align with how traders actually read charts — based on breaks of structure, not arbitrary countdowns.
Settings
Swing Width: Controls how sensitive the detection is. Higher numbers show only major swings; lower numbers capture smaller moves within the structure.
Style/Size/Colors: Customize how the pivot markers look on your chart.
Use Cases
See the "skeleton" of price action at a glance
Identify potential support and resistance levels
Understand if the market is trending or ranging
Build a foundation for more advanced concepts like Break of Structure (BOS) and Change of Character (CHoCH)
⸻
Disclaimer:
This script is provided for educational and informational purposes only. It is not financial advice and does not constitute a recommendation to buy or sell any financial instrument. Always do your own research and trade at your own risk.
Fair Value Gap Signals [Kodexius]Fair Value Gap Signals is an advanced market structure tool that automatically detects and tracks Fair Value Gaps (FVGs), evaluates the quality of each gap, and highlights high value reaction zones with visual metrics and signal markers.
The script is designed for traders who focus on liquidity concepts, order flow and mean reversion. It goes beyond basic FVG plotting by continuously monitoring how price interacts with each gap and by quantifying three key aspects of each zone:
-Entry velocity inside the gap
-Volume absorption during tests
-Structural integrity and depth of penetration
The result is a dynamic, information rich visualization of which gaps are being respected, which are being absorbed, and where potential reversals or continuations are most likely to occur.
All visual elements are configurable, including the maximum number of visible gaps per direction, mitigation method (close or wick) and an ATR based filter to ignore insignificant gaps in low volatility environments.
🔹 Features
🔸 Automated Fair Value Gap Detection
The script detects both bullish and bearish FVGs based on classic three candle logic:
Bullish FVG: current low is strictly above the high from two bars ago
Bearish FVG: current high is strictly below the low from two bars ago
🔸 ATR Based Gap Filter
To avoid clutter and low quality signals, the script can ignore very small gaps using an ATR based filter.
🔸Per Gap State Machine and Lifecycle
Each gap is tracked with an internal status:
Fresh: gap has just formed and has not been tested
Testing: price is currently trading inside the gap
Tested: gap was tested and left, waiting for a potential new test
Rejected: price entered the gap and then rejected away from it
Filled: gap is considered fully mitigated and no longer active
This state machine allows the script to distinguish between simple touches, multiple tests and meaningful reversals, and to trigger different alerts accordingly.
🔸 Visual Ranking of Gaps by Metrics
For each active gap, three additional horizontal rank bars are drawn on top of the gap area:
Rank 1 (Vel): maximum entry velocity inside the gap
Rank 2 (Vol): relative test volume compared to average volume
Rank 3 (Dpt): remaining safety of the gap based on maximum penetration depth
These rank bars extend horizontally from the creation bar, and their length is a visual score between 0 and 1, scaled to the age of the gap. Longer bars represent stronger or more favorable conditions.
🔸Signals and Rejection Markers
When a gap shows signs of rejection (price enters the gap and then closes away from it with sufficient activity), the script can print a signal label at the reaction point. These markers summarize the internal metrics of the gap using a tooltip:
-Velocity percentage
-Volume percentage
-Safety score
-Number of tests
🔸 Flexible Mitigation Logic (Close or Wick)
You can choose how mitigation is defined via the Mitigation Method input:
Close: the gap is considered filled only when the closing price crosses the gap boundary
Wick: a full fill is detected as soon as any wick crosses the gap boundary
🔸 Alert Conditions
-New FVG formed
-Price entering a gap (testing)
-Gap fully filled and invalidated
-Rejection signal generated
🔹Calculations
This section summarizes the main calculations used under the hood. Only the core logic is covered.
1. ATR Filter and Gap Size
The script uses a configurable ATR length to filter out small gaps. First the ATR is computed:
float atrVal = ta.atr(atrLength)
Gap size for both directions is then measured:
float gapSizeBull = low - high
float gapSizeBear = low - high
If useAtrFilter is enabled, gaps smaller than atrVal are ignored. This ties the minimum gap size to the current volatility regime.
2. Fair Value Gap Detection
The basic FVG conditions use a three bar structure:
bool fvgBull = low > high
bool fvgBear = high < low
For bullish gaps the script stores:
-top as low of the current bar
-bottom as high
For bearish gaps:
-top as high of the current bar
-bottom as low
This defines the price range that is considered the imbalance area.
3. Depth and Safety Score
Depth measures how far price has penetrated into the gap since its creation. For each bar, the script computes a currentDepth and updates the maximum depth:
float currentDepth = 0.0
if g.isBullish
if l < g.top
currentDepth := g.top - l
else
if h > g.bottom
currentDepth := h - g.bottom
if currentDepth > g.maxDepth
g.maxDepth := currentDepth
The safety score expresses how much of the gap remains intact:
float depthRatio = g.maxDepth / gapSize
float safetyScore = math.max(0.0, 1.0 - depthRatio)
safetyScore near 1: gap is mostly untouched
safetyScore near 0: gap is mostly or fully filled
4. Velocity Metric
Velocity captures how aggressively price moves inside the gap. It is based on the body to range ratio of each bar that trades within the gap and rewards bars that move in the same direction as the gap:
float barRange = h - l
float bodyRatio = math.abs(close - open) / barRange
float directionBonus = 0.0
if g.isBullish and close > open
directionBonus := 0.2
else if not g.isBullish and close < open
directionBonus := 0.2
float currentVelocity = math.min(bodyRatio + directionBonus, 1.0)
The gap keeps track of the strongest observed value:
if currentVelocity > g.maxVelocity
g.maxVelocity := currentVelocity
This maximum is later used as velScore when building the velocity rank bar.
5. Volume Accumulation and Volume Score
While price is trading inside a gap, the script accumulates the traded volume:
if isInside
g.testVolume += volume
It also keeps track of the number of tests and the volume at the start of the first test:
if g.status == "Fresh"
g.status := "Testing"
g.testCount := 1
g.testStartVolume := volume
An average volume is computed using a 20 period SMA:
float volAvg = ta.sma(volume, 20)
The expected volume is approximated as:
float expectedVol = volAvg * math.max(1, (bar_index - g.index) / 2)
The volume score is then:
float volScore = math.min(g.testVolume / expectedVol, 1.0)
This produces a normalized 0 to 1 metric that shows whether the gap has attracted more or less volume than expected over its lifetime.
6. Rank Bar Scaling
All three scores are projected visually along the time axis as horizontal bars. The script uses the age of the gap in bars as the maximum width:
float maxWidth = math.max(bar_index - g.index, 1)
Then each metric is mapped to a bar length:
int len1 = int(math.max(1, maxWidth * velScore))
g.rankBox1.set_right(g.index + len1)
int len2 = int(math.max(1, maxWidth * volScore))
g.rankBox2.set_right(g.index + len2)
int len3 = int(math.max(1, maxWidth * safetyScore))
g.rankBox3.set_right(g.index + len3)
This creates an intuitive visual representation where stronger metrics produce longer rank bars, making it easy to quickly compare the relative quality of multiple FVGs on the chart.
Smart Divergence Engine Overlay [ChartNation]SMART DIVERGENCE ENGINE OVERLAY — CANDLE-ANCHORED RSI DIVERGENCE VISUALIZATION
═══════════════════════════════════════════
TECHNICAL OVERVIEW
═══════════════════════════════════════════
Smart Divergence Engine Overlay renders pivot-confirmed RSI divergences directly on the price chart with candle-anchored lines and labels. This companion overlay shares the identical detection logic as the panel version but visualizes signals at their exact price levels rather than in oscillator space.
The overlay implements repainting-proof divergence detection through pivot-locked RSI evaluation at historical bars (rsi ), ensuring all lines and labels remain stable as new bars form. Visual elements anchor to xloc.bar_index coordinates, maintaining precise positioning across zoom levels and timeframe changes.
═══════════════════════════════════════════
CORE ARCHITECTURE
═══════════════════════════════════════════
PIVOT-LOCKED DETECTION SYSTEM
The overlay evaluates RSI at confirmed pivot bars, not at the current bar:
Technical implementation:
Price pivots detected via ta.pivotlow() / ta.pivothigh() with configurable Left/Right parameters
RSI value captured at the pivot bar: rsi (historical bar offset)
Divergence comparison performed between stored pivot values (lowRsiPrev vs lowRsiCurr)
State management via var floats prevents recalculation across bars
Result: Once a divergence line prints, it never moves or disappears. Historical stability is guaranteed because RSI evaluation occurs at a locked bar index (bar_index - pivotR), not at the moving present.
Bullish divergence logic:
if not na(lowPricePrev) and lowPriceCurr < lowPricePrev and lowRsiCurr > lowRsiPrev
→ Price made lower low, RSI made higher low
→ Divergence confirmed at lowIdxCurr (pivot bar index)
Bearish divergence logic:
if not na(highPricePrev) and highPriceCurr > highPricePrev and highRsiCurr < highRsiPrev
→ Price made higher high, RSI made lower high
→ Divergence confirmed at highIdxCurr (pivot bar index)
RSI ENGINE
The overlay uses the same RSI calculation as the panel version to ensure signal synchronization:
Base calculation: ta.rsi(src, 14) — standard RSI momentum window
Smoothing layer: ta.rma(rsiRaw, 2) — reduces high-frequency noise
Volatility bands: 34-period SMA basis with 1.618 standard deviation multiplier
Purpose: Bands define adaptive overbought/oversold context (not plotted on overlay)
The volatility framework exists in the calculation layer to maintain logic parity with the panel version, ensuring divergences trigger at identical bars across both implementations.
CANDLE-ANCHORED RENDERING
All visual elements use xloc.bar_index positioning:
Line rendering:
line.new(x1=lowIdxPrev, y1=lowPricePrev, x2=lowIdxCurr, y2=lowPriceCurr,
xloc=xloc.bar_index, color=bullCol, width=lineW)
This anchors lines to specific bar indices and price levels, not to time coordinates. Result: Lines maintain exact positioning when zooming, panning, or switching timeframes.
Label rendering:
label.new(x=lowIdxCurr, y=lowPriceCurr, text="BUY",
xloc=xloc.bar_index, style=label.style_label_up)
Labels attach to the second pivot's bar index and price level, scaling naturally with chart transformations.
═══════════════════════════════════════════
VISUAL IMPLEMENTATION
═══════════════════════════════════════════
DIVERGENCE LINES
Bullish divergence: Connects two price swing lows with upward-sloping line
Color: Configurable (default lime green)
Width: 1-6 pixels (configurable)
Endpoint 1: Previous swing low (lowPricePrev at lowIdxPrev)
Endpoint 2: Current swing low (lowPriceCurr at lowIdxCurr)
Requirement: Current price lower than previous, current RSI higher than previous
Bearish divergence: Connects two price swing highs with downward-sloping line
Color: Configurable (default red)
Width: 1-6 pixels (configurable)
Endpoint 1: Previous swing high (highPricePrev at highIdxPrev)
Endpoint 2: Current swing high (highPriceCurr at highIdxCurr)
Requirement: Current price higher than previous, current RSI lower than previous
Lines extend between pivot bars only (extend.none), never projecting into future.
DIVERGENCE LABELS
Optional BUY/SELL markers render at the second pivot:
BUY label (bullish divergence):
Position: Below current swing low (label.style_label_up)
Text: "BUY"
Color: Matches bullish line color
Size: Normal (size.normal)
SELL label (bearish divergence):
Position: Above current swing high (label.style_label_down)
Text: "SELL"
Color: Matches bearish line color
Size: Normal (size.normal)
Labels can be toggled independently of lines via showLabels input.
═══════════════════════════════════════════
CONFIGURATION PARAMETERS
═══════════════════════════════════════════
RSI CALCULATION SETTINGS:
Price Source: close (configurable to any price field)
RSI Length: 14 (standard momentum window)
Volatility Band Length: 34 (SMA period for RSI basis)
Band Multiplier: 1.618 (standard deviation expansion)
Note: Bands calculate internally but don't plot (logic parity with panel)
DIVERGENCE DETECTION SETTINGS:
Pivot Left: 10 bars (left-side swing confirmation)
Pivot Right: 10 bars (right-side swing confirmation)
Overbought Level: 68 (reference, does not affect logic)
Oversold Level: 32 (reference, does not affect logic)
Pivot parameters control strictness:
Higher values = fewer, more significant divergences (requires wider swings)
Lower values = more frequent divergences (detects smaller swings)
VISUAL SETTINGS:
Show Divergence Lines: true/false toggle
Show BUY/SELL Labels: true/false toggle (independent of lines)
Line Width: 1-6 pixels
Bull Color: Configurable (default lime green)
Bear Color: Configurable (default red)
═══════════════════════════════════════════
ALERT SYSTEM
═══════════════════════════════════════════
Two alert conditions trigger at identical timing as visual signals:
"Bullish Divergence (Overlay)"
Triggers when: Bullish divergence confirms at second pivot
Timing: Fires AFTER Pivot Right bars complete (delayed but stable)
Message: "TDI: Bullish divergence"
Reliability: Never repaints (confirmation locked at rsi )
"Bearish Divergence (Overlay)"
Triggers when: Bearish divergence confirms at second pivot
Timing: Fires AFTER Pivot Right bars complete (delayed but stable)
Message: "TDI: Bearish divergence"
Reliability: Never repaints (confirmation locked at rsi )
Alert configuration:
Set once on any chart/timeframe
Fires only when divergence condition evaluates true
Synchronized with visual rendering (alert = line + label appear)
═══════════════════════════════════════════
TRADING IMPLEMENTATION
═══════════════════════════════════════════
VISUAL ANALYSIS WORKFLOW
The overlay provides direct price-level context for divergence signals:
Bullish divergence interpretation:
Identify two connected swing lows with upward-sloping line
Lower price low indicates selling pressure weakening
Higher RSI low indicates momentum refusing to confirm price weakness
BUY label marks the second swing low (divergence confirmation point)
Bearish divergence interpretation:
Identify two connected swing highs with downward-sloping line
Higher price high indicates buying pressure weakening
Lower RSI high indicates momentum refusing to confirm price strength
SELL label marks the second swing high (divergence confirmation point)
CONFLUENCE WITH PRICE STRUCTURE
Overlay enables direct correlation with chart elements:
Support/Resistance alignment:
Bullish divergence at major support level = higher probability reversal
Bearish divergence at major resistance level = higher probability reversal
Divergence in middle of range = lower conviction signal
Volume confirmation:
Divergence with decreasing volume = confirms momentum exhaustion
Divergence with increasing volume = mixed signal, proceed with caution
Multi-timeframe context:
Higher timeframe trend alignment increases signal reliability
Counter-trend divergences (against HTF trend) require additional confirmation
ENTRY/EXIT FRAMEWORK
The overlay marks divergence confirmation points, not entry triggers:
Entry consideration process:
Divergence line appears → structure-confirmed momentum divergence detected
Wait for price confirmation (engulfing candle, break of structure, rejection wick)
Validate with additional confluence (volume, support/resistance, HTF trend)
Enter with predefined stop below/above divergence pivot
Size position according to distance to invalidation level
Exit planning:
Initial target: Previous swing high (bullish) / swing low (bearish)
Trail stop: Move to breakeven after initial profit target
Invalidation: Close below divergence low (bullish) / above divergence high (bearish)
═══════════════════════════════════════════
PANEL VS OVERLAY USAGE
═══════════════════════════════════════════
IDENTICAL DETECTION LOGIC
Both versions implement the same pivot-locked RSI evaluation:
Same RSI calculation (14-length with 2-period RMA smoothing)
Same volatility band framework (34-SMA + 1.618σ)
Same pivot confirmation (10 Left + 10 Right)
Same divergence comparison (rsi at locked bar indices)
Result: Divergences trigger at identical bars across both implementations.
RENDERING DIFFERENCES
Panel version (overlay=false):
Renders in separate pane below price chart
Displays RSI line, volatility bands, 50-line midline
Divergence lines drawn in oscillator space (RSI value coordinates)
Optional Shark Fin exhaustion visualization
Labels positioned relative to RSI levels
Overlay version (overlay=true):
Renders directly on price chart
No RSI line or bands visible (calculate internally for logic only)
Divergence lines drawn in price space (actual price coordinates)
No Shark Fin visualization (price chart remains clean)
Labels positioned at actual swing high/low prices
COMPLEMENTARY WORKFLOW
Recommended usage pattern:
Panel version: Monitor RSI regime (above/below 50), band interactions, Shark Fin exhaustion
Overlay version: Identify exact divergence price levels, correlate with support/resistance
Combined analysis: Use panel for momentum context, overlay for entry/exit precision
Alternative workflow (overlay only):
If RSI analysis not required, overlay version provides clean divergence detection
Pair with external RSI indicator if separate momentum visualization needed
Focuses chart space on price action and divergence markers only
═══════════════════════════════════════════
TECHNICAL SPECIFICATIONS
═══════════════════════════════════════════
RESOURCE ALLOCATION:
max_lines_count: 500 (divergence connector lines)
max_labels_count: 500 (BUY/SELL markers)
Suitable for most chart configurations and timeframes
RENDERING STABILITY:
xloc.bar_index positioning ensures visual stability across zoom/pan operations
Historical divergences never move once printed
Lines and labels scale proportionally with chart transformations
TIMEFRAME COMPATIBILITY:
Functions on any timeframe (1m to 1M)
Pivot detection adapts to bar spacing automatically
Lower timeframes generate more frequent signals (smaller swings)
Higher timeframes generate fewer signals (larger swings)
SYMBOL COMPATIBILITY:
Works on all asset classes (stocks, forex, crypto, futures, indices)
No symbol-specific logic or calculations
Universal RSI-based divergence detection
PERFORMANCE CHARACTERISTICS:
Lightweight calculation overhead (RSI + pivot detection + state management)
Visual rendering occurs only on divergence confirmation (not every bar)
No continuous repainting or historical recalculation
═══════════════════════════════════════════
USE CASE SCENARIOS
═══════════════════════════════════════════
SCENARIO 1: Support/Resistance Divergence
Setup: Price tests major support level twice, second test makes lower low
Signal: Bullish divergence line appears, RSI makes higher low at support
Interpretation: Momentum refusing to confirm price weakness at critical level
Action: Consider long entry on next bullish candle above divergence low
SCENARIO 2: Trend Exhaustion
Setup: Strong uptrend, price makes new high but momentum slowing
Signal: Bearish divergence line appears, RSI makes lower high
Interpretation: Buying pressure weakening despite higher price high
Action: Consider profit-taking on longs, watch for reversal confirmation
SCENARIO 3: Range-Bound Reversal
Setup: Price oscillating in horizontal range, tests lower boundary
Signal: Bullish divergence at range support
Interpretation: Oversold bounce opportunity within defined range
Action: Long entry targeting range midpoint or upper boundary
SCENARIO 4: Failed Breakout
Setup: Price breaks resistance but momentum doesn't confirm
Signal: Bearish divergence forms immediately after breakout
Interpretation: Breakout lacks momentum conviction, likely false breakout
Action: Consider fade setup (short) with stop above divergence high
═══════════════════════════════════════════
LIMITATIONS & CONSIDERATIONS
═══════════════════════════════════════════
SIGNAL TIMING:
Divergences print AFTER Pivot Right bars complete. This delay is intentional:
Ensures structure confirmation (full swing formation)
Prevents real-time repaint issues
Trades confirmation reliability for signal speed
Users requiring instant signals should use real-time divergence detectors (with repaint risk).
Users requiring reliable, stable signals should accept the confirmation delay.
LINE CLUTTER:
On lower timeframes with sensitive pivot settings:
High signal frequency may create visual clutter
Solution: Increase Pivot Left/Right values to filter smaller swings
Alternative: Use panel version for primary analysis, overlay for key divergences only
FALSE SIGNALS:
Divergences indicate momentum divergence, not guaranteed reversals:
Strong trends can maintain divergent conditions for extended periods
Divergence in isolation is a warning sign, not a trade trigger
Requires confluence with price action, volume, structure for high-probability setups
VOLATILITY BAND CONTEXT:
Bands calculate internally but don't visualize on overlay:
Users lose visual context of RSI overbought/oversold zones
Solution: Use panel version alongside overlay for complete RSI regime awareness
Alternative: Add separate RSI indicator to chart for band visualization
═══════════════════════════════════════════
Smart Divergence Engine Overlay provides candle-anchored, repainting-proof RSI divergence visualization directly on price charts. Lines and labels render at exact pivot price levels using xloc.bar_index positioning, maintaining stability across all chart transformations. Divergence detection uses pivot-locked RSI evaluation (rsi ) to ensure historical signals never move or disappear.
The overlay shares identical detection logic with the panel version but renders in price space rather than oscillator space, enabling direct correlation with support/resistance levels and price structure. All visual elements trigger only after full pivot confirmation (Pivot Left + Pivot Right bars), trading signal speed for absolute reliability.
Green to Red Money RailsWhat this indicator does
Green to Red Money Rails (G2R Rails) is a price-action tool that draws dynamic “rails” from recent swing lows and highs. It tracks how support and resistance are shifting so you can see where trend pressure is building or weakening.
Core logic (high level)
Detects pivot lows and stores the last three (L1, L2, L3).
Builds green support “fans”: inner dotted rails L1→L2 and L2→L3, plus a main solid base rail L1→L3.
Detects pivot highs and, when the last high is lower than the previous one, draws a red resistance rail from H2→H3.
Optional labels mark the most recent swing low (“L”) and swing high (“H”).
How to use it
Use the green rails as dynamic support zones for trend-following, pullback entries, or stop placement.
Use the red rail as a visual ceiling in downtrends: breaks above it can signal the end of a sell-off; rejections at it confirm sellers still in control.
Works best on liquid markets and swing-trading timeframes (for example, 1h–1D). Always combine with your own risk management and higher-timeframe context.
This script does not auto-generate signals or manage risk for you; it is a visual framework for reading structure and building your own trading plans.
Price Action Strategy v2.0 [Ista]💎 Overview
Price Action Strategy v2.0 is a comprehensive, all-in-one institutional trading toolkit designed for visual traders who demand precision. Unlike standard indicators, this tool focuses on the narrative of price by combining advanced Market Structure, Institutional Order Flow, and Predictive Analytics into a single, non-cluttered interface.
The core philosophy of this script is "Clean Precision". It filters out noise and presents only the most critical decision-making data via smart chart overlays and a state-of-the-art Analytic Dashboard.
🚀 Key Features
1. 🏛️ Institutional Order Blocks (Origin Scan Engine)
This is not a standard pivot-based OB indicator. We utilize a proprietary "Origin Scan" algorithm that:
Detects the exact origin candle responsible for a structural break (BOS).
Filters out weak blocks, keeping only the most significant institutional footprints.
Smart Management: Limits active blocks to the 3 most recent per side (Support/Resistance) to keep charts clean.
Ghost Mode: When an Order Block is broken, it doesn't just disappear; it turns into a faint "Ghost" level, allowing you to see historical reactions without visual clutter.
2. 🔮 Echo Forecast (Predictive Path)
A powerful forecasting engine based on Pattern Similarity:
Scans historical price action (Evaluation Window) to find patterns mathematically similar to the current market state.
Projects the most likely future path (Forecast Window) directly onto the chart.
Uses a cumulative calculation method to smooth out noise and provide a realistic trajectory.
Visual Coding: The forecast line thickens and changes color based on the Confidence Score (Correlation %). High confidence patterns (>80%) are highlighted in deep green.
3. 📊 ISTA Command Center (Analytic Dashboard)
A professional, compact, and right-aligned dashboard that acts as your trading HUD. It monitors 8 vital market vitals in real-time:
Market Structure: Real-time Swing trend direction.
HTF Trend: Higher Timeframe bias (Price Action based).
Momentum: Current & HTF RSI status (Overbought/Oversold).
MACD: Signal crossover status.
Smart Money Flow (MFI): Detects institutional accumulation/distribution.
Volatility (ATR%): Current market volatility percentage.
Forecast Confidence: The statistical reliability of the current Echo Forecast.
4. 📉 Dynamic EMAs
Includes three key moving averages (20, 200, 1440) with dynamic transparency logic. They fade into the background when not interacting with price, ensuring they are there when you need them but invisible when you don't.
🛠️ How to Use
Identify Trend: Look at the Dashboard. If Structure and HTF Trend align (e.g., both Bullish), look for longs.
Wait for Pullback: Wait for price to return to a Bullish Order Block.
Confirm: Check the Forecast line. Does it suggest a bounce? Check MFI and RSI on the dashboard for oversold conditions.
Execute: Use the Order Block edges for precise entry and invalidation points.
⚙️ Settings
Swing Length: Adjust sensitivity of the structure (Default: 10).
Evaluation Window: How far back the Echo Forecast looks for patterns (Default: 300).
Dashboard: Fully customizable position and size.
Developed by Soheil_kheiri | Ista Web Analytics
(QUANTLABS) Fractal God Mode: 25-Timeframe Scanner The indicator aggregates data into three distinct metric columns:
1. STRUCT (Market Structure) This analyzes price action relative to Fractal Pivots (Highs and Lows) to determine market direction.
HH (Breakout): Price has closed above the previous Pivot High. (Bullish Structure)
LL (Breakdown): Price has closed below the previous Pivot Low. (Bearish Structure)
TRAPPED: Price is trading between the last Pivot High and Low. This indicates a ranging market where trend trades should be avoided.
2. VELOCITY (Thrust) This measures the specific strength of the current candle on that timeframe.
The Math: It calculates the ratio of the body (Close - Open) relative to the total candle range (High - Low).
The Signal: High positive numbers (Green) indicate buyers are closing near highs. High negative numbers (Red) indicate sellers are dominating the range.
3. QUALITY (Efficiency Ratio) This acts as a "Noise Filter." It determines if the trend is moving in a straight line or whipping back and forth.
The Math: It divides the Net Price Movement (Distance from 5 bars ago) by the Total Path Traveled (Sum of the ranges of the last 5 bars).
PRISTINE (Values > 0.6): The market is moving efficiently in one direction.
CHOPPY (Values < 0.4): The market is volatile and non-directional (High Noise).
1. The Matrix (Dashboard) Located in the bottom right, this table gives you an instant read on Short-Term (3m-9m), Medium-Term (10m-45m), and Long-Term (1H-Daily) trends.
2. Coherence Flow At the bottom of the table, the script sums up the structural score of all 25 timeframes.
COHERENT BULL: When the Short, Medium, and Long terms align green.
COHERENT BEAR: When the Short, Medium, and Long terms align red.
3. God Mode (Global S/R) The indicator can plot Support and Resistance levels from higher timeframes onto your current chart. For example, while trading the 5m chart, you can see the 4H and Daily pivot levels plotted automatically as dotted lines, ensuring you never trade blindly into a higher-timeframe wall.
Trend Following: Wait for the "Coherent Bull/Bear" signal at the bottom of the dashboard. This confirms that momentum is aligned from the 3m chart up to the Daily.
Scalping: Focus on the Quality column. Only take trades when the Quality is "CLEAN" or "PRISTINE." Avoid entries when the dashboard warns of "High Noise" (Choppy).
Risk Management: If the dashboard shows "TRAPPED" on the Long Term (1H+), reduce position size or wait for a breakout.
Pivot Lookback: Adjusts the sensitivity of the Fractal Structure (Default: 5).
Show Fractal DNA Matrix: Toggles the dashboard table.
Show ALL Timeframe S/R: Enables "God Mode" to see supports/resistances from all 25 timeframes (Heavy visual processing, use carefully).
Hash Pivot DetectorHash Pivot Detector
Professional Support & Resistance Detection with Multi-Timeframe Zone Analysis
Developed by Hash Capital Research, the Hash Pivot Detector is a sophisticated indicator designed for identifying key support and resistance levels using pivot-based detection with institutional-grade zone analysis.
Key Features
Zone-Based Detection
Unlike traditional single-line S/R indicators, Hash Pivot Detector uses configurable zones around pivot levels to represent realistic institutional order areas. Adjustable zone width accommodates different asset volatilities.
Multi-Timeframe Analysis
Displays higher timeframe support/resistance levels alongside current timeframe pivots, providing crucial context for institutional positioning and stronger price barriers.
Clean Visual Design
Features Hash Capital's signature fluorescent color scheme (pink resistance, cyan support) optimized for dark charts with high contrast and instant visual recognition. Semi-transparent zones keep your chart clean and readable.
How It Works
The indicator uses pivot high/low detection with configurable left and right bar parameters. When a pivot is confirmed, it plots:
Primary support/resistance lines at pivot levels
Semi-transparent zones representing realistic order areas
Higher timeframe S/R levels as crosses for additional context
Recommended Settings
For Swing Trading:
Pivot Bars: 10-20 left/right
Zone Width: 0.5-1.0%
HTF: Daily (on 1H-4H charts)
For Intraday Trading:
Pivot Bars: 5-10 left/right
Zone Width: 0.3-0.5%
HTF: 1H or 4H (on 5min-15min charts)
Asset-Specific Zone Width:
Forex/Crypto: 0.3-0.5%
Stocks: 0.5-1.0%
Volatile Assets: 1.0-2.0%
What Makes It Different
✓ Zone-based approach (more realistic than lines)
✓ Multi-timeframe confluence detection
✓ Minimal visual clutter with maximum information
✓ Professional institutional aesthetic
✓ Comprehensive tooltips for easy optimization
✓ No repainting - all pivots are confirmed
Best Used For
Identifying high-probability entry/exit zones
Setting stop-loss and take-profit levels
Recognizing breakout/breakdown areas
Multi-timeframe confluence analysis
Swing trading and position trading
Intraday scalping with adjusted parameters
Notes
Works on all timeframes and markets
Fully customizable colors and parameters
All settings include detailed optimization guidance
Clean code, efficient performance
No alerts or notifications (visual analysis only)
Flow Dynamics Pro [ChartNation]Flow Dynamics Pro - Institutional Order Flow Zones
Detect high-probability institutional rejection zones with advanced volume analysis and confluence scoring.
Flow Dynamics Pro identifies institutional order flow zones where smart money enters and defends positions. Unlike traditional order blocks or supply/demand indicators, this tool combines multiple confirmation factors into a single confluence score, helping you focus on the highest-quality setups.
🎯 KEY FEATURES
Institutional Zone Detection
Volume spike analysis (customizable threshold)
Rejection wick detection (upper/lower wick ratios)
Market structure validation (swing high/low alignment)
Multi-factor confluence scoring (0-100 scale)
Visual Volume Distribution
Bull/bear volume split displayed inside each zone
See the exact buying vs selling pressure at institutional levels
Percentage breakdowns for quick analysis
Toggle on/off based on preference
Smart Zone Management
Automatic zone invalidation when broken with volume
Zone test tracking (shows how many times zones held)
Visual strengthening (borders thicken after successful tests)
Overlap prevention (maintains minimum spacing between zones)
Maximum zone limit (keeps chart clean)
Confluence Scoring System
Zones are scored 0-100 based on:
Volume Strength (30 points) - How significant was the volume spike
Market Structure (25 points) - Alignment with swing points
Zone Quality (25 points) - Wick ratio and pressure imbalance
Size Quality (20 points) - Optimal zone size relative to ATR
Zones are categorized as:
⚡ PREMIUM (80+) - Highest quality setups
🔥 STRONG (60-79) - Solid institutional zones
✓ MODERATE (40-59) - Valid but lower confluence
Timeframe Adaptive
Automatically adjusts detection sensitivity based on timeframe:
On 1H and lower: Stricter requirements (reduces noise)
On 4H and higher: Standard sensitivity (catches major zones)
Works on all timeframes from 1-minute to Monthly
Multi-Timeframe Context
Display higher timeframe zones for broader market context
Customizable HTF timeframe selection
Dashed visualization to distinguish from current timeframe zones
Comprehensive Alerts
Premium zone created (score 80+)
Price entering zone
Price exiting zone
Zone tested successfully
Zone invalidated
⚙️ SETTINGS OVERVIEW
Detection Settings
Volume Spike Threshold (default: 1.2x)
Minimum Wick Ratio (default: 0.3)
Structure Validation toggle
Detection Lookback period
Invalidation Settings
Require volume for invalidation (toggle)
Invalidation volume threshold (default: 1.2x)
Customizable to match your trading style
Display Settings
Maximum zones to display (default: 8)
Show/hide labels
Show/hide volume data
Volume distribution toggle
Label size adjustment (Small/Normal/Large)
Minimum zone spacing % (prevents overlaps)
Minimum confluence score filter (default: 55)
Visual Customization
Bullish zone color and opacity
Bearish zone color and opacity
Border colors
Multi-timeframe zone colors
📊 HOW TO USE
For Swing Traders (4H, Daily)
Focus on PREMIUM zones (score 80+)
Look for zones with multiple successful tests
Enter on retests with confirmation
Use HTF zones for broader context
For Intraday Traders (1H, 15m)
Use higher confluence minimum (60-65)
Increase zone spacing to reduce clutter
Focus on zones with clear volume distribution
Combine with price action for entries
Zone Test Interpretation
Tested 0x: Fresh zone, untested
Tested 1-2x: Gaining strength
Tested 3+x: Highly defended level (thicker borders)
Volume Distribution Guide
80%+ on one side: Strong directional bias
60-70% dominance: Moderate bias
50-50 split: Contested area, use caution
🔧 BEST PRACTICES
Combine with trend: Trade zones in direction of higher timeframe trend
Wait for confirmation: Don't enter blindly at zone touch
Respect invalidation: When zones break with volume, they're done
Use confluence scores: Prioritize scores 70+ for highest win rate
Manage spacing: Adjust spacing % if chart feels cluttered
Check timeframe: Lower timeframes may need stricter settings
🎓 UNDERSTANDING THE INDICATOR
What are Institutional Zones?
Areas where large players (institutions, market makers, smart money) have entered positions and actively defend them. These show up as:
High volume rejection wicks
Multiple tests that hold
Clear buying/selling pressure imbalance
Why Confluence Scoring?
Not all zones are equal. The 0-100 scoring system helps you quickly identify which zones have the most confirmation factors aligned, saving time and improving trade selection.
Why Zone Spacing Matters
Too many overlapping zones create analysis paralysis. The spacing filter ensures you see only distinct, meaningful levels.
📈 TECHNICAL DETAILS
Indicator Type: Overlay
Max Boxes: 500
Max Labels: 500
Pine Script Version: 6
Real-time Updates: Yes
Alerts: 5 types available
Repainting: Zones finalize on bar close
🚀 GET STARTED
Add indicator to chart
Adjust confluence minimum (55-65 recommended)
Set volume threshold for your instrument (1.2-1.5)
Customize colors to match your theme
Enable alerts for your preferred signals
Trade with proper risk management
💡 TIPS
Start with default settings and adjust based on results
Higher timeframes = more reliable zones
Premium zones (80+) have best risk/reward
Tested zones (3+) show strong institutional defense
Use zone invalidation as stop-loss reference
Flow Dynamics Pro is part of the ChartNation indicator suite - delivering institutional-grade tools for serious traders.
Volumetric Inverse Fair Value Gap (IFVG) [Kodexius]The Volumetric Inverse Fair Value Gap (IFVG) indicator detects and visualizes inverse fair value gaps (IFVGs) zones where previous inefficiencies in price (fair value gaps) are later invalidated or “inverted.”
Unlike traditional FVG indicators, this tool integrates volume-based analysis to quantify the bullish, bearish, and overall strength of each inversion. It visually represents these metrics within a dynamically updating box on the chart, giving traders deeper insight into market reactions when liquidity imbalances are filled and reversed.
Features
Inverse fair value gap detection
The script identifies bullish and bearish fair value gaps, stores them as pending zones, and turns them into inverse fair value gaps when price trades back through the gap in the opposite direction. Each valid inversion becomes an active IFVG zone on the chart.
Sensitivity control with ATR filter and strict mode
A minimum gap size based on ATR is used to filter out small and noisy gaps. Strict mode can be enabled so that any wick contact between the relevant candles prevents the gap from being accepted as a fair value gap. This lets you decide how clean and selective the zones should be.
Show Last N Boxes control
The indicator can keep only the most recent N IFVG zones visible. Older zones are removed from the chart once the number of active objects exceeds the user setting. This prevents clutter on higher timeframes or long histories and keeps attention on the most relevant recent zones.
Ghost box for the original gap
When the ghost option is enabled, the script draws a faint box that marks the original fair value gap from which the inverse zone came. This makes it easy to see where the initial imbalance appeared and how price later inverted that area.
Volumetric bull, bear and strength metrics
For each IFVG, the script estimates how much of the bar volume is associated with buying and how much with selling, then computes bull percentage, bear percentage and a strength score that uses a percentile rank of volume. These values are stored with the IFVG object and drive the visualization inside the zone.
Three band visual layout inside each IFVG
Each active IFVG is drawn as a container with three horizontal sections. The top band represents the bull percentage, the middle band the bear percentage and the bottom band the strength metric. The width of each bar reflects its respective value so you can read the structure of the zone at a glance.
Customizable colors and label text
Colors for bull, bear, strength, the empty background area, the ghost box and label text can be adjusted in the inputs. This allows you to match the indicator to different chart themes or highlight specific aspects such as strength or direction.
Automatic invalidation and cleanup
When price clearly closes beyond the IFVG in a way that breaks the logic of that zone, the script marks it as inactive and deletes all boxes and labels linked to it. Only valid and active IFVGs remain on the chart, which keeps the display clean and focused.
Calculations
1. Detecting Fair Value Gaps (FVGs)
A fair value gap is identified when price action leaves an imbalance between candle wicks. Depending on the mode:
Bullish FVG: When low > high
Bearish FVG: When high < low
Optionally, the strict mode ensures wicks do not touch.
The gap’s significance is filtered using the ATR multiplier input to exclude minor noise.
Once detected, FVGs are stored as pending zones until inverted by opposite movement (price crossing through).
bool bull_cond = strict_mode ? (low > high ) : (close > high )
bool bear_cond = strict_mode ? (high < low ) : (close < low )
float gap_size = 0.0
if bull_cond and close > open
gap_size := low - high
if bear_cond and close < open
gap_size := low - high
2. Creating IFVGs (Inversions)
When price later moves through a previous FVG in the opposite direction, an Inverse FVG (IFVG) is created.
For example:
A previous bearish FVG becomes bullish IFVG if price moves upward through it.
A previous bullish FVG becomes bearish IFVG if price moves downward through it.
The IFVG is initialized with structural boundaries (top, bottom) and timestamp metadata to anchor visualization.
if not p.is_bull_gap and close > p.top
inverted := true
to_bull := true
if p.is_bull_gap and close < p.btm
inverted := true
to_bull := false
3. Volume Metrics (Bull, Bear, Strength)
Each IFVG calculates buy and sell volumes from the current bar’s price spread and total volume.
Bull % = proportion of upward (buy) volume
Bear % = proportion of downward (sell) volume
Strength % = normalized percentile rank of total volume
These are obtained through a custom function that estimates directional volume contribution:
calc_metrics(float o, float h, float l, float c, float v) =>
float rng = h - l
float buy_v = 0.0
if rng == 0
buy_v := v * 0.5
else
if c >= o
buy_v := v * ((math.abs(c - o) + (math.min(o, c) - l)) / rng)
else
buy_v := v * ((h - math.max(o, c)) / rng)
float sell_v = v - buy_v
float total = buy_v + sell_v
float p_bull = total > 0 ? buy_v / total : 0
float p_bear = total > 0 ? sell_v / total : 0
float p_str = ta.percentrank(v, 100) / 100.0
SMC Statistical Liquidity Walls [PhenLabs]📊 SMC Statistical Liquidity Walls
Version: PineScript™ v6
📌 Description
The SMC Statistical Liquidity Walls indicator is designed to visualize market volatility and potential reversal zones using advanced statistical modeling. Unlike traditional Bollinger Bands that use simple lines, this script utilizes an “Inverted Sigmoid” opacity function to create a “fog of war” effect. This visualizes the density of liquidity: the further price moves from the equilibrium (mean), the “harder” the liquidity wall becomes.
This tool solves the problem of over-trading in low-probability areas. By automatically mapping “Premium” (Resistance) and “Discount” (Support) zones based on Standard Deviation (SD), traders can instantly see when price is overextended. The result is a clean, intuitive overlay that helps you identify high-probability mean reversion setups without cluttering your chart with manual drawings.
🚀 Points of Innovation
Inverted Sigmoid Logic: A custom mathematical function maps Standard Deviation to opacity, creating a realistic “wall” density effect rather than linear gradients.
Dynamic “Solidity”: The indicator is transparent at the center (Equilibrium) and becomes visually solid at the edges, mimicking physical resistance.
Separated Directional Bias: distinct Red (Premium) and Green (Discount) coding helps SMC traders instantly recognize expensive vs. cheap pricing.
Smart “Safe” Deviation: Includes fallback logic to handle calculation errors if deviation hits zero, ensuring the indicator never crashes during data gaps.
🔧 Core Components
Basis Calculation: Uses a Simple Moving Average (SMA) to determine the market’s equilibrium point.
Standard Deviation Zones: Calculates 1SD, 2SD, and 3SD levels to define the statistical extremes of price action.
Sigmoid Alpha Calculation: Converts the SD distance into a transparency value (0-100) to drive the visual gradient.
🔥 Key Features
Automated Premium/Discount Zones: Red zones indicate overbought (Premium) areas; Green zones indicate oversold (Discount) areas.
Customizable Density: Users can adjust the “Steepness” and “Midpoint” of the sigmoid curve to control how fast the walls become solid.
Integrated Alerts: Built-in alert conditions trigger when price hits the “Solid” wall (2SD or higher), perfect for automated trading or notifications.
Visual Clarity: The center of the chart remains clear (high transparency) to keep focus on price action where it matters most.
🎨 Visualization
Equilibrium Line: A gray line representing the mean price.
Gradient Fills: The space between bands fills with color that increases in opacity as it moves outward.
Premium Wall: Upper zones fade from transparent red to solid red.
Discount Wall: Lower zones fade from transparent green to solid green.
📖 Usage Guidelines
Range Period: Default 20. Controls the lookback period for the SMA and Standard Deviation calculation.
Source: Default Close. The price data used for calculations.
Center Transparency: Default 100 (Clear). Controls how transparent the middle of the chart is.
Edge Transparency: Default 45 (Solid). Controls the opacity of the outermost liquidity wall.
Wall Steepness: Default 2.5. Adjusts how aggressively the gradient transitions from clear to solid.
Wall Start Point: Default 1.5 SD. The deviation level where the gradient shift begins to accelerate.
✅ Best Use Cases
Mean Reversion Trading: Enter trades when price hits the solid 2SD or 3SD wall and shows rejection wicks.
Take Profit Targets: Use the Equilibrium (Gray Line) as a logical first target for reversal trades.
Trend Filtering: Do not initiate new long positions when price is deep inside the Red (Premium) wall.
⚠️ Limitations
Lagging Nature: As a statistical tool based on Moving Averages, the walls react to past price data and may lag during sudden volatility spikes.
Trending Markets: In strong parabolic trends, price can “ride” the bands for extended periods; mean reversion should be used with caution in these conditions.
💡 What Makes This Unique
Physics-Based Visualization: We treat liquidity as a physical barrier that gets denser the deeper you push, rather than just a static line on a chart.
🔬 How It Works
Step 1: The script calculates the mean (SMA) and the Standard Deviation (SD) of the source price.
Step 2: It defines three zones above and below the mean (1SD, 2SD, 3SD).
Step 3: The custom `get_inverted_sigmoid` function calculates an Alpha (transparency) value based on the SD distance.
Step 4: Plot fills are colored dynamically, creating a seamless gradient that hardens at the extremes to visualize the “Liquidity Wall.”
💡 Note
For best results, combine this indicator with Price Action confirmation (such as pin bars or engulfing candles) when price touches the solid walls.
ZynIQ Order Block Master Pro v2 - (Pro Plus Pack)Overview
ZynIQ Order Block Master Pro v2 identifies areas where price showed strong displacement and left behind significant zones of interest. It highlights potential reaction areas, continuation blocks and mitigation zones based on structural behaviour and directional flow.
Key Features
• Automatic detection of bullish and bearish order block zones
• Optional refinement filters for higher-quality zones
• Displacement-aware logic to reduce weak signals
• Optional mitigation markers when price revisits a zone
• Configurable sensitivity for different markets and timeframes
• Clean labels and minimal chart clutter
• Complements structure, liquidity and FVG tools
Use Cases
• Highlighting key reaction areas based on previous strong moves
• Tracking potential continuation or reversal zones
• Combining order blocks with BOS/CHOCH and liquidity mapping
• Building confluence with breakout or volume tools
Notes
This tool provides contextual price zones based on displacement and structural movement. It is not a standalone trading system. Use with your own confirmation and risk management.






















