Indicator · Pine Script v6 · On the chart

Zerith - Supertrend + DeMarker + Stoch RSI Multi-TF Signal

by BlamzKunG

This indicator combines Supertrend for main trend filtering, DeMarker for momentum extremes, and Stochastic RSI for overbought/oversold signals on multiple timeframes.

View on GitHub

GitHub stars3on the repository
Pine versionv6current
Lines of code281
Settings37inputs
LicenceMIT
Last update5 weeks ago23 Sep 2026

Add It to Your TradingView Chart

  1. 1Copy the scriptPress Copy script above, or the copy button on the code below.
  2. 2Open the Pine EditorOpen a TradingView chart and choose Pine Editor at the bottom of the screen.
  3. 3Paste over the templateCreate a new indicator, select all of the template text and paste. Press Save and give it a name.
  4. 4Add it to the chartPress Add to chart, then adjust the settings with the gear icon next to its name.

Source Code

281 lines of Pine Script v6 from Indicators/Zerith_Supertrend_StochRSI_Signal.pine, published under MIT. Keep the author's credit and licence lines when you reuse it.

Zerith_Supertrend_StochRSI_Signal.pine
//@version=6
indicator("Zerith - Supertrend + DeMarker + Stoch RSI Multi-TF Signal", overlay=true)

// =============================================================================
// 1. SUPERTREND SETTINGS (MAIN TREND FILTER)
// =============================================================================
grp_trend = "1. Supertrend (Main Trend Filter)"
useSupertrend       = input.bool(true, "Enable Supertrend Filter (เปิด/ปิด กรองเทรนด์)", group=grp_trend)
stTimeframe         = input.timeframe("", "Supertrend Timeframe (ค่าว่าง = ตามหน้ากราฟ)", group=grp_trend)
atrPeriod           = input.int(10, "Supertrend ATR Period", group=grp_trend)
atrMultiplier       = input.float(3.0, "Supertrend Multiplier", step=0.1, group=grp_trend)

// =============================================================================
// 2. SIGNAL ENGINE SETTINGS (TIMEFRAME & PARAMETERS)
// =============================================================================
grp_signal = "2. Entry Signal Engine (DeMarker + Stoch RSI)"
signalTimeframe     = input.timeframe("", "Signal Timeframe (เลือก Timeframe สัญญาณ, ค่าว่าง = หน้ากราฟ)", group=grp_signal)

// 2.1 DeMarker Parameters
demPeriod           = input.int(14, "DeMarker Period", group=grp_signal)
demOversold         = input.float(0.3, "DeMarker Oversold Level", step=0.05, group=grp_signal)
demOverbought       = input.float(0.7, "DeMarker Overbought Level", step=0.05, group=grp_signal)

// 2.2 Stochastic RSI Parameters
rsiLength           = input.int(14, "RSI Length", group=grp_signal)
stochLength         = input.int(14, "Stoch Length", group=grp_signal)
smoothK             = input.int(3, "Smooth K", group=grp_signal)
smoothD             = input.int(3, "Smooth D", group=grp_signal)
stochOversold       = input.float(25.0, "Stoch RSI Oversold Zone", group=grp_signal)
stochOverbought     = input.float(75.0, "Stoch RSI Overbought Zone", group=grp_signal)

// =============================================================================
// 3. SIGNAL EXECUTION & ANTI-REPAINT CONFIRMATION
// =============================================================================
grp_exec = "3. Signal Execution & Anti-Repaint"
requireCandleClose  = input.bool(true, "Wait for Candle Close to Confirm (รอจบแท่งเทียน คอนเฟิร์มไม่ Repaint)", group=grp_exec)
minBarsCooldown     = input.int(10, "Min Distance Between Signals (Bars, 0=ปิด)", minval=0, group=grp_exec)

