TVI-3 Z-Score: MA + VWAP + BB Composite🔧 Overview:
It combines:
Z-score of price relative to the 200-period simple moving average (MA)
Z-score of price relative to the 200-period VWAP (volume-weighted average price)
Z-score of Bollinger Band width
The result is an average of these three Z-scores, plotted as a composite indicator for identifying overvalued and undervalued conditions.
Candlestick analysis
Normalized Reserve Risk (Proxy Z-Score)normalised version of the reserve risk indicator on btc magazine because the btc magazine one is poo .
Momentum SNR VIP [3 TP + Max 50 Pip SL]//@version=6
indicator("Momentum SNR VIP ", overlay=true)
// === Settings ===
pip = input.float(0.0001, "Pip Size", step=0.0001)
sl_pip = 50 * pip
tp1_pip = 40 * pip
tp2_pip = 70 * pip
tp3_pip = 100 * pip
lookback = input.int(20, "Lookback for S/R", minval=5)
// === SNR ===
pivotHigh = ta.pivothigh(high, lookback, lookback)
pivotLow = ta.pivotlow(low, lookback, lookback)
supportZone = not na(pivotLow)
resistanceZone = not na(pivotHigh)
plotshape(supportZone, title="Support", location=location.belowbar, color=color.blue, style=shape.triangleup, size=size.tiny)
plotshape(resistanceZone, title="Resistance", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.tiny)
// === Price Action ===
bullishEngulfing = close < open and close > open and close > open and open <= close
bearishEngulfing = close > open and close < open and close < open and open >= close
bullishPinBar = close < open and (low - math.min(open, close)) > 1.5 * math.abs(close - open)
bearishPinBar = close > open and (high - math.max(open, close)) > 1.5 * math.abs(close - open)
buySignal = supportZone and (bullishEngulfing or bullishPinBar)
sellSignal = resistanceZone and (bearishEngulfing or bearishPinBar)
// === SL & TP ===
rawBuySL = low - 10 * pip
buySL = math.max(close - sl_pip, rawBuySL)
buyTP1 = close + tp1_pip
buyTP2 = close + tp2_pip
buyTP3 = close + tp3_pip
rawSellSL = high + 10 * pip
sellSL = math.min(close + sl_pip, rawSellSL)
sellTP1 = close - tp1_pip
sellTP2 = close - tp2_pip
sellTP3 = close - tp3_pip
// === Plot Buy/Sell Signal
plotshape(buySignal, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY")
plotshape(sellSignal, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL")
// === Plot SL & TP lines
plot(buySignal ? buySL : na, title="Buy SL", color=color.red, style=plot.style_linebr, linewidth=1)
plot(buySignal ? buyTP1 : na, title="Buy TP1", color=color.green, style=plot.style_linebr, linewidth=1)
plot(buySignal ? buyTP2 : na, title="Buy TP2", color=color.green, style=plot.style_linebr, linewidth=1)
plot(buySignal ? buyTP3 : na, title="Buy TP3", color=color.green, style=plot.style_linebr, linewidth=1)
plot(sellSignal ? sellSL : na, title="Sell SL", color=color.red, style=plot.style_linebr, linewidth=1)
plot(sellSignal ? sellTP1 : na, title="Sell TP1", color=color.green, style=plot.style_linebr, linewidth=1)
plot(sellSignal ? sellTP2 : na, title="Sell TP2", color=color.green, style=plot.style_linebr, linewidth=1)
plot(sellSignal ? sellTP3 : na, title="Sell TP3", color=color.green, style=plot.style_linebr, linewidth=1)
// === Labels
if buySignal
label.new(x=bar_index, y=buySL, text="SL : " + str.tostring(buySL, "#.0000"), style=label.style_label_down, color=color.red, textcolor=color.white)
label.new(x=bar_index, y=buyTP1, text="TP1 : " + str.tostring(buyTP1, "#.0000"), style=label.style_label_up, color=color.green, textcolor=color.white)
label.new(x=bar_index, y=buyTP2, text="TP2 : " + str.tostring(buyTP2, "#.0000"), style=label.style_label_up, color=color.green, textcolor=color.white)
label.new(x=bar_index, y=buyTP3, text="TP3 : " + str.tostring(buyTP3, "#.0000"), style=label.style_label_up, color=color.green, textcolor=color.white)
if sellSignal
label.new(x=bar_index, y=sellSL, text="SL : " + str.tostring(sellSL, "#.0000"), style=label.style_label_up, color=color.red, textcolor=color.white)
label.new(x=bar_index, y=sellTP1, text="TP1 : " + str.tostring(sellTP1, "#.0000"), style=label.style_label_down, color=color.green, textcolor=color.white)
label.new(x=bar_index, y=sellTP2, text="TP2 : " + str.tostring(sellTP2, "#.0000"), style=label.style_label_down, color=color.green, textcolor=color.white)
label.new(x=bar_index, y=sellTP3, text="TP3 : " + str.tostring(sellTP3, "#.0000"), style=label.style_label_down, color=color.green, textcolor=color.white)
// === Alerts
alertcondition(buySignal, title="Buy Alert", message="🟢 BUY at Support Zone + Price Action")
alertcondition(sellSignal, title="Sell Alert", message="🟡 SELL at Resistance Zone + Price Action")
CME Crude Oil 15-Min Multi-Unified Entry Zones (Dot Signals)//@version=6
indicator("CME Crude Oil 15-Min Multi-Unified Entry Zones (Dot Signals)", overlay=true)
// --- Input Parameters ---
emaLength = input.int(11, title="EMA Length", minval=1)
// Ichimoku Cloud Inputs (Adjusted for higher sensitivity)
conversionLineLength = input.int(7, title="Ichimoku Conversion Line Length (Sensitive)", minval=1)
baseLineLength = input.int(20, title="Ichimoku Base Line Length (Sensitive)", minval=1)
laggingSpanLength = input.int(40, title="Ichimoku Lagging Span Length (Sensitive)", minval=1)
displacement = input.int(26, title="Ichimoku Displacement", minval=1)
// MACD Inputs (Adjusted for higher sensitivity)
fastLength = input.int(9, title="MACD Fast Length (Sensitive)", minval=1)
slowLength = input.int(21, title="MACD Slow Length (Sensitive)", minval=1)
signalLength = input.int(6, title="MACD Signal Length (Sensitive)", minval=1)
// RSI Inputs
rsiLength = input.int(8, title="RSI Length", minval=1)
rsiOverbought = input.int(70, title="RSI Overbought Level", minval=50, maxval=90)
rsiOversold = input.int(30, title="RSI Oversold Level", minval=10, maxval=50)
// ADX Inputs
adxLength = input.int(14, title="ADX Length", minval=1)
adxTrendStrengthThreshold = input.int(20, title="ADX Trend Strength Threshold", minval=10, maxval=50)
// Weak Entry Threshold (50 ticks for Crude Oil, where 1 tick = $0.01)
// 50 ticks = $0.50
weakEntryTickThreshold = input.float(0.50, title="Weak Entry Threshold (in $)", minval=0.01)
// --- Indicator Calculations ---
// 1. EMA 11
ema11 = ta.ema(close, emaLength)
// 2. Ichimoku Cloud
donchian(len) => math.avg(ta.lowest(len), ta.highest(len))
tenkanSen = donchian(conversionLineLength)
kijunSen = donchian(baseLineLength)
senkouSpanA = math.avg(tenkanSen, kijunSen)
senkouSpanB = donchian(laggingSpanLength)
// Shifted for plotting (future projection)
senkouSpanA_plot = senkouSpanA
senkouSpanB_plot = senkouSpanB
// Chikou Span (lagging span, plotted 26 periods back)
chikouSpan = close
// 3. MACD
= ta.macd(close, fastLength, slowLength, signalLength)
// 4. RSI
rsi = ta.rsi(close, rsiLength)
// 5. ADX
= ta.dmi(adxLength, adxLength)
// --- Price Volume Pattern Logic ---
// Simplified volume confirmation:
isVolumeIncreasing = volume > volume
isVolumeDecreasing = volume < volume
isPriceUp = close > close
isPriceDown = close < close
bullishVolumeConfirmation = (isPriceUp and isVolumeIncreasing) or (isPriceDown and isVolumeDecreasing)
bearishVolumeConfirmation = (isPriceDown and isVolumeIncreasing) or (isPriceUp and isVolumeDecreasing)
// --- Daily Pivot Point Calculation (Critical Support/Resistance) ---
// Request daily High, Low, Close for pivot calculation
= request.security(syminfo.tickerid, "D", [high , low , close ])
// Classic Pivot Point Formula
dailyPP = (dailyHigh + dailyLow + dailyClose) / 3
dailyR1 = (2 * dailyPP) - dailyLow
dailyS1 = (2 * dailyPP) - dailyHigh
dailyR2 = dailyPP + (dailyHigh - dailyLow)
dailyS2 = dailyPP - (dailyHigh - dailyLow)
// --- Crosses and States for Unified Entry 1 (EMA & MACD) ---
// Moved ta.cross() calls outside of conditional blocks for consistent calculation.
emaGoldenCrossCondition = ta.cross(close, ema11)
emaDeathCrossCondition = ta.cross(ema11, close)
macdGoldenCrossCondition = ta.cross(macdLine, signalLine)
macdDeathCrossCondition = ta.cross(signalLine, macdLine)
emaIsBullish = close > ema11
emaIsBearish = close < ema11
macdIsBullishStrong = macdLine > signalLine and macdLine > 0
macdIsBearishStrong = macdLine < signalLine and macdLine < 0
// --- Unified Entry 1 Logic (EMA & MACD) ---
unifiedLongEntry1 = false
unifiedShortEntry1 = false
if (emaGoldenCrossCondition and macdIsBullishStrong )
unifiedLongEntry1 := true
else if (macdGoldenCrossCondition and emaIsBullish )
unifiedLongEntry1 := true
if (emaDeathCrossCondition and macdIsBearishStrong )
unifiedShortEntry1 := true
else if (macdDeathCrossCondition and emaIsBearish )
unifiedShortEntry1 := true
// --- Unified Entry 2 Logic (Ichimoku & EMA/Volume) ---
unifiedLongEntry2 = false
unifiedShortEntry2 = false
ichimokuCloudBullish = close > senkouSpanA_plot and close > senkouSpanB_plot and
senkouSpanA_plot > senkouSpanB_plot and
tenkanSen > kijunSen and
chikouSpan > close
ichimokuCloudBearish = close < senkouSpanA_plot and close < senkouSpanB_plot and
senkouSpanB_plot > senkouSpanA_plot and
tenkanSen < kijunSen and
chikouSpan < close
// Moved ta.cross() calls outside of conditional blocks for consistent calculation.
ichimokuBullishTriggerCondition = ta.cross(tenkanSen, kijunSen)
ichimokuBearishTriggerCondition = ta.cross(kijunSen, tenkanSen)
priceCrossAboveSenkouA = ta.cross(close, senkouSpanA_plot)
priceCrossBelowSenkouA = ta.cross(senkouSpanA_plot, close)
if (ichimokuBullishTriggerCondition or (priceCrossAboveSenkouA and close > senkouSpanB_plot)) and
emaIsBullish and
bullishVolumeConfirmation
unifiedLongEntry2 := true
if (ichimokuBearishTriggerCondition or (priceCrossBelowSenkouA and close < senkouSpanB_plot)) and
emaIsBearish and
bearishVolumeConfirmation
unifiedShortEntry2 := true
// --- Weak Entry Logic ---
weakLongEntry = false
weakShortEntry = false
// Function to check for weak long entry
// Checks if the distance to the nearest resistance (R1 or R2) is less than the threshold
f_isWeakLongEntry(currentPrice) =>
bool isWeak = false
// Check R1 if it's above current price and within threshold
if dailyR1 > currentPrice and (dailyR1 - currentPrice < weakEntryTickThreshold)
isWeak := true
// Check R2 if it's above current price and within threshold (only if not already weak by R1)
else if dailyR2 > currentPrice and (dailyR2 - currentPrice < weakEntryTickThreshold)
isWeak := true
isWeak
// Function to check for weak short entry
// Checks if the distance to the nearest support (S1 or S2) is less than the threshold
f_isWeakShortEntry(currentPrice) =>
bool isWeak = false
// Check S1 if it's below current price and within threshold
if dailyS1 < currentPrice and (currentPrice - dailyS1 < weakEntryTickThreshold)
isWeak := true
// Check S2 if it's below current price and within threshold (only if not already weak by S1)
else if dailyS2 < currentPrice and (currentPrice - dailyS2 < weakEntryTickThreshold)
isWeak := true
isWeak
// Apply weak entry check to Unified Entry 1
if unifiedLongEntry1 and f_isWeakLongEntry(close)
weakLongEntry := true
if unifiedShortEntry1 and f_isWeakShortEntry(close)
weakShortEntry := true
// Apply weak entry check to Unified Entry 2
if unifiedLongEntry2 and f_isWeakLongEntry(close)
weakLongEntry := true
if unifiedShortEntry2 and f_isWeakShortEntry(close)
weakShortEntry := true
// --- Enhanced Entry Conditions with RSI and ADX ---
// Removed candlestick pattern requirement.
// Only consider an entry if RSI is not overbought/oversold AND ADX indicates trend strength.
// Enhanced Long Entry Condition
enhancedLongEntry = (unifiedLongEntry1 or unifiedLongEntry2) and
(rsi < rsiOverbought) and // RSI not overbought
(adx > adxTrendStrengthThreshold) // ADX shows trend strength
// Enhanced Short Entry Condition
enhancedShortEntry = (unifiedShortEntry1 or unifiedShortEntry2) and
(rsi > rsiOversold) and // RSI not oversold
(adx > adxTrendStrengthThreshold) // ADX shows trend strength
// --- Define colors as variables for clarity and to potentially resolve parsing issues ---
// Changed named color constants to hexadecimal values
var color strongBuyDotColor = #FFD700 // Gold
var color weakBuyDotColor = #008000 // Green
var color strongSellDotColor = #FFFFFF // White
var color weakSellDotColor = #FF0000 // Red
// --- Plotting Entry Dots on Candlesticks ---
// Define conditions for plotting only on the *first* occurrence of a signal
isNewStrongBuy = enhancedLongEntry and not weakLongEntry and not (enhancedLongEntry and not weakLongEntry )
isNewWeakBuy = enhancedLongEntry and weakLongEntry and not (enhancedLongEntry and weakLongEntry )
isNewStrongSell = enhancedShortEntry and not weakShortEntry and not (enhancedShortEntry and not weakShortEntry )
isNewWeakSell = enhancedShortEntry and weakShortEntry and not (enhancedShortEntry and weakShortEntry )
// Helper functions to check candlestick type
isCurrentCandleBullish = close > open
isCurrentCandleBearish = close < open
// Strong Buy: Gold dot (only on bullish candles)
plotshape(isNewStrongBuy and isCurrentCandleBullish ? close : na, title="Strong B", location=location.absolute, color=strongBuyDotColor, style=shape.circle, size=size.tiny)
// Weak Buy: Solid Green dot (no candlestick filter for weak buys)
// Changed text to "" and style to shape.triangleup for symbol only
plotshape(isNewWeakBuy ? close : na, title="Weak B", location=location.absolute, color=weakBuyDotColor, style=shape.triangleup, size=size.tiny)
// Strong Sell: White dot (only on bearish candles)
plotshape(isNewStrongSell and isCurrentCandleBearish ? close : na, title="Strong S", location=location.absolute, color=strongSellDotColor, style=shape.circle, size=size.tiny)
// Weak Sell: Red dot (no candlestick filter for weak sells)
// Changed text to "" and style to shape.triangledown for symbol only
plotshape(isNewWeakSell ? close : na, title="Weak S", location=location.absolute, color=weakSellDotColor, style=shape.triangledown, size=size.tiny)
// --- Plotting Indicators (Optional, for visual confirmation) ---
// All indicator plots have been removed as requested.
// plot(ema11, title="EMA 11", color=emaColor)
// plot(tenkanSen, title="Tenkan-Sen", color=tenkanColor)
// plot(kijunSen, title="Kijun-Sen", color=kijunColor)
// plot(senkouSpanA_plot, title="Senkou Span A", color=senkouAColor, offset=displacement)
// plot(senkouSpanB_plot, title="Senkou Span B", color=senkouBColor, offset=displacement)
// fill(plot(senkouSpanA_plot, offset=displacement), plot(senkouSpanB_plot, offset=displacement), color=cloudFillBullishColor, title="Cloud Fill Bullish")
// fill(plot(senkouSpanA_plot, offset=displacement), plot(senkouSpanB_plot, offset=displacement), color=cloudFillBearishColor, title="Cloud Fill Bearish")
// plot(chikouSpan, title="Chikou Span", color=chikouColor, offset=-displacement)
// plot(macdLine, title="MACD Line", color=macdLineColor, display=display.pane)
// plot(signalLine, title="Signal Line", color=signalLineColor, display=display.pane)
// plot(hist, title="Histogram", color=hist >= 0 ? histGreenColor : histRedColor, style=plot.style_columns, display=display.pane)
// plot(rsi, title="RSI", color=rsiPlotColor, display=display.pane)
// hline(rsiOverbought, "RSI Overbought", color=rsiHlineRedColor, linestyle=hline.style_dashed, display=display.all)
// hline(rsiOversold, "RSI Oversold", color=rsiHlineGreenColor, linestyle=hline.style_dashed, display=display.all)
// plot(adx, title="ADX", color=adxPlotColor, display=display.pane)
// hline(adxTrendStrengthThreshold, "ADX Threshold", color=adxHlineColor, linestyle=hline.style_dashed, display=display.all)
// plot(diPlus, title="+DI", color=diPlusColor, display=display.pane)
// plot(diMinus, title="-DI", color=diMinusColor, display=display.pane)
// plot(dailyPP, title="Daily PP", color=dailyPPColor, style=plot.style_line, linewidth=1)
// plot(dailyR1, title="Daily R1", color=dailyRColor, style=plot.style_line, linewidth=1)
// plot(dailyR2, title="Daily R2", color=dailyRColor, style=plot.style_line, linewidth=1)
// plot(dailyS1, title="Daily S1", color=dailySColor, style=plot.style_line, linewidth=1)
// plot(dailyS2, title="Daily S2", color=dailySColor, style=plot.style_line, linewidth=1)
// --- Alerts (Optional) ---
alertcondition(enhancedLongEntry and not weakLongEntry, title="Strong Buy Alert", message="CME Crude Oil: Strong Buy Entry!")
alertcondition(enhancedLongEntry and weakLongEntry, title="Weak Buy Alert", message="CME Crude Oil: Weak Buy Entry Detected!")
alertcondition(enhancedShortEntry and not weakShortEntry, title="Strong Sell Alert", message="CME Crude Oil: Strong Sell Entry!")
alertcondition(enhancedShortEntry and weakShortEntry, title="Weak Sell Alert", message="CME Crude Oil: Weak Sell Entry Detected!")
Painel de Velas 1H e 2H + Grade DiáriaIndicator Description "1H and 2H Candlestick Panel + Daily Grid"
Overview
This advanced indicator for TradingView combines a candlestick information panel on multiple timeframes with a daily grid of supports and resistances, providing a complete market overview for intraday and swing trading.
Main Features
1. Automatic Daily Grid
Previous Close Line: Highlighted red line marking the previous day's close.
Support/Resistance Grid:
4 lines above (blue) and 4 lines below (gold) the previous close, spaced according to a configurable distance.
Automatic update at the beginning of each new day.
Customizable distance between lines in the inputs.
2. Multi-Timeframe Candlestick Panel
Information table in the upper right corner with data from:
Included timeframes: Current, 30M, 1H, 2H, 3H, 4H, 6H, 12H and Daily (1D).
Displayed information:
Open and Close
Price difference (value and color according to direction)
Candle type (Positive/Negative)
Time remaining until candlestick close (HH:MM:SS format)
3. Confluence Signals
Buy Alert: When all candlesticks (from current to daily) are positive.
Sell Alert: When all candlesticks (from current to daily) are negative.
Visual signals: Buy/sell arrows on the chart and configurable alerts.
Customizable Settings
Grid Distance (Dots): Adjust the distance between daily support/resistance lines.
How to Use
Daily Grid:
Use the blue lines (above) as potential resistance and the gold ones (below) as support.
The red line (previous close) is a key level for analysis.
Candlestick Panel:
Monitor the direction of candlesticks on different timeframes to identify trends.
Use the remaining time to plan entries before the close of important candlesticks.
Confluence Signals:
Trade in the direction of confluence when all timeframes are aligned (buy or sell).
Benefits
✔ Efficient multi-timeframe analysis
✔ Visual identification of support/resistance zones
✔ Automatic alerts for strong setups
✔ Easy grid customization
Ideal for traders who trade based on price action and timeframe confluence!
VWAP SlopePositive (green) bars mean today’s (or this interval’s) VWAP is higher than the prior one → volume‐weighted average price is drifting up → bullish flow.
Negative (red) bars mean VWAP is lower than before → volume is skewed to sellers → bearish flow.
Bar height shows how much VWAP has shifted, so taller bars = stronger conviction.
Why it’s useful:
It gives you a real-time read on whether institutions are consistently buying at higher prices or selling at lower prices.
Use it as a bias filter: for shorts you want to see red bars (VWAP down-slope) at your entry, and for longs green bars (VWAP up-slope).
Because it updates tick-by-tick (or per bar), you get a live snapshot of volume-weighted momentum on top of your price‐action and oscillator signals.
Momentum SNR VIP [INDICATOR ONLY]//@version=6
indicator("Momentum SNR VIP ", overlay=true)
// === Inputs ===
lookback = input.int(20, "Lookback for S/R", minval=5)
rr_ratio = input.float(2.0, "Risk-Reward Ratio", minval=0.5, step=0.1)
// === SNR Detection ===
pivotHigh = ta.pivothigh(high, lookback, lookback)
pivotLow = ta.pivotlow(low, lookback, lookback)
supportZone = not na(pivotLow)
resistanceZone = not na(pivotHigh)
plotshape(supportZone, title="Support", location=location.belowbar, color=color.blue, style=shape.triangleup, size=size.tiny)
plotshape(resistanceZone, title="Resistance", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.tiny)
// === Price Action ===
bullishEngulfing = close < open and close > open and close > open and open <= close
bearishEngulfing = close > open and close < open and close < open and open >= close
bullishPinBar = close < open and (low - math.min(open, close)) > 1.5 * math.abs(close - open)
bearishPinBar = close > open and (high - math.max(open, close)) > 1.5 * math.abs(close - open)
buySignal = supportZone and (bullishEngulfing or bullishPinBar)
sellSignal = resistanceZone and (bearishEngulfing or bearishPinBar)
// === SL & TP ===
buySL = low - 10
buyTP = close + (close - buySL) * rr_ratio
sellSL = high + 10
sellTP = close - (sellSL - close) * rr_ratio
// === Plot Signals
plotshape(buySignal, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY")
plotshape(sellSignal, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL")
plot(buySignal ? buySL : na, title="Buy SL", color=color.red, style=plot.style_linebr, linewidth=1)
plot(buySignal ? buyTP : na, title="Buy TP", color=color.green, style=plot.style_linebr, linewidth=1)
plot(sellSignal ? sellSL : na, title="Sell SL", color=color.red, style=plot.style_linebr, linewidth=1)
plot(sellSignal ? sellTP : na, title="Sell TP", color=color.green, style=plot.style_linebr, linewidth=1)
// === Labels (Fixed)
if buySignal
label.new(x=bar_index, y=buySL, text="SL : " + str.tostring(buySL, "#.00"), style=label.style_label_down, color=color.red, textcolor=color.white)
label.new(x=bar_index, y=buyTP, text="TP 1 : " + str.tostring(buyTP, "#.00"), style=label.style_label_up, color=color.green, textcolor=color.white)
if sellSignal
label.new(x=bar_index, y=sellSL, text="SL : " + str.tostring(sellSL, "#.00"), style=label.style_label_up, color=color.red, textcolor=color.white)
label.new(x=bar_index, y=sellTP, text="TP 1 : " + str.tostring(sellTP, "#.00"), style=label.style_label_down, color=color.green, textcolor=color.white)
// === Alerts
alertcondition(buySignal, title="Buy Alert", message="🟢 BUY at Support Zone + Price Action")
alertcondition(sellSignal, title="Sell Alert", message="🟡 SELL at Resistance Zone + Price Action")
RSI For LoopTitle: RSI For Loop
SurgeQuant’s RSI with Threshold Colors and Bar Coloring indicator is a sophisticated tool designed to identify overbought and oversold conditions using a customizable Relative Strength Index (RSI). By averaging RSI over a user-defined lookback period, this indicator provides clear visual signals for bullish and bearish market conditions. The RSI line and price bars are dynamically colored to highlight momentum, making it easier for traders to spot potential trading opportunities.
How It Works
RSI Calculation:
Computes RSI based on a user-selected price source (Close, High, Low, or Open) with a configurable length (default: 5). Optional moving average smoothing refines the RSI signal for smoother analysis.
Lookback Averaging:
Averages the RSI over a user-defined lookback period (default: 5) to generate a stable momentum indicator, reducing noise and enhancing signal reliability.
Threshold-Based Signals:
Long Signal: Triggered when the averaged RSI exceeds the upper threshold (default: 52), indicating overbought conditions.
Short Signal: Triggered when the averaged RSI falls below the lower threshold (default: 48), indicating oversold conditions.
Visual Representation
The indicator provides a clear and customizable visual interface: Green RSI Line and Bars: Indicate overbought conditions when the averaged RSI surpasses the upper threshold, signaling potential long opportunities.
Red RSI Line and Bars: Indicate oversold conditions when the averaged RSI drops below the lower threshold, signaling potential short opportunities.
Neutral Gray RSI Line: Represents RSI values between thresholds for neutral market conditions.
Threshold Lines: Dashed gray lines mark the upper and lower thresholds on the RSI panel for easy reference.
Customization & Parameters
The RSI with Threshold Colors and Bar Coloring indicator offers flexible parameters to suit
various trading styles: Source: Select the input price (default: Close; options: Close, High, Low, Open).
RSI Length: Adjust the RSI calculation period (default: 5).
Smoothing: Enable/disable moving average smoothing (default: enabled) and set the smoothing length (default: 10).
Moving Average Type: Choose from multiple types (SMA, EMA, DEMA, TEMA, WMA, VWMA, SMMA, HMA, LSMA, ALMA; default: ALMA).
ALMA Sigma: Configure the ALMA smoothing parameter (default: 5).
Lookback Period: Set the period for averaging RSI (default: 5).
Thresholds: Customize the upper (default: 52) and lower (default: 48) thresholds for signal generation.
Color Settings: Transparent green and red colors (70% transparency) for bullish and bearish signals, with gray for neutral states.
Trading Applications
This indicator is versatile and can be applied across various markets and strategies: Momentum Trading: Highlights strong overbought or oversold conditions for potential entry or exit points.
Trend Confirmation: Use bar coloring to confirm RSI-based signals with price action on the main chart.
Reversal Detection: Identify potential reversals when RSI crosses the customizable thresholds.
Scalping and Swing Trading: Adjust parameters (e.g., RSI length, lookback) to suit short-term or longer-term strategies.
Final Note
SurgeQuant’s RSI with Threshold Colors and Bar Coloring indicator is a powerful tool for traders seeking to leverage RSI for momentum and reversal opportunities. Its combination of lookback-averaged RSI, dynamic threshold signals, and synchronized RSI and bar coloring offers a robust framework for informed trading decisions. As with all indicators, backtest thoroughly and integrate into a comprehensive trading strategy for optimal results.
💼 Momentum SNR VIP//@version=5
indicator("Momentum", overlay=true)
// === SNR Detection ===
lookback = input.int(20, "Lookback for S/R", minval=5)
pivotHigh = ta.pivothigh(high, lookback, lookback)
pivotLow = ta.pivotlow(low, lookback, lookback)
// Plot SNR Zones
plotshape(pivotHigh, title="Resistance", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.small)
plotshape(pivotLow, title="Support", location=location.belowbar, color=color.blue, style=shape.triangleup, size=size.small)
// === Price Action Detection ===
// Bullish Engulfing
bullishEngulfing = close < open and close > open and close > open and open <= close
// Bearish Engulfing
bearishEngulfing = close > open and close < open and close < open and open >= close
// Pin Bar Bullish
bullishPinBar = close > open and (low - math.min(open, close)) > 1.5 * (math.abs(close - open))
// Pin Bar Bearish
bearishPinBar = close < open and (math.max(open, close) - high) > 1.5 * (math.abs(close - open))
// === Combined Signal at SNR ===
supportZone = not na(pivotLow)
resistanceZone = not na(pivotHigh)
buySignal = (bullishEngulfing or bullishPinBar) and supportZone
sellSignal = (bearishEngulfing or bearishPinBar) and resistanceZone
// Plot Buy/Sell Arrows
plotshape(buySignal, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY")
plotshape(sellSignal, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL")
// === SL & TP Calculation ===
rr_ratio = input.float(2.0, "Risk Reward Ratio", minval=0.5, step=0.5)
buySL = low
buyTP = close + (close - low) * rr_ratio
sellSL = high
sellTP = close - (high - close) * rr_ratio
plot(buySignal ? buySL : na, title="Buy SL", color=color.red, style=plot.style_linebr, linewidth=1)
plot(buySignal ? buyTP : na, title="Buy TP", color=color.green, style=plot.style_linebr, linewidth=1)
plot(sellSignal ? sellSL : na, title="Sell SL", color=color.red, style=plot.style_linebr, linewidth=1)
plot(sellSignal ? sellTP : na, title="Sell TP", color=color.green, style=plot.style_linebr, linewidth=1)
// === Alerts ===
alertcondition(buySignal, title="Buy Alert", message="GOLD: Potential BUY @ SNR Zone + Price Action")
alertcondition(sellSignal, title="Sell Alert", message="GOLD: Potential SELL @ SNR Zone + Price Action")
EMAs 60/125/250 + Swing-Struktur + CCI-AlertsEMAs 60/125/250 + Swing-Points + CCI-Alerts / crossover 100 /-100
9 EMA Angle Color Indicator//@version=5
indicator("9 EMA Angle Color Indicator", overlay=true)
// === INPUTS ===
emaLength = input.int(9, title="EMA Length")
angleThreshold = input.float(20.0, title="Angle Threshold (Degrees)", minval=0.1)
lookbackBars = input.int(5, title="Bars to Calculate Angle", minval=1)
// === EMA CALCULATION ===
emaValue = ta.ema(close, emaLength)
// === ANGLE CALCULATION (in degrees) ===
// Use simple slope * 100 and arc tangent conversion to degrees
slope = (emaValue - emaValue ) / lookbackBars
angle = math.atan(slope) * (180 / math.pi)
// === COLOR LOGIC ===
var color emaColor = color.black
// Initial color: black when angle is within range
emaColor := color.black
// Price and angle-based color change
if angle > angleThreshold and close > emaValue
emaColor := color.green
else if angle < -angleThreshold and close < emaValue
emaColor := color.red
else
emaColor := color.black
// === PLOT EMA ===
plot(emaValue, color=emaColor, linewidth=2, title="9 EMA Colored")
SuperPerformance_V1.2📊 SUPER PERFORMANCE INDICATOR
A comprehensive performance analysis tool that compares your stock against selected indices and tracks sector performance across multiple timeframes.
🎯 MAIN FEATURES
✅ Stock Performance Table
• Compares stock vs index performance across 1D, 5D, 10D, 20D, 50D, 200D periods
• Shows ✓/✗ indicators for outperformance tracking
• Displays percentage gains/losses with color coding (green=positive, red=negative)
• Calculates conviction score based on outperformance across timeframes
• Provides performance difference between stock and index
✅ Sector Performance Table
• Ranks top 5 performing sectors across different timeframes
• Shows real-time sector performance with percentage changes
• Tracks 19 major Indian market sectors
• Customizable time periods (1D, 5D, 10D, 20D, 60D)
✅ Sector Display Box
• Shows current stock's sector classification
• Customizable positioning and styling
• Optional sector abbreviations
🔧 CUSTOMIZATION OPTIONS
📋 Display Settings
• Dark/Light mode toggle
• Show/hide individual tables
• Mini mode for compact view
• Index selection (default: NIFTYMIDSML400)
📊 Table Controls
• Enable/disable specific columns and rows
• Adjustable table size (tiny/small/normal/large)
• 9 positioning options for each table
• Color customization for backgrounds and text
🎨 Advanced Features
• Conviction scoring system (Perfect/Solid/Good/Ok/Weak/Poor)
• Real-time performance tracking
• Multi-timeframe analysis
• Sector rotation insights
📈 CONVICTION LEVELS
• Perfect: Outperforms in all periods
• Solid: Outperforms in 67%+ periods
• Good: Outperforms in 50%+ periods
• Ok: Outperforms in 33%+ periods
• Weak: Outperforms in some periods
• Poor: Underperforms in all periods
⚙️ HOW TO USE
1. Add indicator to your chart
2. Select comparison index in Display Settings
3. Customize visible columns/rows as needed
4. Position tables on screen
5. Analyze green ✓ (outperforming) vs red ✗ (underperforming)
6. Use conviction score for overall performance assessment
🎯 IDEAL FOR
• Relative strength analysis
• Sector rotation strategies
• Performance benchmarking
• Indian equity markets
Note: Designed specifically for NSE/Indian market analysis with pre-configured sector indices.
Momentum Candlestick TerakhirThis indicator helps traders identify where the last momentum candle occurred.
It also provides a Multi-Timeframe Table that displays the most recent momentum candle for each timeframe
Impulse & Terminal Detector [DEV]I am studying Elliott Waves,
and I am verifying the knowledge I have learned by applying it to indicators.
This may be right or wrong, but I think people studying Elliott Waves will find it fun to use this indicator together and see how it interacts with my learning, so I am sharing the indicator.
1. There is a blind spot in that it is pivot-based. This needs more research.
So the shape found varies depending on the length of the pivot.
2. A triangle indicates a normal impulse, and a diamond indicates a terminal.
We often confuse them, and the book tells us to distinguish between them.
TitansAlgo Sureshots v3This TradingView script, "TitansAlgo Sureshots", is a precision-based breakout scalping indicator designed for intraday trading. It captures the high and low of the first candle after the market opens at 9:30 AM and waits for a breakout in either direction to trigger a trade. Once triggered, it calculates Take Profit (TP) and Stop Loss (SL) based on a customizable Risk-Reward Ratio.
It visually plots buy/sell signals using colored dots and labels, and draws TP/SL levels directly on the chart for easy reference. The script also includes optional real-time alerts and can highlight the breakout candle with a custom background color.
Perfect for traders looking for simple, rule-based scalping setups with clearly defined entries and exits.
Daily Macro📈 Indicator Overview: Daily / 4H / 1H Macro Sessions
This TradingView indicator provides a structured and high-precision visualization of key intraday trading sessions based on macro time blocks. It is designed to support institutional-style traders who work with time-based liquidity windows and macro-level decision zones.
🕰️ 1. Daily Macro Session (13:00–21:00 UTC-4)
The Daily Macro session highlights the most relevant institutional trading window, typically associated with high-volume price movements. The indicator plots:
A session box showing the full high-low range of the session
A top line at the session high
A bottom line at the session low
A midline marking the 50% level of the session range
This session is stored historically with adjustable lookback depth, making it easy to reference previous daily ranges for potential areas of interest, liquidity, or reversal.
🕓 2. 4H Macro Windows (5 predefined zones)
The indicator includes five 4H macro sessions, each representing key pre-/post-market institutional trading periods:
Label Time (UTC-4)
Macro Window 1 00:20 – 01:40
Macro Window 2 04:20 – 05:40
Macro Window 3 08:20 – 09:40
Macro Window 4 12:20 – 13:40
Macro Window 5 20:20 – 21:40
Each window:
Is independently toggleable
Draws a live-updating session box during the active window
Captures high/low ranges in real-time
Optionally displays session labels or range metrics
These are particularly useful for identifying accumulation/distribution zones and aligning trades with macro-level time-based liquidity shifts.
🕐 3. 1H Micro Windows (optional extension)
In addition to the macro structure, the indicator can include short 1-hour session boxes (e.g., London Macro 1) for high-resolution tracking of intraday traps, liquidity sweeps, and engineered price moves.
These are:
Strategically aligned with session opens (e.g., Frankfurt, London, NY)
Meant to complement the larger macro structure
Ideal for tracking ICT-style entry models
⚙️ Fully Customizable Features
Session visibility toggles
Box background and border color
Line style and color (top, mid, bottom)
Range labels and text styling
Adjustable lookback history depth
🧠 Use Case
This tool is ideal for traders using concepts such as ICT, inner circle trading models, or macro time-based setups. By structuring the trading day into repeatable session blocks, the indicator helps you anchor bias, manage risk, and identify high-probability setups tied to time-based liquidity.
IPDA Data Ranges📌 IPDA Data Ranges – Institutional Price Delivery Arrays
The IPDA Data Ranges indicator is a precision tool for identifying institutional price delivery arrays over the most recent market sessions. Designed with ICT (Inner Circle Trader) principles in mind, it dynamically draws key price zones based on the high, low, and 50% equilibrium of the last 20, 40, and 60 valid trading days – excluding weekends and holidays.
✅ Key Features
3 Independent Ranges: Configurable boxes for the last 20, 40, and 60 trading days (excludes weekends & market holidays).
Accurate Market-Based Lookback: All calculations are based on actual trading days, ensuring reliability across timeframes.
Visual Precision: Each range is represented as a box with:
Top = Highest High,
Bottom = Lowest Low,
Midline = 50% of the Range
Custom Styling per Range:
Toggle visibility per session
Adjustable box fill color and border color
Custom text inside the box
Fully customizable midline (color & line style)
Individual text color controls for labels within each box
Multi-Timeframe Compatible: Designed to adapt cleanly across intraday and higher timeframes (e.g. 1H, 4H, 1D).
No Future Drawing or Repainting: All ranges are fixed and updated only at the start of each new trading day.
🎯 Use Cases
Identify potential liquidity zones based on institutional memory
Confluence zones for SMT, FVGs, or order blocks
Anchored bias levels for swing/trend confirmation
Integration with your own ICT trading model or algo logic
This indicator is a foundational visual aid for traders who align with smart money concepts and want to maintain a structured, rule-based approach to tracking historical institutional price behavior.
DS FLUXO 1.0# 🔥 DS FLUXO 1.0 - Flow Analysis and Zone Indicator
## 📋 **OVERVIEW**
DS FLUXO is an advanced indicator that identifies trend changes and operational zones based on price flow analysis. It combines structural breakout detection with automatic support/resistance zone creation, offering a comprehensive approach to technical analysis.
## 🎯 **KEY FEATURES**
### **Breakout Detection**
- Identifies trend changes through structural breakouts
- Clear BUY/SELL signals at flow change points
- Breakout line history control (1-10 lines)
- Customizable reference lines (color, thickness, style)
### **Dynamic Zones**
- Automatic creation of support zones (uptrend) and resistance zones (downtrend)
- Zones based on candle wicks and bodies
- Central line (50%) for additional reference
- Visual zone filling with adjustable transparency
### **Complete Alert System**
- 🟢🔴 Breakout alerts for trend changes
- 🎯 First touch alerts on zones
- Individual control for each alert type
- Controlled frequency (no spam)
## ⚙️ **AVAILABLE SETTINGS**
### **🔥 Breakout**
- Maximum number of lines in history
- Visual customization (color, thickness, style)
- Line extension control
### **🏷️ Labels**
- Customizable colors for BUY/SELL
- Adjustable font size
- Configurable text color
### **🎯 Zones**
- Line colors (top, middle, bottom)
- Zone filling and borders
- Temporal displacement of zones
- Line thickness and style
### **🔔 Alerts**
- General alert control
- Specific alerts by type (breakout/zones)
- Clean messages with timeframe
## 🎨 **HOW TO USE**
### **Trend Identification**
1. Wait for BUY/SELL signals for flow changes
2. Observe breakout lines as reference
3. Use zones for entry/exit points
### **Zone Trading**
1. **Uptrend**: Wait for touches on buy zone (green)
2. **Downtrend**: Wait for touches on sell zone (red)
3. **First Touch**: Higher probability of reaction
### **Alert Configuration**
1. Enable desired alerts in settings
2. Configure notifications in TradingView
3. Receive real-time alerts for opportunities
## 📊 **RECOMMENDED TIMEFRAMES**
- **Swing Trade**: 4H, 1D, 1W
- **Day Trade**: 15M, 30M, 1H
- **Scalp**: 1M, 3M, 5M
## 🔧 **TECHNICAL CHARACTERISTICS**
- Compatible with Pine Script v5
- Overlay: Yes (draws over chart)
- Alerts: Yes (complete system)
- Configurable: Highly customizable
- Performance: Optimized for multiple timeframes
## 💡 **SUGGESTED STRATEGIES**
### **Breakout Strategy**
- Enter in direction of confirmed breakout
- Use zones as targets or support/resistance
- Manage risk with structural stop loss
### **Zone Strategy**
- Wait for first touch on zone for entry
- Confirm with other indicators
- Use central line (50%) as partial reference
## ⚠️ **IMPORTANT NOTICE**
This indicator is a technical analysis tool and does not constitute investment advice. Always conduct your own analysis and properly manage risk in your trades.
---
**Developed by**: Diogo Stefani
**Version**: 1.0
**Last Update**: 2025
IFVG Scanner Charts Algo
The IFVG Scanner (Inversion Fair Value Gap Scanner)is a powerful ICT concept -based multi-symbol scanner that identifies bullish and bearish inversion fair value gaps (IFVGs) across up to 40 assets simultaneously.
This scanner helps traders monitor market structure shifts and liquidity rejections by automatically highlighting when price breaks and returns to an FVG zone—a prime entry condition used by smart money traders.
🧠 What Is an IFVG?
An Inversion Fair Value Gap forms when a Fair Value Gap is broken, and then price returns to it. At that moment, the gap becomes a reversal or continuation zone—often acting as dynamic support/resistance.
The IFVG Scanner is designed to:
Spot real-time price entry into IFVG zones
Differentiate bullish vs bearish setups
Alert you when these zones become actionable
🛠️ How to Use It on TradingView
Add the indicator to any chart.
Input up to 40 symbols (tickers you want to scan).
The script will monitor and scan all tickers live.
Watch for real-time alerts and visual table updates:
Bullish IFVGs show up in the green column.
Bearish IFVGs show in the red column.
Click on the corresponding symbols in your watchlist to analyze the full setup.
✅ Want to scan more than 40 symbols?
Simply add the IFVG Scanner again as a second (or third) instance on your chart, and input a new batch of tickers. Each version operates independently and updates in real-time.
📋 Settings Overview
🔁 Show Last IFVG
Controls how many recent IFVG zones are shown on the chart.
Keeps your visuals clean and focused on the latest opportunities.
📏 ATR Multiplier
Filters out tiny gaps.
Only shows IFVGs where the gap is larger than ATR × Multiplier.
Default is 0.25 (adjust higher for stronger volatility filters).
💧 Liquidity Rejection Filters
Ensures the zone was formed with strong wick rejection (fakeouts/liquidity grabs).
Choose Points or Percentage to define the minimum wick size.
Helps confirm that the setup had real institutional interest.
🚫 Max Gap Threshold
Prevents detection of unreliable or massive gaps.
Filters out IFVGs formed with abnormal candles (like during news or illiquid sessions).
Define by Points or Percent between candles in the FVG.
🎨 Visual Settings
Bull Color: Color of bullish IFVG zones (typically green)
Bear Color: Color of bearish IFVG zones (typically red)
Midline Color: Dashed midline inside IFVG zones
Extend IFVG?: Extend boxes to the right and show auto-generated Buy/Sell signal labels
📊 Symbol Inputs (1 to 40)
Enter up to 40 tickers using the inputs (NASDAQ:AAPL, NYSE:TSLA, etc.)
🧾 Table Display
Show Exchange: Toggle full ticker format like "NASDAQ:MSFT"
Table Position: Choose where the IFVG table appears
Table Background Color: Customize visual style
Displays:
✅ IFVG Bullish (Green)
❌ IFVG Bearish (Red)
🧠 Example Use Case
Let’s say you're monitoring 40 stocks across the S&P 500. The IFVG Scanner alerts you that AAPL and NVDA have both returned to bullish IFVG zones after a clean liquidity sweep and ATR-validated imbalance.
You then:
Open the chart
Confirm the smart money reaction
Execute a long trade with high confluence
🔔 Alerts
Alerts automatically trigger when:
Price enters a bullish IFVG zone
Price enters a bearish IFVG zone
Each alert shows the ticker name and direction. You can customize alert messages within TradingView.
⚠️ Disclaimer
Charts Algo tools are developed for educational and informational purposes only. They are not trading advice or investment recommendations. Always conduct your own research and apply proper risk management before making trading decisions. Markets involve risk, and past performance is not indicative of future results.
RSI Levels on Candle Chart (40/50/60)//@version=5
indicator("RSI Levels on Candle Chart (40/50/60)", overlay=true)
// === RSI Calculation ===
rsi = ta.rsi(close, 21)
// === Define RSI Levels to Draw ===
rsi_40 = 40
rsi_50 = 50
rsi_60 = 60
// === Define RSI min/max range for scaling to price
rsi_min = 30
rsi_max = 70
// === Get visible price range for mapping
price_min = ta.lowest(low, 100)
price_max = ta.highest(high, 100)
// === Function to map RSI to price chart Y-axis
rsiToPrice(rsiLevel) =>
price_min + (rsiLevel - rsi_min) / (rsi_max - rsi_min) * (price_max - price_min)
// === Map RSI levels to price scale
price_rsi_40 = rsiToPrice(rsi_40)
price_rsi_50 = rsiToPrice(rsi_50)
price_rsi_60 = rsiToPrice(rsi_60)
// === Plot horizontal lines at RSI levels
plot(price_rsi_40, title="RSI 40 (Red)", color=color.red, linewidth=2)
plot(price_rsi_50, title="RSI 50 (Blue)", color=color.blue, linewidth=2)
plot(price_rsi_60, title="RSI 60 (Green)", color=color.green, linewidth=2)
RelicusRoad - Gold & Bitcoin90% of traders lose money because they do not know what they are doing. They do not have a system in place that works. They do not have a mentor to guide them. They do not have a community to support them. They do not have the right tools to help them make better decisions.
RelicusRoad is the ultimate trading system that will help you make better decisions and become a better trader. It is the result of years of research and development by a team of professional traders who have been in the market for over 10 years.
The STRAT Scanner
The STRAT Scanner is a powerful multi-symbol screener designed to detect actionable price action setups based on The Strat framework, made popular by Rob Smith. This tool is built for serious traders looking to monitor up to 30 symbols at once, across any timeframe, with crystal-clear identification of candlestick combinations and The Strat sequences.
🧠 What This Indicator Does:
This scanner runs real-time screening on your selected watchlist and highlights The Strat patterns directly on the chart and in a clean, organized table view.
It detects:
✅ Doji
✅ Hammer & Inverted Hammer
✅ Failed 2U & 2D Setups
✅ 3-bar Reversals (Full Outside Bars)
✅ 2-1, 1-1, 3-1, 1-3, 3-3
✅ Potential 3s
You can visually see each pattern directly on the chart using triangle markers and track symbol-by-symbol signal summaries in a live table on-screen.
⚙️ How to Use It:
Apply the Indicator:
Search for The STRAT Scanner in your Indicators tab (after being invited), then apply it to any chart.
Customize Your Symbols (Up to 30):
Inside the settings panel under the “Symbols” section, you can select up to 30 stocks to scan. Each symbol has a checkbox and ticker field. Only checked symbols will be active.
View the Table:
On your chart, you'll see a compact table that dynamically updates as new signals form across your selected symbols.
Pattern Detection Labels:
On the main chart (overlay), triangle shapes will highlight pattern signals as they appear:
🔺 Below the bar for bullish signals (green candles)
🔻 Above the bar for bearish signals (red candles)
Change Table Location and Size:
In the settings, you can:
Adjust table position (Top Left, Bottom Right, etc.)
Change text size
Customize table colors
🔁 Want to Scan More Than 30 Symbols?
To scan more than 30 symbols, simply:
Add this indicator again to the same chart
Adjust the second instance with a new set of 30 tickers
You can run multiple copies of this scanner to monitor 60, 90, 120+ tickers simultaneously.
📈 Best Use Cases:
Traders following The Strat method
Options traders using multi-ticker setups
Day and swing traders scanning for pattern-based entries
⚠️ Disclaimer
This indicator is developed by Charts Algo for educational and informational purposes only. It does not constitute financial advice. Always conduct your own analysis and risk management before making any trading decisions. Past performance does not guarantee future results.