DA Mark on the wall Well it seems we ran the ball up one more time. i mean Percy is a train , but this thing is insane, Also if you like banter come join the crew discord.gg GREAT channel also free chat
Indikator dan strategi
Idan Moskoבאי/סאייל - עידן מוסקו
אלגוריתם חכם לאיתותי BUY/SELL בלבד על הגרף ✅❌
משלב: ICT (BOS/CHOCH, Order Blocks, Liquidity), FVG/IFVG, Premium/Discount, EMA/MCB, תבניות נרות, וסינון תנודתיות.
איך זה עובד?
➡️ מזהה שבירת מבנה + דחיפה (Displacement)
➡️ בודק אזורי נזילות/OB + מיקום PD (Premium/Discount)
➡️ מאשר עם EMA/MCB/תבניות → מציג BUY או SELL בלבד
טיפים:
לטיימפריים מהירים → Profile: Aggressive
עובד על: 1m / 5m / 15m / 30m / 1H / 4H / 1D
התראות:
🔔 יש התראות מוכנות: “BUY v3” / “SELL v3”
הערה: אין ייעוץ השקעות. מומלץ לאשר עם ניהול סיכונים (SL/TP) 📉📈
Idan Mosko – BUY/SELL
Smart BUY/SELL only ✅❌ using ICT (BOS/CHOCH, OB, Liquidity) + FVG/IFVG, PD, EMA/MCB, and candle patterns.
Modes:
Close-confirmed ✔️ safer
Realtime ⚡ earlier entries
Tips:
Aggressive → more signals • Conservative → cleaner signals.
Works on 1m–1D. Alerts: “BUY v3” / “SELL v3”.
Not financial advice; use proper risk management.
Supertrend with Coppock Curve and Dynamic Time WindowOverview
This indicator combines the **Supertrend** trend-following system with the **Coppock Curve** momentum oscillator to generate high-probability buy and sell signals. An additional **dynamic time window filter** ensures trades only occur during your specified trading hours, making it ideal for intraday traders who want to avoid low-liquidity periods.
How It Works
**Signal Generation:**
- **BUY Signal** (Green label below bar): Triggered when the Coppock Curve crosses above zero, the Supertrend confirms an uptrend, and the current time is within your specified trading window
- **SELL Signal** (Purple label above bar): Triggered when the Coppock Curve crosses below zero, the Supertrend confirms a downtrend, and the current time is within your specified trading window
**Triple Confirmation System:**
1. **Coppock Curve** - Identifies momentum shifts using rate-of-change calculations
2. **Supertrend** - Confirms the prevailing trend direction to filter false signals
3. **Time Window** - Ensures trades only occur during high-liquidity hours
Input Parameters
**Supertrend Settings:**
- **ATR Length** (Default: 19) - Period for calculating the Average True Range
- **Factor** (Default: 3.0) - Multiplier for ATR to determine Supertrend sensitivity
**Time Window Settings (Tehran Time UTC+3:30):**
- **Start Hour/Minute** (Default: 10:30) - Beginning of active trading window
- **End Hour/Minute** (Default: 22:30) - End of active trading window
Best Practices
- Works best on **trending markets** due to the Supertrend filter
- Recommended timeframes: **15min, 30min, 1H, 4H**
- Lower the Factor value (2.0-2.5) for more signals in volatile markets
- Increase the Factor value (3.5-4.0) for fewer, higher-quality signals in ranging markets
- Adjust the time window to match your market's peak liquidity hours
Risk Disclaimer
This indicator is for educational purposes only. Always use proper risk management, position sizing, and combine with your own analysis before making trading decisions.
Spooky Time (10/31/25) [VTB]Get ready to add some eerie fun to your charts this Halloween! "Spooky Time" is a lighthearted indicator that draws a festive, animated Halloween scene right on your TradingView chart. Perfect for traders who want to celebrate the spooky season without missing a beat on the markets. Whether you're analyzing stocks, crypto, or forex, this overlay brings a touch of holiday spirit to your setup.
#### Key Features:
- **Jack-o'-Lantern Pumpkin**: A detailed, glowing pumpkin with carved eyes, nose, and a jagged mouth. The eyes and mouth cycle through black (off), yellow, and red glows for a subtle animation effect, giving it that classic haunted vibe.
- **Flickering Candle**: A wax candle with a wick and an animated flame that shifts positions slightly across three frames, mimicking a real flickering light. The flame color changes between yellow, red, and orange for added dynamism.
- **Spider Web and Spider**: A spiral web with radial lines, complete with a creepy-crawly spider. The spider's legs animate with small movements, as if it's ready to pounce—perfect for that extra spooky touch!
- **Customization Options**: Toggle the "Desiringmachine" label on/off, choose its position on the chart (e.g., Bottom Center), and select the text color. The entire scene is positioned relative to the chart's open price and ATR for better scaling.
- **Animation Cycle**: The whole setup uses a simple 3-frame animation based on bar_index, making it feel alive without overwhelming your chart.
This indicator is purely visual and non-intrusive—it doesn't plot any trading signals or data, so it won't interfere with your strategies. Just add it to your chart for some Halloween cheer during your trading sessions!
**Date Note**: Timed for Halloween 2025 (10/31/25)—feel the spooky energy!
**Happy Halloween!!!** 🎃👻🕸️
Buying/Selling PressureBuying/Selling Pressure - Volume-Based Market Sentiment
Buying/Selling Pressure identifies market dominance by separating volume into buying and selling components. The indicator uses Volume ATR normalization to create a universal pressure oscillator that works consistently across all markets and timeframes.
What is Buying/Selling Pressure?
This indicator answers a fundamental question: Are buyers or sellers in control? By analyzing how volume distributes within each bar, it calculates cumulative buying and selling pressure, then normalizes the result using Volume ATR for cross-market comparability.
Formula: × 100
Where Delta = Buying Volume - Selling Volume
Calculation Methods
Money Flow (Recommended):
Volume weighted by close position in bar range. Close near high = buying pressure, close near low = selling pressure.
Formula: / (high - low)
Simple Delta:
Basic approach where bullish bars = 100% buying, bearish bars = 100% selling.
Weighted Delta:
Volume weighted by body size relative to total range, focusing on candle strength.
Key Features
Volume ATR Normalization: Adapts to volume volatility for consistent readings across assets
Cumulative Delta: Tracks net buying/selling pressure over time (similar to OBV)
Signal Line: EMA smoothing for trend identification and crossover signals
Zero Line: Clear visual separation between buyer and seller dominance
Color-Coded Display: Green area = buyers control, red area = sellers control
Interpretation
Above Zero: Buyers dominating - cumulative buying pressure exceeds selling
Below Zero: Sellers dominating - cumulative selling pressure exceeds buying
Cross Signal Line: Momentum shift - pressure trend changing direction
Increasing Magnitude: Strengthening pressure in current direction
Decreasing Magnitude: Weakening pressure, potential reversal
Volume vs Pressure
High volume with low pressure indicates balanced battle between buyers and sellers. High pressure with high volume confirms strong directional conviction. This separation provides insights beyond traditional volume analysis.
Best Practices
Use with price action for confirmation
Divergences signal potential reversals (price makes new high/low but pressure doesn't)
Large volume with near-zero pressure = indecision, breakout preparation
Signal line crossovers provide momentum change signals
Extreme readings suggest potential exhaustion
Settings
Calculation Method: Choose Money Flow, Simple Delta, or Weighted Delta
EMA Length: Period for cumulative delta smoothing (default: 21)
Signal Line: Optional EMA of oscillator for crossover signals (default: 9)
Buying/Selling Pressure transforms volume analysis into actionable market sentiment, revealing whether buyers or sellers control price action beneath surface volatility.
This indicator is designed for educational and analytical purposes. Past performance does not guarantee future results. Always conduct thorough research and consider consulting with financial professionals before making investment decisions.
Futures Gann MonthBuilds a a continuous chart of the same month for a futures contract (e.g. ZSH2026).
This means such a chart consists of March '22, March '23, March '24, March '25, March '26...
The script goes back 20 years at most (depending on the current ticker selected in TradingView).
Opposing Candle V1Opposing Candle Indicator Summary:
This indicator detects engulfing candles (where the current candle's high is above the previous candle's high AND the low is below the previous candle's low) across multiple trading sessions.
Key Features:
Multi-timeframe detection - Works on any timeframe you set (default 15min)
Session filtering - Detects opposing candles during Q1-Q4 of four major sessions: Asia, London, NYAM, and NYPM
Visual representation - Draws colored boxes (green for bullish, red for bearish) with extension lines showing:
High line
Low line
Midline (dotted white)
Open line (black)
Customizable - Adjust box/line extensions, colors, line widths, and max number of candles displayed
Optional labels - Can show session names and timeframe on each detection
Status table - Displays current settings in top-right corner
Alerts - Notifies when new opposing candles are detected
What it does: Helps identify potential support/resistance zones created by strong engulfing price action during key trading hours, with the open price highlighted as an additional reference level.
VLATMIR LOOTINWell THB i have never coded before this is my first crack at td9. TBH this was first a trend and Candle but we adding stay around have fun > thank you thomas < AKA ASIAN FRANK<
CCI [Hash Adaptive]Adaptive CCI Pro: Professional Technical Analysis Indicator
The Commodity Channel Index is a momentum oscillator developed by Donald Lambert in 1980. CCI measures the relationship between an asset's price and its statistical average, identifying cyclical turns and overbought/oversold conditions. The indicator oscillates around zero, with values above +100 indicating overbought conditions and values below -100 suggesting oversold conditions.
Standard CCI Formula: (Typical Price - Moving Average) / (0.015 × Mean Deviation)
This indicator transforms the traditional CCI into a sophisticated visual analysis tool through several key enhancements:
Implements dual exponential moving average smoothing to eliminate market noise
Preserves signal integrity while reducing false signals
Adaptive smoothing responds to market volatility conditions
Dynamic Color Visualization System
Continuous gradient transitions from red (bearish momentum) to green (bullish momentum)
Real-time color intensity reflects momentum strength
Eliminates discrete color jumps for fluid visual interpretation
Adaptive Intelligence Features
Dynamic overbought/oversold thresholds adapt to market conditions
Reduces false signals during high volatility periods
Maintains sensitivity during low volatility environments
Momentum Vector Analysis
Incorporates velocity calculations for early trend identification
Crossover detection with momentum confirmation
Advanced signal filtering reduces market noise
Extreme Level Analysis
Values above +100: Strong overbought conditions, potential reversal zones
Values below -100: Strong oversold conditions, potential buying opportunities
Zero-line crossovers: Momentum shift confirmation
Optimization Parameters
CCI Period (Default: 14)
Shorter periods (10-12): Increased sensitivity, more signals
Standard periods (14-20): Balanced responsiveness and reliability
Longer periods (21-30): Reduced noise, stronger signal confirmation
Smoothing Factor (Default: 5)
Lower values (1-3): Maximum responsiveness, suitable for scalping
Medium values (4-6): Balanced approach for swing trading
Higher values (7-10): Institutional-grade smoothness for position trading
Signal Sensitivity (Default: 6)
Conservative (7-10): High-probability signals, reduced frequency
Balanced (5-6): Optimal risk-reward ratio
Aggressive (1-4): Maximum signal generation, requires additional confirmation
Strategic Implementation
Oversold reversals in red zones with momentum confirmation
Zero-line breaks with sustained color transitions
Extreme readings followed by momentum divergence
Risk Management
Use extreme levels (+100/-100) for position sizing decisions
Monitor color intensity for momentum strength assessment
Combine with price action analysis for comprehensive market view
Market Context Application
Trending markets: Focus on momentum direction and extreme readings
Range-bound markets: Utilize overbought/oversold levels for mean reversion
Volatile markets: Increase smoothing parameters and signal sensitivity
Professional Advantages
Instantaneous momentum assessment through color visualization
Reduced cognitive load compared to traditional oscillators
Professional presentation suitable for client reporting
Adaptive Technology
Self-adjusting parameters reduce manual optimization requirements
Consistent performance across varying market conditions
Advanced mathematics eliminate common CCI limitations
The Adaptive CCI Pro represents the evolution of momentum analysis, combining Lambert's foundational CCI concept with modern computational techniques to deliver institutional-grade market intelligence through an intuitive visual interface.
27 ALERT INFY EQ | Manual JSON Only//@version=6
indicator("27 ALERT INFY EQ | Manual JSON Only", overlay=true)
//────────────────────────────────────────────
// 🔧 USER INPUTS
//────────────────────────────────────────────
symbol_name = input.string("INFY", "Equity Symbol (for labels only)")
tradeMode = input.string("Intraday", "Trade Mode (for dashboard)", options= )
// Paste your exact Dhan payloads below (must be single-line strings)
json_buy = input.string('{"secret":"hWMIU","alertType":"multi_leg_order","order_legs": }', "BUY JSON Script")
json_sell = input.string('{"secret":"hWMIU","alertType":"multi_leg_order","order_legs": }', "SELL JSON Script")
//────────────────────────────────────────────
// 📊 SIGNAL LOGIC (Heikin Ashi + MACD)
//────────────────────────────────────────────
ha_close = (open + high + low + close) / 4.0
var float ha_open = na
ha_open := na(ha_open ) ? (open + close)/2.0 : (ha_open + ha_close )/2.0
isBull = ha_close > ha_open
isBear = ha_close < ha_open
= ta.macd(close, 12, 26, 9)
macdBull = macdLine > signalLine
macdBear = macdLine < signalLine
//────────────────────────────────────────────
// 🚀 ENTRY / EXIT (One-Candle Confirmation)
//────────────────────────────────────────────
var bool inTrade = false
var string lastEvent = "Waiting..."
buyCondition = isBull and macdBull and not inTrade
sellCondition = isBear and macdBear and inTrade
if buyCondition
inTrade := true
lastEvent := "BUY"
label.new(bar_index, low, "🟢 BUY " + symbol_name, style=label.style_label_up, color=color.new(color.green, 0))
alert(json_buy, alert.freq_once_per_bar_close)
if sellCondition
inTrade := false
lastEvent := "SELL"
label.new(bar_index, high, "🔴 SELL " + symbol_name, style=label.style_label_down, color=color.new(color.red, 0))
alert(json_sell, alert.freq_once_per_bar_close)
//────────────────────────────────────────────
// 🧭 DASHBOARD
//────────────────────────────────────────────
var table dash = table.new(position.top_right, 2, 6, border_width=1)
if barstate.isfirst
table.cell(dash, 0, 0, "📊 " + symbol_name + " EQ", bgcolor=color.new(color.black, 60), text_color=color.white)
table.cell(dash, 0, 1, "Symbol")
table.cell(dash, 0, 2, "Position")
table.cell(dash, 0, 3, "Trend")
table.cell(dash, 0, 4, "Mode")
table.cell(dash, 0, 5, "Alert Type")
trendTxt = isBull ? "BULLISH" : isBear ? "BEARISH" : "NEUTRAL"
if barstate.islast
table.cell(dash, 1, 1, symbol_name)
table.cell(dash, 1, 2, inTrade ? "LONG" : "FLAT")
table.cell(dash, 1, 3, trendTxt)
table.cell(dash, 1, 4, tradeMode)
table.cell(dash, 1, 5, "MANUAL JSON")
AQuantPrice Dashboard - Small Timeframes ALL IN ONE//naman tiwari//
Indicator Title:
Aquantprice: All in One – The Ultimate Money Zone, Pivot Boss & Mind Over Markets Quant Masterpiece
Indicator Description (for TradingView Script Publishing):
The Holy Grail of Quant Trading is Here – Aquantprice's All in One, by Nmn0708!
This free, all-encompassing quant dashboard fuses the secrets of Pivot Boss, Mind Over Markets, Volume Profile mastery, and institutional Money Zone logic into one unstoppable tool. Built for traders at every level, it synthesizes multi-timeframe trend validation, rolling POC/VAH/VAL, CPR pivots, Camarilla H3/L3, two-day value shifts, wick reversals, risk-reward calculations, and bias shift detection — all in clean, color-coded tables. No more juggling indicators. No more guesswork. Just highest quant confirmation for entries, exits, and trend alignment.
Why This is the Final Dashboard You’ll Ever Need:
Multi-Timeframe Trend Validators (1min to Monthly): 15 buy / 13 sell conditions using CPR pivots, weighted closes, and Camarilla logic — signals "BUY"/"SELL" only when threshold met.
Dip Buying & Sell Validators (Daily/Weekly/Monthly): 15-condition engine with ✔/✖ breakdown for long-term swing precision.
Two-Day Pivot Dashboard: Tracks CPR, POC, VAH/VAL, H3/L3 + exclusive two-day value shift ("Higher/Lower/Unchanged Value") — Pivot Boss on steroids.
Mind Over Markets Bias Engine: Detects "Initiative Buy/Sell," "Neutral," or "Rising Pivot, Weak Open" using rolling POC and neutral zone — pure institutional psychology.
Wick Reversal & Pattern Detection: Identifies Bull/Bear Wicks, Dojis, Outside Bars, and Extreme candles near pivot touches.
Risk-Reward & Target Projection: Auto-calculates RR ratios (min 2.0), next pivot targets, and entry zones (S1, R1, POC, etc.).
Quant Bias Summary: Weighted multi-TF aggregation delivers final verdict: Strong Buy → Buy → Neutral → Sell → Strong Sell.
Customizable Everything: Thresholds, timeframes, decimals, font size, table positions, novice mode — built for your style.
Inspired by the Legends:
Pivot Boss (CPR, floor trader pivots)
Mind Over Markets (initiative bias, POC psychology)
Volume Profile (value areas, institutional zones)
Camarilla (range-based breakout levels)
How to Use (3 Steps to Mastery):
Add to Chart → Instantly see all dashboards (overlay + tables).
Scan Summary → "Strong Buy" + "Initiative Buy" + RR > 2.0? Enter at Buy Levels (e.g., S1/POC).
Confirm & Execute → Use volume spike + wick reversal for Money Zone confirmation.
Backtested Edge: 65–72% win rate in trending markets, 60%+ in range-bound (when filtering with GPZ/POC).
Free to the World from Nmn0708 (Aquantprice) — the final piece in your quant toolkit. Pair with YouTube breakdowns for live trade walkthroughs, backtests, and secret setups.
Like, Follow, Share Your Wins!
Subscribe to @Aquantprice on YouTube for:
Live trade demos
Backtest proof
Deep dives into Pivot Boss, Mind Over Markets, and Money Zone mastery
Early access to next-gen tools
XAUUSD 5m — NY Supertrend+RSI Optimizer (1:2 RR) — $240k/orderThis strategy is built for XAUUSD (Gold) on the 5-minute timeframe, focusing exclusively on the New York trading session (08:00–17:00 NY time) — the most volatile and liquid hours of the day.
It combines a Supertrend trend filter with RSI momentum signals to identify high-probability entries, using a 1:2 risk–reward ratio for disciplined trade management.
🧠 Strategy Logic:
Buy Condition: RSI crosses above 55 while Supertrend indicates an uptrend
Sell Condition: RSI crosses below 45 while Supertrend indicates a downtrend
Session Filter: Trades only between 08:00 → 17:00 New York time
Risk/Reward: 1:2 (Take-Profit = 2× Stop-Loss distance from Supertrend line)
Position Size: $240,000 notional per order
Auto-Exit: Closes all trades at NY session end
⚡ Highlights:
Targets NY session volatility
Combines trend + momentum for cleaner entries
Strict 1:2 RR for consistent outcomes
Avoids overnight exposure
⚠️ Disclaimer:
This script is intended for educational and research purposes only.
Past performance is not indicative of future results.
Always forward-test on demo before using live capital.
RSI MT5-Style RSI Zones (20/30/70/80) with Signals & Alerts
Description (English first)
What it does
This script reproduces an MT5-style RSI with four-level zones (20/30/70/80) to better distinguish early/late overbought-oversold conditions. It highlights zone transitions, plots optional background shading, and triggers entry/exit alerts on precise crossings.
How it works (high-level logic)
Core is Wilder’s RSI on close (length = ).
Two oversold bands at 20 and 30; two overbought bands at 70 and 80.
Optional smoothing (), and MTF confirmation (optional) compares current RSI vs a higher timeframe RSI.
Signals:
Long setup: RSI crosses above 20 (early) or 30 (conservative); confirmation if higher-TF RSI is rising.
Take-profit / exit: RSI fails to hold above 70 or crosses below 70 after being >80.
Short setup: mirror logic with 70/80 → 30/20.
Inputs
RSI Length (<14>), Source (close)
Upper Bands (70, 80), Lower Bands (30, 20)
Smoothing ( on RSI, optional)
Higher Timeframe (), Confirm with HTF (on/off)
Background Zones (on/off), Alerts (on/off)
How to use
Choose your market/timeframe. For FX/indices, M5–H1 works well; for swing, H1–H4.
Pick your aggressiveness: use 20/80 for early reversals, 30/70 for conservative trend pullbacks.
With MTF confirmation on, prioritize entries aligned with the higher timeframe RSI slope.
Combine with structure (S/R) or a simple MA filter for trend direction.
Originality & usefulness
Unlike generic RSI scripts, this version provides dual-zone logic (20/30/70/80) with clear visual states, optional HTF confirmation, and ready-made alerts designed to match MetaTrader-like RSI workflows. It is not a direct clone of public open-source scripts; zone handling and alert conditions are purpose-built for timing pullbacks vs. extremes.
Best markets & limitations
Works on FX, gold (XAUUSD), and indices (US30/NAS100).
In strong trends, overbought/oversold can persist—use bands as context, not standalone signals.
Spikes around news can cause false triggers—consider widening bands or disabling trades near events.
Alerts included
RSI Crosses Above 20, RSI Crosses Above 30
RSI Crosses Below 70, RSI Crosses Below 80
MTF Confirmed Long/Short (optional)
User interface translations (if your UI is in Spanish)
RSI Length → Periodo RSI
Upper Bands → Bandas Superiores
Lower Bands → Bandas Inferiores
Smoothing → Suavizado
Higher Timeframe → Marco Temporal Superior
Confirm with HTF → Confirmar con MTS
Background Zones → Zonas de Fondo
Alerts → Alertas
Disclaimer
This tool is for educational purposes. Not financial advice.
EMA6 or SMA6 Touch AlertThis script monitors the market and notifies you whenever the price touches either the 6-period EMA or the 6-period SMA.
It helps identify potential pullbacks, reaction points, or entry zones, as price interaction with these moving averages often signals short-term market shifts.
What the script does:
Calculates the EMA 6 and SMA 6
Detects if price touches either moving average within the candle
Plots both lines on the chart for visibility
Allows you to set alerts to receive automatic notifications
Best suited for:
Scalping
Day Trading
Pullback Entries
Short-term trend reactions
Liquidity & SMT Detector//@version=5
indicator("Liquidity & SMT Detector", overlay=true, max_lines_count=500, max_labels_count=500)
// ============================================
// INPUT SETTINGS
// ============================================
// Group 1: Liquidity Detection
swing_length = input.int(15, "Swing Length", minval=5, maxval=50, group="Liquidity Detection")
swing_strength = input.int(3, "Swing Strength (bars clear)", minval=1, maxval=10, group="Liquidity Detection")
max_lines = input.int(10, "Max Lines Displayed", minval=3, maxval=50, group="Liquidity Detection")
line_color_high = input.color(color.red, "High Line Color", group="Liquidity Detection")
line_color_low = input.color(color.green, "Low Line Color", group="Liquidity Detection")
line_width = input.int(2, "Line Width", minval=1, maxval=5, group="Liquidity Detection")
show_labels = input.bool(true, "Show H/L Labels", group="Liquidity Detection")
// Group 2: Displacement Detection
enable_displacement = input.bool(true, "Enable Displacement Detection", group="Displacement")
displacement_min_points = input.float(10.0, "Min Points Move", minval=1.0, maxval=100.0, step=1.0, group="Displacement")
displacement_multiplier = input.float(3.0, "Size Multiplier", minval=2.0, maxval=10.0, step=0.5, group="Displacement")
displacement_period = input.int(30, "Average Period", minval=10, maxval=100, group="Displacement")
displacement_color_bull = input.color(color.new(color.aqua, 70), "Bullish Color", group="Displacement")
displacement_color_bear = input.color(color.new(color.orange, 70), "Bearish Color", group="Displacement")
show_displacement_label = input.bool(true, "Show Labels", group="Displacement")
// Group 3: SMT Detection
enable_smt = input.bool(true, "Enable SMT Detection", group="SMT Divergence")
nq_symbol = input.string("NQ1!", "Nasdaq Symbol", group="SMT Divergence")
es_symbol = input.string("ES1!", "S&P500 Symbol", group="SMT Divergence")
smt_lookback = input.int(20, "Lookback Period", minval=5, maxval=100, group="SMT Divergence")
smt_line_color = input.color(color.yellow, "SMT Line Color", group="SMT Divergence")
smt_text_color = input.color(color.yellow, "SMT Text Color", group="SMT Divergence")
// Group 4: Consolidation Zone
enable_consolidation = input.bool(true, "Enable Consolidation Zone", group="Consolidation")
consol_lookback = input.int(10, "Lookback Period", minval=5, maxval=50, group="Consolidation")
consol_range_percent = input.float(0.5, "Max Range %", minval=0.1, maxval=2.0, step=0.1, group="Consolidation")
consol_vol_threshold = input.float(0.7, "Volume Threshold", minval=0.3, maxval=1.0, step=0.1, group="Consolidation")
consol_color = input.color(color.new(color.red, 85), "Zone Color", group="Consolidation")
// ============================================
// ARRAYS FOR LINE/LABEL MANAGEMENT
// ============================================
var line high_lines = array.new_line()
var line low_lines = array.new_line()
var label high_labels = array.new_label()
var label low_labels = array.new_label()
var float high_levels = array.new_float()
var float low_levels = array.new_float()
var line smt_lines = array.new_line()
var label smt_labels = array.new_label()
var float smt_nq_levels = array.new_float()
var float smt_es_levels = array.new_float()
var bool smt_nq_lower = array.new_bool()
// ============================================
// FUNCTION: DETECT SWING HIGHS (STRONGER)
// ============================================
isSwingHigh(len, strength) =>
is_pivot = true
pivot_high = high
for i = 1 to strength
if high >= pivot_high or high >= pivot_high
is_pivot := false
break
if is_pivot
for i = strength + 1 to len
if high > pivot_high or high > pivot_high
is_pivot := false
break
is_pivot
// ============================================
// FUNCTION: DETECT SWING LOWS (STRONGER)
// ============================================
isSwingLow(len, strength) =>
is_pivot = true
pivot_low = low
for i = 1 to strength
if low <= pivot_low or low <= pivot_low
is_pivot := false
break
if is_pivot
for i = strength + 1 to len
if low < pivot_low or low < pivot_low
is_pivot := false
break
is_pivot
// ============================================
// SWING HIGH DETECTION & LINE DRAWING
// ============================================
if isSwingHigh(swing_length, swing_strength)
swing_high = high
new_line = line.new(bar_index - swing_length, swing_high, bar_index, swing_high, color=line_color_high, width=line_width, style=line.style_dashed)
array.push(high_lines, new_line)
array.push(high_levels, swing_high)
if show_labels
new_label = label.new(bar_index - swing_length, swing_high, "H", color=color.new(line_color_high, 80), textcolor=line_color_high, style=label.style_label_down, size=size.small)
array.push(high_labels, new_label)
if array.size(high_lines) > max_lines
line.delete(array.shift(high_lines))
array.shift(high_levels)
if show_labels and array.size(high_labels) > 0
label.delete(array.shift(high_labels))
// ============================================
// SWING LOW DETECTION & LINE DRAWING
// ============================================
if isSwingLow(swing_length, swing_strength)
swing_low = low
new_line = line.new(bar_index - swing_length, swing_low, bar_index, swing_low, color=line_color_low, width=line_width, style=line.style_dashed)
array.push(low_lines, new_line)
array.push(low_levels, swing_low)
if show_labels
new_label = label.new(bar_index - swing_length, swing_low, "L", color=color.new(line_color_low, 80), textcolor=line_color_low, style=label.style_label_up, size=size.small)
array.push(low_labels, new_label)
if array.size(low_lines) > max_lines
line.delete(array.shift(low_lines))
array.shift(low_levels)
if show_labels and array.size(low_labels) > 0
label.delete(array.shift(low_labels))
// ============================================
// UPDATE EXISTING LINES & CHECK FOR SWEEPS
// ============================================
if array.size(high_lines) > 0
for i = array.size(high_lines) - 1 to 0
current_line = array.get(high_lines, i)
current_level = array.get(high_levels, i)
if close > current_level
line.delete(current_line)
array.remove(high_lines, i)
array.remove(high_levels, i)
if show_labels and i < array.size(high_labels)
label.delete(array.get(high_labels, i))
array.remove(high_labels, i)
else
line.set_x2(current_line, bar_index)
if array.size(low_lines) > 0
for i = array.size(low_lines) - 1 to 0
current_line = array.get(low_lines, i)
current_level = array.get(low_levels, i)
if close < current_level
line.delete(current_line)
array.remove(low_lines, i)
array.remove(low_levels, i)
if show_labels and i < array.size(low_labels)
label.delete(array.get(low_labels, i))
array.remove(low_labels, i)
else
line.set_x2(current_line, bar_index)
// ============================================
// DISPLACEMENT CANDLE DETECTION
// ============================================
body_size = math.abs(close - open)
avg_body = ta.sma(math.abs(close - open), displacement_period)
candle_range = high - low
points_moved = body_size
is_min_points = points_moved >= displacement_min_points
is_strong_body = body_size > (avg_body * displacement_multiplier)
is_impulsive = body_size > (candle_range * 0.6)
is_displacement = enable_displacement and is_min_points and is_strong_body and is_impulsive
is_bullish = close > open
bgcolor(is_displacement ? (is_bullish ? displacement_color_bull : displacement_color_bear) : na)
if is_displacement and show_displacement_label
label.new(bar_index, is_bullish ? low : low, "D", color=color.new(is_bullish ? color.aqua : color.orange, 50), textcolor=is_bullish ? color.aqua : color.orange, style=label.style_label_down, size=size.small, yloc=yloc.belowbar)
// ============================================
// CONSOLIDATION ZONE DETECTION
// ============================================
consol_highest = ta.highest(high, consol_lookback)
consol_lowest = ta.lowest(low, consol_lookback)
consol_range = consol_highest - consol_lowest
consol_range_pct = (consol_range / close) * 100
consol_avg_volume = ta.sma(volume, consol_lookback)
consol_current_vol = ta.sma(volume, math.min(consol_lookback, bar_index + 1))
consol_low_volume = consol_current_vol < (consol_avg_volume * consol_vol_threshold)
consol_body_sizes = array.new_float()
for i = 0 to math.min(consol_lookback - 1, bar_index)
array.push(consol_body_sizes, math.abs(close - open ))
consol_avg_body = array.avg(consol_body_sizes)
consol_overall_avg = ta.sma(math.abs(close - open), 50)
consol_small_candles = consol_avg_body < (consol_overall_avg * 0.7)
consol_tight_range = consol_range_pct <= consol_range_percent
is_consolidation = enable_consolidation and consol_tight_range and consol_low_volume and consol_small_candles
bgcolor(is_consolidation ? consol_color : na, title="Consolidation Zone")
// ============================================
// SMT DIVERGENCE DETECTION
// ============================================
current_symbol = syminfo.ticker
comparison_symbol = str.contains(current_symbol, "NQ") ? es_symbol : nq_symbol
comparison_high = request.security(comparison_symbol, timeframe.period, high, lookahead=barmerge.lookahead_off)
comparison_low = request.security(comparison_symbol, timeframe.period, low, lookahead=barmerge.lookahead_off)
var float prev_current_low = na
var float prev_comparison_low = na
var int prev_swing_bar = na
current_is_swing_low = isSwingLow(swing_length, swing_strength)
comparison_is_swing_low = ta.lowestbars(comparison_low, swing_length * 2 + 1) == -swing_length
if enable_smt and current_is_swing_low
current_swing_low = low
comparison_swing_low = comparison_low
if not na(prev_current_low) and not na(prev_comparison_low)
current_lower = current_swing_low < prev_current_low
comparison_lower = comparison_swing_low < prev_comparison_low
is_smt = (current_lower and not comparison_lower) or (not current_lower and comparison_lower)
if is_smt
smt_line = line.new(prev_swing_bar, prev_current_low, bar_index - swing_length, current_swing_low, color=smt_line_color, width=2, style=line.style_solid)
mid_bar = math.round((prev_swing_bar + bar_index - swing_length) / 2)
mid_price = (prev_current_low + current_swing_low) / 2
smt_label = label.new(mid_bar, mid_price, "SMT", color=color.new(smt_line_color, 80), textcolor=smt_text_color, style=label.style_label_center, size=size.normal)
array.push(smt_lines, smt_line)
array.push(smt_labels, smt_label)
array.push(smt_nq_levels, str.contains(current_symbol, "NQ") ? current_swing_low : comparison_swing_low)
array.push(smt_es_levels, str.contains(current_symbol, "NQ") ? comparison_swing_low : current_swing_low)
array.push(smt_nq_lower, str.contains(current_symbol, "NQ") ? current_lower : comparison_lower)
prev_current_low := current_swing_low
prev_comparison_low := comparison_swing_low
prev_swing_bar := bar_index - swing_length
if enable_smt and array.size(smt_lines) > 0
for i = array.size(smt_lines) - 1 to 0
nq_level = array.get(smt_nq_levels, i)
es_level = array.get(smt_es_levels, i)
nq_was_lower = array.get(smt_nq_lower, i)
current_nq_low = str.contains(current_symbol, "NQ") ? low : comparison_low
current_es_low = str.contains(current_symbol, "NQ") ? comparison_low : low
es_now_lower = current_es_low < es_level
nq_now_lower = current_nq_low < nq_level
smt_invalidated = (nq_was_lower and es_now_lower) or (not nq_was_lower and nq_now_lower)
if smt_invalidated
line.delete(array.get(smt_lines, i))
label.delete(array.get(smt_labels, i))
array.remove(smt_lines, i)
array.remove(smt_labels, i)
array.remove(smt_nq_levels, i)
array.remove(smt_es_levels, i)
array.remove(smt_nq_lower, i)
// ============================================
// ALERTS
// ============================================
alertcondition(array.size(high_lines) < array.size(high_lines) , title="Liquidity Sweep High", message="High liquidity swept at {{close}}")
alertcondition(array.size(low_lines) < array.size(low_lines) , title="Liquidity Sweep Low", message="Low liquidity swept at {{close}}")
alertcondition(is_displacement, title="Displacement Candle", message="Displacement candle detected at {{close}}")
alertcondition(is_consolidation, title="Consolidation Zone", message="Market entering consolidation at {{close}}")
NY Open 5 minute Range (5m Box Extended)Draws a box around the first 5 minute candle for the New York session.
Liquidity Sweep & Reversal — Body Anchored + Risk (v6)Overview
The Liquidity Sweep & Reversal — Locked to Price (v6) indicator identifies liquidity sweeps around major swing highs and lows, confirming reversals when price closes back inside the swept level.
All signals are locked to price (bottom of green candle for BUY, top of red candle for SELL), so they remain perfectly aligned when zooming or scaling.
This indicator is ideal for swing traders and scalpers who trade reversals, liquidity events, and reclaim structures.
How It Works
Detects confirmed swing highs and lows using a pivot-based structure.
Waits for a liquidity sweep — when price wicks beyond a recent swing.
Confirms a reclaim when price closes back inside the previous swing level.
Triggers a BUY or SELL signal anchored to the candle body.
Automatically calculates stop loss and risk using ATR and your inputs.
Input Settings
Swing Detection
Swing Detection Strength: How many bars confirm a swing pivot. Higher = stronger swings.
Bars to Confirm Reclaim: Number of bars after a sweep for price to close back within the swing zone.
Swing Proximity %: How close price must come to a swing to count as a liquidity sweep.
Trend Filter (optional)
Use EMA Trend Filter: When enabled, only BUY in uptrend and SELL in downtrend.
Fast EMA Length / Slow EMA Length: Define EMAs used to detect trend direction.
Risk & Stop Management
ATR Length: Period for ATR calculation (volatility measurement).
Base ATR Stop Buffer (x ATR): Distance of stop loss from entry based on ATR multiplier.
Position Size (quote units): Your total position size in quote currency (e.g., USDT).
Risk % of (Position / 20): Defines how much of your position to risk per trade.
Example: (Position / 20) × Risk % = per-trade risk.
Chart Elements
BUY Arrow (green): Appears after a liquidity sweep and reclaim near a swing low.
SELL Arrow (red): Appears after a sweep and reclaim near a swing high.
Labels: Display entry price, stop loss (SL), and calculated risk dollar value.
EMAs: Optional fast/slow moving averages for directional bias.
Dynamic Stops: Adjust automatically using ATR × risk settings.
Trading Tips
Use BUY signals near liquidity sweeps under swing lows.
Use SELL signals near liquidity sweeps above swing highs.
Adjust swing length for different timeframes:
Lower values for scalping (3–5)
Higher values for swing trading (7–10)
Respect stop loss levels and use risk control settings for consistent sizing.
Combine with volume, OBV, or structure for confirmation.
Alerts
BUY — Locked to Price: "BUY: swing low reclaimed with dynamic stop."
SELL — Locked to Price: "SELL: swing high reclaimed with dynamic stop."
Best Use Cases
Liquidity-based reversals
Swing entry confirmation
Stop hunt reclaims
Structure-based entries
Author
Created by @roccodallas
For traders who value clean structure, risk control, and chart precision.
EMA21 ATR Extension with MetricsThis will show the EMA21 with 0.5 ATR as support. With overbought area 2ATR-2.5ATR. It also has 1.5X daily point
Liquidity & SMT Detector//@version=5
indicator("Liquidity & SMT Detector", overlay=true, max_lines_count=500, max_labels_count=500)
// ============================================
// INPUT SETTINGS
// ============================================
// Group 1: Liquidity Detection
swing_length = input.int(10, "Swing Length", minval=3, maxval=50, group="Liquidity Detection")
line_color_high = input.color(color.red, "High Line Color", group="Liquidity Detection")
line_color_low = input.color(color.green, "Low Line Color", group="Liquidity Detection")
line_width = input.int(2, "Line Width", minval=1, maxval=5, group="Liquidity Detection")
show_labels = input.bool(true, "Show H/L Labels", group="Liquidity Detection")
// Group 2: Displacement Detection
enable_displacement = input.bool(true, "Enable Displacement Detection", group="Displacement")
displacement_multiplier = input.float(2.0, "Size Multiplier", minval=1.5, maxval=5.0, step=0.1, group="Displacement")
displacement_period = input.int(20, "Average Period", minval=10, maxval=50, group="Displacement")
displacement_color_bull = input.color(color.new(color.aqua, 70), "Bullish Color", group="Displacement")
displacement_color_bear = input.color(color.new(color.orange, 70), "Bearish Color", group="Displacement")
show_displacement_label = input.bool(true, "Show Labels", group="Displacement")
// Group 3: SMT Detection
enable_smt = input.bool(true, "Enable SMT Detection", group="SMT Divergence")
nq_symbol = input.string("NQ1!", "Nasdaq Symbol", group="SMT Divergence")
es_symbol = input.string("ES1!", "S&P500 Symbol", group="SMT Divergence")
smt_lookback = input.int(20, "Lookback Period", minval=5, maxval=100, group="SMT Divergence")
smt_line_color = input.color(color.yellow, "SMT Line Color", group="SMT Divergence")
smt_text_color = input.color(color.yellow, "SMT Text Color", group="SMT Divergence")
// ============================================
// ARRAYS FOR LINE/LABEL MANAGEMENT
// ============================================
var line high_lines = array.new_line()
var line low_lines = array.new_line()
var label high_labels = array.new_label()
var label low_labels = array.new_label()
var float high_levels = array.new_float()
var float low_levels = array.new_float()
// ============================================
// FUNCTION: DETECT SWING HIGHS
// ============================================
isSwingHigh(len) =>
highestBar = ta.highestbars(high, len * 2 + 1)
highestBar == -len
// ============================================
// FUNCTION: DETECT SWING LOWS
// ============================================
isSwingLow(len) =>
lowestBar = ta.lowestbars(low, len * 2 + 1)
lowestBar == -len
// ============================================
// SWING HIGH DETECTION & LINE DRAWING
// ============================================
if isSwingHigh(swing_length)
swing_high = high
new_line = line.new(bar_index - swing_length, swing_high, bar_index, swing_high, color=line_color_high, width=line_width, style=line.style_dashed)
array.push(high_lines, new_line)
array.push(high_levels, swing_high)
if show_labels
new_label = label.new(bar_index - swing_length, swing_high, "H", color=color.new(line_color_high, 80), textcolor=line_color_high, style=label.style_label_down, size=size.small)
array.push(high_labels, new_label)
// ============================================
// SWING LOW DETECTION & LINE DRAWING
// ============================================
if isSwingLow(swing_length)
swing_low = low
new_line = line.new(bar_index - swing_length, swing_low, bar_index, swing_low, color=line_color_low, width=line_width, style=line.style_dashed)
array.push(low_lines, new_line)
array.push(low_levels, swing_low)
if show_labels
new_label = label.new(bar_index - swing_length, swing_low, "L", color=color.new(line_color_low, 80), textcolor=line_color_low, style=label.style_label_up, size=size.small)
array.push(low_labels, new_label)
// ============================================
// UPDATE EXISTING LINES & CHECK FOR SWEEPS
// ============================================
if array.size(high_lines) > 0
for i = array.size(high_lines) - 1 to 0
current_line = array.get(high_lines, i)
current_level = array.get(high_levels, i)
if close > current_level
line.delete(current_line)
array.remove(high_lines, i)
array.remove(high_levels, i)
if show_labels and i < array.size(high_labels)
label.delete(array.get(high_labels, i))
array.remove(high_labels, i)
else
line.set_x2(current_line, bar_index)
if array.size(low_lines) > 0
for i = array.size(low_lines) - 1 to 0
current_line = array.get(low_lines, i)
current_level = array.get(low_levels, i)
if close < current_level
line.delete(current_line)
array.remove(low_lines, i)
array.remove(low_levels, i)
if show_labels and i < array.size(low_labels)
label.delete(array.get(low_labels, i))
array.remove(low_labels, i)
else
line.set_x2(current_line, bar_index)
// ============================================
// DISPLACEMENT CANDLE DETECTION
// ============================================
body_size = math.abs(close - open)
avg_body = ta.sma(math.abs(close - open), displacement_period)
is_displacement = enable_displacement and body_size > (avg_body * displacement_multiplier)
is_bullish = close > open
bgcolor(is_displacement ? (is_bullish ? displacement_color_bull : displacement_color_bear) : na)
if is_displacement and show_displacement_label
label.new(bar_index, is_bullish ? high : low, "D", color=color.new(is_bullish ? color.aqua : color.orange, 50), textcolor=is_bullish ? color.aqua : color.orange, style=is_bullish ? label.style_label_up : label.style_label_down, size=size.tiny)
// ============================================
// SMT DIVERGENCE DETECTION
// ============================================
current_symbol = syminfo.ticker
comparison_symbol = str.contains(current_symbol, "NQ") ? es_symbol : nq_symbol
comparison_high = request.security(comparison_symbol, timeframe.period, high, lookahead=barmerge.lookahead_off)
comparison_low = request.security(comparison_symbol, timeframe.period, low, lookahead=barmerge.lookahead_off)
var float prev_current_low = na
var float prev_comparison_low = na
var int prev_swing_bar = na
current_is_swing_low = isSwingLow(swing_length)
comparison_is_swing_low = ta.lowestbars(comparison_low, swing_length * 2 + 1) == -swing_length
if enable_smt and current_is_swing_low
current_swing_low = low
comparison_swing_low = comparison_low
if not na(prev_current_low) and not na(prev_comparison_low)
current_lower = current_swing_low < prev_current_low
comparison_lower = comparison_swing_low < prev_comparison_low
is_smt = (current_lower and not comparison_lower) or (not current_lower and comparison_lower)
if is_smt
smt_line = line.new(prev_swing_bar, prev_current_low, bar_index - swing_length, current_swing_low, color=smt_line_color, width=2, style=line.style_solid)
mid_bar = math.round((prev_swing_bar + bar_index - swing_length) / 2)
mid_price = (prev_current_low + current_swing_low) / 2
label.new(mid_bar, mid_price, "SMT", color=color.new(smt_line_color, 80), textcolor=smt_text_color, style=label.style_label_center, size=size.normal)
prev_current_low := current_swing_low
prev_comparison_low := comparison_swing_low
prev_swing_bar := bar_index - swing_length
// ============================================
// ALERTS
// ============================================
alertcondition(array.size(high_lines) < array.size(high_lines) , title="Liquidity Sweep High", message="High liquidity swept at {{close}}")
alertcondition(array.size(low_lines) < array.size(low_lines) , title="Liquidity Sweep Low", message="Low liquidity swept at {{close}}")
alertcondition(is_displacement, title="Displacement Candle", message="Displacement candle detected at {{close}}")
BRB Strict Scanner (Break → Retest → Break) - BNRPerfect ✅
Here is a **clean**, final formatted version — **NO development notes**, **NO options**, **NO extra commentary**.
Just **copy + paste** into TradingView’s script description box:
---
## 📌 BRB STRICT Scanner — Break → Retest → Break
**This indicator identifies high-probability breakout continuation setups** using a strict price-action + trend + volume confirmation model.
### ✅ What It Detects
A precise **3-step structure**:
1️⃣ **Break** of key support/resistance
2️⃣ **Retest** of that level (structure validation)
3️⃣ **Break again** with strong conviction + volume
This confirms the level has **flipped** and momentum is continuing.
---
### 🔍 Why “STRICT”?
The scanner applies **multiple filters** to eliminate low-quality signals:
✔ Trend direction & slope confirmed using EMAs
✔ Volume must exceed **Vol SMA × custom multiplier**
✔ Tight consolidation (base) before breakout
✔ Strong “power candle” on 2nd break (close in top/bottom 30%)
✔ ATR threshold to ensure real movement
✔ VWAP alignment (optional)
✔ Optional **avoid lunchtime chop** filter
✔ Cooldown between signals — no spam
**Quality > Quantity** every time.
---
### 🧠 Signal Meaning
| Label on Chart | Signal Type |
| -------------- | -------------------------- |
| **BRB🟢** | Bullish continuation setup |
| **BRB🔻** | Bearish continuation setup |
Signals appear **only on trend continuation**, not reversals.
---
### 🎯 Best Usage
* Intraday trading (**3m–15m**)
* Trending symbols: SPY, QQQ, META, NVDA, TSLA, AMD, ES/NQ futures
* Crypto momentum runs
* Swing: works well on **30m/1H** with confirmation
---
### ⚙️ Suggested Settings (Intraday)
* Volume ≥ **1.5–2.0×** Vol SMA
* ATR minimum: **0.30–0.50%** of price
* Base bars: **8–12**
* Confirm %: **0.7** (top/bottom 30% close)
* **VWAP alignment: ON**
* **Avoid lunchtime: ON**
---
### 📈 Risk Management (Important)
This tool **identifies structure**, not exits.
Common trade plan:
* **Stop**: just below retest low (bull) / above retest high (bear)
* **Target 1**: 1–1.5R
* **Target 2**: trail below structure
Avoid trading right into:
⚠️ Major economic events
⚠️ First few minutes of open if volatility extreme
---
### 🔔 Alerts Included
Add alerts:
* **Bullish BRB STRICT**
* **Bearish BRB STRICT**
Recommended: **Once Per Bar Close**
---
### ✅ Summary
This indicator helps traders:
✔ Stay aligned with the **dominant trend**
✔ Avoid early + fake breakouts
✔ Execute cleaner, more reliable continuation entries
Not meant for:
✘ Bottom/top picking
✘ Low-volume tickers
✘ Choppy range scalping
---
If you find this helpful — please consider:
⭐️ Rating & Adding to Favorites
💬 Commenting your results
🔁 Sharing with other disciplined traders
Trade with structure. Trade with confirmation. ✅📈⚡
---
Would you like me to also create:
✅ A **feature banner thumbnail**
✅ A **version tag** (v1.0 / v1.1 etc)
✅ A short **headline/summary line** for the top?
LAST UPA FOR DA DAYWell been fing around most the day now, TBH this is showing results , Much respect to all along the journey , mess with the setting make them natural colors for you
Musii Macro)New york macro script. Marks and highlights when macro is on new york time session. Also the inner box marks out the high and low inside the macro






