// =============================================================================
// 4. STRUCTURAL & ANTI-SIDEWAY FILTERS
// =============================================================================
grp_struct = "4. Structural & Volume Filters (Anti-Sideway)"
useDonchian         = input.bool(true, "Enable Donchian / Swing Breakout Confirmation", group=grp_struct)
donchianPeriod      = input.int(20, "Donchian Lookback Period (Bars)", minval=2, group=grp_struct)
breakoutByClose     = input.bool(false, "Require Close Breakout (True=Close, False=High/Low)", group=grp_struct)

useVolume           = input.bool(true, "Enable Volume Expansion Filter", group=grp_struct)
volumeMaLen         = input.int(20, "Volume MA Length", minval=1, group=grp_struct)
volumeMult          = input.float(1.2, "Min Volume Multiplier (x MA)", step=0.1, group=grp_struct)

// =============================================================================
// 5. OPTIONAL MATHEMATICAL SIDEWAY FILTERS
// =============================================================================
grp_opt = "5. Optional Math Filters"
useER               = input.bool(false, "Enable Kaufman's Efficiency Ratio (KER)", group=grp_opt)
erPeriod            = input.int(14, "KER Period", group=grp_opt)
minER               = input.float(0.30, "Min Efficiency Ratio", step=0.05, group=grp_opt)

useChop             = input.bool(false, "Enable Choppiness Index (CHOP)", group=grp_opt)
chopLen             = input.int(14, "CHOP Length", group=grp_opt)
maxChop             = input.float(55.0, "Max CHOP Level (Below = Trending)", group=grp_opt)

useBBW              = input.bool(false, "Enable Bollinger Bands Width Filter", group=grp_opt)
bbLength            = input.int(20, "BB Length", group=grp_opt)
bbMult              = input.float(2.0, "BB Multiplier", group=grp_opt)
bbSmaLen            = input.int(50, "BBW Average Period", group=grp_opt)

useEMASpread        = input.bool(false, "Enable EMA Spread % Filter", group=grp_opt)
emaFastLen          = input.int(20, "EMA Fast Length", group=grp_opt)
emaSlowLen          = input.int(50, "EMA Slow Length", group=grp_opt)
minSpreadPct        = input.float(0.15, "Min EMA Spread %", step=0.05, group=grp_opt)

// 5.1 Dashboard
showDashboard       = input.bool(true, "Show Filter Status Dashboard", group="6. Dashboard")

// =============================================================================
// 6. SUPERTREND CALCULATION (NATIVE / MTF WRAPPER)
// =============================================================================
// 6.1 Local Base Calculation
[loc_stVal, loc_stDir] = ta.supertrend(atrMultiplier, atrPeriod)

// 6.2 MTF Supertrend Security (Evaluated cleanly if Timeframe is customized)
calc_st(float mult, int len) =>
    ta.supertrend(mult, len)

[sec_stVal, sec_stDir] = request.security(syminfo.tickerid, stTimeframe == "" ? timeframe.period : stTimeframe, calc_st(atrMultiplier, atrPeriod), gaps=barmerge.gaps_off, lookahead=barmerge.lookahead_off)

stVal = (stTimeframe == "" or stTimeframe == timeframe.period) ? loc_stVal : sec_stVal
stDir = (stTimeframe == "" or stTimeframe == timeframe.period) ? loc_stDir : sec_stDir
isUptrend   = stDir < 0
isDowntrend = stDir > 0

// Trend filter permission logic
trendAllowsBuy  = not useSupertrend or isUptrend
trendAllowsSell = not useSupertrend or isDowntrend

