Bearish on rise
Downside pressure expected. Latest futures close 23612, active spot 23618, ATR14 near 286.0, OI change -1,40,205.
Fully automatic mode: quote checks every minute and daily recalculation at 09:15:01 AM IST. Next update: Sat, 18 Jul, 09:15:01 am.
No manual input is needed. Use this only if all automatic feeds are blocked.
Automatic mode is running; using embedded history until a quote feed responds.
Live NIFTY 50
Automatic quote / fallback running
Model confidence
Directional confidence, not guarantee
Buy trigger
Go long only above this zone
Sell trigger
Go short only below this zone
Automatic live quote engine
No manual connect is required for normal use. The app auto-fetches public NIFTY quotes every minute and auto-reconnects any saved broker/backend websocket.
Symbol
NSE:NIFTY 50 / ^NSEI
Current quote
Auto fallback
Status
Automatic public quote is blocked/unavailable (Yahoo Finance NIFTY futures proxy: Failed to fetch). Dashboard continues from embedded history; optional broker websocket/manual spot can override.
Optional broker feed saved once, auto-connected later
Normal dashboard use is automatic. If you have your own secure backend websocket, save it once below; after that the app reconnects automatically on every visit. Keep broker API keys on backend only.
Auto mode active. If a saved broker websocket exists, it reconnects automatically; otherwise public quote fallback runs every minute.
Direct NSE/broker live feeds require license/login and normally cannot be called from browser JavaScript. Without your own backend, the app runs automatic public quote + TradingView visual + history fallback.
TradingView live NIFTY visual chart
Use this embedded chart for live visual confirmation while the dashboard model updates automatically from available quote sources.
How automatic intraday levels work
The app uses automatic quote when available; manual broker price is only an emergency backup.
Automatic public quote
On app open, the dashboard automatically tries NSE/NIFTY public quote sources and refreshes every minute. No button press is required.
Automatic saved websocket
If you save a broker/backend websocket once, the app reconnects it automatically on the next visit and every tick updates the model.
TradingView visual check
A live TradingView NIFTY widget is embedded so you can verify price action even when browser quote APIs are blocked.
Optional safety override
Manual broker price input is only a backup. Normal dashboard operation is automatic.
5m NIFTY 50 analysis dashboard
TradingView-style internal chart with EMA 9, EMA 21, VWAP, RSI and S/R lines. Automatic quote checks every minute.
Live / indicative NIFTY
23597.8
Signal
SELL ON RISE / WAIT BREAKDOWN
Buy above
23733.85
Sell below
23533.35
EMA 9
23608.8
EMA 21
23616.1
VWAP
23620.4
RSI 14
34.7
| Setup | Bias | Entry | Target 1 | Target 2 | Stoploss |
|---|---|---|---|---|---|
| Buy breakout | Above 23733.85 | 23733.85 | 23842.5 | 23939.75 | 23642.3 |
| Sell breakdown | Below 23533.35 | 23533.35 | 23424.65 | 23327.45 | 23624.85 |
| S/R map | Support 23533.35 / 23454.65 • Resistance 23733.85 / 23855.65 | Pivot 23655.15 | R1 23733.85 | R2 23855.65 | S1 23533.35 |
Automatic breakout browser alerts to private phone ending 5048
Saved contact: ••••••5048. Complete mobile number is not displayed.
Waiting: price must cross above 23733.85 or below 23533.35. Current model price 23597.8.
Status: denied. Last alert: Alert contact saved privately. Only last 4 digits shown: 5048.
After browser permission is enabled once, alerts trigger automatically while this dashboard is open. Direct WhatsApp/SMS still requires a secure backend and paid API credentials.
Plan: Short setup; entry 23533.35, target 23424.65/23327.45, stop 23624.85. Last refresh 11:33:44 pm IST.
NIFTY 50 pro model chart
NSE:NIFTY 50 • 5m • Buy above / sell below and support-resistance lines marked
Pro intraday chart module
Like trading apps, this module keeps live quote, chart, levels, signal table and alerts in one automatic local dashboard.
Live quote source
Automatic fallback
The app auto-fetches public data; if blocked, history fallback keeps levels visible.
Refresh cycle
Auto 60 seconds
Live quote, chart, signal table and 09:15:01 IST opening recalculation run automatically.
Best practice
Confirm close
Trade only after candle close beyond buy/sell line plus EMA/VWAP/RSI alignment.
15-minute intraday movement tool
Blends 15-minute candle structure with ATR, momentum, gap, EMA/VWAP/RSI filters. It refreshes automatically every minute.
15m action
Candle-close confirmation required
Buy signal price
15m breakout level
Sell signal price
15m breakdown level
Confidence / score
Intraday filter score
| Tool | Action | Entry | Target 1 | Target 2 | Stoploss | Rule |
|---|---|---|---|---|---|---|
| 15m + live/model | SELL BELOW | 23533.35 | 23483.8 | 23447.7 | 23602 | 15m candle close confirmation |
| Filters | EMA9 23596.2 | EMA21 23610.4 | VWAP 23619.05 | RSI 35.95 | ATR 286.0 | Score = 0.55×HistoricalBias + 0.70×15mCandlePower + EMA/VWAP/RSI trend filters |
SELL BELOW only after a 15-minute candle sustains beyond trigger; trail after T1. Last update 11:33:44 pm IST.
Historical close trend
NIFTY Futures • Supplied futures sessions with model levels
Movement read
Recent close is below short-term average and open interest has reduced, suggesting position unwinding. Breakout above 23733.85 can create short-covering; failure below 23533.35 can restart downside pressure.
Risk rule
Use first 15–30 minute candle confirmation. Avoid fresh trades between pivot 23655.15 and flat price action. Risk per trade should remain fixed before entry.
Data stats
Average range 286.75, average body 128.4, bullish sessions 18, bearish sessions 14, range extremes 22412.4 to 24738.2.
Trading levels
Buy above
Momentum breakout only after candle sustains
Long target 1
Book partial / trail SL
Long target 2
Extended target if breadth supports
Long stop loss
Exit if price closes below
Short-side levels
Sell below
Breakdown only after rejection below pivot zone
Short target 1
Book partial / trail SL
Short target 2
Panic extension level
Short stop loss
Exit if price reclaims breakdown
Pivot map
S3
23332.85
S2
23454.65
S1
23533.35
Pivot
23655.15
R1
23733.85
R2
23855.65
R3
23934.35
Math prediction model
The app blends trend, momentum, candle position, open-interest pressure and futures premium into a current-day movement score.
TrendScore = clamp(((SMA5 − SMA20) / ATR14) + Momentum5 / (2 × ATR14) + Momentum10 / (4 × ATR14), −2, 2)
OIScore = clamp(ChangeOI / AvgAbsChangeOI10, −1.5, 1.5)
CandleScore = 0.35 if close position > 62%, −0.35 if < 38%
Sentiment = TrendScore + CandleScore + 0.22 × OIScore + clamp(FuturesPremium / 35, −0.35, 0.35)
FairValue = Spot + Sentiment × ATR14 × 0.28
ExpectedHigh = FairValue + ExpectedRange / 2; ExpectedLow = FairValue − ExpectedRange / 2
TradingView Pine Script
Copy this indicator into TradingView Pine Editor. It plots model levels and alerts.
//@version=5
indicator("Nifty Signal Lab PRO - Buy Sell Levels", overlay=true, max_labels_count=500, max_lines_count=100)
// NIFTY trading-purpose indicator generated from dashboard model levels.
// Recommended use: add on NSE:NIFTY / NSE:NIFTY1! / NSE:BANKNIFTY and keep alerts enabled.
// Signals are conditional, not guaranteed. Confirm with your broker feed and risk rules.
float buyLevel = input.float(23733.85, "BUY ABOVE", step=0.05, group="1. Model Levels")
float sellLevel = input.float(23533.35, "SELL BELOW", step=0.05, group="1. Model Levels")
float pivotLine = input.float(23655.15, "PIVOT / NO TRADE MID", step=0.05, group="1. Model Levels")
float r1Line = input.float(23733.85, "R1", step=0.05, group="2. Support / Resistance")
float r2Line = input.float(23855.65, "R2", step=0.05, group="2. Support / Resistance")
float r3Line = input.float(23934.35, "R3", step=0.05, group="2. Support / Resistance")
float s1Line = input.float(23533.35, "S1", step=0.05, group="2. Support / Resistance")
float s2Line = input.float(23454.65, "S2", step=0.05, group="2. Support / Resistance")
float s3Line = input.float(23332.85, "S3", step=0.05, group="2. Support / Resistance")
float longStop = input.float(23642.30, "Long Stoploss", step=0.05, group="3. Targets / Stoploss")
float longT1 = input.float(23842.50, "Long Target 1", step=0.05, group="3. Targets / Stoploss")
float longT2 = input.float(23939.75, "Long Target 2", step=0.05, group="3. Targets / Stoploss")
float shortStop = input.float(23624.85, "Short Stoploss", step=0.05, group="3. Targets / Stoploss")
float shortT1 = input.float(23424.65, "Short Target 1", step=0.05, group="3. Targets / Stoploss")
float shortT2 = input.float(23327.45, "Short Target 2", step=0.05, group="3. Targets / Stoploss")
bool showSignals = input.bool(true, "Show BUY/SELL labels", group="4. Signals")
bool confirmedOnly = input.bool(true, "Signal only after candle close", group="4. Signals")
bool useFilters = input.bool(true, "Use EMA + VWAP + RSI + volume filters", group="4. Signals")
bool showRetest = input.bool(true, "Show retest continuation entries", group="4. Signals")
bool showBg = input.bool(true, "Color trend background", group="5. Visual")
bool showTable = input.bool(true, "Show live signal dashboard", group="5. Visual")
float ema9 = ta.ema(close, 9)
float ema21 = ta.ema(close, 21)
float ema50 = ta.ema(close, 50)
float vwapLine = ta.vwap(hlc3)
float rsi14 = ta.rsi(close, 14)
float atr14 = ta.atr(14)
float volAvg = nz(ta.sma(volume, 20), 1)
bool candleOk = confirmedOnly ? barstate.isconfirmed : true
bool volOk = nz(volume, volAvg) >= volAvg * 0.50
bool buyFilter = not useFilters or (close > ema9 and ema9 >= ema21 and close >= vwapLine and rsi14 >= 50 and volOk)
bool sellFilter = not useFilters or (close < ema9 and ema9 <= ema21 and close <= vwapLine and rsi14 <= 50 and volOk)
bool buyBreak = ta.crossover(close, buyLevel)
bool sellBreak = ta.crossunder(close, sellLevel)
bool buyRetest = showRetest and close > buyLevel and low <= buyLevel and close > open and close > ema9
bool sellRetest = showRetest and close < sellLevel and high >= sellLevel and close < open and close < ema9
bool buySignal = showSignals and candleOk and buyFilter and (buyBreak or buyRetest)
bool sellSignal = showSignals and candleOk and sellFilter and (sellBreak or sellRetest)
bool longExit = candleOk and (ta.crossunder(close, longStop) or ta.crossunder(close, ema21) or rsi14 < 42)
bool shortExit = candleOk and (ta.crossover(close, shortStop) or ta.crossover(close, ema21) or rsi14 > 58)
string state = close >= buyLevel ? "BUY ZONE" : close <= sellLevel ? "SELL ZONE" : close > pivotLine ? "WAIT ABOVE PIVOT" : close < pivotLine ? "WAIT BELOW PIVOT" : "NO TRADE"
plot(series=buyLevel, title="BUY ABOVE", color=color.lime, linewidth=3, style=plot.style_line)
plot(series=sellLevel, title="SELL BELOW", color=color.red, linewidth=3, style=plot.style_line)
plot(series=pivotLine, title="PIVOT / NO TRADE MID", color=color.orange, linewidth=2, style=plot.style_line)
plot(series=r1Line, title="R1", color=color.new(color.green, 35), linewidth=1, style=plot.style_line)
plot(series=r2Line, title="R2", color=color.new(color.green, 55), linewidth=1, style=plot.style_line)
plot(series=r3Line, title="R3", color=color.new(color.green, 70), linewidth=1, style=plot.style_line)
plot(series=s1Line, title="S1", color=color.new(color.red, 35), linewidth=1, style=plot.style_line)
plot(series=s2Line, title="S2", color=color.new(color.red, 55), linewidth=1, style=plot.style_line)
plot(series=s3Line, title="S3", color=color.new(color.red, 70), linewidth=1, style=plot.style_line)
plot(series=longStop, title="Long SL", color=color.new(color.red, 10), linewidth=2, style=plot.style_circles)
plot(series=longT1, title="Long Target 1", color=color.new(color.lime, 20), linewidth=2, style=plot.style_circles)
plot(series=longT2, title="Long Target 2", color=color.new(color.lime, 45), linewidth=2, style=plot.style_circles)
plot(series=shortStop, title="Short SL", color=color.new(color.red, 10), linewidth=2, style=plot.style_circles)
plot(series=shortT1, title="Short Target 1", color=color.new(color.red, 20), linewidth=2, style=plot.style_circles)
plot(series=shortT2, title="Short Target 2", color=color.new(color.red, 45), linewidth=2, style=plot.style_circles)
plot(series=ema9, title="EMA 9", color=color.yellow, linewidth=1)
plot(series=ema21, title="EMA 21", color=color.aqua, linewidth=1)
plot(series=ema50, title="EMA 50", color=color.new(color.blue, 35), linewidth=1)
plot(series=vwapLine, title="VWAP", color=color.white, linewidth=1)
bgcolor(showBg ? close >= buyLevel ? color.new(color.lime, 90) : close <= sellLevel ? color.new(color.red, 90) : color.new(color.orange, 94) : na)
barcolor(buySignal ? color.lime : sellSignal ? color.red : close > pivotLine ? color.new(color.green, 35) : close < pivotLine ? color.new(color.red, 35) : na)
plotshape(series=buySignal, title="BUY Signal", text="BUY", style=shape.labelup, location=location.belowbar, color=color.lime, textcolor=color.black, size=size.normal)
plotshape(series=sellSignal, title="SELL Signal", text="SELL", style=shape.labeldown, location=location.abovebar, color=color.red, textcolor=color.white, size=size.normal)
plotshape(series=longExit, title="Long Exit", text="EXIT L", style=shape.xcross, location=location.abovebar, color=color.orange, textcolor=color.white, size=size.tiny)
plotshape(series=shortExit, title="Short Exit", text="EXIT S", style=shape.xcross, location=location.belowbar, color=color.orange, textcolor=color.white, size=size.tiny)
if buySignal
label.new(bar_index, low, "BUY ABOVE " + str.tostring(buyLevel) + "
T1 " + str.tostring(longT1) + " | T2 " + str.tostring(longT2) + "
SL " + str.tostring(longStop) + "
RSI " + str.tostring(rsi14, "#.0"), style=label.style_label_up, color=color.lime, textcolor=color.black)
alert("NIFTY BUY: Entry above " + str.tostring(buyLevel) + " | SL " + str.tostring(longStop) + " | T1 " + str.tostring(longT1) + " | T2 " + str.tostring(longT2), alert.freq_once_per_bar_close)
if sellSignal
label.new(bar_index, high, "SELL BELOW " + str.tostring(sellLevel) + "
T1 " + str.tostring(shortT1) + " | T2 " + str.tostring(shortT2) + "
SL " + str.tostring(shortStop) + "
RSI " + str.tostring(rsi14, "#.0"), style=label.style_label_down, color=color.red, textcolor=color.white)
alert("NIFTY SELL: Entry below " + str.tostring(sellLevel) + " | SL " + str.tostring(shortStop) + " | T1 " + str.tostring(shortT1) + " | T2 " + str.tostring(shortT2), alert.freq_once_per_bar_close)
if longExit
alert("NIFTY LONG EXIT: price/EMA/RSI exit condition triggered.", alert.freq_once_per_bar_close)
if shortExit
alert("NIFTY SHORT EXIT: price/EMA/RSI exit condition triggered.", alert.freq_once_per_bar_close)
var table dash = table.new(position.top_right, 2, 8, border_width=1)
if showTable and barstate.islast
color stateColor = close >= buyLevel ? color.lime : close <= sellLevel ? color.red : color.orange
table.cell(dash, 0, 0, "Nifty Signal Lab", text_color=color.white, bgcolor=color.black)
table.cell(dash, 1, 0, state, text_color=color.black, bgcolor=stateColor)
table.cell(dash, 0, 1, "Buy above", text_color=color.white, bgcolor=color.new(color.green, 55))
table.cell(dash, 1, 1, str.tostring(buyLevel), text_color=color.white, bgcolor=color.new(color.green, 55))
table.cell(dash, 0, 2, "Sell below", text_color=color.white, bgcolor=color.new(color.red, 55))
table.cell(dash, 1, 2, str.tostring(sellLevel), text_color=color.white, bgcolor=color.new(color.red, 55))
table.cell(dash, 0, 3, "Long T1 / T2 / SL", text_color=color.white, bgcolor=color.new(color.black, 10))
table.cell(dash, 1, 3, str.tostring(longT1) + " / " + str.tostring(longT2) + " / " + str.tostring(longStop), text_color=color.white, bgcolor=color.new(color.black, 10))
table.cell(dash, 0, 4, "Short T1 / T2 / SL", text_color=color.white, bgcolor=color.new(color.black, 10))
table.cell(dash, 1, 4, str.tostring(shortT1) + " / " + str.tostring(shortT2) + " / " + str.tostring(shortStop), text_color=color.white, bgcolor=color.new(color.black, 10))
table.cell(dash, 0, 5, "EMA/VWAP", text_color=color.white, bgcolor=color.new(color.black, 10))
table.cell(dash, 1, 5, close > ema9 and close > vwapLine ? "Bullish" : close < ema9 and close < vwapLine ? "Bearish" : "Mixed", text_color=color.white, bgcolor=color.new(color.black, 10))
table.cell(dash, 0, 6, "RSI / ATR", text_color=color.white, bgcolor=color.new(color.black, 10))
table.cell(dash, 1, 6, str.tostring(rsi14, "#.0") + " / " + str.tostring(atr14, "#.0"), text_color=color.white, bgcolor=color.new(color.black, 10))
table.cell(dash, 0, 7, "Rule", text_color=color.white, bgcolor=color.new(color.black, 10))
table.cell(dash, 1, 7, "Candle close confirm", text_color=color.white, bgcolor=color.new(color.black, 10))
alertcondition(condition=buySignal, title="NIFTY BUY SIGNAL", message="NIFTY BUY signal fired. Check chart table for entry, target and stoploss.")
alertcondition(condition=sellSignal, title="NIFTY SELL SIGNAL", message="NIFTY SELL signal fired. Check chart table for entry, target and stoploss.")
alertcondition(condition=longExit, title="NIFTY LONG EXIT", message="NIFTY long exit condition triggered.")
alertcondition(condition=shortExit, title="NIFTY SHORT EXIT", message="NIFTY short exit condition triggered.")