2026 CHRISTMAS PRESENT CHRISTMAS PRESENT
Overview
The Cash Detector is a comprehensive trading strategy that combines momentum analysis with price action confirmation to identify high-probability entry points. This strategy is designed to capture trend reversals and continuation moves by requiring multiple confirming signals before entry, significantly reducing false signals common in single-indicator systems.
Strategy Background
The strategy is built on the principle of confluence trading requiring multiple technical factors to align before taking a position. It focuses on two critical phases of market rotation:
Q2 Momentum Phase: Uses MACD crossovers to identify shifts in market momentum, signaling when bulls or bears are gaining control.
Q4 Trigger Phase: Employs engulfing candlestick patterns to confirm strong directional pressure and validate the momentum signal with actual price action.
By combining these elements, the strategy filters out weak signals and focuses only on setups where both momentum AND price action agree on direction.
Key Features
Dual Confirmation System: Requires both MACD momentum shift and engulfing candle pattern
RSI Filter: Optional overbought/oversold filter to avoid extreme conditions
Built-in Risk Management: Configurable stop loss and take profit levels
Performance Dashboard: Real-time ROI metrics displayed on chart
Full Backtesting: Strategy mode allows historical performance analysis
Trading Rules
LONG ENTRY BUY
All conditions must occur on the same candle:
1. Momentum Confirmation:
MACD line crosses above signal line bullish crossover
2. Price Action Confirmation:
Bullish engulfing pattern forms:
Current close greater than previous open
Current open less than previous close
Current close greater than current open
3. RSI Filter Optional:
RSI less than 70 not overbought
Visual Signal: Green LONG label appears below the candle
SHORT ENTRY SELL
All conditions must occur on the same candle:
1. Momentum Confirmation:
MACD line crosses below signal line bearish crossover
2. Price Action Confirmation:
Bearish engulfing pattern forms:
Current close less than previous open
Current open greater than previous close
Current close less than current open
3. RSI Filter Optional:
RSI greater than 30 not oversold
Visual Signal: Red SHORT label appears above the candle
Exit Rules
Stop Loss Default 2 percent
Long: Exit if price drops 2 percent below entry
Short: Exit if price rises 2 percent above entry
Take Profit Default 4 percent
Long: Exit if price rises 4 percent above entry
Short: Exit if price drops 4 percent below entry
Input Parameters
Indicator Settings
MACD Fast Length: 12 default
MACD Slow Length: 26 default
RSI Length: 14 default
Risk Management
Use Stop Loss: Enable or disable stop loss
Stop Loss percent: Percentage risk per trade default 2 percent
Use Take Profit: Enable or disable take profit
Take Profit percent: Target profit per trade default 4 percent
Filters
Use RSI Filter: Enable or disable RSI overbought oversold filter
RSI Overbought: Upper threshold default 70
RSI Oversold: Lower threshold default 30
Performance Metrics
The built-in dashboard displays:
Net Profit: Total profit loss in currency and percentage
Total Trades: Number of completed trades
Win Rate: Percentage of profitable trades
Profit Factor: Ratio of gross profit to gross loss
Average Win Loss: Mean profit per winning losing trade
Max Drawdown: Largest peak to trough decline
Best Practices
1. Timeframe Selection: Works on multiple timeframes test on 15min 1H 4H and daily
2. Market Conditions: Most effective in trending markets with clear momentum
3. Risk Reward Ratio: Default 1:2 ratio 2 percent risk 4 percent reward is conservative adjust based on backtesting
4. Combine with Context: Consider overall market trend and support resistance levels
5. Backtest First: Always backtest on your specific instrument and timeframe before live trading
Risk Disclaimer
This strategy is for educational purposes. Past performance does not guarantee future results. Always:
Backtest thoroughly on historical data
Paper trade before using real capital
Use proper position sizing and risk management
Never risk more than you can afford to lose
Customization Tips
Aggressive traders: Reduce stop loss to 1.5 percent increase take profit to 5 percent
Conservative traders: Increase stop loss to 3 percent reduce take profit to 3 percent
Ranging markets: Enable RSI filter to avoid false breakouts
Strong trends: Disable RSI filter to catch all momentum shifts
Technical Details
Indicators Used:
Moving Average Convergence Divergence MACD
Relative Strength Index RSI
Candlestick Pattern Recognition
Strategy Type: Trend following with momentum confirmation
Best Suited For: Stocks Forex Crypto Indices
Version 1.0
Compatible with Pine Script v5
חפש סקריפטים עבור "30年国债收益率"
Rolling Volume Profile [Matrix Volume Heatmap] by NXT2017Description
This indicator offers a unique visual approach to Volume Profile analysis. Instead of the traditional histogram bars or boxes, this script renders a Rolling Volume Profile as a background "Matrix Heatmap" directly on your chart.
By dividing the price action of the most recent N-candles into 30 horizontal zones (buckets), it visualizes where the most trading activity has occurred within your defined lookback period. The visualization uses dynamic transparency to highlight the Point of Control (POC) and high-volume nodes, while fading out low-volume areas.
🧠 How it Works
The script operates on a "Rolling Window" basis, meaning it recalculates the profile at every bar to reflect the immediate market context.
Dynamic Range: It calculates the highest High and lowest Low of the user-defined Lookback Length (default: 1000 bars).
Bucket Slicing: This vertical range is divided into 30 equal price buckets.
Volume Distribution (Overlap Logic): The script iterates through the historical data. If a candle is large and spans multiple buckets, its volume is distributed proportionally across those buckets. This ensures a more realistic profile compared to simply assigning volume to the close price.
Heatmap Visualization:
The script calculates the Maximum Volume (POC) within the profile.
It uses a Reference Length to normalize this maximum.
Dynamic Opacity: Zones with volume close to the maximum are rendered opaque (solid). Zones with low relative volume become highly transparent. This creates an automatic "Heatmap" effect, allowing you to instantly spot the most significant price levels.
⚙️ Settings
Lookback Length (candles): Defines how far back the profile calculates volume (e.g., 1000 bars).
POC Reference Length: Defines the smoothing window for the 100% volume baseline. Increasing this stabilizes the color changes; decreasing it makes the heatmap more reactive to sudden volume spikes.
Profil Color: Choose the base color for the matrix. The transparency is calculated automatically.
💡 Use Case
This tool is ideal for traders who want to see the "Value Area" of the current range without cluttering the chart with complex boxes or side-bars. It works excellent as a background context tool to identify:
High Volume Nodes (Support/Resistance)
Low Volume Nodes (Price gaps/Rejection areas)
Migrating Points of Control (Trend direction)
CRR Range Timer (Recarga)What this indicator does (CRR Range Timer – “Recarga”)
In simple words:
Defines a price range (your “reload zone”)
You set:
Zona Low → bottom of the range (e.g. 4210.0)
Zona High → top of the range (e.g. 4220.0)
Optional Tolerancia in ticks, to make the zone a bit wider.
The script automatically calculates zonaMin and zonaMax and checks if the current close is inside that zone.
Counts how long price stays inside that range
If close is inside the zone → enRango = true.
It counts consecutive bars inside the zone: barrasEnRango.
It converts that into time:
Uses your chart timeframe (timeframe.in_seconds(timeframe.period))
Calculates total seconds → minutes → then splits into:
Days (d)
Hours (h)
Minutes (m)
Example text: 2d 5h 30m means price has been stuck inside that range for 2 days, 5 hours and 30 minutes.
Shows a HUD table with the range information
It creates a small table (HUD) on the chart (position configurable: top/bottom left/center/right) with:
Header row
"CRR RANGE TIMER"
"Recarga"
Symbol (e.g. XAUUSD)
Row 2
"Estado" → status: "En RANGO" (inside) or "Fuera RANGO" (outside), with green/red color
The time it has been in range: Xd Yh Zm
Row 3
"Zona" → the exact price range zonaMin - zonaMax
"Barras: N" → number of bars inside the range
Draws a text label on the chart near price
When price is inside the zone and Mostrar texto sobre el precio is ON:
It shows a label like:
Recarga: 0d 3h 15m
Zona: 4210.00 - 4220.00
The label moves with the latest bar near the current price.
Optional background highlight
When mostrarBg is true and price is inside the range, the background of the chart in that bar is tinted (teal, very transparent).
This visually marks the “reload” area so you can see clearly when the market is stuck there.
How to use it to trade and “win” (trading logic idea)
This tool is not a buy/sell signal by itself.
It is a timer of accumulation / ranging in a specific price zone.
Think of it like this:
“The more time price spends inside a narrow zone, the stronger the potential move when it finally breaks out.”
Main use cases
Detect long consolidations before a big move
Choose an important zone: for example a NY range, a London range, or a zone between two key levels (support/resistance, supply/demand, OB, etc).
Set Zona Low and Zona High around that area.
Let the indicator count time:
If the HUD shows only a few minutes/bars, it’s a fresh range.
If the HUD shows many hours or even days, the market is “charging” (recargando) in that zone.
Trading idea:
You wait for a strong breakout of that zone after a good amount of “recarga” time.
The longer the recarga, the more aggressive the move can be when it finally escapes.
Filter bad trades inside dead ranges
Many traders lose money trading inside choppy ranges, especially in NY afternoon or Asia when the market is asleep.
With this indicator:
If you see the HUD saying En RANGO and 0d 2h 45m for example,
You know the market has been stuck almost 3 hours there.
You can create a rule for yourself:
“No new trades when price is inside my recarga box for more than X minutes/hours.”
That protects you from overtrading in low-volatility chop.
Objective measure of “how long it has been loading”
Instead of “it feels like it’s ranging”, you have a number:
On a 5m chart:
12 bars in range = 60 minutes
48 bars in range = 4 hours
On a 15m chart:
16 bars in range = 4 hours
The indicator does this math for you and displays it clearly.
Simple trading playbook example
You can adapt, but here’s a very simple way to use it:
Define your key zone
Use an important range: yesterday’s NY range, an accumulation box around a key level, or a consolidation before news.
Set Zona Low and Zona High to cover that area.
Optionally add Tolerancia (a few ticks) so small spikes don’t reset the timer.
Wait for recarga
Watch the HUD:
If time < 30–60 minutes → market still “loading”, small opportunities.
If time ≥ 2–4 hours (depending on timeframe and instrument) → stronger compression, potential for bigger breakout.
Plan your trade around the breakout
Don’t chase random candles inside the range.
Wait for:
A clear close above the high of the zone → bullish breakout idea.
A clear close below the low of the zone → bearish breakout idea.
Combine with your other tools (volume, structure, SMC, your CRR dashboard, etc) to confirm direction.
Risk management
Your stop can be placed:
Just inside the box (back inside the range = invalid breakout).
Target:
Previous swing levels, liquidity pools, or a multiple of your risk (1:2, 1:3, etc).
Session Sweep System – WarRoomXYZ V1WarRoom Session Sweep System v1 is a open-source institutional trading framework built to identify liquidity behavior across Asia, London, and New York sessions.
It combines session-based liquidity mapping, sweep detection, daily expansion modeling, and trend confirmation into a unified, timing-driven system optimized for XAUUSD, FX pairs, indices, and any instrument with session-dependent volatility.
This tool does not attempt to predict direction with arbitrary oscillators.
Instead, it focuses on the underlying market mechanisms that drive price:
liquidity, timing, expansion, and trend alignment.
Below is a detailed explanation of what the script does, how its components work, and how traders can use it effectively.
🔹 1. Session Liquidity Mapping
The script automatically identifies the Asia (00:00–06:00 GMT), London (07:00–12:00 GMT), and New York (13:00–17:00 GMT) sessions and builds real-time session ranges.
Each session creates a liquidity pool.
Trading institutions frequently sweep the high or low of one session before delivering the real move in the next session.
This script captures that behavior by:
►Drawing session range boxes
►Tracking previous session highs/lows
►Highlighting high-probability sweep locations
These ranges are essential reference points for timing entries and exits.
🔹 2. Liquidity Sweep Detection (Buy & Sell Sweeps)
The indicator identifies when price runs a previous session high/low and rejects back inside the range, which is commonly interpreted as a liquidity sweep.
The following sweep types are monitored:
►London sweeping Asia
►New York sweeping London
►Asia sweeping New York
►Daily sweep of PDH/PDL
Sweeps signal that liquidity has been collected and that a potential reversal or continuation is likely.
These are marked clearly on the chart for real-time decision-making.
🔹 3. Killzone Timing Model (GMT Time)
Market manipulation and expansion often occur during specific time windows.
The script highlights these institutional killzones:
►London Killzone: 07:00–10:00 GMT
►New York Killzone: 13:30–15:30 GMT
►NY PM Session: 19:00–21:00 GMT
Sweeps occurring inside these windows carry a significantly higher probability.
The timing layer helps filter out low-quality setups.
🔹 4. Daily Range & ADR Expansion Engine
A dedicated panel displays:
►Current day range
►ADR (Average Daily Range)
►Expansion stage (Early / Developed / Extended)
►PDH/PDL swept or intact
►Overall session bias
This allows traders to understand whether the daily move is likely to continue or reverse.
For example:
►Early expansion → trend continuation likely
►Extended expansion → reversal setups become more probable
This is useful for intraday targets and risk management.
🔹 5. MA Cloud Trend Model (Fast/Slow Structure)
To align liquidity behavior with directional conviction, the script includes a configurable MA engine:
►Fast & slow MA
►MA cloud
►Slope-based trend coloring
►Trend background
►MA cross alerts
The cloud provides trend confirmation without relying on oscillators.
Trades are higher quality when the sweep direction aligns with the MA trend.
🔹 6. How the Components Work Together
The script integrates several institutional concepts into one coherent model:
►Sessions define liquidity pools
►Sweeps identify stop-hunts and reversals
►Killzones define optimal timing
►MA Cloud confirms directional bias
►ADR engine indicates expansion potential
This creates a structured framework:
Sweep → Timing → Trend → Expansion → Execution
Each component strengthens the others, forming a robust decision-making model.
🔹 7. How to Use the Indicator (Practical Guide)
✔ Look for a sweep of a previous session level
When price runs a session high/low and closes back inside, liquidity has likely been collected.
✔ Confirm timing
Sweeps inside London or NY killzones tend to produce the strongest moves.
✔ Confirm trend
Use MA cloud direction and slope:
►Cloud green → long setups preferred
►Cloud red → short setups preferred
✔ Check ADR panel
If the day has already expanded significantly, reversal setups are more likely.
If expansion is still early, continuation setups are favored.
✔ Plan your trade
Common targets include:
►Opposite side of session range
►ADR High/Low
►PDH/PDL
Stops are typically placed beyond the sweep wick.
This creates a repeatable, rule-based approach to intraday liquidity trading.
🔹 8. Why This Script Is Original
This is not a mashup of existing open-source indicators.
It introduces:
►A custom session-linked liquidity sweep engine
►A structured daily expansion model
►Integrated killzone timing aligned with GMT
►A unified bias panel merging sweeps, ADR, and session manipulation
►A trend confirmation layer designed around session behavior
While it uses known institutional concepts, their integration, execution, and timing framework are unique, purpose-built, and not directly found in open-source scripts.
🔹 9. Suitable Markets
This indicator works best on:
►XAUUSD
►Major FX pairs
►US indices
►Synthetic markets with session cycles
Ideal timeframes: 1m, 5m, 15m, 30m
🔹 10. Limitations / Notes
This is an analytical tool, not a buy/sell signal generator
All sweeps are confirmed at candle close (non-repaint)
The tool assumes GMT session windows unless chart time differs
Users must practice risk management and entry triggers manually
Disclaimer
This script is provided for informational and educational purposes only. It does not provide financial, investment, or trading advice, and it does not guarantee profits or future performance. All decisions made based on this script are solely the responsibility of the user.
This script does not execute trades, manage risk, or replace the need for trader discretion. Market behavior can change quickly, and past behavior detected by the script does not ensure similar future outcomes.
Users should test the script on demo or simulation environments before applying it to live markets and must maintain full responsibility for their own risk management, position sizing, and trade execution.
Trading involves risk, and losses can exceed deposits. By using this script, you acknowledge that you understand and accept all associated risks.
On Balance Volume [BrightSideTrading]
# On Balance Volume - Complete User Guide
## Overview
This enhanced OBV indicator provides clean, actionable volume analysis with intelligent signal filtering. It combines On-Balance Volume (OBV) with a smoothed signal line to identify shifts in buying and selling pressure without chart clutter.
**Key Features:**
- Real-time OBV and signal line visualization
- Smart crossover detection with confirmation filtering
- Z-Score momentum analysis
- Customizable signal alerts with V-shaped markers
- Window-normalized option for detrended analysis
---
## What is On-Balance Volume (OBV)?
OBV is a volume-based momentum indicator that accumulates volume on up days and subtracts volume on down days. It answers a fundamental question: **Is volume flowing in (buying) or out (selling)?**
**Formula:**
- If Close > Previous Close: OBV = Previous OBV + Volume
- If Close < Previous Close: OBV = Previous OBV - Volume
- If Close = Previous Close: OBV = Previous OBV (unchanged)
**What it tells you:**
- **Rising OBV** = Accumulation (smart money buying)
- **Falling OBV** = Distribution (smart money selling)
- **OBV above zero line** = Net positive buying pressure
- **OBV below zero line** = Net negative selling pressure
---
## Interface & Settings
### **MAIN VISUALIZATION**
**OBV Line (Green/Red Ribbon)**
- Green when OBV is above the signal line (bullish trend)
- Red when OBV is below the signal line (bearish trend)
- Toggles between window-normalized (detrended) and raw values
**Signal Line (Orange)**
- Smoothed average of OBV
- Crossovers with OBV generate buy/sell signals
- Default: 21-period SMA
**V-Shaped Markers**
- Green upward V = Bullish crossover (buy signal)
- Red downward V = Bearish crossover (sell signal)
- Appears at the OBV value when signal is triggered
**Zero Line (Yellow)**
- Center equilibrium point for volume balance
- Acts as support/resistance for OBV
- Separates buying pressure (above) from selling pressure (below)
---
### **SOURCE GROUP**
**Source**
- **Default:** Close
- **Options:** Open, High, Low, or any custom value
- Controls which price value triggers OBV direction changes
- Most traders use Close for standard OBV calculation
---
### **SIGNAL SMOOTHING GROUP**
**Show Signal?**
- **Default:** ON
- Toggle visibility of the signal line
- Disable if you prefer to see raw OBV only
**Smoothing Type**
- **SMA (Simple Moving Average)** - Default, standard smoothing
- **EMA (Exponential Moving Average)** - Faster response, weights recent bars more heavily
- **Choose SMA** for consistent, traditional OBV signals
- **Choose EMA** for faster trend identification (more whipsaws possible)
**Smoothing Length**
- **Default:** 21 bars
- **Range:** 1-200 bars
- **Lower values** (5-14): Faster signals, more noise
- **Higher values** (30-50): Slower signals, fewer false alarms
- **Recommendation:** Use 21-25 for most timeframes
---
### **SIGNAL FILTERING GROUP**
This is your primary control for signal quality and frequency.
**Show Signal Markers?**
- **Default:** ON
- Toggle the V-shaped buy/sell markers on/off
- Disable if markers distract from your analysis
**Signal Filter Type**
- **None** - Shows every single crossover (noisy, best for skilled traders)
- **Confirmation Bars** - Waits N bars before confirming signal (recommended)
- **Strength-Based** - Only signals during strong momentum (filters weakest moves)
#### **CONFIRMATION BARS MODE** (Recommended)
Best for reducing false signals while staying responsive to real moves.
**Confirmation Bars**
- **Default:** 2 bars
- **Range:** 1-10 bars
- Waits for the signal to hold for N consecutive bars after crossover
- **Setting 1:** Every crossover (same as "None")
- **Setting 2:** Wait 1 bar confirmation (good balance)
- **Setting 3:** Wait 2 bars confirmation (filters 50% of noise)
- **Setting 4+:** Very selective, misses quick reversals
**How it works:**
1. OBV crosses signal line → Confirmation counter starts
2. If OBV stays on correct side for 2 bars → V-marker appears
3. If OBV crosses back → Counter resets, no signal
#### **STRENGTH-BASED MODE**
Only signals when momentum is statistically significant.
**Min Z-Score Strength**
- **Default:** 0.3
- **Range:** 0.0-3.0
- Requires OBV deviation from its mean to reach this threshold
- **Setting 0.1-0.3:** More signals, lower quality
- **Setting 0.5-0.8:** Moderate signals, good quality
- **Setting 1.0+:** Only the strongest momentum shifts
**How it works:**
- Calculates how far OBV is from its 50-bar average (Z-score)
- Only shows signals when this distance is meaningful
- Automatically avoids weak, choppy market conditions
---
### **VISUALS & COLORS GROUP**
**Highlight Crossovers?**
- **Default:** ON
- Master toggle for all signal markers
- Turn OFF to see only the OBV/signal lines
**Apply Ribbon Filling?**
- **Default:** ON
- Colors the space between OBV and signal line
- Green fill = OBV above signal (bullish)
- Red fill = OBV below signal (bearish)
- Provides clear visual trend confirmation
- Turn OFF for minimal chart clutter
---
### **STATS & ZONES GROUP**
**Use Window-Normalized OBV (visual only)?**
- **Default:** ON
- Removes long-term trend from OBV for clearer short-term signals
- Detrends the indicator to highlight recent momentum changes
- **ON:** Better for swing trading and identifying reversals
- **OFF:** Better for trend-following strategies
- Note: Z-Score always uses raw OBV for statistical accuracy
**OBV Normalize Window**
- **Default:** 200 bars
- Lookback period for detrending calculation
- Larger values = more aggressive detrending
- Adjust if you want OBV to oscillate more/less around zero
**Show Z-Score (OBV)?**
- **Default:** ON
- Displays statistical momentum indicator below main chart
- Ranges from -3 to +3 (most data within -2 to +2)
- High Z-Score = Strong buying momentum
- Low Z-Score = Strong selling momentum
**Z-Score Lookback**
- **Default:** 50 bars
- Period for calculating Z-Score mean and standard deviation
- Larger = smoother Z-Score, slower response
- Smaller = noisier Z-Score, faster response
**Show ROC (OBV Momentum)?**
- **Default:** OFF
- Rate of Change indicator for OBV velocity
- Useful for identifying momentum turning points
- Enable if you want to see speed of volume changes
**ROC Lookback**
- **Default:** 14 bars
- Period for ROC calculation
**Show Z-Score StdDev Zones?**
- **Default:** ON
- Shaded regions around zero line showing statistical boundaries
- Inner Zone (±1 Z) = Normal variation
- Outer Zone (±2 Z) = Extreme moves, potential reversals
- Helps identify overbought/oversold volume conditions
**Inner Zone (±Z)**
- **Default:** 1.0
- First boundary for standard deviation zones
- Most normal trading occurs within ±1
**Outer Zone (±Z)**
- **Default:** 2.0
- Second boundary for extreme conditions
- Crossing these zones indicates significant momentum shift
---
## Trading Strategy Examples
### **Strategy 1: Signal Line Crossovers (Beginner)**
**Setup:**
- Signal Filter Type: **Confirmation Bars**
- Confirmation Bars: **2-3**
- Show Signal Markers: **ON**
**Rules:**
1. **BUY signal** (green V): When OBV crosses above signal line and holds for 2-3 bars
- Confirms buying pressure is building
- Look for price to follow within 1-3 bars
2. **SELL signal** (red V): When OBV crosses below signal line and holds for 2-3 bars
- Confirms selling pressure is increasing
- Expect price decline
3. **Exit:** Take profits at next signal or use price support/resistance
**Best For:** Swing trading, intraday reversals, timeframes 5m-1h
---
### **Strategy 2: Zero Line Bounce (Intermediate)**
**Setup:**
- Signal Filter Type: **Strength-Based**
- Min Z-Score Strength: **0.5**
- Show Z-Score StdDev Zones: **ON**
**Rules:**
1. **Watch OBV approach zero line** during established trends
- OBV bouncing repeatedly off zero = trend is healthy
- OBV breaking through zero = trend reversal imminent
2. **Enter on bounce:** Buy when OBV bounces from zero line in uptrend
3. **Exit on break:** Close position when OBV breaks below zero line
4. **Confirm with Z-Score:** Only take trades when Z-Score shows momentum (|Z| > 0.5)
**Best For:** Trend traders, identifying trend strength, medium timeframes 15m-4h
---
### **Strategy 3: Momentum Extremes (Advanced)**
**Setup:**
- Signal Filter Type: **None**
- Show Z-Score StdDev Zones: **ON**
- Outer Zone: **2.0**
**Rules:**
1. **Identify extremes:** When Z-Score breaks outer zone (±2.0)
- Indicator is in extreme territory
- Likely overextended
2. **Fade extremes:** Take opposite position when Z-Score hits extreme
- High Z (>2.0) = OBV overbought, expect pullback
- Low Z (<-2.0) = OBV oversold, expect bounce
3. **Confirm:** Wait for crossover signal to enter
4. **Target:** Outer zone of opposite side or zero line
**Best For:** Range trading, mean reversion, experienced traders only
---
## Reading the Indicator in Different Markets
### **Strong Uptrend**
- OBV consistently above signal line (green)
- OBV well above zero line, rising higher lows
- Z-Score positive, trending upward
- **Action:** Buy dips to signal line, sell at resistance
### **Strong Downtrend**
- OBV consistently below signal line (red)
- OBV well below zero line, making lower highs
- Z-Score negative, trending downward
- **Action:** Sell rallies to signal line, cover at support
### **Consolidation/Choppy Market**
- OBV whipsaws around signal line frequently
- Crossovers occur every few bars
- Z-Score oscillating between -1 and +1
- **Action:** Increase confirmation bars to 3-4, or switch to strength-based filter
### **Accumulation (Bottom Formation)**
- OBV rising while price is flat or falling
- Volume flowing in despite downtrend (bullish divergence)
- Z-Score climbing while price lows hold
- **Action:** Expect breakout up; prepare buy near support
### **Distribution (Top Formation)**
- OBV falling while price is flat or rising
- Volume flowing out despite uptrend (bearish divergence)
- Z-Score falling while price continues higher
- **Action:** Expect breakdown down; prepare short near resistance
---
## Parameter Tuning Guide
### **Aggressive Settings (More Signals)**
- Smoothing Length: 14
- Signal Filter: None or Confirmation Bars: 1
- Min Z-Score: 0.1
- Best for: Day trading, high volatility stocks
- Risk: More false signals
### **Balanced Settings (Recommended)**
- Smoothing Length: 21
- Signal Filter: Confirmation Bars: 2
- Min Z-Score: 0.3
- Best for: Swing trading, most market conditions
- Risk/Reward: Moderate
### **Conservative Settings (Fewer Signals)**
- Smoothing Length: 30-40
- Signal Filter: Confirmation Bars: 3-4 or Strength-Based: 0.7+
- Min Z-Score: 0.8
- Best for: Position trading, high-conviction trades only
- Risk: May miss some moves
---
## Common Questions & Troubleshooting
**Q: Why are there more sell signals than buy signals?**
A: This reflects the actual market action. Markets often decline faster than they rise (fear > greed). Confirm signals with price action and support/resistance.
**Q: The indicator keeps whipsawing, should I hide it?**
A: Increase Confirmation Bars to 3-4 or switch to Strength-Based filter. Market conditions matter—choppy markets require stricter filters.
**Q: What's the difference between normalized and raw OBV?**
A: Normalized (detrended) shows shorter-term momentum by removing long-term trends. Raw OBV shows absolute accumulation/distribution over the full period. Use normalized for swing signals, raw for trend confirmation.
**Q: My signals come too late. How do I get faster entry?**
A: Reduce Smoothing Length (try 14 instead of 21), use EMA instead of SMA, or set Confirmation Bars to 1. Trade-off: More false signals.
**Q: Can I use this for day trading?**
A: Yes, on 1m-5m charts with aggressive settings. Use Confirmation Bars: 1 and focus on Z-Score > 0.5 entries only.
**Q: Should I trade every signal?**
A: No. Filter signals using: price near support/resistance, multiple indicators confirming, and Z-Score showing momentum. Best signals occur at key levels.
---
## Best Practices
1. **Always confirm with price action:** OBV signals work best when price is near support, resistance, or moving average. Don't trade signals in a vacuum.
2. **Use volume context:** Check if volume is increasing or decreasing on the signal. Strong signals have volume confirmation (increasing volume on OBV spikes).
3. **Adjust settings per timeframe:**
- 1m-5m: Smoothing 12, Confirmation 1, Z-Score 0.2
- 15m-1h: Smoothing 20, Confirmation 2, Z-Score 0.3
- 4h-1d: Smoothing 25, Confirmation 3, Z-Score 0.5
4. **Watch the zero line:** It's your friend. OBV behavior at the zero line reveals trend strength. Bounces = healthy trend. Breaks = reversal.
5. **Risk management:** No indicator is perfect. Use proper position sizing and stop losses. OBV should confirm your thesis, not be the only reason to trade.
6. **Combine with other indicators:**
- Price moving averages for trend confirmation
- RSI or Stochastic for overbought/oversold levels
- Support/resistance for entry/exit zones
- MACD for momentum divergences
---
## Disclaimer
This indicator is for educational and informational purposes only. It is not financial advice. Past performance does not guarantee future results. Always conduct your own research and consult with a financial advisor before making trading decisions. Trading carries risk, including potential loss of principal.
---
## Version History
**Version 1.0** - Initial release with enhanced signal filtering, Z-Score analysis, and customizable parameters.
window//@version=5
indicator("Smart Money Time Windows (GMT+3:30)", overlay=true)
// ✅ Window 1 — 08:30 to 09:05 Tehran Time
w1 = time(timeframe.period, "0830-0905", "Asia/Tehran")
// ✅ Window 2 — 13:50 to 14:40 Tehran Time
w2 = time(timeframe.period, "1350-1440", "Asia/Tehran")
// ✅ Window 3 — 17:15 to 18:00 Tehran Time
w3 = time(timeframe.period, "1715-1800", "Asia/Tehran")
bgcolor(not na(w1) ? color.new(color.blue, 85) : na)
bgcolor(not na(w2) ? color.new(color.orange, 85) : na)
bgcolor(not na(w3) ? color.new(color.purple, 85) : na)
ICT Fair Value Gap Detector [Eˣ]⚡ Fair Value Gap Detector
Overview
The Fair Value Gap Detector automatically identifies price imbalances on your charts - the inefficiencies left behind when price moves too quickly. This indicator reveals where price is likely to return for "rebalancing", based on ICT (Inner Circle Trader) concepts of market efficiency.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🎯 What This Indicator Does
Detects Fair Value Gaps:
• 🟢 Bullish FVG - Gap left below during aggressive upward move
• 🔴 Bearish FVG - Gap left above during aggressive downward move
• Automatically identifies 3-candle price inefficiencies
• Works on all timeframes and instruments
Smart Fill Tracking:
• Full Fill - Price completely fills the gap
• 50% Fill - Price fills half the gap (critical level)
• Partial Fill - Price touches gap edge
• Real-time fill percentage tracking
• Auto-removes filled gaps (optional)
Professional Features:
• Active Gap Highlighting - Shows nearest unfilled gap
• Distance Calculator - Displays how far price is from gaps
• Market Bias - Analysis based on gap balance
• Size Filtering - Minimum gap size to avoid noise
• Visual Clarity - Clean boxes with color-coding
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📚 Understanding Fair Value Gaps
What Are Fair Value Gaps?
Fair Value Gaps (FVGs), also known as imbalances or inefficiencies, are zones where price moved so quickly that normal trading didn't occur. They represent:
• Price Imbalance - One-sided aggressive buying or selling
• Unfair Pricing - Some participants didn't get to trade at these levels
• Market Inefficiency - Supply/demand equilibrium was disrupted
• Rebalancing Zones - Price often returns to "fill" these gaps
The ICT Concept:
Markets constantly seek equilibrium (fair value). When price moves too fast:
1. It leaves gaps where normal trading didn't happen
2. These gaps represent unfair/inefficient pricing
3. Market has a tendency to return and "rebalance"
4. Smart money knows this and trades the fills
Why FVGs Work:
• Unfilled Orders - Traders who missed the move have pending orders in the gap
• Algorithmic Trading - Algos programmed to exploit inefficiencies
• Market Psychology - Traders notice gaps and place orders there
• Institutional Behavior - Smart money uses gaps for entries/exits
FVG vs Regular Gaps:
• Regular Gaps - Occur at market open, between daily closes
• Fair Value Gaps - Occur intraday, between 3 consecutive candles
• FVGs happen more frequently and on all timeframes
• FVGs are more tradeable for intraday/swing traders
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🟢 Bullish Fair Value Gaps Explained
How They Form:
Bullish FVG requires 3 candles:
1. Candle 1 - Any candle (sets the high reference)
2. Candle 2 - Strong bullish candle (aggressive buying)
3. Candle 3 - Continuation candle
The Gap: Candle 3's LOW is above Candle 1's HIGH = Gap left unfilled
Visual Example:
```
Candle 3: Low at $105 ──────────┐
│ ← GAP (Bullish FVG)
Candle 2: Strong bullish │
│
Candle 1: High at $100 ──────────┘
```
What It Means:
• Price jumped from $100 to $105+ so fast, no trading occurred in between
• This $100-$105 zone is "unfair" - buyers/sellers didn't get to trade there
• Market may return to this zone to "rebalance"
• When price returns, it often acts as support
Trading Bullish FVGs:
Strategy:
• Wait for price to retrace down into the bullish FVG (green box)
• Look for rejection/bounce from the gap zone
• Enter long when price respects the FVG as support
• Stop loss: Below the FVG
• Target: Previous high or opposite FVG
Best Entry Points:
• 50% Fill: Price enters middle of gap (highest probability)
• Full Fill: Price touches bottom of gap (aggressive entry)
• Tap & Reject: Price quickly enters and exits gap (strong signal)
Example Trade:
• Bullish FVG forms: $50,000 - $50,500 (500 point gap)
• Price rallies to $52,000 then retraces
• Price drops to $50,250 (50% of gap filled)
• Bullish reversal candle appears
• Enter long at $50,500, stop at $49,800
• Target: $52,000+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🔴 Bearish Fair Value Gaps Explained
How They Form:
Bearish FVG requires 3 candles:
1. Candle 1 - Any candle (sets the low reference)
2. Candle 2 - Strong bearish candle (aggressive selling)
3. Candle 3 - Continuation candle
The Gap: Candle 3's HIGH is below Candle 1's LOW = Gap left unfilled
Visual Example:
```
Candle 1: Low at $100 ───────────┐
│ ← GAP (Bearish FVG)
Candle 2: Strong bearish │
│
Candle 3: High at $95 ───────────┘
```
What It Means:
• Price dropped from $100 to $95 so fast, no trading occurred in between
• This $95-$100 zone is "unfair" - buyers/sellers didn't get to trade there
• Market may return to this zone to "rebalance"
• When price returns, it often acts as resistance
Trading Bearish FVGs:
Strategy:
• Wait for price to retrace up into the bearish FVG (red box)
• Look for rejection/reversal from the gap zone
• Enter short when price respects the FVG as resistance
• Stop loss: Above the FVG
• Target: Previous low or opposite FVG
Best Entry Points:
• 50% Fill: Price enters middle of gap (highest probability)
• Full Fill: Price touches top of gap (aggressive entry)
• Tap & Reject: Price quickly enters and exits gap (strong signal)
Example Trade:
• Bearish FVG forms: $48,000 - $48,500 (500 point gap)
• Price drops to $46,000 then retraces
• Price rallies to $48,250 (50% of gap filled)
• Bearish reversal candle appears
• Enter short at $48,000, stop at $48,700
• Target: $46,000-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📊 How To Use This Indicator
Strategy 1: FVG Rebalancing (Classic)
Best For: Swing trading, reversal trading
Timeframes: 15min, 1H, 4H
Win Rate: 65-75%
Entry Rules:
1. Identify unfilled FVG (bright color, not gray)
2. Wait for price to return to the gap
3. Best entry: 50% fill of the gap
4. Look for reversal confirmation:
• Bullish FVG: Pin bar, engulfing, hammer
• Bearish FVG: Shooting star, bearish engulfing
5. Enter when price bounces/rejects from FVG
6. Stop: Beyond opposite side of FVG
7. Target: 2-3R or previous high/low
Why It Works: 70%+ of FVGs get filled, and 60%+ show reaction
Strategy 2: FVG + Order Block Confluence
Best For: High-probability setups
Timeframes: 1H, 4H
Win Rate: 75-85%
Entry Rules:
1. Find FVG that overlaps with Order Block
2. This creates a "super zone" of confluence
3. Wait for price to return to this zone
4. Enter on first touch of confluence zone
5. Stop: Beyond the confluence zone
6. Target: 3-4R
Why It Works: Double institutional concepts = highest probability
Strategy 3: Multi-Timeframe FVG
Best For: Position trading, major moves
Timeframes: Combine Daily + 4H or 4H + 1H
Win Rate: 70-80%
Entry Rules:
1. Identify large FVG on higher timeframe (Daily/4H)
2. Wait for price to enter this HTF FVG
3. Switch to lower timeframe (4H/1H)
4. Look for LTF FVG within HTF FVG in same direction
5. Trade the LTF FVG fill
6. Stop: Below LTF FVG
7. Target: Exit HTF FVG or beyond
Why It Works: Timeframe alignment = institutional consensus
Strategy 4: FVG Rejection Trade
Best For: Quick scalps, day trading
Timeframes: 5min, 15min
Win Rate: 60-70%
Entry Rules:
1. Price enters FVG zone
2. Immediate rejection (strong reversal candle)
3. Enter on close of rejection candle
4. Tight stop beyond FVG
5. Quick target: 1-2R
Why It Works: Strong rejection = institutional defense of level
Strategy 5: FVG-to-FVG Trading
Best For: Momentum trading
Timeframes: 15min, 1H
Win Rate: 55-65%
Entry Rules:
1. Identify bullish FVG below and bearish FVG above
2. Enter long at bullish FVG, target bearish FVG
3. Or enter short at bearish FVG, target bullish FVG
4. Price often moves from one imbalance to another
5. Stop: Beyond trading FVG
6. Target: Opposite FVG
Why It Works: Price rebalances from one inefficiency to another
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
⚙️ Settings Explained
Display Settings
Show Bullish/Bearish FVG
• Toggle each type on/off independently
• Customize colors for each FVG type
• Default: Green (bullish), Red (bearish)
• Tip: Use colors that contrast with your chart
Max FVG to Display (Default: 20)
• Limits how many gaps are shown at once
• Lower (10-15): Cleaner chart, recent gaps only
• Higher (30-50): More historical context
• Recommended: 15-25 for most trading
Show FVG Labels (Default: ON)
• Displays "FVG+" and "FVG-" text on gaps
• Shows 🎯 on active (nearest) gap
• Shows fill percentage (e.g., "FVG+ 35%")
• Turn OFF for minimal appearance
• Recommended: Keep ON for clarity
Extend Gaps (bars) (Default: 50)
• How far to extend gap boxes to the right
• Lower (20-30): Shorter boxes
• Higher (100+): Longer boxes, easier to see
• Gaps auto-extend until filled or limit reached
• Recommended: 40-60 bars
Filters
Min Gap Size % (Default: 0.05)
• Minimum gap size as percentage of price
• Filters out tiny, insignificant gaps
• Crypto: 0.05-0.15% (high volatility)
• Forex: 0.03-0.10% (moderate volatility)
• Stocks: 0.05-0.20% (varies by stock)
• Indices: 0.05-0.15%
• Adjust based on instrument's average move
Show Filled Gaps (Default: OFF)
• When ON: Shows gray boxes for filled gaps
• When OFF: Gaps disappear after mitigation
• Use ON: For learning and backtesting
• Use OFF: For clean, active trading view
Advanced Settings
Auto-Detect Mitigation (Default: ON)
• Automatically tracks when gaps are filled
• Updates fill percentage in real-time
• Marks gaps as "mitigated" when filled
• Recommended: Keep ON
Mitigation Type (Default: Full)
• Full: Gap considered filled when price closes through entire gap
• 50%: Gap considered filled at 50% (critical level)
• Partial: Gap considered filled on first touch
• For learning: Use "Full"
• For aggressive trading: Use "50%"
• For conservative trading: Use "Partial"
Highlight Nearest Gap (Default: ON)
• Highlights the closest unfilled gap to current price
• Active gap shown with 🎯 emoji and brighter color
• Helps focus on most relevant opportunity
• Recommended: Keep ON
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📱 Info Panel Guide
Bullish FVG Count
• Number of active (unfilled) bullish fair value gaps
• Higher number = More potential support zones below
• Multiple bullish FVGs = Strong rebalancing demand
Bearish FVG Count
• Number of active (unfilled) bearish fair value gaps
• Higher number = More potential resistance zones above
• Multiple bearish FVGs = Strong rebalancing supply
Bias Indicator
• ⬆ Bullish: More bullish FVGs than bearish
• ⬇ Bearish: More bearish FVGs than bullish
• ↔ Neutral: Equal FVGs on both sides
• Market tends to fill nearby gaps first
Target Indicator
• Shows nearest unfilled gap and distance
• Example: "Bull FVG -1.25%" = Bullish gap is 1.25% below price
• Example: "Bear FVG +0.85%" = Bearish gap is 0.85% above price
• Watch for price to reach these targets
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📱 Alert Setup
This indicator includes 4 alert types:
1. Price Entering Bullish FVG
• Fires when price drops into a bullish gap
• Action: Watch for bounce/reversal
• High-probability long setup developing
2. Price Entering Bearish FVG
• Fires when price rallies into a bearish gap
• Action: Watch for rejection/reversal
• High-probability short setup developing
3. New Bullish FVG Detected
• Fires when a new bullish gap forms
• Action: Mark zone for future fill
• New rebalancing target below identified
4. New Bearish FVG Detected
• Fires when a new bearish gap forms
• Action: Mark zone for future fill
• New rebalancing target above identified
To Set Up Alerts:
1. Click "Alert" button (clock icon)
2. Select "Fair Value Gap Detector"
3. Choose your alert condition
4. Configure notification method
5. Click "Create"
Pro Tip: Set "Price Entering" alerts to catch fills in real-time
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
💎 Pro Tips & Best Practices
✅ DO:
• Wait for 50% fill - Middle of gap has highest win rate (65-70%)
• Use confirmation - Don't trade just because price touched gap
• Combine with structure - FVG + support/resistance = high probability
• Trade first fill - Unfilled gaps have better success rate than refilled
• Respect full fills - Once fully filled, gap is less reliable
• Use multiple timeframes - HTF FVGs are stronger than LTF
• Check session timing - FVGs work best during London/NY sessions
• Follow the bias - More bullish FVGs = favor longs
⚠️ DON'T:
• Don't blindly fade gaps - Wait for price action confirmation
• Don't ignore momentum - Strong trends can blow through FVGs
• Don't trade every gap - Quality over quantity
• Don't assume all gaps fill - About 70-80% fill, 20-30% don't
• Don't use tight stops - Allow room for wick into gap
• Don't overtrade - Wait for confluence and confirmation
• Don't fight trends - Best FVG trades are with higher TF trend
• Don't ignore fill percentage - 50% is often the sweet spot
🎯 Best Timeframes:
• Scalpers: 1min, 5min (many gaps, quick fills)
• Day Traders: 5min, 15min, 1H (balanced)
• Swing Traders: 1H, 4H, Daily (larger, more reliable gaps)
• Position Traders: 4H, Daily, Weekly (major imbalances)
🔥 Best Instruments:
• Excellent: BTC, ETH, ES, NQ, Forex majors (clean price action)
• Good: Gold, Oil, Major indices, Large-cap stocks
• Moderate: Altcoins, small-cap stocks (more noise)
• Best Markets: Trending markets with clear swings
⏰ Best Times for FVG Trading:
• London Session: High volume = reliable gap fills
• NY Session: Strong moves create quality gaps
• London-NY Overlap: Best time for gap creation and fills
• Asian Session: Lower probability, wait for London
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🎓 Advanced FVG Concepts
FVG Mitigation Levels
Understanding fill percentages:
• 0-25% Fill: Gap barely touched, often continues without fill
• 25-50% Fill: Partial rebalancing, may reverse here
• 50% Fill: CRITICAL LEVEL - Highest probability reversal zone
• 50-75% Fill: Deep rebalancing, strong reversal likely
• 75-100% Fill: Full rebalancing, gap's purpose fulfilled
Why 50% Matters: Market seeks equilibrium, and 50% represents perfect balance
FVG Inversions
When price breaks through a gap completely:
• Bullish FVG that's broken becomes bearish (support → resistance)
• Bearish FVG that's broken becomes bullish (resistance → support)
• Inverted gaps are weaker than fresh gaps
• Trading: Can fade the inverted gap but with caution
FVG Confluence Zones
Multiple FVGs at similar level:
• Creates "super gap" or confluence zone
• Much higher probability of reaction
• Wider zone for entries (more room for stops)
• Often aligns with other institutional concepts
FVG + Order Block Combo
When FVG overlaps with Order Block:
• Double institutional concept
• Extremely high probability setup (75-85% win rate)
• Price drawn to fill gap AND test order block
• Use tight stops, generous targets (3-5R possible)
Nested FVGs (Multi-Timeframe)
Small FVG inside larger FVG:
• Daily FVG contains 4H FVG contains 1H FVG
• Trade the smallest FVG in direction of larger ones
• Highest probability when all aligned
• Progressive targets: Fill small → medium → large gaps
FVG Exhaustion
When price creates multiple FVGs in same direction:
• Indicates strong momentum/impulsive move
• Each gap represents acceleration
• Last gap often signals exhaustion
• Watch for reversal after filling final gap
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📈 Common FVG Patterns
Pattern 1: The Perfect Rebalance
• FVG forms during strong move
• Price continues 100+ pips
• Clean return to 50% of gap
• Immediate reversal
• Textbook setup, 70%+ win rate
Pattern 2: The Double Fill
• Price partially fills gap (25%)
• Weak reaction, continues
• Returns again for deeper fill (75%)
• Strong reversal on second fill
• Second fill often better entry
Pattern 3: The Blow-Through
• Price approaches gap
• Completely ignores it, no reaction
• Keeps going in same direction
• Sign of very strong momentum
Pattern 4: The Magnet Effect
• Price slowly grinds toward gap
• Accelerates as it gets close
• Quickly fills and reverses
• Common in ranging markets
Pattern 5: The False Fill
• Price wicks into gap briefly
• Immediately reverses without filling
• "Stop hunt" or liquidity grab
• Gap remains unfilled
• Often precedes strong move
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🚀 What Makes This Different?
Unlike basic gap indicators, Fair Value Gap Detector:
• ICT Methodology - Based on proven institutional concepts
• Real-Time Fill Tracking - Shows percentage filled as it happens
• 3 Mitigation Types - Full, 50%, Partial for different strategies
• Active Gap Highlighting - Shows most relevant opportunity
• Smart Filtering - Minimum size to avoid noise
• Visual Clarity - Clean, professional appearance
• Auto-Management - Removes filled gaps automatically
• Distance Tracking - Know exactly where price needs to go
Based On Professional Concepts:
• ICT Fair Value Gap theory
• Market efficiency principles
• Price rebalancing dynamics
• Institutional order flow analysis
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📈 FVG Statistics & Probabilities
Based on ICT concepts and trader observations:
Gap Fill Rates:
• 70-80% of FVGs get filled eventually
• 60-70% show some reaction when filled
• 50% fill level has ~65% reversal rate
• Full fills have ~55% reversal rate
Timeframe Reliability:
• Daily FVGs: ~75-85% fill rate, strongest reactions
• 4H FVGs: ~70-80% fill rate, strong reactions
• 1H FVGs: ~65-75% fill rate, good reactions
• 15min FVGs: ~60-70% fill rate, moderate reactions
• 5min FVGs: ~55-65% fill rate, weaker reactions
Best Practices:
• First touch of gap = 65-70% win rate
• 50% fill = 65% win rate
• FVG + Order Block = 75-85% win rate
• Multi-timeframe aligned FVG = 70-80% win rate
• FVG in trending market = 60-70% win rate
Common Failures:
• Strong momentum blows through gaps (20-30% of time)
• Gaps in low-volume periods less reliable
• Very small gaps (<0.05%) often ignored
• Counter-trend gaps have lower success rate
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🙏 If You Find This Helpful
• ⭐ Leave your feedback
• 💬 Share your experience in the comments
• 🔔 Follow for updates and new tools
Questions about Fair Value Gaps? Feel free to ask in the comments.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Version History
• v1.0 - Initial release with 3-candle FVG detection and real-time fill tracking
ShooterViz Lazy Trader EMA SystemShooterViz Lazy Trader EMA System - Complete User Guide
What This Script Does
This is a position scaling indicator that tells you exactly when to enter, add to, and exit trades using a simplified 5-EMA system. It removes the guesswork and decision fatigue from trading by giving you clear visual signals.
The Core Concept
3 entry signals that build your position from 20% → 50% → 100%
2 exit signals that scale you out at 50% → 50% (complete exit)
1 higher timeframe filter that keeps you on the right side of the trend
No Fibonacci calculations, no RSI divergence, no multi-indicator confusion. Just EMAs and price action.
What You'll See On Your Chart
1. Colored EMA Lines
Blue Lines (Entry Zone):
3 EMA (lightest blue) - Early reversal detector
5 EMA (darker blue) - Confirmation line
Green Lines (Add Zone):
21 EMA (bright green) - First add location
34 EMA (lighter green) - Final add location
Red Lines (Exit Zone):
89 EMA (lighter red) - First exit trigger
144 EMA (darker red) - Final exit trigger
Orange Lines (Hyper Frame - optional):
Hyper 21 EMA (from higher timeframe) - Trend direction
Hyper 34 EMA (from higher timeframe) - Bias confirmation
2. Triangle Signals
Green Triangles (Below Price) = BUY/ADD:
Lime triangle with "20%" = Entry 1: Price reclaimed 3→5 EMA (starter position)
Green triangle with "30%" = Entry 2: Price bounced off 21 EMA (first add)
Teal triangle with "50%" = Entry 3: Price broke out from 34 EMA compression (final add)
Red Triangles (Above Price) = SELL:
Orange triangle with "50% OFF" = Exit 1: Price broke below 89 EMA (take half off)
Red triangle with "EXIT ALL" = Exit 2: Price broke below 144 EMA (close remaining position)
3. Background Color (Trend Bias)
Light green background = Hyper frame EMAs trending up (bias LONG)
Light red background = Hyper frame EMAs trending down (bias SHORT)
Gray background = Neutral/choppy (be cautious)
4. Info Table (Top Right Corner)
A live status dashboard showing:
Which entry signals are currently active (✓ or —)
Which exit signals are currently active (⚠ or ⛔)
Current hyper frame bias (🟢 LONG / 🔴 SHORT / ⚪ NEUTRAL)
Which timeframe you're using for hyper frame filtering
How to Install and Set Up
Step 1: Add the Script to TradingView
Open TradingView
Click "Pine Editor" at the bottom of the screen
Copy the entire script code
Paste it into the Pine Editor
Click "Add to Chart"
Step 2: Configure Your Settings
Click the gear icon ⚙️ next to "LazyEMA" in your indicators list.
Critical Settings to Configure:
Hyper Frame Selection (Most Important!)
Location: "Hyper Frame (Pick ONE)" section
Setting: "Timeframe"
What to choose:
Trading 15min or 1H charts? → Use "240" (4-hour)
Trading 4H or Daily charts? → Use "D" (Daily)
Trading Daily or Weekly charts? → Use "W" (Weekly)
Why this matters: This filter keeps you aligned with the bigger trend. Only take longs when this timeframe is green, shorts when it's red.
MA Type (Optional, default is fine)
Location: "MA Config" section
Default: EMA (recommended)
Options: EMA, SMA, WMA, HMA, RMA, VWMA
Most traders should stick with EMA
Visual Toggles (Customize your view)
Entry Zone: Turn individual EMAs on/off (3, 5, 21, 34)
Exit Zone: Turn individual EMAs on/off (89, 144)
Hyper Frame: Toggle the higher timeframe EMAs on/off
Step 3: Clean Up Your Chart
Turn OFF these if visible:
Volume bars (they clutter the view)
Any other indicators you have loaded
Grid lines (optional, but cleaner)
Keep ONLY:
Price candles
Your ShooterViz Lazy Trader EMA System
Maybe support/resistance levels if you manually draw them
How to Trade With This Script
The Basic Workflow
Before the Market Opens:
Check the background color and info table bias
Green background? Look for LONG setups only
Red background? Look for SHORT setups only
Gray background? Stay flat or trade small
During the Trading Session:
LONGS (When hyper frame is bullish):
Wait for Entry 1 signal:
Lime triangle appears with "20%"
Price has reclaimed the 5 EMA after dipping to 3 EMA
Action: Enter 20% of your intended position
Stop loss: Place below the 5 EMA or recent swing low
Wait for Entry 2 signal:
Green triangle appears with "30%"
Price pulled back to 21 EMA and bounced
Action: Add 30% more (you're now at 50% total)
Move stop: Trail it up to below 21 EMA
Wait for Entry 3 signal:
Teal triangle appears with "50%"
Price compressed at 34 EMA and broke out
Action: Add final 50% (you're now 100% loaded)
Move stop: Trail it up to below 34 EMA
Wait for Exit 1 signal:
Orange triangle appears with "50% OFF"
Price broke below 89 EMA
Action: Exit 50% of your position immediately
Move stop on rest: Trail to 89 EMA or lock in profits
Wait for Exit 2 signal:
Red triangle appears with "EXIT ALL"
Price broke below 144 EMA
Action: Exit remaining 50% (you're now flat)
Or: Stop gets hit at 89 EMA (same result)
SHORTS (When hyper frame is bearish):
Same process, but inverted
Triangles appear above price instead of below
Look for breakdowns below EMAs instead of bounces off them
Exit when price reclaims 89 and 144 EMAs
Real-World Example Walkthrough
Setup: Trading ES (S&P 500 Futures) on 1H Chart
Chart Configuration:
Timeframe: 1 Hour
Hyper Frame: 240 (4-hour)
Ticker: ES
Pre-Market Check:
Background is light green
Info table shows "🟢 LONG" for Hyper Bias
Decision: Only look for long entries today
9:30 AM - Market Opens
Price dips and touches 3 EMA
Watch for: Reclaim of 5 EMA
9:45 AM - Entry 1 Triggers
Lime triangle appears below bar
Price closed above 5 EMA at $4,550
Action taken:
Enter long 20% position (2 contracts if targeting 10 total)
Stop loss at $4,545 (below 5 EMA)
Risk: $10 per contract × 2 = $20 risk
10:30 AM - Entry 2 Triggers
Price rallied to $4,565, pulls back
Green triangle appears at 21 EMA ($4,555)
Action taken:
Add 30% (3 more contracts, now have 5 total)
Move stop to $4,550 (below 21 EMA)
Current P/L: +$25 ($5 gain on original 2 contracts, break-even on new 3)
11:15 AM - Entry 3 Triggers
Price consolidates at 34 EMA around $4,560
Teal triangle appears as price breaks to $4,568
Action taken:
Add final 50% (5 more contracts, now have 10 total)
Move stop to $4,555 (below 34 EMA)
Current P/L: +$70
1:00 PM - Price Extends
Price rallies to $4,595 (on track)
89 EMA is at $4,575
No action yet, let it run
2:15 PM - Exit 1 Triggers
Price pulls back from $4,600
Orange triangle appears as price breaks below 89 EMA at $4,580
Action taken:
Exit 50% (5 contracts closed at $4,580)
Keep 5 contracts with stop at 89 EMA ($4,575)
Banked: +$150 average gain on closed 5 contracts
2:45 PM - Exit 2 Triggers
Price continues down
Red triangle appears as price breaks 144 EMA at $4,570
Action taken:
Exit remaining 5 contracts at $4,570
Banked: +$100 on remaining 5 contracts
Final Results:
Total gain: $250 on the trade
Initial risk: $50 (if stopped out at Entry 1)
Risk/Reward: 5:1
Time in trade: ~5 hours
Common Questions
"What if I miss Entry 1? Can I still take Entry 2?"
Yes! Each entry is independent. If you miss the 3→5 reclaim, wait for the 21 EMA bounce. You'll start with a 30% position instead of 20%, but that's fine.
Rule: Never chase. Wait for the next EMA setup.
"What if multiple entry signals trigger at the same bar?"
Rare, but possible. If you see both Entry 1 and Entry 2 trigger together:
Take Entry 1 first (20%)
If the next bar confirms Entry 2 is still valid, add 30%
When in doubt, scale in gradually
"The hyper frame is green but I'm seeing short signals?"
Don't take them. The hyper frame is your bias filter. If it says "go long," ignore short setups. They're usually lower probability and will get stopped out.
"Can I use this for swing trading overnight?"
Absolutely. Just switch your hyper frame:
If you're on Daily charts, use Weekly hyper frame
If you're on 4H charts, use Daily hyper frame
Adjust position sizes for overnight risk
"What if the signal appears right at market close?"
Don't chase it. Wait for the next bar (next day) to confirm. Signals that appear in the last 5 minutes are often noise.
"How do I set up alerts?"
Right-click on the chart
Select "Add Alert"
Choose "LazyEMA" from the condition dropdown
Select which signal you want alerts for:
Entry 1: 3→5 Reclaim
Entry 2: 21 EMA Add
Entry 3: 34 EMA Breakout
Exit 1: 89 EMA Break
Exit 2: 144 EMA Break
Click "Create"
Pro tip: Set up all 5 alerts so you never miss a signal.
Position Sizing Guide see
swingtradenotes.substack.com
Critical Rule: Know your total risk BEFORE you take Entry 1. Don't wing it.
Customization Tips
For Day Traders (Scalpers)
Use 5min or 15min charts
Hyper frame: 1H or 4H
Expect 2-4 setups per day
Tighter stops (0.5% risk per entry)
For Swing Traders
Use 4H or Daily charts
Hyper frame: Daily or Weekly
Expect 1-2 setups per week
Wider stops (1-2% risk per entry)
For Position Traders
Use Daily or Weekly charts
Hyper frame: Weekly or Monthly
Expect 1-2 setups per month
Widest stops (2-3% risk per entry)
The "Don't Be Stupid" Checklist
Before taking ANY signal from this script, ask:
✅ Is the hyper frame bias pointing in my direction?
✅ Is the signal clean (not at a weird time or during news)?
✅ Do I know my stop loss level?
✅ Do I know my position size?
✅ Can I afford to lose if this trade fails?
If you answered "no" to ANY of these, skip the trade.
Troubleshooting
"I'm not seeing any signals"
Possible causes:
The "Show Lazy Trader System" toggle is off (turn it on)
Your chart timeframe is too high (try 1H or 4H)
Market is in a tight range (EMAs are compressed)
You need to refresh the chart
"Too many signals, getting whipsawed"
Fixes:
Increase your chart timeframe (go from 15m to 1H)
Switch to a less volatile ticker
Only trade when hyper frame bias is STRONG (not neutral)
Add a minimum bar count between signals
"The info table is covering my price action"
Fix:
Edit the script
Find the line: table.new(position.top_right, ...
Change position.top_right to position.bottom_right or position.top_left
"Signals appear then disappear"
This is normal (repainting). Some signals (especially compression breakouts) can disappear if the next bar reverses. This is why you:
Wait for bar close before acting
Use alerts that only fire on confirmed bars
Don't chase signals mid-bar
Final Thoughts
This script is a decision-making tool, not a crystal ball. It shows you high-probability setups based on EMA dynamics and trend structure. You still need to:
Manage your risk
Choose your position size
Stick to the rules
Accept losses when they happen
The system works when YOU work the system.
Print this guide, tape it next to your monitor, and follow it religiously for 20 trades before making ANY changes.
Good luck, and stay lazy (the smart way).
CRR SELL BOX MICROWhat it analyzes
Multi-TF:
1m, 5m, 15m, 30m (tf1–tf4).
In each timeframe it looks at:
EMA 15 / 30 / 200 → trend.
MACD → momentum.
RSI → strength.
From this it derives:
t1, t2, t3, t4 = +1 bullish, -1 bearish, 0 neutral.
A bearScore = how many TFs are bearish → multiTfBear.
Volatility / momentum:
ATR in pips (atrPips) → checks for sufficient movement (sufAtr).
1m candlestick body in pips → momentumBear1
(large bearish candle + MACD bearish + RSI bearish).
Strong downward candle in ticks (bigDrop) → type of large vertical red candle.
Global sensitivity:
Mode: Normal / High / Turbo
Automatically adjusts:
Minimum drop in ticks,
Minimum candlestick body,
Minimum ATR.
2️⃣ Main Sell Signal
SELL WITHOUT PULLBACK 1m
sellNoPull:
EMA 15 < EMA 30 < EMA 200 (strong bearish trend 1m),
MACD crosses bearish,
Price below EMA30 1m.
Multi-TF Bear
multiTfBear:
Normal Mode: 1m bearish and 5m–15m–30m not bullish,
High/Turbo Mode: at least 2 bearish TFs (bearScore >= 2).
Final condition (what triggers the setup)
Conservative:
condSellConservative = sellNoPull + multiTfBear + sufAtr + momentumBear1
Aggressive:
condSellAggressive = (t1 == -1 or bigDrop) + 15m not bullish + sufAtr
Final:
condSellFinal
If aggressiveMicro = true → uses aggressive logic.
Otherwise → uses conservative logic.
When condSellFinal is true:
It is considered a valid sell setup for scalping / micro. 3️⃣ States it shows you
Depending on what it detects:
🔴 "MICRO SELL 10-20p"
(aggressive mode ON + everything aligned for a quick drop).
🟥 "SCALPING SELL"
(if you're in conservative mode).
🟧 "NORMAL SELL"
(multi-timeframe bearish but without a strong trigger).
⚪ "NEUTRAL (NO SELL)"
(no setup).
Extra info (below the light bulb):
"STRONG DROP" if there's a large red candlestick indicating a sharp decline.
"MULTI TF BEARISH" if several timeframes are bearish.
"NO SETUP" if conditions are not met.
4️⃣ HUD + Session Clock
Compact HUD at the top center:
Row 1: STATUS: MICRO SELL / NORMAL SELL / NEUTRAL.
Row 2: Light bulb ● (red, orange, or gray) + extra info text.
New York Clock:
Detects session: TOKYO / LONDON / NEW YORK
(for trading time context only).
5️⃣ Alerts
When condSellFinal is met, it triggers:
"CRR SCALPING/MICRO SELL - sell signal activated"
🧠 In simple terms:
It's your specialized SELL radar:
It combines multi-timeframe analysis, momentum, ATR, and strong bearish candlesticks to alert you when gold is ready for a quick 10-20 pip short trade or a more serious bearish scalp.
CRR BUY What it analyzes
4 timeframes:
1m, 5m, 15m, and 30m.
In each timeframe it looks at:
EMA 15 / 30 / 200 → trend.
MACD → momentum.
RSI → strength.
From this it derives:
t1, t2, t3, t4 = +1 bullish, -1 bearish, 0 neutral.
A multi-timeframe bullScore (how many timeframes are bullish).
2️⃣ Volatility / momentum filters
ATR in pips → checks if there is enough movement (suffAtr).
1m candlestick body in pips → momentumBull1
(strong bullish candle with bullish MACD + bullish RSI).
Strong upward candle (bigPump) measured in ticks/pips.
Sensitivity mode:
Normal / High / Turbo → loosens or tightens filters for:
Strong candle,
Minimum body,
Minimum ATR.
3️⃣ Buy logic
There are three levels:
condBuyConservative
CLASSIC BUY WITHOUT RETRACEMENT:
Strong 1m trend, bullish MACD crossover, price above EMA30, + 1m momentum, + sufficient ATR, + multi-timeframe bullish.
condBuyAggressive (if using aggressive mode):
It's enough to have:
1m bullish (t1 == 1) or bigPump,
15m not bearish,
Sufficient ATR.
condBuyFinal
If aggressiveMicro = true → uses condBuyAggressive.
Otherwise → uses condBuyConservative.
Based on this, it displays states:
✅ "MICRO BUY 10-20p" (aggressive mode ON and everything aligned)
✅ "SCALPING BUY" (conservative mode with confirmations)
✅ "NORMAL BUY" (multi-timeframe bullish but without a strong trigger)
⛔ "NEUTRAL (NO BUY)" (no setup)
And triggers an alert:
CRR SCALPING BUY when condBuyFinal is met.
4️⃣ HUD and sessions
Detects session by New York time:
TOKYO / LONDON / NEW YORK (different color). Compact HUD at the top center with:
STATUS (buy or neutral text),
Green/teal/gray light bulb icon (●),
Extra info:
"STRONG UPTREND" if there's a big pump,
"MULTI TF BULLISH" if many timeframes are bullish,
"NO SETUP" if there's nothing.
🧠 In simple terms:
It's a BUY ONLY bullish radar for scalping/micro trading, which combines multi-timeframe analysis + momentum + ATR + strong candlestick patterns, summarizes it in a HUD, and sends you an alert when there's a real setup to go long.Qué analiza
4 marcos de tiempo:
1m, 5m, 15m y 30m.
En cada TF mira:
EMA 15 / 30 / 200 → tendencia.
MACD → impulso.
RSI → fuerza.
De ahí saca:
t1, t2, t3, t4 = +1 toro, -1 oso, 0 neutro.
Un bullScore multi–TF (cuántos TF están alcistas).
2️⃣ Filtros de volatilidad / momentum
ATR en pips → comprueba si hay suficiente movimiento (sufAtr).
Cuerpo de la vela 1m en pips → momentumBull1
(vela alcista fuerte con MACD bull + RSI bull).
Vela de subida fuerte (bigPump) medida en ticks/pips.
Modo sensibilidad:
Normal / Alta / Turbo → relaja o endurece filtros de:
Vela fuerte,
Cuerpo mínimo,
ATR mínimo.
3️⃣ Lógica de compra
Hay tres niveles:
condBuyConservador
BUY SIN RETRO clásico:
Tendencia 1m fuerte, cruce MACD bull, precio sobre EMA30, + momentum 1m, + ATR ok, + multi–TF bull.
condBuyAgresivo (si usas modo agresivo):
Basta con:
1m toro (t1 == 1) o bigPump,
15m no bajista,
ATR suficiente.
condBuyFinal
Si aggressiveMicro = true → usa condBuyAgresivo.
Si no → usa condBuyConservador.
Según eso, muestra estados:
✅ "COMPRA MICRO 10-20p" (modo agresivo ON y todo alineado)
✅ "COMPRA SCALPING" (modo conservador con confirmaciones)
✅ "COMPRA NORMAL" (multi–TF alcista pero sin trigger fuerte)
⛔ "NEUTRO (NO COMPRA)" (no hay setup)
Y dispara alerta:
CRR COMPRA SCALPING cuando condBuyFinal se cumple.
4️⃣ HUD y sesiones
Detecta sesión por hora de New York:
TOKIO / LONDRES / NEW YORK (color distinto).
HUD compacto arriba al centro con:
ESTADO (texto de compra o neutro),
Bombillo (●) verde/teal/gris,
Info extra:
"SUBIDA FUERTE" si hay bigPump,
"MULTI TF ALCISTA" si muchos TF están bull,
"SIN SETUP" si no hay nada.
🧠 En simple:
Es un radar de COMPRA SOLO BULL para scalping/micro, que mezcla multi–TF + momentum + ATR + vela fuerte, te lo resume en un HUD y te manda alerta cuando hay setup real para disparar largo.
⭐ Silver HUD v14.6 ⭐Silver HUD v14.6 is an enhanced Pine Script v5 indicator for micro silver futures (SIL) trading on TradingView, featuring a compact 2-column bottom-right HUD with weighted scoring across 5 engines (trend, flow, momentum, PB, turbo), 2H structure arbitration, divergence detection, volume surge analysis, BUY/SELL arrows, and risk warnings. Expanded from v14.5 with dedicated DIV/VOL rows for better signal context on 5m charts.
Multi-Engine Scoring
Trend Engine
EMA20/50 alignment + VWAP direction (1.001%/0.999% thresholds): UP/DOWN/MIXED scores 100/60/20.
Flow Engine
CCIOBV (CCI20 + OBV EMA13 sync) + QQE (RSI14 smoothed with trailing volatility): dual UP/DOWN = strong flow (100), mixed (60).
Momentum
RSI14/MFI14 >55 (UP=100), <45 (DOWN=100), else NEUTRAL (60).
PB (Pullback)
EMA20 deviation: -0.4% to +1.2% = OK (100), ≥1.2% CHASE (70/40), DEEP (30/80 for long/short).
Turbo
ATR14 percentile (>70 EXPANDING, <30 FADE) + BB20 width percentile (<20 SQ): SQ+EXPANDING=BREAKOUT (100).
Weighted Totals
BUY: flow(30%)+mom(25%)+PB(25%)+trend(10%)+turbo(10%); SELL adjusts turbo(20%)/PB(15%). Thresholds: BUY≥75, SELL≥72.
Advanced Features
2H Arbitration
Swing HH/HL/LL/LH detection resolves BUY/SELL conflicts; UP (HH/HL) favors longs, DOWN (LL/LH) shorts.
Divergence
RSI-based: price HH without RSI HH = BEAR DIV; price LL without RSI LL = BULL DIV.
Volume Surge
2x 20-SMA or 80th percentile: BULL/BEAR SURGE (directional), SURGE (neutral).
Signals & Risk
Raw triggers filtered (no DEEP PB BUY, no DOWN trend BUY, UP flow required); final uses 2H tiebreaker. RISK flags DIV, surges, DEEP PB, trend conflicts, score ties. Tiny BUY/SELL arrows on raw signals.
HUD Layout
14-row table: TREND/FLOW/MOM/PB/TURBO/FINAL/BUY*/SELL*/2H/DIV/VOL/RISK/Threshold. Stars rate scores (★★★★★=90+), color-coded statuses, gold FINAL. Perfect for SIL scalpers needing confluence + risk at a glance.
Options Scalper v2 - SPY/QQQHere's a comprehensive description of the Options Scalper v2 strategy:
---
## Options Scalper v2 - SPY/QQQ
### Overview
A multi-indicator confluence-based scalping strategy designed for trading SPY and QQQ options on short timeframes (1-5 minute charts). The strategy uses a scoring system to generate high-probability CALL and PUT signals by requiring alignment across multiple technical indicators before triggering entries.
---
### Core Logic
The strategy operates on a **scoring system (0-9 points)** where both bullish (CALL) and bearish (PUT) conditions are evaluated independently. A signal only fires when:
1. A recent EMA crossover occurred (within the last 3 bars)
2. The direction's score meets the minimum threshold (default: 4 points)
3. The signal's score is higher than the opposite direction
4. Enough bars have passed since the last signal (cooldown period)
5. Price action occurs during valid trading sessions
---
### Indicators Used
| Indicator | Purpose | CALL Condition | PUT Condition |
|-----------|---------|----------------|---------------|
| **9/21 EMA Cross** | Primary trigger | Fast EMA crosses above slow | Fast EMA crosses below slow |
| **200 EMA** | Trend filter | Price above 200 EMA | Price below 200 EMA |
| **RSI (14)** | Momentum filter | RSI between 45-65 | RSI between 35-55 |
| **VWAP** | Institutional level | Price above VWAP | Price below VWAP |
| **MACD (12,26,9)** | Momentum confirmation | MACD line > Signal line | MACD line < Signal line |
| **Stochastic (14,3)** | Overbought/Oversold | Oversold or K > D | Overbought or K < D |
| **Volume** | Participation confirmation | Spike on green candle | Spike on red candle |
| **Price Structure** | Breakout detection | Higher high formed | Lower low formed |
---
### Scoring Breakdown
**CALL Score (Max 9 points):**
- Recent EMA cross up: +2 pts
- EMA alignment (fast > slow): +1 pt
- RSI in bullish range: +1 pt
- Above VWAP: +1 pt
- MACD bullish: +1 pt
- Volume spike on green candle: +1 pt
- Stochastic setup: +1 pt
- Above 200 EMA: +1 pt
- Breaking higher high: +1 pt
**PUT Score (Max 9 points):**
- Recent EMA cross down: +2 pts
- EMA alignment (fast < slow): +1 pt
- RSI in bearish range: +1 pt
- Below VWAP: +1 pt
- MACD bearish: +1 pt
- Volume spike on red candle: +1 pt
- Stochastic setup: +1 pt
- Below 200 EMA: +1 pt
- Breaking lower low: +1 pt
---
### Risk Management
The strategy uses **ATR-based dynamic stops and targets**:
| Parameter | Default | Description |
|-----------|---------|-------------|
| Stop Loss | 1.5x ATR | Distance below entry for longs, above for shorts |
| Take Profit | 2.0x ATR | Creates a 1:1.33 risk-reward ratio |
Positions are also closed on:
- Opposite direction signal (flip trade)
- Take profit or stop loss hit
---
### Session Filtering
Trades are restricted to high-liquidity periods by default:
- **Morning Session:** 9:30 AM - 11:00 AM EST
- **Afternoon Session:** 2:30 PM - 3:55 PM EST
This avoids choppy midday price action and captures the highest volume periods.
---
### Input Parameters
| Parameter | Default | Description |
|-----------|---------|-------------|
| Fast EMA | 9 | Fast moving average period |
| Slow EMA | 21 | Slow moving average period |
| Trend EMA | 200 | Long-term trend filter |
| RSI Length | 14 | RSI calculation period |
| RSI Overbought | 65 | Upper RSI threshold |
| RSI Oversold | 35 | Lower RSI threshold |
| Volume Multiplier | 1.2x | Volume spike detection threshold |
| Min Signal Strength | 4 | Minimum score required to trigger |
| Crossover Lookback | 3 | Bars to consider crossover "recent" |
| Min Bars Between Signals | 5 | Cooldown period between signals |
---
### Visual Elements
**Chart Plots:**
- Green line: 9 EMA (fast)
- Red line: 21 EMA (slow)
- Gray line: 200 EMA (trend)
- Purple dots: VWAP
**Signal Markers:**
- Green triangle up + "CALL" label: Buy call signal
- Red triangle down + "PUT" label: Buy put signal
- Small circles: EMA crossover reference points
**Info Table (Top Right):**
- Real-time CALL and PUT scores
- RSI, MACD, Stochastic values
- VWAP and 200 EMA position
- Recent crossover status
- Current signal state
---
### Alerts
| Alert Name | Trigger |
|------------|---------|
| CALL Entry | Standard call signal fires |
| PUT Entry | Standard put signal fires |
| Strong CALL | Call signal with score ≥ 6 |
| Strong PUT | Put signal with score ≥ 6 |
---
### Recommended Usage
| Setting | 0DTE Scalping | Intraday Swings |
|---------|---------------|-----------------|
| Timeframe | 1-2 min | 5 min |
| Min Signal Strength | 5-6 | 4 |
| ATR Stop Mult | 1.0 | 1.5 |
| ATR TP Mult | 1.5 | 2.0 |
| Option Delta | 0.40-0.50 | 0.30-0.40 |
---
### Key Improvements Over v1
1. **Requires actual crossover** - Eliminates false signals from simple trend continuation
2. **Balanced scoring** - Both directions evaluated equally, highest score wins
3. **Signal cooldown** - Prevents overtrading with minimum bar spacing
4. **Multi-indicator confluence** - 8 factors must align for signal generation
5. **Volume-candle alignment** - Volume spikes only count when matching candle direction
---
### Disclaimer
This strategy is for educational purposes. Backtest thoroughly before live trading. Options trading involves significant risk of loss. Past performance does not guarantee future results.
TMT 1M HA Scalping INDICATOR - Hitesh Nimje📊 TMT 1 Minute HA Scalping Strategy - Hitesh Nimje
🎯 Strategy Overview
A 1-minute scalping strategy designed for high-frequency trading using Heikin Ashi-inspired crossover logic with multiple filters for precision entries.
🔧 Key Components
1. Moving Averages (Trend Detection)
LineTypePeriodColorPurposeFast SMASimple MA9🔵 BluePrimary signal lineSlow SMASimple MA21🔴 RedSecondary confirmationTrend SMASMA (1H)50⚫ BlackOverall market trend bias
2. Entry Signals (Crossover Logic)
🔥 BUY Signal: Fast SMA (9) crosses ABOVE Slow SMA (21)
🔥 SELL Signal: Fast SMA (9) crosses BELOW Slow SMA (21)
3. Entry Filters (4-Layer Confirmation)
✅ LONG Entry = Crossover + Trend Up + RSI Overbought + Bar Confirmed
✅ SHORT Entry = Crossunder + Trend Down + RSI Oversold + Bar Confirmed
longCond = sma_slope > 0 AND rsi >= 70 AND buySignal
shortCond = sma_slope < 0 AND rsi <= 30 AND sellSignal
FilterLongShortPurposeTrend Slopesma_slope > 0sma_slope < 0Market directionRSI FilterRSI >= 70RSI <= 30Momentum extremeCrossoverFast > SlowFast < SlowEntry triggerBar Statebarstate.isconfirmedbarstate.isconfirmedNo repaint
⚡ Risk Management
Stop Loss (Dynamic ATR-based)
Long SL = Lowest Low (7) - 1×ATR(14)
Short SL = Highest High (7) + 1×ATR(14)
Take Profit (1:1 Risk-Reward)
Long TP = Entry + (Entry - SL distance)
Short TP = Entry - (SL distance - Entry)
⏰ Trading Hours
📅 Active: 00:00 - 14:59 (3:00 PM cutoff)
🛑 Auto-close: All positions closed at 15:00
🎨 Visual Elements
📍 BUY Labels: 🟢 Green (below bar)
📍 SELL Labels: 🔴 Red (above bar)
📈 Fast SMA: 🔵 Blue line (9-period)
📉 Slow SMA: 🔴 Red line (21-period)
📊 Trend SMA: ⚫ Black line (50-period, 1H)
⚙️ Input Parameters
ParameterDefaultPurposeEnd of Day1500 (3 PM)Auto-close timeLot Size1Position size
🚀 How It Works (Step-by-Step)
1. Monitor Fast(9) vs Slow(21) SMA crossover
2. Check 1H Trend SMA slope (up/down bias)
3. Validate RSI extreme (70+/30-)
4. Wait for bar confirmation
5. Enter with ATR-based SL & 1:1 TP
6. Auto-exit at 3 PM or SL/TP hit
💡 Strategy Strengths
* ✅ Multi-timeframe trend filter
* ✅ RSI momentum confirmation
* ✅ Dynamic ATR stop losses
* ✅ No repaint signals
* ✅ End-of-day risk control
* ✅ 1:1 Risk-Reward consistency
Perfect for 1-minute scalping on volatile instruments! 🔥
© Hitesh Nimje | Thought Magic Trading
Contact: 8087192915
TRADING DISCLAIMER
RISK WARNING
Trading involves substantial risk of loss and is not suitable for all investors. Past performance is not indicative of future results. You should carefully consider whether trading is suitable for you in light of your circumstances, knowledge, and financial resources.
NO FINANCIAL ADVICE
This indicator is provided for educational and informational purposes only. It does not constitute:
* Financial advice or investment recommendations
* Buy/sell signals or trading signals
* Professional investment advice
* Legal, tax, or accounting guidance
LIMITATIONS AND DISCLAIMERS
Technical Analysis Limitations
* Pivot points are mathematical calculations based on historical price data
* No guarantee of accuracy of price levels or calculations
* Markets can and do behave irrationally for extended periods
* Past performance does not guarantee future results
* Technical analysis should be used in conjunction with fundamental analysis
Data and Calculation Disclaimers
* Calculations are based on available price data at the time of calculation
* Data quality and availability may affect accuracy
* Pivot levels may differ when calculated on different timeframes
* Gaps and irregular market conditions may cause level failures
* Extended hours trading may affect intraday pivot calculations
Market Risks
* Extreme market volatility can invalidate all technical levels
* News events, economic announcements, and market manipulation can cause gaps
* Liquidity issues may prevent execution at calculated levels
* Currency fluctuations, inflation, and interest rate changes affect all levels
* Black swan events and market crashes cannot be predicted by technical analysis
USER RESPONSIBILITIES
Due Diligence
* You are solely responsible for your trading decisions
* Conduct your own research before using this indicator
* Verify calculations with multiple sources before trading
* Consider multiple timeframes and confirm levels with other technical tools
* Never rely solely on one indicator for trading decisions
Risk Management
* Always use proper risk management and position sizing
* Set appropriate stop-losses for all positions
* Never risk more than you can afford to lose
* Consider the inherent risks of leverage and margin trading
* Diversify your portfolio and trading strategies
Professional Consultation
* Consult with qualified financial advisors before trading
* Consider your tax obligations and legal requirements
* Understand the regulations in your jurisdiction
* Seek professional advice for complex trading strategies
LIMITATION OF LIABILITY
Indemnification
The creator and distributor of this indicator shall not be liable for:
* Any trading losses, whether direct or indirect
* Inaccurate or delayed price data
* System failures or technical malfunctions
* Loss of data or profits
* Interruption of service or connectivity issues
No Warranty
This indicator is provided "as is" without warranties of any kind:
* No guarantee of accuracy or completeness
* No warranty of uninterrupted or error-free operation
* No warranty of merchantability or fitness for a particular purpose
* The software may contain bugs or errors
Maximum Liability
In no event shall the liability exceed the purchase price (if any) paid for this indicator. This limitation applies regardless of the theory of liability, whether contract, tort, negligence, or otherwise.
REGULATORY COMPLIANCE
Jurisdiction-Specific Risks
* Regulations vary by country and region
* Some jurisdictions prohibit or restrict certain trading strategies
* Tax implications differ based on your location and trading frequency
* Commodity futures and options trading may have additional requirements
* Currency trading may be regulated differently than stock trading
Professional Trading
* If you are a professional trader, ensure compliance with all applicable regulations
* Adhere to fiduciary duties and best execution requirements
* Maintain required records and reporting
* Follow market abuse regulations and insider trading laws
TECHNICAL SPECIFICATIONS
Data Sources
* Calculations based on TradingView data feeds
* Data accuracy depends on broker and exchange reporting
* Historical data may be subject to adjustments and corrections
* Real-time data may have delays depending on data providers
Software Limitations
* Internet connectivity required for proper operation
* Software updates may change calculations or functionality
* TradingView platform dependencies may affect performance
* Third-party integrations may introduce additional risks
MONEY MANAGEMENT RECOMMENDATIONS
Conservative Approach
* Risk only 1-2% of capital per trade
* Use position sizing based on volatility
* Maintain adequate cash reserves
* Avoid over-leveraging accounts
Portfolio Management
* Diversify across multiple strategies
* Don't put all capital into one approach
* Regularly review and adjust trading strategies
* Maintain detailed trading records
FINAL LEGAL NOTICES
Acceptance of Terms
* By using this indicator, you acknowledge that you have read and understood this disclaimer
* You agree to assume all risks associated with trading
* You confirm that you are legally permitted to trade in your jurisdiction
Updates and Changes
* This disclaimer may be updated without notice
* Continued use constitutes acceptance of any changes
* It is your responsibility to stay informed of updates
Governing Law
* This disclaimer shall be governed by the laws of the jurisdiction where the indicator was created
* Any disputes shall be resolved in the appropriate courts
* Severability clause: If any part of this disclaimer is invalid, the remainder remains enforceable
REMEMBER: THERE ARE NO GUARANTEES IN TRADING. THE MAJORITY OF RETAIL TRADERS LOSE MONEY. TRADE AT YOUR OWN RISK.
Contact Information:
* Creator: Hitesh_Nimje
* Phone: Contact@8087192915
* Source: Thought Magic Trading
© HiteshNimje - All Rights Reserved
This disclaimer should be prominently displayed whenever the indicator is shared, sold, or distributed to ensure users are fully aware of the risks and limitations involved in trading.
Confluence Retournement Haussier - Ultimate V1This indicator was originally designed to visualize the right moment to enter a position. I buy stocks when they are falling, at the bottom before they rebound.
The 30‑minute chart with its 100 EMA was used as the baseline, but it can be applied to multiple timeframes. I even used it on a 1‑second chart for a ticker, and when there is volume it works wonderfully.
It’s up to you to check whether it fits the ticker you’re analyzing by testing it on historical data.
Drawback: it takes up screen space. Feel free to improve it.
See a ticker in freefall and wonder whether it’s a good time to buy or if it will keep falling? Switch your chart to 30 minutes and watch for triangles and green circles to start appearing.
You could call it momentum. Your background begins to show color when there is confluence. If it stays black, don’t buy.
Already in the trade and the screen turns black? Sell, and wait for the colors to return before buying back in
Confluence Retournement Haussier - Ultimate V1This indicator was originally designed to visualize the right moment to enter a position. I buy stocks when they are falling, at the bottom before they rebound.
The 30‑minute chart with its 100 EMA was used as the baseline, but it can be applied to multiple timeframes. I even used it on a 1‑second chart for a ticker, and when there is volume it works wonderfully.
It’s up to you to check whether it fits the ticker you’re analyzing by testing it on historical data.
Drawback: it takes up screen space. Feel free to improve it.
See a ticker in freefall and wonder whether it’s a good time to buy or if it will keep falling? Switch your chart to 30 minutes and watch for triangles and green circles to start appearing.
You could call it momentum. Your background begins to show color when there is confluence. If it stays black, don’t buy.
Already in the trade and the screen turns black? Sell, and wait for the colors to return before buying back in
PRO Trade Manager//@version=5
indicator("PRO Trade Manager", shorttitle="PRO Trade Manager", overlay=false)
// ============================================================================
// INPUTS
//This code and all related materials are the exclusive property of Trade Confident LLC. Any reproduction, distribution, modification, or unauthorized use of this code, in whole or in part, is strictly prohibited without the express written consent of Trade Confident LLC. Violations may result in civil and/or criminal penalties to the fullest extent of the law.
// © Trade Confident LLC. All rights reserved.
// ============================================================================
// Moving Average Settings
maLength = input.int(15, "Signal Strength", minval=1, tooltip="Length of the moving average to measure deviation from (lower = more sensitive)")
maType = "SMA" // Fixed to SMA, no longer user-selectable
// Deviation Settings
deviationLength = input.int(20, "Deviation Period", minval=1, tooltip="Lookback period for standard deviation calculation")
// Signal Frequency dropdown - controls both upper and lower thresholds
signalFrequency = input.string("More/Good Accuracy", "Signal Frequency", options= ,
tooltip="Normal/Highest Accuracy = ±2.0 StdDev | More/Good Accuracy = ±1.5 StdDev | Most/Moderate Accuracy = ±1.0 StdDev")
// Set thresholds based on selected frequency
upperThreshold = signalFrequency == "Most/Moderate Accuracy" ? 1.0 : signalFrequency == "More/Good Accuracy" ? 1.5 : 2.0
lowerThreshold = signalFrequency == "Most/Moderate Accuracy" ? -1.0 : signalFrequency == "More/Good Accuracy" ? -1.5 : -2.0
// Continuation Signal Settings
atrMultiplier = input.float(2.0, "TP/DCA Market Breakout Detection", minval=0, step=0.5, tooltip="Number of ATR moves required to trigger continuation signals (Set to 0 to disable)")
// Visual Settings
showMA = false // MA display removed from settings
showSignals = input.bool(true, "Show Alert Signals", tooltip="Show visual signals when price is overextended")
// ============================================================================
// CALCULATIONS
// ============================================================================
// Calculate Moving Average based on type
ma = switch maType
"SMA" => ta.sma(close, maLength)
"EMA" => ta.ema(close, maLength)
"WMA" => ta.wma(close, maLength)
"VWMA" => ta.vwma(close, maLength)
=> ta.sma(close, maLength)
// Calculate deviation from MA
deviation = close - ma
// Calculate standard deviation
stdDev = ta.stdev(close, deviationLength)
// Calculate number of standard deviations away from MA
deviationScore = stdDev != 0 ? deviation / stdDev : 0
// Smooth the deviation score slightly for cleaner signals
smoothedDeviation = ta.ema(deviationScore, 3)
// ============================================================================
// SIGNALS
// ============================================================================
// Overextended conditions
overextendedHigh = smoothedDeviation >= upperThreshold
overextendedLow = smoothedDeviation <= lowerThreshold
// Signal triggers (crossing into overextended territory)
bullishSignal = ta.crossunder(smoothedDeviation, lowerThreshold)
bearishSignal = ta.crossover(smoothedDeviation, upperThreshold)
// Track if we're in bright histogram zones
isBrightGreen = smoothedDeviation <= lowerThreshold
isBrightRed = smoothedDeviation >= upperThreshold
// Track if we were in bright zone on previous bar
wasBrightGreen = smoothedDeviation <= lowerThreshold
wasBrightRed = smoothedDeviation >= upperThreshold
// Detect oscillator turning up after bright green (buy signal)
// Trigger if we were in bright green and oscillator turns up, even if no longer bright green
oscillatorTurningUp = smoothedDeviation > smoothedDeviation
buySignal = barstate.isconfirmed and wasBrightGreen and oscillatorTurningUp and smoothedDeviation <= smoothedDeviation
// Detect oscillator turning down after bright red (sell signal)
// Trigger if we were in bright red and oscillator turns down, even if no longer bright red
oscillatorTurningDown = smoothedDeviation < smoothedDeviation
sellSignal = barstate.isconfirmed and wasBrightRed and oscillatorTurningDown and smoothedDeviation >= smoothedDeviation
// ============================================================================
// ATR-BASED CONTINUATION SIGNALS
// ============================================================================
// Calculate ATR for distance measurement
atrLength = 14
atr = ta.atr(atrLength)
// Track price levels when ANY sell or buy signal occurs (original or continuation)
var float lastSellPrice = na
var float lastBuyPrice = na
// Initialize tracking on original signals
if sellSignal
lastSellPrice := close
if buySignal
lastBuyPrice := close
// Continuation Sell Signal: Price moved up by ATR multiplier from last red dot
// Disabled when atrMultiplier is set to 0
continuationSell = atrMultiplier > 0 and barstate.isconfirmed and not na(lastSellPrice) and close >= lastSellPrice + (atrMultiplier * atr)
// Continuation Buy Signal: Price moved down by ATR multiplier from last green dot
// Disabled when atrMultiplier is set to 0
continuationBuy = atrMultiplier > 0 and barstate.isconfirmed and not na(lastBuyPrice) and close <= lastBuyPrice - (atrMultiplier * atr)
// Update reference prices when continuation signals trigger (reset the 3 ATR counter)
if continuationSell
lastSellPrice := close
if continuationBuy
lastBuyPrice := close
// Combine original and continuation signals for plotting
allBuySignals = buySignal or continuationBuy
allSellSignals = sellSignal or continuationSell
// Track if a signal occurred to keep it visible on dashboard
// Signals trigger at barstate.isconfirmed (bar close)
var bool showBuyOnDashboard = false
var bool showSellOnDashboard = false
// Update dashboard flags immediately when signals occur
if allBuySignals
showBuyOnDashboard := true
showSellOnDashboard := false
else if allSellSignals
showSellOnDashboard := true
showBuyOnDashboard := false
else if barstate.isconfirmed
// Reset flags on bar close if no new signal
showBuyOnDashboard := false
showSellOnDashboard := false
// ============================================================================
// PLOTTING
// ============================================================================
// Professional color scheme
var color colorBullish = #00C853 // Professional green
var color colorBearish = #FF1744 // Professional red
var color colorNeutral = #2962FF // Professional blue
var color colorGrid = #363A45 // Dark gray for lines
var color colorBackground = #1E222D // Chart background
// Dynamic line color based on value
lineColor = smoothedDeviation > upperThreshold ? colorBearish :
smoothedDeviation < lowerThreshold ? colorBullish :
smoothedDeviation > 0 ? color.new(colorBearish, 50) :
color.new(colorBullish, 50)
// Plot the deviation oscillator with dynamic coloring
plot(smoothedDeviation, "Deviation Score", color=lineColor, linewidth=2)
// Plot zero line
hline(0, "Zero Line", color=color.new(colorGrid, 0), linestyle=hline.style_solid, linewidth=1)
// Subtle fill for overextended zones (without visible threshold lines)
upperLine = hline(upperThreshold, "Upper Threshold", color=color.new(color.gray, 100), linestyle=hline.style_dashed, linewidth=1)
lowerLine = hline(lowerThreshold, "Lower Threshold", color=color.new(color.gray, 100), linestyle=hline.style_dashed, linewidth=1)
fill(upperLine, hline(3), color=color.new(colorBearish, 95), title="Overextended High Zone")
fill(lowerLine, hline(-3), color=color.new(colorBullish, 95), title="Overextended Low Zone")
// Histogram style visualization (optional alternative)
histogramColor = smoothedDeviation >= upperThreshold ? color.new(colorBearish, 20) :
smoothedDeviation <= lowerThreshold ? color.new(colorBullish, 20) :
smoothedDeviation > 0 ? color.new(colorBearish, 80) :
color.new(colorBullish, 80)
plot(smoothedDeviation, "Histogram", color=histogramColor, style=plot.style_histogram, linewidth=3)
// ============================================================================
// BUY/SELL SIGNAL MARKERS
// ============================================================================
// Plot buy signals at -3.5 level (includes both initial and extended signals)
plot(allBuySignals ? -3.5 : na, title="Buy Signal", style=plot.style_circles,
color=color.new(colorBullish, 0), linewidth=4)
// Plot sell signals at 3.5 level (includes both initial and extended signals)
plot(allSellSignals ? 3.5 : na, title="Sell Signal", style=plot.style_circles,
color=color.new(colorBearish, 0), linewidth=4)
// ============================================================================
// ALERTS - SIMPLIFIED TO ONLY TWO ALERTS
// ============================================================================
// Alert 1: Long Entry/Short TP - fires on ANY green dot (original or continuation)
alertcondition(allBuySignals, "Long Entry/Short TP", "Long Entry/Short TP")
// Alert 2: Long TP/Short Entry - fires on ANY red dot (original or continuation)
alertcondition(allSellSignals, "Long TP/Short Entry", "Long TP/Short Entry")
// ============================================================================
// DATA DISPLAY
// ============================================================================
// Create a professional table for current readings
var color tableBgColor = #1a2332 // Dark blue background
var table infoTable = table.new(position.middle_right, 2, 2, border_width=1,
border_color=color.new(#2962FF, 30),
frame_width=1,
frame_color=color.new(#2962FF, 30))
if barstate.islast
// Determine status
statusText = overextendedHigh ? "OVEREXTENDED ↓" :
overextendedLow ? "OVEREXTENDED ↑" :
smoothedDeviation > 0 ? "Buyers In Control" : "Sellers In Control"
statusColor = overextendedHigh ? color.new(colorBearish, 0) :
overextendedLow ? color.new(colorBullish, 0) :
color.white
// Background color for status cell
statusBgColor = color.new(tableBgColor, 0)
// Status Row
table.cell(infoTable, 0, 0, "Status",
bgcolor=color.new(tableBgColor, 0),
text_color=color.white,
text_size=size.normal)
table.cell(infoTable, 1, 0, statusText,
bgcolor=statusBgColor,
text_color=statusColor,
text_size=size.normal)
// Signal Row - always show
table.cell(infoTable, 0, 1, "Signal",
bgcolor=color.new(tableBgColor, 0),
text_color=color.white,
text_size=size.normal)
// Show signal if flags are set (will stay visible during the bar)
if showBuyOnDashboard or showSellOnDashboard
// Green dot (buy signal) = "Long Entry/Short TP" with arrow up, white text on green background
// Red dot (sell signal) = "Long TP/Short Entry" with arrow down, white text on red background
signalText = showBuyOnDashboard ? "↑ Long Entry/Short TP" : "↓ Long TP/Short Entry"
signalColor = showBuyOnDashboard ? color.new(colorBullish, 0) : color.new(colorBearish, 0)
table.cell(infoTable, 1, 1, signalText,
bgcolor=signalColor,
text_color=color.white,
text_size=size.normal)
else
table.cell(infoTable, 1, 1, "Watching...",
bgcolor=color.new(tableBgColor, 0),
text_color=color.new(color.white, 60),
text_size=size.normal)
Key Support and ResistanceKEY SUPPORT AND RESISTANCE - USER GUIDE
========================================
OVERVIEW
This indicator automatically identifies and displays key support and resistance levels based on swing highs and swing lows. It uses pivot point detection to mark significant price levels where the market has previously shown reactions, helping traders identify potential entry/exit points and key decision zones.
KEY FEATURES
• Automatic Level Detection: Identifies swing highs (resistance) and swing lows (support) using pivot point analysis
• Dynamic Line Management: Displays only recent levels within a specified lookback period to keep charts clean
• Auto-Extending Lines: Projects support/resistance levels forward to anticipate future price interactions
• Color-Coded Levels: Red lines for resistance, green lines for support for easy visual identification
========================================
PARAMETERS
========================================
Left Bars (Default: 10)
• Minimum: 5 bars
• Number of bars to the left of the pivot point
• Higher values = more significant levels but fewer signals
• Lower values = more sensitive detection but may include minor swings
Right Bars (Default: 10)
• Minimum: 5 bars
• Number of bars to the right of the pivot point
• Must be confirmed by price action before the level is drawn
• Balances between confirmation delay and signal accuracy
Show Last N Bars (Default: 200)
• Minimum: 10 bars
• Only displays support/resistance levels detected within the most recent N bars
• Keeps your chart clean by removing outdated levels
• Adjust based on your trading timeframe and style
Line Extension Length (Default: 48)
• Minimum: 1 bar
• How many bars forward the support/resistance lines extend
• Helps visualize potential future price interactions
• Longer extensions useful for swing trading, shorter for day trading
========================================
HOW TO USE
========================================
FOR SWING TRADERS
1. Use default settings (10/10) or increase to 15/15 for more significant levels
2. Set "Show Last N Bars" to 300-500 to capture longer-term levels
3. Look for price reactions when approaching these levels
4. Combine with volume analysis for confirmation
FOR DAY TRADERS
1. Consider reducing Left/Right Bars to 7-8 for more frequent signals
2. Set "Show Last N Bars" to 100-150 to focus on recent action
3. Reduce "Line Extension Length" to 20-30 bars
4. Watch for intraday bounces or breakouts at these levels
TRADING STRATEGIES
Bounce Trading (Mean Reversion)
• Enter long when price approaches green support lines
• Enter short when price approaches red resistance lines
• Use stop loss just beyond the support/resistance level
• Best in ranging or consolidating markets
Breakout Trading (Trend Following)
• Wait for price to break through resistance (bullish) or support (bearish)
• Confirm with increased volume
• Previous resistance becomes new support (and vice versa)
• Best in trending markets
Multi-Timeframe Analysis
• Check higher timeframe levels for major support/resistance zones
• Use lower timeframe levels for precise entry/exit timing
• Confluence of multiple timeframe levels creates strong zones
========================================
IMPORTANT NOTES
========================================
Line Confirmation Delay
• Lines appear with a delay equal to "Right Bars" parameter
• This delay ensures the pivot point is confirmed
• Real-time level detection requires price action confirmation
Chart Clarity
• Maximum 500 lines can be displayed (TradingView limitation)
• Adjust "Show Last N Bars" if chart becomes too cluttered
• Old lines automatically delete when outside the lookback period
False Signals
• Not all support/resistance levels will hold
• Use additional confirmation (volume, candlestick patterns, other indicators)
• Markets can break through levels, especially during high-impact news
BEST PRACTICES
1. Combine with Other Analysis: Use alongside trend indicators, volume, and price action patterns
2. Context Matters: Consider overall market trend and structure
3. Risk Management: Always use stop losses; don't rely solely on S/R levels
4. Market Conditions: More effective in liquid, actively traded markets
5. Backtesting: Test settings on your specific instrument and timeframe before live trading
TROUBLESHOOTING
Too Many Lines?
• Increase "Left Bars" and "Right Bars" values
• Decrease "Show Last N Bars" value
Too Few Lines?
• Decrease "Left Bars" and "Right Bars" values
• Increase "Show Last N Bars" value
Lines Not Appearing?
• Ensure sufficient price data is loaded on your chart
• Check that "Right Bars" have passed since the last swing point
• Verify indicator is properly loaded (refresh if needed)
TECHNICAL DETAILS
• Uses ta.pivothigh() and ta.pivotlow() functions for level detection
• Implements array-based line management for efficient rendering
• Automatic cleanup of outdated lines to maintain performance
• Overlay indicator - displays directly on price chart
Disclaimer: This indicator is for educational and informational purposes only. It does not constitute financial advice. Always conduct your own research and risk assessment before making trading decisions.
========================================
中文使用指南
========================================
概述
本指標自動識別並顯示基於波段高點和低點的關鍵支撐阻力位。使用樞軸點檢測標記市場先前反應的重要價格水平,幫助交易者識別潛在的進出場點和關鍵決策區域。
主要功能
• 自動水平檢測:使用樞軸點分析識別波段高點(阻力)和波段低點(支撐)
• 動態線條管理:僅顯示指定回看期內的近期水平,保持圖表清晰
• 自動延伸線條:將支撐阻力水平向前投影,預測未來價格互動
• 顏色編碼:紅線表示阻力,綠線表示支撐,便於視覺識別
========================================
參數說明
========================================
左側K棒數(預設:10)
• 最小值:5根K棒
• 樞軸點左側的K棒數量
• 數值越高 = 水平越重要但訊號越少
• 數值越低 = 檢測更敏感但可能包含次要波動
右側K棒數(預設:10)
• 最小值:5根K棒
• 樞軸點右側的K棒數量
• 必須經過價格行為確認後才繪製水平
• 在確認延遲和訊號準確性之間取得平衡
顯示最近N根K棒內的點(預設:200)
• 最小值:10根K棒
• 僅顯示最近N根K棒內檢測到的支撐阻力水平
• 透過移除過時水平保持圖表清晰
• 根據您的交易時間框架和風格調整
線條延伸長度(預設:48)
• 最小值:1根K棒
• 支撐阻力線向前延伸的K棒數
• 幫助視覺化潛在的未來價格互動
• 較長延伸適合波段交易,較短適合當沖交易
========================================
使用方法
========================================
波段交易者
1. 使用預設設定(10/10)或增加至15/15以獲得更重要的水平
2. 將「顯示最近N根K棒」設為300-500以捕捉長期水平
3. 觀察價格接近這些水平時的反應
4. 結合成交量分析進行確認
當沖交易者
1. 考慮將左右側K棒減少至7-8以獲得更頻繁的訊號
2. 將「顯示最近N根K棒」設為100-150以專注於近期行情
3. 將「線條延伸長度」減少至20-30根K棒
4. 觀察日內在這些水平的反彈或突破
交易策略
反彈交易(均值回歸)
• 當價格接近綠色支撐線時做多
• 當價格接近紅色阻力線時做空
• 在支撐阻力水平之外設置止損
• 在區間或盤整市場中效果最佳
突破交易(趨勢跟隨)
• 等待價格突破阻力(看漲)或支撐(看跌)
• 以增加的成交量確認
• 先前的阻力成為新的支撐(反之亦然)
• 在趨勢市場中效果最佳
多時間框架分析
• 檢查更高時間框架的主要支撐阻力區域
• 使用較低時間框架進行精確的進出場時機
• 多個時間框架水平的匯合創造強大區域
========================================
重要注意事項
========================================
線條確認延遲
• 線條出現時會有等於「右側K棒數」參數的延遲
• 此延遲確保樞軸點被確認
• 實時水平檢測需要價格行為確認
圖表清晰度
• 最多可顯示500條線(TradingView限制)
• 如果圖表變得太雜亂,請調整「顯示最近N根K棒」
• 超出回看期的舊線會自動刪除
假訊號
• 並非所有支撐阻力水平都會守住
• 使用額外確認(成交量、K棒型態、其他指標)
• 市場可能突破水平,特別是在重大新聞期間
最佳實踐
1. 結合其他分析:與趨勢指標、成交量和價格行為型態一起使用
2. 背景很重要:考慮整體市場趨勢和結構
3. 風險管理:始終使用止損;不要僅依賴支撐阻力水平
4. 市場條件:在流動性高、活躍交易的市場中更有效
5. 回測:在實盤交易前,在您的特定商品和時間框架上測試設定
故障排除
線條太多?
• 增加「左側K棒數」和「右側K棒數」數值
• 減少「顯示最近N根K棒」數值
線條太少?
• 減少「左側K棒數」和「右側K棒數」數值
• 增加「顯示最近N根K棒」數值
線條未出現?
• 確保圖表上載入了足夠的價格數據
• 檢查自上次波動點以來是否已過「右側K棒數」
• 驗證指標是否正確載入(如需要請刷新)
技術細節
• 使用 ta.pivothigh() 和 ta.pivotlow() 函數進行水平檢測
• 實施基於陣列的線條管理以實現高效渲染
• 自動清理過時線條以保持性能
• 疊加指標 - 直接顯示在價格圖表上
免責聲明:本指標僅供教育和資訊目的。不構成財務建議。在做出交易決策前,請務必進行自己的研究和風險評估。
Ultimate RSI [captainua]Ultimate RSI
Overview
This indicator combines multiple RSI calculations with volume analysis, divergence detection, and trend filtering to provide a comprehensive RSI-based trading system. The script calculates RSI using three different periods (6, 14, 24) and applies various smoothing methods to reduce noise while maintaining responsiveness. The combination of these features creates a multi-layered confirmation system that reduces false signals by requiring alignment across multiple indicators and timeframes.
The script includes optimized configuration presets for instant setup: Scalping, Day Trading, Swing Trading, and Position Trading. Simply select a preset to instantly configure all settings for your trading style, or use Custom mode for full manual control. All settings include automatic input validation to prevent configuration errors and ensure optimal performance.
Configuration Presets
The script includes preset configurations optimized for different trading styles, allowing you to instantly configure the indicator for your preferred trading approach. Simply select a preset from the "Configuration Preset" dropdown menu:
- Scalping: Optimized for fast-paced trading with shorter RSI periods (4, 7, 9) and minimal smoothing. Noise reduction is automatically disabled, and momentum confirmation is disabled to allow faster signal generation. Designed for quick entries and exits in volatile markets.
- Day Trading: Balanced configuration for intraday trading with moderate RSI periods (6, 9, 14) and light smoothing. Momentum confirmation is enabled for better signal quality. Ideal for day trading strategies requiring timely but accurate signals.
- Swing Trading: Configured for medium-term positions with standard RSI periods (14, 14, 21) and moderate smoothing. Provides smoother signals suitable for swing trading timeframes. All noise reduction features remain active.
- Position Trading: Optimized for longer-term trades with extended RSI periods (24, 21, 28) and heavier smoothing. Filters are configured for highest-quality signals. Best for position traders holding trades over multiple days or weeks.
- Custom: Full manual control over all settings. All input parameters are available for complete customization. This is the default mode and maintains full backward compatibility with previous versions.
When a preset is selected, it automatically adjusts RSI periods, smoothing lengths, and filter settings to match the trading style. The preset configurations ensure optimal settings are applied instantly, eliminating the need for manual configuration. All settings can still be manually overridden if needed, providing flexibility while maintaining ease of use.
Input Validation and Error Prevention
The script includes comprehensive input validation to prevent configuration errors:
- Cross-Input Validation: Smoothing lengths are automatically validated to ensure they are always less than their corresponding RSI period length. If you set a smoothing length greater than or equal to the RSI length, the script automatically adjusts it to (RSI Length - 1). This prevents logical errors and ensures valid configurations.
- Input Range Validation: All numeric inputs have minimum and maximum value constraints enforced by TradingView's input system, preventing invalid parameter values.
- Smart Defaults: Preset configurations use validated default values that are tested and optimized for each trading style. When switching between presets, all related settings are automatically updated to maintain consistency.
Core Calculations
Multi-Period RSI:
The script calculates RSI using the standard Wilder's RSI formula: RSI = 100 - (100 / (1 + RS)), where RS = Average Gain / Average Loss over the specified period. Three separate RSI calculations run simultaneously:
- RSI(6): Uses 6-period lookback for high sensitivity to recent price changes, useful for scalping and early signal detection
- RSI(14): Standard 14-period RSI for balanced analysis, the most commonly used RSI period
- RSI(24): Longer 24-period RSI for trend confirmation, provides smoother signals with less noise
Each RSI can be smoothed using EMA, SMA, RMA (Wilder's smoothing), WMA, or Zero-Lag smoothing. Zero-Lag smoothing uses the formula: ZL-RSI = RSI + (RSI - RSI ) to reduce lag while maintaining signal quality. You can apply individual smoothing lengths to each RSI period, or use global smoothing where all three RSIs share the same smoothing length.
Dynamic Overbought/Oversold Thresholds:
Static thresholds (default 70/30) are adjusted based on market volatility using ATR. The formula: Dynamic OB = Base OB + (ATR × Volatility Multiplier × Base Percentage / 100), Dynamic OS = Base OS - (ATR × Volatility Multiplier × Base Percentage / 100). This adapts to volatile markets where traditional 70/30 levels may be too restrictive. During high volatility, the dynamic thresholds widen, and during low volatility, they narrow. The thresholds are clamped between 0-100 to remain within RSI bounds. The ATR is cached for performance optimization, updating on confirmed bars and real-time bars.
Adaptive RSI Calculation:
An adaptive RSI adjusts the standard RSI(14) based on current volatility relative to average volatility. The calculation: Adaptive Factor = (Current ATR / SMA of ATR over 20 periods) × Volatility Multiplier. If SMA of ATR is zero (edge case), the adaptive factor defaults to 0. The adaptive RSI = Base RSI × (1 + Adaptive Factor), clamped to 0-100. This makes the indicator more responsive during high volatility periods when traditional RSI may lag. The adaptive RSI is used for signal generation (buy/sell signals) but is not plotted on the chart.
Overbought/Oversold Fill Zones:
The script provides visual fill zones between the RSI line and the threshold lines when RSI is in overbought or oversold territory. The fill logic uses inclusive conditions: fills are shown when RSI is currently in the zone OR was in the zone on the previous bar. This ensures complete coverage of entry and exit boundaries. A minimum gap of 0.1 RSI points is maintained between the RSI plot and threshold line to ensure reliable polygon rendering in TradingView. The fill uses invisible plots at the threshold levels and the RSI value, with the fill color applied between them. You can select which RSI (6, 14, or 24) to use for the fill zones.
Divergence Detection
Regular Divergence:
Bullish divergence: Price makes a lower low (current low < lowest low from previous lookback period) while RSI makes a higher low (current RSI > lowest RSI from previous lookback period). Bearish divergence: Price makes a higher high (current high > highest high from previous lookback period) while RSI makes a lower high (current RSI < highest RSI from previous lookback period). The script compares current price/RSI values to the lowest/highest values from the previous lookback period using ta.lowest() and ta.highest() functions with index to reference the previous period's extreme.
Pivot-Based Divergence:
An enhanced divergence detection method that uses actual pivot points instead of simple lowest/highest comparisons. This provides more accurate divergence detection by identifying significant pivot lows/highs in both price and RSI. The pivot-based method uses a tolerance-based approach with configurable constants: 1% tolerance for price comparisons (priceTolerancePercent = 0.01) and 1.0 RSI point absolute tolerance for RSI comparisons (pivotTolerance = 1.0). Minimum divergence threshold is 1.0 RSI point (minDivergenceThreshold = 1.0). It looks for two recent pivot points and compares them: for bullish divergence, price makes a lower low (at least 1% lower) while RSI makes a higher low (at least 1.0 point higher). This method reduces false divergences by requiring actual pivot points rather than just any low/high within a period. When enabled, pivot-based divergence replaces the traditional method for more accurate signal generation.
Strong Divergence:
Regular divergence is confirmed by an engulfing candle pattern. Bullish engulfing requires: (1) Previous candle is bearish (close < open ), (2) Current candle is bullish (close > open), (3) Current close > previous open, (4) Current open < previous close. Bearish engulfing is the inverse: previous bullish, current bearish, current close < previous open, current open > previous close. Strong divergence signals are marked with visual indicators (🐂 for bullish, 🐻 for bearish) and have separate alert conditions.
Hidden Divergence:
Continuation patterns that signal trend continuation rather than reversal. Bullish hidden divergence: Price makes a higher low (current low > lowest low from previous period) but RSI makes a lower low (current RSI < lowest RSI from previous period). Bearish hidden divergence: Price makes a lower high (current high < highest high from previous period) but RSI makes a higher high (current RSI > highest RSI from previous period). These patterns indicate the trend is likely to continue in the current direction.
Volume Confirmation System
Volume threshold filtering requires current volume to exceed the volume SMA multiplied by the threshold factor. The formula: Volume Confirmed = Volume > (Volume SMA × Threshold). If the threshold is set to 0.1 or lower, volume confirmation is effectively disabled (always returns true). This allows you to use the indicator without volume filtering if desired.
Volume Climax is detected when volume exceeds: Volume SMA + (Volume StdDev × Multiplier). This indicates potential capitulation moments where extreme volume accompanies price movements. Volume Dry-Up is detected when volume falls below: Volume SMA - (Volume StdDev × Multiplier), indicating low participation periods that may produce unreliable signals. The volume SMA is cached for performance, updating on confirmed and real-time bars.
Multi-RSI Synergy
The script generates signals when multiple RSI periods align in overbought or oversold zones. This creates a confirmation system that reduces false signals. In "ALL" mode, all three RSIs (6, 14, 24) must be simultaneously above the overbought threshold OR all three must be below the oversold threshold. In "2-of-3" mode, any two of the three RSIs must align in the same direction. The script counts how many RSIs are in each zone: twoOfThreeOB = ((rsi6OB ? 1 : 0) + (rsi14OB ? 1 : 0) + (rsi24OB ? 1 : 0)) >= 2.
Synergy signals require: (1) Multi-RSI alignment (ALL or 2-of-3), (2) Volume confirmation, (3) Reset condition satisfied (enough bars since last synergy signal), (4) Additional filters passed (RSI50, Trend, ADX, Volume Dry-Up avoidance). Separate reset conditions track buy and sell signals independently. The reset condition uses ta.barssince() to count bars since the last trigger, returning true if the condition never occurred (allowing first signal) or if enough bars have passed.
Regression Forecasting
The script uses historical RSI values to forecast future RSI direction using four methods. The forecast horizon is configurable (1-50 bars ahead). Historical data is collected into an array, and regression coefficients are calculated based on the selected method.
Linear Regression: Calculates the least-squares fit line (y = mx + b) through the last N RSI values. The calculation: meanX = sumX / horizon, meanY = sumY / horizon, denominator = sumX² - horizon × meanX², m = (sumXY - horizon × meanX × meanY) / denominator, b = meanY - m × meanX. The forecast projects this line forward: forecast = b + m × i for i = 1 to horizon.
Polynomial Regression: Fits a quadratic curve (y = ax² + bx + c) to capture non-linear trends. The system of equations is solved using Cramer's rule with a 3×3 determinant. If the determinant is too small (< 0.0001), the system falls back to linear regression. Coefficients are calculated by solving: n×c + sumX×b + sumX²×a = sumY, sumX×c + sumX²×b + sumX³×a = sumXY, sumX²×c + sumX³×b + sumX⁴×a = sumX²Y. Note: Due to the O(n³) computational complexity of polynomial regression, the forecast horizon is automatically limited to a maximum of 20 bars when using polynomial regression to maintain optimal performance. If you set a horizon greater than 20 bars with polynomial regression, it will be automatically capped at 20 bars.
Exponential Smoothing: Applies exponential smoothing with adaptive alpha = 2/(horizon+1). The smoothing iterates from oldest to newest value: smoothed = alpha × series + (1 - alpha) × smoothed. Trend is calculated by comparing current smoothed value to an earlier smoothed value (at 60% of horizon): trend = (smoothed - earlierSmoothed) / (horizon - earlierIdx). Forecast: forecast = base + trend × i.
Moving Average: Uses the difference between short MA (horizon/2) and long MA (horizon) to estimate trend direction. Trend = (maShort - maLong) / (longLen - shortLen). Forecast: forecast = maShort + trend × i.
Confidence bands are calculated using RMSE (Root Mean Squared Error) of historical forecast accuracy. The error calculation compares historical values with forecast values: RMSE = sqrt(sumSquaredError / count). If insufficient data exists, it falls back to calculating standard deviation of recent RSI values. Confidence bands = forecast ± (RMSE × confidenceLevel). All forecast values and confidence bands are clamped to 0-100 to remain within RSI bounds. The regression functions include comprehensive safety checks: horizon validation (must not exceed array size), empty array handling, edge case handling for horizon=1 scenarios, division-by-zero protection, and bounds checking for all array access operations to prevent runtime errors.
Strong Top/Bottom Detection
Strong buy signals require three conditions: (1) RSI is at its lowest point within the bottom period: rsiVal <= ta.lowest(rsiVal, bottomPeriod), (2) RSI is below the oversold threshold minus a buffer: rsiVal < (oversoldThreshold - rsiTopBottomBuffer), where rsiTopBottomBuffer = 2.0 RSI points, (3) The absolute difference between current RSI and the lowest RSI exceeds the threshold value: abs(rsiVal - ta.lowest(rsiVal, bottomPeriod)) > threshold. This indicates a bounce from extreme levels with sufficient distance from the absolute low.
Strong sell signals use the inverse logic: RSI at highest point, above overbought threshold + rsiTopBottomBuffer (2.0 RSI points), and difference from highest exceeds threshold. Both signals also require: volume confirmation, reset condition satisfied (separate reset for buy vs sell), and all additional filters passed (RSI50, Trend, ADX, Volume Dry-Up avoidance).
The reset condition uses separate logic for buy and sell: resetCondBuy checks bars since isRSIAtBottom, resetCondSell checks bars since isRSIAtTop. This ensures buy signals reset based on bottom conditions and sell signals reset based on top conditions, preventing incorrect signal blocking.
Filtering System
RSI(50) Filter: Only allows buy signals when RSI(14) > 50 (bullish momentum) and sell signals when RSI(14) < 50 (bearish momentum). This filter ensures you're buying in uptrends and selling in downtrends from a momentum perspective. The filter is optional and can be disabled. Recommended to enable for noise reduction.
Trend Filter: Uses a long-term EMA (default 200) to determine trend direction. Buy signals require price above EMA, sell signals require price below EMA. The EMA slope is calculated as: emaSlope = ema - ema . Optional EMA slope filter additionally requires the EMA to be rising (slope > 0) for buy signals or falling (slope < 0) for sell signals. This provides stronger trend confirmation by requiring both price position and EMA direction.
ADX Filter: Uses the Directional Movement Index (calculated via ta.dmi()) to measure trend strength. Signals only fire when ADX exceeds the threshold (default 20), indicating a strong trend rather than choppy markets. The ADX calculation uses separate length and smoothing parameters. This filter helps avoid signals during sideways/consolidation periods.
Volume Dry-Up Avoidance: Prevents signals during periods of extremely low volume relative to average. If volume dry-up is detected and the filter is enabled, signals are blocked. This helps avoid unreliable signals that occur during low participation periods.
RSI Momentum Confirmation: Requires RSI to be accelerating in the signal direction before confirming signals. For buy signals, RSI must be consistently rising (recovering from oversold) over the lookback period. For sell signals, RSI must be consistently falling (declining from overbought) over the lookback period. The momentum check verifies that all consecutive changes are in the correct direction AND the cumulative change is significant. This filter ensures signals only fire when RSI momentum aligns with the signal direction, reducing false signals from weak momentum.
Multi-Timeframe Confirmation: Requires higher timeframe RSI to align with the signal direction. For buy signals, current RSI must be below the higher timeframe RSI by at least the confirmation threshold. For sell signals, current RSI must be above the higher timeframe RSI by at least the confirmation threshold. This ensures signals align with the larger trend context, reducing counter-trend trades. The higher timeframe RSI is fetched using request.security() from the selected timeframe.
All filters use the pattern: filterResult = not filterEnabled OR conditionMet. This means if a filter is disabled, it always passes (returns true). Filters can be combined, and all must pass for a signal to fire.
RSI Centerline and Period Crossovers
RSI(50) Centerline Crossovers: Detects when the selected RSI source crosses above or below the 50 centerline. Bullish crossover: ta.crossover(rsiSource, 50), bearish crossover: ta.crossunder(rsiSource, 50). You can select which RSI (6, 14, or 24) to use for these crossovers. These signals indicate momentum shifts from bearish to bullish (above 50) or bullish to bearish (below 50).
RSI Period Crossovers: Detects when different RSI periods cross each other. Available pairs: RSI(6) × RSI(14), RSI(14) × RSI(24), or RSI(6) × RSI(24). Bullish crossover: fast RSI crosses above slow RSI (ta.crossover(rsiFast, rsiSlow)), indicating momentum acceleration. Bearish crossover: fast RSI crosses below slow RSI (ta.crossunder(rsiFast, rsiSlow)), indicating momentum deceleration. These crossovers can signal shifts in momentum before price moves.
StochRSI Calculation
Stochastic RSI applies the Stochastic oscillator formula to RSI values instead of price. The calculation: %K = ((RSI - Lowest RSI) / (Highest RSI - Lowest RSI)) × 100, where the lookback is the StochRSI length. If the range is zero, %K defaults to 50.0. %K is then smoothed using SMA with the %K smoothing length. %D is calculated as SMA of smoothed %K with the %D smoothing length. All values are clamped to 0-100. You can select which RSI (6, 14, or 24) to use as the source for StochRSI calculation.
RSI Bollinger Bands
Bollinger Bands are applied to RSI(14) instead of price. The calculation: Basis = SMA(RSI(14), BB Period), StdDev = stdev(RSI(14), BB Period), Upper = Basis + (StdDev × Deviation Multiplier), Lower = Basis - (StdDev × Deviation Multiplier). This creates dynamic zones around RSI that adapt to RSI volatility. When RSI touches or exceeds the bands, it indicates extreme conditions relative to recent RSI behavior.
Noise Reduction System
The script includes a comprehensive noise reduction system to filter false signals and improve accuracy. When enabled, signals must pass multiple quality checks:
Signal Strength Requirement: RSI must be at least X points away from the centerline (50). For buy signals, RSI must be at least X points below 50. For sell signals, RSI must be at least X points above 50. This ensures signals only trigger when RSI is significantly in oversold/overbought territory, not just near neutral.
Extreme Zone Requirement: RSI must be deep in the OB/OS zone. For buy signals, RSI must be at least X points below the oversold threshold. For sell signals, RSI must be at least X points above the overbought threshold. This ensures signals only fire in extreme conditions where reversals are more likely.
Consecutive Bar Confirmation: The signal condition must persist for N consecutive bars before triggering. This reduces false signals from single-bar spikes or noise. The confirmation checks that the signal condition was true for all bars in the lookback period.
Zone Persistence (Optional): Requires RSI to remain in the OB/OS zone for N consecutive bars, not just touch it. This ensures RSI is truly in an extreme state rather than just briefly touching the threshold. When enabled, this provides stricter filtering for higher-quality signals.
RSI Slope Confirmation (Optional): Requires RSI to be moving in the expected signal direction. For buy signals, RSI should be rising (recovering from oversold). For sell signals, RSI should be falling (declining from overbought). This ensures momentum is aligned with the signal direction. The slope is calculated by comparing current RSI to RSI N bars ago.
All noise reduction filters can be enabled/disabled independently, allowing you to customize the balance between signal frequency and accuracy. The default settings provide a good balance, but you can adjust them based on your trading style and market conditions.
Alert System
The script includes separate alert conditions for each signal type: buy/sell (adaptive RSI crossovers), divergence (regular, strong, hidden), crossovers (RSI50 centerline, RSI period crossovers), synergy signals, and trend breaks. Each alert type has its own alertcondition() declaration with a unique title and message.
An optional cooldown system prevents alert spam by requiring a minimum number of bars between alerts of the same type. The cooldown check: canAlert = na(lastAlertBar) OR (bar_index - lastAlertBar >= cooldownBars). If the last alert bar is na (first alert), it always allows the alert. Each alert type maintains its own lastAlertBar variable, so cooldowns are independent per signal type. The default cooldown is 10 bars, which is recommended for noise reduction.
Higher Timeframe RSI
The script can display RSI from a higher timeframe using request.security(). This allows you to see the RSI context from a larger timeframe (e.g., daily RSI on an hourly chart). The higher timeframe RSI uses RSI(14) calculation from the selected timeframe. This provides context for the current timeframe's RSI position relative to the larger trend.
RSI Pivot Trendlines
The script can draw trendlines connecting pivot highs and lows on RSI(6). This feature helps visualize RSI trends and identify potential trend breaks.
Pivot Detection: Pivots are detected using a configurable period. The script can require pivots to have minimum strength (RSI points difference from surrounding bars) to filter out weak pivots. Lower minPivotStrength values detect more pivots (more trendlines), while higher values detect only stronger pivots (fewer but more significant trendlines). Pivot confirmation is optional: when enabled, the script waits N bars to confirm the pivot remains the extreme, reducing repainting. Pivot confirmation functions (f_confirmPivotLow and f_confirmPivotHigh) are always called on every bar for consistency, as recommended by TradingView. When pivot bars are not available (na), safe default values are used, and the results are then used conditionally based on confirmation settings. This ensures consistent calculations and prevents calculation inconsistencies.
Trendline Drawing: Uptrend lines connect confirmed pivot lows (green), and downtrend lines connect confirmed pivot highs (red). By default, only the most recent trendline is shown (old trendlines are deleted when new pivots are confirmed). This keeps the chart clean and uncluttered. If "Keep Historical Trendlines" is enabled, the script preserves up to N historical trendlines (configurable via "Max Trendlines to Keep", default 5). When historical trendlines are enabled, old trendlines are saved to arrays instead of being deleted, allowing you to see multiple trendlines simultaneously for better trend analysis. The arrays are automatically limited to prevent memory accumulation.
Trend Break Detection: Signals are generated when RSI breaks above or below trendlines. Uptrend breaks (RSI crosses below uptrend line) generate buy signals. Downtrend breaks (RSI crosses above downtrend line) generate sell signals. Optional trend break confirmation requires the break to persist for N bars and optionally include volume confirmation. Trendline angle filtering can exclude flat/weak trendlines from generating signals (minTrendlineAngle > 0 filters out weak/flat trendlines).
How Components Work Together
The combination of multiple RSI periods provides confirmation across different timeframes, reducing false signals. RSI(6) catches early moves, RSI(14) provides balanced signals, and RSI(24) confirms longer-term trends. When all three align (synergy), it indicates strong consensus across timeframes.
Volume confirmation ensures signals occur with sufficient market participation, filtering out low-volume false breakouts. Volume climax detection identifies potential reversal points, while volume dry-up avoidance prevents signals during unreliable low-volume periods.
Trend filters align signals with the overall market direction. The EMA filter ensures you're trading with the trend, and the EMA slope filter adds an additional layer by requiring the trend to be strengthening (rising EMA for buys, falling EMA for sells).
ADX filter ensures signals only fire during strong trends, avoiding choppy/consolidation periods. RSI(50) filter ensures momentum alignment with the trade direction.
Momentum confirmation requires RSI to be accelerating in the signal direction, ensuring signals only fire when momentum is aligned. Multi-timeframe confirmation ensures signals align with higher timeframe trends, reducing counter-trend trades.
Divergence detection identifies potential reversals before they occur, providing early warning signals. Pivot-based divergence provides more accurate detection by using actual pivot points. Hidden divergence identifies continuation patterns, useful for trend-following strategies.
The noise reduction system combines multiple filters (signal strength, extreme zone, consecutive bars, zone persistence, RSI slope) to significantly reduce false signals. These filters work together to ensure only high-quality signals are generated.
The synergy system requires alignment across all RSI periods for highest-quality signals, significantly reducing false positives. Regression forecasting provides forward-looking context, helping anticipate potential RSI direction changes.
Pivot trendlines provide visual trend analysis and can generate signals when RSI breaks trendlines, indicating potential reversals or continuations.
Reset conditions prevent signal spam by requiring a minimum number of bars between signals. Separate reset conditions for buy and sell signals ensure proper signal management.
Usage Instructions
Configuration Presets (Recommended): The script includes optimized preset configurations for instant setup. Simply select your trading style from the "Configuration Preset" dropdown:
- Scalping Preset: RSI(4, 7, 9) with minimal smoothing. Noise reduction disabled, momentum confirmation disabled for fastest signals.
- Day Trading Preset: RSI(6, 9, 14) with light smoothing. Momentum confirmation enabled for better signal quality.
- Swing Trading Preset: RSI(14, 14, 21) with moderate smoothing. Balanced configuration for medium-term trades.
- Position Trading Preset: RSI(24, 21, 28) with heavier smoothing. Optimized for longer-term positions with all filters active.
- Custom Mode: Full manual control over all settings. Default behavior matches previous script versions.
Presets automatically configure RSI periods, smoothing lengths, and filter settings. You can still manually adjust any setting after selecting a preset if needed.
Getting Started: The easiest way to get started is to select a configuration preset matching your trading style (Scalping, Day Trading, Swing Trading, or Position Trading) from the "Configuration Preset" dropdown. This instantly configures all settings for optimal performance. Alternatively, use "Custom" mode for full manual control. The default configuration (Custom mode) shows RSI(6), RSI(14), and RSI(24) with their default smoothing. Overbought/oversold fill zones are enabled by default.
Customizing RSI Periods: Adjust the RSI lengths (6, 14, 24) based on your trading timeframe. Shorter periods (6) for scalping, standard (14) for day trading, longer (24) for swing trading. You can disable any RSI period you don't need.
Smoothing Selection: Choose smoothing method based on your needs. EMA provides balanced smoothing, RMA (Wilder's) is traditional, Zero-Lag reduces lag but may increase noise. Adjust smoothing lengths individually or use global smoothing for consistency. Note: Smoothing lengths are automatically validated to ensure they are always less than the corresponding RSI period length. If you set smoothing >= RSI length, it will be auto-adjusted to prevent invalid configurations.
Dynamic OB/OS: The dynamic thresholds automatically adapt to volatility. Adjust the volatility multiplier and base percentage to fine-tune sensitivity. Higher values create wider thresholds in volatile markets.
Volume Confirmation: Set volume threshold to 1.2 (default) for standard confirmation, higher for stricter filtering, or 0.1 to disable volume filtering entirely.
Multi-RSI Synergy: Use "ALL" mode for highest-quality signals (all 3 RSIs must align), or "2-of-3" mode for more frequent signals. Adjust the reset period to control signal frequency.
Filters: Enable filters gradually to find your preferred balance. Start with volume confirmation, then add trend filter, then ADX for strongest confirmation. RSI(50) filter is useful for momentum-based strategies and is recommended for noise reduction. Momentum confirmation and multi-timeframe confirmation add additional layers of accuracy but may reduce signal frequency.
Noise Reduction: The noise reduction system is enabled by default with balanced settings. Adjust minSignalStrength (default 3.0) to control how far RSI must be from centerline. Increase requireConsecutiveBars (default 1) to require signals to persist longer. Enable requireZonePersistence and requireRsiSlope for stricter filtering (higher quality but fewer signals). Start with defaults and adjust based on your needs.
Divergence: Enable divergence detection and adjust lookback periods. Strong divergence (with engulfing confirmation) provides higher-quality signals. Hidden divergence is useful for trend-following strategies. Enable pivot-based divergence for more accurate detection using actual pivot points instead of simple lowest/highest comparisons. Pivot-based divergence uses tolerance-based matching (1% for price, 1.0 RSI point for RSI) for better accuracy.
Forecasting: Enable regression forecasting to see potential RSI direction. Linear regression is simplest, polynomial captures curves, exponential smoothing adapts to trends. Adjust horizon based on your trading timeframe. Confidence bands show forecast uncertainty - wider bands indicate less reliable forecasts.
Pivot Trendlines: Enable pivot trendlines to visualize RSI trends and identify trend breaks. Adjust pivot detection period (default 5) - higher values detect fewer but stronger pivots. Enable pivot confirmation (default ON) to reduce repainting. Set minPivotStrength (default 1.0) to filter weak pivots - lower values detect more pivots (more trendlines), higher values detect only stronger pivots (fewer trendlines). Enable "Keep Historical Trendlines" to preserve multiple trendlines instead of just the most recent one. Set "Max Trendlines to Keep" (default 5) to control how many historical trendlines are preserved. Enable trend break confirmation for more reliable break signals. Adjust minTrendlineAngle (default 0.0) to filter flat trendlines - set to 0.1-0.5 to exclude weak trendlines.
Alerts: Set up alerts for your preferred signal types. Enable cooldown to prevent alert spam. Each signal type has its own alert condition, so you can be selective about which signals trigger alerts.
Visual Elements and Signal Markers
The script uses various visual markers to indicate signals and conditions:
- "sBottom" label (green): Strong bottom signal - RSI at extreme low with strong buy conditions
- "sTop" label (red): Strong top signal - RSI at extreme high with strong sell conditions
- "SyBuy" label (lime): Multi-RSI synergy buy signal - all RSIs aligned oversold
- "SySell" label (red): Multi-RSI synergy sell signal - all RSIs aligned overbought
- 🐂 emoji (green): Strong bullish divergence detected
- 🐻 emoji (red): Strong bearish divergence detected
- 🔆 emoji: Weak divergence signals (if enabled)
- "H-Bull" label: Hidden bullish divergence
- "H-Bear" label: Hidden bearish divergence
- ⚡ marker (top of pane): Volume climax detected (extreme volume) - positioned at top for visibility
- 💧 marker (top of pane): Volume dry-up detected (very low volume) - positioned at top for visibility
- ↑ triangle (lime): Uptrend break signal - RSI breaks below uptrend line
- ↓ triangle (red): Downtrend break signal - RSI breaks above downtrend line
- Triangle up (lime): RSI(50) bullish crossover
- Triangle down (red): RSI(50) bearish crossover
- Circle markers: RSI period crossovers
All markers are positioned at the RSI value where the signal occurs, using location.absolute for precise placement.
Signal Priority and Interpretation
Signals are generated independently and can occur simultaneously. Higher-priority signals generally indicate stronger setups:
1. Multi-RSI Synergy signals (SyBuy/SySell) - Highest priority: Requires alignment across all RSI periods plus volume and filter confirmation. These are the most reliable signals.
2. Strong Top/Bottom signals (sTop/sBottom) - High priority: Indicates extreme RSI levels with strong bounce conditions. Requires volume confirmation and all filters.
3. Divergence signals - Medium-High priority: Strong divergence (with engulfing) is more reliable than regular divergence. Hidden divergence indicates continuation rather than reversal.
4. Adaptive RSI crossovers - Medium priority: Buy when adaptive RSI crosses below dynamic oversold, sell when it crosses above dynamic overbought. These use volatility-adjusted RSI for more accurate signals.
5. RSI(50) centerline crossovers - Medium priority: Momentum shift signals. Less reliable alone but useful when combined with other confirmations.
6. RSI period crossovers - Lower priority: Early momentum shift indicators. Can provide early warning but may produce false signals in choppy markets.
Best practice: Wait for multiple confirmations. For example, a synergy signal combined with divergence and volume climax provides the strongest setup.
Chart Requirements
For proper script functionality and compliance with TradingView requirements, ensure your chart displays:
- Symbol name: The trading pair or instrument name should be visible
- Timeframe: The chart timeframe should be clearly displayed
- Script name: "Ultimate RSI " should be visible in the indicator title
These elements help traders understand what they're viewing and ensure proper script identification. The script automatically includes this information in the indicator title and chart labels.
Performance Considerations
The script is optimized for performance:
- ATR and Volume SMA are cached using var variables, updating only on confirmed and real-time bars to reduce redundant calculations
- Forecast line arrays are dynamically managed: lines are reused when possible, and unused lines are deleted to prevent memory accumulation
- Calculations use efficient Pine Script functions (ta.rsi, ta.ema, etc.) which are optimized by TradingView
- Array operations are minimized where possible, with direct calculations preferred
- Polynomial regression automatically caps the forecast horizon at 20 bars (POLYNOMIAL_MAX_HORIZON constant) to prevent performance degradation, as polynomial regression has O(n³) complexity. This safeguard ensures optimal performance even with large horizon settings
- Pivot detection includes edge case handling to ensure reliable calculations even on early bars with limited historical data. Regression forecasting functions include comprehensive safety checks: horizon validation (must not exceed array size), empty array handling, edge case handling for horizon=1 scenarios, and division-by-zero protection in all mathematical operations
The script should perform well on all timeframes. On very long historical data, forecast lines may accumulate if the horizon is large; consider reducing the forecast horizon if you experience performance issues. The polynomial regression performance safeguard automatically prevents performance issues for that specific regression type.
Known Limitations and Considerations
- Forecast lines are forward-looking projections and should not be used as definitive predictions. They provide context but are not guaranteed to be accurate.
- Dynamic OB/OS thresholds can exceed 100 or go below 0 in extreme volatility scenarios, but are clamped to 0-100 range. This means in very volatile markets, the dynamic thresholds may not widen as much as the raw calculation suggests.
- Volume confirmation requires sufficient historical volume data. On new instruments or very short timeframes, volume calculations may be less reliable.
- Higher timeframe RSI uses request.security() which may have slight delays on some data feeds.
- Regression forecasting requires at least N bars of history (where N = forecast horizon) before it can generate forecasts. Early bars will not show forecast lines.
- StochRSI calculation requires the selected RSI source to have sufficient history. Very short RSI periods on new charts may produce less reliable StochRSI values initially.
Practical Use Cases
The indicator can be configured for different trading styles and timeframes:
Swing Trading: Select the "Swing Trading" preset for instant optimal configuration. This preset uses RSI periods (14, 14, 21) with moderate smoothing. Alternatively, manually configure: Use RSI(24) with Multi-RSI Synergy in "ALL" mode, combined with trend filter (EMA 200) and ADX filter. This configuration provides high-probability setups with strong confirmation across multiple RSI periods.
Day Trading: Select the "Day Trading" preset for instant optimal configuration. This preset uses RSI periods (6, 9, 14) with light smoothing and momentum confirmation enabled. Alternatively, manually configure: Use RSI(6) with Zero-Lag smoothing for fast signal detection. Enable volume confirmation with threshold 1.2-1.5 for reliable entries. Combine with RSI(50) filter to ensure momentum alignment. Strong top/bottom signals work well for day trading reversals.
Trend Following: Enable trend filter (EMA) and EMA slope filter for strong trend confirmation. Use RSI(14) or RSI(24) with ADX filter to avoid choppy markets. Hidden divergence signals are useful for trend continuation entries.
Reversal Trading: Focus on divergence detection (regular and strong) combined with strong top/bottom signals. Enable volume climax detection to identify capitulation moments. Use RSI(6) for early reversal signals, confirmed by RSI(14) and RSI(24).
Forecasting and Planning: Enable regression forecasting with polynomial or exponential smoothing methods. Use forecast horizon of 10-20 bars for swing trading, 5-10 bars for day trading. Confidence bands help assess forecast reliability.
Multi-Timeframe Analysis: Enable higher timeframe RSI to see context from larger timeframes. For example, use daily RSI on hourly charts to understand the larger trend context. This helps avoid counter-trend trades.
Scalping: Select the "Scalping" preset for instant optimal configuration. This preset uses RSI periods (4, 7, 9) with minimal smoothing, disables noise reduction, and disables momentum confirmation for faster signals. Alternatively, manually configure: Use RSI(6) with minimal smoothing (or Zero-Lag) for ultra-fast signals. Disable most filters except volume confirmation. Use RSI period crossovers (RSI(6) × RSI(14)) for early momentum shifts. Set volume threshold to 1.0-1.2 for less restrictive filtering.
Position Trading: Select the "Position Trading" preset for instant optimal configuration. This preset uses extended RSI periods (24, 21, 28) with heavier smoothing, optimized for longer-term trades. Alternatively, manually configure: Use RSI(24) with all filters enabled (Trend, ADX, RSI(50), Volume Dry-Up avoidance). Multi-RSI Synergy in "ALL" mode provides highest-quality signals.
Practical Tips and Best Practices
Getting Started: The fastest way to get started is to select a configuration preset that matches your trading style. Simply choose "Scalping", "Day Trading", "Swing Trading", or "Position Trading" from the "Configuration Preset" dropdown to instantly configure all settings optimally. For advanced users, use "Custom" mode for full manual control. The default configuration (Custom mode) is balanced and works well across different markets. After observing behavior, customize settings to match your trading style.
Reducing Repainting: All signals are based on confirmed bars, minimizing repainting. The script uses confirmed bar data for all calculations to ensure backtesting accuracy.
Signal Quality: Multi-RSI Synergy signals in "ALL" mode provide the highest-quality signals because they require alignment across all three RSI periods. These signals have lower frequency but higher reliability. For more frequent signals, use "2-of-3" mode. The noise reduction system further improves signal quality by requiring multiple confirmations (signal strength, extreme zone, consecutive bars, optional zone persistence and RSI slope). Adjust noise reduction settings to balance signal frequency vs. accuracy.
Filter Combinations: Start with volume confirmation, then add trend filter for trend alignment, then ADX filter for trend strength. Combining all three filters significantly reduces false signals but also reduces signal frequency. Find your balance based on your risk tolerance.
Volume Filtering: Set volume threshold to 0.1 or lower to effectively disable volume filtering if you trade instruments with unreliable volume data or want to test without volume confirmation. Standard confirmation uses 1.2-1.5 threshold.
RSI Period Selection: RSI(6) is most sensitive and best for scalping or early signal detection. RSI(14) provides balanced signals suitable for day trading. RSI(24) is smoother and better for swing trading and trend confirmation. You can disable any RSI period you don't need to reduce visual clutter.
Smoothing Methods: EMA provides balanced smoothing with moderate lag. RMA (Wilder's smoothing) is traditional and works well for RSI. Zero-Lag reduces lag but may increase noise. WMA gives more weight to recent values. Choose based on your preference for responsiveness vs. smoothness.
Forecasting: Linear regression is simplest and works well for trending markets. Polynomial regression captures curves and works better in ranging markets. Exponential smoothing adapts to trends. Moving average method is most conservative. Use confidence bands to assess forecast reliability.
Divergence: Strong divergence (with engulfing confirmation) is more reliable than regular divergence. Hidden divergence indicates continuation rather than reversal, useful for trend-following strategies. Pivot-based divergence provides more accurate detection by using actual pivot points instead of simple lowest/highest comparisons. Adjust lookback periods based on your timeframe: shorter for day trading, longer for swing trading. Pivot divergence period (default 5) controls the sensitivity of pivot detection.
Dynamic Thresholds: Dynamic OB/OS thresholds automatically adapt to volatility. In volatile markets, thresholds widen; in calm markets, they narrow. Adjust the volatility multiplier and base percentage to fine-tune sensitivity. Higher values create wider thresholds in volatile markets.
Alert Management: Enable alert cooldown (default 10 bars, recommended) to prevent alert spam. Each alert type has its own cooldown, so you can set different cooldowns for different signal types. For example, use shorter cooldown for synergy signals (high quality) and longer cooldown for crossovers (more frequent). The cooldown system works independently for each signal type, preventing spam while allowing different signal types to fire when appropriate.
Technical Specifications
- Pine Script Version: v6
- Indicator Type: Non-overlay (displays in separate panel below price chart)
- Repainting Behavior: Minimal - all signals are based on confirmed bars, ensuring accurate backtesting results
- Performance: Optimized with caching for ATR and volume calculations. Forecast arrays are dynamically managed to prevent memory accumulation.
- Compatibility: Works on all timeframes (1 minute to 1 month) and all instruments (stocks, forex, crypto, futures, etc.)
- Edge Case Handling: All calculations include safety checks for division by zero, NA values, and boundary conditions. Reset conditions and alert cooldowns handle edge cases where conditions never occurred or values are NA.
- Reset Logic: Separate reset conditions for buy signals (based on bottom conditions) and sell signals (based on top conditions) ensure logical correctness.
- Input Parameters: 60+ customizable parameters organized into logical groups for easy configuration. Configuration presets available for instant setup (Scalping, Day Trading, Swing Trading, Position Trading, Custom).
- Noise Reduction: Comprehensive noise reduction system with multiple filters (signal strength, extreme zone, consecutive bars, zone persistence, RSI slope) to reduce false signals.
- Pivot-Based Divergence: Enhanced divergence detection using actual pivot points for improved accuracy.
- Momentum Confirmation: RSI momentum filter ensures signals only fire when RSI is accelerating in the signal direction.
- Multi-Timeframe Confirmation: Optional higher timeframe RSI alignment for trend confirmation.
- Enhanced Pivot Trendlines: Trendline drawing with strength requirements, confirmation, and trend break detection.
Technical Notes
- All RSI values are clamped to 0-100 range to ensure valid oscillator values
- ATR and Volume SMA are cached for performance, updating on confirmed and real-time bars
- Reset conditions handle edge cases: if a condition never occurred, reset returns true (allows first signal)
- Alert cooldown handles na values: if no previous alert, cooldown allows the alert
- Forecast arrays are dynamically sized based on horizon, with unused lines cleaned up
- Fill logic uses a minimum gap (0.1) to ensure reliable polygon rendering in TradingView
- All calculations include safety checks for division by zero and boundary conditions. Regression functions validate that horizon doesn't exceed array size, and all array access operations include bounds checking to prevent out-of-bounds errors
- The script uses separate reset conditions for buy signals (based on bottom conditions) and sell signals (based on top conditions) for logical correctness
- Background coloring uses a fallback system: dynamic color takes priority, then RSI(6) heatmap, then monotone if both are disabled
- Noise reduction filters are applied after accuracy filters, providing multiple layers of signal quality control
- Pivot trendlines use strength requirements to filter weak pivots, reducing noise in trendline drawing. Historical trendlines are stored in arrays and automatically limited to prevent memory accumulation when "Keep Historical Trendlines" is enabled
- Volume climax and dry-up markers are positioned at the top of the pane for better visibility
- All calculations are optimized with conditional execution - features only calculate when enabled (performance optimization)
- Input Validation: Automatic cross-input validation ensures smoothing lengths are always less than RSI period lengths, preventing configuration errors
- Configuration Presets: Four optimized preset configurations (Scalping, Day Trading, Swing Trading, Position Trading) for instant setup, plus Custom mode for full manual control
- Constants Management: Magic numbers extracted to documented constants for improved maintainability and easier tuning (pivot tolerance, divergence thresholds, fill gap, etc.)
- TradingView Function Consistency: All TradingView functions (ta.crossover, ta.crossunder, ta.atr, ta.lowest, ta.highest, ta.lowestbars, ta.highestbars, etc.) and custom functions that depend on historical results (f_consecutiveBarConfirmation, f_rsiSlopeConfirmation, f_rsiZonePersistence, f_applyAllFilters, f_rsiMomentum, f_forecast, f_confirmPivotLow, f_confirmPivotHigh) are called on every bar for consistency, as recommended by TradingView. Results are then used conditionally when needed. This ensures consistent calculations and prevents calculation inconsistencies.
Bifurcation Early WarningBifurcation Early Warning (BEW) — Chaos Theory Regime Detection
OVERVIEW
The Bifurcation Early Warning indicator applies principles from chaos theory and complex systems research to detect when markets are approaching critical transition points — moments where the current regime is likely to break down and shift to a new state.
Unlike momentum or trend indicators that tell you what is happening, BEW tells you when something is about to change. It provides early warning of regime shifts before they occur, giving traders time to prepare for increased volatility or trend reversals.
THE SCIENCE BEHIND IT
In complex systems (weather, ecosystems, financial markets), major transitions don't happen randomly. Research has identified three universal warning signals that precede critical transitions:
1. Critical Slowing Down
As a system approaches a tipping point, it becomes "sluggish" — small perturbations take longer to decay. In markets, this manifests as rising autocorrelation in returns.
2. Variance Amplification
Short-term volatility begins expanding relative to longer-term baselines as the system destabilizes.
3. Flickering
The system oscillates between two potential states before committing to one — visible as increased crossing of mean levels.
BEW combines all three signals into a single composite score.
COMPONENTS
AR(1) Coefficient — Critical Slowing Down (Blue)
Measures lag-1 autocorrelation of returns over a rolling window.
• Rising toward 1.0: Market becoming "sticky," slow to mean-revert — transition approaching
• Low values (<0.3): Normal mean-reverting behavior, stable regime
Variance Ratio (Purple)
Compares short-term variance to long-term variance.
• Above 1.5: Short-term volatility expanding — energy building before a move
• Near 1.0: Volatility stable, no unusual pressure
Flicker Count (Yellow/Teal)
Counts state changes (crossings of the dynamic mean) within the lookback period.
• High count: Market oscillating between states — indecision before commitment
• Low count: Price firmly in one regime
INTERPRETING THE BEW SCORE
0–50 (STABLE): Normal market conditions. Existing strategies should perform as expected.
50–70 (WARNING): Elevated instability detected. Consider reducing exposure or tightening risk parameters.
70–85 (DANGER): High probability of regime change. Avoid initiating new positions; widen stops on existing ones.
85+ (CRITICAL): Bifurcation likely imminent or in progress. Expect large, potentially unpredictable moves.
HOW TO USE
As a Regime Filter
• BEW < 50: Normal trading conditions — apply your standard strategies
• BEW > 60: Elevated caution — reduce position sizes, avoid mean-reversion plays
• BEW > 80: High alert — consider staying flat or hedging existing positions
As a Preparation Signal
BEW tells you when to pay attention, not which direction. When readings elevate:
• Watch for confirmation from volume, order flow, or other directional indicators
• Prepare for breakout scenarios in either direction
• Adjust take-profit and stop-loss distances for larger moves
For Volatility Adjustment
High BEW periods correlate with larger candles. Use this to:
• Widen stops during elevated readings
• Adjust position sizing inversely to BEW score
• Set more ambitious profit targets when entering during high-BEW breakouts
Divergence Analysis
• Price making new highs/lows while BEW stays low: Trend likely to continue smoothly
• Price consolidating while BEW rises: Breakout incoming — direction uncertain but move will be significant
SETTINGS GUIDE
Core Settings
• Lookback Period: General reference period (default: 50)
• Source: Price source for calculations (default: close)
Critical Slowing Down (AR1)
• AR(1) Calculation Period: Bars used for autocorrelation (default: 100). Higher = smoother, slower.
• AR(1) Warning Threshold: Level at which AR(1) is considered elevated (default: 0.85)
Variance Growth
• Variance Short Period: Fast variance window (default: 20)
• Variance Long Period: Slow variance window (default: 100)
• Variance Ratio Threshold: Level for maximum score contribution (default: 1.5)
Regime Flickering
• Flicker Detection Period: Window for counting state changes (default: 20)
• Flicker Bandwidth: ATR multiplier for state detection — lower = more sensitive (default: 0.5)
• Flicker Count Threshold: Number of crossings for maximum score (default: 4)
TIMEFRAME RECOMMENDATIONS
• 5m–15m: Use shorter periods (AR: 30–50, Var: 10/50). Expect more noise.
• 1H: Balanced performance with default or slightly extended settings (AR: 100, Var: 20/100).
• 4H–Daily: Extend periods further (AR: 100–150, Var: 30/150). Cleaner signals, less frequent.
ALERTS
Three alert conditions are included:
• BEW Warning: Score crosses above 50
• BEW Danger: Score crosses above 70
• BEW Critical: Score crosses above 85
LIMITATIONS
• No directional bias: BEW detects instability, not direction. Combine with trend or momentum indicators.
• Not a timing tool: Elevated readings may persist for several bars before the actual move.
• Parameter sensitive: Optimal settings vary by asset and timeframe. Backtest before live use.
• Leading indicator trade-off: Early warning means some false positives are inevitable.
CREDITS
Inspired by research on early warning signals in complex systems:
• Dakos et al. (2012) — "Methods for detecting early warnings of critical transitions"
DISCLAIMER
This indicator is for educational and informational purposes only. It does not constitute financial advice. Past performance is not indicative of future results. Always conduct your own analysis and risk management. Use at your own risk.
Advanced ICC Multi-Timeframe 1.0Advanced ICC Multi-Timeframe Trading System
A comprehensive implementation and interpretation of the Indication, Correction, Continuation (ICC) trading methodology made popular by Trades by Sci, enhanced with advanced multi-timeframe analysis and automation features.
⚠️ CRITICAL TRADING WARNINGS:
DO NOT blindly follow BUY/SELL signals from this indicator
This indicator shows potential entry points but YOU must validate each trade
PAPER TRADE EXTENSIVELY before risking real capital
BACKTEST THOROUGHLY on your chosen instruments and timeframes
The ICC methodology requires understanding and discretion - automated signals are guidance only
This tool aids analysis but does not replace proper trade planning, risk management, or trader judgment
⚠️ Important Disclaimers:
This indicator is not endorsed by or affiliated with Trades by Sci
This is an early implementation and interpretation of the ICC methodology
May not work exactly as Trades by Sci executes his trades and entries
Requires further debugging, backtesting, and real-world validation
Completely free to use - no purchase required
I'm just one person obsessed with this method and wanted some better visualization of the chart/entries
About ICC:
The ICC method identifies complete market cycles through three phases: Indication (breakout), Correction (pullback), and Continuation (entry). This indicator automates the identification of these phases and adds powerful features for modern traders.
Key Features:
Multi-Timeframe Capabilities:
Automatic timeframe detection with optimized settings for 5m, 15m, 30m, 1H, 4H, and Daily charts
Higher timeframe overlay to view HTF ICC levels on lower timeframe charts for precise entry timing
Smart defaults that adjust swing length and consolidation detection based on your timeframe
Advanced Phase Tracking:
Complete ICC cycle tracking: Indication, Correction, Consolidation, Continuation, and No Setup phases
Live structure detection shows potential peaks/troughs before full confirmation
Intelligent invalidation logic detects failed setups when market structure reverses
Dynamic phase backgrounds for instant visual confirmation
Three Types of Entry Signals:
Traditional Entries - Price crosses back through the original indication level (strongest signals)
"BUY" (green) / "SELL" (red)
Breakout Entries - Price breaks out of consolidation range in the same direction
"BUY" (green) / "SELL" (red)
Reversal Entries (Optional, can be toggled off) - Price breaks consolidation in opposite direction, indicating failed setup
"⚠ BUY" (yellow) / "⚠ SELL" (orange)
More aggressive, counter-trend signals
Can be disabled for more conservative trading
Professional Features:
Volatility-based support/resistance zones (ATR-adjusted) that adapt to market conditions
Historical zone tracking (0-3 configurable) with visual hierarchy
Comprehensive real-time info table displaying all key metrics
Full alert system for entries, indications, and consolidation detection
Visual distinction between high-confidence trend entries and cautionary reversal entries
📖 USAGE GUIDE
Entry Signal Types:
The indicator provides three types of entry signals with visual distinction:
Strong Entries (High Confidence):
"BUY" (bright green) / "SELL" (bright red)
Includes traditional entries (crossing back through indication level) and breakout entries (breaking consolidation in trend direction)
These are trend continuation or breakout signals with higher probability
Recommended for all traders
Reversal Entries (Caution - Counter-Trend):
"⚠ BUY" (yellow) / "⚠ SELL" (orange)
Triggered when price breaks out of correction/consolidation in the OPPOSITE direction
Indicates a failed setup and potential trend reversal
More aggressive, counter-trend plays
Can be toggled off in settings for more conservative trading
Recommended only for experienced traders or after thorough backtesting
Swing Length Settings:
The swing length determines how many bars on each side are needed to confirm a swing high/low. This is the most important setting for tuning the indicator to your style.
Auto Mode (Recommended for beginners): Toggle "Use Auto Timeframe Settings" ON
5-minute: 30 bars
15-minute: 20 bars
30-minute: 12 bars
1-hour: 7 bars
4-hour: 5 bars
Daily: 3 bars
Manual Mode: Toggle "Use Auto Timeframe Settings" OFF
Lower values (3-7): More aggressive, detects smaller swings
Pros: More signals, faster entries, catches smaller moves
Cons: More noise, more false signals, requires tighter stops
Best for: Scalping, active day trading, volatile markets
Higher values (12-20): More conservative, only major swings
Pros: More reliable signals, fewer false breakouts, clearer structure
Cons: Fewer signals, delayed entries, might miss smaller opportunities
Best for: Swing trading, position trading, trending markets
Default Manual Setting: 7 bars (balanced for 1H charts)
Minimum: 3 bars
Consolidation Bars Setting:
Determines how many bars without new structure are needed before flagging consolidation.
Lower values (3-10): Faster detection, catches brief pauses, more sensitive
Best for: Lower timeframes, volatile markets, avoiding any chop
Higher values (20-40): More reliable, only flags true extended consolidation
Best for: Higher timeframes, trending markets, patient traders
Current defaults scale with timeframe (more bars needed on shorter timeframes)
Historical S/R Zones:
Shows previous support and resistance levels to provide context.
Default: 2 historical zones (shows current + 2 previous)
Range: 0-3 zones
Visual Hierarchy: Older zones are more transparent with dashed borders
Usage: Higher numbers (2-3) show more historical context but can clutter the chart. Start with 2 and adjust based on your preference.
Live Structure Feature (Yellow Warning ⚠):
Provides early warning of potential structure changes before full confirmation.
What it does: Detects potential swing highs/lows after just 2 bars instead of waiting for full swing_length confirmation
Live Peak: Shows when a high is followed by 2 lower closes (potential top forming)
Live Trough: Shows when a low is followed by 2 higher closes (potential bottom forming)
Important: These are UNCONFIRMED - they may be invalidated if price reverses
Use case: Get early awareness of potential reversals while waiting for confirmation
Displayed in: Info table only (no visual markers on chart to reduce clutter)
Only shows: Peaks higher than last swing high, or troughs lower than last swing low (filters out noise)
Higher Timeframe (HTF) Analysis:
View higher timeframe ICC structure while trading on lower timeframes.
How to enable: Toggle "Show Higher Timeframe ICC" ON
Setup: Set "Higher Timeframe" to your reference timeframe
Example: Trading on 15-minute? Set HTF to 240 (4-hour) or 60 (1-hour)
Example: Trading on 5-minute? Set HTF to 60 (1-hour) or 15 (15-minute)
What it shows:
HTF indication levels displayed as dashed lines
Blue = HTF Bullish Indication
Purple = HTF Bearish Indication
HTF phase and levels shown in info table
Trading workflow:
Check HTF phase for overall market direction
Wait for HTF correction phase
Drop to lower timeframe to find precise entries
Enter when lower TF shows continuation in alignment with HTF
Best practice: HTF should be 3-4x your trading timeframe for best results
Reversal Entries Toggle:
Default: ON (shows all signal types)
Toggle OFF for more conservative trading (only trend continuation signals)
Recommended: Backtest with both settings to see which works better for your style
New traders should consider disabling reversal entries initially
Volatility-Based Zones:
When enabled, support/resistance zones automatically adjust their height based on ATR (Average True Range).
More volatile = wider zones
Less volatile = tighter zones
Toggle OFF for fixed-width zones
Community Feedback Welcome:
This is an evolving project and your input is valuable! Please share:
Bug reports and issues you encounter
Feature requests and suggestions for improvement
Results from your backtesting and live trading experience
Feedback on the reversal entry feature (too aggressive? working well?)
Ideas for better aligning with the ICC methodology
Perfect for traders learning or implementing the ICC methodology with the benefit of modern automation, multi-timeframe analysis, and flexible entry signal options.
ORB_RDORB_RD - Opening Range Box (Ryan DeBraal)
This indicator automatically draws a high/low box for the first portion of
each trading day, automatically stepping the range window from 15, 30, 45,
up to 60 minutes after the session starts. The box updates live as the range
forms, then optionally extends across the rest of the session.
FEATURES
-----------------------------------------------------------------------------
• Opening Range Detection
- Automatically ladders the range window: 0–15, 0–30, 0–45, 0–60 minutes
- Automatic reset at each new trading day
- Live high/low updates while inside the 0–60 minute window
• Auto-Drawing Range Box
- Draws a dynamic rectangle as the range forms
- Top and bottom update with every new high/low
- Extends sideways in real time during formation
- Optional full-day extension after the 60-minute range finalizes
• Customizable Visuals
- Adjustable fill transparency
- Mild green tint by default for clarity
PURPOSE
-----------------------------------------------------------------------------
This tool highlights the evolving opening range, a widely used intraday
reference for breakout traders, mean-reversion setups, and session structure
analysis. Ideal for:
• Identifying early support and resistance
• Framing breakout and pullback decisions
• Tracking intraday trend bias after the morning range
Watchlist Volume Surge AlertOverview
This indicator is designed for traders who monitor large watchlists and need instant notification when a stock is experiencing unusual volume activity relative to its recent history.
Standard volume indicators often include the current day's volume in the average calculation. This causes a problem: if a stock is having a massive breakout, that high volume pulls the average up immediately, making it harder to hit the "relative" threshold.
This script solves that by comparing the current volume against the Simple Moving Average (SMA) of the previous n bars. This ensures a clean baseline and accurate alerts, even during massive volatility.
Key Features
Smart RVOL Calculation: Calculates Relative Volume (RVOL) based on the previous 30 bars (adjustable), ensuring the current breakout doesn't skew the average.
Visual Clarity:
Bars: Normal volume is transparent. Surge volume turns bright Teal (Bullish Close) or Red (Bearish Close).
Background: The indicator panel background highlights when a surge is active, making it impossible to miss when scanning visually.
Data Window: Displays the exact RVOL ratio (e.g., 2.11) in the Data Window for verification.
Watchlist Alert Optimized: Specifically designed to work with TradingView's "Any alert function call" or standard condition alerts across multiple tickers.
How to Set Up Alerts
This script is perfect for setting a single alert on a large watchlist to catch breakouts as they happen.
Add the indicator to your chart.
Go to the Alerts menu and create a new alert.
Condition: Select Watchlist Volume Surge Alert.
Trigger: Select "Once Per Bar".
Note: Using "Once Per Bar" ensures you are notified the moment the volume crosses the threshold during the trading day, rather than waiting for the market to close.
Message: The script includes a dynamic message: "Volume Surge! {{ticker}} volume is {{plot("RVOL Ratio")}}x the average."
Settings
Average Length (Days): The lookback period for the volume average (Default: 30).
Alert Threshold (x Average): The multiple required to trigger an alert (Default: 1.5x).
Note: This works better when you have a watchlist with similar volatility and/or market cap
Multi-Tool VWAP + EMAs (Multi-Timeframe) + Key LevelsDescription
This indicator combines several commonly used technical analysis tools into a single script, especially useful for traders using the free version of TradingView or anyone looking to reduce the number of indicators on their chart.
The goal is to provide clear visual references for trend, structure, and key levels—without generating buy/sell signals or automated trading functions.
Included Features
1. VWAP (session-anchored)
Source: HLC3
Purple line, thickness 2
Useful as a reference for daily institutional average price.
2. EMAs of the current timeframe
EMA 200 (red, thickness 3)
EMA 9 (green, thickness 1)
These EMAs help visualize long-term trend and short-term momentum.
3. Dynamic EMAs (MTF – Multi-Timeframe)
The indicator displays the 200 EMA from higher timeframes as dynamic horizontal levels:
5 minutes
15 minutes
30 minutes
1 hour
4 hours
1 day
Each level includes a descriptive label such as “15 min EMA 200”.
These EMAs serve as reference points for potential support/resistance areas coming from higher timeframes.
4. Automatic Key Levels
The indicator plots several important price levels:
Previous day:
PDH (Previous Day High)
PDL (Previous Day Low)
Previous Day 50% Fibonacci level
Pre-market (04:00–09:30 exchange time):
PMH (Pre-Market High)
PML (Pre-Market Low)
Current session:
Open (session opening price)
Previous Close (prior day’s closing price)
Purpose and Scope
This script is designed to provide basic visual reference points to support discretionary analysis.
It does not generate signals or trading suggestions, and it is not intended to predict future price movements.
How to Use It
Enable or disable each block in the Inputs section according to your analysis style.
Observe how the levels, EMAs, and VWAP interact with market structure.
Use it as a visual complement to your personal technical analysis.
Limitations
This indicator is not a trading system and does not guarantee results.
It does not include alerts, backtesting, or entry/exit logic.
Some values (such as PMH/PML) depend on the symbol’s exchange trading hours.
Credits
Designed as an educational and analytical tool for traders seeking to simplify their charts without losing key information.






















