OPEN-SOURCE SCRIPT

Ultimate Volume Dashboard & Signals V2

773
📋 Clear Entry Criteria Summary
BUY Entry SELL Entry
✅ RVOL ≥ 1.5x ✅ RVOL ≥ 1.5x
✅ Green Candle ✅ Red Candle
✅ Strong Body (>50%) ✅ Strong Body (>50%)
✅ Price > VWAP ✅ Price < VWAP
✅ Price > EMA 50 ✅ Price < EMA 50
✅ RSI 50-80 ✅ RSI 20-50
⭐ Extreme Vol = Strong Signal ⭐ Extreme Vol = Strong Signal
🆕 Key Improvements
Cooldown Period - Prevents signal spam
EMA Filter - Additional trend confirmation
Candle Body Check - Filters weak/doji candles
Strong vs Regular Signals - Extreme volume = higher conviction
Entry/SL Levels - ATR-based levels displayed
Alert Conditions - Ready for notifications
Would you like me to add backtesting statistics or multi-timeframe confirmation?






//version=5
indicator("Ultimate Volume Dashboard & Signals", overlay=true)

// ==========================================
// 1. SETTINGS & INPUTS
// ==========================================
// General Settings
lookback_len = input.int(20, "Volume Moving Average Length", group="Volume Settings")
rvol_thresh = input.float(1.5, "RVOL Threshold (Breakout Level)", step=0.1, group="Volume Settings")

// Trend Settings
use_vwap = input.bool(true, "Filter Signals using VWAP", group="Trend Filters")
rsi_len = input.int(14, "Momentum Length (RSI)", group="Trend Filters")

// Dashboard Settings
show_table = input.bool(true, "Show Dashboard", group="UI Settings")
table_size = input.string("Small", "Table Size", options=["Tiny", "Small", "Normal", "Large"], group="UI Settings")

// ==========================================
// 2. CALCULATIONS
// ==========================================

// --- Volume Calculations ---
vol_ma = ta.sma(volume, lookback_len) // Average Volume
rvol = volume / vol_ma // Relative Volume (Current vs Average)

// --- Trend & Momentum Calculations ---
rsi_val = ta.rsi(close, rsi_len) // RSI Momentum
vwap_val = ta.vwap(close) // Volume Weighted Average Price

// Detect Volume Spikes (The "Upcoming" Momentum)
is_vol_spike = rvol >= rvol_thresh

// ==========================================
// 3. SIGNAL LOGIC
// ==========================================

// Bullish Signal Logic
// 1. Volume is significantly higher than average (Spike)
// 2. Candle is Green (Close > Open)
// 3. Price is above VWAP (Institutional Control)
// 4. RSI is rising but not completely maxed out (>50)
bull_trend = use_vwap ? (close > vwap_val) : true
buy_signal = is_vol_spike and close > open and bull_trend and rsi_val > 50 and rsi_val < 90

// Bearish Signal Logic
// 1. Volume Spike
// 2. Candle is Red (Close < Open)
// 3. Price is below VWAP
// 4. RSI is falling (<50)
bear_trend = use_vwap ? (close < vwap_val) : true
sell_signal = is_vol_spike and close < open and bear_trend and rsi_val < 50 and rsi_val > 10

// ==========================================
// 4. VISUALS ON CHART
// ==========================================

// Color Bars based on Volume Intensity
bar_color = is_vol_spike ? (close > open ? color.new(color.lime, 0) : color.new(color.red, 0)) : (close > open ? color.new(color.gray, 60) : color.new(color.gray, 60))
barcolor(bar_color)

// Plot Buy/Sell Labels
plotshape(buy_signal, title="BUY Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="VOL BUY", textcolor=color.white, size=size.small)
plotshape(sell_signal, title="SELL Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="VOL SELL", textcolor=color.white, size=size.small)

// Plot VWAP for reference
plot(use_vwap ? vwap_val : na, "VWAP", color=color.yellow, linewidth=1)

// ==========================================
// 5. DASHBOARD PANEL
// ==========================================

if show_table
// Define Table Size
t_size = table_size == "Tiny" ? size.tiny : table_size == "Small" ? size.small : table_size == "Normal" ? size.normal : size.large

text

// Create Table (Top Right)
var tbl = table.new(position.top_right, 2, 5, bgcolor=color.new(color.black, 50), border_color=color.gray, border_width=1, frame_color=color.gray, frame_width=1)

// --- Header ---
table.cell(tbl, 0, 0, "METRIC", text_color=color.white, bgcolor=color.new(color.blue, 20), text_size=t_size)
table.cell(tbl, 1, 0, "STATUS", text_color=color.white, bgcolor=color.new(color.blue, 20), text_size=t_size)

// --- Row 1: RVOL (Volume Strength) ---
rvol_color = rvol > 2.0 ? color.red : rvol > 1.0 ? color.green : color.gray
rvol_txt = rvol > 2.0 ? "EXTREME (" + str.tostring(rvol, "#.##") + "x)" : rvol > 1.0 ? "High (" + str.tostring(rvol, "#.##") + "x)" : "Low (" + str.tostring(rvol, "#.##") + "x)"

table.cell(tbl, 0, 1, "Rel Volume (RVOL)", text_color=color.white, text_size=t_size)
table.cell(tbl, 1, 1, rvol_txt, text_color=color.white, bgcolor=rvol_color, text_size=t_size)

// --- Row 2: Trend (VWAP) ---
trend_txt = close > vwap_val ? "BULLISH" : "BEARISH"
trend_col = close > vwap_val ? color.green : color.red

table.cell(tbl, 0, 2, "Trend (VWAP)", text_color=color.white, text_size=t_size)
table.cell(tbl, 1, 2, trend_txt, text_color=color.white, bgcolor=trend_col, text_size=t_size)

// --- Row 3: Momentum (RSI) ---
mom_txt = rsi_val > 50 ? "Positive" : "Negative"
mom_col = rsi_val > 50 ? color.green : color.red

table.cell(tbl, 0, 3, "Momentum", text_color=color.white, text_size=t_size)
table.cell(tbl, 1, 3, mom_txt, text_color=color.white, bgcolor=mom_col, text_size=t_size)

// --- Row 4: Signal Status ---
sig_txt = buy_signal ? "BUY NOW" : sell_signal ? "SELL NOW" : "WAIT"
sig_col = buy_signal ? color.lime : sell_signal ? color.red : color.gray

table.cell(tbl, 0, 4, "ACTION", text_color=color.white, bgcolor=color.new(color.white, 80), text_size=t_size)
table.cell(tbl, 1, 4, sig_txt, text_color=color.black, bgcolor=sig_col, text_size=t_size) clear entre based on code

Declinazione di responsabilità

Le informazioni e le pubblicazioni non sono intese come, e non costituiscono, consulenza o raccomandazioni finanziarie, di investimento, di trading o di altro tipo fornite o approvate da TradingView. Per ulteriori informazioni, consultare i Termini di utilizzo.