Bassi's Consolidation Breakout — ULTIMATE PRO + VPOverview
Bassi’s Consolidation Breakout — ULTIMATE PRO + VP is a professional-grade breakout detection system that combines price structure, volume confirmation, volatility compression, and custom volume profile logic.
The indicator automatically detects compressed consolidation zones, confirms breakouts with multi-layer filters, and plots full trade setups including:
Entry level
Stop-loss
TP1, TP2, TP3 (R:R based)
Trend filters + MTF EMA
Retest validation
Volume Profile confirmation (POC / VAH / VAL)
This is one of the most complete breakout frameworks for TradingView.
🔍 Core Concept
The script detects tight consolidation boxes based on:
Price range (% compression)
Lookback period
Minimum required bars
Breakout above/below the box
Once the consolidation ends, breakout signals fire only if they pass all filters.
This focuses your trading on high-probability breakouts only.
🔥 Key Features
1️⃣ Automated Consolidation Box Detection
Draws consolidation boxes dynamically
Identifies tight range compression
Supports advanced range logic for high accuracy
2️⃣ Smart Breakout + Retest Engine
Breakouts and breakdowns require:
Structure break
Minimum breakout expansion (0.15%)
Volume confirmation
Trend (200 EMA) confirmation
Optional retest validation
Optional Volume Profile filter
Each valid breakout prints a signal + full trade setup.
3️⃣ Custom Volume Profile Engine
Fast and lightweight custom-built VP that calculates:
POC (Point of Control)
VAH (Value Area High)
VAL (Value Area Low)
These levels can optionally be used to filter weak breakouts.
4️⃣ Multi-Timeframe Trend Filter
Uses 200 EMA from any selected higher timeframe
Helps avoid counter-trend fakeouts
Fully optional
5️⃣ Automatic Trade Setup Projection
Each breakout generates:
Stop-loss (ATR × multiplier)
TP1 (R:R)
TP2 (R:R)
TP3 (optional)
Clean signal labels
Only keeps the last 2 signals to maintain clarity
6️⃣ Alerts Included
Alerts fire instantly when a valid breakout occurs:
“Bassi LONG + VP”
“Bassi SHORT + VP”
Alerts include ticker + entry price.
📘 Usage Guide & Trading Rules
✔ Recommended Trading Steps
1. Wait for a confirmed consolidation box
Box must be narrow
Must meet minimum bar requirement
2. Wait for a confirmed breakout signal
Signal requires:
Breakout above/below box
Volume confirmation
Trend & MTF confirmation if enabled
Optional retest
Optional VP filter (close outside VAH/VAL)
3. Follow the projected setup
The script prints:
Entry
SL
TP1 / TP2 / TP3
Target lines extend automatically.
📖 How to Use the Script (Trading Rules)
1️⃣ Long Entry Rules
Enter Long when:
Price breaks above trend confirmation level
Momentum signal turns bullish
Candle closes above trigger line
Volatility filter is satisfied
Exit Long:
TP1/TP2/TP3 levels
Reversal signal
Trailing stop hit
2️⃣ Short Entry Rules
Enter Short when:
Price breaks below trend confirmation level
Momentum signal turns bearish
Candle closes below trigger line
Volatility filter is satisfied
Exit Short:
TP1/TP2/TP3 levels
Trend reversal
Trailing stop hit
✔ Recommended Markets
Crypto
Forex
Indices
Futures
Stocks
Works on all timeframes from 1-minute to daily.
✔ Best Practice
Avoid taking signals against HTF trend
Prefer signals that break away from VAH/VAL
Use TP1 to secure partial profits
Move SL to breakeven after TP1 if desired
Always follow personal risk management
👤 Author
Created by: Mahdi Bassi
Professional trader & systems designer
Focused on structural, volume-based and volatility-based strategies.
⚠️ Disclaimer
This script is for educational purposes only.
No indicator can guarantee profits.
Always use proper risk management and trade responsibly.
インジケーターとストラテジー
Reference TimesThe Reference Times indicator highlights historical candles on your chart based on the user's selected criteria. This tool allows traders to reference the current graph's price movements against historical movements at specific times and days, helping to anticipate potential future market direction, swings, and timing.
Custom Time & Date Selection : Choose a specific weekday, hour, and minute to highlight corresponding candles on your chart, adjusted for Israel time (UTC+3) with 8-hour offset from Chicago time.
Flexible Timeframe Adaptation : Highlights candles based on the selected candle timeframe (e.g., 30-minute, 90-minute) aligned to trading day 01:00-24:00 Israel time.
Opposite Time and Day Markings : Display "opposite hours" (e.g., Monday 15:24 → Monday 03:00) and "opposite days" (Monday ↔ Wednesday, Tuesday ↔ Thursday; Friday has none).
Previous Day Highlights : Mark the most recent prior weekday (e.g., Wednesday selection shows previous Tuesday).
Price-Relevance Filtering : "Don't show upper discounts and lower premiums" hides irrelevant wicks above/below current price.
Caption Customization : Options for "date", "time", "weekday" or no caption (e.g., "Fr 03/10 15:00").
Price-Range Limiting : Show only X nearest highlights above/below current price (current candle excluded from count).
For even more advaned features check out "Reference Times - Advanced"
good luck and all the best!
GIX-Analiza Fundamentala• People who want to combine fundamental analysis with technical analysis
• Identifying fundamentally strong companies and avoiding high-risk ones
• The indicator collects and structures fundamental information such as:
Profitability (net profit, margins, EBIT/EBITDA, ROE/ROA)
Financial stability (debt levels, leverage, liquidity)
Low Volatility Profiles [BigBeluga]🔵 OVERVIEW
Low Volatility Profiles is a market compression and breakout-anticipation tool that identifies phases of low volatility using ADX and then builds a real-time volume profile inside the detected range.
This helps traders spot accumulation/distribution zones and prepare for explosive moves when volatility expands.
When volatility is low ➜ price coils ➜ volume organizes ➜ breakouts become highly actionable.
This tool visualizes that process with dynamic range boxes + volume bins + PoC extension.
🔵 CONCEPTS
Low-Volatility Detection — Uses ADX threshold & cross logic to define volatility contraction regimes.
Range Construction — Draws a price box that expands with highs/lows during the compression phase.
Micro Volume Profile — Builds a volume histogram inside the range using bins (micro volume nodes).
Delta Calculation — Tracks positive vs negative volume to gauge buyer/seller pressure within range.
Point of Control (PoC) — Highlights the price level with max traded volume inside the range.
PoC Extension — Optionally extends PoC into future bars to show potential reaction zone after breakout.
Breakout Validation — Ends the profile zone when price breaks above or below the modeled range.
Noise Removal — Automatically removes invalid or small ranges to prevent chart clutter.
This tool turns consolidation into actionable structure by exposing where smart money accumulates before trending moves.
🔵 FEATURES
ADX-Driven Range Detection — Identify when market transitions into low-volatility compression.
Configurable ADX Threshold — Set sensitivity for contraction zones.
Cross-Type Option — Detect low volatility via cross under / crossover logic.
Dynamic Range Box — Expands live with price as contraction unfolds.
Micro Volume Profile (Bins) — Distributes volume across bins inside range for micro POC mapping.
Volume Delta Visualization — Shows imbalance inside consolidation (accumulation vs distribution).
Real-Time PoC Highlight — Instantly shows most traded price inside the compression.
PoC Extension Mode — Extend PoC forward to project reaction levels post-breakout.
Clean Auto-Reset Logic — Removes boxes if range invalid or breakout occurs too fast.
Optional Filled Boxes — Heatmap-style profile visualization inside range body.
ADX Line + Threshold Plot — Visual assistance for volatility state monitoring.
🔵 HOW TO USE
Identify Accumulation Zones — When price enters low-volatility ADX condition and profile builds.
Watch the PoC — PoC acts as battle zone; move above/below can signal initiator strength.
Breakout Strategy — Trade break above/below the range after compression.
Mean Reversion Inside Range — Fade edges while price remains inside compression box.
Combine With Trend Tools — Use trend confirmation (MA/EMA/Flow indicators) after breakout.
Use Delta Clues — Positive delta tilt suggests accumulation; negative suggests distribution.
Monitor Range Size — Longer build + high PoC volume = stronger potential breakout energy.
🔵 CONCLUSION
Low Volatility Profiles isolates accumulation phases and maps volume concentration before volatility expansion.
By combining ADX compression, micro volume distribution, and PoC tracing, traders gain an edge in anticipating powerful breakout cycles and institutional positioning.
Trade the quiet moment before the storm — where smart money prepares the move, and the real opportunity emerges.
Confirmed Pivots + MACD Signals (with BOS Lines)Confirmed Pivots + MACD Signals
This indicator combines confirmed swing highs/lows (pivots) with MACD-based momentum signals to highlight key reversal and continuation points on the chart.
Core Logic
Confirmed Pivots:
The script identifies swing highs and lows using the user-defined pivot confirmation length.
Once a structure is broken beyond the last pivot, that level becomes a confirmed support (CL) or resistance (CH) line.
These levels are plotted as dashed horizontal rays and labeled directly on the chart.
MACD Integration:
The classic MACD crossover/under logic is used:
Bullish Crossover: MACD line crosses above the Signal line.
Bearish Crossunder: MACD line crosses below the Signal line.
Signal Filtering by Proximity:
A Proximity Zone (%) defines how close price must be to an active support or resistance to trigger a signal.
Buy Signal: When price is within the support zone and a bullish MACD crossover occurs.
Sell Signal: When price is within the resistance zone and a bearish MACD crossunder occurs.
Inputs
Pivot Confirmation Length: Bars used to confirm swing points.
MACD Fast/Slow/Signal Lengths: Standard MACD settings.
Proximity Zone (%): Defines zone width (e.g., 1% around active level).
Output
Labels: "CH" (Confirmed High) and "CL" (Confirmed Low) with color-coded dashed lines.
Signals: "BUY" and "SELL" markers appear when both pivot and MACD conditions align.
Tips
Works best on higher timeframes (H1 and above).
Combine with price action or trend filters for confirmation.
Use proximity percentage according to volatility (e.g., smaller % for low-vol assets).
⚠️ Disclaimer:
This script is provided for educational and informational purposes only.
It does not constitute financial or investment advice, and the author is not responsible for any financial losses that may occur from its use.
Always perform your own analysis and use this indicator together with other technical and risk management tools before making trading decisions.
---------------------------------------------------------------------------------------------
سقف و کف تاییدشده + سیگنالهای MACD
این اندیکاتور ترکیبی از شناسایی سقفها و کفهای تاییدشده (Pivot High/Low) به همراه سیگنالهای مومنتوم MACD است که نقاط برگشت یا ادامهی روند را روی چارت مشخص میکند.
🔹 منطق عملکرد
تایید سقف و کفها:
ابتدا سقف و کفهای محلی بر اساس تعداد کندلهای تنظیمشده شناسایی میشوند.
وقتی ساختار قیمتی از آخرین سقف یا کف عبور کند، آن سطح به عنوان حمایت یا مقاومت تاییدشده در نظر گرفته شده و با برچسبهای “CL” (کف تاییدشده) و “CH” (سقف تاییدشده) و خطوط نقطهچین رسم میشود.
ادغام با MACD:
از منطق کلاسیک کراساور/کراسآندر MACD استفاده شده است:
کراس صعودی: عبور خط MACD از بالای خط سیگنال.
کراس نزولی: عبور خط MACD از زیر خط سیگنال.
فیلتر سیگنال با ناحیه مجاور:
با استفاده از درصد ناحیه مجاور (Proximity Zone %)، فقط زمانی سیگنال صادر میشود که قیمت نزدیک حمایت یا مقاومت فعال باشد.
سیگنال خرید: وقتی قیمت در ناحیهی حمایت و همزمان MACD صعودی شود.
سیگنال فروش: وقتی قیمت در ناحیهی مقاومت و همزمان MACD نزولی شود.
تنظیمات ورودی
طول تأیید پیوتها
تنظیمات MACD (Fast, Slow, Signal)
درصد ناحیه مجاور برای فعال شدن سیگنالها
خروجیها
برچسبهای “CL” و “CH” برای سطوح تاییدشده
نشانگرهای “BUY” و “SELL” در محل صدور سیگنال
نکات کاربردی
بهترین عملکرد در تایمفریمهای بالاتر (۱ ساعته به بالا)
برای دقت بیشتر، آن را با فیلتر روند یا پرایساکشن ترکیب کنید
درصد ناحیه مجاور را با توجه به نوسانات دارایی تنظیم کنید
Pivot & GapPIVOT and GAP – Indicator
PIVOT and GAP is an advanced structural price-action tool designed to detect hidden imbalances in the market by analyzing gap and pivot formations between candles.
It identifies areas where institutional activity may have left a price void, signaling potential Demand or Supply Zones. When these imbalances align with lower-timeframe zones, the probability of a powerful price reaction increases.
This indicator is built for traders who want to combine gap analysis, price-action structure, with multi-timeframe confluence to make smarter trading decisions.
How Does It Work?
The indicator automatically scans candles for two types of imbalances:
1. Demand-Side Imbalances
PIVOT (Demand Pivot Creation)
A Demand Pivot forms when:
a bearish candle is followed by a bullish candle, and
There is a gap/price difference between the bearish candle’s close and the
bullish candle’s open. A blue color box is created
This signals buyers stepping in aggressively after sellers weaken.
GAP (Demand Gap Creation)
A Demand Gap forms when:
two consecutive bullish candles appear, and there is a positive difference between
the first candle’s close and the next candle’s open.
A blue color box is created
This implies strong upward momentum with institutional buying pressure.
2. Supply-Side Imbalances
PIVOT (Supply Pivot Creation)
A Supply Pivot forms when:
A bullish candle is followed by a bearish candle, and
There is a gap/price difference between the bullish candle’s close and the
bearish candle’s open. A red color box is created
This signals sellers stepping in aggressively after buyers exhaust.
GAP (Supply Gap Creation)
A Supply Gap forms when:
Two consecutive bearish candles appear, and There is a negative difference between
the first candle’s close and the next candle’s open.
A red color box is created
This reflects strong downward momentum with institutional selling pressure.
Higher Timeframe Confirmation:
The indicator performs gap and pivot analysis on higher timeframes, and
If combine with Demand Zone or Supply Zone on the lower timeframe which forms on the same candle.
That zone becomes a High-Probability Zone.
Such zones are considered more powerful because they combine:
• Higher timeframe institutional imbalance
• Strong confluence for reversal or continuation
• Demand and Supply zone creation at Lower Time Frame
How Traders Benefit from It?
High-Probability Zones combining HTF imbalance + LTF zone gives traders clearer areas with higher success probability.
Early Detection of Institutional Moves
Gaps and pivots typically occur where big players enter or exit positions.
Reduces Chart Noise
Instead of guessing where a zone matters, the indicator highlights only those backed by real price imbalances.
What Makes This Indicator Unique?
1. Candle-by-Candle Imbalance Detection
Instead of simple gap detection, this indicator reads the difference in open-close levels with high precision.
2. HTF–LTF Confluence Logic
When the same candle shows imbalance on HTF and a Demand & Supply zone on LTF, the zone is tagged as powerful — a unique decision layer not commonly seen in other scripts.
3. Designed From Your Custom Rules
This structure is built from your personal interpretation of how pivots and gaps create pressure zones — not copied from other scripts.
How This Indicator Is Original ?
The entire logic is created from my own rules of identifying pivots and
gaps, not from any open-source or public code.
The unique combination of:
Gap detection
Pivot shift logic
Direction-specific candle sequence
Multi-timeframe zone alignment
No repurposed or copied logic from existing demand-supply indicators.
The design reflects our personal trading experience, analysis style, and
custom definitions of imbalance.
Disclaimer:
This indicator is created for educational purposes.
It does not provide buy or sell signals, and it should not be considered financial advice.
Trading involves risk, and users should perform their own analysis before taking any positions.
Divergence Detector (MACD + Volume)Divergence Detector (MACD + Volume Confirmation)
This indicator automatically detects bullish and bearish divergences between price and MACD, enhanced with volume confirmation to filter out weak signals.
🔹 Core Logic
Pivot Detection:
The script identifies swing highs and lows (pivots) using customizable left/right lookback values.
Bullish Divergence:
Occurs when price makes a lower low, but MACD makes a higher low.
A label "Bull Div" appears below the bar; if confirmed by high volume, it shows "Bull Div 🔥".
Bearish Divergence:
Occurs when price makes a higher high, but MACD makes a lower high.
A label "Bear Div" appears above the bar; if confirmed by high volume, it shows "Bear Div 📉".
Volume Confirmation:
The indicator checks whether the volume at the pivot bar is above the moving average of volume (customizable length).
This ensures that divergence signals are backed by strong market participation.
Inputs
MACD Fast/Slow/Signal Length – standard MACD parameters
Pivot Lookback Left/Right – defines the swing structure sensitivity
Volume MA Length – defines how volume strength is validated
Output
Labels:
🔹 Bull Div / Bull Div 🔥 → Bullish divergence (confirmed with volume)
🔹 Bear Div / Bear Div 📉 → Bearish divergence (confirmed with volume)
Tips
Works best on higher timeframes and trending markets.
Volume confirmation helps filter false divergences in low liquidity conditions.
Combine with trend or structure indicators for better trade setups.
----------------------------------------------------------------------------------------------
اندیکاتور شناسایی واگرایی MACD با تأیید حجم
این اندیکاتور بهصورت خودکار واگراییهای صعودی و نزولی بین قیمت و MACD را شناسایی کرده و با استفاده از تأیید حجم (Volume Confirmation) سیگنالهای ضعیف را فیلتر میکند.
🔹 منطق عملکرد
شناسایی پیوتها:
نقاط چرخش (سقف و کف) با استفاده از تعداد کندلهای قابل تنظیم در دو سمت شناسایی میشوند.
واگرایی صعودی (Bullish):
زمانی که قیمت کف پایینتر و MACD کف بالاتر میسازد.
برچسب "Bull Div" در زیر کندل نمایش داده میشود؛ اگر حجم بالا باشد، با علامت 🔥 مشخص میگردد.
واگرایی نزولی (Bearish):
زمانی که قیمت سقف بالاتر و MACD سقف پایینتر میسازد.
برچسب "Bear Div" در بالای کندل نمایش داده میشود؛ اگر حجم بالا باشد، با 📉 مشخص میگردد.
تأیید حجم:
اگر حجم در کندل پیوت بالاتر از میانگین متحرک حجم باشد، سیگنال معتبرتر در نظر گرفته میشود.
تنظیمات ورودی
تنظیمات MACD (Fast, Slow, Signal)
پارامترهای شناسایی پیوت (Left / Right)
طول میانگین متحرک حجم (Volume MA Length)
خروجیها
Bull Div 🔥 / Bear Div 📉 برای واگراییهای تأییدشده با حجم
Bull Div / Bear Div برای واگراییهای بدون تأیید حجم
نکات کاربردی
بهترین عملکرد در تایمفریمهای بالا و بازارهای دارای روند
تأیید حجم به حذف سیگنالهای اشتباه در شرایط حجم پایین کمک میکند
برای دقت بیشتر، آن را با اندیکاتورهای روند یا ساختار ترکیب کنید
⚠️ Disclaimer:
This script is provided for educational and informational purposes only.
It does not constitute financial advice, and the author is not responsible for any financial losses caused by its use.
Always confirm signals with your own analysis and other tools before making trading decisions.
⚠️ توجه:
این اسکریپت صرفاً جهت آموزش و اطلاعرسانی طراحی شده و توصیه مالی یا سرمایهگذاری محسوب نمیشود.
نویسنده مسئول هیچگونه ضرر یا زیان احتمالی ناشی از استفاده از آن نیست.
لطفاً پیش از هر تصمیم معاملاتی، تحلیل شخصی خود را انجام داده و از این ابزار در کنار سایر ابزارهای تحلیل و مدیریت ریسک استفاده کنید.
DeepClean Linear indicator 1. Indicator Name
DeepClean Linear indicator
2. One-Line Introduction
A trend-recognition indicator that overlays a “transparent wave” on price, removing noise and revealing directional bias and trend intensity in a highly intuitive visual form.
3. Overall Summary
The DeepClean Linear indicator calculates trend direction using changes in linear regression slope and determines trend strength by comparing how consistently the regression line moves over a defined lookback window.
Rather than merely identifying trend direction, the indicator applies a triple-layer noise-filtering process (EMA → SMA → RMA) to produce a clean, wave-shaped data line that filters out unnecessary market noise.
This transparent wave sits directly on top of price, allowing traders to visually compare price movement and trend strength at the same time.
A stronger trend results in a taller, thicker wave, while weakening momentum causes the wave to thin, making it easier to spot trend continuation, exhaustion, or upcoming reversal.
Color automatically shifts based on trend:
Bright cyan/teal during bullish conditions
Reddish tones during bearish conditions
Transparency dynamically adjusts depending on strength
The indicator excels at identifying the true underlying trend by ignoring minor fluctuations and is well suited for scalping, swing trading, and position trading.
It also significantly reduces false signals in ranging markets, making it ideal for trend-following strategies.
4. Advantages
① Ultra-Clean Noise-Reduced Wave
Utilizes a 3-stage smoothing filter (EMA → SMA → RMA) to produce a much cleaner wave than standard moving averages, highlighting only core trend movement.
② Trend Direction & Strength at a Glance
Based on comparative linear regression behavior, the indicator quantifies both direction and strength, making convergence/divergence highly visible.
③ Intuitive Price Overlay Visualization
The semi-transparent wave sits directly on price action, allowing traders to instantly see divergence from price, trend weakening, or early turning points.
④ Dynamic Transparency Coloring
Strong trends appear bold and intense, while weaker trends fade visually—making signal interpretation effortless.
⑤ Excellent Range Filtering
During low-direction phases (state = 0), the wave turns neutral, preventing forced or premature entries.
⑥ Multi-Timeframe Compatibility
The wave remains stable from 1-minute to weekly charts, making it suitable for trend analysis, execution, and risk control across all timeframes.
📌 Core Concept Overview
The indicator evaluates the relative comparison of linear regression values over the last n periods.
A positive trend value indicates bullish bias
A negative trend value indicates bearish bias
Intensity represents strength and controls wave height
waveTop / waveBot define the visual wave area relative to price
State Values
1 = Bullish Trend
-1 = Bearish Trend
0 = Neutral / Weak Direction
⚙️ Settings Overview
Option Description
Trend Lookback (n) Comparison window for regression slope. Higher = bigger trend focus.
Range Tolerance (%) Strength threshold to classify bullish/bearish movement. Higher = more conservative.
Source Price source for regression calculations.
Linear Reg Length Length of the linear regression.
Noise Filter Strength (smoothK) Controls the smoothing intensity. Higher = smoother wave.
Wave Amplitude (amp) Adjusts the height/thickness of the wave.
Bull/Bear Color Colors for bullish/bearish waves.
Base Transparency Base opacity level; modified dynamically by trend strength.
📈 Bullish Timing Recognition Examples
Wave begins turning brighter teal and more opaque, indicating strengthening upward pressure.
waveTop expands above price, signaling early trend expansion.
State flips to 1, often marking a trend restart or early reversal phase.
A steadily rising wave height suggests sustained bullish momentum.
📉 Bearish Timing Recognition Examples
Wave shifts into red tones, showing bearish dominance.
waveBot expands below price, indicating rising downside volatility.
State stays at -1 while intensity increases, signaling entry into strong downtrend conditions.
A shift from weak → strong bearish intensity can provide short-entry timing cues.
🧪 Recommended Usage
Use as a core component in trend-following systems
Adjust position size based on wave thickness (trend strength)
Combine with RSI/MACD to reduce false signals during overbought/oversold zones
Sudden wave expansion during volatility increases helps detect trend acceleration
In sideways markets, frequent state = 0 readings help avoid low-probability trades
🔒 Important Notes
As a trend-based indicator, it may misread choppy/ranging markets
Because of smoothing, signals may appear slightly delayed
Extreme news volatility can temporarily distort trend clarity
Atlas 8 Currency Session Momentum (6H, London)This indicator calculates real-time currency strength for the 8 major currencies (USD, EUR, GBP, JPY, AUD, NZD, CAD, CHF) using a balanced multi-pair engine and a 6-hour momentum reset.
🔍 How it works
The indicator computes the relative strength of each currency by averaging the percentage change of 7 major cross-pairs for each currency.
A currency's value increases when pairs where it is the base appreciate, and decreases when pairs where it is the quote depreciate.
This creates a symmetric and stable strength calculation similar to institutional relative-value models.
🕒 Session-based Momentum Reset
The global trading day is split into 4 × 6-hour blocks:
• 00:00–06:00 Tokyo
• 06:00–12:00 London
• 12:00–18:00 New York
• 18:00–24:00 Late US/Asia pre-open
At each new 6-hour session, all strength lines reset to 0.
This highlights fresh intraday momentum generated by liquidity transitions between sessions.
🎯 What the indicator shows
• Relative strength of all 8 currencies
• Smooth momentum curves using EMA smoothing
• Vertical dividers at each new session
• Background color for each session
• Real intraday build-up of strength/weakness (not cumulative from previous day)
This tool is designed for intraday traders who follow cross-currency momentum during session transitions (Tokyo → London → NY).
🧭 How to use it
• Look for the strongest vs weakest currency after each session reset
• Identify fresh trends during London and NY opens
• Confirm currency-pair bias using strength divergence
• Track momentum exhaustion when lines flatten or converge
10/20 EMA 50/100/200 SMA — by mijoomoCreated by mijoomo.
This indicator combines EMA 10 & EMA 20 with SMA 50/100/200 in one clean package.
Each moving average is toggleable, fully labeled, and alert-compatible.
Designed for traders who want a simple and effective multi-MA trend tool.
CDVI – First Crypto Dominance Volatility Index by Armi GoldmanThe Crypto Dominance Volatility Index (CDVI) is the first volatility-based indicator designed specifically to analyze the stability and instability of dominance flows in the crypto market.
Instead of measuring price volatility, CDVI focuses on the volatility of market dominance itself — a structural driver behind capital rotation cycles such as Bitcoin Season, Altseason, accumulation zones, and macro cycle transitions.
CDVI transforms dominance changes into a clear volatility index that highlights compression, expansion, and regime shifts.
How it works
CDVI calculates the absolute or percentage-based realized volatility of your chosen dominance benchmark (BTC.D, TOTAL.D, or any dominance index available on TradingView).
The indicator then:
1. Smooths the volatility curve using adjustable parameters
2. Builds a long-term mean to identify regime structure
3. Computes percentile zones over a rolling lookback window
4. Highlights high-risk and low-risk dominance conditions using color-coded backgrounds
This creates a clean, noise-reduced volatility representation of the dominance market.
Why it looks like this
The CDVI curve is intentionally smooth and cyclical because dominance volatility behaves differently from price volatility:
• Dominance tends to trend slowly, then spike violently during rotation phases
• Periods of prolonged compression often occur before large macro moves
• Volatility bursts cluster during transitions (e.g. BTC → Alts, cycle tops, market-wide repricing)
The percentile zones (90% / 10%) give structural thresholds for extreme conditions.
Background color reveals when dominance volatility enters these extremes, creating visually clear “regime blocks.”
How to interpret CDVI
High CDVI (above the 90th percentile):
• Dominance instability
• Capital rotation phases are active
• Market is repricing sector allocations
• Often appears near Altseason tops or bottoms
• Signals caution for trend traders and opportunity for rotation traders
Low CDVI (below the 10th percentile):
• Compression and calm dominance
• Accumulation and structural balance
• Often precedes major expansions in Bitcoin or Alt markets
• Useful for anticipating cycle transitions before they break out
Long-term mean:
• Helps identify when the market is in a high-vol or low-vol regime
• Crossings around the mean often coincide with early cycle shifts
How to use CDVI in practice
1. Cycle Timing
Use CDVI to detect when the market moves from calm → expansion or expansion → exhaustion.
Low CDVI usually precedes major moves. High CDVI often marks transition turbulence.
2. BTC vs Altcoins Rotation
Combine CDVI with BTC.D / TOTAL2 / TOTAL3 to detect rotation windows.
High CDVI = dominance is unstable → rotations happen.
Low CDVI = dominance is stable → trending environment.
3. Risk Management
High CDVI suggests elevated structural risk (dominance shifting).
Low CDVI supports directional conviction.
4. Confluence with Price
When both price volatility and dominance volatility expand together → macro transition.
When price is volatile but CDVI is flat → noise, not structural change.
Who this indicator is for
• Cycle analysts
• Macro crypto traders
• BTC vs Alts rotation traders
• Portfolio allocators
• Long-term investors looking at structural market phases
CDVI is designed as a clean, structural tool for understanding volatility not of price — but of market power distribution.
Sideways & Breakout Detector + Forecast//@version=6
indicator("Sideways & Breakout Detector + Forecast", overlay=true, max_labels_count=500)
// Inputs
lengthATR = input.int(20, "ATR Länge")
lengthMA = input.int(50, "Trend MA Länge")
sqFactor = input.float(1.2, "Seitwärtsfaktor")
brkFactor = input.float(1.5, "Breakoutfaktor")
// ATR / Volatilität
atr = ta.atr(lengthATR)
atrSMA = ta.sma(atr, lengthATR)
// Basislinie / Trend
basis = ta.sma(close, lengthATR)
trendMA = ta.sma(close, lengthMA)
// Seitwärtsbedingung
isSideways = atr < atrSMA * sqFactor
// Breakouts
upperBreak = close > basis + atr * brkFactor
lowerBreak = close < basis - atr * brkFactor
// Vorhergesagter Ausbruch (Forecast)
// Wenn Seitwärtsphase + Kurs nahe obere oder untere Kanalgrenze
forecastBull = isSideways and (close > basis + 0.5 * atr)
forecastBear = isSideways and (close < basis - 0.5 * atr)
// Farben
barcolor(isSideways ? color.new(color.yellow, 40) : na)
barcolor(upperBreak ? color.green : na)
barcolor(lowerBreak ? color.red : na)
// Breakout-Bänder
plot(basis + atr * brkFactor, "Bull Break Zone", color=color.new(color.green, 60))
plot(basis - atr * brkFactor, "Bear Break Zone", color=color.new(color.red, 60))
// Labels (klein)
if isSideways
label.new(bar_index, close, "Seitwärts", color=color.yellow, style=label.style_label_center, size=size.tiny)
if upperBreak
label.new(bar_index, high, "Bull Breakout", color=color.green, style=label.style_label_up, size=size.tiny)
if lowerBreak
label.new(bar_index, low, "Bear Breakout", color=color.red, style=label.style_label_down, size=size.tiny)
// Vorhergesagte Ausbrüche markieren
plotshape(forecastBull, title="Forecast Bull", location=location.abovebar, color=color.new(color.green, 0), style=shape.triangleup, size=size.tiny)
plotshape(forecastBear, title="Forecast Bear", location=location.belowbar, color=color.new(color.red, 0), style=shape.triangledown, size=size.tiny)
// Alerts
alertcondition(isSideways, "Seitwärtsphase", "Der Markt läuft seitwärts.")
alertcondition(upperBreak, "Bull Breakout", "Ausbruch nach oben!")
alertcondition(lowerBreak, "Bear Breakout", "Ausbruch nach unten!")
alertcondition(forecastBull, "Forecast Bull", "Voraussichtlicher Bull-Ausbruch!")
alertcondition(forecastBear, "Forecast Bear", "Voraussichtlicher Bear-Ausbruch!")
i don want to tell you how to use
"Regarding the specific inquiry into the precise manner and method by which one might go about employing the features present herein, I have decided, after much deliberation and careful consideration of all variable factors, to abstain from delivering a prescriptive lecture, thereby allowing the operational paradigm to remain an open-ended question for you to resolve."
Session Open Range, Breakout & Trap Framework - TrendPredator OBSession Open Range, Breakout & Trap Framework — TrendPredator Open Box
Stacey Burke’s trading approach combines concepts from George Douglas Taylor, Tony Crabel, Steve Mauro, and Robert Schabacker. His framework focuses on reading price behaviour across daily templates and identifying how markets move through recurring cycles of expansion, contraction, and reversal. While effective, much of this analysis requires real-time interpretation of session-based behaviour, which can be demanding for traders working on lower intraday timeframes.
The TrendPredator indicators formalize parts of this methodology by introducing mechanical rules for multi-timeframe bias tracking and session structure analysis. They aim to present the key elements of the system—bias, breakouts, fakeouts, and range behaviour—in a consistent and objective way that reduces discretionary interpretation.
The Open Box indicator focuses specifically on the opening behaviour of major trading sessions. It builds on principles found in classical Open Range Breakout (ORB) techniques described by Tony Crabel, where a defined time window around the session open forms a structural reference range. Price behaviour relative to this range—breaking out, failing back inside, or expanding—can highlight developing session bias, potential trap formation, and directional conviction.
This indicator applies these concepts throughout the major equity sessions. It automatically maps the session’s initial range (“Open Box”) and tracks how price interacts with it as liquidity and volatility increase. It also incorporates related structural references such as:
* the first-hour high and low of the futures session
* the exact session open level
* an anchored VWAP starting at the session open
* automated expansion levels projected from the Open Box
In combination, these components provide a unified view of early session activity, including breakout attempts, fakeouts, VWAP reactions, and liquidity targeting. The Open Box offers a structured lens for observing how price transitions through the major sessions (Asia → London → New York) and how these behaviours relate to higher-timeframe bias defined in the broader TrendPredator framework.
Core Features
Open Box (Session Structure)
The indicator defines an initial session range beginning at the selected session open. This “Open Box” represents a fixed time window—commonly the first 30 minutes, or any user-defined duration—that serves as a structural reference for analysing early session behaviour.
The range highlights whether price remains inside the box, breaks out, or rejects the boundaries, providing a consistent foundation for interpreting early directional tendencies and recognising breakout, continuation, or fakeout characteristics.
How it works:
* At the session open, the indicator calculates the high and low over the specified time window.
* This range is plotted as the initial structure of the session.
* Price behaviour at the boundaries can illustrate emerging bias or potential trap formation.
* An optional secondary range (e.g., 15-minute high/low) can be enabled to capture early volatility with additional precision.
Inputs / Options:
* Session specifications (Tokyo, London, New York)
* Open Box start and end times (e.g., equity open + first 30 minutes, or any custom length)
* Open Box colour and label settings
* Formatting options for Open Box high and low lines
* Optional secondary range per session (e.g., 15-minute high/low)
* Forward extension of Open Box high/low lines
* Number of historic Open Boxes to display
Session VWAPs
The indicator plots VWAPs for each major trading session—Asia, London, and New York—anchored to their respective session opens. These session-specific VWAPs assist in tracking how value develops through the day and how price interacts with session-based volume distributions.
How it works:
* At each session open, a VWAP is anchored to the open price.
* The VWAP updates throughout the session as new volume and price data arrive.
* Deviations above or below the VWAP may indicate balance, imbalance, or directional control.
* Viewed together, session VWAPs help identify transitions in value across sessions.
Inputs / Options:
* Enable or disable VWAP per session
* Adjustable anchor and end times (optionally to end of day)
* Line styling and label settings
* Number of historic VWAPs to draw
First Hour High/Low Extensions
The indicator marks the high and low formed during the first hour of each session. These reference points often function as early control levels and provide context for assessing whether the session is establishing bias, consolidating, or exhibiting reversal behaviour.
How it works:
* After the session starts, the indicator records the highest and lowest prices during the first hour.
* These levels are plotted and extended across the session.
* They provide a visual reference for observing reactions, targets, or rejection zones.
Inputs / Options:
* Enable or disable for each session
* Line style, colour, and label visibility
* Number of historic sessions displayed
EQO Levels (Equity Open)
The indicator plots the opening price of each configured session. These “Equity Open” levels represent short-term reference points that can attract price early in the session.
Once the level is revisited after the Open Box has formed, it is automatically cut to avoid clutter. If not revisited, the line remains as an untested reference, similar to a naked point of control.
How it works:
* At session open, the open price is recorded.
* The level is plotted as a local reference.
* If price interacts with the level after the Open Box completes, the line is cut.
* Untested EQOs extend forward until interacted with.
Inputs / Options:
* Enable/disable per session
* Line style and label settings
* Optional extension into the next day
* Option for cutting vs. hiding on revisit
* Number of historic sessions displayed
OB Range Expansions (Automatic)
Range expansions are calculated from the height of the Open Box. These levels provide structured reference zones for identifying potential continuation or exhaustion areas within a session.
How it works:
* After the Open Box is formed, multiples of the range (e.g., 1×, 2×, 3×) are projected.
* These expansion levels are plotted above and below the range.
* Price reactions near these areas can illustrate continuation, hesitation, or potential reversal.
Inputs / Options:
* Enable or disable per session
* Select number of multiples
* Line style, colour, and label settings
* Extension length into the session
Stacey Burke 12-Candle Window Marker
The indicator can highlight the 12-candle window often referenced in Stacey Burke’s session methodology. This window represents the key active period of each session where breakout attempts, volatility shifts, and reversal signatures often occur.
How it works:
* A configurable window (default 12 candles) is highlighted from each session open.
* This window acts as a guide for observing active session behaviour.
* It remains visible throughout the session for structural context.
Inputs / Options:
* Enable/disable per session
* Configurable window duration (default: 3 hours)
* Colour and transparency controls
Concept and Integration
The Open Box is built around the same multi-timeframe logic that underpins the broader TrendPredator framework.
While higher-timeframe tools track bias and setups across the H8–D–W–M levels, the Open Box focuses on the H1–M30 domain to define session structure and observe how early intraday behaviour aligns with higher-timeframe conditions.
The indicator integrates with the TrendPredator FO (Breakout, Fakeout & Trend Switch Detector), which highlights microstructure signals on lower timeframes (M15/M5). Together they form a layered workflow:
* Higher timeframes: context, bias, and developing setups
* TrendPredator OB: intraday and intra-session structure
* TrendPredator FO: microstructure confirmation (e.g., FOL/FOH, switches)
This alignment provides a structured way to observe how daily directional context interacts with intraday behaviour.
See the public open source indicator TP FO here (click on it for access):
Practical Application
Before Session Open
* Review previous session Open Box, Open level, and VWAPs
* Assess how higher-timeframe bias aligns with potential intraday continuation or reversal
* Note untested EQO levels or VWAPs that may function as liquidity attractors
During Session Open
* Observe behaviour around the first-hour high/low and higher-timeframe reference levels
* Monitor how the M15 and 30-minute ranges close
* Track reactions relative to the session open level and the session VWAP
After the Open Box completes
* Assess price interaction with Open Box boundaries and first-hour levels
* Use microstructure signals (e.g., FOH/FOL, switches) for potential confirmation
* Refer to expansion levels as reference zones for management or target setting
After Session
* Review how price behaved relative to the Open Box, EQO levels, VWAPs, and expansion zones
* Analyse breakout attempts, fakeouts, and whether intraday structure aligned with the broader daily move
Example Workflow and Trade
1. Higher-timeframe analysis signals a Daily Fakeout Low Continuation (bullish context).
2. The New York session forms an Open Box; price breaks above and holds above the first-hour high.
3. A Fakeout Low + Switch Bar appears on M5 (via FO), after retesting the session VWAP triggering the entry.
4. 1x expansion level serves as reference targets for take profit.
Relation to the TrendPredator Ecosystem
The Open Box is part of the TrendPredator Indicator Family, designed to apply multi-timeframe logic consistently across:
* higher-timeframe context and setups
* intraday and session structure (OB)
* microstructure confirmation (FO)
Together, these modules offer a unified structure for analysing how daily and intraday cycles interact.
Disclaimer
This indicator is for educational purposes only and does not guarantee profits.
It does not provide buy or sell signals but highlights structural and behavioural areas for analysis.
Users are solely responsible for their trading decisions and outcomes.
Heikin Ashi Croce - MinimalHeikin Ashi Doji Marker – Minimal Version (Numeric Parameters)
This indicator identifies potential Heikin Ashi doji candles and marks them with a small triangle above the candle.
Numeric criteria used to detect a doji:
Body size: up to 60% of the total candle range
Upper wick: at least 15% of the total candle range
Lower wick: at least 15% of the total candle range
Wick balance: the ratio of upper wick to lower wick between 0.5 and 2
Purpose:
The indicator highlights visually evident doji candles while leaving the final decision to the trader’s discretion. It is non-restrictive, allowing traders to filter signals based on context, trend, and pullbacks.
Trend Zones This tool helps you quickly understand the market’s direction and the strength of the most recent price move:
It identifies whether the market is in an uptrend, downtrend, or flat/sideways phase and clearly marks these conditions on the chart.
It can notify you when the trend changes, so you don’t have to constantly watch the screen.
Each alert includes:
The current closing price
The previous closing price
The difference between the two closes (how much price has moved in one bar)
This makes it easier to see not only what the trend is, but also how strong the latest price move is when the alert triggers.
Sniper Entry AU - AYUSHThis indicator combines EMA 9, EMA 15, and VWAP to identify trend direction and intraday strength. EMA 9 and EMA 15 show short-term momentum and crossover signals, while VWAP acts as an institutional reference point for fair value. Together, they help traders spot trend continuation, pullbacks, and high-quality entry zones during intraday sessions.
ATR Risk Manager v5.2 [Auto-Extrapolate]If you ever had problems knowing how much contracts to use for a particular timeframe to keep your risk within acceptable levels, then this indicator should help. You just have to define your accepted risk based on ATR and also percetage of your drawdown, then the indicator will tell you how many contracts you should use. If the risk is too high, it will also tell you not to trade. This is only for futures NQ MNQ ES MES GC MGC CL MCL MYM and M2K.
Omega Correlation [OmegaTools]Omega Correlation (Ω CRR) is a cross-asset analytics tool designed to quantify both the strength of the relationship between two instruments and the tendency of one to move ahead of the other. It is intended for traders who work with indices, futures, FX, commodities, equities and ETFs, and who require something more robust than a simple linear correlation line.
The indicator operates in two distinct modes, selected via the “Show” parameter: Correlation and Anticipation. In Correlation mode, the script focuses on how tightly the current chart and the chosen second asset move together. In Anticipation mode, it shifts to a lead–lag perspective and estimates whether the second asset tends to behave as a leader or a follower relative to the symbol on the chart.
In both modes, the core inputs are the chart symbol and a user-selected second symbol. Internally, both assets are transformed into normalized log-returns: the script computes logarithmic returns, removes short-term mean and scales by realized volatility, then clips extreme values. This normalisation allows the tool to compare behaviour across assets with different price levels and volatility profiles.
In Correlation mode, the indicator computes a composite correlation score that typically ranges between –1 and +1. Values near +1 indicate strong and persistent positive co-movement, values near zero indicate an unstable or weak link, and values near –1 indicate a stable anti-correlation regime. The composite score is constructed from three components.
The first component is a normalized return co-movement measure. After transforming both instruments into normalized returns, the script evaluates how similar those returns are bar by bar. When the two assets consistently deliver returns of similar sign and magnitude, this component is high and positive. When they frequently diverge or move in opposite directions, it becomes negative. This captures short-term co-movement in a volatility-adjusted way.
The second component focuses on high–low swing alignment. Rather than looking only at closes, it examines the direction of changes in highs and lows for each bar. If both instruments are printing higher highs and higher lows together, or lower highs and lower lows together, the swing structure is considered aligned. Persistent alignment contributes positively to the correlation score, while repeated mismatches between the swing directions reduce it. This helps differentiate between superficial price noise and structural similarity in trend behaviour.
The third component is a classical Pearson correlation on closing prices, computed over a longer lookback. This serves as a stabilising backbone that summarises general co-movement over a broader window. By combining normalized return co-movement, swing alignment and standard price correlation with calibrated weights, the Correlation mode provides a richer view than a single linear measure, capturing both short-term dynamic interaction and longer-term structural linkage.
In Anticipation mode, Omega Correlation estimates whether the second asset tends to lead or lag the current chart. The output is again a continuous score around the range. Positive values suggest that the second asset is acting more as a leader, with its past moves bearing informative value for subsequent moves of the chart symbol. Negative values indicate that the second asset behaves more like a laggard or follower. Values near zero suggest that no stable lead–lag structure can be identified.
The anticipation score is built from four elements inspired by quantitative lead–lag and price discovery analysis. The first element is a residual lead correlation, conceptually similar to Granger-style logic. The script first measures how much of the chart symbol’s normalized returns can be explained by its own lagged values. It then removes that component and studies the correlation between the residuals and lagged returns of the second asset. If the second asset’s past returns consistently explain what the chart symbol does beyond its own autoregressive behaviour, this residual correlation becomes significantly positive.
The second element is an asymmetric lead–lag structure measure. It compares the strength of relationships in both directions across multiple lags: the correlation of the current symbol with lagged versions of the second asset (candidate leader) versus the correlation of lagged values of the current symbol with the present values of the second asset. If the forward direction (second asset leading the first) is systematically stronger than the backward direction, the structure is skewed toward genuine leadership of the second asset.
The third element is a relative price discovery score, constructed by building a dynamic hedge ratio between the two prices and defining a spread. The indicator looks at how changes in each asset contribute to correcting deviations in this spread over time. When the chart symbol tends to do most of the adjustment while the second asset remains relatively stable, it suggests that the second asset is taking a greater role in determining the equilibrium price and the chart symbol is adjusting to it. The difference in adjustment intensity between the two instruments is summarised into a single score.
The fourth element is a breakout follow-through causality component. The script scans for breakout events on the second asset, where its price breaks out of a recent high or low range while the chart symbol has not yet done so. It then evaluates whether the chart symbol subsequently confirms the breakout direction, remains neutral, or moves against it. Events where the second asset breaks and the first asset later follows in the same direction add positive contribution, while failed or contrarian follow-through reduce this component. The contribution is also lightly modulated by the strength of the breakout, via the underlying normalized return.
The four elements of the Anticipation mode are combined into a single leading correlation score, providing a compact and interpretable measure of whether the second asset currently behaves as an effective early signal for the symbol you trade.
To aid interpretation, Omega Correlation builds dynamic bands around the active series (correlation or anticipation). It estimates a long-term central tendency and a typical deviation around it, plotting upper and lower bands that highlight unusually high or low values relative to recent history. These bands can be used to distinguish routine fluctuations from genuinely extreme regimes.
The script also computes percentile-based levels for the correlation series and uses them to track two special price levels on the main chart: lost correlation levels and gained correlation levels. When the correlation drops below an upper percentile threshold, the current price is stored as a lost correlation level and plotted as a horizontal line. When the correlation rises above a lower percentile threshold, the current price is stored as a gained correlation level. These levels mark zones where a historically strong relationship between the two markets broke down or re-emerged, and can be used to frame divergence, convergence and spread opportunities.
An information panel summarises, in real time, whether the second asset is behaving more as a leading, lagging or independent instrument according to the anticipation score, and suggests whether the current environment is more conducive to de-alignment, re-alignment or classic spread behaviour based on the correlation regime. This makes the tool directly interpretable even for users who are not familiar with all the underlying statistical details.
Typical applications for Omega Correlation include intermarket analysis (for example, index vs index, commodity vs related equity sector, FX vs bonds), dynamic hedge sizing, regime detection for algorithmic strategies, and the identification of lead–lag structures where a macro driver or benchmark can be monitored as an early signal for the instrument actually traded. The indicator can be applied across intraday and higher timeframes, with the understanding that the strength and nature of relationships will differ across horizons.
Omega Correlation is designed as an advanced analytical framework, not as a standalone trading system. Correlation and lead–lag relationships are statistical in nature and can change abruptly, especially around macro events, regime shifts or liquidity shocks. A positive anticipation reading does not guarantee that the second asset will always move first, and a high correlation regime can break without warning. All outputs of this tool should be combined with independent analysis, sound risk management and, when appropriate, backtesting or forward testing on the user’s specific instruments and timeframes.
The intention behind Omega Correlation is to bring techniques inspired by quantitative research, such as normalized return analysis, residual correlation, asymmetric lead–lag structure, price discovery logic and breakout event studies, into an accessible TradingView indicator. It is intended for traders who want a structured, professional way to understand how markets interact and to incorporate that information into their discretionary or systematic decision-making processes.
Sniper Entry 🚀🚀 {_AU_} EMA 9 + EMA 15 + VWAP BY = AU AYUSH
This indicator combines EMA 9, EMA 15, and VWAP to identify trend direction and intraday strength. EMA 9 and EMA 15 show short-term momentum and crossover signals, while VWAP acts as an institutional reference point for fair value. Together, they help traders spot trend continuation, pullbacks, and high-quality entry zones during intraday sessions.
لbsm15// This work is licensed under a Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0) creativecommons.org
// © LuxAlgo
//@version=5
indicator("لbsm15", overlay = true, max_lines_count = 500, max_boxes_count = 500, max_bars_back = 3000)
//------------------------------------------------------------------------------
//Settings
//-----------------------------------------------------------------------------{
liqGrp = 'Liquidity Detection'
liqLen = input.int (7, title = 'Detection Length', minval = 3, maxval = 13, inline = 'LIQ', group = liqGrp)
liqMar = 10 / input.float (6.9, 'Margin', minval = 4, maxval = 9, step = 0.1, inline = 'LIQ', group = liqGrp)
liqBuy = input.bool (true, 'Buyside Liquidity Zones, Margin', inline = 'Buyside', group = liqGrp)
marBuy = input.float(2.3, '', minval = 1.5, maxval = 10, step = .1, inline = 'Buyside', group = liqGrp)
cLIQ_B = input.color (color.new(#4caf50, 0), '', inline = 'Buyside', group = liqGrp)
liqSel = input.bool (true, 'Sellside Liquidity Zones, Margin', inline = 'Sellside', group = liqGrp)
marSel = input.float(2.3, '', minval = 1.5, maxval = 10, step = .1, inline = 'Sellside', group = liqGrp)
cLIQ_S = input.color (color.new(#f23645, 0), '', inline = 'Sellside', group = liqGrp)
lqVoid = input.bool (false, 'Liquidity Voids, Bullish', inline = 'void', group = liqGrp)
cLQV_B = input.color (color.new(#4caf50, 0), '', inline = 'void', group = liqGrp)
cLQV_S = input.color (color.new(#f23645, 0), 'Bearish', inline = 'void', group = liqGrp)
lqText = input.bool (false, 'Label', inline = 'void', group = liqGrp)
mode = input.string('Present', title = 'Mode', options = , inline = 'MOD', group = liqGrp)
visLiq = input.int (3, ' # Visible Levels', minval = 1, maxval = 50, inline = 'MOD', group = liqGrp)
//-----------------------------------------------------------------------------}
//General Calculations
//-----------------------------------------------------------------------------{
maxSize = 50
atr = ta.atr(10)
atr200 = ta.atr(200)
per = mode == 'Present' ? last_bar_index - bar_index <= 500 : true
//-----------------------------------------------------------------------------}
//User Defined Types
//-----------------------------------------------------------------------------{
// @type used to store pivot high/low data
//
// @field d (array) The array where the trend direction is to be maintained
// @field x (array) The array where the bar index value of pivot high/low is to be maintained
// @field y (array) The array where the price value of pivot high/low is to be maintained
type ZZ
int d
int x
float y
// @type bar properties with their values
//
// @field o (float) open price of the bar
// @field h (float) high price of the bar
// @field l (float) low price of the bar
// @field c (float) close price of the bar
// @field i (int) index of the bar
type bar
float o = open
float h = high
float l = low
float c = close
int i = bar_index
// @type liquidity object definition
//
// @field bx (box) box maitaing the liquity level margin extreme levels
// @field bxz (box) box maitaing the liquity zone margin extreme levels
// @field bxt (box) box maitaing the labels
// @field brZ (bool) mainains broken zone status
// @field brL (bool) mainains broken level status
// @field ln (line) maitaing the liquity level line
// @field lne (line) maitaing the liquity extended level line
type liq
box bx
box bxz
box bxt
bool brZ
bool brL
line ln
line lne
//-----------------------------------------------------------------------------}
//Variables
//-----------------------------------------------------------------------------{
var ZZ aZZ = ZZ.new(
array.new (maxSize, 0),
array.new (maxSize, 0),
array.new (maxSize, na)
)
bar b = bar.new()
var liq b_liq_B = array.new (1, liq.new(box(na), box(na), box(na), false, false, line(na), line(na)))
var liq b_liq_S = array.new (1, liq.new(box(na), box(na), box(na), false, false, line(na), line(na)))
var b_liq_V = array.new_box()
var int dir = na, var int x1 = na, var float y1 = na, var int x2 = na, var float y2 = na
//-----------------------------------------------------------------------------}
//Functions/methods
//-----------------------------------------------------------------------------{
// @function maintains arrays
// it prepends a `value` to the arrays and removes their oldest element at last position
// @param aZZ (UDT, array, array>) The UDT obejct of arrays
// @param _d (array) The array where the trend direction is maintained
// @param _x (array) The array where the bar index value of pivot high/low is maintained
// @param _y (array) The array where the price value of pivot high/low is maintained
//
// @returns none
method in_out(ZZ aZZ, int _d, int _x, float _y) =>
aZZ.d.unshift(_d), aZZ.x.unshift(_x), aZZ.y.unshift(_y), aZZ.d.pop(), aZZ.x.pop(), aZZ.y.pop()
// @function (build-in) sets the maximum number of bars that is available for historical reference
max_bars_back(time, 1000)
//-----------------------------------------------------------------------------}
//Calculations
//-----------------------------------------------------------------------------{
x2 := b.i - 1
ph = ta.pivothigh(liqLen, 1)
pl = ta.pivotlow (liqLen, 1)
if ph
dir := aZZ.d.get(0)
x1 := aZZ.x.get(0)
y1 := aZZ.y.get(0)
y2 := nz(b.h )
if dir < 1
aZZ.in_out(1, x2, y2)
else
if dir == 1 and ph > y1
aZZ.x.set(0, x2), aZZ.y.set(0, y2)
if per
count = 0
st_P = 0.
st_B = 0
minP = 0.
maxP = 10e6
for i = 0 to maxSize - 1
if aZZ.d.get(i) == 1
if aZZ.y.get(i) > ph + (atr / liqMar)
break
else
if aZZ.y.get(i) > ph - (atr / liqMar) and aZZ.y.get(i) < ph + (atr / liqMar)
count += 1
st_B := aZZ.x.get(i)
st_P := aZZ.y.get(i)
if aZZ.y.get(i) > minP
minP := aZZ.y.get(i)
if aZZ.y.get(i) < maxP
maxP := aZZ.y.get(i)
if count > 2
getB = b_liq_B.get(0)
if st_B == getB.bx.get_left()
getB.bx.set_top(math.avg(minP, maxP) + (atr / liqMar))
getB.bx.set_rightbottom(b.i + 10, math.avg(minP, maxP) - (atr / liqMar))
else
b_liq_B.unshift(
liq.new(
box.new(st_B, math.avg(minP, maxP) + (atr / liqMar), b.i + 10, math.avg(minP, maxP) - (atr / liqMar), bgcolor=color(na), border_color=color(na)),
box.new(na, na, na, na, bgcolor = color(na), border_color = color(na)),
box.new(st_B, st_P, b.i + 10, st_P, text = 'Buyside liquidity', text_size = size.tiny, text_halign = text.align_left, text_valign = text.align_bottom, text_color = color.new(cLIQ_B, 25), bgcolor = color(na), border_color = color(na)),
false,
false,
line.new(st_B , st_P, b.i - 1, st_P, color = color.new(cLIQ_B, 0)),
line.new(b.i - 1, st_P, na , st_P, color = color.new(cLIQ_B, 0), style = line.style_dotted))
)
alert('buyside liquidity level detected/updated for ' + syminfo.ticker)
if b_liq_B.size() > visLiq
getLast = b_liq_B.pop()
getLast.bx.delete()
getLast.bxz.delete()
getLast.bxt.delete()
getLast.ln.delete()
getLast.lne.delete()
if pl
dir := aZZ.d.get (0)
x1 := aZZ.x.get (0)
y1 := aZZ.y.get (0)
y2 := nz(b.l )
if dir > -1
aZZ.in_out(-1, x2, y2)
else
if dir == -1 and pl < y1
aZZ.x.set(0, x2), aZZ.y.set(0, y2)
if per
count = 0
st_P = 0.
st_B = 0
minP = 0.
maxP = 10e6
for i = 0 to maxSize - 1
if aZZ.d.get(i) == -1
if aZZ.y.get(i) < pl - (atr / liqMar)
break
else
if aZZ.y.get(i) > pl - (atr / liqMar) and aZZ.y.get(i) < pl + (atr / liqMar)
count += 1
st_B := aZZ.x.get(i)
st_P := aZZ.y.get(i)
if aZZ.y.get(i) > minP
minP := aZZ.y.get(i)
if aZZ.y.get(i) < maxP
maxP := aZZ.y.get(i)
if count > 2
getB = b_liq_S.get(0)
if st_B == getB.bx.get_left()
getB.bx.set_top(math.avg(minP, maxP) + (atr / liqMar))
getB.bx.set_rightbottom(b.i + 10, math.avg(minP, maxP) - (atr / liqMar))
else
b_liq_S.unshift(
liq.new(
box.new(st_B, math.avg(minP, maxP) + (atr / liqMar), b.i + 10, math.avg(minP, maxP) - (atr / liqMar), bgcolor=color(na), border_color=color(na)),
box.new(na, na, na, na, bgcolor=color(na), border_color=color(na)),
box.new(st_B, st_P, b.i + 10, st_P, text = 'Sellside liquidity', text_size = size.tiny, text_halign = text.align_left, text_valign = text.align_top, text_color = color.new(cLIQ_S, 25), bgcolor=color(na), border_color=color(na)),
false,
false,
line.new(st_B , st_P, b.i - 1, st_P, color = color.new(cLIQ_S, 0)),
line.new(b.i - 1, st_P, na , st_P, color = color.new(cLIQ_S, 0), style = line.style_dotted))
)
alert('sellside liquidity level detected/updated for ' + syminfo.ticker)
if b_liq_S.size() > visLiq
getLast = b_liq_S.pop()
getLast.bx.delete()
getLast.bxz.delete()
getLast.bxt.delete()
getLast.ln.delete()
getLast.lne.delete()
for i = 0 to b_liq_B.size() - 1
x = b_liq_B.get(i)
if not x.brL
x.lne.set_x2(b.i)
if b.h > x.bx.get_top()
x.brL := true
x.brZ := true
alert('buyside liquidity level breached for ' + syminfo.ticker)
x.bxz.set_lefttop(b.i - 1, math.min(x.ln.get_y1() + marBuy * (atr), b.h))
x.bxz.set_rightbottom(b.i + 1, x.ln.get_y1())
x.bxz.set_bgcolor(color.new(cLIQ_B, liqBuy ? 73 : 100))
else if x.brZ
if b.l > x.ln.get_y1() - marBuy * (atr) and b.h < x.ln.get_y1() + marBuy * (atr)
x.bxz.set_right(b.i + 1)
x.bxz.set_top(math.max(b.h, x.bxz.get_top()))
if liqBuy
x.lne.set_x2(b.i + 1)
else
x.brZ := false
for i = 0 to b_liq_S.size() - 1
x = b_liq_S.get(i)
if not x.brL
x.lne.set_x2(b.i)
if b.l < x.bx.get_bottom()
x.brL := true
x.brZ := true
alert('sellside liquidity level breached for ' + syminfo.ticker)
x.bxz.set_lefttop(b.i - 1, x.ln.get_y1())
x.bxz.set_rightbottom(b.i + 1, math.max(x.ln.get_y1() - marSel * (atr), b.l))
x.bxz.set_bgcolor(color.new(cLIQ_S, liqSel ? 73 : 100))
else if x.brZ
if b.l > x.ln.get_y1() - marSel * (atr) and b.h < x.ln.get_y1() + marSel * (atr)
x.bxz.set_rightbottom(b.i + 1, math.min(b.l, x.bxz.get_bottom()))
if liqSel
x.lne.set_x2(b.i + 1)
else
x.brZ := false
if lqVoid and per
bull = b.l - b.h > atr200 and b.l > b.h and b.c > b.h
bear = b.l - b.h > atr200 and b.h < b.l and b.c < b.l
if bull
l = 13
if bull
st = math.abs(b.l - b.l ) / l
for i = 0 to l - 1
array.push(b_liq_V, box.new(b.i - 2, b.l + i * st, b.i, b.l + (i + 1) * st, border_color = na, bgcolor = color.new(cLQV_B, 90) ))
else
st = math.abs(b.l - b.h ) / l
for i = 0 to l - 1
if lqText and i == 0
array.push(b_liq_V, box.new(b.i - 2, b.h + i * st, b.i, b.h + (i + 1) * st, text = 'Liquidity Void ', text_size = size.tiny, text_halign = text.align_right, text_valign = text.align_bottom, text_color = na, border_color = na, bgcolor = color.new(cLQV_B, 90) ))
else
array.push(b_liq_V, box.new(b.i - 2, b.h + i * st, b.i, b.h + (i + 1) * st, border_color = na, bgcolor = color.new(cLQV_B, 90) ))
if bear
l = 13
if bear
st = math.abs(b.h - b.h) / l
for i = 0 to l - 1
array.push(b_liq_V, box.new(b.i - 2, b.h + i * st, b.i, b.h + (i + 1) * st, border_color = na, bgcolor = color.new(cLQV_S, 90) ))
else
st = math.abs(b.l - b.h) / l
for i = 0 to l - 1
if lqText and i == l - 1
array.push(b_liq_V, box.new(b.i - 2, b.h + i * st, b.i, b.h + (i + 1) * st, text = 'Liquidity Void ', text_size = size.tiny, text_halign = text.align_right, text_valign = text.align_top, text_color = na, border_color = na, bgcolor = color.new(cLQV_S, 90) ))
else
array.push(b_liq_V, box.new(b.i - 2, b.h + i * st, b.i, b.h + (i + 1) * st, border_color = na, bgcolor = color.new(cLQV_S, 90) ))
if b_liq_V.size() > 0
qt = b_liq_V.size()
for bn = qt - 1 to 0
if bn < b_liq_V.size()
cb = b_liq_V.get(bn)
ba = math.avg(cb.get_bottom(), cb.get_top())
if math.sign(b.c - ba) != math.sign(b.c - ba) or math.sign(b.c - ba) != math.sign(b.l - ba) or math.sign(b.c - ba) != math.sign(b.h - ba)
b_liq_V.remove(bn)
else
cb.set_right(b.i + 1)
if b.i - cb.get_left() > 21
cb.set_text_color(color.new(color.gray, 25))
//-----------------------------------------------------------------------------}
stock-vs-industry using NQUSB benchmark idexesOriginal idea from Stock versus Industry by Tr33man .
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
═══ PRIMARY IMPROVEMENT: NQUSB Hierarchical Index Benchmarks ═══
The KEY improvement: Multi-Level Industry Granularity with Drill-Down/Drill-Up Navigation
From: Simple ETF Comparison (1 Level) Stock → Industry ETF (e.g., "SOXX" for all semiconductors)
To: NQUSB Hierarchical Comparison (4 Levels)
Level 4 (Primary): NQUSB10102010 → Semiconductors (most specific)
Level 3 (Secondary): NQUSB101020 → Technology Hardware and Equipment
Level 2 (Tertiary): NQUSB101010 → Software and Computer Services
Level 1 (Quaternary): NQUSB10 → Technology (broadest sector)
Users can now drill up and down the industry hierarchy to see how their stock performs against different levels of industry classification!
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
═══ WHY THIS MATTERS ═══
Original Limitations:
Single comparison level - ETF only
No drill-down capability - Can't zoom in to more specific industries
No drill-up capability - Can't zoom out to broader sectors
ETF limitations - Not all industries have dedicated ETFs
Arbitrary mappings - Manual ETF selection may not represent true industry
Improved Capabilities:
4-level hierarchical navigation - Drill-down and drill-up through industry classifications
361 NQUSB official indices - NASDAQ US Benchmark Index structure
Official NASDAQ classification - Industry-standard taxonomy
Large Mid Cap (LM) option - Focus on larger companies when needed
Enhanced UI - Clear level indicators and full index descriptions
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
═══ EXAMPLE: ANALYZING NVDA (Semiconductors) ═══
Level 4 - Primary (Most Specific):
NQUSB10102010 - Semiconductors
→ NVDA vs. AMD, AVGO, QCOM, TXN, etc. (direct competitors)
Level 3 - Secondary (Broader):
NQUSB101020 - Tech Hardware & Equipment
→ NVDA vs. AAPL, CSCO + semiconductors
Level 2 - Tertiary (Even Broader):
NQUSB101010 - Software and Computer Services
→ NVDA vs. all tech hardware
Level 1 - Quaternary (Broadest):
NQUSB10 - Technology Sector
→ NVDA vs. entire technology sector
You can now zoom in to see direct competitors or zoom out to understand macro sector trends - all in one indicator!
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
═══ COMPARISON SUMMARY ═══
Original Version:
Comparison System: Industry ETFs
Industry Levels: 1 (flat ETF mapping)
Total Classifications: ~140 industries
Hierarchy Navigation: ❌ No
Data Source: Manual ETF curation
Improved Version:
Comparison System: NQUSB Official Indices
Industry Levels: 4 (hierarchical drill-down/up)
Total Classifications: 361 NQUSB indices
Hierarchy Navigation: ✅ 4-level drill navigation
Data Source: NASDAQ official taxonomy
Large/Mid Cap Option: ✅ LM variant toggle
Level Indicator: ✅ to labels
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
═══ ADDITIONAL FEATURES ═══
Dual Comparison System - Toggle between ETF mode (original) and Index Benchmark mode (NQUSB hierarchy)
Better Fallback Logic - Manual Override > NQUSB Index > ETF > SPY default
Enhanced Display - 4-row information table with full NQUSB index description
Backward Compatible - All original ETF mappings still work, existing charts won't break
Large Mid Cap Toggle - Optional "LM" suffix for focusing on larger companies only
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
For complete documentation, data files, technical details, and the full NQUSB hierarchy structure, visit the GitHub repository.
The result: More accurate, more flexible, and more comprehensive industry strength analysis - enabling traders to understand exactly where their stock's performance comes from by drilling through multiple levels of industry classification.






















