Swing Structure Bands [ChartPrime]⯁ OVERVIEW
Swing Structure Bands is a structure-based trend and reaction indicator that builds adaptive price bands directly from swing highs and swing lows.
Instead of using fixed-length moving averages, the bands dynamically adjust their length based on how long price has been forming higher highs or lower lows, allowing the indicator to naturally align with real market structure.
This makes the tool especially effective for identifying swing-based support and resistance, trend continuation zones, and exhaustion reactions.
⯁ CORE CONCEPT
The indicator continuously tracks:
The most recent swing high and swing low over a configurable swing window.
How long price has been developing since each swing point.
Dynamic moving averages whose length grows with the swing itself.
As long as price respects the current swing direction, the bands extend and adapt.
When structure breaks, the system resets and starts forming new swing-based bands.
⯁ SWING DETECTION LOGIC
A Swing High is detected when price forms a local maximum relative to the swing lookback.
A Swing Low is detected when price forms a local minimum relative to the swing lookback.
Direction flips when price transitions from forming highs to forming lows, or vice versa.
Each confirmed swing is marked on the chart, giving clear structural context.
⯁ ADAPTIVE BAND CONSTRUCTION
Upper bands are derived from swing highs.
Lower bands are derived from swing lows.
Band length dynamically increases as the swing develops.
Multiple MA types can be used (SMA, EMA, SMMA/RMA, WMA, VWMA).
ATR is applied as an offset to create upper and lower envelopes around each band, forming a volatility-aware structure channel.
⯁ VOLATILITY FILTERING
If the band moves too aggressively relative to ATR, it is temporarily disabled.
This prevents unstable or noisy bands during sudden expansions.
Bands only remain active when price structure is stable.
This logic keeps the indicator focused on meaningful swings rather than short-term spikes.
⯁ REACTION & SIGNAL LOGIC
Sell signals appear when price crosses down from the upper swing band after sufficient stabilization.
Buy signals appear when price crosses up from the lower swing band after sufficient stabilization.
Cooldown logic prevents signal clustering.
Signals are designed as structure reactions , not momentum breakouts.
⯁ VISUAL STRUCTURE CLARITY
Separate bullish and bearish bands with customizable colors.
Optional band envelopes for visual depth.
Clear swing labels marking structural turning points.
Diamond markers highlight reaction zones.
The visualization emphasizes where price reacts to structure rather than where it accelerates.
⯁ HOW TO USE
Use upper bands as dynamic resistance during bearish or corrective phases.
Use lower bands as dynamic support during bullish phases.
Combine band reactions with higher-timeframe trend direction.
Look for confirmations near bands rather than mid-range entries.
The indicator works best as a structure framework rather than a standalone signal generator.
⯁ IDEAL MARKET CONDITIONS
Trending markets with clear swing development.
Markets transitioning from impulse to correction.
Crypto, forex, indices, and liquid stocks.
⯁ CONCLUSION
Swing Structure Bands offers a structurally grounded alternative to traditional moving average channels.
By anchoring bands to real swing behavior and adapting dynamically over time, it provides traders with a clearer view of where price is reacting, pausing, or potentially reversing within the broader market structure.
Индикаторы и стратегии
Regression Slope Oscillator [BigBeluga]🔵 OVERVIEW
The Regression Slope Oscillator is a trend–momentum tool that applies multiple linear regression slope calculations over different lookback ranges, then averages them into a single oscillator line. This design helps traders visualize when price is extending beyond typical regression behavior, as well as when momentum is shifting up or down.
🔵 CONCEPTS
Regression Slope – Measures the steepness and direction of price trends over a selected length.
f_log_regression(src, length) =>
float sumX = 0.0
float sumY = 0.0
float sumXSqr = 0.0
float sumXY = 0.0
for i = 0 to length - 1
val = math.log(src )
per = i + 1.0
sumX += per
sumY += val
sumXSqr += per * per
sumXY += val * per
slope = (length * sumXY - sumX * sumY) / (length * sumXSqr - sumX * sumX)
slope*-1
Multi–Sample Averaging – Instead of relying on one regression slope, the indicator loops through many lengths (from Min Range to Max Range with Step increments) and averages their slopes.
multiSlope(length)=>
// Get regression slope
slope = f_log_regression(close, length)
slopAvg.push(slope)
for i = minRange to maxRange by step
multiSlope(i)
Color Gradient – The oscillator and candles are colored dynamically from oversold (orange) to overbought (aqua), based on slope extremes observed within the user–defined Color Range.
Trend Oscillation – When the oscillator rises, price trend is strengthening; when it falls, momentum weakens.
🔵 FEATURES
Calculates regression slopes across a user–defined range (e.g., 10–100 with steps of 5).
Averages all sampled slopes into a single oscillator line.
Dynamic coloring of oscillator and chart candles based on slope values.
User–controlled Color Range :
High values (e.g., 50–100) → interpret as overbought vs oversold zones.
Low values (e.g., 2–5) → interpret as slope rising vs falling momentum shifts.
Dashboard table (top–right) displaying number of slope samples and current averaged slope value.
Candle coloring mode (optional) – candles take on the oscillator gradient color for at–a–glance reading of trend bias.
Signal Line (SMA) – A moving average of the slope oscillator used to identify momentum reversals.
Bullish Reversal Signal – Triggered when the oscillator crosses above the signal line while below zero, indicating downside momentum exhaustion and potential trend recovery.
Bearish Reversal Signal – Triggered when the oscillator crosses below the signal line while above zero, indicating upside momentum exhaustion and potential trend rollover.
Dual Placement Signals – Reversal signals are plotted both:
On the oscillator pane (for momentum context)
On the price chart (for execution alignment)
Confirmation Logic – Signals are only printed on confirmed bars to reduce repainting and false triggers.
🔵 HOW TO USE
Watch the oscillator cross above/below zero: signals shifts in regression slope direction.
Use the signal line crossovers near zero to identify early trend reversals.
Use high Color Range settings to identify potential overbought/oversold extremes in trend slope.
Use low Color Range settings for a faster, momentum–driven color change that tracks slope rising/falling.
Candle coloring highlights short–term trend pressure in sync with the oscillator.
Combine reversal signals with structure, support/resistance, or volume for higher–probability entries.
🔵 CONCLUSION
The Regression Slope Oscillator transforms raw regression slope data into a smooth, color–coded oscillator. By averaging across multiple regression lengths, it avoids the noise of single–range analysis while still capturing trend extensions and momentum shifts.
With the addition of signal line crossovers and confirmed reversal markers, the indicator now provides both trend context and actionable momentum signals within a single regression-based framework.
Reversal Detection v3.0 - Real-Time Pro (Non-Repainting)═══════════════════════════════════════════════════════
REVERSAL DETECTION PRO v3.0 - NON-REPAINTING
Adaptive Zigzag Reversal Detection for Scalpers & Day Traders
═══════════════════════════════════════════════════════
CHART EXAMPLE
The indicator is shown running on MNQ1! (Micro E-mini Nasdaq-100
futures) on a 2-minute chart. The indicator works on all symbols
and timeframes, but is optimized for futures scalping on 1-5
minute charts.
WHY I BUILT THIS
Most reversal indicators out there repaint like crazy, flipping
signals after the fact and making you second-guess every trade.
Plus they're too noisy in choppy markets or way too laggy in
trends, so I kept missing entries or getting faked out. I wanted
something solid that sticks to its guns without repainting and
adapts to volatility without me tweaking it every 5 minutes.
This indicator solves those problems by using an adaptive zigzag
algorithm that adjusts to market volatility automatically. Once a
reversal signal appears, it's locked in place - no repainting, no
disappearing signals. The ATR-based sensitivity system means it
works across different market conditions without constant adjustment.
WHAT YOU'LL SEE ON YOUR CHART
When you add this indicator, here's what shows up:
- GREEN LABELS with "REVERSAL" and price level = Bullish reversal
confirmed at swing low
- RED LABELS with "REVERSAL" and price level = Bearish reversal
confirmed at swing high
- HORIZONTAL LINES extending from each reversal = Reference for
stops and targets
- PREVIEW LABELS (lighter colors) = Potential reversals forming in
real-time (optional)
- CANDLE COLORS: Green for bullish trends, red for bearish, purple
for neutral
- PURPLE BOXES = Supply/demand zones marking reversal areas
- INFO TABLE (top corner) = Shows sensitivity, current ATR,
threshold, and trend status
The indicator uses three EMAs (9/14/21 periods) to determine trend
direction, which drives the candle coloring system. This helps you
see whether you're in a bullish, bearish, or choppy market at a
glance.
HOW IT WORKS
The core reversal detection uses a zigzag calculation that tracks
price swings and identifies reversals when price moves by a
dynamically calculated threshold. The reversal amount is determined
by taking the maximum of three values:
1. Percentage-based threshold (adjusts to instrument price level)
2. Absolute price movement threshold (minimum move required)
3. ATR-based threshold (adapts to current volatility)
This multi-factor approach ensures the indicator works consistently
across different assets and market conditions. The non-repainting
mechanism uses confirmed bar data - once a pivot is detected at a
swing high or low, the label and horizontal line are permanently
locked at that exact wick price.
Five sensitivity presets automatically adjust the ATR multiplier:
- Very High (0.8x ATR) = More signals, captures small moves
- High (1.2x ATR) = Active trading
- Medium (2.0x ATR) = Balanced (default)
- Low (2.8x ATR) = Filters noise
- Very Low (3.5x ATR) = Only major reversals
Advanced users can select "Custom" to manually tune ATR multiplier,
percentage threshold, and calculation method.
HOW I USE IT
I mainly trade /MNQ futures on 1-5 minute charts for scalping -
that's my bread and butter. The indicator works decent on other
stuff like stocks or forex too, but I dial sensitivity up for
faster scalps during volatile sessions.
My typical trade setup:
1. Wait for a confirmed REVERSAL label (green for long, red for
short)
2. Check that it lines up with the EMA trend color (bullish candles
for longs, bearish for shorts)
3. If it's a "strong" signal where the reversal hits during a trend
flip, that's my green light
4. Quick check for nearby supply/demand zones to avoid fighting
them
5. Enter with a tight stop below/above the reversal line
6. Target 1:1 or 2:1 risk/reward, usually out in 5-10 minutes
The horizontal lines from each reversal give me logical stop
placement levels, and the supply/demand zones help identify
potential profit targets or areas to avoid.
SETTINGS & CUSTOMIZATION
Signal Modes:
- Confirmed Only = Most reliable, only shows locked-in signals
(recommended)
- Confirmed + Preview = Shows both confirmed and potential signals
- Preview Only = For testing/development
Sensitivity Presets:
Start with "Medium" and adjust based on your trading style:
- Scalping volatile sessions = "High" or "Very High"
- Day trading = "Medium"
- Swing trading = "Low" or "Very Low"
Display Options:
- Choose candle display type (Solid, Trend, Bars, Volume, None)
- Show/hide supply/demand zones
- Adjust zone box extension length
- Customize info table position and size
- Control maximum lines displayed
Alert System:
- Bullish/Bearish reversal alerts
- EMA trend change alerts
- Strong signal alerts (reversal + trend alignment)
- "Any reversal" catch-all alert
IMPORTANT - READ THIS FIRST
Don't rely on this indicator alone. Always pair it with your own
price action or volume confirmation, because no indicator is
perfect. Avoid cranking sensitivity too high in ranging markets or
you'll get whipped. Test on demo first, and remember it's
non-repainting so signals are final, but preview mode can tease
you into early entries if you're not patient.
Risk management is key - don't size up just because a signal looks
good. This indicator helps identify potential reversals, but YOU
still need to manage your trades, set proper stops, and control
position size based on your account risk tolerance.
WHAT MAKES THIS DIFFERENT
Unlike simple pivot indicators or manual support/resistance drawing:
- Adapts automatically to volatility changes (ATR-based)
- Never repaints - signals lock in place permanently
- Reversal detection works with trend context (EMAs)
- Supply/demand zones mark key structural levels
- One-click sensitivity adjustment via presets
- Works across multiple timeframes and instruments
The zigzag reversal algorithm adapts to volatility using ATR, while
the EMA system provides trend context so you're not trading
reversals blindly against the trend. The supply/demand zones help
identify key levels where price has reversed before. It's built
specifically for active traders who need reliable, non-repainting
signals.
BEST PRACTICES
✅ DO:
- Start with "Medium" sensitivity on demo account
- Wait for confirmed signals before entering
- Use horizontal lines for stop placement
- Check trend context (candle colors) before trading reversals
- Combine with volume analysis or price action
- Test different sensitivity settings for your instrument
❌ DON'T:
- Trade every signal blindly without context
- Use "Very High" sensitivity in choppy/ranging markets
- Ignore the trend direction (candle colors)
- Enter on preview labels (they can disappear)
- Skip proper risk management
- Overtrade just because signals appear
TECHNICAL SPECIFICATIONS
- Pine Script Version: v6
- Non-Repainting: Yes (confirmed signals only)
- Uses security(): No (no higher timeframe data)
- Uses non-standard chart types: No (all calculations on real OHLC)
- Alert Compatible: Yes (7 alert types)
- Calculations: Current timeframe only, no lookahead bias
DISCLAIMER
This indicator is for educational purposes only and does not
constitute financial advice. Trading futures, stocks, and forex
involves substantial risk of loss and is not suitable for all
investors. Past performance is not indicative of future results.
Always use proper risk management, never risk more than you can
afford to lose, and test thoroughly on demo accounts before live
trading.
═══════════════════════════════════════════════════════
© 2025 NPR21 - Reversal Detection Pro v3.0
Built by a trader, for traders
═══════════════════════════════════════════════════════
Adaptive RSI [BOSWaves]Adaptive RSI - Percentile-Based Momentum Detection with Dynamic Regime Thresholds
Overview
Adaptive RSI is a self-calibrating momentum oscillator that identifies overbought and oversold conditions through historical percentile analysis, constructing dynamic threshold boundaries that adjust to evolving market volatility and momentum characteristics.
Instead of relying on traditional fixed RSI levels (30/70 or 20/80) or static overbought/oversold zones, regime detection, threshold placement, and signal generation are determined through rolling percentile calculation, smoothed momentum measurement, and divergence pattern recognition.
This creates adaptive boundaries that reflect actual momentum distribution rather than arbitrary fixed levels - tightening during low-volatility consolidation periods, widening during trending environments, and incorporating divergence analysis to reveal momentum exhaustion or continuation patterns.
Momentum is therefore evaluated relative to its own historical context rather than universal fixed thresholds.
Conceptual Framework
Adaptive RSI is founded on the principle that meaningful momentum extremes emerge relative to recent price behavior rather than at predetermined numerical levels.
Traditional RSI implementations identify overbought and oversold conditions using fixed thresholds that remain constant regardless of market regime, often generating premature signals in strong trends or missing reversals in range-bound markets. This framework replaces static threshold logic with percentile-driven adaptive boundaries informed by actual momentum distribution.
Three core principles guide the design:
Threshold placement should correspond to historical momentum percentiles, not fixed numerical levels.
Regime detection must adapt to current market volatility and momentum characteristics.
Divergence patterns reveal momentum exhaustion before price reversal becomes visible.
This shifts oscillator analysis from universal fixed levels into adaptive, context-aware regime boundaries.
Theoretical Foundation
The indicator combines smoothed RSI calculation, rolling percentile tracking, adaptive threshold construction, and multi-pattern divergence detection.
A Hull Moving Average (HMA) pre-smooths the price source to reduce noise before RSI computation, which then undergoes optional post-smoothing using configurable moving average types. Confirmed oscillator values populate a rolling historical buffer used for percentile calculation, establishing upper and lower thresholds that adapt to recent momentum distribution. Regime state persists until the oscillator crosses the opposing threshold, preventing whipsaw during consolidation. Pivot detection identifies swing highs and lows in both price and oscillator values, enabling regular divergence pattern recognition through comparative analysis.
Five internal systems operate in tandem:
Smoothed Momentum Engine : Computes HMA-preprocessed RSI with optional post-smoothing using multiple MA methodologies (SMA, EMA, HMA, WMA, DEMA, RMA, LINREG, TEMA).
Historical Buffer Management : Maintains a rolling array of confirmed oscillator values for percentile calculation with configurable lookback depth.
Percentile Threshold Calculation : Determines upper and lower boundaries by extracting specified percentile values from sorted historical distribution.
Persistent Regime Detection : Establishes bullish/bearish/neutral states based on threshold crossings with state persistence between signals.
Divergence Pattern Recognition : Identifies regular bullish and bearish divergences through synchronized pivot analysis of price and oscillator values with configurable range filtering.
This design allows momentum interpretation to adapt to market conditions rather than reacting mechanically to universal thresholds.
How It Works
Adaptive RSI evaluates momentum through a sequence of self-calibrating processes:
Source Pre-Smoothing: Input price undergoes 4-period HMA smoothing to reduce bar-to-bar noise before oscillator calculation.
RSI Calculation: Standard RSI computation applied to smoothed source over configurable length period.
Optional Post-Smoothing: Raw RSI value undergoes additional smoothing using selected MA type and length for cleaner regime detection.
Historical Buffer Population: Confirmed oscillator values accumulate in a rolling array with size limit determined by adaptive lookback parameter.
Percentile Threshold Extraction: Array sorts on each bar to calculate upper percentile (bullish threshold) and lower percentile (bearish threshold) values.
Regime State Persistence: Bullish regime activates when oscillator crosses above upper threshold, bearish regime activates when crossing below lower threshold, neutral regime persists until directional threshold breach.
Pivot Identification: Swing highs and lows detected in both oscillator and price using configurable left/right parameters.
Divergence Pattern Matching: Compares pivot relationships between price and oscillator within min/max bar distance constraints to identify regular bullish (price LL, oscillator HL) and bearish (price HH, oscillator LH) divergences.
Together, these elements form a continuously updating momentum framework anchored in statistical context.
Interpretation
Adaptive RSI should be interpreted as context-aware momentum boundaries:
Bullish Regime (Blue): Activated when oscillator crosses above upper percentile threshold, indicating momentum strength relative to recent distribution favors upside continuation.
Bearish Regime (Red): Established when oscillator crosses below lower percentile threshold, identifying momentum weakness relative to recent distribution favors downside continuation.
Upper Threshold Line (Blue)**: Dynamic resistance level calculated from upper percentile of historical oscillator distribution - adapts higher during trending markets, lower during ranging conditions.
Lower Threshold Line (Red): Dynamic support level calculated from lower percentile of historical oscillator distribution - adapts lower during downtrends, higher during consolidation.
Regime Fill: Gradient coloring between oscillator and baseline (50) visualizes current momentum intensity - stronger color indicates greater distance from neutral.
Extreme Bands (15/85): Upper and lower extreme zones with strength-modulated transparency reveal momentum extremity - darker shading during powerful moves, lighter during moderate momentum.
Divergence Lines: Connect price and oscillator pivots when divergence pattern detected, appearing on both price chart and oscillator pane for confluence identification.
Reversal Markers (✦): Diamond signals appear at 80+ (bearish extreme) and sub-15 (bullish extreme) levels, marking potential exhaustion zones independent of regime state.
Percentile context, divergence confirmation, and regime persistence outweigh isolated oscillator readings.
Signal Logic & Visual Cues
Adaptive RSI presents four primary interaction signals:
Regime Switch - Long : Oscillator crosses above upper percentile threshold after previously being in bearish or neutral regime, suggesting momentum strength shift favoring bullish continuation.
Regime Switch - Short : Oscillator crosses below lower percentile threshold after previously being in bullish or neutral regime, indicating momentum weakness shift favoring bearish continuation.
Regular Bullish Divergence (𝐁𝐮𝐥𝐥) : Price forms lower low while oscillator forms higher low, revealing positive momentum divergence during downtrends - often precedes reversal or consolidation.
Regular Bearish Divergence (𝐁𝐞𝐚𝐫) : Price forms higher high while oscillator forms lower high, revealing negative momentum divergence during uptrends - often precedes reversal or correction.
Alert generation covers regime switches, threshold crossings, and divergence detection for systematic monitoring.
Strategy Integration
Adaptive RSI fits within momentum-informed and mean-reversion trading approaches:
Adaptive Regime Following : Use threshold crossings as primary trend inception signals where momentum confirms directional breakouts within statistical context.
Divergence-Based Reversals : Enter counter-trend positions when divergence patterns appear at extreme oscillator levels (above 80 or below 20) for high-probability mean-reversion setups.
Threshold-Aware Scaling : Recognize that tighter percentile spreads (e.g., 45/50) generate more signals suitable for ranging markets, while wider spreads (e.g., 30/70) filter for stronger trend confirmation.
Extreme Zone Confluence : Combine reversal markers (✦) with divergence signals for maximum-conviction exhaustion entries.
Multi-Timeframe Regime Alignment : Apply higher-timeframe regime context to filter lower-timeframe entries, taking only setups aligned with dominant momentum direction.
Smoothing Optimization : Increase smoothing length in choppy markets to reduce false signals, decrease in trending markets for faster response.
Technical Implementation Details
Core Engine : HMA-preprocessed RSI with configurable smoothing (SMA, HMA, EMA, WMA, DEMA, RMA, LINREG, TEMA)
Adaptive Model : Rolling percentile calculation over confirmed oscillator values with size-limited historical buffer
Threshold Construction : Linear interpolation percentile extraction from sorted distribution array
Regime Detection : State-persistent threshold crossing logic with confirmed bar validation
Divergence Engine : Pivot-based pattern matching with range filtering and duplicate prevention
Visualization : Gradient-filled regime zones, adaptive threshold lines, strength-modulated extreme bands, dual-pane divergence lines
Performance Profile : Optimized for real-time execution with efficient array management and minimal computational overhead
Optimal Application Parameters
Timeframe Guidance:
1 - 5 min : Micro-structure momentum detection for scalping and intraday reversals
15 - 60 min : Intraday regime identification with divergence-validated turning points
4H - Daily : Swing and position-level momentum analysis with macro divergence context
Suggested Baseline Configuration:
RSI Length : 18
Source : Close
Smooth Oscillator : Enabled
Smoothing Length : 20
Smoothing Type : SMA
Adaptive Lookback : 1000
Upper Percentile : 50
Lower Percentile : 45
Divergence Pivot Left : 15
Divergence Pivot Right : 15
Min Pivot Distance : 5
Max Pivot Distance : 60
These suggested parameters should be used as a baseline; their effectiveness depends on the asset's volatility profile, momentum characteristics, and preferred signal frequency, so fine-tuning is expected for optimal performance.
Parameter Calibration Notes
Use the following adjustments to refine behavior without altering the core logic:
Too many whipsaw signals : Widen percentile spread (e.g., 40/60 instead of 45/50) to demand stronger momentum confirmation, or increase "Smoothing Length" to filter noise.
Missing legitimate regime changes : Tighten percentile spread (e.g., 48/52 instead of 45/50) for earlier detection, or decrease "Smoothing Length" for faster response.
Oscillator too choppy : Increase "Smoothing Length" for cleaner readings, or switch "Smoothing Type" to RMA/TEMA for heavier smoothing.
Thresholds not adapting properly : Reduce "Adaptive Lookback" to emphasize recent behavior (500-800 bars), or increase it for more stable thresholds (1500-2000 bars).
Too many divergence signals : Increase "Pivot Left/Right" values to demand stronger swing confirmation, or widen "Min Pivot Distance" to space out detections.
Missing significant divergences : Decrease "Pivot Left/Right" for faster pivot detection, or increase "Max Pivot Distance" to compare more distant swings.
Prefer different momentum sensitivity : Adjust "RSI Length" - lower values (10-14) for aggressive response, higher values (21-28) for smoother trend confirmation.
Divergences appearing too late : Reduce "Pivot Right" parameter to detect divergences closer to current price action.
Adjustments should be incremental and evaluated across multiple session types rather than isolated market conditions.
Performance Characteristics
High Effectiveness:
Markets with mean-reverting characteristics and consistent momentum cycles
Instruments where momentum extremes reliably precede reversals or consolidations
Ranging environments where percentile-based thresholds adapt to volatility contraction
Divergence-driven strategies targeting momentum exhaustion before price confirmation
Reduced Effectiveness:
Extremely strong trending markets where oscillator remains persistently extreme
Low-liquidity environments with erratic momentum readings
News-driven or gapped markets where momentum disconnects from price temporarily
Markets with regime shifts faster than adaptive lookback can recalibrate
Integration Guidelines
Confluence : Combine with BOSWaves structure, volume analysis, or traditional support/resistance
Threshold Respect : Trust signals that occur after clean threshold crossings with sustained momentum
Divergence Context : Prioritize divergences appearing at extreme oscillator levels (80+/15-) over those in neutral zones
Regime Awareness : Consider whether current market regime matches historical momentum patterns used for calibration
Multi-Pattern Confirmation : Seek divergence patterns coinciding with reversal markers or threshold rejections for maximum conviction
Disclaimer
Adaptive RSI is a professional-grade momentum and divergence analysis tool. It uses percentile-based threshold calculation that adapts to recent market behavior but cannot predict future regime shifts or guarantee reversal timing. Results depend on market conditions, parameter selection, lookback period appropriateness, and disciplined execution. BOSWaves recommends deploying this indicator within a broader analytical framework that incorporates price structure, volume context, and comprehensive risk management.
BuyLow SellHigh Bands | ProjectSyndicate________________________________________
📊 BuyLow SellHigh (BLSH) Bands
Comprehensive Trading Guide – by ProjectSyndicate
________________________________________
🔰 1. Introduction
The BuyLow SellHigh (BLSH) Bands indicator is a powerful technical analysis tool designed for the TradingView platform. Works with any symbol. Gold/FX/indices/oil/crypto/stocks.
It provides traders with a clear, visual representation of:
• 📈 Overbought conditions
• 📉 Oversold conditions
This makes it easier to identify high-probability entry and exit points.
The indicator is built on:
• Dynamic price channels
• Fibonacci-based zones
• Color-coded market structure
💡 While the BLSH Bands can be used on Forex, Crypto, and Futures, this guide focuses on Gold (XAUUSD) using:
• M5
• M15
• M30 timeframes
________________________________________
🧠 2. Core Concepts
The BLSH Bands structure is created using two key components:
________________________________________
📐 Dynamic Price Bands
• Upper and lower bands are calculated using the highest high and lowest low
• Based on a user-defined lookback period (fiboPeriod)
• Reflects recent volatility and price range
This creates a self-adjusting channel that adapts to market conditions.
________________________________________
🧮 Fibonacci Zones
The space between the bands is divided into six Fibonacci-based zones:
• 0.786
• 0.618
• 0.500
• 0.382
• 0.214
⚠️ These are not traditional retracements — they are used to grade price extremity within the channel.
________________________________________
🎨 Color-Coded Zones Overview
Zone (Fib Level) Color Market Condition Interpretation
1.000 – 0.786 🔴 Red Extreme Overbought High reversal / pullback probability
0.786 – 0.618 🟠 Orange Overbought Selling pressure building
0.618 – 0.500 🟡 Yellow Mildly Overbought Bullish momentum weakening
0.500 – 0.382 🟢 Aqua Mildly Oversold Bearish momentum weakening
0.382 – 0.214 🔵 Deep Sky Blue Oversold Strong buying interest
0.214 – 0.000 🔷 Blue Extreme Oversold High bounce / reversal probability
🖤 Solid black separator lines ensure clean visual separation between zones for precise price location.
________________________________________
🪙 3. Trading Strategies for XAUUSD (Gold)
Gold’s volatility and respect for technical levels make it ideal for BLSH Bands strategies.
________________________________________
⚡ M5 Timeframe – Scalping Strategy
Designed for fast mean-reversion trades from extreme zones.
🟢 BUY Setup
• Price enters Extreme Oversold (Blue) zone
• Bullish confirmation candle appears:
o Hammer
o Bullish engulfing
• Enter BUY
🔴 SELL Setup
• Price enters Extreme Overbought (Red) zone
• Bearish confirmation candle appears:
o Shooting star
o Bearish engulfing
• Enter SELL
🎯 Take Profit:
• Median band (between Yellow & Aqua)
🛑 Stop Loss:
• Just outside the outer band
________________________________________
📆 M15 Timeframe – Day Trading Strategy
Balanced timeframe for higher-probability reversals.
🟢 BUY Setup
• Price enters Oversold (Blue / Deep Sky Blue)
• Strong bullish reversal candle closes back inside bands
• Enter BUY after close
🔴 SELL Setup
• Price enters Overbought (Red / Orange)
• Bearish reversal candle closes back inside bands
• Enter SELL after close
🎯 Take Profit (Multi-Target):
1. Median band
2. Opposite extreme band
🛑 Stop Loss:
• Beyond high/low of confirmation candle
________________________________________
🔄 M30 Timeframe – Swing Trading Strategy
Used for identifying major swing points.
🔍 Trend Filter
• Use 100 or 200 EMA
• Trade only in trend direction
🟢 Uptrend
• Buy pullbacks into Oversold zones
🔴 Downtrend
• Sell rallies into Overbought zones
📉 Confirmation:
• Band rejection
• RSI or MACD divergence
🎯 Take Profit:
• Previous structure levels
• Opposite band extreme
🛑 Stop Loss:
• Below / above recent swing high or low
________________________________________
🚨 4. Alerts System
Alerts are disabled by default to keep charts clean.
✅ How to Enable
• Open indicator settings
• Check “Enable Alerts”
________________________________________
🔔 Available Alerts
🔴 Overbought Alert
• Trigger: Price crosses above 0.786
• Message:
🔴 SELL SIGNAL: Price entered Overbought Zone – Consider selling or taking profits
🟢 Oversold Alert
• Trigger: Price crosses below 0.214
• Message:
🟢 BUY SIGNAL: Price entered Oversold Zone – Consider buying or entering long
________________________________________
⏱ Alert Spacing Logic
• Default: 20/50 bars
• Prevents repeated alerts in choppy markets
• Filters for higher-quality signals
________________________________________
⚙️ 5. Customization Settings
Adjust the indicator in the Settings panel:
🔧 Core Inputs
• fiboPeriod → Band sensitivity
• extremes → Price source (High/Low or Close)
🔔 Alert Controls
• Enable / disable alerts
• Separate control for overbought & oversold
• Alert spacing (bars)
________________________________________
⭐ How You Can Support ProjectSyndicate (3 Steps)
1. ✅ Click “Add to Favorites” to save this script to your TradingView Favorites
2. 🔎 Check out our other scripts to complete your SMC toolkit
3. 👤 Follow ProjectSyndicate for the latest updates, upgrades, and new releases
________________________________________
⚠️ 6. Disclaimer
Trading involves significant risk and may not be suitable for all traders.
This indicator is a decision-support tool, not a standalone trading system.
Always apply:
• Proper risk management
• Additional confirmations
• Sound trading discipline
📉 Past performance does not guarantee future results.
Professional Price Action AnalysisProfessional Price Action Analysis - Advanced S/R & Pattern Detection
A comprehensive technical analysis tool combining dynamic support/resistance zones, candlestick pattern recognition, trend analysis, and volume insights.
KEY FEATURES:
✓ Dynamic Support & Resistance Zones
- Automatically identifies swing highs/lows
- Classifies levels based on current price position
- Support zones display BELOW price (green)
- Resistance zones display ABOVE price (red)
- Adjustable zone thickness and lookback period
✓ Candlestick Pattern Detection
- Bullish/Bearish Engulfing patterns
- Pin bars (reversal signals)
- Inside bars (consolidation)
- Rejection candles (wick analysis)
- Visual markers on chart with labels
✓ Trend Analysis
- Customizable moving average (default 50-period SMA)
- Background color zones for trend direction
- Price vs MA percentage calculation
- Bullish/Bearish/Neutral classification
✓ Volume Analysis
- Volume spike detection (configurable multiplier)
- Highlights unusual volume with bar colors
- Helps identify institutional activity
✓ Information Dashboard
- Clean, readable display (top-right corner)
- Current trend status
- Distance to nearest support/resistance
- Volume status (High/Normal)
- Price deviation from moving average
✓ Alert System
- Alerts for all candlestick patterns
- Volume spike notifications
- Customizable alert conditions
CUSTOMIZABLE INPUTS:
• Swing detection length (3-50 bars)
• S/R lookback period (20-200 bars)
• Zone thickness percentage
• Maximum zones displayed
• Trend MA length
• Volume spike multiplier
• Toggle individual pattern types
BEST FOR:
- Swing traders identifying key levels
- Day traders spotting reversal patterns
- Price action enthusiasts
- Multi-timeframe analysis
This indicator does not repaint. All signals are confirmed after candle close. Suitable for all markets: stocks, forex, crypto, commodities.
Educational tool for technical analysis. Not financial advice.
Timeframe Continuity BarsTimeframe Continuity Bars is a script that is extremely simple for good reason
So please, do not remove this post because it seems 'simple'
Now that's over with. Lets dive in to understand what timeframe continuity IS and what this indicator does.
Timeframe continuity is defined by 4 or more timeframes and it is the relationship of the last price traded to those 4 opening prices. Standard timeframe continuity would be using the M,W,D,60min timeframes.
The reason we use MTF analysis is because of the truth of what price is and how it works.
Price movement is SOLELY caused due to aggressive buying / selling. Some may attempt to refute this however at the end of the day. If the price is at 100.00 it is because a buyer is willing to buy there and a seller is willing to sell there. If those market participants did not want to buy or sell at 100.00 price would go up or down to meet the more aggressive participant.
So what does this look like you may ask...
If an aggressive buyer takes the offer we will see prices go up if they were willing to pay more than the last guy who took the offer.
So price may go from 100.00 to 100.01 because you decided to invest in that stock that day at that time with a market order
This same thing occurs when every other institution creates, adds, reduces, or exits a position. They have to buy or sell and they have to either do it aggressively or do it passively by sitting on the bid / ask and waiting.
So since this is true, we know that the relationship to the opening price is extremely important. This is because if price is above it's open that means buyers were willing to take the offer and buy at higher prices. If price is below it's open it means that sellers were willing to sell at the bid and they sold at lower prices.
So any candlestick chart is simply an aggregation of this aggressive buying/selling that is taking place at all times.
By using the timeframe continuity bars indicator we can measure the distance from the current open across 4 or more timeframes.
By doing this we can identify monthly participation groups, weekly participation groups, daily participation groups, and 60min participation groups.
When all those groups align green or red this is considered full timeframe continuity. Where the monthly weekly daily 60min groups are all taking the offer and buying, or all selling at the bid!
When this aligns this is when price is for CERTAIN going in one direction.
However, It is subject to change every 60 minutes as the 60min determines if those monthly weekly daily buyers are present RIGHT NOW.
So if the 60min changes we go into direct conflict against the month/week/day groups.
If we see the 60min and day align we go into direct conflict against the month/week
if the 60min day and week are red we over-take the monthly group for control. At the time of the week day and 60 being red we have ZERO evidence of the previous monthly buyer/seller that was present.
Now that you understand a little bit about continuity.. Check it out on the chart!
P.S Here is some tips
1) it is not about just all timeframes aligning, we want to see long green / red bars!
2) The opens reset on a cyclical basis. Each day, each week, each month... When the new timeframes open we will see timeframes have the SAME open. When the opens are the same price we have LESS evidence versus having all opens seperate.
3) Investors can use the Y Q M W as their 4 timeframes to see when institutional buying is occurring [go do a case study on AMEX:GLD and AMEX:SLV weekly timeframe with these settings]
4) You need to add 4 separate indicators and change the timeframes. It is ideal to then save this layout!
5) The best way to do price analysis is using #TheStrat across all 4 timeframes instead of one timeframe with this indicator. This is soley a tool we use to show changing of control between participation groups!
Polynomial Trend Exhaustion & DivergencePolynomial Trend Exhaustion & Divergence
Overview
This indicator combines advanced polynomial regression analysis with momentum-based exhaustion detection and forecast-based divergence signals. It identifies potential trend reversals by analyzing when price momentum is fading (exhaustion) and when price direction conflicts with the mathematical trajectory projected by cubic polynomial forecasting (divergence).
The system uses optional source smoothing (Linear Regression Blend or Kalman filtering) to reduce noise before analysis, then applies two independent detection methods to generate high-probability reversal warnings.
Exhaustion Detection
What it detects: Trend exhaustion occurs when price is still moving in one direction but the underlying momentum is weakening—a classic early warning of potential reversal.
How it works:
The indicator calculates either a cubic polynomial regression or Kalman filter trend, then monitors the slope of that trend line. Exhaustion is detected when:
Bullish Exhaustion: The slope is positive (uptrend) but the rate of change of the slope is negative (momentum decelerating)
Bearish Exhaustion: The slope is negative (downtrend) but the rate of change of the slope is positive (momentum decelerating)
Signal filtering:
Consecutive Bars Required: Exhaustion conditions must persist for a configurable number of bars before triggering
Max Repeat Signals: Limits how many consecutive exhaustion signals can fire to prevent clustering
Cooldown Period: After hitting the max signal limit, the indicator pauses before allowing new signals
This produces clean, actionable warnings rather than noise during extended exhaustion phases.
Divergence Detection
What it detects: Divergence signals identify when the polynomial-projected future price path conflicts with current price direction—suggesting price may be overextended and due for a correction toward the forecast.
How it works:
The indicator fits a cubic polynomial to recent price data and extrapolates it forward by a configurable number of bars. It then compares:
Current price direction (rising or falling over the lookback period)
Forecast position (above or below current price)
Divergence triggers when:
Bullish Divergence: Price is falling but the polynomial forecast is above current price (suggesting upward reversion)
Bearish Divergence: Price is rising but the polynomial forecast is below current price (suggesting downward reversion)
Signal filtering:
Minimum Divergence (ATR): The forecast must be at least X ATRs away from price
Minimum Price Movement (ATR): Price must have moved at least X ATRs over the lookback period (filters out sideways noise)
Consecutive Bars Required: Divergence conditions must persist for X bars before triggering
Cooldown Period: Minimum bars between divergence signals of the same type
Key Features
Dual trend methods: Choose between Polynomial Regression or Kalman filtering for the base trend calculation
Source smoothing options: None, LinReg Blend, or Kalman filter applied to OHLC data before analysis
ATR-normalized thresholds: All filter thresholds adapt to current volatility
Anti-clustering logic: Built-in repeat limits and cooldowns prevent signal spam during extended conditions
Full alert support: All four signal types (Bull/Bear Exhaustion, Bullish/Bearish Divergence) have dedicated alert conditions
RSI Chebyshev Pro with Goldilocks Fractals - NR [NPR21]RSI Chebyshev Pro with Goldilocks Fractals - Non-Repaint
CHART INFORMATION
Instrument: /MNQ (Micro E-mini Nasdaq-100 Futures)
Timeframe: 2-minute
Indicator: RSI Chebyshev Pro with Goldilocks Fractals - NR
THE PROBLEM
Standard RSI is too choppy and noisy – it whipsaws all over the place in volatile markets like futures, giving false oversold/overbought signals that burn you on entries. I was sick of missing real reversals or getting stopped out on fakeouts. I wanted something smoother that still catches the big momentum shifts without lagging too much, plus actual market structure to make it more reliable for quick trades.
WHAT MAKES THIS UNIQUE
Unlike basic RSI indicators that use simple moving average smoothing, this combines several advanced techniques that aren't commonly found together:
1. Chebyshev Type I Filtering - Signal processing mathematics (not basic EMAs) that kills noise while keeping real swings sharp. Most RSI smoothing just blurs everything - this keeps responsiveness without the chop.
2. MAMA Adaptive Period - The moving average adapts to actual market cycles using the MESA algorithm, not fixed periods that lag in changing conditions.
3. RSI Pivot Fractals - These aren't price fractals slapped onto RSI. The fractals detect pivots directly on RSI values at extreme levels, with signals appearing back at the exact pivot bar (not current bar), showing you where the actual reversal happened.
4. True Non-Repainting Implementation - Signals appear delayed BUT locked at the historical pivot location forever. What you see in backtests is exactly what appeared live - no vanishing signals, no shifting.
5. All-in-One Integration - Instead of running 3-4 separate indicators (RSI + fractals + patterns + smoothing), everything works together in a single, optimized calculation with confluence built in.
This isn't just RSI with some Williams Fractals thrown on top - it's a complete rethink of how to identify high-probability RSI reversals using signal processing and adaptive algorithms.
ORIGIN & ENHANCEMENTS
Original Source: ChartPrime RSI Chebyshev indicator
Converted & Enhanced by: NPR21
What I Added:
✅ Converted to Pine Script v6 - Made this available to TradingView traders
✅ Goldilocks Fractals - RSI alone doesn't tell you about price structure. These fractals nail those "just right" pivot points where highs/lows confirm. I kept seeing RSI extremes that reversed hard when they lined up with fractals - this was the missing piece for confluence.
✅ 100% Non-Repainting - I've been burned by repainters. You'd backtest something, looks amazing, then live it vanishes or shifts. Lost real money on that. This is rock-solid: signals show delayed but once they're there, they're locked forever. Makes backtesting trustworthy.
✅ Candlestick Patterns - Engulfing, Morning Star, Evening Star detection for confluence
✅ Customizable Visuals - BUY/SELL labels, multiple display styles, full color/size control
✅ Complete Alert System - Get notified on all signal types
HOW IT WORKS
Chebyshev Filtering:
Like putting noise-canceling on your RSI – smooths out jittery ups and downs from random price spikes without flattening into useless lag. It's signal processing math that keeps important swings sharp while killing BS noise. Way better than simple EMA smoothing that blurs everything.
The Components:
Ultra-Smooth RSI - Chebyshev Type I filtering + adaptive MAMA algorithm
Goldilocks Fractals - Pivot detection confirmed after N bars (default 5)
Pattern Recognition - Detects Engulfing, Morning/Evening Star patterns
Visual Styles - Candle Trend (hollow green/solid red) or traditional candles
SIGNAL DELAY vs REPAINTING
✅ THIS HAS SIGNAL DELAY (GOOD) - NOT REPAINTING (BAD)
Signal Delay:
Signals appear after N bars (default 5 bar delay)
Once visible, NEVER disappears or moves
Perfect for backtesting - 100% reliable
What you see in history is what you'd see live
Why the Delay:
To confirm a pivot, we need to see price didn't go lower/higher in the next N bars. This confirmation makes signals reliable. The delay is the price for trustworthy signals.
Want faster? Drop Fractal Periods to 2-3 (more signals, less confirmation).
HOW I TRADE IT
My /MNQ Scalping (1-3 min charts):
LONG: BUY label appears (down fractal + maybe morning star/engulfing) → Check RSI crossing up from oversold (<30) → Confirm with volume → Long with stop below fractal low → Target 1-2R
SHORT: SELL label (up fractal + maybe evening star) → RSI from overbought → Short with stop above
Filter: Only longs in uptrends (watch the MA). Exit partials if momentum fades.
Best Timeframes: 1-5 min for futures scalping. Works on 15 min for swings but for pure scalping, stay under 5 min in high-vol sessions.
SETTINGS I USE
Standard Setup:
Length: 24, Smoothing: 3
Auto MA: ON, Multiplier: 1-2
Fractal Periods: 5 (good confirmation)
Choppy Days:
Smoothing to 5
Aggressive:
Fractal Periods to 3
Pro Tip: Pair with volume or price EMA. Love when fractal BUY + engulfing bull align. Use Candle Trend style. Test on demo first.
KEY SETTINGS
RSI: Length (24), Smoothing (3), Auto MA, Style (Candle/Candle Trend)
Fractals: Periods (5 = more reliable, 3 = faster/riskier), Label colors/sizes, Offsets
Alerts: All signals fire only on confirmed, non-repainting events
DISCLAIMERS
⚠️ Tool, not a complete system - use proper risk management
⚠️ Signals have delay for reliability - not for instant entries
⚠️ Best with price action, volume, other analysis
⚠️ Test on demo before live trading
Questions? Comment below!
NPR21
High-volume buy and sell signals with OB and FVGBuy and sell signals on ob
Pivot Point Usage: Instead of detecting each candle of an opposite color, the script uses `ta.pivothigh/low`. This means it only marks a Pivot Point if the price has actually made a significant high or low relative to the 10 preceding and following candles.
Dynamic Cleanup (Mitigation): As soon as the price returns to "fill" the area (depending on your choice: simple contact or close), the box disappears from the chart. This keeps your view clean and focused on the remaining untouched areas.
Period Setting: You can increase the "Detection Period" (e.g., from 10 to 20) in the settings to filter out even more noise and keep only the major areas.
How to use it?
Dynamic Zone TraderDynamic Zone Trader - MACD-based trading system with adaptive stop loss and take profit zones.
This indicator generates buy/sell signals from MACD histogram crossovers and automatically adjusts position sizing based on market conditions.
Key Features:
Detects breakout trades and expands targets to capture larger moves
Identifies choppy/ranging conditions and tightens stops to reduce risk
Shows supply and demand zones based on pivot highs/lows
Displays three take profit levels (TP1, TP2, TP3) that scale with trade quality
Entry signals filtered by 50 EMA to trade with the trend
Signal strength score displayed on each entry marker
How It Works:
The indicator analyzes recent price structure and movement to classify each trade:
Breakout trades (breaking recent highs/lows) get 1.6x larger zones
Normal trades get standard 1.0x sizing
Choppy weak signals get 0.75x smaller zones
This allows you to take bigger positions on high-conviction setups while limiting risk during low-quality trades.
Settings:
MACD parameters (default 8/21/5)
Base stop loss: 60 ticks
Base take profit: 80 ticks
EMA filter: 50 period
Optional ADX trend filter
Adjustable breakout detection sensitivity
Works on any timeframe and instrument, but optimized for index futures like NQ/MNQ.
NVentures Liquidity Radar ProInstitutional Liquidity Radar Pro
OVERVIEW
This indicator combines three institutional trading concepts into a unified confluence scoring system: Liquidity Zones (swing-based), Order Blocks, and Fair Value Gaps. The unique value lies not in these individual concepts, but in HOW they interact through the confluence scoring algorithm to filter high-probability zones.
HOW THE CONFLUENCE SCORING WORKS
The core innovation is the calcConfluence() function that assigns a numerical score to each detected level:
1. Base Score: Every swing pivot starts with score = 1
2. Zone Overlap Detection: The algorithm iterates through all active zones within confDist * ATR proximity. Each overlapping zone adds +1 to the score
3. Order Block Proximity: If an Order Block's midpoint (top + bottom) / 2 falls within the confluence distance, +1 is added
4. HTF Validation: Using request.security(), the indicator fetches higher timeframe swing pivots. If the current zone aligns with an HTF swing within 2 * confDist * ATR_htf, a +2 bonus is awarded
Zones scoring 4+ are highlighted as high confluence - these represent areas where multiple institutional concepts converge.
HOW LIQUIDITY ZONES ARE CALCULATED
Detection: ta.pivothigh() and ta.pivotlow() with configurable lookback (default: 5 bars left/right)
Zone Width - Three modes available:
- ATR Dynamic: ATR(14) * multiplier (default 0.25)
- Fixed %: close * (percentage / 100)
- Wick Based: max(upperWick, lowerWick) * 1.5
Proximity Filter: isTooClose() prevents clustering by enforcing minimum ATR * minATRdist between zones
HOW ORDER BLOCKS ARE DETECTED
The detectBullishOB() / detectBearishOB() functions identify the last opposing candle before an impulse move:
1. Check if candle is opposing direction (bearish before bullish impulse, vice versa)
2. Validate consecutive candles in impulse direction (configurable, default: 3)
3. Volume confirmation: volume >= volMA * volMult (using 50-period SMA)
4. Minimum move validation: abs(close - close ) > ATR
This filters out weak OBs and focuses on those with institutional volume footprints.
HOW FAIR VALUE GAPS ARE DETECTED
FVGs represent price imbalances:
- Bullish FVG: low - high > ATR * fvgMinSize
- Bearish FVG: low - high > ATR * fvgMinSize
The ATR-relative sizing ensures gaps are significant relative to current volatility.
HOW SWEEP DETECTION WORKS
The checkSweep() function identifies false breakouts through wick analysis:
1. Calculate wick percentage: upperWick / totalRange or lowerWick / totalRange
2. Sweep conditions for resistance: high > zone.upper AND close < zone.price AND wickPct >= threshold
3. Sweep conditions for support: low < zone.lower AND close > zone.price AND wickPct >= threshold
A sweep indicates liquidity was grabbed without genuine continuation - often preceding reversals.
HOW FRESHNESS DECAY WORKS
The calcFreshness() function implements linear decay:
freshness = 1.0 - (age / decayBars)
freshness = max(freshness, minFresh)
This ensures old, tested zones fade visually while fresh zones remain prominent.
WHY THESE COMPONENTS WORK TOGETHER
The synergy is based on the principle that institutional activity leaves multiple footprints:
- Swing Pivots = where retail stops cluster
- Order Blocks = where institutions entered
- FVGs = where aggressive institutional orders created imbalances
- HTF Alignment = where higher timeframe participants are active
When these footprints converge at the same price level (high confluence score), the probability of significant price reaction increases.
CONFIGURATION
- Swing Detection Length: 5-8 for intraday, 8-15 for swing trading
- HTF Timeframe: One level above trading TF (e.g., D for H4)
- Min Confluence to Display: 2 for comprehensive view, 3-4 for high-probability only
- FVGs: Disabled by default for cleaner charts
STATISTICS PANEL
Displays: Active resistance/support zones, high confluence count, swept zones, active OBs, active FVGs, current ATR, selected HTF.
ALERTS
- Price approaching high confluence zone
- Liquidity sweep detected
- Bullish/Bearish Order Block formed
- Bullish/Bearish FVG detected
TECHNICAL NOTES
- Uses User-Defined Types (UDTs) for clean data structure management
- Respects Pine Script drawing limits (500 boxes/labels/lines)
- All calculations are ATR-normalized for cross-market compatibility
RSI Swing Indicator// This source code is subject to the terms of the Mozilla Public License 2.0 at mozilla.org
//
// DESCRIPTION:
// This is an improved version of the original RSI Swing Indicator created by BalintDavid.
// It highlights swing moves between RSI overbought/oversold extremes and updates swing labels
// as price pushes to new highs or lows inside the same RSI regime.
//
// HOW TO USE:
// 1) Set the RSI source, length, and overbought/oversold levels in Inputs.
// 2) Watch the swing lines connect the last oversold to overbought (and vice-versa).
// 3) Labels show structure: HH (higher high), LH (lower high), HL (higher low), LL (lower low).
// 4) Enable "Show only last connecting line" to keep just the most recent connection.
//
// CONTACT:
// ronbelson@gmail.com
//
Advanced Market Structure [Rogman]Rogman's Advanced Market Structure Indicator
The Ultimate All-in-One Market Structure Analysis Tool for TradingView
Take your technical analysis to the next level with a comprehensive, professional-grade tool designed for traders who demand precision and clarity in their charts.
🎯 Who Is This For?
ICT/SMC Traders seeking liquidity zones and market structure analysis
Day Traders monitoring session-based price action and kill zones
Swing Traders identifying key higher timeframe levels
Price Action Traders analyzing structure breaks and trend changes
Any Serious Trader wanting a clean, comprehensive market structure overlay
✨ Key Features
📊 Market Sessions Visualization
Track the three major trading sessions with our unique bracket-style display:
Asia, London, and New York sessions are clearly marked
Sessions display as SESSION ════════════ below price action
Smart vertical stacking prevents overlapping when sessions have similar lows
Fully customizable session times for any timezone
Perfect for identifying session highs/lows and optimal kill zone timing
📈 Higher Timeframe (HTF) Levels
Never miss a key level again:
Display Daily and Weekly Open, High, and Low levels
Instant visual reference for HTF support and resistance
Separate color controls for lines and labels
Choose from Solid, Dashed, or Dotted line styles
Essential for determining HTF bias and key decision points
🔄 Automatic Swing Detection
Let the indicator do the heavy lifting:
Auto-detection of swing highs (▼) and swing lows (▲)
Configurable lookback period for sensitivity adjustment
Optional horizontal level lines extending from swing points
Customizable colors, widths, and line styles
Identify potential reversal points and structure levels instantly
💧 Liquidity Zone Mapping
See where the money is hiding:
Automatic identification of buy-side liquidity (above swing highs)
Automatic identification of sell-side liquidity (below swing lows)
Visual zones show where stop losses are clustered
Real-time tracking when liquidity gets swept
Swept zones change color — know when liquidity has been taken
📉 Multi-Method Trend Detection
Three powerful methods to confirm trend direction:
Swing Structure — Based on higher highs/lows or lower highs/lows
EMA — Trend based on price position relative to EMA
Supertrend — Uses the popular Supertrend indicator
Features include:
Optional background coloring for at-a-glance trend identification
Real-time trend status label (UPTREND/DOWNTREND/NEUTRAL)
Customizable colors and transparency
🏷️ HH/HL/LH/LL Labels
Automatic market structure labeling:
HH (Higher High) — Bullish continuation signal
HL (Higher Low) — Bullish continuation signal
LH (Lower High) — Bearish continuation signal
LL (Lower Low) — Bearish continuation signal
Color-coded for instant visual recognition
📋 Information Dashboard
All critical data at a glance:
Current ticker symbol
Trend direction and status
Daily and Weekly bias
Last swing high and low prices
Active liquidity zone count
Positionable in any corner of your chart
🔔 Built-in Alerts
Never miss a key event:
Trend change alerts (Bullish/Bearish)
Swing high/low formation alerts
Set up notifications for critical market structure changes
🎨 Fully Customizable
Every feature can be:
Toggled on/off individually via the Feature Toggles menu
Color customized to match your chart theme
Size adjusted for optimal visibility
Fine-tuned with sensitivity parameters
Organized settings groups make configuration intuitive and fast.
🚀 Why Choose This Indicator?
Feature: Benefit: All-in-One Solution. Replace multiple indicators with one comprehensive tool. Clean Design and Thoughtful visual hierarchy keep charts readable. Smart Overlap Prevention. Session bars automatically stack to avoid visual clutter. Real-Time Updates: All elements update dynamically as the price moves. Professional Quality-Built with best practices in Pine Script v6. Extensive Documentation, clear code comments, and an organized structure
📖 How to Use
Add the indicator to your TradingView chart
Enable/disable features using the Feature Toggles menu
Customize colors and settings to match your preferences
Adjust session times for your timezone
Set up alerts for trend changes and swing formations
Pro Tips:
Use session times to identify optimal entry windows during kill zones
Watch for price sweeping liquidity zones before looking for reversals
Combine HTF bias with lower timeframe entries for higher probability trades
Use swing levels as potential support/resistance for entries and targets
Monitor the dashboard for a quick market assessment before trading
⚠️ Disclaimer
This indicator is provided for educational and informational purposes only. It does not constitute financial advice. Trading involves substantial risk and is not suitable for all investors. Past performance is not indicative of future results. Always conduct your own analysis and consider your financial situation before making trading decisions.
DayTradeMind Combined High Win Rate StrategyThe DayTradeMind Combined High Win Rate Strategy is a trend-following system that relies on confluence—the idea that a trade signal is stronger when multiple independent indicators agree. Instead of entering on a single indicator's whim, it uses a "voting" system to qualify entries and a strict risk-to-reward ratio to manage exits.Here is a breakdown of the three main layers of this strategy:1. The Voting Engine (Confluence Model)The strategy tracks four indicators and assigns a "point" for a bullish or bearish bias. It requires a minimum number of points (set by minConfirmations, usually 2/4) before it even considers a trade.IndicatorBullish Condition (1 point)Bearish Condition (1 point)PurposeMACDMACD Line > Signal LineMACD Line < Signal LineMeasures short-term momentum.DonchianPrice > 20-period MedianPrice < 20-period MedianIdentifies price relative to recent range.SuperTrendPrice above trend linePrice below trend lineFilters for the "Macro" trend direction.%B (Bollinger)Price in lower-mid range (0.2–0.5)Price in upper-mid range (0.5–0.8)Prevents buying when overextended.2. The Entry TriggerHaving enough "votes" (confirmations) isn't enough to enter. The strategy waits for a trigger event to ensure you aren't entering a stale trend. An entry only occurs if the minimum confirmations are met AND one of the following happens on the current bar:MACD Cross: The MACD line crosses over the signal line.Structural Break: The price crosses over the Donchian Middle (Median) line.This "Confirmation + Trigger" approach is designed to catch the start of a momentum push rather than buying a flat market.3. Mathematical Risk ManagementThe performance you see in your backtest (like the 46.86% return) is largely driven by the 2:1 Reward-to-Risk (RR) Ratio.Stop Loss (SL): Fixed at 2% below entry.Take Profit (TP): Fixed at 4% above entry.By aiming for a target twice as large as the risk, the strategy can remain profitable even with a win rate as low as 35%–40%. Mathematically, your winning trades compensate for more than two losing trades.Visualizing the SystemTriangles: Small green (up) and red (down) triangles appear on your chart only when the Votes + Trigger align perfectly.Background Shading: Faint green or red bands show you exactly when the "Confluence" is active. If the background is gray, the indicators are in conflict.Dashboard: The table in the top-right summarizes the current "score" for each indicator, letting you know how close you are to a potential trade signal.
BBMA By K1M4K-ID- Final Validated Re-Entry//@version=6
indicator("BBMA By K1M4K-ID- Final Validated Re-Entry", overlay=true, max_labels_count=500)
// === INPUT BB ===
lengthBB = input.int(20, title="BB Period")
devBB = input.float(2.0, title="Deviation")
src = input.source(close, title="Source")
bbColorMid = input.color(color.purple, title="Mid BB Color")
bbColorTop = input.color(color.purple, title="Top BB Color")
bbColorLow = input.color(color.purple, title="Low BB Color")
showFill = input.bool(true, title="Show BB Fill")
showReEntrySignals = input.bool(true, "Show Re-Entry Signals (✅)")
showSignalTable = input.bool(true, "Show Signal Table")
// === BB CALCULATION ===
basis = ta.sma(src, lengthBB)
dev = devBB * ta.stdev(src, lengthBB)
topBB = basis + dev
lowBB = basis - dev
// === PLOT BB ===
pMid = plot(basis, title="Mid BB", color=bbColorMid, linewidth=2)
pTop = plot(topBB, title="Top BB", color=bbColorTop, linewidth=2)
pLow = plot(lowBB, title="Low BB", color=bbColorLow, linewidth=2)
fill(pTop, pLow, color=showFill ? color.new(color.purple, 85) : na, title="BB Fill")
// === INPUT MA SETTING ===
ma_func(source, length) => ta.wma(source, length)
// === MA HIGH/LOW ===
ma5_high = ma_func(high, 5)
ma10_high = ma_func(high, 10)
ma5_low = ma_func(low, 5)
ma10_low = ma_func(low, 10)
// === PLOT MA ===
p_ma5_high = plot(ma5_high, title="MA 5 High", color=color.green, linewidth=2)
p_ma10_high = plot(ma10_high, title="MA 10 High", color=color.green, linewidth=2)
fill(p_ma5_high, p_ma10_high, color=color.new(color.green, 85), title="MA High Fill")
p_ma5_low = plot(ma5_low, title="MA 5 Low", color=color.red, linewidth=2)
p_ma10_low = plot(ma10_low, title="MA 10 Low", color=color.red, linewidth=2)
fill(p_ma5_low, p_ma10_low, color=color.new(color.red, 85), title="MA Low Fill")
// === EMA 50 ===
ema50 = ta.ema(close, 50)
plot(ema50, title="EMA 50", color=color.blue, linewidth=3)
// === CSA KUKUH (LOGIKA ASLI LU - TIDAK DIUBAH) ===
var bool hasCsaBuy = false
var bool hasCsaSell = false
isCsaKukuhBuy = close > ma5_high and close > ma10_high and close > basis
isCsaKukuhSell = close < ma5_low and close < ma10_low and close < basis
if isCsaKukuhBuy and not hasCsaBuy
hasCsaBuy := true
hasCsaSell := false
else if isCsaKukuhSell and not hasCsaSell
hasCsaSell := true
hasCsaBuy := false
showCsaBuy = isCsaKukuhBuy and not hasCsaBuy
showCsaSell = isCsaKukuhSell and not hasCsaSell
plotshape(showCsaBuy, title="CSA Kukuh Buy First", location=location.belowbar, color=color.green, style=shape.labelup, text="CSAK", textcolor=color.white, size=size.small)
plotshape(showCsaSell, title="CSA Kukuh Sell First", location=location.abovebar, color=color.red, style=shape.labeldown, text="CSAK", textcolor=color.white, size=size.small)
// === CSM (HANYA SAAT KELUAR DARI DALAM BB) ===
wasInsideBB = (close >= lowBB and close <= topBB )
csmBuySignal = wasInsideBB and close > topBB
csmSellSignal = wasInsideBB and close < lowBB
plotshape(csmBuySignal, title="CSM Buy", location=location.abovebar, color=color.green, style=shape.triangleup, text="CSM", size=size.tiny)
plotshape(csmSellSignal, title="CSM Sell", location=location.belowbar, color=color.red, style=shape.triangledown, text="CSM", size=size.tiny)
// === CSA (BREAKOUT TANPA MELEWATI MID BB) ===
isCsaBuy = close > ma5_high and close > ma10_high and close <= basis
isCsaSell = close < ma5_low and close < ma10_low and close >= basis
plotshape(isCsaBuy, title="CSA Buy", location=location.belowbar, color=color.new(color.green, 60), style=shape.circle, text="CSA", size=size.tiny)
plotshape(isCsaSell, title="CSA Sell", location=location.abovebar, color=color.new(color.red, 60), style=shape.circle, text="CSA", size=size.tiny)
// === EXTREME ===
basis_ext = ta.sma(close, 20)
dev_ext = 2 * ta.stdev(close, 20)
isExtremeBuy() => ta.wma(low, 5) < basis_ext - dev_ext
isExtremeSell() => ta.wma(high, 5) > basis_ext + dev_ext
plotshape(isExtremeBuy(), title="Extreme Buy", location=location.belowbar, color=color.green, style=shape.labelup, text="E", size=size.tiny, textcolor=color.white)
plotshape(isExtremeSell(), title="Extreme Sell", location=location.abovebar, color=color.red, style=shape.labeldown, text="E", size=size.tiny, textcolor=color.white)
// === ZZL MA ===
isZzlBuy = (ma5_high > basis and ma10_high > basis and ma5_low > basis and ma10_low > basis and
(ma5_high <= basis or ma10_high <= basis or ma5_low <= basis or ma10_low <= basis))
isZzlSell = (ma5_high < basis and ma10_high < basis and ma5_low < basis and ma10_low < basis and
(ma5_high >= basis or ma10_high >= basis or ma5_low >= basis or ma10_low >= basis))
var bool zzlBuyShown = false
var bool zzlSellShown = false
if isZzlBuy and not zzlBuyShown
label.new(bar_index, low, "Z", style=label.style_label_up, color=color.green, textcolor=color.white)
zzlBuyShown := true
if not isZzlBuy
zzlBuyShown := false
if isZzlSell and not zzlSellShown
label.new(bar_index, high, "Z", style=label.style_label_down, color=color.red, textcolor=color.white)
zzlSellShown := true
if not isZzlSell
zzlSellShown := false
// ===========================================
// === VALIDASI + RE-ENTRY (H4 & H1) ===
// ===========================================
// --- Ambil data ---
= request.security(syminfo.tickerid, "240", )
wasInside_h4 = request.security(syminfo.tickerid, "240", (close >= (ta.sma(close, lengthBB) - devBB * ta.stdev(close, lengthBB) ) and close <= (ta.sma(close, lengthBB) + devBB * ta.stdev(close, lengthBB) )))
csmBuy_h4 = wasInside_h4 and request.security(syminfo.tickerid, "240", close > (ta.sma(close, lengthBB) + devBB * ta.stdev(close, lengthBB)))
csmSell_h4 = wasInside_h4 and request.security(syminfo.tickerid, "240", close < (ta.sma(close, lengthBB) - devBB * ta.stdev(close, lengthBB)))
csakBuy_h4 = close_h4 > ma5h_h4 and close_h4 > ma10h_h4 and close_h4 > basis_h4
csakSell_h4 = close_h4 < ma5l_h4 and close_h4 < ma10l_h4 and close_h4 < basis_h4
csaBuy_h4 = close_h4 > ma5h_h4 and close_h4 > ma10h_h4 and close_h4 <= basis_h4
csaSell_h4 = close_h4 < ma5l_h4 and close_h4 < ma10l_h4 and close_h4 >= basis_h4
csmBuy_h1 = request.security(syminfo.tickerid, "60", (close >= (ta.sma(close, lengthBB) - devBB * ta.stdev(close, lengthBB) ) and close <= (ta.sma(close, lengthBB) + devBB * ta.stdev(close, lengthBB) )) and close > (ta.sma(close, lengthBB) + devBB * ta.stdev(close, lengthBB)))
csmSell_h1 = request.security(syminfo.tickerid, "60", (close >= (ta.sma(close, lengthBB) - devBB * ta.stdev(close, lengthBB) ) and close <= (ta.sma(close, lengthBB) + devBB * ta.stdev(close, lengthBB) )) and close < (ta.sma(close, lengthBB) - devBB * ta.stdev(close, lengthBB)))
csakBuy_h1 = request.security(syminfo.tickerid, "60", close > ta.wma(high,5) and close > ta.wma(high,10) and close > ta.sma(close, lengthBB))
csakSell_h1 = request.security(syminfo.tickerid, "60", close < ta.wma(low,5) and close < ta.wma(low,10) and close < ta.sma(close, lengthBB))
csaBuy_h1 = request.security(syminfo.tickerid, "60", close > ta.wma(high,5) and close > ta.wma(high,10) and close <= ta.sma(close, lengthBB))
csaSell_h1 = request.security(syminfo.tickerid, "60", close < ta.wma(low,5) and close < ta.wma(low,10) and close >= ta.sma(close, lengthBB))
csmBuy_m15 = request.security(syminfo.tickerid, "15", close > (ta.sma(close, lengthBB) + devBB * ta.stdev(close, lengthBB)))
csmSell_m15 = request.security(syminfo.tickerid, "15", close < (ta.sma(close, lengthBB) - devBB * ta.stdev(close, lengthBB)))
csakBuy_d = request.security(syminfo.tickerid, "D", close > ta.wma(high,5) and close > ta.wma(high,10) and close > ta.sma(close, lengthBB))
csakSell_d = request.security(syminfo.tickerid, "D", close < ta.wma(low,5) and close < ta.wma(low,10) and close < ta.sma(close, lengthBB))
csaBuy_d = request.security(syminfo.tickerid, "D", close > ta.wma(high,5) and close > ta.wma(high,10) and close <= ta.sma(close, lengthBB))
csaSell_d = request.security(syminfo.tickerid, "D", close < ta.wma(low,5) and close < ta.wma(low,10) and close >= ta.sma(close, lengthBB))
// --- Validasi ---
validCsakH4Buy = csakBuy_h4 and ta.highest(csmBuy_h1 ? 1 : 0, 4) == 1
validCsakH4Sell = csakSell_h4 and ta.highest(csmSell_h1 ? 1 : 0, 4) == 1
validCsakH1Buy = csakBuy_h1 and ta.highest(csmBuy_m15 ? 1 : 0, 4) == 1
validCsakH1Sell = csakSell_h1 and ta.highest(csmSell_m15 ? 1 : 0, 4) == 1
validCsmH1Buy = csmBuy_h1 and (csaBuy_h4 or csakBuy_h4) and ta.highest(csmBuy_m15 ? 1 : 0, 4) == 1
validCsmH1Sell = csmSell_h1 and (csaSell_h4 or csakSell_h4) and ta.highest(csmSell_m15 ? 1 : 0, 4) == 1
validCsmH4Buy = csmBuy_h4 and (csaBuy_d or csakBuy_d) and ta.highest(csmBuy_h1 or csmSell_h1 ? 1 : 0, 4) == 1
validCsmH4Sell = csmSell_h4 and (csaSell_d or csakSell_d) and ta.highest(csmBuy_h1 or csmSell_h1 ? 1 : 0, 4) == 1
// --- Re-Entry Area ---
inReEntryBuy = low <= math.max(ma5_low, ma10_low)
inReEntrySell = high >= math.min(ma5_high, ma10_high)
// --- Flag Valid + Hit Detection ---
var bool vCsakH4B = false, vCsakH4S = false
var bool vCsakH1B = false, vCsakH1S = false
var bool vCsmH4B = false, vCsmH4S = false
var bool vCsmH1B = false, vCsmH1S = false
var bool hitCsakH4B = false, hitCsakH4S = false
var bool hitCsakH1B = false, hitCsakH1S = false
var bool hitCsmH4B = false, hitCsmH4S = false
var bool hitCsmH1B = false, hitCsmH1S = false
// Reset hit setiap candle
hitCsakH4B := false
hitCsakH4S := false
hitCsakH1B := false
hitCsakH1S := false
hitCsmH4B := false
hitCsmH4S := false
hitCsmH1B := false
hitCsmH1S := false
// Aktifkan flag saat valid
vCsakH4B := validCsakH4Buy ? true : vCsakH4B
vCsakH4S := validCsakH4Sell ? true : vCsakH4S
vCsakH1B := validCsakH1Buy ? true : vCsakH1B
vCsakH1S := validCsakH1Sell ? true : vCsakH1S
vCsmH4B := validCsmH4Buy ? true : vCsmH4B
vCsmH4S := validCsmH4Sell ? true : vCsmH4S
vCsmH1B := validCsmH1Buy ? true : vCsmH1B
vCsmH1S := validCsmH1Sell ? true : vCsmH1S
// Deteksi & reset saat re-entry
if vCsakH4B and inReEntryBuy
hitCsakH4B := true
vCsakH4B := false
if vCsakH4S and inReEntrySell
hitCsakH4S := true
vCsakH4S := false
if vCsakH1B and inReEntryBuy
hitCsakH1B := true
vCsakH1B := false
if vCsakH1S and inReEntrySell
hitCsakH1S := true
vCsakH1S := false
if vCsmH4B and inReEntryBuy
hitCsmH4B := true
vCsmH4B := false
if vCsmH4S and inReEntrySell
hitCsmH4S := true
vCsmH4S := false
if vCsmH1B and inReEntryBuy
hitCsmH1B := true
vCsmH1B := false
if vCsmH1S and inReEntrySell
hitCsmH1S := true
vCsmH1S := false
// --- Plot Re-Entry ---
//plotshape(showReEntrySignals and hitCsakH4B, location=location.belowbar, color=color.teal, style=shape.labelup, text="✅", size=size.normal)
//plotshape(showReEntrySignals and hitCsakH4S, location=location.abovebar, color=color.orange, style=shape.labeldown, text="✅", size=size.normal)
//plotshape(showReEntrySignals and hitCsakH1B, location=location.belowbar, color=color.green, style=shape.labelup, text="✅", size=size.small)
//plotshape(showReEntrySignals and hitCsakH1S, location=location.abovebar, color=color.red, style=shape.labeldown, text="✅", size=size.small)
//plotshape(showReEntrySignals and hitCsmH1B, location=location.belowbar, color=color.green, style=shape.labelup, text="✅ CSM", size=size.tiny)
//plotshape(showReEntrySignals and hitCsmH1S, location=location.abovebar, color=color.red, style=shape.labeldown, text="✅ CSM", size=size.tiny)
//plotshape(showReEntrySignals and hitCsmH4B, location=location.belowbar, color=color.teal, style=shape.labelup, text="✅ CSM", size=size.tiny)
//plotshape(showReEntrySignals and hitCsmH4S, location=location.abovebar, color=color.orange, style=shape.labeldown, text="✅ CSM", size=size.tiny)
// ===========================================
// === TABEL SIGNAL H1 & H4 (FINAL) ===
// ===========================================
var table sigTable = table.new(position.top_right, 4, 5, border_width=1)
if barstate.islast and showSignalTable
table.cell(sigTable, 0, 0, "TF", text_color=color.white, bgcolor=color.black)
table.cell(sigTable, 1, 0, "Signal", text_color=color.white, bgcolor=color.black)
table.cell(sigTable, 2, 0, "Status", text_color=color.white, bgcolor=color.black)
table.cell(sigTable, 3, 0, "Re-Entry", text_color=color.white, bgcolor=color.black)
table.cell(sigTable, 0, 1, "H4", text_color=color.white, bgcolor=color.black)
table.cell(sigTable, 1, 1, "CSAK Buy", text_color=color.green, bgcolor=color.new(color.green, 90))
table.cell(sigTable, 2, 1, vCsakH4B ? "✅ Valid" : "-", text_color=vCsakH4B ? color.green : color.gray, bgcolor=color.new(vCsakH4B ? color.green : color.gray, 90))
table.cell(sigTable, 3, 1, hitCsakH4B ? "✅ Hit" : "-", text_color=hitCsakH4B ? color.teal : color.gray, bgcolor=color.new(hitCsakH4B ? color.teal : color.gray, 90))
table.cell(sigTable, 0, 2, "H4", text_color=color.white, bgcolor=color.black)
table.cell(sigTable, 1, 2, "CSAK Sell", text_color=color.red, bgcolor=color.new(color.red, 90))
table.cell(sigTable, 2, 2, vCsakH4S ? "✅ Valid" : "-", text_color=vCsakH4S ? color.red : color.gray, bgcolor=color.new(vCsakH4S ? color.red : color.gray, 90))
table.cell(sigTable, 3, 2, hitCsakH4S ? "✅ Hit" : "-", text_color=hitCsakH4S ? color.orange : color.gray, bgcolor=color.new(hitCsakH4S ? color.orange : color.gray, 90))
table.cell(sigTable, 0, 3, "H1", text_color=color.white, bgcolor=color.black)
table.cell(sigTable, 1, 3, "CSM Buy", text_color=color.green, bgcolor=color.new(color.green, 90))
table.cell(sigTable, 2, 3, vCsmH1B ? "✅ Valid" : "-", text_color=vCsmH1B ? color.green : color.gray, bgcolor=color.new(vCsmH1B ? color.green : color.gray, 90))
table.cell(sigTable, 3, 3, hitCsmH1B ? "✅ Hit" : "-", text_color=hitCsmH1B ? color.teal : color.gray, bgcolor=color.new(hitCsmH1B ? color.teal : color.gray, 90))
table.cell(sigTable, 0, 4, "H1", text_color=color.white, bgcolor=color.black)
table.cell(sigTable, 1, 4, "CSM Sell", text_color=color.red, bgcolor=color.new(color.red, 90))
table.cell(sigTable, 2, 4, vCsmH1S ? "✅ Valid" : "-", text_color=vCsmH1S ? color.red : color.gray, bgcolor=color.new(vCsmH1S ? color.red : color.gray, 90))
table.cell(sigTable, 3, 4, hitCsmH1S ? "✅ Hit" : "-", text_color=hitCsmH1S ? color.orange : color.gray, bgcolor=color.new(hitCsmH1S ? color.orange : color.gray, 90))
RSI Chebyshev Pro with Goldilocks Fractals - NR [NPR21]RSI Chebyshev Pro with Goldilocks Fractals - Non-Repaint
==================================================================================
**CHART INFORMATION**
The example chart shown displays:
- Instrument: /MNQ (Micro E-mini Nasdaq-100 Futures)
- Timeframe: 2-minute
- Indicator: RSI Chebyshev Pro with Goldilocks Fractals - NR
==================================================================================
═════════════════════════════════════════════════════════════
THE PROBLEM
Standard RSI is too choppy and noisy – it whipsaws all over the place in volatile markets like futures, giving false oversold/overbought signals that burn you on entries. I was sick of missing real reversals or getting stopped out on fakeouts. I wanted something smoother that still catches the big momentum shifts without lagging too much, plus actual market structure to make it more reliable for quick trades.
═════════════════════════════════════════════════════════════
WHAT MAKES THIS UNIQUE
Unlike basic RSI indicators that use simple moving average smoothing, this combines several advanced techniques that aren't commonly found together:
1. Chebyshev Type I Filtering - Signal processing mathematics (not basic EMAs) that kills noise while keeping real swings sharp. Most RSI smoothing just blurs everything - this keeps responsiveness without the chop.
2. MAMA Adaptive Period - The moving average adapts to actual market cycles using the MESA algorithm, not fixed periods that lag in changing conditions.
3. RSI Pivot Fractals - These aren't price fractals slapped onto RSI. The fractals detect pivots directly on RSI values at extreme levels, with signals appearing back at the exact pivot bar (not current bar), showing you where the actual reversal happened.
4. True Non-Repainting Implementation - Signals appear delayed BUT locked at the historical pivot location forever. What you see in backtests is exactly what appeared live - no vanishing signals, no shifting.
5. All-in-One Integration - Instead of running 3-4 separate indicators (RSI + fractals + patterns + smoothing), everything works together in a single, optimized calculation with confluence built in.
This isn't just RSI with some Williams Fractals thrown on top - it's a complete rethink of how to identify high-probability RSI reversals using signal processing and adaptive algorithms.
═════════════════════════════════════════════════════════════
ORIGIN & ENHANCEMENTS
Original Source: ChartPrime RSI Chebyshev indicator
Converted & Enhanced by: NPR21
What I Added:
✅ Converted to Pine Script v6 - Made this available to TradingView traders
✅ Goldilocks Fractals - RSI alone doesn't tell you about price structure. These fractals nail those "just right" pivot points where highs/lows confirm. I kept seeing RSI extremes that reversed hard when they lined up with fractals - this was the missing piece for confluence.
✅ 100% Non-Repainting - I've been burned by repainters. You'd backtest something, looks amazing, then live it vanishes or shifts. Lost real money on that. This is rock-solid: signals show delayed but once they're there, they're locked forever. Makes backtesting trustworthy.
✅ Candlestick Patterns - Engulfing, Morning Star, Evening Star detection for confluence
✅ Customizable Visuals - BUY/SELL labels, multiple display styles, full color/size control
✅ Complete Alert System - Get notified on all signal types
═════════════════════════════════════════════════════════════
HOW IT WORKS
Chebyshev Filtering:
Like putting noise-canceling on your RSI – smooths out jittery ups and downs from random price spikes without flattening into useless lag. It's signal processing math that keeps important swings sharp while killing BS noise. Way better than simple EMA smoothing that blurs everything.
The Components:
Ultra-Smooth RSI - Chebyshev Type I filtering + adaptive MAMA algorithm
Goldilocks Fractals - Pivot detection confirmed after N bars (default 5)
Pattern Recognition - Detects Engulfing, Morning/Evening Star patterns
Visual Styles - Candle Trend (hollow green/solid red) or traditional candles
═════════════════════════════════════════════════════════════
SIGNAL DELAY vs REPAINTING
✅ THIS HAS SIGNAL DELAY (GOOD) - NOT REPAINTING (BAD)
Signal Delay:
Signals appear after N bars (default 5 bar delay)
Once visible, NEVER disappears or moves
Perfect for backtesting - 100% reliable
What you see in history is what you'd see live
Why the Delay:
To confirm a pivot, we need to see price didn't go lower/higher in the next N bars. This confirmation makes signals reliable. The delay is the price for trustworthy signals.
Want faster? Drop Fractal Periods to 2-3 (more signals, less confirmation).
════════════════════════════════════════════════════════════
HOW I TRADE IT
My /MNQ Scalping (1-3 min charts):
LONG: BUY label appears (down fractal + maybe morning star/engulfing) → Check RSI crossing up from oversold (<30) → Confirm with volume → Long with stop below fractal low → Target 1-2R
SHORT: SELL label (up fractal + maybe evening star) → RSI from overbought → Short with stop above
Filter: Only longs in uptrends (watch the MA). Exit partials if momentum fades.
Best Timeframes: 1-5 min for futures scalping. Works on 15 min for swings but for pure scalping, stay under 5 min in high-vol sessions.
═════════════════════════════════════════════════════════════
SETTINGS I USE
Standard Setup:
Length: 24, Smoothing: 3
Auto MA: ON, Multiplier: 1-2
Fractal Periods: 5 (good confirmation)
Choppy Days: Smoothing to 5
Aggressive: Fractal Periods to 3
Pro Tip: Pair with volume or price EMA. Love when fractal BUY + engulfing bull align. Use Candle Trend style. Test on demo first.
═════════════════════════════════════════════════════════════
KEY SETTINGS
RSI: Length (24), Smoothing (3), Auto MA, Style (Candle/Candle Trend)
Fractals: Periods (5 = more reliable, 3 = faster/riskier), Label colors/sizes, Offsets
Alerts: All signals fire only on confirmed, non-repainting events
═════════════════════════════════════════════════════════════
DISCLAIMERS
⚠️ Tool, not a complete system - use proper risk management
⚠️ Signals have delay for reliability - not for instant entries
⚠️ Best with price action, volume, other analysis
⚠️ Test on demo before live trading
═════════════════════════════════════════════════════════════
Questions? Comment below!
NPR21
Absorption Pro V4This indicator detects absorption-style reversal setups and scores them with a multi-factor model.
It builds key levels from ZigZag/Fibonacci and round numbers across multiple timeframes, then flags potential absorption candles using volume and a delta-proxy filter plus strict candle-structure rules. Signals are validated with trend context (MA/SMMA/EMA/ATR), VWAP positioning, and optional momentum/volatility filters (RSI, Stoch, CCI, MACD, ADX, Volume Profile). Only score-threshold crosses can trigger long/short markers and alerts (defaults tuned for NQ).
WatchmenThe Watchmen Indicator tracks potential market maker breakeven zones using dynamic open/close ranges (no wicks in Fib calc). It expands the range until the 50% level is breached by the full candle range, then resets. Green = long/down setups (buy retrace), Red = short/up setups (sell retrace). Uses only open/close for levels, high/low for breaches. Ideal for mean-reversion in trends.
Reversal Detection v3.0 - Real-Time Pro (Non-Repainting)═══════════════════════════════════════════════════════
REVERSAL DETECTION PRO v3.0 - NON-REPAINTING
Adaptive Zigzag Reversal Detection for Scalpers & Day Traders
═══════════════════════════════════════════════════════
WHY I BUILT THIS
Most reversal indicators out there repaint like crazy, flipping signals after the fact and making you second-guess every trade. Plus they're too noisy in choppy markets or way too laggy in trends, so I kept missing entries or getting faked out. I wanted something solid that sticks to its guns without repainting and adapts to volatility without me tweaking it every 5 minutes.
This indicator solves those problems by using an adaptive zigzag algorithm that adjusts to market volatility automatically. Once a reversal signal appears, it's locked in place - no repainting, no disappearing signals. The ATR-based sensitivity system means it works across different market conditions without constant adjustment.
WHAT YOU'LL SEE ON YOUR CHART
When you add this indicator, here's what shows up:
- GREEN LABELS with "REVERSAL" and price level = Bullish reversal confirmed at swing low
- RED LABELS with "REVERSAL" and price level = Bearish reversal confirmed at swing high
- HORIZONTAL LINES extending from each reversal = Reference for stops and targets
- PREVIEW LABELS (lighter colors) = Potential reversals forming in real-time (optional)
- CANDLE COLORS: Green for bullish trends, red for bearish, purple for neutral
- PURPLE BOXES = Supply/demand zones marking reversal areas
- INFO TABLE (top corner) = Shows sensitivity, current ATR, threshold, and trend status
The indicator uses three EMAs (9/14/21 periods) to determine trend direction, which drives the candle coloring system. This helps you see whether you're in a bullish, bearish, or choppy market at a glance.
HOW IT WORKS
The core reversal detection uses a zigzag calculation that tracks price swings and identifies reversals when price moves by a dynamically calculated threshold. The reversal amount is determined by taking the maximum of three values:
1. Percentage-based threshold (adjusts to instrument price level)
2. Absolute price movement threshold (minimum move required)
3. ATR-based threshold (adapts to current volatility)
This multi-factor approach ensures the indicator works consistently across different assets and market conditions. The non-repainting mechanism uses confirmed bar data - once a pivot is detected at a swing high or low, the label and horizontal line are permanently locked at that exact wick price.
Five sensitivity presets automatically adjust the ATR multiplier:
- Very High (0.8x ATR) = More signals, captures small moves
- High (1.2x ATR) = Active trading
- Medium (2.0x ATR) = Balanced (default)
- Low (2.8x ATR) = Filters noise
- Very Low (3.5x ATR) = Only major reversals
Advanced users can select "Custom" to manually tune ATR multiplier, percentage threshold, and calculation method.
HOW I USE IT
I mainly trade /MNQ futures on 1-5 minute charts for scalping - that's my bread and butter. The indicator works decent on other stuff like stocks or forex too, but I dial sensitivity up for faster scalps during volatile sessions.
My typical trade setup:
1. Wait for a confirmed REVERSAL label (green for long, red for short)
2. Check that it lines up with the EMA trend color (bullish candles for longs, bearish for shorts)
3. If it's a "strong" signal where the reversal hits during a trend flip, that's my green light
4. Quick check for nearby supply/demand zones to avoid fighting them
5. Enter with a tight stop below/above the reversal line
6. Target 1:1 or 2:1 risk/reward, usually out in 5-10 minutes
The horizontal lines from each reversal give me logical stop placement levels, and the supply/demand zones help identify potential profit targets or areas to avoid.
SETTINGS & CUSTOMIZATION
Signal Modes:
- Confirmed Only = Most reliable, only shows locked-in signals (recommended)
- Confirmed + Preview = Shows both confirmed and potential signals
- Preview Only = For testing/development
Sensitivity Presets:
Start with "Medium" and adjust based on your trading style:
- Scalping volatile sessions = "High" or "Very High"
- Day trading = "Medium"
- Swing trading = "Low" or "Very Low"
Display Options:
- Choose candle display type (Solid, Trend, Bars, Volume, None)
- Show/hide supply/demand zones
- Adjust zone box extension length
- Customize info table position and size
- Control maximum lines displayed
Alert System:
- Bullish/Bearish reversal alerts
- EMA trend change alerts
- Strong signal alerts (reversal + trend alignment)
- "Any reversal" catch-all alert
IMPORTANT - READ THIS FIRST
Don't rely on this indicator alone. Always pair it with your own price action or volume confirmation, because no indicator is perfect. Avoid cranking sensitivity too high in ranging markets or you'll get whipped. Test on demo first, and remember it's non-repainting so signals are final, but preview mode can tease you into early entries if you're not patient.
Risk management is key - don't size up just because a signal looks good. This indicator helps identify potential reversals, but YOU still need to manage your trades, set proper stops, and control position size based on your account risk tolerance.
WHAT MAKES THIS DIFFERENT
Unlike simple pivot indicators or manual support/resistance drawing:
- Adapts automatically to volatility changes (ATR-based)
- Never repaints - signals lock in place permanently
- Reversal detection works with trend context (EMAs)
- Supply/demand zones mark key structural levels
- One-click sensitivity adjustment via presets
- Works across multiple timeframes and instruments
The zigzag reversal algorithm adapts to volatility using ATR, while the EMA system provides trend context so you're not trading reversals blindly against the trend. The supply/demand zones help identify key levels where price has reversed before. It's built specifically for active traders who need reliable, non-repainting signals.
BEST PRACTICES
✅ DO:
- Start with "Medium" sensitivity on demo account
- Wait for confirmed signals before entering
- Use horizontal lines for stop placement
- Check trend context (candle colors) before trading reversals
- Combine with volume analysis or price action
- Test different sensitivity settings for your instrument
❌ DON'T:
- Trade every signal blindly without context
- Use "Very High" sensitivity in choppy/ranging markets
- Ignore the trend direction (candle colors)
- Enter on preview labels (they can disappear)
- Skip proper risk management
- Overtrade just because signals appear
TECHNICAL SPECIFICATIONS
- Pine Script Version: v6
- Non-Repainting: Yes (confirmed signals only)
- Uses security(): No (no higher timeframe data)
- Uses non-standard chart types: No (all calculations on real OHLC)
- Alert Compatible: Yes (7 alert types)
- Calculations: Current timeframe only, no lookahead bias
DISCLAIMER
This indicator is for educational purposes only and does not constitute financial advice. Trading futures, stocks, and forex involves substantial risk of loss and is not suitable for all investors. Past performance is not indicative of future results. Always use proper risk management, never risk more than you can afford to lose, and test thoroughly on demo accounts before live trading.
═══════════════════════════════════════════════════════
© 2025 NPR21 - Reversal Detection Pro v3.0
Built by a trader, for traders
═══════════════════════════════════════════════════════
Weinstein Stage AnalysisWeinstein Stage Analysis
This is an enhanced version of Stan Weinstein's classic Stage Analysis, optimized for visual clarity on dark themes. The indicator instantly colors your candlesticks based on the current Weinstein Stage using a bright, fully opaque color scheme that stands out strongly even on dark charts.
Key Features:
- Uses Weekly 30-period SMA (customizable length) as the primary reference line
- Supports "Within Range %" parameter – set to 0% for super-strong stocks that must stay clearly above/below the MA
- Four distinct stages with vivid colors:
• Stage 1 (Accumulation) – Bright Cyan (#00FFFF) – Stock is basing or consolidating near the MA
• Stage 2 (Uptrend) – Bright Green (#00CD00) – Strong uptrend, price clearly above the weekly MA
• Stage 3 (Topping) – Bright Orange (#FFAA00) – Price is still above MA but weakening (potential distribution)
• Stage 4 (Downtrend) – Bright Red (#FF0000) – Strong downtrend, price clearly below the weekly MA
- Automatic stage transition logic with perfect color persistence (no flickering)
- Super visible on both light and dark themes – colors are 100% opaque and highly saturated
- Plots the Weekly 30 SMA as a thick white line for easy reference
How to Use:
1. Add to any chart (works best on daily or weekly timeframes)
2. For very strong momentum stocks, set "Within Range %" to 0% – this forces the indicator to only show Stage 2 when price is clearly above the MA
3. Use default 30-period length or adjust based on your preference
4. Watch for clean stage transitions – especially the switch from Stage 3 (orange) to Stage 4 (red) as a strong sell signal, or Stage 1 (cyan) to Stage 2 (green) as a powerful buy signal
ORB + Key Session Levels (QC)Overview
A comprehensive session-based levels indicator that plots Opening Range Breakout (ORB) levels alongside key session highs and lows from Asian, London, and New York trading sessions.
Features
• Opening Range Breakout (ORB) with configurable duration (5m/15m/30m/1hr/custom)
• Previous Day High/Low with two modes: RTH Only (9:30-4:00 ET) or Full Session (6pm-5pm ET for futures)
• Asian, London, NY AM, and NY PM session levels
• Kill Zones mode (non-overlapping) vs Full Sessions mode
• Fair Value Gap detection with optional mitigation removal
• HTF Bias dashboard showing market structure
• Lines extend from the exact candle where highs/lows occurred
• Alerts for all level breaks
Kill Zone Defaults (ET)
• Asian: 8:00 PM - 12:00 AM
• London: 2:00 AM - 5:00 AM
• NY AM: 8:30 AM - 11:00 AM
• NY PM: 1:30 PM - 4:00 PM
How To Use
1. Select Session Mode (Kill Zones or Full Sessions)
2. Choose PDH/PDL Source (RTH for equities, Full Session for futures)
3. Customize session times as needed
4. Set up alerts for level breaks
All times are in Eastern Time (ET) and fully customizable.
This indicator is for educational purposes only. Not financial advice.






















