๐ Ultimate All-in-One Dashboard: S&R + EMA + RSI + Supertrend + ADX
Welcome to the most advanced All-in-One TradingView indicator designed for serious Intraday and Swing Traders.
This single indicator combines 5 Powerful Tools into one screen: Automatic Support & Resistance, Multi-Timeframe Trend Dashboard, EMA Crossovers, VWAP, and Supertrend.
๐ Key Features
- Smart Background: ๐ข Green (Bullish) / ๐ด Red (Bearish).
- Auto Levels: Plots 30-Min Support & Resistance automatically.
- Scanner: Scans 5 indicators across 10 timeframes.
๐ Premium Content Locked
This code is exclusive for members. Enter password to unlock.
⚠️ Incorrect Password!
✅ Code Unlocked!
Click the button below to copy the code.
//@version=5
indicator("Ultimate Dashboard: Fixed & Working", overlay=true, max_boxes_count=50)
// 1. SETTINGS
grp_snr = "Support & Resistance (30 Min Fixed)"
tf = input.timeframe("30", "S&R Timeframe", group=grp_snr)
maxLevels = input.int(2, "Levels Count", minval=1, maxval=10, group=grp_snr)
boxHeightMulti = input.float(0.1, "Box Thickness", minval=0.01, step=0.05, group=grp_snr)
grp_ema = "EMA 9 & 15 Crossover"
useEma = input.bool(true, "Show Signals?", group=grp_ema)
len1 = input.int(9, "Fast EMA", group=grp_ema)
len2 = input.int(15, "Slow EMA", group=grp_ema)
grp_big = "Trend Filters"
showVwap = input.bool(true, "Show VWAP?", group=grp_big)
showEma200 = input.bool(true, "Show 200 EMA?", group=grp_big)
grp_dash = "Trend Dashboard"
showDash = input.bool(true, "Show Dashboard?", group=grp_dash)
dashSize = input.string("Small", "Size", options=["Tiny", "Small", "Normal"], group=grp_dash)
dashPos = input.string("Bottom Right", "Position", options=["Top Right", "Bottom Right", "Bottom Left"], group=grp_dash)
trendPeriod = input.int(50, "EMA Period", group=grp_dash)
rsiLen = input.int(14, "RSI Length", group=grp_dash)
stFactor = input.float(3.0, "Supertrend Factor", group=grp_dash)
stLen = input.int(10, "Supertrend Length", group=grp_dash)
adxLen = input.int(14, "ADX Smoothing", group=grp_dash)
diLen = input.int(14, "ADX DI Length", group=grp_dash)
// LOGIC 1: S&R
[h30, l30, c30, atr30] = request.security(syminfo.tickerid, tf, [high, low, close, ta.atr(14)])
leftBars = 10
rightBars = 10
ph = ta.pivothigh(h30, leftBars, rightBars)
pl = ta.pivotlow(l30, leftBars, rightBars)
var box[] resBoxes = array.new_box()
var box[] supBoxes = array.new_box()
thickness = atr30 * boxHeightMulti
if not na(ph)
newBox = box.new(time[rightBars * (30/5)], ph, time, ph - thickness, xloc=xloc.bar_time, border_color=color.red, bgcolor=color.new(color.red, 85), border_width=1, extend=extend.right)
array.push(resBoxes, newBox)
if array.size(resBoxes) > maxLevels
oldest = array.shift(resBoxes)
box.delete(oldest)
if not na(pl)
newBox = box.new(time[rightBars * (30/5)], pl + thickness, time, pl, xloc=xloc.bar_time, border_color=color.green, bgcolor=color.new(color.green, 85), border_width=1, extend=extend.right)
array.push(supBoxes, newBox)
if array.size(supBoxes) > maxLevels
oldest = array.shift(supBoxes)
box.delete(oldest)
// LOGIC 2: SIGNALS
emaFast = ta.ema(close, len1)
emaSlow = ta.ema(close, len2)
myVwap = ta.vwap(close)
plot(useEma ? emaFast : na, "9 EMA", color=color.blue)
plot(useEma ? emaSlow : na, "15 EMA", color=color.orange)
plot(showVwap ? myVwap : na, "VWAP", color=color.purple, linewidth=2)
buySignal = ta.crossover(emaFast, emaSlow)
sellSignal = ta.crossunder(emaFast, emaSlow)
plotshape(useEma and buySignal, "Buy", shape.labelup, location.belowbar, color.green, 0, "BUY", color.white, size=size.small)
plotshape(useEma and sellSignal, "Sell", shape.labeldown, location.abovebar, color.red, 0, "SELL", color.white, size=size.small)
ema200 = ta.ema(close, 200)
plot(showEma200 ? ema200 : na, "200 EMA", close > ema200 ? color.green : color.red, 3)
// BG COLOR
var int trendState = 0
if buySignal
trendState := (close > myVwap) ? 1 : 0
if sellSignal
trendState := (close < myVwap) ? -1 : 0
finalBgColor = trendState == 1 ? color.new(color.green, 90) : trendState == -1 ? color.new(color.red, 90) : color.new(color.orange, 90)
bgcolor(finalBgColor, title="Trend BG")
// LOGIC 3: DASHBOARD
calc_all_indicators() =>
c = close
em = ta.ema(close, trendPeriod)
rs = ta.rsi(close, rsiLen)
[stVal, stDir] = ta.supertrend(stFactor, stLen)
[dip, dim, adxVal] = ta.dmi(diLen, adxLen)
[c, em, rs, stDir, dip, dim, adxVal]
getData(t) =>
[c, em, rsiVal, stDir, dip, dim, adxVal] = request.security(syminfo.tickerid, t, calc_all_indicators())
[c > em, rsiVal > 50, stDir < 0, dip > dim, adxVal]
[e_1m, r_1m, s_1m, a_1m, av_1m] = getData("1")
[e_3m, r_3m, s_3m, a_3m, av_3m] = getData("3")
[e_5m, r_5m, s_5m, a_5m, av_5m] = getData("5")
[e_15m, r_15m, s_15m, a_15m, av_15m] = getData("15")
[e_30m, r_30m, s_30m, a_30m, av_30m] = getData("30")
[e_45m, r_45m, s_45m, a_45m, av_45m] = getData("45")
[e_1h, r_1h, s_1h, a_1h, av_1h] = getData("60")
[e_4h, r_4h, s_4h, a_4h, av_4h] = getData("240")
[e_D, r_D, s_D, a_D, av_D] = getData("D")
[e_W, r_W, s_W, a_W, av_W] = getData("W")
pos = dashPos == "Top Right" ? position.top_right : dashPos == "Bottom Right" ? position.bottom_right : position.bottom_left
sz = dashSize == "Tiny" ? size.tiny : dashSize == "Small" ? size.small : size.normal
var table panel = table.new(pos, 5, 11, border_width=1, border_color=color.gray)
fillRow(pnl, r, tf_name, emaB, rsiB, stB, adxB, adxV, txt_sz) =>
c_ema = emaB ? color.new(color.green, 30) : color.new(color.red, 30)
t_ema = emaB ? "Bull" : "Bear"
c_rsi = rsiB ? color.new(color.green, 30) : color.new(color.red, 30)
t_rsi = rsiB ? "Bull" : "Bear"
c_st = stB ? color.new(color.green, 30) : color.new(color.red, 30)
t_st = stB ? "Bull" : "Bear"
c_adx = adxB ? color.new(color.green, 30) : color.new(color.red, 30)
t_adx = (adxB ? "Bull" : "Bear") + " (" + str.tostring(adxV, "#") + ")"
table.cell(pnl, 0, r, tf_name, bgcolor=color.black, text_color=color.white, text_size=txt_sz, text_halign=text.align_left)
table.cell(pnl, 1, r, t_ema, bgcolor=c_ema, text_color=color.white, text_size=txt_sz)
table.cell(pnl, 2, r, t_rsi, bgcolor=c_rsi, text_color=color.white, text_size=txt_sz)
table.cell(pnl, 3, r, t_st, bgcolor=c_st, text_color=color.white, text_size=txt_sz)
table.cell(pnl, 4, r, t_adx, bgcolor=c_adx, text_color=color.white, text_size=txt_sz)
if showDash
table.cell(panel, 0, 0, "Time", bgcolor=color.new(color.black, 20), text_color=color.white, text_size=sz)
table.cell(panel, 1, 0, "EMA", bgcolor=color.new(color.black, 20), text_color=color.white, text_size=sz)
table.cell(panel, 2, 0, "RSI", bgcolor=color.new(color.black, 20), text_color=color.white, text_size=sz)
table.cell(panel, 3, 0, "SupTr",bgcolor=color.new(color.black, 20), text_color=color.white, text_size=sz)
table.cell(panel, 4, 0, "ADX", bgcolor=color.new(color.black, 20), text_color=color.white, text_size=sz)
fillRow(panel, 1, "1m", e_1m, r_1m, s_1m, a_1m, av_1m, sz)
fillRow(panel, 2, "3m", e_3m, r_3m, s_3m, a_3m, av_3m, sz)
fillRow(panel, 3, "5m", e_5m, r_5m, s_5m, a_5m, av_5m, sz)
fillRow(panel, 4, "15m", e_15m, r_15m, s_15m, a_15m, av_15m, sz)
fillRow(panel, 5, "30m", e_30m, r_30m, s_30m, a_30m, av_30m, sz)
fillRow(panel, 6, "45m", e_45m, r_45m, s_45m, a_45m, av_45m, sz)
fillRow(panel, 7, "1h", e_1h, r_1h, s_1h, a_1h, av_1h, sz)
fillRow(panel, 8, "4h", e_4h, r_4h, s_4h, a_4h, av_4h, sz)
fillRow(panel, 9, "Day", e_D, r_D, s_D, a_D, av_D, sz)
fillRow(panel, 10,"Wk", e_W, r_W, s_W, a_W, av_W, sz)
0 Comments