Clean Volume (SUV)The Problem with Raw Volume
Traditional volume bars tell you how much traded, but not whether that amount is unusual. This creates noise that misleads traders:
Stock A averages 1M shares with wild daily swings (500K-2M is normal). Today's 2M volume looks like a spike—but it's just a routine high day.
Stock B averages 1M shares with rock-steady volume (950K-1.05M typical). Today's 2M volume is genuinely extraordinary—institutions are clearly active.
Both show identical 200% relative volume. But Stock B's reading is far more significant. Raw volume and simple relative volume (RVol) can't distinguish between these situations, leading to:
- False signals on naturally volatile stocks
- Missed signals on stable stocks where smaller deviations matter
- Inconsistent comparisons across different securities
---
A Solution: Standardized Unexpected Volume (SUV)
SUV applies statistical normalization to volume, measuring how many standard deviations today's volume is from the mean. This z-score approach accounts for each stock's individual volume stability, not just its average.
SUV = (Today's Volume - Average Volume) / Standard Deviation of Volume
Using the examples above:
- Stock A (high volatility): SUV = 2.0 — elevated but not unusual for this stock
- Stock B (low volatility): SUV = 10.0 — extremely unusual, demands attention
SUV automatically calibrates to each security's behaviour, making volume readings comparable across any stock, ETF, or timeframe.
---
What SUV Is Good For
✅ Identifying genuine volume anomalies — separates signal from noise
✅ Comparing volume across different securities — apples-to-apples z-scores
✅ Spotting institutional activity — large players create statistically significant footprints
✅ Confirming breakouts — high SUV validates price moves
✅ Detecting exhaustion — extreme SUV after extended moves may signal climax
✅ Finding "dry" setups — negative SUV reveals quiet accumulation periods
---
Where SUV Has Limitations
⚠️ Earnings/news events — SUV will spike dramatically (by design), but the statistical reading may be less meaningful when fundamentals change
⚠️ Low-float stocks — extreme volume volatility can produce erratic SUV readings
⚠️ First 20 bars — needs lookback period to establish baseline; early readings are less reliable
⚠️ Doesn't predict direction — SUV measures volume intensity, not whether price will rise or fall
---
How to Read This Indicator
Bar Height
Displays actual volume (like a traditional volume chart) so you can still see absolute levels.
Bar Color (SUV Intensity)
Color intensity reflects the SUV z-score. Brighter = more unusual.
Up Days (Green Gradient):
| Color | SUV Range | Meaning |
|--------------|-----------|------------------------------------------|
| Bright Green | ≥ 3.0 | EXTREME — Highly unusual buying activity |
| Green | ≥ 2.0 | VERY HIGH — Significant accumulation |
| Light Green | ≥ 1.5 | HIGH — Above-average interest |
| Pale Green | ≥ 1.0 | ELEVATED — Moderately active |
| Muted Green | 0 to 1.0 | NORMAL — Typical volume |
| Dark Grey | < 0 | DRY — Below-average, quiet |
Down Days (Red Gradient):
| Color | SUV Range | Meaning |
|------------|-----------|-----------------------------------------|
| Bright Red | ≥ 3.0 | EXTREME — Panic selling or capitulation |
| Red | ≥ 2.0 | VERY HIGH — Heavy distribution |
| Light Red | ≥ 1.5 | HIGH — Active selling |
| Pale Red | ≥ 1.0 | ELEVATED — Moderate selling |
| Muted Red | 0 to 1.0 | NORMAL — Routine down day |
| Dark Grey | < 0 | DRY — Light profit-taking |
Coiled State (Tan/Beige):
When detected, bars turn muted tan regardless of direction. This indicates:
- Volume compression (SUV below threshold for consecutive days)
- Volatility contraction (ATR below average)
- Price tightness (small recent moves)
Coiled states may precede significant breakouts.
Special Markers
"P" Label (Blue) — Pocket Pivot detected. Morales & Kacher's signal fires when:
- Price closes higher than previous close
- Price closes above the open (green candle)
- Volume exceeds the highest down-day volume of the last 10 bars
Pocket Pivots may indicate institutional buying before a traditional breakout.
"C" Label (Orange) — Coiled state confirmed. The stock is consolidating with compressed volume and tight price action. Watch for expansion.
Dashboard
The configurable dashboard displays real-time metrics. Default items:
- Vol — Current bar volume
- SUV — Z-score value
- Class — Classification (EXTREME/VERY HIGH/HIGH/ELEVATED/NORMAL/DRY/COILED)
- Proj RVol — Projected end-of-day relative volume (intraday only)
Additional optional items: Direction, Coil Status, Relative ATR, Pocket Pivot, Average Volume.
---
Practical Usage Tips
1. SUV ≥ 2 on breakouts — Validates the move has institutional participation
2. Watch for SUV < 0 bases — Quiet accumulation zones where smart money builds positions
3. Coil → Expansion — After consecutive coiled days, the first SUV ≥ 1.5 bar often signals direction
4. Pocket Pivots in bases — Early accumulation signals before price breaks out
5. Extreme SUV (≥3) after extended moves — May indicate climax/exhaustion rather than continuation
---
Settings Overview
| Group | Key Settings |
|-----------------|-----------------------------------------------------|
| SUV Settings | Lookback period (default 20) |
| Coil Detection | Enable/disable, sensitivity thresholds |
| Pocket Pivot | Enable/disable, lookback period |
| Display | Dashboard style (Ribbon/Table), position, text size |
| Dashboard Items | Toggle which metrics appear |
| Colors | Fully customizable gradient colors |
---
Credits
SUV concept adapted from academic literature on standardized unexpected volume in market microstructure research. Pocket Pivot methodology based on Gil Morales and Chris Kacher's work. Coil detection inspired by volatility contraction patterns.
---
This indicator does not provide financial advice. Always combine volume analysis with price action, market context, and proper risk management. No animals were harmed during the coding and testing of this indicator.
אינדיקטורים ואסטרטגיות
EMA Slope Angle# EMA Slope Angle Indicator
A professional, non-repainting overlay indicator that visualizes EMA slope strength as an angle in degrees, providing instant visual feedback through dynamic EMA coloring and comprehensive trend analysis.
## ORIGINALITY
This indicator is original in its approach to slope measurement:
- **Angle-based calculation**: Uses arctangent to calculate slope as an angle in degrees (not percentage), providing a more intuitive measure of trend strength
- **Dynamic visual feedback**: Combines real-time EMA line coloring with regime detection, creating a continuous visual representation of market conditions
- **Comprehensive analysis**: Integrates angle-based trend shift signals with optional statistical analysis in a single, cohesive tool
- **Non-repainting design**: All calculations use confirmed bars only, ensuring reliable, deterministic output
## HOW IT WORKS
The indicator calculates the EMA slope angle using trigonometric functions:
```
Angle = arctan((EMA_current - EMA_past) / lookback_bars) × 180/π
```
This provides an intuitive measure where:
- **Steep angles** = strong trends (visualized with saturated colors)
- **Shallow angles** = weak trends (visualized with lighter colors)
- **Near-zero angles** = flat/consolidation (visualized in gray)
The EMA line color dynamically reflects:
- **Direction**: Green shades for uptrends, red shades for downtrends
- **Strength**: Color intensity based on normalized angle (stronger slopes = more saturated colors)
- **Regime**: Gray for flat conditions when angle is below threshold
## KEY FEATURES
### Dynamic EMA Coloring
- EMA line color changes continuously based on slope strength
- Color intensity reflects trend strength (50-100% opacity range)
- Instant visual feedback without cluttering the chart
### Regime Detection
- Automatically classifies market conditions: **RISING**, **FALLING**, or **FLAT**
- Configurable angle thresholds for regime classification
- Real-time regime updates on confirmed bars only
### Trend-Shift Signals
- Detects transitions from FLAT to RISING/FALLING regimes
- Visual arrows on chart when significant trend shifts occur
- Prevents signal spam by only triggering from FLAT state
- Configurable trigger thresholds for signal sensitivity
### KPI Dashboard
- Real-time angle display (rounded to 1 decimal place)
- Current regime status with color coding
- Last signal tracking (UP/DOWN/NONE)
- Positioned in top-right corner for easy reference
### Advanced Angle Statistics (Optional)
- Detailed breakdown of angle distribution across 9 granular buckets:
- 0-0.2°, 0.2-0.5°, 0.5-1°, 1-1.5°, 1.5-2°, 2-3°, 3-5°, 5-10°, >10°
- Shows count and percentage for each bucket
- Automatically resets on symbol/timeframe changes
- Useful for analyzing historical slope patterns
## SETTINGS
### Main Settings
- **EMA Length**: Period for exponential moving average (default: 50)
- **Slope Lookback Bars**: Number of bars to compare for slope calculation (default: 5)
### Angle Settings
- **Flat Angle Threshold**: Maximum angle for FLAT regime classification (default: 2.0°)
- **Rising Angle Trigger**: Minimum angle to trigger RISING regime and UP signals (default: 1.0°)
- **Falling Angle Trigger**: Maximum angle to trigger FALLING regime and DOWN signals (default: -1.0°)
- **Max Angle for Color Saturation**: Maximum angle for full color intensity (default: 30.0°)
### Display Options
- **Uptrend Color**: Color for rising trends (default: dark green)
- **Downtrend Color**: Color for falling trends (default: dark red)
- **Flat Color**: Color for flat conditions (default: gray)
- **Show Trend-Shift Signals**: Toggle signal arrows on/off (default: true)
- **Show Angle Statistics**: Toggle statistics dashboard on/off (default: false)
## NON-REPAINTING GUARANTEE
- All calculations use confirmed bars only (`barstate.isconfirmed`)
- No future bar references
- No higher timeframe calls using `request.security()`
- Deterministic output - what you see is what you get
- Reliable for backtesting and live trading
## USE CASES
- **Trend Identification**: Instantly identify trend strength and direction at a glance
- **Reversal Detection**: Spot trend reversals early through regime changes
- **Trade Filtering**: Filter trades based on slope strength and regime
- **Consolidation Monitoring**: Identify flat market conditions for range trading
- **Pattern Analysis**: Study historical angle distributions to understand market behavior
- **Momentum Assessment**: Gauge trend momentum through visual color intensity
## LIMITATIONS
- Angle calculation depends on EMA length and lookback period settings
- Regime classification is based on configurable thresholds - adjust to match your trading style
- Signals only trigger when transitioning from FLAT state to prevent spam
- Statistics reset on symbol/timeframe changes (by design)
- Color intensity is normalized to max angle setting - adjust for your market's typical ranges
## TECHNICAL NOTES
- Uses Pine Script v6
- Overlay indicator (plots on price chart)
- No external dependencies
- Compatible with all TradingView chart types
- Works on all timeframes and symbols
## DISCLAIMER
This indicator is designed for visual trend analysis and educational purposes. Always combine with other technical analysis tools, fundamental analysis, and proper risk management strategies. Past performance does not guarantee future results. Trading involves risk of loss.
---
**Perfect for**: Swing traders, day traders, trend followers, and market analysts seeking intuitive trend strength visualization.
Filtered TEMA CrossoverFiltered Dual TEMA Crossover
This indicator is a trend-following tool based on the classic Dual Triple Exponential Moving Average (TEMA) Crossover strategy, enhanced with two robust filters: the Chop Index and the Average Directional Index (ADX).
The TEMA is known for its low lag and high responsiveness, making the crossover an effective signal for trend reversals. However, trading TEMA crossovers during sideways, choppy markets often leads to false signals. This is where the filters come in.
Key Features
▪️Dual TEMA Crossover: Plots two customizable TEMA lines (Fast and Slow) for clear visualization of the primary trend direction.
▪️Intelligent Signal Filtering: Buy and Sell signals are generated only when the market confirms it is in a trending state, thanks to two integrated filters:
➖Chop Index Filter: Blocks signals when the market is detected as sideways or consolidating (Chop Index reading above a user-defined threshold).
➖ADX Filter: Ensures signals are only taken when the trend strength is sufficient (ADX reading above a user-defined minimum threshold).
▪️Customizable Signals: Full control over the signal shapes (Arrows, Triangles, etc.), colors, text, and size.
How to Use It
Use the Filtered Dual TEMA Crossover to enter positions on trend continuation or reversal while dramatically reducing exposure to low-quality, whipsawing signals common in non-trending environments.
Before the filters:
After the filters:
Minimize Noise. Maximize Clarity. Trade the Trend.
Rectangle Breakout Patterns📊 Rectangle Breakout Pattern Detector (Support & Resistance)
This indicator is a dynamic tool designed to automatically identify and visualize Rectangle Continuation Patterns and Trading Ranges based on pure price action. It focuses on finding horizontal areas of long-term support and resistance where price is consolidating before an eventual breakout.
💡 What It Does
The core function of this indicator is to detect and plot the boundaries of significant consolidation areas on your chart. It follows a multi-step confirmation process:
Level Detection: It automatically identifies significant Pivot Highs and Lows.
Pattern Confirmation: It confirms Support and Resistance by counting the number of times price 'touches' a level (controlled by the Min Pivot Touches setting).
Visualization: Once confirmed, it draws a Box around the consolidation area. This box automatically extends to the right as long as the price remains contained, showing the active trading range.
This provides an objective, code-driven approach to a classic chart pattern often relied upon by technical analysts.
Razzere Cloned! EzAlgo V.8.1showBuySell = input(true, "Show Buy & Sell", group="BUY & SELL SIGNALS")
hassasiyet = input.float(3, "Hassasiyet (1-6)", 0.1, 99999, group="BUY & SELL SIGNALS")
percentStop = input.float(1, "Stop Loss % (0 to Disable)", 0, group="BUY & SELL SIGNALS")
offsetSignal = input.float(5, "Signals Offset", 0, group="BUY & SELL SIGNALS")
showRibbon = input(true, "Show Trend Ribbon", group="TREND RIBBON")
smooth1 = input.int(5, "Smoothing 1", 1, group="TREND RIBBON")
smooth2 = input.int(8, "Smoothing 2", 1, group="TREND RIBBON")
showreversal = input(true, "Show Reversals", group="REVERSAL SIGNALS")
showPdHlc = input(false, "Show P.D H/L/C", group="PREVIOUS DAY HIGH LOW CLOSE")
lineColor = input.color(color.yellow, "Line Colors", group="PREVIOUS DAY HIGH LOW CLOSE")
lineWidth = input.int(1, "Width Lines", group="PREVIOUS DAY HIGH LOW CLOSE")
lineStyle = input.string("Solid", "Line Style", )
labelSize = input.string("normal", "Label Text Size", )
labelColor = input.color(color.yellow, "Label Text Colors")
showEmas = input(false, "Show EMAs", group="EMA")
srcEma1 = input(close, "Source EMA 1")
lenEma1 = input.int(7, "Length EMA 1", 1)
srcEma2 = input(close, "Source EMA 2")
lenEma2 = input.int(21, "Length EMA 2", 1)
srcEma3 = input(close, "Source EMA 3")
lenEma3 = input.int(144, "Length EMA 3", 1)
showSwing = input(false, "Show Swing Points", group="SWING POINTS")
prdSwing = input.int(10, "Swing Point Period", 2, group="SWING POINTS")
colorPos = input(color.new(color.green, 50), "Positive Swing Color")
colorNeg = input(color.new(color.red, 50), "Negative Swing Color")
showDashboard = input(true, "Show Dashboard", group="TREND DASHBOARD")
locationDashboard = input.string("Middle Right", "Table Location", , group="TREND DASHBOARD")
tableTextColor = input(color.white, "Table Text Color", group="TREND DASHBOARD")
tableBgColor = input(#2A2A2A, "Table Background Color", group="TREND DASHBOARD")
sizeDashboard = input.string("Normal", "Table Size", , group="TREND DASHBOARD")
showRevBands = input.bool(true, "Show Reversal Bands", group="REVERSAL BANDS")
lenRevBands = input.int(30, "Length", group="REVERSAL BANDS")
// Fonksiyonlar
smoothrng(x, t, m) =>
wper = t * 2 - 1
avrng = ta.ema(math.abs(x - x ), t)
smoothrng = ta.ema(avrng, wper) * m
rngfilt(x, r) =>
rngfilt = x
rngfilt := x > nz(rngfilt ) ? x - r < nz(rngfilt ) ? nz(rngfilt ) : x - r : x + r > nz(rngfilt ) ? nz(rngfilt ) : x + r
percWidth(len, perc) => (ta.highest(len) - ta.lowest(len)) * perc / 100
securityNoRep(sym, res, src) => request.security(sym, res, src, barmerge.gaps_off, barmerge.lookahead_on)
swingPoints(prd) =>
pivHi = ta.pivothigh(prd, prd)
pivLo = ta.pivotlow (prd, prd)
last_pivHi = ta.valuewhen(pivHi, pivHi, 1)
last_pivLo = ta.valuewhen(pivLo, pivLo, 1)
hh = pivHi and pivHi > last_pivHi ? pivHi : na
lh = pivHi and pivHi < last_pivHi ? pivHi : na
hl = pivLo and pivLo > last_pivLo ? pivLo : na
ll = pivLo and pivLo < last_pivLo ? pivLo : na
f_chartTfInMinutes() =>
float _resInMinutes = timeframe.multiplier * (
timeframe.isseconds ? 1 :
timeframe.isminutes ? 1. :
timeframe.isdaily ? 60. * 24 :
timeframe.isweekly ? 60. * 24 * 7 :
timeframe.ismonthly ? 60. * 24 * 30.4375 : na)
f_kc(src, len, hassasiyet) =>
basis = ta.sma(src, len)
span = ta.atr(len)
wavetrend(src, chlLen, avgLen) =>
esa = ta.ema(src, chlLen)
d = ta.ema(math.abs(src - esa), chlLen)
ci = (src - esa) / (0.015 * d)
wt1 = ta.ema(ci, avgLen)
wt2 = ta.sma(wt1, 3)
f_top_fractal(src) => src < src and src < src and src > src and src > src
f_bot_fractal(src) => src > src and src > src and src < src and src < src
f_fractalize (src) => f_top_fractal(src) ? 1 : f_bot_fractal(src) ? -1 : 0
f_findDivs(src, topLimit, botLimit) =>
fractalTop = f_fractalize(src) > 0 and src >= topLimit ? src : na
fractalBot = f_fractalize(src) < 0 and src <= botLimit ? src : na
highPrev = ta.valuewhen(fractalTop, src , 0)
highPrice = ta.valuewhen(fractalTop, high , 0)
lowPrev = ta.valuewhen(fractalBot, src , 0)
lowPrice = ta.valuewhen(fractalBot, low , 0)
bearSignal = fractalTop and high > highPrice and src < highPrev
bullSignal = fractalBot and low < lowPrice and src > lowPrev
// Bileşen...
source = close
smrng1 = smoothrng(source, 27, 1.5)
smrng2 = smoothrng(source, 55, hassasiyet)
smrng = (smrng1 + smrng2) / 2
filt = rngfilt(source, smrng)
up = 0.0, up := filt > filt ? nz(up ) + 1 : filt < filt ? 0 : nz(up )
dn = 0.0, dn := filt < filt ? nz(dn ) + 1 : filt > filt ? 0 : nz(dn )
bullCond = bool(na), bullCond := source > filt and source > source and up > 0 or source > filt and source < source and up > 0
bearCond = bool(na), bearCond := source < filt and source < source and dn > 0 or source < filt and source > source and dn > 0
lastCond = 0, lastCond := bullCond ? 1 : bearCond ? -1 : lastCond
bull = bullCond and lastCond == -1
bear = bearCond and lastCond == 1
countBull = ta.barssince(bull)
countBear = ta.barssince(bear)
trigger = nz(countBull, bar_index) < nz(countBear, bar_index) ? 1 : 0
ribbon1 = ta.sma(close, smooth1)
ribbon2 = ta.sma(close, smooth2)
rsi = ta.rsi(close, 21)
rsiOb = rsi > 70 and rsi > ta.ema(rsi, 10)
rsiOs = rsi < 30 and rsi < ta.ema(rsi, 10)
dHigh = securityNoRep(syminfo.tickerid, "D", high )
dLow = securityNoRep(syminfo.tickerid, "D", low )
dClose = securityNoRep(syminfo.tickerid, "D", close )
ema1 = ta.ema(srcEma1, lenEma1)
ema2 = ta.ema(srcEma2, lenEma2)
ema3 = ta.ema(srcEma3, lenEma3)
= swingPoints(prdSwing)
ema = ta.ema(close, 144)
emaBull = close > ema
equal_tf(res) => str.tonumber(res) == f_chartTfInMinutes() and not timeframe.isseconds
higher_tf(res) => str.tonumber(res) > f_chartTfInMinutes() or timeframe.isseconds
too_small_tf(res) => (timeframe.isweekly and res=="1") or (timeframe.ismonthly and str.tonumber(res) < 10)
securityNoRep1(sym, res, src) =>
bool bull_ = na
bull_ := equal_tf(res) ? src : bull_
bull_ := higher_tf(res) ? request.security(sym, res, src, barmerge.gaps_off, barmerge.lookahead_on) : bull_
bull_array = request.security_lower_tf(syminfo.tickerid, higher_tf(res) ? str.tostring(f_chartTfInMinutes()) + (timeframe.isseconds ? "S" : "") : too_small_tf(res) ? (timeframe.isweekly ? "3" : "10") : res, src)
if array.size(bull_array) > 1 and not equal_tf(res) and not higher_tf(res)
bull_ := array.pop(bull_array)
array.clear(bull_array)
bull_
TF1Bull = securityNoRep1(syminfo.tickerid, "1" , emaBull)
TF3Bull = securityNoRep1(syminfo.tickerid, "3" , emaBull)
TF5Bull = securityNoRep1(syminfo.tickerid, "5" , emaBull)
TF15Bull = securityNoRep1(syminfo.tickerid, "15" , emaBull)
TF30Bull = securityNoRep1(syminfo.tickerid, "30" , emaBull)
TF60Bull = securityNoRep1(syminfo.tickerid, "60" , emaBull)
TF120Bull = securityNoRep1(syminfo.tickerid, "120" , emaBull)
TF240Bull = securityNoRep1(syminfo.tickerid, "240" , emaBull)
TF480Bull = securityNoRep1(syminfo.tickerid, "480" , emaBull)
TFDBull = securityNoRep1(syminfo.tickerid, "1440", emaBull)
= f_kc(close, lenRevBands, 3)
= f_kc(close, lenRevBands, 4)
= f_kc(close, lenRevBands, 5)
= f_kc(close, lenRevBands, 6)
= wavetrend(hlc3, 9, 12)
= f_findDivs(wt2, 15, -40)
= f_findDivs(wt2, 45, -65)
wtDivBull = wtDivBull1 or wtDivBull2
wtDivBear = wtDivBear1 or wtDivBear2
// Renkler
cyan = #00DBFF, cyan30 = color.new(cyan, 70)
pink = #E91E63, pink30 = color.new(pink, 70)
red = #FF5252, red30 = color.new(red , 70)
// Plotlar
off = percWidth(300, offsetSignal)
plotshape(showBuySell and bull ? low - off : na, "Buy Label" , shape.labelup , location.absolute, cyan, 0, "Buy" , color.white, size=size.normal)
plotshape(showBuySell and bear ? high + off : na, "Sell Label", shape.labeldown, location.absolute, pink, 0, "Sell", color.white, size=size.normal)
plotshape(ta.crossover(wt1, wt2) and wt2 <= -53, "Mild Buy" , shape.xcross, location.belowbar, cyan, size=size.tiny)
plotshape(ta.crossunder(wt1, wt2) and wt2 >= 53, "Mild Sell", shape.xcross, location.abovebar, pink, size=size.tiny)
plotshape(wtDivBull, "Divergence Buy ", shape.triangleup , location.belowbar, cyan, size=size.tiny)
plotshape(wtDivBear, "Divergence Sell", shape.triangledown, location.abovebar, pink, size=size.tiny)
barcolor(up > dn ? cyan : pink)
plotshape(showreversal and rsiOs, "Reversal Buy" , shape.diamond, location.belowbar, cyan30, size=size.tiny)
plotshape(showreversal and rsiOb, "Reversal Sell", shape.diamond, location.abovebar, pink30, size=size.tiny)
lStyle = lineStyle == "Solid" ? line.style_solid : lineStyle == "Dotted" ? line.style_dotted : line.style_dashed
lSize = labelSize == "small" ? size.small : labelSize == "normal" ? size.normal : size.large
dHighLine = showPdHlc ? line.new(bar_index, dHigh, bar_index + 1, dHigh , xloc.bar_index, extend.both, lineColor, lStyle, lineWidth) : na, line.delete(dHighLine )
dLowLine = showPdHlc ? line.new(bar_index, dLow , bar_index + 1, dLow , xloc.bar_index, extend.both, lineColor, lStyle, lineWidth) : na, line.delete(dLowLine )
dCloseLine = showPdHlc ? line.new(bar_index, dClose, bar_index + 1, dClose, xloc.bar_index, extend.both, lineColor, lStyle, lineWidth) : na, line.delete(dCloseLine )
dHighLabel = showPdHlc ? label.new(bar_index + 100, dHigh , "P.D.H", xloc.bar_index, yloc.price, #000000, label.style_none, labelColor, lSize) : na, label.delete(dHighLabel )
dLowLabel = showPdHlc ? label.new(bar_index + 100, dLow , "P.D.L", xloc.bar_index, yloc.price, #000000, label.style_none, labelColor, lSize) : na, label.delete(dLowLabel )
dCloseLabel = showPdHlc ? label.new(bar_index + 100, dClose, "P.D.C", xloc.bar_index, yloc.price, #000000, label.style_none, labelColor, lSize) : na, label.delete(dCloseLabel )
plot(showEmas ? ema1 : na, "EMA 1", color.green , 2)
plot(showEmas ? ema2 : na, "EMA 2", color.purple, 2)
plot(showEmas ? ema3 : na, "EMA 3", color.yellow, 2)
plotshape(showSwing ? hh : na, "", shape.triangledown, location.abovebar, color.new(color.green, 50), -prdSwing, "HH", colorPos, false)
plotshape(showSwing ? hl : na, "", shape.triangleup , location.belowbar, color.new(color.green, 50), -prdSwing, "HL", colorPos, false)
plotshape(showSwing ? lh : na, "", shape.triangledown, location.abovebar, color.new(color.red , 50), -prdSwing, "LH", colorNeg, false)
plotshape(showSwing ? ll : na, "", shape.triangleup , location.belowbar, color.new(color.red , 50), -prdSwing, "LL", colorNeg, false)
srcStop = close
atrBand = srcStop * (percentStop / 100)
atrStop = trigger ? srcStop - atrBand : srcStop + atrBand
lastTrade(src) => ta.valuewhen(bull or bear, src, 0)
entry_y = lastTrade(srcStop)
stop_y = lastTrade(atrStop)
tp1_y = (entry_y - lastTrade(atrStop)) * 1 + entry_y
tp2_y = (entry_y - lastTrade(atrStop)) * 2 + entry_y
tp3_y = (entry_y - lastTrade(atrStop)) * 3 + entry_y
labelTpSl(y, txt, color) =>
label labelTpSl = percentStop != 0 ? label.new(bar_index + 1, y, txt, xloc.bar_index, yloc.price, color, label.style_label_left, color.white, size.normal) : na
label.delete(labelTpSl )
labelTpSl(entry_y, "Entry: " + str.tostring(math.round_to_mintick(entry_y)), color.gray)
labelTpSl(stop_y , "Stop Loss: " + str.tostring(math.round_to_mintick(stop_y)), color.red)
labelTpSl(tp1_y, "Take Profit 1: " + str.tostring(math.round_to_mintick(tp1_y)), color.green)
labelTpSl(tp2_y, "Take Profit 2: " + str.tostring(math.round_to_mintick(tp2_y)), color.green)
labelTpSl(tp3_y, "Take Profit 3: " + str.tostring(math.round_to_mintick(tp3_y)), color.green)
lineTpSl(y, color) =>
line lineTpSl = percentStop != 0 ? line.new(bar_index - (trigger ? countBull : countBear) + 4, y, bar_index + 1, y, xloc.bar_index, extend.none, color, line.style_solid) : na
line.delete(lineTpSl )
lineTpSl(entry_y, color.gray)
lineTpSl(stop_y, color.red)
lineTpSl(tp1_y, color.green)
lineTpSl(tp2_y, color.green)
lineTpSl(tp3_y, color.green)
var dashboard_loc = locationDashboard == "Top Right" ? position.top_right : locationDashboard == "Middle Right" ? position.middle_right : locationDashboard == "Bottom Right" ? position.bottom_right : locationDashboard == "Top Center" ? position.top_center : locationDashboard == "Middle Center" ? position.middle_center : locationDashboard == "Bottom Center" ? position.bottom_center : locationDashboard == "Top Left" ? position.top_left : locationDashboard == "Middle Left" ? position.middle_left : position.bottom_left
var dashboard_size = sizeDashboard == "Large" ? size.large : sizeDashboard == "Normal" ? size.normal : sizeDashboard == "Small" ? size.small : size.tiny
var dashboard = showDashboard ? table.new(dashboard_loc, 2, 15, tableBgColor, #000000, 2, tableBgColor, 1) : na
dashboard_cell(column, row, txt, signal=false) => table.cell(dashboard, column, row, txt, 0, 0, signal ? #000000 : tableTextColor, text_size=dashboard_size)
dashboard_cell_bg(column, row, col) => table.cell_set_bgcolor(dashboard, column, row, col)
if barstate.islast and showDashboard
dashboard_cell(0, 0 , "EzAlgo")
dashboard_cell(0, 1 , "Current Position")
dashboard_cell(0, 2 , "Current Trend")
dashboard_cell(0, 3 , "Volume")
dashboard_cell(0, 4 , "Timeframe")
dashboard_cell(0, 5 , "1 min:")
dashboard_cell(0, 6 , "3 min:")
dashboard_cell(0, 7 , "5 min:")
dashboard_cell(0, 8 , "15 min:")
dashboard_cell(0, 9 , "30 min:")
dashboard_cell(0, 10, "1 H:")
dashboard_cell(0, 11, "2 H:")
dashboard_cell(0, 12, "4 H:")
dashboard_cell(0, 13, "8 H:")
dashboard_cell(0, 14, "Daily:")
dashboard_cell(1, 0 , "V.8.1")
dashboard_cell(1, 1 , trigger ? "Buy" : "Sell", true), dashboard_cell_bg(1, 1, trigger ? color.green : color.red)
dashboard_cell(1, 2 , emaBull ? "Bullish" : "Bearish", true), dashboard_cell_bg(1, 2, emaBull ? color.green : color.red)
dashboard_cell(1, 3 , str.tostring(volume))
dashboard_cell(1, 4 , "Trends")
dashboard_cell(1, 5 , TF1Bull ? "Bullish" : "Bearish", true), dashboard_cell_bg(1, 5 , TF1Bull ? color.green : color.red)
dashboard_cell(1, 6 , TF3Bull ? "Bullish" : "Bearish", true), dashboard_cell_bg(1, 6 , TF3Bull ? color.green : color.red)
dashboard_cell(1, 7 , TF5Bull ? "Bullish" : "Bearish", true), dashboard_cell_bg(1, 7 , TF5Bull ? color.green : color.red)
dashboard_cell(1, 8 , TF15Bull ? "Bullish" : "Bearish", true), dashboard_cell_bg(1, 8 , TF15Bull ? color.green : color.red)
dashboard_cell(1, 9 , TF30Bull ? "Bullish" : "Bearish", true), dashboard_cell_bg(1, 9 , TF30Bull ? color.green : color.red)
dashboard_cell(1, 10, TF60Bull ? "Bullish" : "Bearish", true), dashboard_cell_bg(1, 10, TF60Bull ? color.green : color.red)
dashboard_cell(1, 11, TF120Bull ? "Bullish" : "Bearish", true), dashboard_cell_bg(1, 11, TF120Bull ? color.green : color.red)
dashboard_cell(1, 12, TF240Bull ? "Bullish" : "Bearish", true), dashboard_cell_bg(1, 12, TF240Bull ? color.green : color.red)
dashboard_cell(1, 13, TF480Bull ? "Bullish" : "Bearish", true), dashboard_cell_bg(1, 13, TF480Bull ? color.green : color.red)
dashboard_cell(1, 14, TFDBull ? "Bullish" : "Bearish", true), dashboard_cell_bg(1, 14, TFDBull ? color.green : color.red)
plot(showRevBands ? upperKC1 : na, "Rev.Zone Upper 1", red30)
plot(showRevBands ? upperKC2 : na, "Rev.Zone Upper 2", red30)
plot(showRevBands ? upperKC3 : na, "Rev.Zone Upper 3", red30)
plot(showRevBands ? upperKC4 : na, "Rev.Zone Upper 4", red30)
plot(showRevBands ? lowerKC4 : na, "Rev.Zone Lower 4", cyan30)
plot(showRevBands ? lowerKC3 : na, "Rev.Zone Lower 3", cyan30)
plot(showRevBands ? lowerKC2 : na, "Rev.Zone Lower 2", cyan30)
plot(showRevBands ? lowerKC1 : na, "Rev.Zone Lower 1", cyan30)
fill(plot(showRibbon ? ribbon1 : na, "", na, editable=false), plot(showRibbon ? ribbon2 : na, "", na, editable=false), ribbon1 > ribbon2 ? cyan30 : pink30, "Ribbon Fill Color")
// Alarmlar
alert01 = ta.crossover(ribbon1, ribbon2)
alert02 = bull
alert03 = wtDivBull
alert04 = wtDivBear
alert05 = bull or bear
alert06 = ta.crossover(wt1, wt2) and wt2 <= -53
alert07 = ta.crossunder(wt1, wt2) and wt2 >= 53
alert08 = ta.crossunder(ribbon1, ribbon2)
alert09 = rsiOb or rsiOs
alert10 = bear
alert11 = ta.cross(ribbon1, ribbon2)
alerts(sym) =>
if alert02 or alert03 or alert04 or alert06 or alert07 or alert10
alert_text = alert02 ? "Buy Signal EzAlgo" : alert03 ? "Strong Buy Signal EzAlgo" : alert04 ? "Strong Sell Signal EzAlgo" : alert06 ? "Mild Buy Signal EzAlgo" : alert07 ? "Mild Sell Signal EzAlgo" : "Sell Signal EzAlgo"
alert(alert_text, alert.freq_once_per_bar_close)
alerts(syminfo.tickerid)
alertcondition(alert01, "Blue Trend Ribbon Alert", "Blue Trend Ribbon, TimeFrame={{interval}}")
alertcondition(alert02, "Buy Signal", "Buy Signal EzAlgo")
alertcondition(alert03, "Divergence Buy Alert", "Strong Buy Signal EzAlgo, TimeFrame={{interval}}")
alertcondition(alert04, "Divergence Sell Alert", "Strong Sell Signal EzAlgo, TimeFrame={{interval}}")
alertcondition(alert05, "Either Buy or Sell Signal", "EzAlgo Signal")
alertcondition(alert06, "Mild Buy Alert", "Mild Buy Signal EzAlgo, TimeFrame={{interval}}")
alertcondition(alert07, "Mild Sell Alert", "Mild Sell Signal EzAlgo, TimeFrame={{interval}}")
alertcondition(alert08, "Red Trend Ribbon Alert", "Red Trend Ribbon, TimeFrame={{interval}}")
alertcondition(alert09, "Reversal Signal", "Reversal Signal")
alertcondition(alert10, "Sell Signal", "Sell Signal EzAlgo")
alertcondition(alert11, "Trend Ribbon Color Change Alert", "Trend Ribbon Color Change, TimeFrame={{interval}}")
MenthorQ Levels ConversionLevels Conversion helps traders accurately overlay price levels from spot/index ETFs and indices (like SPX, SPY, QQQ, NDX) onto futures charts (like ES, NQ, etc.).
Because futures and spot/index prices don’t trade at the same price, your levels will be misaligned if you plot them directly. Futures typically trade at a spread or ratio versus their related index/ETF. This indicator solves that by calculating the conversion ratio automatically, so your levels stay aligned on the futures chart.
How it works
This script calculates the ratio between Asset A and Asset B and applies it to convert levels from one instrument to the other (for example, SPX → ES, QQQ → NQ).
Ratio options (3 modes)
You can choose one of three ratio sources:
✅ T1 Ratio (Morning Snapshot)
Select a specific time to “lock” the ratio.
Default: 10:00 AM ET (morning session snapshot)
✅ T2 Ratio (Afternoon Snapshot)
Select a second time to “lock” the ratio.
Default: 3:30 PM ET (afternoon snapshot)
✅ Last Price Ratio (Live)
Uses the last traded price of both assets to compute the ratio.
Note: To refresh the “Last Price” baseline, simply remove and re-add the indicator.
Learn more about Levels Conversions: menthorq.com
Common levels conversions
Some popular use-cases include:
- SPX Gamma Levels → ES
- SPY Gamma Levels → ES
- QQQ Gamma Levels → NQ
- NDX Gamma Levels → NQ
- SPX Intraday Gamma Levels → ES
- QQQ Intraday Gamma Levels → NQ
- SPX Swing Trading Levels → ES
- QQQ Swing Trading Levels → NQ
- GLD Levels → GC
- DIA Levels → YM
- USO Levels → CL
- NVDA / MAG7 Levels → QQQ
Victor aimstar past strategy -v1Introducing the ultimate all-in-one DIY strategy builder indicator, With over 30+ famous indicators (some with custom configuration/settings) indicators included, you now have the power to mix and match to create your own custom strategy for shorter time or longer time frames depending on your trading style. Say goodbye to cluttered charts and manual/visual confirmation of multiple indicators and hello to endless possibilities with this indicator.
What it does
==================
This indicator basically help users to do 2 things:
1) Strategy Builder
With more than 30 indicators available, you can select any combination you prefer and the indicator will generate buy and sell signals accordingly. Alternative to the time-consuming process of manually confirming signals from multiple indicators! This indicator streamlines the process by automatically printing buy and sell signals based on your chosen combination of indicators. No more staring at the screen for hours on end, simply set up alerts and let the indicator do the work for you.
RRE ZonesLine Creation: Each FVG box now has a corresponding dashed line drawn through its center:
Uses a dashed style for clear visibility
Matches the FVG color (with 30% transparency)
Extends to the right like the box
Width of 1 pixel
Synchronized Cleanup: When FVG boxes are removed (either by reaching max count or being filled by price), their corresponding center lines are also deleted automatically.
The center lines help you:
Quickly identify the 50% level of each FVG
Use it as a potential target or entry level
Better visualize the gap's midpoint for trading decisions
Impulse Day PlanOverview
This script provides a structured intraday trade plan built on three interacting components:
Impulse-based TP/SL system
Detects trend bias shifts and automatically generates Entry, TP1–TP3 and SL based on impulse range projections. Targets update dynamically and wick-touch confirmation is used for accurate ✓ tracking.
ATR day zones
A blended ATR model (Daily + selected base timeframe) produces support, balance and resistance zones derived from the previous session close. These zones provide directional context and realistic intraday expansion boundaries.
VWAP/EMA trend filter
Trend confirmation is applied using VWAP and EMA 50/200 structure. Signals are only considered aligned when price, VWAP and EMA trend agree.
The script displays a compact dashboard with the active trade plan, including:
Entry
TP1, TP2, TP3
Stop Loss
Checkmarks showing completed targets
This makes the indicator a planning framework, not a simple overlay.
How it differs from my previous publications
I previously released:
Smart Money OB + Limit Orders + Priority
SM OB Intraday Bot Assistant
Impulse TP/SL Zones
Those scripts focus on isolated concepts such as Smart Money structure, intraday automation or basic impulse mapping.
This script introduces a new integrated workflow: impulse TP/SL logic, ATR day zones and VWAP/EMA trend confirmation operating together as a single system. It does not reproduce the functionality of my previous tools and is designed as a standalone intraday planning method.
How to use
Select a base timeframe for the ATR zone model (15m, 1H, 4H).
Follow the dashboard for entry, targets and SL.
Use ATR zones to understand where targets sit within the day’s expected range.
Execute trades only when impulse signal and VWAP/EMA trend align.
ORB Pro - NY Opening Range Breakout [Elev8+]**ORB Pro - NY Opening Range Breakout ** is a comprehensive, professional-grade toolkit designed for intraday traders who rely on the **Opening Range Breakout (ORB)** strategy.
Unlike standard ORB indicators that simply draw lines, this suite offers a complete dashboard-driven system that monitors **four distinct sessions** simultaneously, providing real-time status updates and precision alerts.
### 🎯 What is the Opening Range Breakout (ORB)?
The Opening Range is the price range established during the first period of the trading session (e.g., the first 15 or 30 minutes). This period represents the initial balance between buyers and sellers. A breakout from this range often signals the likely trend direction for the remainder of the session.
### 🚀 Key Features
**1. Multi-ORB Monitoring**
Stop switching settings constantly. This suite monitors four key ranges at once:
* **Pre-Market 15m** (08:00 – 08:15 ET)
* **Pre-Market 30m** (08:00 – 08:30 ET)
* **NY Cash Open 15m** (09:30 – 09:45 ET)
* **NY Cash Open 30m** (09:30 – 10:00 ET)
**2. Smart Status Dashboard**
A compact panel in the bottom-right corner gives you the live state of every session:
* **⏳ Waiting:** The session has not started yet.
* **⚡ Forming:** The range is currently being built.
* **↔️ Range:** The range has formed, but price is still contained within the range.
* **🚀 BULL / 📉 BEAR:** A confirmed breakout has occurred.
* **⛔ OFF:** The session is disabled in settings.
**3. "Dynamic Resolution" Technology**
This is a unique pro feature.
* **Precision:** The script *always* calculates the High/Low levels using 1-minute data, ensuring your support/resistance lines are pixel-perfect regardless of your chart timeframe.
* **Flexibility:** Breakout signals (Alerts/Labels) are triggered based on your *current* chart timeframe. This allows you to trade a 5m or 15m breakout strategy while keeping 1m-level precision on your levels.
**4. Visual Clarity**
* **Breakout Labels:** Automatically plots "BULL" or "BEAR" labels on the exact candle that confirms a breakout.
* **Profit Targets:** Optional toggle to show 1x and 2x profit targets projected from the breakout level.
* **Time-Bound Signals:** Signals are strictly time-bound to the active window to prevent late, low-quality alerts.
### 🛠️ How to Use
1. **Add to Chart:** Works best on intraday timeframes (1m, 5m, 15m).
2. **Configure:** Enable the sessions you trade (e.g., NY 15m) in the settings.
3. **Wait for Forming:** Watch the box form live. The dashboard will show "⚡ Forming".
4. **Trade the Break:** Wait for a candle **Close** outside the range. The dashboard will flip to "BULL" or "BEAR" and a label will appear.
5. **Manage Risk:** Use the opposite side of the range or the midline as your stop loss.
### ⚙️ Settings Overview
* **Global Settings:** Toggle forming boxes, dashboard, and label visibility.
* **Breakout Method:** Choose between **Close** (safer) or **Wick** (aggressive) for signal triggers.
* **Session Groups:** Individually enable/disable the 4 distinct sessions and customize their colors/styles.
---
*Disclaimer: This tool is for educational and analytical purposes only. Past performance of a strategy does not guarantee future results. Always manage your risk.*
MAJOR PA Zones + Structure + Targets (Gray/Purple)This script highlights major price-action structure (HH/HL/LH/LL), marks BOS/CHOCH events, and draws key supply/demand zones to help visualize trend shifts and potential targets.
Hull MA Al-Sat/@version=6
indicator("Hull MA Al-Sat", overlay=true, max_lines_count=500, max_labels_count=500)
// Kullanıcı girişi
length = input.int(21, "HMA Periyodu")
hma_source = input.source(close, "HMA Kaynağı")
plotThickness = input.int(3, "Çizgi Kalınlığı")
// HMA hesaplama
wma1 = ta.wma(hma_source, math.round(length / 2))
wma2 = ta.wma(hma_source, length)
diff = 2 * wma1 - wma2
hma = ta.wma(diff, math.round(math.sqrt(length)))
// Renkli çizgi
hmaColor = hma > hma ? color.green : color.red
plot(hma, color=hmaColor, linewidth=plotThickness)
// Al/Sat okları
plotshape(ta.crossover(hma, hma ), title="Al", location=location.belowbar, color=color.green, style=shape.triangleup, size=size.large)
plotshape(ta.crossunder(hma, hma ), title="Sat", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.large)
Quantum Darvas BoxesQuantum Darvas Boxes - The Modern Evolution
The original Darvas Box methodology, conceived by Nicolas Darvas in the 1950s, revolutionized breakout trading by identifying consolidation phases as "boxes." However, modern markets move with algorithmic speed and fractal volatility that often trigger false breakouts. Quantum Darvas Boxes were designed not as a nostalgic tribute, but as a computational upgrade. By anchoring boxes to volatility-adjusted boundaries rather than raw highs/lows, and introducing adaptive stability mechanisms, this indicator transforms a classic discretionary tool into a systematic, noise-filtered engine.
Description & Improvements
Quantum Darvas Boxes solve the three fatal flaws of the original: false breakouts, arbitrary box sizing, and lack of confirmation. Instead of drawing boxes at exact recent highs/lows, it creates volatility-buffered boundaries using ATR, ensuring breakouts require meaningful momentum. The boxes remain anchored until a confirmed close beyond the buffer occurs, preventing the constant redrawing that plagued traditional Darvas implementations. Built-in volume and RSI filters add discretionary-grade confirmation to pure price action. Visually, the system presents as a stable, semi-transparent blue zone between red (resistance) and lime (support) lines, with clear triangle signals appearing only on validated breakouts.
How It's Based on Darvas
The core philosophy remains true to Darvas' 1950s methodology:
Identify Consolidation: Finds price ranges where the market consolidates
Draw Box: Creates a "box" representing the accumulation zone
Breakout Trading: Enters when price breaks out of the box with momentum
Volatility-Adjusted Boundaries
Original: Boxes at exact highs/lows → prone to false breakouts
QDB: Boxes set at High - (ATR × Multiplier) and Low + (ATR × Multiplier)
→ Breakouts require meaningful momentum, not just price tags
→ Adapts to different volatility regimes
Signal Logic:
Long: Close above box top, previous close was inside box
Short: Close below box bottom, previous close was inside box
Ideal Settings:
For daily charts, use lookback=13 and mult=2.4.
For intraday (1H-4H), reduce to lookback=8 and mult=1.8. Enable volume filter in trending markets and RSI filter in ranging conditions.
Trade Execution: Enter long on the green triangle below the bar following a close above the red top line; enter short on the red triangle above the bar after a close below the lime bottom line. The background glow provides immediate visual confirmation.
Risk Management: Set stops at the opposite box boundary. The volatility multiplier inherently calculates a risk buffer—larger multipliers create wider, higher-conviction boxes; smaller multipliers produce more frequent, sensitive signals. This system excels in trending markets and provides clear exit/reversal points, transforming Darvas's original speculation into a quantified, repeatable edge.
Parabolic SAR (PSAR) - Basit//@version=5
indicator("Parabolic SAR (PSAR) - Basit", overlay=true)
start = input.float(0.02, "Start (Step)", step=0.01)
increment = input.float(0.02, "Increment", step=0.01)
maximum = input.float(0.2, "Maximum", step=0.01)
showDots = input.bool(true, "Dotları Göster")
showLine = input.bool(false, "PSAR Çizgisi Göster")
bgTrend = input.bool(true, "Arka planı trende göre renklendir")
psar = ta.sar(start, increment, maxim
bull = close > psar
bear = close < psar
psarColor = bull ? color.green : color.
plot(showLine ? psar : na, title="PSAR Line", color=psarColor, linewi
plotshape(showDots and bull, title="PSAR Bull Dot", location=location.belowbar, style=shape.circle, size=size.tiny, color=color.green)
plotshape(showDots and bear, title="PSAR Bear Dot", location=location.abovebar, style=shape.circle, size=size.tiny, color=color.red)
bgcolor(bgTrend ? (bull ? color.new(color.green, 90) : color.new(color.red, 90)) : n
buySignal = ta.crossover(close, psar)
sellSignal = ta.crossunder(close, psa
plotshape(buySignal, title="AL Sinyali", location=location.belowbar, style=shape.triangleup, size=size.small, color=color.green)
plotshape(sellSignal, title="SAT Sinyali", location=location.abovebar, style=shape.triangledown, size=size.small, color=color.red)
alertcondition(buySignal, title="AL (PSAR flip)", message="PSAR flip: AL sinyali")
alertcondition(sellSignal, title="SAT (PSAR flip)", message="PSAR flip: SAT sinyali")
CHOP-O-METER - Multi-Factor Choppiness DetectorA composite indicator that quantifies market choppiness using four independent measurements, helping you identify when to trade trends vs. when to sit out or fade moves.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
HOW IT WORKS
The Chop-O-Meter combines four normalized components (each scaled 0-100) into a single weighted score:
1. Price Efficiency (Kaufman-style)
Measures how efficiently price moved from point A to B. If price travels far but nets little distance, efficiency is low = high chop.
2. Direction Change Frequency
Counts how often price direction flips within the lookback period. More flips = more chop.
3. Mean Reversion Intensity
Tracks how often price crosses its moving average. Frequent crosses indicate a ranging, choppy market.
4. ATR Expansion Ratio
Compares the sum of individual bar ranges to the total period range. High ratio means lots of movement within a tight overall range = chop.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
READING THE INDICATOR
Above 65 (Red Zone): High chop — avoid trend-following, consider mean-reversion or staying flat
Below 35 (Green Zone): Trending — momentum strategies more likely to succeed
35-65 (Orange): Transitional/uncertain regime
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
SIGNALS
🔻 Green triangle (top): Chop breaking down — potential trend starting
🔺 Red triangle (bottom): Trend exhausting — chop may be returning
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
SETTINGS
Lookback Period: Number of bars to analyze (default 20)
Component Weights: Adjust influence of each factor
Thresholds: Customize high/low chop boundaries
Show Components: Toggle individual factor plots for debugging
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
USE CASES
Filter out trend trades when chop score is high
Reduce position size in choppy regimes
Switch between mean-reversion and momentum strategies
Identify regime transitions early
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ALERTS INCLUDED
Entering High Chop
Entering Trend
Chop Breaking Down
SMA Cross PreventionTraditional MA crossover indicators are reactive — they tell you a cross happened after the fact.
This indicator is prescriptive — it tells you exactly what price action is required to prevent a cross from happening.
The Core Insight
When a fast MA is above a slow MA but they're converging, traders ask: "Will we get a death cross?"
This indicator answers a more useful question:
"What is the minimum price path required to prevent the cross?"
By treating the MA structure as a constraint and solving for the required input (future prices), we transform a lagging indicator into a forward-looking risk assessment tool.
EMA Market Regime & Real-Time Candle Projection System📌 EMA Market Regime & Real-Time Candle Projection System
EMA Market Regime & Parabolic Projection is a real-time market structure system designed to anticipate candle behavior before it fully forms, by dynamically projecting price levels based on trend strength, acceleration, and market expansion.
Unlike traditional indicators that react after the candle closes, this system continuously adapts to live price data to provide early insight into bullish, bearish, parabolic, and exhaustion phases.
🔍 Core Concept
The system operates on four key dimensions:
Market Structure
Uses a fast and a slow EMA to determine the dominant market regime (bullish or bearish).
Directional Momentum
Measures EMA slope to confirm directional commitment.
Acceleration & Parabolic Detection
Identifies true parabolic movements through acceleration analysis, filtering out weak or range-bound price action.
Expansion Validation
Confirms that movements are supported by genuine market expansion, reducing false signals.
By combining these elements, the indicator projects a dynamic price level in real time, effectively drawing a forward-looking guide that adapts as each candle evolves.
🧠 Real-Time Candle Projection
The projected line represents a dynamic equilibrium level derived from EMA structure and acceleration.
This allows traders to:
Anticipate continuation vs exhaustion
Visualize momentum shifts before candle close
Read potential candle direction and strength in real time
The projection is non-repainting and updates tick-by-tick during the candle’s formation.
🎯 Market Regime Classification
The system automatically classifies the market into distinct states:
Bullish Trend – Positive structure with controlled momentum
Bearish Trend – Negative structure with controlled momentum
Parabolic Expansion – Accelerated trend with strong continuation potential
Parabolic Exhaustion – Loss of acceleration signaling potential reversal or pullback
Neutral / Range – Low momentum and low expansion (no-trade zone)
Each state is visually encoded using subtle, professional coloring, ensuring price candles always remain the primary focus.
🛡️ Professional-Grade Filters
Anti-range and anti-fake breakout filtering
Cooldown logic to prevent repetitive signals
Slope normalization relative to volatility
Designed to remain readable on M1–M5 scalping and higher timeframes
⚙️ Designed For
Scalping & Intraday Trading
Real-time decision-making
Trend continuation & exhaustion timing
Prop-firm and professional trading environments
This system is intended as a market structure and timing tool, not a signal spam indicator.
⚠️ Disclaimer
This indicator does not predict the future and does not provide guaranteed results. It is designed to assist discretionary traders by improving real-time market reading and execution timing.
ICT Macro Tracker - Study Version (Original by toodegrees)This indicator is a modified study version of the ICT Algorithmic Macro Tracker by toodegrees, based on the original open-source script available at The original indicator plots ICT Macro windows on the chart, corresponding to specific time [ periods when the Interbank Price Delivery Algorithm undergoes checks/instructions (aka "macros") for the price engine to reprice to an area of liquidity or inefficiency.
This study version adds functionality to hide bars outside macro periods. When enabled, the indicator draws boxes that cover the full chart height during non-macro periods, obscuring those bars so only macro periods are visible. This helps focus on macro-only price action. The feature is configurable, allowing users to enable or disable it and customize the box color. All original functionality remains intact.
S&R Detector by Rakesh Sharma📊 Support & Resistance Auto-Detector
Automatically identifies key Support and Resistance levels with strength ratings
✨ Key Features:
🎯 Intelligent S/R Detection
Automatically finds Support and Resistance levels based on swing highs/lows
Shows strength rating (Very Strong, Strong, Medium, Weak)
Displays number of touches at each level
📅 Key Time-Based Levels
Previous Day High/Low (PDH/PDL) - Blue lines
Previous Week High/Low (PWH/PWL) - Purple lines
Optional Round Numbers for psychological levels
⚙️ Fully Customizable
Adjust sensitivity (5-20 pivot length)
Filter by minimum touches (1-10)
Control maximum levels displayed (3-20)
Optional S/R zones (shaded areas)
📊 Live Dashboard
Shows nearest Support/Resistance
Distance to key levels
Total S/R levels detected
🔔 Smart Alerts
PDH/PDL breakout signals
Visual markers on chart
Perfect for: Intraday traders, Swing traders, Price action analysis
USOIL BOS Retest Overlay (HTF + Blocks + Profit Zone + Lot Size)This is a test overlay that should show entry positions and lot sizes to take based on R20 000 account. This was made purely for USOIL
Daily Levels [cryptalent]Daily High / Low / Mid / Open Levels is a session-based reference indicator designed to visualize key daily price levels directly on the chart.
This indicator automatically plots the Daily High, Daily Low, Daily Midpoint (High + Low / 2), and Daily Open as horizontal lines for each trading day. These levels help traders quickly identify important structural prices where liquidity, reactions, or acceptance often occur.
Key Features
Automatic Daily Levels
Plots Daily High (H), Low (L), Mid (M), and Open (O) using higher-timeframe daily data.
Levels update in real time as the current day develops.
Multi-Day History
Displays daily levels for a configurable number of past days.
Older levels are automatically removed to keep the chart clean.
Line Extension
Current day levels can be extended forward by a user-defined number of bars.
Useful for projecting intraday reaction zones and liquidity targets.
Visual Customization
Independent line width and color settings for each level.
Mid level is shown as a dashed line for quick visual distinction.
Labels & Price Tags
Optional letter labels (H / L / M / O) displayed near the extended levels.
Optional price labels showing the exact level values on the right side of the chart.
Labels update dynamically and only display for the active trading day.
Performance-Oriented Design
Efficient line and label management using arrays.
Automatically cleans up unused objects to stay within TradingView limits.
Use Cases
Identifying intraday support and resistance
Tracking daily range behavior
Monitoring mean reversion vs. range expansion
Aligning intraday execution with higher-timeframe structure
This indicator is particularly useful for traders who rely on market structure, session behavior, and objective price references rather than subjective trend lines.
7/19 EMA Crossover Alertsaskl hasodidu fuasdo asdfasdfiu sdfiuyiodafugoasdf fa sgyu dsgasdo asfo o asdf






