// =============================================================================
// 7. SIGNAL ENGINE (DEMARKER + STOCHASTIC RSI MTF WRAPPER)
// =============================================================================
calcEngine(int dLen, int rLen, int sLen, int sK, int sD, float dOS, float dOB, float sOS, float sOB) =>
    // DeMarker
    _deMax = high > high[1] ? high - high[1] : 0.0
    _deMin = low < low[1] ? low[1] - low : 0.0
    _avgDeMax = ta.sma(_deMax, dLen)
    _avgDeMin = ta.sma(_deMin, dLen)
    _demVal = (_avgDeMax + _avgDeMin) != 0.0 ? _avgDeMax / (_avgDeMax + _avgDeMin) : 0.5

    // Stoch RSI
    _rsiVal = ta.rsi(close, rLen)
    _stochRsi = ta.stoch(_rsiVal, _rsiVal, _rsiVal, sLen)
    _k = ta.sma(_stochRsi, sK)
    _d = ta.sma(_k, sD)

    // Crosses
    _stochCrossBuy  = ta.crossover(_k, _d)
    _stochCrossSell = ta.crossunder(_k, _d)
    _demCrossBuy    = ta.crossover(_demVal, dOS)
    _demCrossSell   = ta.crossunder(_demVal, dOB)

    _stochBuyCond   = _stochCrossBuy and (_k <= sOS or _k[1] <= sOS)
    _demBuyCond     = _demVal <= dOS or _demVal[1] <= dOS or _demCrossBuy
    _buySig         = _stochBuyCond and _demBuyCond

    _stochSellCond  = _stochCrossSell and (_k >= sOB or _k[1] >= sOB)
    _demSellCond    = _demVal >= dOB or _demVal[1] >= dOB or _demCrossSell
    _sellSig        = _stochSellCond and _demSellCond

    [_buySig, _sellSig, _demVal, _k, _d]

// 1. Direct Local Calculation (100% Native Zero-Lag on Chart TF)
[locBuy, locSell, locDem, locK, locD] = calcEngine(demPeriod, rsiLength, stochLength, smoothK, smoothD, demOversold, demOverbought, stochOversold, stochOverbought)

// 2. MTF Security Calculation (Evaluated if custom signal Timeframe is chosen)
[secBuy, secSell, secDem, secK, secD] = request.security(syminfo.tickerid, signalTimeframe == "" ? timeframe.period : signalTimeframe, calcEngine(demPeriod, rsiLength, stochLength, smoothK, smoothD, demOversold, demOverbought, stochOversold, stochOverbought), gaps=barmerge.gaps_off, lookahead=barmerge.lookahead_off)

bool isCustomSignalTF = (signalTimeframe != "" and signalTimeframe != timeframe.period)
rawBuySignal  = isCustomSignalTF ? secBuy : locBuy
rawSellSignal = isCustomSignalTF ? secSell : locSell
demValue      = isCustomSignalTF ? secDem : locDem
k             = isCustomSignalTF ? secK   : locK
d             = isCustomSignalTF ? secD   : locD

// =============================================================================
// 8. ANTI-SIDEWAY & STRUCTURAL FILTER CALCULATIONS
// =============================================================================
// 8.1 Donchian / Swing High-Low Breakout
donchianHigh = ta.highest(high[1], donchianPeriod)
donchianLow  = ta.lowest(low[1], donchianPeriod)

passDonchian_Buy  = not useDonchian or (breakoutByClose ? (close >= donchianHigh) : (high >= donchianHigh))
passDonchian_Sell = not useDonchian or (breakoutByClose ? (close <= donchianLow)  : (low <= donchianLow))

// 8.2 Volume Expansion / RVOL
hasVolume    = not na(volume) and volume > 0
volMa        = ta.sma(volume, volumeMaLen)
volThreshold = volMa * volumeMult
passVolume   = not useVolume or not hasVolume or (volume >= volThreshold)

// 8.3 Kaufman's Efficiency Ratio
changeNet = math.abs(close - close[erPeriod])
sumDiffs  = math.sum(math.abs(close - close[1]), erPeriod)
effRatio  = sumDiffs != 0.0 ? (changeNet / sumDiffs) : 0.0
passER    = not useER or (effRatio >= minER)

