Zarattini Intra-day Threshold Bands (ZITB)This indicator implements the intraday threshold band methodology described in the research paper by Carlo Zarattini et al.
papers.ssrn.com
Overview:
Plots intraday threshold bands based on daily open/close levels.
Supports visualization of BaseUp/BaseDown levels and Threshold Upper/Lower bands.
Optional shading between threshold bands for easier interpretation.
Usage Notes / Limitations:
Originally studied on SPY (US equities), this implementation is adapted for NSE intraday market timing, specifically the NIFTY50 index.
Internally, 2-minute candles are used if the chart timeframe is less than 2 minutes.
Values may be inaccurate if the chart timeframe is more than 1 day.
Lookback days are auto-capped to avoid exceeding TradingView’s 5000-bar limit.
The indicator automatically aligns intraday bars across multiple days to compute average deltas.
For better returns, it is recommended to use this indicator in conjunction with VWAP and a volatility-based position sizing mechanism.
Can be used as a reference for Open Range Breakout (ORB) strategies.
Customizations:
Toggle plotting of base levels and thresholds.
Toggle shading between thresholds.
Line colors and styles can be adjusted in the Style tab.
Author:
Gokul Ramachandran – software architect, engineer, programmer. Interested in trading and investment. Currently trading and researching strategies that can be employed in NSE (Indian market).
Contact: (mailto:gokul4trading@gmail.com)
LinkedIn: www.linkedin.com
Intended for educational and research purposes only.
Indicadores y estrategias
Rolling Range Bands by tvigRolling Range Bands
Plots two dynamic price envelopes that track the highest and lowest prices over a Short and Long lookback. Use them to see near-term vs. broader market structure, evolving support/resistance, and volatility changes at a glance.
What it shows
• Short Bands: recent trading range (fast, more reactive).
• Long Bands: broader range (slow, structural).
• Optional step-line style and shaded zones for clarity.
• Option to use completed bar values to avoid intrabar jitter (no repaint).
How to read
• Price pressing the short high while the long band rises → short-term momentum in a larger uptrend.
• Price riding the short low inside a falling long band → weakness with trend alignment.
• Band squeeze (narrowing) → compression; watch for breakout.
• Band expansion (widening) → rising volatility; expect larger swings.
• Repeated touches/rejections of long bands → potential areas of support/resistance.
Inputs
• Short Window, Long Window (bars)
• Use Close only (vs. High/Low)
• Use completed bar values (stability)
• Step-line style and Band shading
Tips
• Works on any symbol/timeframe; tune windows to your market.
• For consistent scaling, pin the indicator to the same right price scale as the chart.
Not financial advice; combine with trend/volume/RSI or your system for entries/exits.
Simple Demand Indicator v2.1 (MA + RSI)//@version=5
indicator("Simple Demand Indicator v2.1 (MA + RSI)", overlay=true)
// === INPUT ===
maLength = input.int(50, "Moving Average Length")
rsiLength = input.int(14, "RSI Length")
overSold = input.int(30, "RSI Oversold")
overBought = input.int(70, "RSI Overbought")
// === CALCULATION ===
ma = ta.sma(close, maLength)
rsi = ta.rsi(close, rsiLength)
// BUY: harga cross up MA + RSI oversold
buySignal = ta.crossover(close, ma) and rsi < overSold
// SELL: harga cross down MA + RSI overbought
sellSignal = ta.crossunder(close, ma) and rsi > overBought
// === PLOT MA ===
plot(ma, color=color.orange, title="MA Trend")
// === PLOT SIGNAL ARROWS ===
plotshape(buySignal, title="BUY Signal", style=shape.labelup, color=color.green,
text="BUY", textcolor=color.white, size=size.small, location=location.belowbar)
plotshape(sellSignal, title="SELL Signal", style=shape.labeldown, color=color.red,
text="SELL", textcolor=color.white, size=size.small, location=location.abovebar)
// === ALERTS ===
alertcondition(buySignal, title="BUY Signal", message="📈 BUY Signal pada {{ticker}} TF {{interval}}")
alertcondition(sellSignal, title="SELL Signal", message="📉 SELL Signal pada {{ticker}} TF {{interval}}")
Meta-LR Forecast v2Meta-LR Forecast is a tool that helps visualize whether the market is acting more like a trend (moving strongly in one direction) or more like a range (sideways/mean-reverting). It is designed to give context, not to generate buy or sell signals.
The script looks at multiple timeframes at once (for example minutes, hours, days, or weeks depending on your chart) and projects where price could go if each timeframe’s “bias” plays out. These projected points are then drawn ahead of current price.
Each timeframe’s bias is based on how straight and consistent the recent move has been (Directional Efficiency), combined with how well a line fits that move (R²). Together these form a “Bias %.” Higher positive values suggest upward pressure, higher negative values suggest downward pressure, and values near zero suggest indecision or chop.
A logistic blend adjusts between trend-following and range/anti-trend behavior. When the market shows strong direction, the forecast leans more toward trend; when it’s choppy or moving sideways, the forecast leans more toward range. In some conditions, a counter-trend (anti-trend) adjustment is allowed, but only when volatility and efficiency fall within certain thresholds.
ATR (Average True Range) is used to normalize everything, so the indicator adapts to different symbols and volatility levels. This way, the projection size is expressed in “Bias × ATR” units added to current price, making the forecasts scale appropriately across assets.
The projected points are spaced in time according to the real length of their timeframe. For example, a 1-day projection will be drawn farther away on the chart than a 15-minute projection. This makes the forward path visually match the true horizon of each timeframe.
The top-right table shows “Meta Bias %,” which is the overall bias calculated from all selected timeframe projections chained together. Positive Meta Bias means the combined path leans upward, negative means downward, and values close to zero mean mixed conditions.
How to use it: treat the Meta Bias % and polyline as context. If the forecast path is stacked upward with a strong positive Meta Bias, it suggests supportive conditions. If it stacks downward with a strong negative Meta Bias, it suggests pressure. If it alternates up and down and the bias hovers near zero, conditions may be indecisive. Always confirm with your own analysis before acting.
Important limitations: this tool is educational and for visualization only. It does not give entry or exit signals, and it does not guarantee profitable outcomes. Higher-timeframe values can change until that bar closes, so the display may adjust in real time. Market shocks, news events, and low liquidity conditions are not modeled.
Good practice: combine this indicator with your own trading plan, structure analysis, and risk management. Backtest responsibly in a simulator before using it live. Adjust inputs to fit your symbol and timeframe.
Compliance note: this script does not claim to be a “holy grail” or promise guaranteed results. It is not financial advice. It is meant to help traders better visualize context and market behavior. Use it as one part of a broader decision-making process.
Bollinger Bands with Trend-Colored Middle Band & CandlesUpper & Lower Bands = semi-transparent blue.
Middle Band =
🟢 Green when rising
🔴 Red when falling
⚪ Gray when flat.
Candles automatically change color to follow the trend direction of the middle band.
ADR(20)% - Qullamagi (corner value) v6Description:
This indicator calculates the 20-day Average Daily Range (ADR) as a percentage (or in raw $) and displays it in a clean corner table on the chart.
Formula: average of (High ÷ Low – 1) over the last 20 bars.
Use % or $ mode via settings.
Position the box in any chart corner.
Inspired by Kristjan Qullamägi (Qullamaggie), who uses ADR to filter strong movers and size stop-losses (stops should generally be ≤ 1×ADR).
LP Sweep / Reclaim & Breakout Grading: Long-onlySignals
1) LP Sweep & Reclaim (mean-reversion entry)
Compute LP bounds from prior-bar window extremes:
lpLL_prev = lowest low of the last N bars (offset 1).
lpHH_prev = highest high of the last N bars (offset 1).
Sweep long trigger: current low dips below lpLL_prev and closes back above it.
Real-time quality grading (A/B/C) for sweep:
Trend filter & slope via EMA(88).
BOS bonus: close > last confirmed swing high.
Body size vs ATR, location above a long EMA, headroom to swing high (penalty if too close), and multi-sweep count bonus.
Sum → score → grade A/B/C; A or B required for sweep entry.
2) Trend Breakout (momentum entry)
Core trigger: close > previous Donchian high (length boLen) + ATR buffer.
Optional filter: close must be above the default EMA.
Breakout grading (A/B/C) in real time combining:
Trend up (price > EMA and EMA rising),
Body/ATR, Gap above breakout level (in ATR),
Volume vs MA,
Upper-wick penalty,
Position-in-Score: headroom to last swing high (penalty if too near) + EMA slope bonus.
Sum → score → A or B required if grading enabled.
🎮 Liquidity Checklist – EFI + CMF + Centered MFIWhat it is
A confirmation dashboard combining EFI (Elder Force Index), CMF (Chaikin Money Flow), and MFI (Money Flow Index).
Provides a checklist table with / conditions, glow plots, and theme/override system. Intended as confirmation tool, not a standalone signal generator.
Why combine these three?
EFI (Force): captures impulse of price change × volume strength of push. CMF (Flow): measures accumulation/distribution capital inflow or outflow.
MFI (Liquidity/Momentum): RSI with volume liquidity stretch or balance.
Aligning force + flow + liquidity avoids weak setups and highlights agreement.
How it works
EFI: EMA of ( Close × Volume). Positive = buying pressure; Negative = selling pressure.
CMF: Money Flow Multiplier × Volume, averaged relative to total volume. Above 0 = inflow; Below 0 = outflow.
MFI: built-in 0 100 oscillator.
On chart: plotted centered as (MFI 50). In table: shown as real 0 100 value.
Checklist logic
Long bias: EFI > 0; CMF > 0; MFI > 35.
Short bias: EFI < 0; CMF < 0; MFI < 65.
Between 35 65, MFI may allow both long and short (neutral liquidity zone).
What s original here
Centered MFI plotting so all indicators share a zero baseline.
Dashboard checklist table with live indicator values.
Theme engine with custom color overrides (separate plot vs. table).
Normalization toggle for EFI/CMF readability on high-volume tickers.
Inputs & settings
Lengths: EFI (13), CMF (20), MFI (14).
Themes: Arcade, Feng Shui, Samurai, Irish, Cyberpunk.
Override plot colors option; table stays theme-based.
Normalize EFI/CMF (default OFF). ON scales EFI/CMF to 100 +100 for visual balance with MFI. Logic uses raw values.
How to read
Chart: EFI & CMF as glowing columns; MFI as centered line; reference lines at 0, +15 ( 65), 15
(35).
Table: / for each condition and live values; READY row lights when all align.
Suggested use
Use as confirmation filter:
1) Define trade idea (structure, catalyst).
2) Check EFI and CMF align with bias.
3) Confirm MFI not stretched (avoid longs >65, shorts <35).
4) Look for READY tick when all three align.
Works across timeframes; many prefer 15m 1H for intraday.
Limitations
Not a trading system on its own.
CMF may be na when High == Low.
Normalization affects visuals only, not logic. Always backtest and manage risk.
Credits
EFI by Alexander Elder. CMF by Marc Chaikin.
MFI standard oscillator.
Centered-MFI plotting, checklist UI, themes, normalization: NICK789.
Disclaimer
Educational use only; not financial advice.
No guarantees of accuracy or profitability.
Markets involve risk; past performance does not guarantee results.
Full Candle Higher/Lower (No Repeats)🔎 What the Script Does (Pine Script v6)
Keeps track of the last signal
Uses a persistent variable lastSignal (initialized once as "none").
Ensures that if a signal repeats consecutively, it won’t be triggered again.
Defines the conditions for a “Higher” or “Lower” candle sequence
Higher condition:
Current close > previous high, AND previous low ≤ the high of two bars ago.
→ This means the candle has fully broken higher.
Lower condition:
Current close < previous low, AND previous high ≥ the low of two bars ago.
→ This means the candle has fully broken lower.
Checks for new signals only
If a candle meets the condition and the last signal wasn’t the same, a new signal is triggered.
Updates lastSignal to prevent repeats.
Plots labels/arrows
A “Higher” signal shows a green label below the bar.
A “Lower” signal shows a red label above the bar.
Sets alerts
So you can be notified in TradingView whenever a “Higher” or “Lower” flag is detected.
📊 Trading Logic in Words
The indicator is looking for full candle breakouts.
If a candle closes above the previous high (with some confirmation from older bars), it flags it as a “Higher” signal.
If a candle closes below the previous low (with similar confirmation), it flags it as a “Lower” signal.
It avoids duplicate consecutive signals by remembering what the last one was.
✅ Why It’s Useful
Helps traders spot momentum continuation candles (strong push candles).
Reduces noise by not repeating the same signal multiple times in a row.
Works like a breakout detector that tells you when the market is making a new leg up or new leg down.
Key Levels (Open, Premarket, & Yesterday)not every pee pee time is poo poo time, but every poo poo time is pee pee time
Multi-Timeframe Daily EMA Levels (5 / 10 / 21)Multi-Timeframe Daily EMA Levels (5 / 10 / 21)
This indicator plots the daily EMA 5, EMA 10, and EMA 21 levels as horizontal reference lines (only near the current candle to minimize noise) on any chart timeframe. Instead of recalculating EMAs in the chart’s resolution, it always pulls the latest values from the daily timeframe and anchors them as fixed horizontal lines.
🔹 Features:
Uses daily EMAs (5, 10, 21) regardless of the chart’s current timeframe.
Lets you control visibility on Daily, Weekly, or Monthly charts with checkboxes.
🔹 Use case:
Track where key daily EMA levels are while analyzing lower or higher timeframes.
Useful for swing traders who want to monitor bounce/rejection off daily EMAs to manage/enter positions.
Combine two tickers OHLC bars with selectable sourcesCombines the bars of two chosen tickers, used to fix issues with split history, new ticker names
e.g. MYTIL went to LSE from ATHEX and changed ticker names but with "broken"/ split chart history. With this script you get the full history combined with the two tickers.
An SMA50 was used as an example of how this can be used with others custom indicators inside this script.
RSI Dual Smoothed MAs + Trend color+ Alerts + MTFFeatures Implemented:
RSI with selectable source (OHLC/HL2/HLC3/OHLC4).
timeframe dropdown (tf) so you can select 1m, 3m, 5m, 15m, 30m, 1h, 3h, 4h, 1D, 1W, 1M
Two customizable MAs with selectable type (SMA, EMA, WMA, RMA, VWMA).
MA slope-based coloring (green = rising, red = falling, gray = flat).
Background shading (green = bullish, red = bearish).
Alerts for:
Bullish MA crossover
Bearish MA crossover
RSI Overbought (>70)
RSI Oversold (<30)
Range Grid From Two LevelsRange Grid From Two Levels of Initial Balance (works great with next day levels)
Pin Bar (Body in Half Candle)Pin Bar Identification Rules
1.The candlestick body must not exceed half the total candle range.
2.The candlestick body size must not exceed 35% of the entire candle length.
Pin Bar识别
1. K线的实体不超过K线大小的一半
2. K线实体大小不超过整根K线大小的0.35
Confirmed Reversals After Bollinger Band ExtremesMean reversion confirmation - it will give reversal entry when price will reach at distance from EMA and it will move to opposite direction
EMA-RSI-MACD-Volume-Candle Combo HÂN HÂN//@version=5
indicator("EMA-RSI-MACD-Volume-Candle Combo", overlay=true)
// === EMA 20 & 50 ===
ema20 = ta.ema(close, 20)
ema50 = ta.ema(close, 50)
goldenCross = ta.crossover(ema20, ema50) // EMA20 cắt lên EMA50
plot(ema20, color=color.yellow, title="EMA 20")
plot(ema50, color=color.orange, title="EMA 50")
// === RSI (14) ===
rsi = ta.rsi(close, 14)
rsiCondition = rsi <= 30
// === MACD ===
macd = ta.ema(close, 12) - ta.ema(close, 26)
signal = ta.ema(macd, 9)
macdCondition = macd > 0
// === Volume breakout ===
volMA = ta.sma(volume, 20)
volCondition = volume > volMA * 1.5 // Volume > 150% so với MA20
// === Candlestick reversal patterns ===
// Bullish Engulfing
bullEngulf = close < open and close > open and close >= open and open <= close
// Hammer
hammer = (close > open) and ((high - low) > 3 * (open - close)) and ((close - low) / (0.001 + high - low) > 0.6)
candleCondition = bullEngulf or hammer
// === Combined Signal ===
buySignal = goldenCross and rsiCondition and macdCondition and volCondition and candleCondition
// Plot signals on chart
plotshape(buySignal, title="BUY Signal", style=shape.labelup, color=color.green, text="BUY", location=location.belowbar, size=size.large)
// Alerts
alertcondition(buySignal, title="BUY Signal Alert", message="EMA20>EMA50 + RSI≤30 + MACD>0 + Volume Breakout + Reversal Candle")
MACD, RSI, DMI ComboMACD RSI DMI All In One indicator
To save slot
Default setting, custom settings available
ATR Histogram vs High-Low//@version=5
indicator("RSI+Price Confluence", overlay=false)
rsiSrc = input(close)
rsiLen = input.int(14)
emaRSI = input.int(9)
wmaRSI = input.int(45)
tf = input.timeframe("60")
emaF = input.int(21)
emaS = input.int(52)
// Lấy EMA và WMA của RSI HTF chỉ trong 1 lần request
ema_rsi = request.security(syminfo.tickerid, tf, ta.ema(ta.rsi(rsiSrc, rsiLen), emaRSI))
wma_rsi = request.security(syminfo.tickerid, tf, ta.wma(ta.rsi(rsiSrc, rsiLen), wmaRSI))
// Xác định lực RSI
luc_up = ema_rsi > wma_rsi
luc_down = ema_rsi < wma_rsi
// Lực giá (EMA nhanh & chậm)
gia_up = ta.ema(close, emaF) > ta.ema(close, emaS)
gia_down = ta.ema(close, emaF) < ta.ema(close, emaS)
// Tín hiệu cuối cùng
isUP = luc_up and gia_up
isDOWN = luc_down and gia_down
isNEU = not isUP and not isDOWN
// Vẽ cột tín hiệu, color= đầy đủ
plot(isUP ? 1 : na, title="UP", style=plot.style_columns, color=color.green, linewidth=6)
plot(isDOWN ? -1 : na, title="DOWN", style=plot.style_columns, color=color.red, linewidth=6)
plot(isNEU ? 0 : na, title="NEU", style=plot.style_columns, color=color.yellow, linewidth=6)
// Đường zero
hline(0, "", color=color.gray, linestyle=hline.style_dotted)
CHOCH & BOS with EMA200 with long and short signalsCHOCH & BOS with EMA200 when we have internal bos we have long or short signal