Inside DayOnly uses completed bars (high , low ) — ignores today's intraday bar.
Plots only after market close, not during the current session.
Designed for end-of-day screeners and alerts, reliable for after-hours analysis.
Analisis Trend
RS Triple MA Confluence Signal (Lower Pane)This indicator outputs a binary signal (1 or 0) based on triple moving average confluence of an asset’s relative strength vs a benchmark (e.g., SPY, BTC, etc).
✅ A value of 1 indicates full confluence, where the asset's relative strength is above three customizable moving averages (short, medium, and long).
❌ A value of 0 indicates confluence is off.
This version is designed to be used in a lower pane for:
Quick visual scanning
Dashboard-style layouts
Systematic filtering or alerting
Pairs perfectly with the main overlay tool:
👉 Relative Strength Triple MA Confluence
Use that version for candle coloring and price-level signals, and this version for clean signal tracking and screening support.
Premarket & Previous Day High/LowLines for Premarket High Low as well as Previous Day High and Low. Also adds Bollinger Bands. Colors the Bollinger Bands depending wether the Close is above or below PMH or PML
Trend Persistence Counter (TPC) by riskcipher🧭 Trend Persistence Counter (TPC) – A Simple Price Action Trend Duration Tool
Trend Persistence Counter (TPC) is a lightweight indicator that counts how long a trend persists after a breakout.
It is entirely based on price action, without using any moving averages or smoothing. The goal is to give a simple, rule-based view of trend continuity.
🧠 How It Works (Logic Overview)
This indicator switches between two modes: bullish and bearish.
If close > previous high, the counter enters bullish mode, and starts at +1
While in bullish mode:
If close >= previous low → continue the uptrend → +1 each bar
If close < previous low → trend ends → reset to 0, switch to bearish mode
If close < previous low, the counter enters bearish mode, and starts at -1
While in bearish mode:
If close <= previous high → continue the downtrend → -1 each bar
If close > previous high → trend ends → reset to 0, switch to bullish mode
This provides a bar-by-bar count of trend persistence based on whether price holds structure.
🎯 Use Cases
Track how long a trend continues after a breakout
Quickly detect when trend structure breaks
Help visually filter “strong” vs “weak” moves
Build logic-based alerts (e.g., trend continues for N bars)
🔍 Why Use This Instead of Traditional Indicators?
This is not meant to replace moving averages or trend filters.
But it offers some advantages for those who prefer structure-based logic:
Feature TPC
Based on Price Action ✅ Yes
Uses Lagging Filters ❌ No moving average or smoothing
Trend Duration Measurement ✅ Counts valid consecutive moves
Complexity ⚪ Very simple and transparent
It’s a simple concept and easy to understand, but still useful when combined with other tools or visualized on its own.
⚙️ Technical Notes
Works on any timeframe or instrument
The value is positive during bullish persistence, negative during bearish
Value resets to 0 when trend structure breaks
All logic is calculated bar-by-bar, in real time
✅ Example Usage Ideas
Highlight candles when TPC value crosses a certain threshold (e.g., strong breakout continuation)
Use the zero-cross as a potential reversal warning
Filter trend signals in your existing strategies
📊 VWAP + 시가선 + 필터 전략 (UTC 정밀 시가선)This is an indicator that generates trading signals by applying the market price + VWAP. ver1.1
Daily 10, 50, 150, 200 DMAIrrespective of the Chart, i.e be it weekly or monthly DMA will be displayed on Daily Values.
Do note that On a weekly chart, this gives you the DMA value from only one daily candle per week, usually Friday’s close. So if a DMA crossover (say, 10-DMA crossing 50-DMA) actually happens on Wednesday, you won’t see that reflected until Friday's value is displayed on the weekly chart. That causes crossover dates to appear wrong or delayed.
Relative Strength Triple MA ConfluenceThis tool highlights moments of strong outperformance based on three customizable moving averages of an asset's relative strength vs a benchmark (SPY, BTC, etc).
✅ Green candles + triangle-up icon appear when relative strength is above all 3 MAs (short, medium, long)
❌ Red triangle-down appears when full confluence is lost
🔧 Fully customizable MA types (EMA or SMA), lengths, and benchmark
Ideal for traders seeking high-conviction confirmation based on stacked RS strength.
RBD/DBR Zone HelperUpdated ORB that builds on prvious rendetions and forward thinkers to beat the retail markets
Inside DayCompares the current bar’s high and low to the previous day’s high and low.
Triggers when the current day is fully inside the prior day’s range.
Plots an orange label above the bar.
HTF 3rd Weekly High/LowThis indicator plots horizontal lines for the high and low of a selected past weekly candle, allowing traders to visualize higher time frame (HTF) structure on lower time frame charts (e.g., 1H, 4H, etc.).
Features:
Custom Weekly Range Selection: Use the dropdown to choose which weekly candle to reference — from the current week (0) to up to five weeks back.
Clean Horizontal Lines: High and low levels of the selected week are drawn as persistent horizontal lines.
Automatic Text Labels: Labels like Week-3H and Week-3L are shown on the right side of the chart, matching the week selected.
Customization:
Line colors
Line width and style (solid, dotted, dashed)
Text label offset
Automatic Refresh: Levels and labels are redrawn at the start of each new week to stay current with your selection.
OHLC_yA customizable visualization of previous day's open high low close, premarket high low, and regular trading hours' high low.
For use to evaluate daily sentiment - in that if the range of premarket is rising higher than yesterday's close or remains above yesterday's open, could show signs of unchanged sentiment.
As well as the regular trading hours' range in relation to yesterday, offering potential levels of interest if it gets retested.
Parabolic Run Detector (With Weighted Caution)This indicator, Parabolic Run Detector (With Weighted Caution), is designed to help traders identify moments of strong directional movement (I call it a run) in asset prices, especially those that exhibit a parabolic character. It uses a combination of log-scale price slopes, RSI momentum, and Ichimoku cloud structure (via the very useful Tenkan-Kijun "clamp") to evaluate whether a price move has both strength and sustainability. When certain thresholds are met, it marks the beginning of a potential run with a green circle below the price chart, helping traders spot entries early in high-momentum conditions.
In addition to identifying the start of a run, the indicator also looks for end-of-run caution signals. These are marked with orange circles, indicating potential exhaustion or overextension. The caution logic doesn’t require all conditions to trigger at once — instead, it uses a weighted scoring system based on RSI extension, slowing price momentum (second derivative), and the widening of the Ichimoku clamp. If these conditions cross a confidence threshold within a set number of bars after a run begins, the caution signal fires. This allows traders to stay alert to reversal or consolidation risks without being prematurely spooked by noise. So, choose to ignore them, but they are there for you to assess.
You can fine-tune sensitivity with a set of adjustable parameters, including minimum slope values, RSI reversion awareness (bias weight), clamp thresholds, and spacing between signals. So play around to see what works best for you! For advanced users, the option to toggle between static or dynamically calculated RSI baselines and adapt Ichimoku settings for crypto vs. legacy markets adds another layer of contextual accuracy. Whether you're trading Bitcoin on a 4-hour chart or scanning equities on a daily timeframe, this tool helps bring clarity to trend acceleration and potential fatigue, all while minimizing visual clutter and giving you intuitive visual cues.
Let me know what you think.
Momentum Breakout Option Buyer🎯 What it does: MOMENTUM BREAKOUT FOR OPTION BUYER
# Detects momentum breakout zones
# Confirms breakout with volume and volatility
# Gives Buy signal only when the move is strong and fast — perfect for option buyers
🔧 Core Components:
# Supertrend – to define the trend
# RSI + EMA crossover – confirms strength
# Breakout candle + Volume spike
# ATR filter – confirms volatility is high enough to justify option buying
✅ Entry Criteria (Call Option):
# Price above Supertrend
# RSI > 60 and RSI > RSI EMA
# Volume > 1.5 × average volume
# ATR (last 5 candles) > minimum threshold (e.g., 1%)
❌ Exit / Stop Loss:
# RSI drops below 50 or
# Supertrend flips or
# Target hit (e.g., 1.5x risk)
Cluster Proximity Table: Price, EMA20 & SMA200Spot significant confluence points at a glance! This script generates a dynamic table indicating if Price, its 20-period Exponential Moving Average (EMA20), and 200-period Simple Moving Average (SMA200) are tightly clustered across four different timeframes (5m, 15m, 1H, Daily). A green "✅ Yes" means all three are within a customizable percentage of each other, highlighting areas of potential support/resistance or market equilibrium.
HoLo (Highest Open Lowest Open)HoLo (Highest Open Lowest Open) Method
Overview
HoLo stands for "Highest Open Lowest Open" – a forex trading strategy.
Core Concept
Definition of HoLo:
Highest Open (HO): The highest opening price among all H1 candles of the current trading day
Lowest Open (LO): The lowest opening price among all H1 candles of the current trading day
Trading Day: Starts at Asia Open Session
Strategy Setup
Step 1: Mark Key Levels
Current day's High/Low
Highest Open and Lowest Open (from H1 candles)
Step 2: Define the Area of Interest
Sell Zone: Between the Highest Open and the current day's High
Buy Zone: Between the Lowest Open and the current day's Low
Trade Entry Rules
Sell Trade:
Price goes above the Highest Open
Trigger candle (M5, M15, or M30) closes above the Highest Open
Enter a sell when price revisits the Highest Open level (Sell Stop Order)
Buy Trade:
Price drops below the Lowest Open
Trigger candle closes below the Lowest Open
Enter a buy when price revisits the Lowest Open level (Buy Stop Order)
Trigger Timeframe:
Choose M1, M5, or M15 based on:
Your screen time availability
Personal trading style
Risk and Profit Management
Stop Loss:
For sell: Set SL at the day’s High + spread
For buy: Set SL at the day’s Low + spread
Take Profit (TP) Basic Rule:
You should open 2 positions:
When profit reaches 1R: Take partial profit + move SL to BE (Break Even)
Let the remaining position run using partial TP or trailing stop
Money Management:
Never risk more than 1% per trade
Recommended: 0.5% risk due to multiple opportunities daily
Prioritize major pairs.
The Indicator
How to read data
For Day Traders
Monitor the sell zone (red area) for potential short entries near resistance
Watch the buy zone (blue area) for potential long entries near support
Use cross signals for entry/exit points
Pay attention to timing markers for key market hours
Alert
HO (Highest Open) level changes
LO (Lowest Close) level changes
Price crossing key levels
Timing notifications
Footprint Stacked Imbalance + Absorption Detectorthis indicator looks for stacked imbalance on footprint charts or candle stick when price returns it a good chance for a balance from the level and i also added an absorpsion indicator this will look for agressive buyer or sellers buy passive limit orders , so if buyer agressive buys are not moving the price up they are getting absorped and soon will die out and fade the other direction.
📊 Trend Table (EMA20/50) PROThis script displays a color-coded trend dashboard based on the relationship between the EMA 20 and EMA 50 moving averages across multiple timeframes:
🕐 1m, 5m, 15m, 1h, 4h.
📌 Features:
✅ Green = Bullish Trend (EMA20 > EMA50)
✅ Red = Bearish Trend (EMA20 < EMA50)
🎨 Fully customizable text and background color
📍 Selectable table position (left / center / right, top / bottom)
🔁 Auto-refreshes every few bars for real-time accuracy
📈 Use Case:
Perfect as a multi-timeframe trend dashboard for scalpers and swing traders – ideal for XAUUSD, US30, NAS100 and more. Helps you instantly assess trend alignment across key timeframes.
Benchmark Above MA SignalBenchmark Above MA Signal (Configurable Visual)
This tool provides a simple ON/OFF signal showing whether a selected benchmark asset (e.g., SPY, BTC, QQQ, etc.) is currently trading above a specified moving average.
🔧 Customizable Settings:
Choose the benchmark symbol
Set the timeframe (e.g., daily, 4H, weekly)
Select SMA or EMA type
Define the MA length (e.g., 21, 50, 200)
Pick between two display modes:
Stepline (default): plots a clean binary signal in the lower pane
Background Only: visually highlights confluence periods without a line plot
✅ Ideal for macro filters, trend confirmation, or dashboard-style layouts
📊 Common use case: staying aware of the daily trend of SPY while trading lower intraday timeframes
Up/Down Days Ratio - 6 Month RollingUp/Down Ratio for last 6 months
It helps to analyze the trend of the stock
Relative Strength MA ConfluenceThis indicator highlights price candles when two custom moving averages of relative strength vs a benchmark (e.g., SPY or BTC) are both trending positively.
Full confluence: Occurs when the asset's relative strength is above both a short- and long-term MA (default: 21 & 50).
Green candles and a triangle-up icon mark when full confluence begins.
Red triangle-down marks when confluence is lost.
🔧 All settings — including MA type (SMA or EMA), lengths, benchmark symbol, and visual toggles — are fully customizable.
Ideal for swing traders seeking strong trend confirmation based on outperformance relative to a benchmark.
Momentum Breakout Option Buyer🎯 What it does:
# Detects momentum breakout zones
# Confirms breakout with volume and volatility
# Gives Buy signal only when the move is strong and fast — perfect for option buyers
🔧 Core Components:
# Supertrend – to define the trend
# RSI + EMA crossover – confirms strength
# Breakout candle + Volume spike
# ATR filter – confirms volatility is high enough to justify option buying
✅ Entry Criteria (Call Option):
# Price above Super trend
# RSI > 60 and RSI > RSI EMA
# Volume > 1.5 × average volume
# ATR (last 5 candles) > minimum threshold (e.g., 1%)
❌ Exit / Stop Loss:
# RSI drops below 50 or
# Supertrend flips or
# Target hit (e.g., 1.5x risk)
JK's Inside DayEvaluates today’s candle only after it's closed
Keeps screener alignment and alerting accurate for daily after-hours workflows
NP Screener with Alerts For Nifty 50 [NITIN PADALE]//@version=6
indicator('NP Screener with Alerts For Nifty 50 ', overlay = true)
////////////
// INPUTS //
filter_enabled = input.bool(false, '', group = 'Filter', inline = 'Filter')
filter_column = input.string('Price', title = 'Column', options = , group = 'Filter', inline = 'Filter')
filter_from = input.float(-9999999, 'From', group = 'Filter', inline = 'Filter')
filter_to = input.float(9999999, 'To', group = 'Filter', inline = 'Filter')
// SMA
rsi_len = input.int(14, title = 'RSI Length', group = 'Indicators')
rsi_os = input.float(30, title = 'RSI Overbought', group = 'Indicators')
rsi_ob = input.float(70, title = 'RSI Oversold', group = 'Indicators')
// TSI
tsi_long_len = input.int(25, title = 'TSI Long Length', group = 'Indicators')
tsi_shrt_len = input.int(13, title = 'TSI Short Length', group = 'Indicators')
tsi_ob = input.float(30, title = 'TSI Overbought', group = 'Indicators')
tsi_os = input.float(-30, title = 'TSI Oversold', group = 'Indicators')
// ADX Params
adx_smooth = input.int(14, title = 'ADX Smoothing', group = 'Indicators')
adx_dilen = input.int(14, title = 'ADX DI Length', group = 'Indicators')
adx_level = input.float(40, title = 'ADX Level', group = 'Indicators')
// SuperTrend
sup_atr_len = input.int(10, 'Supertrend ATR Length', group = 'Indicators')
sup_factor = input.float(3.0, 'Supertrend Factor', group = 'Indicators')
/////////////
// SYMBOLS //
u01 = input.bool(true, title = '', group = 'Symbols', inline = 's01')
u02 = input.bool(true, title = '', group = 'Symbols', inline = 's02')
u03 = input.bool(true, title = '', group = 'Symbols', inline = 's03')
u04 = input.bool(true, title = '', group = 'Symbols', inline = 's04')
u05 = input.bool(true, title = '', group = 'Symbols', inline = 's05')
u06 = input.bool(true, title = '', group = 'Symbols', inline = 's06')
u07 = input.bool(true, title = '', group = 'Symbols', inline = 's07')
u08 = input.bool(true, title = '', group = 'Symbols', inline = 's08')
u09 = input.bool(true, title = '', group = 'Symbols', inline = 's09')
u10 = input.bool(true, title = '', group = 'Symbols', inline = 's10')
s01 = input.symbol('HDFCBANK', group = 'Symbols', inline = 's01')
s02 = input.symbol('ICICIBANK', group = 'Symbols', inline = 's02')
s03 = input.symbol('RELIANCE', group = 'Symbols', inline = 's03')
s04 = input.symbol('INFY', group = 'Symbols', inline = 's04')
s05 = input.symbol('BHARTIARTL', group = 'Symbols', inline = 's05')
s06 = input.symbol('LT', group = 'Symbols', inline = 's06')
s07 = input.symbol('ITC', group = 'Symbols', inline = 's07')
s08 = input.symbol('TCS', group = 'Symbols', inline = 's08')
s09 = input.symbol('AXISBANK', group = 'Symbols', inline = 's09')
s10 = input.symbol('SBIN', group = 'Symbols', inline = 's10')
//////////////////
// CALCULATIONS //
filt_col_id = switch filter_column
'Price' => 1
'RSI' => 2
'TSI' => 3
'ADX' => 4
'SuperTrend' => 5
=> 0
// Get only symbol
only_symbol(s) =>
array.get(str.split(s, ':'), 1)
id_symbol(s) =>
switch s
1 => only_symbol(s01)
2 => only_symbol(s02)
3 => only_symbol(s03)
4 => only_symbol(s04)
5 => only_symbol(s05)
6 => only_symbol(s06)
7 => only_symbol(s07)
8 => only_symbol(s08)
9 => only_symbol(s09)
10 => only_symbol(s10)
=> na
// for TSI
double_smooth(src, long, short) =>
fist_smooth = ta.ema(src, long)
ta.ema(fist_smooth, short)
// ADX
dirmov(len) =>
up = ta.change(high)
down = -ta.change(low)
plusDM = na(up) ? na : up > down and up > 0 ? up : 0
minusDM = na(down) ? na : down > up and down > 0 ? down : 0
truerange = ta.rma(ta.tr, len)
plus = fixnan(100 * ta.rma(plusDM, len) / truerange)
minus = fixnan(100 * ta.rma(minusDM, len) / truerange)
adx_func(dilen, adxlen) =>
= dirmov(dilen)
sum = plus + minus
adx = 100 * ta.rma(math.abs(plus - minus) / (sum == 0 ? 1 : sum), adxlen)
adx
screener_func() =>
// RSI
rsi = ta.rsi(close, rsi_len)
// TSI
pc = ta.change(close)
double_smoothed_pc = double_smooth(pc, tsi_long_len, tsi_shrt_len)
double_smoothed_abs_pc = double_smooth(math.abs(pc), tsi_long_len, tsi_shrt_len)
tsi = 100 * (double_smoothed_pc / double_smoothed_abs_pc)
// ADX
adx = adx_func(adx_dilen, adx_smooth)
// Supertrend
= ta.supertrend(sup_factor, sup_atr_len)
// Set Up Matrix
screenerMtx = matrix.new(0, 6, na)
screenerFun(numSym, sym, flg) =>
= request.security(sym, timeframe.period, screener_func())
arr = array.from(numSym, cl, rsi, tsi, adx, sup)
if flg
matrix.add_row(screenerMtx, matrix.rows(screenerMtx), arr)
// Security call
screenerFun(01, s01, u01)
screenerFun(02, s02, u02)
screenerFun(03, s03, u03)
screenerFun(04, s04, u04)
screenerFun(05, s05, u05)
screenerFun(06, s06, u06)
screenerFun(07, s07, u07)
screenerFun(08, s08, u08)
screenerFun(09, s09, u09)
screenerFun(10, s10, u10)
///////////
// PLOTS //
var tbl = table.new(position.top_right, 6, 41, frame_color = #151715, frame_width = 1, border_width = 2, border_color = color.new(color.white, 100))
log.info(str.tostring(filt_col_id))
alert_msg = ''
if barstate.islast
table.clear(tbl, 0, 0, 5, 40)
table.cell(tbl, 0, 0, 'Symbol', text_halign = text.align_center, bgcolor = color.gray, text_color = color.white, text_size = size.small)
table.cell(tbl, 1, 0, 'Price', text_halign = text.align_center, bgcolor = color.gray, text_color = color.white, text_size = size.small)
table.cell(tbl, 2, 0, 'RSI', text_halign = text.align_center, bgcolor = color.gray, text_color = color.white, text_size = size.small)
table.cell(tbl, 3, 0, 'TSI', text_halign = text.align_center, bgcolor = color.gray, text_color = color.white, text_size = size.small)
table.cell(tbl, 4, 0, 'ADX', text_halign = text.align_center, bgcolor = color.gray, text_color = color.white, text_size = size.small)
table.cell(tbl, 5, 0, 'Supertrend', text_halign = text.align_center, bgcolor = color.gray, text_color = color.white, text_size = size.small)
if matrix.rows(screenerMtx) > 0
for i = 0 to matrix.rows(screenerMtx) - 1 by 1
is_filt = not filter_enabled or matrix.get(screenerMtx, i, filt_col_id) >= filter_from and matrix.get(screenerMtx, i, filt_col_id) <= filter_to
if is_filt
if str.length(alert_msg) > 0
alert_msg := alert_msg + ','
alert_msg
alert_msg := alert_msg + id_symbol(matrix.get(screenerMtx, i, 0))
rsi_col = matrix.get(screenerMtx, i, 2) > rsi_ob ? color.red : matrix.get(screenerMtx, i, 2) < rsi_os ? color.green : #aaaaaa
tsi_col = matrix.get(screenerMtx, i, 3) > tsi_ob ? color.red : matrix.get(screenerMtx, i, 3) < tsi_os ? color.green : #aaaaaa
adx_col = matrix.get(screenerMtx, i, 4) > adx_level ? color.green : #aaaaaa
sup_text = matrix.get(screenerMtx, i, 5) > 0 ? 'Down' : 'Up'
sup_col = matrix.get(screenerMtx, i, 5) < 0 ? color.green : color.red
table.cell(tbl, 0, i + 1, id_symbol(matrix.get(screenerMtx, i, 0)), text_halign = text.align_left, bgcolor = color.gray, text_color = color.white, text_size = size.small)
table.cell(tbl, 1, i + 1, str.tostring(matrix.get(screenerMtx, i, 1)), text_halign = text.align_center, bgcolor = #aaaaaa, text_color = color.white, text_size = size.small)
table.cell(tbl, 2, i + 1, str.tostring(matrix.get(screenerMtx, i, 2), '#.##'), text_halign = text.align_center, bgcolor = rsi_col, text_color = color.white, text_size = size.small)
table.cell(tbl, 3, i + 1, str.tostring(matrix.get(screenerMtx, i, 3), '#.##'), text_halign = text.align_center, bgcolor = tsi_col, text_color = color.white, text_size = size.small)
table.cell(tbl, 4, i + 1, str.tostring(matrix.get(screenerMtx, i, 4), '#.##'), text_halign = text.align_center, bgcolor = adx_col, text_color = color.white, text_size = size.small)
table.cell(tbl, 5, i + 1, sup_text, text_halign = text.align_center, bgcolor = sup_col, text_color = color.white, text_size = size.small)
if str.length(alert_msg) > 0
alert(alert_msg, freq = alert.freq_once_per_bar_close)