// 8.4 Choppiness Index
hhChop    = ta.highest(high, chopLen)
llChop    = ta.lowest(low, chopLen)
rangeChop = hhChop - llChop
sumAtr1   = math.sum(ta.atr(1), chopLen)
chopVal   = (rangeChop > 0.0 and sumAtr1 > 0.0) ? 100.0 * (math.log10(sumAtr1 / rangeChop) / math.log10(chopLen)) : 50.0
passChop  = not useChop or (chopVal <= maxChop)

// 8.5 Bollinger Bands Width
[bbBasis, bbUpper, bbLower] = ta.bb(close, bbLength, bbMult)
bbWidth   = bbBasis != 0.0 ? ((bbUpper - bbLower) / bbBasis) * 100.0 : 0.0
bbWidthAvg= ta.sma(bbWidth, bbSmaLen)
passBBW   = not useBBW or (bbWidth >= bbWidthAvg)

// 8.6 EMA Spread
emaFast   = ta.ema(close, emaFastLen)
emaSlow   = ta.ema(close, emaSlowLen)
emaSpread = close != 0.0 ? (math.abs(emaFast - emaSlow) / close) * 100.0 : 0.0
passEMA   = not useEMASpread or (emaSpread >= minSpreadPct)

// Combine All Filter Validations
allFiltersPass_Buy  = passDonchian_Buy and passVolume and passER and passChop and passBBW and passEMA
allFiltersPass_Sell = passDonchian_Sell and passVolume and passER and passChop and passBBW and passEMA

// =============================================================================
// 9. FINAL SIGNAL EXECUTION & COOLDOWN (ANTI-REPAINT CONFIRMED)
// =============================================================================
// Anti-Repaint Guard:
// If requireCandleClose is enabled, only execute and lock signals on confirmed closed bars
bool isBarConfirmed = not requireCandleClose or not barstate.isrealtime or barstate.isconfirmed

rawBuyCondition  = rawBuySignal and trendAllowsBuy and allFiltersPass_Buy
rawSellCondition = rawSellSignal and trendAllowsSell and allFiltersPass_Sell

var int lastSignalBar = -100
barsSinceLast = bar_index - lastSignalBar

validBuy  = rawBuyCondition and isBarConfirmed and (minBarsCooldown <= 0 or barsSinceLast >= minBarsCooldown)
validSell = rawSellCondition and isBarConfirmed and (minBarsCooldown <= 0 or barsSinceLast >= minBarsCooldown)

if validBuy or validSell
    lastSignalBar := bar_index

// =============================================================================
// 10. PLOTTING & ALERTS
// =============================================================================
// 10.1 Supertrend Line
plot(useSupertrend and isUptrend ? stVal : na, "Supertrend Uptrend", color=color.new(color.green, 0), linewidth=2, style=plot.style_linebr)
plot(useSupertrend and isDowntrend ? stVal : na, "Supertrend Downtrend", color=color.new(color.red, 0), linewidth=2, style=plot.style_linebr)

// 10.2 Donchian Breakout Reference Levels
plot(useDonchian ? donchianHigh : na, "Donchian High (Resistance)", color=color.new(color.teal, 60), style=plot.style_stepline)
plot(useDonchian ? donchianLow : na, "Donchian Low (Support)", color=color.new(color.maroon, 60), style=plot.style_stepline)

// 10.3 Buy / Sell Signals
plotshape(validBuy, title="BUY Signal", style=shape.triangleup, location=location.belowbar, color=color.green, size=size.small, text="BUY", textcolor=color.white)
plotshape(validSell, title="SELL Signal", style=shape.triangledown, location=location.abovebar, color=color.red, size=size.small, text="SELL", textcolor=color.white)

// 10.4 Alert Conditions (Confirmed on Bar Close)
alertcondition(validBuy, title="Buy Signal Alert (Confirmed)", message="[BUY] Confirmed Supertrend + DeM + StochRSI trigger on {{ticker}} at {{close}}")
alertcondition(validSell, title="Sell Signal Alert (Confirmed)", message="[SELL] Confirmed Supertrend + DeM + StochRSI trigger on {{ticker}} at {{close}}")

// =============================================================================
// 11. REAL-TIME FILTER DASHBOARD
// =============================================================================
var table infoTable = table.new(position.top_right, 3, 10, bgcolor=color.new(color.black, 20), border_width=1, border_color=color.gray)

if barstate.islast and showDashboard
    table.cell(infoTable, 0, 0, "Filter Name", bgcolor=color.navy, text_color=color.white, text_size=size.small)
    table.cell(infoTable, 1, 0, "Status", bgcolor=color.navy, text_color=color.white, text_size=size.small)
    table.cell(infoTable, 2, 0, "Current Value", bgcolor=color.navy, text_color=color.white, text_size=size.small)

    // 1. Supertrend Status
    table.cell(infoTable, 0, 1, "Supertrend (" + (stTimeframe == "" ? "Chart" : stTimeframe) + ")", text_color=color.white, text_size=size.small)
    table.cell(infoTable, 1, 1, useSupertrend ? (isUptrend ? "BULLISH" : "BEARISH") : "OFF", bgcolor=useSupertrend ? (isUptrend ? color.green : color.red) : color.gray, text_color=color.white, text_size=size.small)
    table.cell(infoTable, 2, 1, str.tostring(stVal, "#.##"), text_color=color.white, text_size=size.small)

    // 2. Signal Engine TF
    table.cell(infoTable, 0, 2, "Signal Timeframe", text_color=color.white, text_size=size.small)
    table.cell(infoTable, 1, 2, signalTimeframe == "" ? "Chart TF" : signalTimeframe, bgcolor=color.teal, text_color=color.white, text_size=size.small)
    table.cell(infoTable, 2, 2, "DeM + StochRSI", text_color=color.white, text_size=size.small)

    // 3. Confirmation Mode
    table.cell(infoTable, 0, 3, "Anti-Repaint Guard", text_color=color.white, text_size=size.small)
    table.cell(infoTable, 1, 3, requireCandleClose ? "CANDLE CLOSE" : "INTRABAR", bgcolor=requireCandleClose ? color.green : color.orange, text_color=color.white, text_size=size.small)
    table.cell(infoTable, 2, 3, requireCandleClose ? "Confirmed (No Repaint)" : "Realtime Ticks", text_color=color.white, text_size=size.small)

    // 4. Donchian Breakout
    bool donchianPassCurr = (isUptrend and passDonchian_Buy) or (isDowntrend and passDonchian_Sell)
    table.cell(infoTable, 0, 4, "Donchian Break", text_color=color.white, text_size=size.small)
    table.cell(infoTable, 1, 4, useDonchian ? (donchianPassCurr ? "PASS" : "BLOCKED") : "OFF", bgcolor=useDonchian ? (donchianPassCurr ? color.green : color.red) : color.gray, text_color=color.white, text_size=size.small)
    table.cell(infoTable, 2, 4, isUptrend ? ("H: " + str.tostring(donchianHigh, "#.##")) : ("L: " + str.tostring(donchianLow, "#.##")), text_color=color.white, text_size=size.small)

    // 5. Volume RVOL
    table.cell(infoTable, 0, 5, "Volume (RVOL)", text_color=color.white, text_size=size.small)
    table.cell(infoTable, 1, 5, useVolume ? (passVolume ? "PASS" : "LOW VOL") : "OFF", bgcolor=useVolume ? (passVolume ? color.green : color.red) : color.gray, text_color=color.white, text_size=size.small)
    table.cell(infoTable, 2, 5, hasVolume ? (str.tostring(volume, "#") + " / " + str.tostring(volThreshold, "#")) : "No Vol Data", text_color=color.white, text_size=size.small)

    // 6. Kaufman ER
    table.cell(infoTable, 0, 6, "Kaufman ER", text_color=color.white, text_size=size.small)
    table.cell(infoTable, 1, 6, useER ? (passER ? "PASS" : "BLOCKED") : "OFF", bgcolor=useER ? (passER ? color.green : color.red) : color.gray, text_color=color.white, text_size=size.small)
    table.cell(infoTable, 2, 6, str.tostring(effRatio, "#.##") + " / " + str.tostring(minER, "#.##"), text_color=color.white, text_size=size.small)

    // 7. Choppiness Index
    table.cell(infoTable, 0, 7, "Chop Index", text_color=color.white, text_size=size.small)
    table.cell(infoTable, 1, 7, useChop ? (passChop ? "PASS" : "BLOCKED") : "OFF", bgcolor=useChop ? (passChop ? color.green : color.red) : color.gray, text_color=color.white, text_size=size.small)
    table.cell(infoTable, 2, 7, str.tostring(chopVal, "#.#") + " / " + str.tostring(maxChop, "#.#"), text_color=color.white, text_size=size.small)

    // 8. BB Width
    table.cell(infoTable, 0, 8, "BB Width", text_color=color.white, text_size=size.small)
    table.cell(infoTable, 1, 8, useBBW ? (passBBW ? "PASS" : "BLOCKED") : "OFF", bgcolor=useBBW ? (passBBW ? color.green : color.red) : color.gray, text_color=color.white, text_size=size.small)
    table.cell(infoTable, 2, 8, str.tostring(bbWidth, "#.##") + " (Avg " + str.tostring(bbWidthAvg, "#.##") + ")", text_color=color.white, text_size=size.small)

    // 9. Signal Cooldown
    table.cell(infoTable, 0, 9, "Signal Cooldown", text_color=color.white, text_size=size.small)
    table.cell(infoTable, 1, 9, (minBarsCooldown <= 0 or barsSinceLast >= minBarsCooldown) ? "READY" : "WAIT", bgcolor=(minBarsCooldown <= 0 or barsSinceLast >= minBarsCooldown) ? color.teal : color.orange, text_color=color.white, text_size=size.small)
    table.cell(infoTable, 2, 9, str.tostring(barsSinceLast) + " / " + str.tostring(minBarsCooldown) + " bars", text_color=color.white, text_size=size.small)

Overview

Zerith - Supertrend + DeMarker + Stoch RSI Multi-TF Signal plots buy/sell arrows and trend labels directly on the price chart. Additional filters include Donchian channel breakouts, volume expansion confirmation, and anti-repaint candle close requirements. Settings adjust Supertrend ATR period and multiplier, DeMarker and Stoch RSI parameters, cooldown periods, and structural checks like Bollinger width or choppiness index.

Details

Published by

BlamzKunG on GitHub

Type

Indicator, Pine Script v6

Draws

On the price chart

Category

Trend, Oscillators & momentum, Moving averages, Volatility & bands

Markets

Any symbol

Timeframes

Any timeframe

Risk Notes

No repainting, lookahead or stacked entries were found in its code or README. That says nothing about how well it works: test it first.

Settings

The inputs you can change from the gear icon on the chart. Defaults are the author's.

SettingTypeDefaultVariable
Enable Supertrend Filter (เปิด/ปิด กรองเทรนด์)booltrueuseSupertrend
Supertrend Timeframe (ค่าว่าง = ตามหน้ากราฟ)timeframestTimeframe
Supertrend ATR Periodint10atrPeriod
Supertrend Multiplierfloat3.0atrMultiplier
Signal Timeframe (เลือก Timeframe สัญญาณ, ค่าว่าง = หน้ากราฟ)timeframesignalTimeframe
DeMarker Periodint14demPeriod
DeMarker Oversold Levelfloat0.3demOversold
DeMarker Overbought Levelfloat0.7demOverbought
RSI Lengthint14rsiLength
Stoch Lengthint14stochLength
Smooth Kint3smoothK
Smooth Dint3smoothD
Show all 37 settings
SettingTypeDefaultVariable
Stoch RSI Oversold Zonefloat25.0stochOversold
Stoch RSI Overbought Zonefloat75.0stochOverbought
Wait for Candle Close to Confirm (รอจบแท่งเทียน คอนเฟิร์มไม่ Repaint)booltruerequireCandleClose
Min Distance Between Signals (Bars, 0=ปิด)int10minBarsCooldown
Enable Donchian / Swing Breakout ConfirmationbooltrueuseDonchian
Donchian Lookback Period (Bars)int20donchianPeriod
Require Close Breakout (True=Close, False=High/Low)boolfalsebreakoutByClose
Enable Volume Expansion FilterbooltrueuseVolume
Volume MA Lengthint20volumeMaLen
Min Volume Multiplier (x MA)float1.2volumeMult
Enable Kaufman's Efficiency Ratio (KER)boolfalseuseER
KER Periodint14erPeriod
Min Efficiency Ratiofloat0.30minER
Enable Choppiness Index (CHOP)boolfalseuseChop
CHOP Lengthint14chopLen
Max CHOP Level (Below = Trending)float55.0maxChop
Enable Bollinger Bands Width FilterboolfalseuseBBW
BB Lengthint20bbLength
BB Multiplierfloat2.0bbMult
BBW Average Periodint50bbSmaLen
Enable EMA Spread % FilterboolfalseuseEMASpread
EMA Fast Lengthint20emaFastLen
EMA Slow Lengthint50emaSlowLen
Min EMA Spread %float0.15minSpreadPct
Show Filter Status DashboardbooltrueshowDashboard
Third-party code. ForexR did not write, test or endorse this script, and the summary above was generated automatically from its code and README. Indicators describe the past, and a strategy's backtest can look better than live trading, especially when a script repaints. Check it in the Strategy Tester and on a demo account before you rely on it.

Similar Pine Scripts

114 stars

ADX Strategy (original) is an overlay indicator that identifies trend-following trade signals using the Average Directional Index (ADX) combined with a Simple Moving Average filter. A long signal is generated when the ADX rises above a user-defined trend level

Indicator v4 TrendOscillators & momentum
Updated 1 year ago · None stated GitHub repository of ADX Strategy (original)
56 stars

Double Screened Decision is a multi-timeframe trend and momentum indicator overlaid directly on the price chart. It dynamically selects a higher timeframe based on the active chart resolution to evaluate higher-timeframe MACD, Bollinger Bands, RSI, and Stochas

Indicator v5 TrendMoving averages Repaints
Updated 4 months ago · None stated GitHub repository of Double Screened Decision
24 stars

This indicator plots Bollinger Bands on the price chart alongside a baseline moving average to identify trend-aligned swing setups. It calculates trend bias by comparing the Bollinger Bands basis to a customizable moving average, such as a 200 EMA. Trade signa

Indicator v5 Volatility & bandsOscillators & momentum
Updated 4 years ago · MPL-2.0 GitHub repository of Bollinger Band Swing

Index Intraday Analyst

by chris-c-thomas
14 stars

Index Intraday Analyst overlays CBOE cash indices such as SPX, NDX, RUT, and DJX. It plots a multi-EMA ribbon, a session-anchored TWAP with standard-deviation bands, and session levels such as prior-day high, low, and close, the opening range, and the high and

Indicator v6 TrendOscillators & momentum
Updated 6 months ago · MIT GitHub repository of Index Intraday Analyst

RePaNoCHa V4

by wocclyl
9 stars

RePaNoCHa V4 is an overlay alert indicator that plots a Tillson T3 moving average on the price chart and colors it by whether the line is rising or falling. It combines that slope with a range filter, ADX, parabolic SAR, RSI, and MACD to mark long and short si

Indicator v4 TrendOscillators & momentum
Updated 7 years ago · MIT GitHub repository of RePaNoCHa V4

More indicators

Trade Your Charts With a Regulated Broker

Compare brokers that connect to TradingView, with spreads, minimum deposits and leverage side by side.

Compare brokers