Trend Fib Zone Bounce (TFZB) [KedArc Quant]Description:
Trend Fib Zone Bounce (TFZB) trades with the latest confirmed Supply/Demand zone using a single, configurable Fib pullback (0.3/0.5/0.6). Trade only in the direction of the most recent zone and use a single, configurable fib level for pullback entries.
• Detects market structure via confirmed swing highs/lows using a rolling window.
• Draws Supply/Demand zones (bearish/bullish rectangles) from the latest MSS (CHOCH or BOS) event.
• Computes intra zone Fib guide rails and keeps them extended in real time.
• Triggers BUY only inside bullish zones and SELL only inside bearish zones when price touches the selected fib and closes back beyond it (bounce confirmation).
• Optional labels print BULL/BEAR + fib next to the triangle markers.
What it does
Finds structure using confirmed swing highs/lows (you choose the confirmation length).
Builds the latest zone (bullish = demand, bearish = supply) after a CHOCH/BOS event.
Draws intra-zone “guide rails” (Fib lines) and extends them live.
Signals only with the trend of that zone:
BUY inside a bullish zone when price tags the selected Fib and closes back above it.
SELL inside a bearish zone when price tags the selected Fib and closes back below it.
Optional labels print BULL/BEAR + Fib next to triangles for quick context
Why this is different
Most “zone + fib + signal” tools bolt together several indicators, or fire counter-trend signals because they don’t fully respect structure. TFZB is intentionally minimal:
Single bias source: the latest confirmed zone defines direction; nothing else overrides it.
Single entry rule: one Fib bounce (0.3/0.5/0.6 selectable) inside that zone—no counter-trend trades by design.
Clean visuals: you can show only the most recent zone, clamp overlap, and keep just the rails that matter.
Deterministic & transparent: every plot/label comes from the code you see—no external series or hidden smoothing
How it helps traders
Cuts decision noise: you always know the bias and the only entry that matters right now.
Forces discipline: if price isn’t inside the active zone, you don’t trade.
Adapts to volatility: pick 0.3 in strong trends, 0.5 as the default, 0.6 in chop.
Non-repainting zones: swings are confirmed after Structure Length bars, then used to build zones that extend forward (they don’t “teleport” later)
How it works (details)
*Structure confirmation
A swing high/low is only confirmed after Structure Length bars have elapsed; the dot is plotted back on the original bar using offset. Expect a confirmation delay of about Structure Length × timeframe.
*Zone creation
After a CHOCH/BOS (momentum shift / break of prior swing), TFZB draws the new Supply/Demand zone from the swing anchors and sets it active.
*Fib guide rails
Inside the active zone TFZB projects up to five Fib lines (defaults: 0.3 / 0.5 / 0.7) and extends them as time passes.
*Entry logic (with-trend only)
BUY: bar’s low ≤ fib and close > fib inside a bullish zone.
SELL: bar’s high ≥ fib and close < fib inside a bearish zone.
*Optionally restrict to one signal per zone to avoid over-trading.
(Optional) Aggressive confirm-bar entry
When do the swing dots print?
* The code confirms a swing only after `structureLen` bars have elapsed since that candidate high/low.
* On a 5-min chart with `structureLen = 10`, that’s about 50 minutes later.
* When the swing confirms, the script plots the dot back on the original bar (via `offset = -structureLen`). So you *see* the dot on the old bar, but it only appears on the chart once the confirming bar arrives.
> Practical takeaway: expect swing markers to appear roughly `structureLen × timeframe` later. Zones and signals are built from those confirmed swings.
Best timeframe for this Indicator
Use the timeframe that matches your holding period and the noise level of the instrument:
* Intraday :
* 5m or 15m are the sweet spots.
* Suggested `structureLen`:
* 5m: 10–14 (confirmation delay \~50–70 min)
* 15m: 8–10 (confirmation delay \~2–2.5 hours)
* Keep Entry Fib at 0.5 to start; try 0.3 in strong trends, 0.6 in chop.
* Tip: avoid the first 10–15 minutes after the open; let the initial volatility set the early structure.
* Swing/overnight:
* 1h or 4h.
* `structureLen`:
* 1h: 6–10 (6–10 hours confirmation)
* 4h: 5–8 (20–32 hours confirmation)
* 1m scalping: not recommended here—the confirmation lag relative to the noise makes zones less reliable.
Inputs (all groups)
Structure
• Show Swing Points (structureTog)
o Plots small dots on the bar where a swing point is confirmed (offset back by Structure Length).
• Structure Length (structureLen)
o Lookback used to confirm swing highs/lows and determine local structure. Higher = fewer, stronger swings; lower = more reactive.
Zones
• Show Last (zoneDispNum)
o Maximum number of zones kept on the chart when Display All Zones is off.
• Display All Zones (dispAll)
o If on, ignores Show Last and keeps all zones/levels.
• Zone Display (zoneFilter): Bullish Only / Bearish Only / Both
o Filters which zone types are drawn and eligible for signals.
• Clean Up Level Overlap (noOverlap)
o Prevents fib lines from overlapping when a new zone starts near the previous one (clamps line start/end times for readability).
Fib Levels
Each row controls whether a fib is drawn and how it looks:
• Toggle (f1Tog…f5Tog): Show/hide a given fib line.
• Level (f1Lvl…f5Lvl): Numeric ratio in . Defaults active: 0.3, 0.5, 0.7 (0 and 1 off by default).
• Line Style (f1Style…f5Style): Solid / Dashed / Dotted.
• Bull/Bear Colors (f#BullColor, f#BearColor): Per-fib color in bullish vs bearish zones.
Style
• Structure Color: Dot color for confirmed swing points.
• Bullish Zone Color / Bearish Zone Color: Rectangle fills (transparent by default).
Signals
• Entry Fib for Signals (entryFibSel): Choose 0.3, 0.5 (default), or 0.6 as the trigger line.
• Show Buy/Sell Signals (showSignals): Toggles triangle markers on/off.
• One Signal Per Zone (oneSignalPerZone): If on, suppresses additional entries within the same zone after the first trigger.
• Show Signal Text Labels (Bull/Bear + Fib) (showSignalLabels): Adds a small label next to each triangle showing zone bias and the fib used (e.g., BULL 0.5 or BEAR 0.3).
How TFZB decides signals
With trend only:
• BUY
1. Latest active zone is bullish.
2. Current bar’s close is inside the zone (between top and bottom).
3. The bar’s low ≤ selected fib and it closes > selected fib (bounce).
• SELL
1. Latest active zone is bearish.
2. Current bar’s close is inside the zone.
3. The bar’s high ≥ selected fib and it closes < selected fib.
Markers & labels
• BUY: triangle up below the bar; optional label “BULL 0.x” above it.
• SELL: triangle down above the bar; optional label “BEAR 0.x” below it.
Right-Panel Swing Log (Table)
What it is
A compact, auto-updating log of the most recent Swing High/Low events, printed in the top-right of the chart.
It helps you see when a pivot formed, when it was confirmed, and at what price—so you know the earliest bar a zone-based signal could have appeared.
Columns
Type – Swing High or Swing Low.
Date – Calendar date of the swing bar (follows the chart’s timezone).
Swing @ – Time of the original swing bar (where the dot is drawn).
Confirm @ – Time of the bar that confirmed that swing (≈ Structure Length × timeframe after the swing). This is also the earliest moment a new zone/entry can be considered.
Price – The swing price (high for SH, low for SL).
Why it’s useful
Clarity on repaint/confirmation: shows the natural delay between a swing forming and being usable—no guessing.
Planning & journaling: quick reference of today’s pivots and prices for notes/backtesting.
Scanning intraday: glance to see if you already have a confirmed zone (and therefore valid fib-bounce entries), or if you’re still waiting.
Context for signals: if a fib-bounce triangle appears before the time listed in Confirm @, it’s not a valid trade (you were too early).
Settings (Inputs → Logging)
Log swing times / Show table – turn the table on/off.
Rows to keep – how many recent entries to display.
Show labels on swing bar – optional tags on the chart (“Swing High 11:45”, “Confirm SH 14:15”) that match the table.
Recommended defaults
• Structure Length: 10–20 for intraday; 20–40 for swing.
• Entry Fib for Signals: 0.5 to start; try 0.3 in stronger trends and 0.6 in choppier markets.
• One Signal Per Zone: ON (prevents over trading).
• Zone Display: Both.
• Fib Lines: Keep 0.3/0.5/0.7 on; turn on 0 and 1 only if you need anchors.
Alerts
Two alert conditions are available:
• BUY signal – fires when a with trend bullish bounce at the selected fib occurs inside a bullish zone.
• SELL signal – fires when a with trend bearish bounce at the selected fib occurs inside a bearish zone.
Create alerts from the chart’s Alerts panel and select the desired condition. Use Once Per Bar Close to avoid intrabar flicker.
Notes & tips
• Swing dots are confirmed only after Structure Length bars, so they plot back in time; zones built from these confirmed swings do not repaint (though they extend as new bars form).
• If you don’t see a BUY where you expect one, check: (1) Is the active zone bullish? (2) Did the candle’s low actually pierce the selected fib and close above it? (3) Is One Signal Per Zone suppressing a second entry?
• You can hide visual clutter by reducing Show Last to 1–3 while keeping Display All Zones off.
Glossary
• CHOCH (Change of Character): A shift where price breaks beyond the last opposite swing while local momentum flips.
• BOS (Break of Structure): A cleaner break beyond the prior swing level in the current momentum direction.
• MSS: Either CHOCH or BOS – any event that spawns a new zone.
Extension ideas (optional)
• Add fib extensions (1.272 / 1.618) for target lines.
• Zone quality score using ATR normalization to filter weak impulses.
• HTF filter to only accept zones aligned with a higher timeframe trend.
⚠️ Disclaimer This script is provided for educational purposes only.
Past performance does not guarantee future results.
Trading involves risk, and users should exercise caution and use proper risk management when applying this strategy.
Search in scripts for "bear"
RSI WMA VWMA Divergence Indicator// This Pine Script® code is subject to the terms of the Mozilla Public License 2.0 at mozilla.org
// © Kenndjk
//@version=6
indicator(title="RSI WMA VWMA Divergence Indicator", shorttitle="Kenndjk", format=format.price, precision=2)
oscType = input.string("RSI", "Oscillator Type", options = , group="General Settings")
// RSI Settings
rsiGroup = "RSI Settings"
rsiLengthInput = input.int(14, minval=1, title="RSI Length", group=rsiGroup)
rsiSourceInput = input.source(close, "Source", group=rsiGroup)
// WMA VWMA
wmaLength = input.int(9, "WMA Length", minval=1, group="WMA Settings")
vwmaLength = input.int(3, "VWMA Length", minval=1, group="WMA Settings")
wma = ta.wma(close, wmaLength)
vwma = ta.vwma(close, vwmaLength)
useVWMA = input.bool(true, "Use VWMA for Divergence (when WMA + VWMA mode)", group="WMA Settings")
// Oscillator selection
rsi = ta.rsi(rsiSourceInput, rsiLengthInput) // Calculate RSI always, but use conditionally
osc = oscType == "RSI" ? rsi : useVWMA ? vwma : wma
// RSI plots (conditional)
isRSI = oscType == "RSI"
rsiPlot = plot(isRSI ? rsi : na, "RSI", color=isRSI ? #7E57C2 : na)
rsiUpperBand = hline(isRSI ? 70 : na, "RSI Upper Band", color=isRSI ? #787B86 : na)
midline = hline(isRSI ? 50 : na, "RSI Middle Band", color=isRSI ? color.new(#787B86, 50) : na)
rsiLowerBand = hline(isRSI ? 30 : na, "RSI Lower Band", color=isRSI ? #787B86 : na)
fill(rsiUpperBand, rsiLowerBand, color=isRSI ? color.rgb(126, 87, 194, 90) : na, title="RSI Background Fill")
midLinePlot = plot(isRSI ? 50 : na, color = na, editable = false, display = display.none)
fill(rsiPlot, midLinePlot, 100, 70, top_color = isRSI ? color.new(color.green, 0) : na, bottom_color = isRSI ? color.new(color.green, 100) : na, title = "Overbought Gradient Fill")
fill(rsiPlot, midLinePlot, 30, 0, top_color = isRSI ? color.new(color.red, 100) : na, bottom_color = isRSI ? color.new(color.red, 0) : na, title = "Oversold Gradient Fill")
// WMA VWMA plots
wmaColor = oscType != "RSI" ? (useVWMA ? color.new(color.blue, 70) : color.blue) : na
wmaWidth = useVWMA ? 1 : 2
vwmaColor = oscType != "RSI" ? (useVWMA ? color.orange : color.new(color.orange, 70)) : na
vwmaWidth = useVWMA ? 2 : 1
plot(oscType != "RSI" ? wma : na, "WMA", color=wmaColor, linewidth=wmaWidth)
plot(oscType != "RSI" ? vwma : na, "VWMA", color=vwmaColor, linewidth=vwmaWidth)
// Smoothing MA inputs (only for RSI)
GRP = "Smoothing (RSI only)"
TT_BB = "Only applies when 'Show Bollinger Bands' is selected. Determines the distance between the SMA and the bands."
maLengthSMA = input.int(14, "SMA Length", minval=1, group=GRP, display=display.data_window)
maLengthEMA = input.int(14, "EMA Length", minval=1, group=GRP, display=display.data_window)
maLengthRMA = input.int(14, "SMMA (RMA) Length", minval=1, group=GRP, display=display.data_window)
maLengthWMA = input.int(14, "WMA Length", minval=1, group=GRP, display=display.data_window)
maLengthVWMA = input.int(14, "VWMA Length", minval=1, group=GRP, display=display.data_window)
bbMultInput = input.float(2.0, "BB StdDev", minval=0.001, maxval=50, step=0.5, tooltip=TT_BB, group=GRP, display=display.data_window)
showSMA = input.bool(false, "Show SMA", group=GRP)
showEMA = input.bool(false, "Show EMA", group=GRP)
showRMA = input.bool(false, "Show SMMA (RMA)", group=GRP)
showWMAsmooth = input.bool(false, "Show WMA", group=GRP)
showVWMAsmooth = input.bool(false, "Show VWMA", group=GRP)
showBB = input.bool(false, "Show SMA + Bollinger Bands", group=GRP, tooltip=TT_BB)
// Smoothing MA Calculations
sma_val = (showSMA or showBB) and isRSI ? ta.sma(rsi, maLengthSMA) : na
ema_val = showEMA and isRSI ? ta.ema(rsi, maLengthEMA) : na
rma_val = showRMA and isRSI ? ta.rma(rsi, maLengthRMA) : na
wma_val = showWMAsmooth and isRSI ? ta.wma(rsi, maLengthWMA) : na
vwma_val = showVWMAsmooth and isRSI ? ta.vwma(rsi, maLengthVWMA) : na
smoothingStDev = showBB and isRSI ? ta.stdev(rsi, maLengthSMA) * bbMultInput : na
// Smoothing MA plots
plot(sma_val, "RSI-based SMA", color=(showSMA or showBB) ? color.yellow : na, display=(showSMA or showBB) ? display.all : display.none, editable=(showSMA or showBB))
plot(ema_val, "RSI-based EMA", color=showEMA ? color.purple : na, display=showEMA ? display.all : display.none, editable=showEMA)
plot(rma_val, "RSI-based RMA", color=showRMA ? color.red : na, display=showRMA ? display.all : display.none, editable=showRMA)
plot(wma_val, "RSI-based WMA", color=showWMAsmooth ? color.blue : na, display=showWMAsmooth ? display.all : display.none, editable=showWMAsmooth)
plot(vwma_val, "RSI-based VWMA", color=showVWMAsmooth ? color.orange : na, display=showVWMAsmooth ? display.all : display.none, editable=showVWMAsmooth)
bbUpperBand = plot(showBB ? sma_val + smoothingStDev : na, title="Upper Bollinger Band", color=showBB ? color.green : na, display=showBB ? display.all : display.none, editable=showBB)
bbLowerBand = plot(showBB ? sma_val - smoothingStDev : na, title="Lower Bollinger Band", color=showBB ? color.green : na, display=showBB ? display.all : display.none, editable=showBB)
fill(bbUpperBand, bbLowerBand, color=showBB ? color.new(color.green, 90) : na, title="Bollinger Bands Background Fill", display=showBB ? display.all : display.none, editable=showBB)
// Divergence Settings
divGroup = "Divergence Settings"
calculateDivergence = input.bool(true, title="Calculate Divergence", group=divGroup, tooltip = "Calculating divergences is needed in order for divergence alerts to fire.")
lookbackLeft = input.int(5, "Pivot Lookback Left", minval=1, group=divGroup)
lookbackRight = input.int(5, "Pivot Lookback Right", minval=1, group=divGroup)
rangeLower = input.int(5, "Min Range for Divergence", minval=0, group=divGroup)
rangeUpper = input.int(60, "Max Range for Divergence", minval=1, group=divGroup)
showHidden = input.bool(true, "Show Hidden Divergences", group=divGroup)
bearColor = color.red
bullColor = color.green
textColor = color.white
noneColor = color.new(color.white, 100)
_inRange(cond) =>
bars = ta.barssince(cond)
rangeLower <= bars and bars <= rangeUpper
bool plFound = false
bool phFound = false
bool bullCond = false
bool bearCond = false
bool hiddenBullCond = false
bool hiddenBearCond = false
float oscLBR = na
float lowLBR = na
float highLBR = na
float prevPlOsc = na
float prevPlLow = na
float prevPhOsc = na
float prevPhHigh = na
if calculateDivergence
plFound := not na(ta.pivotlow(osc, lookbackLeft, lookbackRight))
phFound := not na(ta.pivothigh(osc, lookbackLeft, lookbackRight))
oscLBR := osc
lowLBR := low
highLBR := high
prevPlOsc := ta.valuewhen(plFound, oscLBR, 1)
prevPlLow := ta.valuewhen(plFound, lowLBR, 1)
prevPhOsc := ta.valuewhen(phFound, oscLBR, 1)
prevPhHigh := ta.valuewhen(phFound, highLBR, 1)
// Regular Bullish
oscHL = oscLBR > prevPlOsc and _inRange(plFound )
priceLL = lowLBR < prevPlLow
bullCond := priceLL and oscHL and plFound
// Regular Bearish
oscLL = oscLBR < prevPhOsc and _inRange(phFound )
priceHH = highLBR > prevPhHigh
bearCond := priceHH and oscLL and phFound
// Hidden Bullish
oscLL_hidden = oscLBR < prevPlOsc and _inRange(plFound )
priceHL = lowLBR > prevPlLow
hiddenBullCond := priceHL and oscLL_hidden and plFound and showHidden
// Hidden Bearish
oscHH_hidden = oscLBR > prevPhOsc and _inRange(phFound )
priceLH = highLBR < prevPhHigh
hiddenBearCond := priceLH and oscHH_hidden and phFound and showHidden
// Plot divergences (lines and labels on pane)
if bullCond
leftBar = ta.valuewhen(plFound, bar_index , 1)
line.new(leftBar, prevPlOsc, bar_index , oscLBR, xloc=xloc.bar_index, color=bullColor, width=2)
label.new(bar_index , oscLBR, "R Bull", style=label.style_label_up, color=noneColor, textcolor=textColor)
if bearCond
leftBar = ta.valuewhen(phFound, bar_index , 1)
line.new(leftBar, prevPhOsc, bar_index , oscLBR, xloc=xloc.bar_index, color=bearColor, width=2)
label.new(bar_index , oscLBR, "R Bear", style=label.style_label_down, color=noneColor, textcolor=textColor)
if hiddenBullCond
leftBar = ta.valuewhen(plFound, bar_index , 1)
line.new(leftBar, prevPlOsc, bar_index , oscLBR, xloc=xloc.bar_index, color=bullColor, width=2, style=line.style_dashed)
label.new(bar_index , oscLBR, "H Bull", style=label.style_label_up, color=noneColor, textcolor=textColor)
if hiddenBearCond
leftBar = ta.valuewhen(phFound, bar_index , 1)
line.new(leftBar, prevPhOsc, bar_index , oscLBR, xloc=xloc.bar_index, color=bearColor, width=2, style=line.style_dashed)
label.new(bar_index , oscLBR, "H Bear", style=label.style_label_down, color=noneColor, textcolor=textColor)
// Alert conditions
alertcondition(bullCond, title="Regular Bullish Divergence", message="Found a new Regular Bullish Divergence, Pivot Lookback Right number of bars to the left of the current bar.")
alertcondition(bearCond, title="Regular Bearish Divergence", message="Found a new Regular Bearish Divergence, Pivot Lookback Right number of bars to the left of the current bar.")
alertcondition(hiddenBullCond, title="Hidden Bullish Divergence", message="Found a new Hidden Bullish Divergence, Pivot Lookback Right number of bars to the left of the current bar.")
alertcondition(hiddenBearCond, title="Hidden Bearish Divergence", message="Found a new Hidden Bearish Divergence, Pivot Lookback Right number of bars to the left of the current bar.")
RSI WMA VWMA Divergence Indicator//@version=6
indicator(title="RSI WMA VWMA Divergence Indicator", shorttitle="Osc Div", format=format.price, precision=2)
oscType = input.string("RSI", "Oscillator Type", options = , group="General Settings")
// RSI Settings
rsiGroup = "RSI Settings"
rsiLengthInput = input.int(14, minval=1, title="RSI Length", group=rsiGroup)
rsiSourceInput = input.source(close, "Source", group=rsiGroup)
// WMA VWMA
wma9 = ta.wma(close, 9)
vwma3 = ta.vwma(close, 3)
useVWMA = input.bool(true, "Use VWMA3 for Divergence (when WMA9 + VWMA3 mode)", group="WMA Settings")
// Oscillator selection
rsi = ta.rsi(rsiSourceInput, rsiLengthInput) // Calculate RSI always, but use conditionally
osc = oscType == "RSI" ? rsi : useVWMA ? vwma3 : wma9
// RSI plots (conditional)
isRSI = oscType == "RSI"
rsiPlot = plot(isRSI ? rsi : na, "RSI", color=isRSI ? #7E57C2 : na)
rsiUpperBand = hline(isRSI ? 70 : na, "RSI Upper Band", color=isRSI ? #787B86 : na)
midline = hline(isRSI ? 50 : na, "RSI Middle Band", color=isRSI ? color.new(#787B86, 50) : na)
rsiLowerBand = hline(isRSI ? 30 : na, "RSI Lower Band", color=isRSI ? #787B86 : na)
fill(rsiUpperBand, rsiLowerBand, color=isRSI ? color.rgb(126, 87, 194, 90) : na, title="RSI Background Fill")
midLinePlot = plot(isRSI ? 50 : na, color = na, editable = false, display = display.none)
fill(rsiPlot, midLinePlot, 100, 70, top_color = isRSI ? color.new(color.green, 0) : na, bottom_color = isRSI ? color.new(color.green, 100) : na, title = "Overbought Gradient Fill")
fill(rsiPlot, midLinePlot, 30, 0, top_color = isRSI ? color.new(color.red, 100) : na, bottom_color = isRSI ? color.new(color.red, 0) : na, title = "Oversold Gradient Fill")
// WMA VWMA plots
plot(oscType != "RSI" ? wma9 : na, "WMA9", color=oscType != "RSI" ? color.blue : na)
plot(oscType != "RSI" ? vwma3 : na, "VWMA3", color=oscType != "RSI" ? color.orange : na)
// Smoothing MA inputs (only for RSI)
GRP = "Smoothing (RSI only)"
TT_BB = "Only applies when 'SMA + Bollinger Bands' is selected. Determines the distance between the SMA and the bands."
maTypeInput = input.string("SMA", "Type", options = , group = GRP, display = display.data_window)
maLengthInput = input.int(14, "Length", group = GRP, display = display.data_window)
bbMultInput = input.float(2.0, "BB StdDev", minval = 0.001, maxval = 50, step = 0.5, tooltip = TT_BB, group = GRP, display = display.data_window)
enableMA = maTypeInput != "None" and oscType == "RSI"
isBB = maTypeInput == "SMA + Bollinger Bands" and oscType == "RSI"
// Smoothing MA Calculation
ma(source, length, MAtype) =>
switch MAtype
"SMA" => ta.sma(source, length)
"SMA + Bollinger Bands" => ta.sma(source, length)
"EMA" => ta.ema(source, length)
"SMMA (RMA)" => ta.rma(source, length)
"WMA" => ta.wma(source, length)
"VWMA" => ta.vwma(source, length)
// Smoothing MA plots
smoothingMA = enableMA ? ma(rsi, maLengthInput, maTypeInput) : na
smoothingStDev = isBB ? ta.stdev(rsi, maLengthInput) * bbMultInput : na
plot(smoothingMA, "RSI-based MA", color=enableMA ? color.yellow : na, display = enableMA ? display.all : display.none, editable = enableMA)
bbUpperBand = plot(isBB ? smoothingMA + smoothingStDev : na, title = "Upper Bollinger Band", color=isBB ? color.green : na, display = isBB ? display.all : display.none, editable = isBB)
bbLowerBand = plot(isBB ? smoothingMA - smoothingStDev : na, title = "Lower Bollinger Band", color=isBB ? color.green : na, display = isBB ? display.all : display.none, editable = isBB)
fill(bbUpperBand, bbLowerBand, color= isBB ? color.new(color.green, 90) : na, title="Bollinger Bands Background Fill", display = isBB ? display.all : display.none, editable = isBB)
// Divergence Settings
divGroup = "Divergence Settings"
calculateDivergence = input.bool(true, title="Calculate Divergence", group=divGroup, tooltip = "Calculating divergences is needed in order for divergence alerts to fire.")
lookbackLeft = input.int(5, "Pivot Lookback Left", minval=1, group=divGroup)
lookbackRight = input.int(5, "Pivot Lookback Right", minval=1, group=divGroup)
rangeLower = input.int(5, "Min Range for Divergence", minval=0, group=divGroup)
rangeUpper = input.int(60, "Max Range for Divergence", minval=1, group=divGroup)
showHidden = input.bool(true, "Show Hidden Divergences", group=divGroup)
bearColor = color.red
bullColor = color.green
textColor = color.white
noneColor = color.new(color.white, 100)
_inRange(cond) =>
bars = ta.barssince(cond)
rangeLower <= bars and bars <= rangeUpper
bool plFound = false
bool phFound = false
bool bullCond = false
bool bearCond = false
bool hiddenBullCond = false
bool hiddenBearCond = false
float oscLBR = na
float lowLBR = na
float highLBR = na
float prevPlOsc = na
float prevPlLow = na
float prevPhOsc = na
float prevPhHigh = na
if calculateDivergence
plFound := not na(ta.pivotlow(osc, lookbackLeft, lookbackRight))
phFound := not na(ta.pivothigh(osc, lookbackLeft, lookbackRight))
oscLBR := osc
lowLBR := low
highLBR := high
prevPlOsc := ta.valuewhen(plFound, oscLBR, 1)
prevPlLow := ta.valuewhen(plFound, lowLBR, 1)
prevPhOsc := ta.valuewhen(phFound, oscLBR, 1)
prevPhHigh := ta.valuewhen(phFound, highLBR, 1)
// Regular Bullish
oscHL = oscLBR > prevPlOsc and _inRange(plFound )
priceLL = lowLBR < prevPlLow
bullCond := priceLL and oscHL and plFound
// Regular Bearish
oscLL = oscLBR < prevPhOsc and _inRange(phFound )
priceHH = highLBR > prevPhHigh
bearCond := priceHH and oscLL and phFound
// Hidden Bullish
oscLL_hidden = oscLBR < prevPlOsc and _inRange(plFound )
priceHL = lowLBR > prevPlLow
hiddenBullCond := priceHL and oscLL_hidden and plFound and showHidden
// Hidden Bearish
oscHH_hidden = oscLBR > prevPhOsc and _inRange(phFound )
priceLH = highLBR < prevPhHigh
hiddenBearCond := priceLH and oscHH_hidden and phFound and showHidden
// Plot divergences (lines and labels on pane)
if bullCond
leftBar = ta.valuewhen(plFound, bar_index , 1)
line.new(leftBar, prevPlOsc, bar_index , oscLBR, xloc=xloc.bar_index, color=bullColor, width=2)
label.new(bar_index , oscLBR, "R Bull", style=label.style_label_up, color=noneColor, textcolor=textColor)
if bearCond
leftBar = ta.valuewhen(phFound, bar_index , 1)
line.new(leftBar, prevPhOsc, bar_index , oscLBR, xloc=xloc.bar_index, color=bearColor, width=2)
label.new(bar_index , oscLBR, "R Bear", style=label.style_label_down, color=noneColor, textcolor=textColor)
if hiddenBullCond
leftBar = ta.valuewhen(plFound, bar_index , 1)
line.new(leftBar, prevPlOsc, bar_index , oscLBR, xloc=xloc.bar_index, color=bullColor, width=2, style=line.style_dashed)
label.new(bar_index , oscLBR, "H Bull", style=label.style_label_up, color=noneColor, textcolor=textColor)
if hiddenBearCond
leftBar = ta.valuewhen(phFound, bar_index , 1)
line.new(leftBar, prevPhOsc, bar_index , oscLBR, xloc=xloc.bar_index, color=bearColor, width=2, style=line.style_dashed)
label.new(bar_index , oscLBR, "H Bear", style=label.style_label_down, color=noneColor, textcolor=textColor)
// Alert conditions
alertcondition(bullCond, title="Regular Bullish Divergence", message="Found a new Regular Bullish Divergence, Pivot Lookback Right number of bars to the left of the current bar.")
alertcondition(bearCond, title="Regular Bearish Divergence", message="Found a new Regular Bearish Divergence, Pivot Lookback Right number of bars to the left of the current bar.")
alertcondition(hiddenBullCond, title="Hidden Bullish Divergence", message="Found a new Hidden Bullish Divergence, Pivot Lookback Right number of bars to the left of the current bar.")
alertcondition(hiddenBearCond, title="Hidden Bearish Divergence", message="Found a new Hidden Bearish Divergence, Pivot Lookback Right number of bars to the left of the current bar.")
Market Zone Analyzer[BullByte]Understanding the Market Zone Analyzer
---
1. Purpose of the Indicator
The Market Zone Analyzer is a Pine Script™ (version 6) indicator designed to streamline market analysis on TradingView. Rather than scanning multiple separate tools, it unifies four core dimensions—trend strength, momentum, price action, and market activity—into a single, consolidated view. By doing so, it helps traders:
• Save time by avoiding manual cross-referencing of disparate signals.
• Reduce decision-making errors that can arise from juggling multiple indicators.
• Gain a clear, reliable read on whether the market is in a bullish, bearish, or sideways phase, so they can more confidently decide to enter, exit, or hold a position.
---
2. Why a Trader Should Use It
• Unified View: Combines all essential market dimensions into one easy-to-read score and dashboard, eliminating the need to piece together signals manually.
• Adaptability: Automatically adjusts its internal weighting for trend, momentum, and price action based on current volatility. Whether markets are choppy or calm, the indicator remains relevant.
• Ease of Interpretation: Outputs a simple “BULLISH,” “BEARISH,” or “SIDEWAYS” label, supplemented by an intuitive on-chart dashboard and an oscillator plot that visually highlights market direction.
• Reliability Features: Built-in smoothing of the net score and hysteresis logic (requiring consecutive confirmations before flips) minimize false signals during noisy or range-bound phases.
---
3. Why These Specific Indicators?
This script relies on a curated set of well-established technical tools, each chosen for its particular strength in measuring one of the four core dimensions:
1. Trend Strength:
• ADX/DMI (Average Directional Index / Directional Movement Index): Measures how strong a trend is, and whether the +DI line is above the –DI line (bullish) or vice versa (bearish).
• Moving Average Slope (Fast MA vs. Slow MA): Compares a shorter-period SMA to a longer-period SMA; if the fast MA sits above the slow MA, it confirms an uptrend, and vice versa for a downtrend.
• Ichimoku Cloud Differential (Senkou A vs. Senkou B): Provides a forward-looking view of trend direction; Senkou A above Senkou B signals bullishness, and the opposite signals bearishness.
2. Momentum:
• Relative Strength Index (RSI): Identifies overbought (above its dynamically calculated upper bound) or oversold (below its lower bound) conditions; changes in RSI often precede price reversals.
• Stochastic %K: Highlights shifts in short-term momentum by comparing closing price to the recent high/low range; values above its upper band signal bullish momentum, below its lower band signal bearish momentum.
• MACD Histogram: Measures the difference between the MACD line and its signal line; a positive histogram indicates upward momentum, a negative histogram indicates downward momentum.
3. Price Action:
• Highest High / Lowest Low (HH/LL) Range: Over a defined lookback period, this captures breakout or breakdown levels. A closing price near the recent highs (with a positive MA slope) yields a bullish score, and near the lows (with a negative MA slope) yields a bearish score.
• Heikin-Ashi Doji Detection: Uses Heikin-Ashi candles to identify indecision or continuation patterns. A small Heikin-Ashi body (doji) relative to recent volatility is scored as neutral; a larger body in the direction of the MA slope is scored bullish or bearish.
• Candle Range Measurement: Compares each candle’s high-low range against its own dynamic band (average range ± standard deviation). Large candles aligning with the prevailing trend score bullish or bearish accordingly; unusually small candles can indicate exhaustion or consolidation.
4. Market Activity:
• Bollinger Bands Width (BBW): Measures the distance between BB upper and lower bands; wide bands indicate high volatility, narrow bands indicate low volatility.
• Average True Range (ATR): Quantifies average price movement (volatility). A sudden spike in ATR suggests a volatile environment, while a contraction suggests calm.
• Keltner Channels Width (KCW): Similar to BBW but uses ATR around an EMA. Provides a second layer of volatility context, confirming or contrasting BBW readings.
• Volume (with Moving Average): Compares current volume to its moving average ± standard deviation. High volume validates strong moves; low volume signals potential lack of conviction.
By combining these tools, the indicator captures trend direction, momentum strength, price-action nuances, and overall market energy, yielding a more balanced and comprehensive assessment than any single tool alone.
---
4. What Makes This Indicator Stand Out
• Multi-Dimensional Analysis: Rather than relying on a lone oscillator or moving average crossover, it simultaneously evaluates trend, momentum, price action, and activity.
• Dynamic Weighting: The relative importance of trend, momentum, and price action adjusts automatically based on real-time volatility (Market Activity State). For example, in highly volatile conditions, trend and momentum signals carry more weight; in calm markets, price action signals are prioritized.
• Stability Mechanisms:
• Smoothing: The net score is passed through a short moving average, filtering out noise, especially on lower timeframes.
• Hysteresis: Both Market Activity State and the final bullish/bearish/sideways zone require two consecutive confirmations before flipping, reducing whipsaw.
• Visual Interpretation: A fully customizable on-chart dashboard displays each sub-indicator’s value, regime, score, and comment, all color-coded. The oscillator plot changes color to reflect the current market zone (green for bullish, red for bearish, gray for sideways) and shows horizontal threshold lines at +2, 0, and –2.
---
5. Recommended Timeframes
• Short-Term (5 min, 15 min): Day traders and scalpers can benefit from rapid signals, but should enable smoothing (and possibly disable hysteresis) to reduce false whipsaws.
• Medium-Term (1 h, 4 h): Swing traders find a balance between responsiveness and reliability. Less smoothing is required here, and the default parameters (e.g., ADX length = 14, RSI length = 14) perform well.
• Long-Term (Daily, Weekly): Position traders tracking major trends can disable smoothing for immediate raw readings, since higher-timeframe noise is minimal. Adjust lookback lengths (e.g., increase adxLength, rsiLength) if desired for slower signals.
Tip: If you keep smoothing off, stick to timeframes of 1 h or higher to avoid excessive signal “chatter.”
---
6. How Scoring Works
A. Individual Indicator Scores
Each sub-indicator is assigned one of three discrete scores:
• +1 if it indicates a bullish condition (e.g., RSI above its dynamically calculated upper bound).
• 0 if it is neutral (e.g., RSI between upper and lower bounds).
• –1 if it indicates a bearish condition (e.g., RSI below its dynamically calculated lower bound).
Examples of individual score assignments:
• ADX/DMI:
• +1 if ADX ≥ adxThreshold and +DI > –DI (strong bullish trend)
• –1 if ADX ≥ adxThreshold and –DI > +DI (strong bearish trend)
• 0 if ADX < adxThreshold (trend strength below threshold)
• RSI:
• +1 if RSI > RSI_upperBound
• –1 if RSI < RSI_lowerBound
• 0 otherwise
• ATR (as part of Market Activity):
• +1 if ATR > (ATR_MA + stdev(ATR))
• –1 if ATR < (ATR_MA – stdev(ATR))
• 0 otherwise
Each of the four main categories shares this same +1/0/–1 logic across their sub-components.
B. Category Scores
Once each sub-indicator reports +1, 0, or –1, these are summed within their categories as follows:
• Trend Score = (ADX score) + (MA slope score) + (Ichimoku differential score)
• Momentum Score = (RSI score) + (Stochastic %K score) + (MACD histogram score)
• Price Action Score = (Highest-High/Lowest-Low score) + (Heikin-Ashi doji score) + (Candle range score)
• Market Activity Raw Score = (BBW score) + (ATR score) + (KC width score) + (Volume score)
Each category’s summed value can range between –3 and +3 (for Trend, Momentum, and Price Action), and between –4 and +4 for Market Activity raw.
C. Market Activity State and Dynamic Weight Adjustments
Rather than contributing directly to the netScore like the other three categories, Market Activity determines how much weight to assign to Trend, Momentum, and Price Action:
1. Compute Market Activity Raw Score by summing BBW, ATR, KCW, and Volume individual scores (each +1/0/–1).
2. Bucket into High, Medium, or Low Activity:
• High if raw Score ≥ 2 (volatile market).
• Low if raw Score ≤ –2 (calm market).
• Medium otherwise.
3. Apply Hysteresis (if enabled): The state only flips after two consecutive bars register the same high/low/medium label.
4. Set Category Weights:
• High Activity: Trend = 50 %, Momentum = 35 %, Price Action = 15 %.
• Low Activity: Trend = 25 %, Momentum = 20 %, Price Action = 55 %.
• Medium Activity: Use the trader’s base weight inputs (e.g., Trend = 40 %, Momentum = 30 %, Price Action = 30 % by default).
D. Calculating the Net Score
5. Normalize Base Weights (so that the sum of Trend + Momentum + Price Action always equals 100 %).
6. Determine Current Weights based on the Market Activity State (High/Medium/Low).
7. Compute Each Category’s Contribution: Multiply (categoryScore) × (currentWeight).
8. Sum Contributions to get the raw netScore (a floating-point value that can exceed ±3 when scores are strong).
9. Smooth the netScore over two bars (if smoothing is enabled) to reduce noise.
10. Apply Hysteresis to the Final Zone:
• If the smoothed netScore ≥ +2, the bar is classified as “Bullish.”
• If the smoothed netScore ≤ –2, the bar is classified as “Bearish.”
• Otherwise, it is “Sideways.”
• To prevent rapid flips, the script requires two consecutive bars in the new zone before officially changing the displayed zone (if hysteresis is on).
E. Thresholds for Zone Classification
• BULLISH: netScore ≥ +2
• BEARISH: netScore ≤ –2
• SIDEWAYS: –2 < netScore < +2
---
7. Role of Volatility (Market Activity State) in Scoring
Volatility acts as a dynamic switch that shifts which category carries the most influence:
1. High Activity (Volatile):
• Detected when at least two sub-scores out of BBW, ATR, KCW, and Volume equal +1.
• The script sets Trend weight = 50 % and Momentum weight = 35 %. Price Action weight is minimized at 15 %.
• Rationale: In volatile markets, strong trending moves and momentum surges dominate, so those signals are more reliable than nuanced candle patterns.
2. Low Activity (Calm):
• Detected when at least two sub-scores out of BBW, ATR, KCW, and Volume equal –1.
• The script sets Price Action weight = 55 %, Trend = 25 %, and Momentum = 20 %.
• Rationale: In quiet, sideways markets, subtle price-action signals (breakouts, doji patterns, small-range candles) are often the best early indicators of a new move.
3. Medium Activity (Balanced):
• Raw Score between –1 and +1 from the four volatility metrics.
• Uses whatever base weights the trader has specified (e.g., Trend = 40 %, Momentum = 30 %, Price Action = 30 %).
Because volatility can fluctuate rapidly, the script employs hysteresis on Market Activity State: a new High or Low state must occur on two consecutive bars before weights actually shift. This avoids constant back-and-forth weight changes and provides more stability.
---
8. Scoring Example (Hypothetical Scenario)
• Symbol: Bitcoin on a 1-hour chart.
• Market Activity: Raw volatility sub-scores show BBW (+1), ATR (+1), KCW (0), Volume (+1) → Total raw Score = +3 → High Activity.
• Weights Selected: Trend = 50 %, Momentum = 35 %, Price Action = 15 %.
• Trend Signals:
• ADX strong and +DI > –DI → +1
• Fast MA above Slow MA → +1
• Ichimoku Senkou A > Senkou B → +1
→ Trend Score = +3
• Momentum Signals:
• RSI above upper bound → +1
• MACD histogram positive → +1
• Stochastic %K within neutral zone → 0
→ Momentum Score = +2
• Price Action Signals:
• Highest High/Lowest Low check yields 0 (close not near extremes)
• Heikin-Ashi doji reading is neutral → 0
• Candle range slightly above upper bound but trend is strong, so → +1
→ Price Action Score = +1
• Compute Net Score (before smoothing):
• Trend contribution = 3 × 0.50 = 1.50
• Momentum contribution = 2 × 0.35 = 0.70
• Price Action contribution = 1 × 0.15 = 0.15
• Raw netScore = 1.50 + 0.70 + 0.15 = 2.35
• Since 2.35 ≥ +2 and hysteresis is met, the final zone is “Bullish.”
Although the netScore lands at 2.35 (Bullish), smoothing might bring it slightly below 2.00 on the first bar (e.g., 1.90), in which case the script would wait for a second consecutive reading above +2 before officially classifying the zone as Bullish (if hysteresis is enabled).
---
9. Correlation Between Categories
The four categories—Trend Strength, Momentum, Price Action, and Market Activity—often reinforce or offset one another. The script takes advantage of these natural correlations:
• Bullish Alignment: If ADX is strong and pointed upward, fast MA is above slow MA, and Ichimoku is positive, that usually coincides with RSI climbing above its upper bound and the MACD histogram turning positive. In such cases, both Trend and Momentum categories generate +1 or +2. Because the Market Activity State is likely High (given the accompanying volatility), Trend and Momentum weights are at their peak, so the netScore quickly crosses into Bullish territory.
• Sideways/Consolidation: During a low-volatility, sideways phase, ADX may fall below its threshold, MAs may flatten, and RSI might hover in the neutral band. However, subtle price-action signals (like a small breakout candle or a Heikin-Ashi candle with a slight bias) can still produce a +1 in the Price Action category. If Market Activity is Low, Price Action’s weight (55 %) can carry enough influence—even if Trend and Momentum are neutral—to push the netScore out of “Sideways” into a mild bullish or bearish bias.
• Opposing Signals: When Trend is bullish but Momentum turns negative (for example, price continues up but RSI rolls over), the two scores can partially cancel. Market Activity may remain Medium, in which case the netScore lingers near zero (Sideways). The trader can then wait for either a clearer momentum shift or a fresh price-action breakout before committing.
By dynamically recognizing these correlations and adjusting weights, the indicator ensures that:
• When Trend and Momentum align (and volatility supports it), the netScore leaps strongly into Bullish or Bearish.
• When Trend is neutral but Price Action shows an early move in a low-volatility environment, Price Action’s extra weight in the Low Activity State can still produce actionable signals.
---
10. Market Activity State & Its Role (Detailed)
The Market Activity State is not a direct category score—it is an overarching context setter for how heavily to trust Trend, Momentum, or Price Action. Here’s how it is derived and applied:
1. Calculate Four Volatility Sub-Scores:
• BBW: Compare the current band width to its own moving average ± standard deviation. If BBW > (BBW_MA + stdev), assign +1 (high volatility); if BBW < (BBW_MA × 0.5), assign –1 (low volatility); else 0.
• ATR: Compare ATR to its moving average ± standard deviation. A spike above the upper threshold is +1; a contraction below the lower threshold is –1; otherwise 0.
• KCW: Same logic as ATR but around the KCW mean.
• Volume: Compare current volume to its volume MA ± standard deviation. Above the upper threshold is +1; below the lower threshold is –1; else 0.
2. Sum Sub-Scores → Raw Market Activity Score: Range between –4 and +4.
3. Assign Market Activity State:
• High Activity: Raw Score ≥ +2 (at least two volatility metrics are strongly spiking).
• Low Activity: Raw Score ≤ –2 (at least two metrics signal unusually low volatility or thin volume).
• Medium Activity: Raw Score is between –1 and +1 inclusive.
4. Hysteresis for Stability:
• If hysteresis is enabled, a new state only takes hold after two consecutive bars confirm the same High, Medium, or Low label.
• This prevents the Market Activity State from bouncing around when volatility is on the fence.
5. Set Category Weights Based on Activity State:
• High Activity: Trend = 50 %, Momentum = 35 %, Price Action = 15 %.
• Low Activity: Trend = 25 %, Momentum = 20 %, Price Action = 55 %.
• Medium Activity: Use trader’s base weights (e.g., Trend = 40 %, Momentum = 30 %, Price Action = 30 %).
6. Impact on netScore: Because category scores (–3 to +3) multiply by these weights, High Activity amplifies the effect of strong Trend and Momentum scores; Low Activity amplifies the effect of Price Action.
7. Market Context Tooltip: The dashboard includes a tooltip summarizing the current state—e.g., “High activity, trend and momentum prioritized,” “Low activity, price action prioritized,” or “Balanced market, all categories considered.”
---
11. Category Weights: Base vs. Dynamic
Traders begin by specifying base weights for Trend Strength, Momentum, and Price Action that sum to 100 %. These apply only when volatility is in the Medium band. Once volatility shifts:
• High Volatility Overrides:
• Trend jumps from its base (e.g., 40 %) to 50 %.
• Momentum jumps from its base (e.g., 30 %) to 35 %.
• Price Action is reduced to 15 %.
Example: If base weights were Trend = 40 %, Momentum = 30 %, Price Action = 30 %, then in High Activity they become 50/35/15. A Trend score of +3 now contributes 3 × 0.50 = +1.50 to netScore; a Momentum +2 contributes 2 × 0.35 = +0.70. In total, Trend + Momentum can easily push netScore above the +2 threshold on its own.
• Low Volatility Overrides:
• Price Action leaps from its base (30 %) to 55 %.
• Trend falls to 25 %, Momentum falls to 20 %.
Why? When markets are quiet, subtle candle breakouts, doji patterns, and small-range expansions tend to foreshadow the next swing more effectively than raw trend readings. A Price Action score of +3 in this state contributes 3 × 0.55 = +1.65, which can carry the netScore toward +2—even if Trend and Momentum are neutral or only mildly positive.
Because these weight shifts happen only after two consecutive bars confirm a High or Low state (if hysteresis is on), the indicator avoids constantly flipping its emphasis during borderline volatility phases.
---
12. Dominant Category Explained
Within the dashboard, a label such as “Trend Dominant,” “Momentum Dominant,” or “Price Action Dominant” appears when one category’s absolute weighted contribution to netScore is the largest. Concretely:
• Compute each category’s weighted contribution = (raw category score) × (current weight).
• Compare the absolute values of those three contributions.
• The category with the highest absolute value is flagged as Dominant for that bar.
Why It Matters:
• Momentum Dominant: Indicates that the combined force of RSI, Stochastic, and MACD (after weighting) is pushing netScore farther than either Trend or Price Action. In practice, it means that short-term sentiment and speed of change are the primary drivers right now, so traders should watch for continued momentum signals before committing to a trade.
• Trend Dominant: Means ADX, MA slope, and Ichimoku (once weighted) outweigh the other categories. This suggests a strong directional move is in place; trend-following entries or confirming pullbacks are likely to succeed.
• Price Action Dominant: Occurs when breakout/breakdown patterns, Heikin-Ashi candle readings, and range expansions (after weighting) are the most influential. This often happens in calmer markets, where subtle shifts in candle structure can foreshadow bigger moves.
By explicitly calling out which category is carrying the most weight at any moment, the dashboard gives traders immediate insight into why the netScore is tilting toward bullish, bearish, or sideways.
---
13. Oscillator Plot: How to Read It
The “Net Score” oscillator sits below the dashboard and visually displays the smoothed netScore as a line graph. Key features:
1. Value Range: In normal conditions it oscillates roughly between –3 and +3, but extreme confluences can push it outside that range.
2. Horizontal Threshold Lines:
• +2 Line (Bullish threshold)
• 0 Line (Neutral midline)
• –2 Line (Bearish threshold)
3. Zone Coloring:
• Green Background (Bullish Zone): When netScore ≥ +2.
• Red Background (Bearish Zone): When netScore ≤ –2.
• Gray Background (Sideways Zone): When –2 < netScore < +2.
4. Dynamic Line Color:
• The plotted netScore line itself is colored green in a Bullish Zone, red in a Bearish Zone, or gray in a Sideways Zone, creating an immediate visual cue.
Interpretation Tips:
• Crossing Above +2: Signals a strong enough combined trend/momentum/price-action reading to classify as Bullish. Many traders wait for a clear crossing plus a confirmation candle before entering a long position.
• Crossing Below –2: Indicates a strong Bearish signal. Traders may consider short or exit strategies.
• Rising Slope, Even Below +2: If netScore climbs steadily from neutral toward +2, it demonstrates building bullish momentum.
• Divergence: If price makes a higher high but the oscillator fails to reach a new high, it can warn of weakening momentum and a potential reversal.
---
14. Comments and Their Necessity
Every sub-indicator (ADX, MA slope, Ichimoku, RSI, Stochastic, MACD, HH/LL, Heikin-Ashi, Candle Range, BBW, ATR, KCW, Volume) generates a short comment that appears in the detailed dashboard. Examples:
• “Strong bullish trend” or “Strong bearish trend” for ADX/DMI
• “Fast MA above slow MA” or “Fast MA below slow MA” for MA slope
• “RSI above dynamic threshold” or “RSI below dynamic threshold” for RSI
• “MACD histogram positive” or “MACD histogram negative” for MACD Hist
• “Price near highs” or “Price near lows” for HH/LL checks
• “Bullish Heikin Ashi” or “Bearish Heikin Ashi” for HA Doji scoring
• “Large range, trend confirmed” or “Small range, trend contradicted” for Candle Range
Additionally, the top-row comment for each category is:
• Trend: “Highly Bullish,” “Highly Bearish,” or “Neutral Trend.”
• Momentum: “Strong Momentum,” “Weak Momentum,” or “Neutral Momentum.”
• Price Action: “Bullish Action,” “Bearish Action,” or “Neutral Action.”
• Market Activity: “Volatile Market,” “Calm Market,” or “Stable Market.”
Reasons for These Comments:
• Transparency: Shows exactly how each sub-indicator contributed to its category score.
• Education: Helps traders learn why a category is labeled bullish, bearish, or neutral, building intuition over time.
• Customization: If, for example, the RSI comment says “RSI neutral” despite an impending trend shift, a trader might choose to adjust RSI length or thresholds.
In the detailed dashboard, hovering over each comment cell also reveals a tooltip with additional context (e.g., “Fast MA above slow MA” or “Senkou A above Senkou B”), helping traders understand the precise rule behind that +1, 0, or –1 assignment.
---
15. Real-Life Example (Consolidated)
• Instrument & Timeframe: Bitcoin (BTCUSD), 1-hour chart.
• Current Market Activity: BBW and ATR both spike (+1 each), KCW is moderately high (+1), but volume is only neutral (0) → Raw Market Activity Score = +2 → State = High Activity (after two bars, if hysteresis is on).
• Category Weights Applied: Trend = 50 %, Momentum = 35 %, Price Action = 15 %.
• Trend Sub-Scores:
1. ADX = 25 (above threshold 20) with +DI > –DI → +1.
2. Fast MA (20-period) sits above Slow MA (50-period) → +1.
3. Ichimoku: Senkou A > Senkou B → +1.
→ Trend Score = +3.
• Momentum Sub-Scores:
4. RSI = 75 (above its moving average +1 stdev) → +1.
5. MACD histogram = +0.15 → +1.
6. Stochastic %K = 50 (mid-range) → 0.
→ Momentum Score = +2.
• Price Action Sub-Scores:
7. Price is not within 1 % of the 20-period high/low and slope = positive → 0.
8. Heikin-Ashi body is slightly larger than stdev over last 5 bars with haClose > haOpen → +1.
9. Candle range is just above its dynamic upper bound but trend is already captured, so → +1.
→ Price Action Score = +2.
• Calculate netScore (before smoothing):
• Trend contribution = 3 × 0.50 = 1.50
• Momentum contribution = 2 × 0.35 = 0.70
• Price Action contribution = 2 × 0.15 = 0.30
• Raw netScore = 1.50 + 0.70 + 0.30 = 2.50 → Immediately classified as Bullish.
• Oscillator & Dashboard Output:
• The oscillator line crosses above +2 and turns green.
• Dashboard displays:
• Trend Regime “BULLISH,” Trend Score = 3, Comment = “Highly Bullish.”
• Momentum Regime “BULLISH,” Momentum Score = 2, Comment = “Strong Momentum.”
• Price Action Regime “BULLISH,” Price Action Score = 2, Comment = “Bullish Action.”
• Market Activity State “High,” Comment = “Volatile Market.”
• Weights: Trend 50 %, Momentum 35 %, Price Action 15 %.
• Dominant Category: Trend (because 1.50 > 0.70 > 0.30).
• Overall Score: 2.50, posCount = (three +1s in Trend) + (two +1s in Momentum) + (two +1s in Price Action) = 7 bullish signals, negCount = 0.
• Final Zone = “BULLISH.”
• The trader sees that both Trend and Momentum are reinforcing each other under high volatility. They might wait one more candle for confirmation but already have strong evidence to consider a long.
---
• .
---
Disclaimer
This indicator is strictly a technical analysis tool and does not constitute financial advice. All trading involves risk, including potential loss of capital. Past performance is not indicative of future results. Traders should:
• Always backtest the “Market Zone Analyzer ” on their chosen symbols and timeframes before committing real capital.
• Combine this tool with sound risk management, position sizing, and, if possible, fundamental analysis.
• Understand that no indicator is foolproof; always be prepared for unexpected market moves.
Goodluck
-BullByte!
---
BTC Markup/Markdown Zones by Koenigsegg📈 BTC Markup/Markdown Zones
A handcrafted indicator designed to mark Bitcoin's most critical High Time Frame (HTF) structure shifts. This tool overlays true institutional-level Markup and Markdown Zones, selected manually after deep market review. Whether you're testing strategies or actively trading, this tool gives you the bigger picture at all times.
🔍 Key Features:
✅ HTF Markup & Markdown Zones
Every zone is manually selected — no indicators, no repainting. Just raw market history and real structure.
✅ Two Display Modes
• Background Zones — soft overlays with low opacity for visual context — with the option to increase opacity manually if desired.
• Start Candle Highlight — sharply highlighted candle marking the final pivot before a macro reversal.
✅ Custom Color Controls (Style Tab)
All visual styling lives in the Style tab, with clearly labeled fields:
• Markup Zone
• Markdown Zone
• Start Candle Highlight Markup
• Start Candle Highlight Markdown
✅ Minimal Input Section
Just one toggle: display mode. Everything else is kept clean and intuitive.
🧠 Purpose:
This script is made for any timeframe:
• Zoom into lower timeframes to know whether you're trading inside a Markup or Markdown
• Use it during strategy testing for true structural awareness
📅 Handpicked Macro Turning Points:
Each zone originates from a manually confirmed candle — the last meaningful candle before a shift in control between bulls and bears:
• FRI 19 AUG 2011 12PM – MARK DOWN
• THU 20 OCT 2011 12AM – MARK UP
• WED 10 APR 2013 12PM – MARK DOWN
• FRI 12 APR 2013 12PM – MARK UP
• SAT 30 NOV 2013 12AM – MARK DOWN
• WED 14 JAN 2015 12PM – MARK UP
• SUN 17 DEC 2017 12PM – MARK DOWN
• SAT 15 DEC 2018 12PM – MARK UP
• WED 14 APR 2021 4AM – MARK DOWN
• TUE 22 JUN 2021 12PM – MARK UP
• WED 10 NOV 2021 12PM – MARK DOWN
• MON 21 NOV 2022 8PM – MARK UP
• THU 14 MAR 2024 4AM – MARK DOWN
• MON 5 AUG 2024 12PM – MARK UP
• MON 20 JAN 2025 4AM – MARK DOWN
💡 Zones are manually updated by me after each new confirmed Markup or Markdown.
🧬 Fractal Structure for MTF Systems
Price is fractal — meaning the same principles of structure repeat across all timeframes. In Version 2, this tool evolves by introducing manually selected sub-zones inside each High Time Frame (HTF) Markup or Markdown. These sub-zones reflect Medium Timeframe (MTF) structure shifts, offering precision for traders who operate on both intraday and swing levels.
This makes the indicator ideal for low timeframe (LTF) Markup/Markdown awareness — whether you're managing 15m entries or building multi-timeframe confluence systems.
No auto-zones. No guesswork. Just clean, intentional structure division within the broader trend, handpicked for maximum clarity and edge.
💡 Pro Tip:
When price is inside a Markup Zone, shorting becomes riskier — you're trading against a macro bullish structure.
When inside a Markdown Zone, longing becomes riskier — you're fighting against confirmed bearish momentum.
Use this tool to stay aligned with the broader move, especially when zoomed into smaller timeframes or managing entries/exits during intraday setups.
📈 Markup Phase – Bullish Sentiment
Definition: A period where price makes higher highs and higher lows — the uptrend is in full force.
Why sentiment is bullish:
- Institutions and smart money are already positioned long.
- Public/institutional demand drives prices up.
- Momentum is supported by positive news, breakouts, and FOMO.
- Higher highs confirm buyers are in control.
📉 Markdown Phase – Bearish Sentiment
Definition: A period where price makes lower lows and lower highs — clear downtrend.
Why sentiment is bearish:
- Distribution has already occurred, and supply outweighs demand.
- Smart money is short or sidelined, waiting for deeper prices.
- Panic selling or trend-following traders add downside momentum.
- Lower lows confirm sellers are in control.
❌ Trading Against the Trend — Consequences:
-Reduced Probability of Success
-You’re fighting the dominant flow. Most participants are pushing in the opposite direction.
-Drawdowns & Stop-Outs
-Countertrend trades often get wicked or flushed before any meaningful move, especially without structure-based entries.
-Low Risk-Reward Ratio
-Trends offer sustained moves. Countertrend trades may have small take-profit zones or chop.
-Mental Drain & Doubt
-Fighting momentum causes anxiety, second-guessing, and emotional reactions.
-Missed Opportunities
-Focusing on fighting the trend makes you blind to the high-probability setups with the trend.
-Increased Transaction Costs
-More stop-outs and re-entries mean more fees, more friction.
-FOMO from Watching the Trend Run
-Entering countertrend means you might watch the trend explode without you.
-Confirmation Bias & Stubbornness
-Countertrend traders often look for reasons to justify staying in the wrong direction — leading to bigger losses.
🧠 Summary
In markup = bulls dominate → you swim with the current.
In markdown = bears dominate → going long is like pushing a rock uphill.
Trading with the trend is not just safer, it's smarter. The edge lives in momentum — not ego.
⚠️ Disclaimer
This indicator is for educational and analytical use only. It is not financial advice and should not be relied on for decision-making without personal analysis.
This is not a predictive tool. No indicator can forecast upcoming price movements.
What you see here is based purely on past market behavior — specifically, historical tops and bottoms that marked the start of confirmed reversals.
This script does not know where the next reversal begins, nor can it determine where a new Markup or Markdown starts or ends. It is designed to provide context, not prediction.
Always trade with responsibility and perform your own due diligence.
Turbo Oscillator [RunRox]Introducing Turbo Oscillator by RunRox, our new indicator that combines a multitude of useful and unique features, which we will detail in this post.
List of Advanced Technologies:
Real-Time Divergences: Detects discrepancies between price movements and oscillator indicators to forecast potential price reversals.
Real-Time Hidden Divergences: We identify hidden divergences in real-time. These are not the standard type of divergences; they are opposite to regular divergences, providing unique insights into potential market movements.
Overbought and Oversold Zones: Identifies areas where the market is potentially overextended, suggesting possible entry and exit points.
Signal Line: Indicates the market direction, helping traders to quickly understand current trends.
Money Flow Histogram: Shows the flow of money into and out of the market, providing insights into buying and selling pressure.
Predicted Reversal Zones: Pinpoints areas where the market might experience reversals, aiding in strategic planning and risk management. These zones also serve as potential areas for taking profits, enhancing their utility for exit strategy planning.
Customizable Alerts: You can flexibly set up alerts for any events detected by our indicator, ensuring you stay informed about critical market movements.
To begin with, I would like to describe the difference between classic divergences and hidden divergences.
As you can see, these are opposite situations. Our oscillator identifies both types of divergences and displays them in real-time.
Divergences can serve as points where the price might reverse in the opposite direction, making both classic and hidden divergences powerful tools for spotting reversal points. I'll show a few examples of how divergences are used in our oscillator.
Classic Divergences - which we identify in real-time. As you can see, the price often reacts strongly to the formation of these divergences, frequently changing its direction.
Hidden Divergences - we also observe frequent movement in the opposite direction on the chart. The advantage of our indicator is that we show divergences in real-time without delays, allowing you to react immediately to trend changes.
Overbought and Oversold Zones - These zones allow you to see trend changes when the price is clearly overbought or oversold. When the color changes from a contrasting shade to a neutral one, you can observe the trend shift. The lines work by combining the positivity/negativity of the histogram, the positivity/negativity of the signal line, and the direction of the signal line (red/green). This sophisticated interaction provides precise insights into market conditions, making it an invaluable tool for traders.
Signal Line - This provides insights into trend changes and price reversals. The points on the line better indicate the beginning of a trend shift. These points can vary in size, offering a clearer understanding of the strength of the emerging trend. This feature works in combination with RSI, Stochastic, and MFI. RSI and MFI are top-tier indicators, while Stochastic adds responsiveness and sensitivity to trend changes, ensuring you capture every market movement accurately and promptly.
Money Flow Histogram - As shown in the example, our histogram displays the divergence between money flow and the actual price. You can see that while the price is rising, the money flow is decreasing, indicating insufficient demand for the asset and an imminent trend change. This feature uses MFI with an extended period, providing a more comprehensive and accurate analysis of market conditions. The extended period enhances the reliability of the Money Flow Index, making it an essential tool for identifying subtle shifts in market dynamics.
Predicted Reversal Zones - We automatically identify potential price reversal zones and display them above our overbought and oversold zones. In cases of strong overbought or oversold conditions, we detect potential price pullbacks and mark the beginning of a trend change. This helps you better identify trend shifts. We recommend considering these zones as potential take profit points for your trades.
Customizable Alerts - Our flexible alert system allows you to receive notifications only for the events you are interested in. These can include:
1. Classic Divergences
2. Hidden Divergences
3. Overbought or Oversold conditions on the status line
4. Strong Overbought or Oversold conditions on the status line
5. Signals from the signal line
6. Reversal zones in any direction
Our oscillator is a unique indicator that provides a comprehensive understanding of price movements. It can be used as a standalone tool for analyzing price action.
Here are a few examples of using our Oscillator in practice:
In the example above, you can see three conditions that have formed for a potential trade:
1. Clear overbought condition with a formed reversal point.
2. Decreasing Money Flow Index diverging from the rising price.
3. Formed classic divergence.
The entry point could be the formed divergence, while the exit point could be the overbought condition at the bottom of the oscillator along with the reversal points.
Here's another example of using hidden divergence, where you can see three conditions for a potential trade:
1. Overbought zone
2. Formed hidden divergence
3. Start of bearish movement indicated by the signal line
You can enter the trade either when the hidden divergence forms or wait for confirmation of the trend change by the signal line and enter the trade when the corresponding signal forms on the signal line. The exit point could be the opposite reversal point or the formation of a new hidden divergence.
We have demonstrated a few examples of how you can use our indicator, but we are confident that you will find many more applications in your own strategies.
Oscillator offers a variety of customizable parameters to tailor the indicator to your trading preferences. Here’s what our settings include:
Signal Line
Turn On/Off: Enable or disable the signal line.
Length: Set the length period for the signal line calculation.
Smooth: Adjust the smoothing level of the signal line for more accurate display.
Histogram
Turn On/Off: Enable or disable the histogram.
Length: Set the length period for the histogram calculation.
Smooth: Adjust the smoothing level of the histogram.
Other
Show Divergence Line: Display divergence lines on the chart.
Show Hidden Divergence: Display hidden divergences.
Show Status Line: Show the status line indicating overbought or oversold conditions.
Show TP Signal: Display signals for take profit.
Show Reversal Points: Display potential trend reversal points.
Delete Broken Divergence Lines: Remove broken divergence lines from the chart.
Alerts Customization
Signal Line Bull/Bear: Set alerts for bullish or bearish signals from the signal line.
TP Bull/Bear: Set alerts for take profit signals.
Status Bull/Bear: Set alerts for bullish or bearish status conditions.
Status Bull+/Bear+: Set enhanced alerts for stronger bullish or bearish status conditions.
Divergence Bull/Bear: Set alerts for bullish or bearish divergences.
Hidden Divergence Bull/Bear: Set alerts for hidden bullish or bearish divergences.
With these comprehensive settings, you can fine-tune the Oscillator to perfectly fit your trading strategy and preferences.
Our indicator utilizes technologies such as RSI, Stochastic, and Money Flow Index, with numerous enhancements from our team. It includes exclusive features such as real-time detection of hidden and classic divergences, identification of reversal points using our unique methodology, and much more.
Disclaimer:
While we consider our Turbo Oscillator to be an excellent tool, it is important to understand that past performance is not indicative of future results. We recommend approaching market analysis comprehensively, using a combination of tools and techniques to make well-informed trading decisions. Always consider the full range of market data and risks when using any trading indicator.
Defensive Nexus ShieldIndicator: Defensive Nexus Shield , capturing profits in the breakout trend.
Defensive Nexus Shield is a trend signal and support resistance display. Identify the short-term bullish and bearish defensive area through the effective extreme value of bulls and bears, and trigger trading opportunities when there are characteristics of breaking through the defensive area.
Usage:
Signal direction: "B" means that the bulls attacked and the bears failed, and entered a bullish trend. "S" means that the bears attacked and the bulls failed, entering a bearish trend.
Defense point of bulls and bears: "Blue line" represents the bearish defense line. The "green line" represents the bullish defensive line. The "purple line" represents the junction of bulls and bears.
Tip I:
Trend signal. When the signal "B" appears, it means that the bulls are attacking, and the market is bullish. Please refer to the signal for corresponding operations.
Tip II:
Breakout signal. After the trend signal appears, if the trend is confirmed, it will continue to enter the breakthrough signal.
Take the bull signal as an example. When B appears, the price continues to rise and breaks through the blue line, the bearish defense line, which triggers the bullish breakthrough signal. At this time, the bulls will strengthen. Provide signal reference for traders who do short-term breakthrough transactions.
*The signals in the indicators are for reference only and not intended as investment advice. Past performance of a strategy is not indicative of future earnings results.
Update - 2023.09.05
Optimize the alarm function. If you need to monitor the "B" or "S" signal, when creating an alarm, set the condition bar to:
Defensive Nexus Shield --> "B" or "S" --> Crossing Up --> value -> 0.5
Kịch bản của tôi//@version=6
indicator(title="Relative Strength Index", shorttitle="Gấu Trọc RSI", format=format.price, precision=2, timeframe="", timeframe_gaps=true)
rsiLengthInput = input.int(14, minval=1, title="RSI Length", group="RSI Settings")
rsiSourceInput = input.source(close, "Source", group="RSI Settings")
calculateDivergence = input.bool(false, title="Calculate Divergence", group="RSI Settings", display = display.data_window, tooltip = "Calculating divergences is needed in order for divergence alerts to fire.")
change = ta.change(rsiSourceInput)
up = ta.rma(math.max(change, 0), rsiLengthInput)
down = ta.rma(-math.min(change, 0), rsiLengthInput)
rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down))
rsiPlot = plot(rsi, "RSI", color=#7E57C2)
rsiUpperBand1 = hline(98, "RSI Upper Band1", color=#787B86)
rsiUpperBand = hline(70, "RSI Upper Band", color=#787B86)
midline = hline(50, "RSI Middle Band", color=color.new(#787B86, 50))
rsiLowerBand = hline(30, "RSI Lower Band", color=#787B86)
rsiLowerBand2 = hline(14, "RSI Lower Band2", color=#787B86)
fill(rsiUpperBand, rsiLowerBand, color=color.rgb(126, 87, 194, 90), title="RSI Background Fill")
midLinePlot = plot(50, color = na, editable = false, display = display.none)
fill(rsiPlot, midLinePlot, 100, 70, top_color = color.new(color.green, 0), bottom_color = color.new(color.green, 100), title = "Overbought Gradient Fill")
fill(rsiPlot, midLinePlot, 30, 0, top_color = color.new(color.red, 100), bottom_color = color.new(color.red, 0), title = "Oversold Gradient Fill")
// Smoothing MA inputs
GRP = "Smoothing"
TT_BB = "Only applies when 'SMA + Bollinger Bands' is selected. Determines the distance between the SMA and the bands."
maTypeInput = input.string("SMA", "Type", options = , group = GRP, display = display.data_window)
var isBB = maTypeInput == "SMA + Bollinger Bands"
maLengthInput = input.int(14, "Length", group = GRP, display = display.data_window, active = maTypeInput != "None")
bbMultInput = input.float(2.0, "BB StdDev", minval = 0.001, maxval = 50, step = 0.5, tooltip = TT_BB, group = GRP, display = display.data_window, active = isBB)
var enableMA = maTypeInput != "None"
// Smoothing MA Calculation
ma(source, length, MAtype) =>
switch MAtype
"SMA" => ta.sma(source, length)
"SMA + Bollinger Bands" => ta.sma(source, length)
"EMA" => ta.ema(source, length)
"SMMA (RMA)" => ta.rma(source, length)
"WMA" => ta.wma(source, length)
"VWMA" => ta.vwma(source, length)
// Smoothing MA plots
smoothingMA = enableMA ? ma(rsi, maLengthInput, maTypeInput) : na
smoothingStDev = isBB ? ta.stdev(rsi, maLengthInput) * bbMultInput : na
plot(smoothingMA, "RSI-based MA", color=color.yellow, display = enableMA ? display.all : display.none, editable = enableMA)
bbUpperBand = plot(smoothingMA + smoothingStDev, title = "Upper Bollinger Band", color=color.green, display = isBB ? display.all : display.none, editable = isBB)
bbLowerBand = plot(smoothingMA - smoothingStDev, title = "Lower Bollinger Band", color=color.green, display = isBB ? display.all : display.none, editable = isBB)
fill(bbUpperBand, bbLowerBand, color= isBB ? color.new(color.green, 90) : na, title="Bollinger Bands Background Fill", display = isBB ? display.all : display.none, editable = isBB)
// Divergence
lookbackRight = 5
lookbackLeft = 5
rangeUpper = 60
rangeLower = 5
bearColor = color.red
bullColor = color.green
textColor = color.white
noneColor = color.new(color.white, 100)
_inRange(bool cond) =>
bars = ta.barssince(cond)
rangeLower <= bars and bars <= rangeUpper
plFound = false
phFound = false
bullCond = false
bearCond = false
rsiLBR = rsi
if calculateDivergence
//------------------------------------------------------------------------------
// Regular Bullish
// rsi: Higher Low
plFound := not na(ta.pivotlow(rsi, lookbackLeft, lookbackRight))
rsiHL = rsiLBR > ta.valuewhen(plFound, rsiLBR, 1) and _inRange(plFound )
// Price: Lower Low
lowLBR = low
priceLL = lowLBR < ta.valuewhen(plFound, lowLBR, 1)
bullCond := priceLL and rsiHL and plFound
//------------------------------------------------------------------------------
// Regular Bearish
// rsi: Lower High
phFound := not na(ta.pivothigh(rsi, lookbackLeft, lookbackRight))
rsiLH = rsiLBR < ta.valuewhen(phFound, rsiLBR, 1) and _inRange(phFound )
// Price: Higher High
highLBR = high
priceHH = highLBR > ta.valuewhen(phFound, highLBR, 1)
bearCond := priceHH and rsiLH and phFound
plot(
plFound ? rsiLBR : na,
offset = -lookbackRight,
title = "Regular Bullish",
linewidth = 2,
color = (bullCond ? bullColor : noneColor),
display = display.pane,
editable = calculateDivergence)
plotshape(
bullCond ? rsiLBR : na,
offset = -lookbackRight,
title = "Regular Bullish Label",
text = " Bull ",
style = shape.labelup,
location = location.absolute,
color = bullColor,
textcolor = textColor,
display = display.pane,
editable = calculateDivergence)
plot(
phFound ? rsiLBR : na,
offset = -lookbackRight,
title = "Regular Bearish",
linewidth = 2,
color = (bearCond ? bearColor : noneColor),
display = display.pane,
editable = calculateDivergence)
plotshape(
bearCond ? rsiLBR : na,
offset = -lookbackRight,
title = "Regular Bearish Label",
text = " Bear ",
style = shape.labeldown,
location = location.absolute,
color = bearColor,
textcolor = textColor,
display = display.pane,
editable = calculateDivergence)
alertcondition(bullCond, title='Regular Bullish Divergence', message="Found a new Regular Bullish Divergence, `Pivot Lookback Right` number of bars to the left of the current bar.")
alertcondition(bearCond, title='Regular Bearish Divergence', message='Found a new Regular Bearish Divergence, `Pivot Lookback Right` number of bars to the left of the current bar.')
RSI + BB + RSI Advanced MTF Panel//@version=6
indicator(title="RSI + BB + RSI Advanced MTF Panel", shorttitle="RSI + BB + RSI Advance MTF Panel", format=format.price, precision=2, overlay=false)
bb_group = "BB (Price Overlay)"
bb_length = input.int(50, minval=1, group = bb_group)
bb_maType = input.string("SMA", "Basis MA Type", options = , group = bb_group)
bb_src = input.source(close, title="Source", group = bb_group)
bb_mult = input.float(0.2, minval=0.001, maxval=50, title="StdDev", group = bb_group)
BasisColor = input.color(color.rgb(163, 41, 245), "Basis Color", group = bb_group, display = display.none)
UpperColor = input.color(color.rgb(120, 156, 202,100), "Upper Color", group = bb_group, display = display.none)
LowerColor = input.color(color.rgb(120, 156, 202,100), "Lower Color", group = bb_group, display = display.none)
offset = input.int(0, "Offset", minval = -500, maxval = 500, display = display.data_window, group = bb_group)
ma(source, bb_length, _type) =>
switch _type
"SMA" => ta.sma(source, bb_length)
"EMA" => ta.ema(source, bb_length)
"SMMA (RMA)" => ta.rma(source, bb_length)
"WMA" => ta.wma(source, bb_length)
"VWMA" => ta.vwma(source, bb_length)
basis = ma(bb_src, bb_length, bb_maType)
dev = bb_mult * ta.stdev(bb_src, bb_length)
upper = basis + dev
lower = basis - dev
plot(basis, "Basis", color=BasisColor, offset = offset, force_overlay = true)
p1 = plot(upper, "Upper", color=UpperColor, offset = offset, force_overlay = true)
p2 = plot(lower, "Lower", color=LowerColor, offset = offset, force_overlay = true)
fill(p1, p2, title = "Background", color=color.rgb(163, 41, 245, 90))
rsiLengthInput = input.int(30, minval=1, title="RSI Length", group="RSI Settings")
rsiSourceInput = input.source(close, "Source", group="RSI Settings")
calculateDivergence = input.bool(false, title="Calculate Divergence", group="RSI Settings", display = display.data_window, tooltip = "Calculating divergences is needed in order for divergence alerts to fire.")
SignalDot = input.bool(false, title="Signal Dot", group="Smoothing", display = display.data_window, tooltip = "Signal for possible entry")
change = ta.change(rsiSourceInput)
up = ta.rma(math.max(change, 0), rsiLengthInput)
down = ta.rma(-math.min(change, 0), rsiLengthInput)
rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down))
rsiPlot = plot(rsi, "RSI", color= rsi >= 51 ? color.rgb(13, 197, 230) : color.red)
rsiUpperBand = hline(70, "RSI Upper Band", color=#787B86)
midline = hline(50, "RSI Middle Band", color=color.new(#787B86, 50))
rsiLowerBand = hline(30, "RSI Lower Band", color=#787B86)
fill(rsiUpperBand, rsiLowerBand, color=color.rgb(126, 87, 194, 90), title="RSI Background Fill")
midLinePlot = plot(50, color = na, editable = false, display = display.none)
fill(rsiPlot, midLinePlot, 100, 70, top_color = color.new(color.green, 0), bottom_color = color.new(color.green, 100), title = "Overbought Gradient Fill")
fill(rsiPlot, midLinePlot, 30, 0, top_color = color.new(color.red, 100), bottom_color = color.new(color.red, 0), title = "Oversold Gradient Fill")
GRP = "Smoothing"
TT_BB = "Only applies when 'SMA + Bollinger Bands' is selected. Determines the distance between the SMA and the bands."
maTypeInput = input.string("SMA", "Type", options = , group = GRP, display = display.data_window)
maLengthInput = input.int(14, "Length", group = GRP, display = display.data_window)
bbMultInput = input.float(2.0, "BB StdDev", minval = 0.001, maxval = 50, step = 0.5, tooltip = TT_BB, group = GRP, display = display.data_window)
var enableMA = maTypeInput != "None"
var isBB = maTypeInput == "SMA + Bollinger Bands"
smoothma(source, length, MAtype) =>
switch MAtype
"SMA" => ta.sma(source, length)
"SMA + Bollinger Bands" => ta.sma(source, length)
"EMA" => ta.ema(source, length)
"SMMA (RMA)" => ta.rma(source, length)
"WMA" => ta.wma(source, length)
"VWMA" => ta.vwma(source, length)
smoothingMA = enableMA ? smoothma(rsi, maLengthInput, maTypeInput) : na
smoothingStDev = isBB ? ta.stdev(rsi, maLengthInput) * bbMultInput : na
plot(smoothingMA, "RSI-based MA", color=color.yellow, display = enableMA ? display.all : display.none, editable = enableMA)
bbUpperBand = plot(smoothingMA + smoothingStDev, title = "Upper Bollinger Band", color=color.green, display = isBB ? display.all : display.none, editable = isBB)
bbLowerBand = plot(smoothingMA - smoothingStDev, title = "Lower Bollinger Band", color=color.green, display = isBB ? display.all : display.none, editable = isBB)
fill(bbUpperBand, bbLowerBand, color= isBB ? color.new(color.green, 90) : na, title="Bollinger Bands Background Fill", display = isBB ? display.all : display.none, editable = isBB)
lookbackRight = 5
lookbackLeft = 5
rangeUpper = 60
rangeLower = 5
bearColor = color.red
bullColor = color.green
textColor = color.white
noneColor = color.new(color.white, 100)
_calcBarsSince(cond) =>
ta.barssince(cond)
rsiLBR = rsi
// 1. Calculate Pivots Unconditionally
plFound = not na(ta.pivotlow(rsi, lookbackLeft, lookbackRight))
phFound = not na(ta.pivothigh(rsi, lookbackLeft, lookbackRight))
// 2. Calculate History Unconditionally
barsSincePL = _calcBarsSince(plFound )
barsSincePH = _calcBarsSince(phFound )
// 3. Check Ranges Unconditionally
inRangePL = rangeLower <= barsSincePL and barsSincePL <= rangeUpper
inRangePH = rangeLower <= barsSincePH and barsSincePH <= rangeUpper
// 4. Calculate Conditions
var bool bullCond = false
var bool bearCond = false
if calculateDivergence
rsiHL = rsiLBR > ta.valuewhen(plFound, rsiLBR, 1) and inRangePL
lowLBR = low
priceLL = lowLBR < ta.valuewhen(plFound, lowLBR, 1)
bullCond := priceLL and rsiHL and plFound
rsiLH = rsiLBR < ta.valuewhen(phFound, rsiLBR, 1) and inRangePH
highLBR = high
priceHH = highLBR > ta.valuewhen(phFound, highLBR, 1)
bearCond := priceHH and rsiLH and phFound
else
bullCond := false
bearCond := false
plot(plFound ? rsiLBR : na, offset = -lookbackRight, title = "Regular Bullish", linewidth = 2, color = (bullCond ? bullColor : noneColor), display = display.pane, editable = calculateDivergence)
plotshape(bullCond ? rsiLBR : na, offset = -lookbackRight, title = "Regular Bullish Label", text = " Bull ", style = shape.labelup, location = location.absolute, color = bullColor, textcolor = textColor, display = display.pane, editable = calculateDivergence)
plot(phFound ? rsiLBR : na, offset = -lookbackRight, title = "Regular Bearish", linewidth = 2, color = (bearCond ? bearColor : noneColor), display = display.pane, editable = calculateDivergence)
plotshape(bearCond ? rsiLBR : na, offset = -lookbackRight, title = "Regular Bearish Label", text = " Bear ", style = shape.labeldown, location = location.absolute, color = bearColor, textcolor = textColor, display = display.pane, editable = calculateDivergence)
alertcondition(bullCond, title='Regular Bullish Divergence', message="Found a new Regular Bullish Divergence.")
alertcondition(bearCond, title='Regular Bearish Divergence', message='Found a new Regular Bearish Divergence.')
// --- Panel Options (General) ---
g_panel = 'MTF Panel Options'
i_orientation = input.string('Vertical', 'Orientation', options = , group = g_panel)
i_position = input.string('Bottom Right', 'Position', options = , group = g_panel)
i_border_width = input.int(1, 'Border Width', minval = 0, maxval = 10, group = g_panel, inline = 'border')
i_color_border = input.color(#000000, '', group = g_panel, inline = 'border')
i_showHeaders = input.bool(true, 'Show Headers', group = g_panel)
i_color_header_bg = input.color(#5d606b, 'Headers Background', group = g_panel, inline = 'header')
i_color_header_text = input.color(color.white, 'Text', group = g_panel, inline = 'header')
i_color_tf_bg = input.color(#2a2e39, 'Timeframe Background', group = g_panel, inline = 'tf')
i_color_tf_text = input.color(color.white, 'Text', group = g_panel, inline = 'tf')
i_debug = input.bool(false, 'Display colors palette (debug)', group = g_panel)
// --- RSI Colors (Conditional Formatting) ---
g_rsi = 'MTF RSI Colors'
i_threshold_ob = input.int(70, 'Overbought Threshold', minval=51, maxval=100, group = g_rsi)
i_color_ob = input.color(#128416, 'Overbought Background', inline = 'ob', group = g_rsi)
i_tcolor_ob = input.color(color.white, 'Text', inline = 'ob', group = g_rsi)
i_threshold_uptrend = input.int(60, 'Uptrend Threshold', minval=51, maxval=100, group = g_rsi)
i_color_uptrend = input.color(#2d472e, 'Uptrend Background', inline = 'up', group = g_rsi)
i_tcolor_uptrend = input.color(color.white, 'Text', inline = 'up', group = g_rsi)
i_color_mid = input.color(#131722, 'No Trend Background', group = g_rsi, inline = 'mid')
i_tcolor_mid = input.color(#b2b5be, 'Text', group = g_rsi, inline = 'mid')
i_threshold_downtrend = input.int(40, 'Downtrend Threshold', group = g_rsi, minval=0, maxval=49)
i_color_downtrend = input.color(#5b2e2e, 'Downtrend Background', group = g_rsi, inline = 'down')
i_tcolor_downtrend = input.color(color.white, 'Text', group = g_rsi, inline = 'down')
i_threshold_os = input.int(30, 'Oversold Threshold', minval=0, maxval=49, group = g_rsi)
i_color_os = input.color(#db3240, 'Oversold Background', group = g_rsi, inline = 'os')
i_tcolor_os = input.color(color.white, 'Text', group = g_rsi, inline = 'os')
// --- Individual RSI Settings (MTF Sources) ---
g_rsi1 = 'RSI #1'
i_rsi1_enabled = input.bool(true, title = 'Enabled', group = g_rsi1)
i_rsi1_tf = input.timeframe('5', 'Timeframe', group = g_rsi1)
i_rsi1_len = input.int(30, 'Length', minval = 1, group = g_rsi1)
i_rsi1_src = input.source(close, 'Source', group = g_rsi1) * 10000
v_rsi1 = i_rsi1_enabled ? request.security(syminfo.tickerid, i_rsi1_tf, ta.rsi(i_rsi1_src, i_rsi1_len)) : na
g_rsi2 = 'RSI #2'
i_rsi2_enabled = input.bool(true, title = 'Enabled', group = g_rsi2)
i_rsi2_tf = input.timeframe('15', 'Timeframe', group = g_rsi2)
i_rsi2_len = input.int(30, 'Length', minval = 1, group = g_rsi2)
i_rsi2_src = input.source(close, 'Source', group = g_rsi2) * 10000
v_rsi2 = i_rsi2_enabled ? request.security(syminfo.tickerid, i_rsi2_tf, ta.rsi(i_rsi2_src, i_rsi2_len)) : na
g_rsi3 = 'RSI #3'
i_rsi3_enabled = input.bool(true, title = 'Enabled', group = g_rsi3)
i_rsi3_tf = input.timeframe('60', 'Timeframe', group = g_rsi3)
i_rsi3_len = input.int(30, 'Length', minval = 1, group = g_rsi3)
i_rsi3_src = input.source(close, 'Source', group = g_rsi3) * 10000
v_rsi3 = i_rsi3_enabled ? request.security(syminfo.tickerid, i_rsi3_tf, ta.rsi(i_rsi3_src, i_rsi3_len)) : na
g_rsi4 = 'RSI #4'
i_rsi4_enabled = input.bool(true, title = 'Enabled', group = g_rsi4)
i_rsi4_tf = input.timeframe('240', 'Timeframe', group = g_rsi4)
i_rsi4_len = input.int(30, 'Length', minval = 1, group = g_rsi4)
i_rsi4_src = input.source(close, 'Source', group = g_rsi4) * 10000
v_rsi4 = i_rsi4_enabled ? request.security(syminfo.tickerid, i_rsi4_tf, ta.rsi(i_rsi4_src, i_rsi4_len)) : na
g_rsi5 = 'RSI #5'
i_rsi5_enabled = input.bool(true, title = 'Enabled', group = g_rsi5)
i_rsi5_tf = input.timeframe('D', 'Timeframe', group = g_rsi5)
i_rsi5_len = input.int(30, 'Length', minval = 1, group = g_rsi5)
i_rsi5_src = input.source(close, 'Source', group = g_rsi5) * 10000
v_rsi5 = i_rsi5_enabled ? request.security(syminfo.tickerid, i_rsi5_tf, ta.rsi(i_rsi5_src, i_rsi5_len)) : na
g_rsi6 = 'RSI #6'
i_rsi6_enabled = input.bool(true, title = 'Enabled', group = g_rsi6)
i_rsi6_tf = input.timeframe('W', 'Timeframe', group = g_rsi6)
i_rsi6_len = input.int(30, 'Length', minval = 1, group = g_rsi6)
i_rsi6_src = input.source(close, 'Source', group = g_rsi6) * 10000
v_rsi6 = i_rsi6_enabled ? request.security(syminfo.tickerid, i_rsi6_tf, ta.rsi(i_rsi6_src, i_rsi6_len)) : na
g_rsi7 = 'RSI #7'
i_rsi7_enabled = input.bool(false, title = 'Enabled', group = g_rsi7)
i_rsi7_tf = input.timeframe('W', 'Timeframe', group = g_rsi7)
i_rsi7_len = input.int(30, 'Length', minval = 1, group = g_rsi7)
i_rsi7_src = input.source(close, 'Source', group = g_rsi7) * 10000
v_rsi7 = i_rsi7_enabled ? request.security(syminfo.tickerid, i_rsi7_tf, ta.rsi(i_rsi7_src, i_rsi7_len)) : na
g_rsi8 = 'RSI #8'
i_rsi8_enabled = input.bool(false, title = 'Enabled', group = g_rsi8)
i_rsi8_tf = input.timeframe('W', 'Timeframe', group = g_rsi8)
i_rsi8_len = input.int(30, 'Length', minval = 1, group = g_rsi8)
i_rsi8_src = input.source(close, 'Source', group = g_rsi8) * 10000
v_rsi8 = i_rsi8_enabled ? request.security(syminfo.tickerid, i_rsi8_tf, ta.rsi(i_rsi8_src, i_rsi8_len)) : na
g_rsi9 = 'RSI #9'
i_rsi9_enabled = input.bool(false, title = 'Enabled', group = g_rsi9)
i_rsi9_tf = input.timeframe('W', 'Timeframe', group = g_rsi9)
i_rsi9_len = input.int(30, 'Length', minval = 1, group = g_rsi9)
i_rsi9_src = input.source(close, 'Source', group = g_rsi9) * 10000
v_rsi9 = i_rsi9_enabled ? request.security(syminfo.tickerid, i_rsi9_tf, ta.rsi(i_rsi9_src, i_rsi9_len)) : na
g_rsi10 = 'RSI #10'
i_rsi10_enabled = input.bool(false, title = 'Enabled', group = g_rsi10)
i_rsi10_tf = input.timeframe('W', 'Timeframe', group = g_rsi10)
i_rsi10_len = input.int(30, 'Length', minval = 1, group = g_rsi10)
i_rsi10_src = input.source(close, 'Source', group = g_rsi10) * 10000
v_rsi10 = i_rsi10_enabled ? request.security(syminfo.tickerid, i_rsi10_tf, ta.rsi(i_rsi10_src, i_rsi10_len)) : na
// --- Panel Helper Functions ---
// Function 4: String Position to Constant (Indentation cleaned)
f_StrPositionToConst(_p) =>
switch _p
'Top Left' => position.top_left
'Top Right' => position.top_right
'Top Center' => position.top_center
'Middle Left' => position.middle_left
'Middle Right' => position.middle_right
'Middle Center' => position.middle_center
'Bottom Left' => position.bottom_left
'Bottom Right' => position.bottom_right
'Bottom Center' => position.bottom_center
=> position.bottom_right
// Function 5: Timeframe to Human Readable (Indentation cleaned)
f_timeframeToHuman(_tf) =>
seconds = timeframe.in_seconds(_tf)
if seconds < 60
_tf
else if seconds < 3600
str.tostring(seconds / 60) + 'm'
else if seconds < 86400
str.tostring(seconds / 60 / 60) + 'h'
else
switch _tf
"1D" => "D"
"1W" => "W"
"1M" => "M"
=> str.tostring(_tf)
type TPanel
table src = na
bool vertical_orientation = true
int row = 0
int col = 0
// Method 1: Increment Column (Indentation cleaned)
method incCol(TPanel _panel) =>
if _panel.vertical_orientation
_panel.col += 1
else
_panel.row += 1
// Method 2: Increment Row (Indentation cleaned)
method incRow(TPanel _panel) =>
if not _panel.vertical_orientation
_panel.col += 1
_panel.row := 0
else
_panel.row += 1
_panel.col := 0
// Method 3: Add Cell (Indentation cleaned)
method add(TPanel _panel, string _v1, color _bg1, color _ctext1, string _v2, color _bg2, color _ctext2) =>
table.cell(_panel.src, _panel.col, _panel.row, _v1, text_color = _ctext1, bgcolor = _bg1)
_panel.incCol()
table.cell(_panel.src, _panel.col, _panel.row, _v2, text_color = _ctext2, bgcolor = _bg2)
_panel.incRow()
// Function 6: Background Color
f_bg(_rsi) =>
c_line = na(_rsi) ? i_color_mid :
_rsi >= i_threshold_ob ? i_color_ob :
_rsi >= i_threshold_uptrend ? i_color_uptrend :
_rsi <= i_threshold_os ? i_color_os :
_rsi <= i_threshold_downtrend ? i_color_downtrend :
i_color_mid
// Function 7: Text Color
f_rsi_text_color(_rsi) =>
c_line = na(_rsi) ? i_tcolor_mid :
_rsi >= i_threshold_ob ? i_tcolor_ob :
_rsi >= i_threshold_uptrend ? i_tcolor_uptrend :
_rsi <= i_threshold_os ? i_tcolor_os :
_rsi <= i_threshold_downtrend ? i_tcolor_downtrend :
i_tcolor_mid
f_formatRsi(_rsi) => na(_rsi) ? 'N/A' : str.tostring(_rsi, '0.00')
// --- Panel Execution Logic ---
if barstate.islast
v_panel = TPanel.new(vertical_orientation = i_orientation == 'Vertical')
v_max_rows = 20
v_panel.src := table.new(f_StrPositionToConst(i_position), v_max_rows, v_max_rows, border_width = i_border_width, border_color = i_color_border)
if i_showHeaders
v_panel.add('TF', i_color_header_bg, i_color_header_text, 'RSI', i_color_header_bg, i_color_header_text)
if i_rsi1_enabled
v_panel.add(f_timeframeToHuman(i_rsi1_tf), i_color_tf_bg, i_color_tf_text, f_formatRsi(v_rsi1), f_bg(v_rsi1), f_rsi_text_color(v_rsi1))
if i_rsi2_enabled
v_panel.add(f_timeframeToHuman(i_rsi2_tf), i_color_tf_bg, i_color_tf_text, f_formatRsi(v_rsi2), f_bg(v_rsi2), f_rsi_text_color(v_rsi2))
if i_rsi3_enabled
v_panel.add(f_timeframeToHuman(i_rsi3_tf), i_color_tf_bg, i_color_tf_text, f_formatRsi(v_rsi3), f_bg(v_rsi3), f_rsi_text_color(v_rsi3))
if i_rsi4_enabled
v_panel.add(f_timeframeToHuman(i_rsi4_tf), i_color_tf_bg, i_color_tf_text, f_formatRsi(v_rsi4), f_bg(v_rsi4), f_rsi_text_color(v_rsi4))
if i_rsi5_enabled
v_panel.add(f_timeframeToHuman(i_rsi5_tf), i_color_tf_bg, i_color_tf_text, f_formatRsi(v_rsi5), f_bg(v_rsi5), f_rsi_text_color(v_rsi5))
if i_rsi6_enabled
v_panel.add(f_timeframeToHuman(i_rsi6_tf), i_color_tf_bg, i_color_tf_text, f_formatRsi(v_rsi6), f_bg(v_rsi6), f_rsi_text_color(v_rsi6))
if i_rsi7_enabled
v_panel.add(f_timeframeToHuman(i_rsi7_tf), i_color_tf_bg, i_color_tf_text, f_formatRsi(v_rsi7), f_bg(v_rsi7), f_rsi_text_color(v_rsi7))
if i_rsi8_enabled
v_panel.add(f_timeframeToHuman(i_rsi8_tf), i_color_tf_bg, i_color_tf_text, f_formatRsi(v_rsi8), f_bg(v_rsi8), f_rsi_text_color(v_rsi8))
if i_rsi9_enabled
v_panel.add(f_timeframeToHuman(i_rsi9_tf), i_color_tf_bg, i_color_tf_text, f_formatRsi(v_rsi9), f_bg(v_rsi9), f_rsi_text_color(v_rsi9))
if i_rsi10_enabled
v_panel.add(f_timeframeToHuman(i_rsi10_tf), i_color_tf_bg, i_color_tf_text, f_formatRsi(v_rsi10), f_bg(v_rsi10), f_rsi_text_color(v_rsi10))
if i_debug
t = table.new(position.middle_center, 21, 20, border_width = i_border_width, border_color = i_color_border)
v_panel2 = TPanel.new(t, vertical_orientation = i_orientation == 'Vertical')
v_panel2.add('Debug', i_color_header_bg, i_color_header_text, 'Colors', i_color_header_bg, i_color_header_text)
// Using a tuple array for debugging colors demo
// Final Syntax Correction: Use array.new() and array.set() to avoid 'tuple()' function reference error
v_rows = 5 // We know we have 5 elements
demo = array.new(v_rows, '') // Initialize array with 5 string elements, will hold string representation of the tuple
// We will push the elements as a *string* representation of the tuple, as Pine v6 allows
// and then parse them inside the loop if necessary.
// To preserve the structure (string, float) without the tuple() function:
// We must define two separate arrays if the 'tuple' function is truly unavailable.
tf_array = array.new(v_rows)
rsi_array = array.new(v_rows)
// Populate the arrays
array.set(tf_array, 0, 'Overbought')
array.set(rsi_array, 0, float(i_threshold_ob))
array.set(tf_array, 1, 'Uptrend')
array.set(rsi_array, 1, float(i_threshold_uptrend))
array.set(tf_array, 2, 'No Trend')
array.set(rsi_array, 2, 50.0)
array.set(tf_array, 3, 'Downtrend')
array.set(rsi_array, 3, float(i_threshold_downtrend))
array.set(tf_array, 4, 'Oversold')
array.set(rsi_array, 4, float(i_threshold_os))
// Iterate over the arrays using a simple index
for i = 0 to v_rows - 1
tf = array.get(tf_array, i)
rsi = array.get(rsi_array, i)
v_panel2.add(tf, i_color_tf_bg, i_color_tf_text, f_formatRsi(rsi), f_bg(rsi), f_rsi_text_color(rsi))
Index Top 5 Heavyweight Analyzer## 🎯 Overview
This advanced Pine Script indicator applies the **Pareto Principle** to Nifty 50 trading: the top 5 heavyweights control 40%+ of the index's movement. Instead of watching all 50 stocks, this tool monitors the "Kings" that actually drive the index direction.
Professional traders don't trade the index in isolation - they look "under the hood" at heavyweight constituents. This indicator does exactly that, providing real-time analysis of HDFC Bank, Reliance, ICICI Bank, Bharti Airtel, and TCS to predict Nifty movements before they happen.
## 🔥 Key Features
### 1️⃣ Four-Quadrant OI Cycle Analysis
Identifies which cycle each heavyweight is in using Open Interest from continuous futures contracts:
- **Long Buildup** (Price ↑ + OI ↑): Institutions buying aggressively → Bullish driver
- **Short Covering** (Price ↑ + OI ↓): Bears trapped and exiting → Fast bullish spike
- **Short Buildup** (Price ↓ + OI ↑): Big money shorting → Bearish drag
- **Long Unwinding** (Price ↓ + OI ↓): Buyers giving up → Index weakness
### 2️⃣ Alignment Score System
Counts how many of the top 5 stocks are bullish/bearish/neutral. When 3+ heavyweights align in the same direction with sufficient weightage (15%+), the indicator generates high-conviction trade signals for the Nifty index.
### 3️⃣ Cost of Carry (Basis) Analysis
Compares Future vs Spot prices to gauge institutional sentiment:
- **Rising Premium**: Aggressive institutional buying
- **Discount (Backwardation)**: Extreme bearishness
### 4️⃣ Divergence Detection
Warns when the index move contradicts heavyweight signals - identifying "fake moves" that professional traders fade.
### 5️⃣ Actionable Trade Signals
- **Strong Bullish**: Buy Index Calls / Long Nifty Future
- **Strong Bearish**: Buy Index Puts / Short Nifty Future
- **Neutral/Choppy**: Iron Condor / Avoid Directional trades
## 📈 What Makes This Different?
Unlike basic index indicators, this tool:
- Fetches real Open Interest data from continuous futures (RELIANCE1!, HDFCBANK1!, etc.)
- Applies weighted analysis - top 3 stocks matter most
- Provides professional trade recommendations based on constituent alignment
- Uses dark theme optimized colors for extended screen time
- Displays comprehensive dashboard with price, OI, OI change %, cycle status, and basis
## 💡 How to Use
1. **Add to any Nifty 50 or Bank Nifty chart**
2. **Watch the dashboard** in the top-right corner showing all 5 heavyweights
3. **Check the ALIGNMENT row**:
- 🔼 Bull Count | 🔽 Bear Count | ➖ Neutral Count
- Weighted Bull/Bear scores
4. **Read the INDEX SIGNAL row** for trade recommendations
5. **Look for divergence warnings** (⚠️) indicating fake moves
6. **Use the histogram plot** to visualize signal strength over time
## ⚙️ Customizable Settings
- **Constituents**: Modify ticker symbols and weightages
- **Signal Thresholds**: Adjust minimum alignment required (default: 3 out of 5)
- **Display Options**: Toggle table, signals, and basis calculations
- **Timeframe**: Works on all timeframes (intraday and daily)
## 🎨 Dark Theme Optimized
Designed specifically for TradingView's dark mode with:
- High-contrast colors that reduce eye strain
- Bright lime green (#00E676) for bullish signals
- Bright red (#FF5252) for bearish signals
- Electric colors for easy pattern recognition
## 📊 Best Used For
- **Nifty 50 Options Trading**: Know whether to buy calls or puts
- **Index Futures Trading**: Identify high-probability directional moves
- **Risk Management**: Avoid trading when heavyweights show divergence
- **Market Timing**: Enter when top stocks align (3+ in same direction)
## 🚀 Pro Tips
- **"Double Engine" Signal**: When Reliance shows Long Buildup AND HDFC Bank shows Short Covering → Extremely bullish for Nifty
- **Sector Rotation**: If Banks are strong but Tech is weak (or vice versa) → Expect choppy, range-bound index
- **Rollover Analysis**: Near expiry, watch for high OI with rising basis → Bulls/Bears carrying positions forward with confidence
## ⚠️ Important Notes
- Requires TradingView Premium for multiple `request.security()` calls
- OI data available only for stocks with active futures
- Best used on NSE exchange during market hours
- Combine with your own risk management strategy
## 📝 Credits
Based on professional institutional trading methodologies that analyze index constituents rather than the index itself. Implements the Pareto Principle: focus on the 20% (top 5 stocks) that drives 80% of the index movement.
***
## 🔔 Alerts Available
- Strong Bullish Signal (3+ stocks aligned bullish)
- Strong Bearish Signal (3+ stocks aligned bearish)
- Divergence Warning (fake index moves)
**Made for serious traders who want to trade like institutions - by watching what the "smart money" is doing in the heavyweights.**
***
*Optimize your Nifty trading by monitoring the stocks that actually matter. Stop watching all 50 - focus on the 5 Kings!* 👑
***
**Tags**: Nifty, Open Interest, OI Analysis, Heavyweight Analysis, Index Trading, Options Trading, Futures Trading, Institutional Analysis, Smart Money, Pareto Principle
Dimensional Resonance ProtocolDimensional Resonance Protocol
🌀 CORE INNOVATION: PHASE SPACE RECONSTRUCTION & EMERGENCE DETECTION
The Dimensional Resonance Protocol represents a paradigm shift from traditional technical analysis to complexity science. Rather than measuring price levels or indicator crossovers, DRP reconstructs the hidden attractor governing market dynamics using Takens' embedding theorem, then detects emergence —the rare moments when multiple dimensions of market behavior spontaneously synchronize into coherent, predictable states.
The Complexity Hypothesis:
Markets are not simple oscillators or random walks—they are complex adaptive systems existing in high-dimensional phase space. Traditional indicators see only shadows (one-dimensional projections) of this higher-dimensional reality. DRP reconstructs the full phase space using time-delay embedding, revealing the true structure of market dynamics.
Takens' Embedding Theorem (1981):
A profound mathematical result from dynamical systems theory: Given a time series from a complex system, we can reconstruct its full phase space by creating delayed copies of the observation.
Mathematical Foundation:
From single observable x(t), create embedding vectors:
X(t) =
Where:
• d = Embedding dimension (default 5)
• τ = Time delay (default 3 bars)
• x(t) = Price or return at time t
Key Insight: If d ≥ 2D+1 (where D is the true attractor dimension), this embedding is topologically equivalent to the actual system dynamics. We've reconstructed the hidden attractor from a single price series.
Why This Matters:
Markets appear random in one dimension (price chart). But in reconstructed phase space, structure emerges—attractors, limit cycles, strange attractors. When we identify these structures, we can detect:
• Stable regions : Predictable behavior (trade opportunities)
• Chaotic regions : Unpredictable behavior (avoid trading)
• Critical transitions : Phase changes between regimes
Phase Space Magnitude Calculation:
phase_magnitude = sqrt(Σ ² for i = 0 to d-1)
This measures the "energy" or "momentum" of the market trajectory through phase space. High magnitude = strong directional move. Low magnitude = consolidation.
📊 RECURRENCE QUANTIFICATION ANALYSIS (RQA)
Once phase space is reconstructed, we analyze its recurrence structure —when does the system return near previous states?
Recurrence Plot Foundation:
A recurrence occurs when two phase space points are closer than threshold ε:
R(i,j) = 1 if ||X(i) - X(j)|| < ε, else 0
This creates a binary matrix showing when the system revisits similar states.
Key RQA Metrics:
1. Recurrence Rate (RR):
RR = (Number of recurrent points) / (Total possible pairs)
• RR near 0: System never repeats (highly stochastic)
• RR = 0.1-0.3: Moderate recurrence (tradeable patterns)
• RR > 0.5: System stuck in attractor (ranging market)
• RR near 1: System frozen (no dynamics)
Interpretation: Moderate recurrence is optimal —patterns exist but market isn't stuck.
2. Determinism (DET):
Measures what fraction of recurrences form diagonal structures in the recurrence plot. Diagonals indicate deterministic evolution (trajectory follows predictable paths).
DET = (Recurrence points on diagonals) / (Total recurrence points)
• DET < 0.3: Random dynamics
• DET = 0.3-0.7: Moderate determinism (patterns with noise)
• DET > 0.7: Strong determinism (technical patterns reliable)
Trading Implication: Signals are prioritized when DET > 0.3 (deterministic state) and RR is moderate (not stuck).
Threshold Selection (ε):
Default ε = 0.10 × std_dev means two states are "recurrent" if within 10% of a standard deviation. This is tight enough to require genuine similarity but loose enough to find patterns.
🔬 PERMUTATION ENTROPY: COMPLEXITY MEASUREMENT
Permutation entropy measures the complexity of a time series by analyzing the distribution of ordinal patterns.
Algorithm (Bandt & Pompe, 2002):
1. Take overlapping windows of length n (default n=4)
2. For each window, record the rank order pattern
Example: → pattern (ranks from lowest to highest)
3. Count frequency of each possible pattern
4. Calculate Shannon entropy of pattern distribution
Mathematical Formula:
H_perm = -Σ p(π) · ln(p(π))
Where π ranges over all n! possible permutations, p(π) is the probability of pattern π.
Normalized to :
H_norm = H_perm / ln(n!)
Interpretation:
• H < 0.3 : Very ordered, crystalline structure (strong trending)
• H = 0.3-0.5 : Ordered regime (tradeable with patterns)
• H = 0.5-0.7 : Moderate complexity (mixed conditions)
• H = 0.7-0.85 : Complex dynamics (challenging to trade)
• H > 0.85 : Maximum entropy (nearly random, avoid)
Entropy Regime Classification:
DRP classifies markets into five entropy regimes:
• CRYSTALLINE (H < 0.3): Maximum order, persistent trends
• ORDERED (H < 0.5): Clear patterns, momentum strategies work
• MODERATE (H < 0.7): Mixed dynamics, adaptive required
• COMPLEX (H < 0.85): High entropy, mean reversion better
• CHAOTIC (H ≥ 0.85): Near-random, minimize trading
Why Permutation Entropy?
Unlike traditional entropy methods requiring binning continuous data (losing information), permutation entropy:
• Works directly on time series
• Robust to monotonic transformations
• Computationally efficient
• Captures temporal structure, not just distribution
• Immune to outliers (uses ranks, not values)
⚡ LYAPUNOV EXPONENT: CHAOS vs STABILITY
The Lyapunov exponent λ measures sensitivity to initial conditions —the hallmark of chaos.
Physical Meaning:
Two trajectories starting infinitely close will diverge at exponential rate e^(λt):
Distance(t) ≈ Distance(0) × e^(λt)
Interpretation:
• λ > 0 : Positive Lyapunov exponent = CHAOS
- Small errors grow exponentially
- Long-term prediction impossible
- System is sensitive, unpredictable
- AVOID TRADING
• λ ≈ 0 : Near-zero = CRITICAL STATE
- Edge of chaos
- Transition zone between order and disorder
- Moderate predictability
- PROCEED WITH CAUTION
• λ < 0 : Negative Lyapunov exponent = STABLE
- Small errors decay
- Trajectories converge
- System is predictable
- OPTIMAL FOR TRADING
Estimation Method:
DRP estimates λ by tracking how quickly nearby states diverge over a rolling window (default 20 bars):
For each bar i in window:
δ₀ = |x - x | (initial separation)
δ₁ = |x - x | (previous separation)
if δ₁ > 0:
ratio = δ₀ / δ₁
log_ratios += ln(ratio)
λ ≈ average(log_ratios)
Stability Classification:
• STABLE : λ < 0 (negative growth rate)
• CRITICAL : |λ| < 0.1 (near neutral)
• CHAOTIC : λ > 0.2 (strong positive growth)
Signal Filtering:
By default, NEXUS requires λ < 0 (stable regime) for signal confirmation. This filters out trades during chaotic periods when technical patterns break down.
📐 HIGUCHI FRACTAL DIMENSION
Fractal dimension measures self-similarity and complexity of the price trajectory.
Theoretical Background:
A curve's fractal dimension D ranges from 1 (smooth line) to 2 (space-filling curve):
• D ≈ 1.0 : Smooth, persistent trending
• D ≈ 1.5 : Random walk (Brownian motion)
• D ≈ 2.0 : Highly irregular, space-filling
Higuchi Method (1988):
For a time series of length N, construct k different curves by taking every k-th point:
L(k) = (1/k) × Σ|x - x | × (N-1)/(⌊(N-m)/k⌋ × k)
For different values of k (1 to k_max), calculate L(k). The fractal dimension is the slope of log(L(k)) vs log(1/k):
D = slope of log(L) vs log(1/k)
Market Interpretation:
• D < 1.35 : Strong trending, persistent (Hurst > 0.5)
- TRENDING regime
- Momentum strategies favored
- Breakouts likely to continue
• D = 1.35-1.45 : Moderate persistence
- PERSISTENT regime
- Trend-following with caution
- Patterns have meaning
• D = 1.45-1.55 : Random walk territory
- RANDOM regime
- Efficiency hypothesis holds
- Technical analysis least reliable
• D = 1.55-1.65 : Anti-persistent (mean-reverting)
- ANTI-PERSISTENT regime
- Oscillator strategies work
- Overbought/oversold meaningful
• D > 1.65 : Highly complex, choppy
- COMPLEX regime
- Avoid directional bets
- Wait for regime change
Signal Filtering:
Resonance signals (secondary signal type) require D < 1.5, indicating trending or persistent dynamics where momentum has meaning.
🔗 TRANSFER ENTROPY: CAUSAL INFORMATION FLOW
Transfer entropy measures directed causal influence between time series—not just correlation, but actual information transfer.
Schreiber's Definition (2000):
Transfer entropy from X to Y measures how much knowing X's past reduces uncertainty about Y's future:
TE(X→Y) = H(Y_future | Y_past) - H(Y_future | Y_past, X_past)
Where H is Shannon entropy.
Key Properties:
1. Directional : TE(X→Y) ≠ TE(Y→X) in general
2. Non-linear : Detects complex causal relationships
3. Model-free : No assumptions about functional form
4. Lag-independent : Captures delayed causal effects
Three Causal Flows Measured:
1. Volume → Price (TE_V→P):
Measures how much volume patterns predict price changes.
• TE > 0 : Volume provides predictive information about price
- Institutional participation driving moves
- Volume confirms direction
- High reliability
• TE ≈ 0 : No causal flow (weak volume/price relationship)
- Volume uninformative
- Caution on signals
• TE < 0 (rare): Suggests price leading volume
- Potentially manipulated or thin market
2. Volatility → Momentum (TE_σ→M):
Does volatility expansion predict momentum changes?
• Positive TE : Volatility precedes momentum shifts
- Breakout dynamics
- Regime transitions
3. Structure → Price (TE_S→P):
Do support/resistance patterns causally influence price?
• Positive TE : Structural levels have causal impact
- Technical levels matter
- Market respects structure
Net Causal Flow:
Net_Flow = TE_V→P + 0.5·TE_σ→M + TE_S→P
• Net > +0.1 : Bullish causal structure
• Net < -0.1 : Bearish causal structure
• |Net| < 0.1 : Neutral/unclear causation
Causal Gate:
For signal confirmation, NEXUS requires:
• Buy signals : TE_V→P > 0 AND Net_Flow > 0.05
• Sell signals : TE_V→P > 0 AND Net_Flow < -0.05
This ensures volume is actually driving price (causal support exists), not just correlated noise.
Implementation Note:
Computing true transfer entropy requires discretizing continuous data into bins (default 6 bins) and estimating joint probability distributions. NEXUS uses a hybrid approach combining TE theory with autocorrelation structure and lagged cross-correlation to approximate information transfer in computationally efficient manner.
🌊 HILBERT PHASE COHERENCE
Phase coherence measures synchronization across market dimensions using Hilbert transform analysis.
Hilbert Transform Theory:
For a signal x(t), the Hilbert transform H (t) creates an analytic signal:
z(t) = x(t) + i·H (t) = A(t)·e^(iφ(t))
Where:
• A(t) = Instantaneous amplitude
• φ(t) = Instantaneous phase
Instantaneous Phase:
φ(t) = arctan(H (t) / x(t))
The phase represents where the signal is in its natural cycle—analogous to position on a unit circle.
Four Dimensions Analyzed:
1. Momentum Phase : Phase of price rate-of-change
2. Volume Phase : Phase of volume intensity
3. Volatility Phase : Phase of ATR cycles
4. Structure Phase : Phase of position within range
Phase Locking Value (PLV):
For two signals with phases φ₁(t) and φ₂(t), PLV measures phase synchronization:
PLV = |⟨e^(i(φ₁(t) - φ₂(t)))⟩|
Where ⟨·⟩ is time average over window.
Interpretation:
• PLV = 0 : Completely random phase relationship (no synchronization)
• PLV = 0.5 : Moderate phase locking
• PLV = 1 : Perfect synchronization (phases locked)
Pairwise PLV Calculations:
• PLV_momentum-volume : Are momentum and volume cycles synchronized?
• PLV_momentum-structure : Are momentum cycles aligned with structure?
• PLV_volume-structure : Are volume and structural patterns in phase?
Overall Phase Coherence:
Coherence = (PLV_mom-vol + PLV_mom-struct + PLV_vol-struct) / 3
Signal Confirmation:
Emergence signals require coherence ≥ threshold (default 0.70):
• Below 0.70: Dimensions not synchronized, no coherent market state
• Above 0.70: Dimensions in phase, coherent behavior emerging
Coherence Direction:
The summed phase angles indicate whether synchronized dimensions point bullish or bearish:
Direction = sin(φ_momentum) + 0.5·sin(φ_volume) + 0.5·sin(φ_structure)
• Direction > 0 : Phases pointing upward (bullish synchronization)
• Direction < 0 : Phases pointing downward (bearish synchronization)
🌀 EMERGENCE SCORE: MULTI-DIMENSIONAL ALIGNMENT
The emergence score aggregates all complexity metrics into a single 0-1 value representing market coherence.
Eight Components with Weights:
1. Phase Coherence (20%):
Direct contribution: coherence × 0.20
Measures dimensional synchronization.
2. Entropy Regime (15%):
Contribution: (0.6 - H_perm) / 0.6 × 0.15 if H < 0.6, else 0
Rewards low entropy (ordered, predictable states).
3. Lyapunov Stability (12%):
• λ < 0 (stable): +0.12
• |λ| < 0.1 (critical): +0.08
• λ > 0.2 (chaotic): +0.0
Requires stable, predictable dynamics.
4. Fractal Dimension Trending (12%):
Contribution: (1.45 - D) / 0.45 × 0.12 if D < 1.45, else 0
Rewards trending fractal structure (D < 1.45).
5. Dimensional Resonance (12%):
Contribution: |dimensional_resonance| × 0.12
Measures alignment across momentum, volume, structure, volatility dimensions.
6. Causal Flow Strength (9%):
Contribution: |net_causal_flow| × 0.09
Rewards strong causal relationships.
7. Phase Space Embedding (10%):
Contribution: min(|phase_magnitude_norm|, 3.0) / 3.0 × 0.10 if |magnitude| > 1.0
Rewards strong trajectory in reconstructed phase space.
8. Recurrence Quality (10%):
Contribution: determinism × 0.10 if DET > 0.3 AND 0.1 < RR < 0.8
Rewards deterministic patterns with moderate recurrence.
Total Emergence Score:
E = Σ(components) ∈
Capped at 1.0 maximum.
Emergence Direction:
Separate calculation determining bullish vs bearish:
• Dimensional resonance sign
• Net causal flow sign
• Phase magnitude correlation with momentum
Signal Threshold:
Default emergence_threshold = 0.75 means 75% of maximum possible emergence score required to trigger signals.
Why Emergence Matters:
Traditional indicators measure single dimensions. Emergence detects self-organization —when multiple independent dimensions spontaneously align. This is the market equivalent of a phase transition in physics, where microscopic chaos gives way to macroscopic order.
These are the highest-probability trade opportunities because the entire system is resonating in the same direction.
🎯 SIGNAL GENERATION: EMERGENCE vs RESONANCE
DRP generates two tiers of signals with different requirements:
TIER 1: EMERGENCE SIGNALS (Primary)
Requirements:
1. Emergence score ≥ threshold (default 0.75)
2. Phase coherence ≥ threshold (default 0.70)
3. Emergence direction > 0.2 (bullish) or < -0.2 (bearish)
4. Causal gate passed (if enabled): TE_V→P > 0 and net_flow confirms direction
5. Stability zone (if enabled): λ < 0 or |λ| < 0.1
6. Price confirmation: Close > open (bulls) or close < open (bears)
7. Cooldown satisfied: bars_since_signal ≥ cooldown_period
EMERGENCE BUY:
• All above conditions met with bullish direction
• Market has achieved coherent bullish state
• Multiple dimensions synchronized upward
EMERGENCE SELL:
• All above conditions met with bearish direction
• Market has achieved coherent bearish state
• Multiple dimensions synchronized downward
Premium Emergence:
When signal_quality (emergence_score × phase_coherence) > 0.7:
• Displayed as ★ star symbol
• Highest conviction trades
• Maximum dimensional alignment
Standard Emergence:
When signal_quality 0.5-0.7:
• Displayed as ◆ diamond symbol
• Strong signals but not perfect alignment
TIER 2: RESONANCE SIGNALS (Secondary)
Requirements:
1. Dimensional resonance > +0.6 (bullish) or < -0.6 (bearish)
2. Fractal dimension < 1.5 (trending/persistent regime)
3. Price confirmation matches direction
4. NOT in chaotic regime (λ < 0.2)
5. Cooldown satisfied
6. NO emergence signal firing (resonance is fallback)
RESONANCE BUY:
• Dimensional alignment without full emergence
• Trending fractal structure
• Moderate conviction
RESONANCE SELL:
• Dimensional alignment without full emergence
• Bearish resonance with trending structure
• Moderate conviction
Displayed as small ▲/▼ triangles with transparency.
Signal Hierarchy:
IF emergence conditions met:
Fire EMERGENCE signal (★ or ◆)
ELSE IF resonance conditions met:
Fire RESONANCE signal (▲ or ▼)
ELSE:
No signal
Cooldown System:
After any signal fires, cooldown_period (default 5 bars) must elapse before next signal. This prevents signal clustering during persistent conditions.
Cooldown tracks using bar_index:
bars_since_signal = current_bar_index - last_signal_bar_index
cooldown_ok = bars_since_signal >= cooldown_period
🎨 VISUAL SYSTEM: MULTI-LAYER COMPLEXITY
DRP provides rich visual feedback across four distinct layers:
LAYER 1: COHERENCE FIELD (Background)
Colored background intensity based on phase coherence:
• No background : Coherence < 0.5 (incoherent state)
• Faint glow : Coherence 0.5-0.7 (building coherence)
• Stronger glow : Coherence > 0.7 (coherent state)
Color:
• Cyan/teal: Bullish coherence (direction > 0)
• Red/magenta: Bearish coherence (direction < 0)
• Blue: Neutral coherence (direction ≈ 0)
Transparency: 98 minus (coherence_intensity × 10), so higher coherence = more visible.
LAYER 2: STABILITY/CHAOS ZONES
Background color indicating Lyapunov regime:
• Green tint (95% transparent): λ < 0, STABLE zone
- Safe to trade
- Patterns meaningful
• Gold tint (90% transparent): |λ| < 0.1, CRITICAL zone
- Edge of chaos
- Moderate risk
• Red tint (85% transparent): λ > 0.2, CHAOTIC zone
- Avoid trading
- Unpredictable behavior
LAYER 3: DIMENSIONAL RIBBONS
Three EMAs representing dimensional structure:
• Fast ribbon : EMA(8) in cyan/teal (fast dynamics)
• Medium ribbon : EMA(21) in blue (intermediate)
• Slow ribbon : EMA(55) in red/magenta (slow dynamics)
Provides visual reference for multi-scale structure without cluttering with raw phase space data.
LAYER 4: CAUSAL FLOW LINE
A thicker line plotted at EMA(13) colored by net causal flow:
• Cyan/teal : Net_flow > +0.1 (bullish causation)
• Red/magenta : Net_flow < -0.1 (bearish causation)
• Gray : |Net_flow| < 0.1 (neutral causation)
Shows real-time direction of information flow.
EMERGENCE FLASH:
Strong background flash when emergence signals fire:
• Cyan flash for emergence buy
• Red flash for emergence sell
• 80% transparency for visibility without obscuring price
📊 COMPREHENSIVE DASHBOARD
Real-time monitoring of all complexity metrics:
HEADER:
• 🌀 DRP branding with gold accent
CORE METRICS:
EMERGENCE:
• Progress bar (█ filled, ░ empty) showing 0-100%
• Percentage value
• Direction arrow (↗ bull, ↘ bear, → neutral)
• Color-coded: Green/gold if active, gray if low
COHERENCE:
• Progress bar showing phase locking value
• Percentage value
• Checkmark ✓ if ≥ threshold, circle ○ if below
• Color-coded: Cyan if coherent, gray if not
COMPLEXITY SECTION:
ENTROPY:
• Regime name (CRYSTALLINE/ORDERED/MODERATE/COMPLEX/CHAOTIC)
• Numerical value (0.00-1.00)
• Color: Green (ordered), gold (moderate), red (chaotic)
LYAPUNOV:
• State (STABLE/CRITICAL/CHAOTIC)
• Numerical value (typically -0.5 to +0.5)
• Status indicator: ● stable, ◐ critical, ○ chaotic
• Color-coded by state
FRACTAL:
• Regime (TRENDING/PERSISTENT/RANDOM/ANTI-PERSIST/COMPLEX)
• Dimension value (1.0-2.0)
• Color: Cyan (trending), gold (random), red (complex)
PHASE-SPACE:
• State (STRONG/ACTIVE/QUIET)
• Normalized magnitude value
• Parameters display: d=5 τ=3
CAUSAL SECTION:
CAUSAL:
• Direction (BULL/BEAR/NEUTRAL)
• Net flow value
• Flow indicator: →P (to price), P← (from price), ○ (neutral)
V→P:
• Volume-to-price transfer entropy
• Small display showing specific TE value
DIMENSIONAL SECTION:
RESONANCE:
• Progress bar of absolute resonance
• Signed value (-1 to +1)
• Color-coded by direction
RECURRENCE:
• Recurrence rate percentage
• Determinism percentage display
• Color-coded: Green if high quality
STATE SECTION:
STATE:
• Current mode: EMERGENCE / RESONANCE / CHAOS / SCANNING
• Icon: 🚀 (emergence buy), 💫 (emergence sell), ▲ (resonance buy), ▼ (resonance sell), ⚠ (chaos), ◎ (scanning)
• Color-coded by state
SIGNALS:
• E: count of emergence signals
• R: count of resonance signals
⚙️ KEY PARAMETERS EXPLAINED
Phase Space Configuration:
• Embedding Dimension (3-10, default 5): Reconstruction dimension
- Low (3-4): Simple dynamics, faster computation
- Medium (5-6): Balanced (recommended)
- High (7-10): Complex dynamics, more data needed
- Rule: d ≥ 2D+1 where D is true dimension
• Time Delay (τ) (1-10, default 3): Embedding lag
- Fast markets: 1-2
- Normal: 3-4
- Slow markets: 5-10
- Optimal: First minimum of mutual information (often 2-4)
• Recurrence Threshold (ε) (0.01-0.5, default 0.10): Phase space proximity
- Tight (0.01-0.05): Very similar states only
- Medium (0.08-0.15): Balanced
- Loose (0.20-0.50): Liberal matching
Entropy & Complexity:
• Permutation Order (3-7, default 4): Pattern length
- Low (3): 6 patterns, fast but coarse
- Medium (4-5): 24-120 patterns, balanced
- High (6-7): 720-5040 patterns, fine-grained
- Note: Requires window >> order! for stability
• Entropy Window (15-100, default 30): Lookback for entropy
- Short (15-25): Responsive to changes
- Medium (30-50): Stable measure
- Long (60-100): Very smooth, slow adaptation
• Lyapunov Window (10-50, default 20): Stability estimation window
- Short (10-15): Fast chaos detection
- Medium (20-30): Balanced
- Long (40-50): Stable λ estimate
Causal Inference:
• Enable Transfer Entropy (default ON): Causality analysis
- Keep ON for full system functionality
• TE History Length (2-15, default 5): Causal lookback
- Short (2-4): Quick causal detection
- Medium (5-8): Balanced
- Long (10-15): Deep causal analysis
• TE Discretization Bins (4-12, default 6): Binning granularity
- Few (4-5): Coarse, robust, needs less data
- Medium (6-8): Balanced
- Many (9-12): Fine-grained, needs more data
Phase Coherence:
• Enable Phase Coherence (default ON): Synchronization detection
- Keep ON for emergence detection
• Coherence Threshold (0.3-0.95, default 0.70): PLV requirement
- Loose (0.3-0.5): More signals, lower quality
- Balanced (0.6-0.75): Recommended
- Strict (0.8-0.95): Rare, highest quality
• Hilbert Smoothing (3-20, default 8): Phase smoothing
- Low (3-5): Responsive, noisier
- Medium (6-10): Balanced
- High (12-20): Smooth, more lag
Fractal Analysis:
• Enable Fractal Dimension (default ON): Complexity measurement
- Keep ON for full analysis
• Fractal K-max (4-20, default 8): Scaling range
- Low (4-6): Faster, less accurate
- Medium (7-10): Balanced
- High (12-20): Accurate, slower
• Fractal Window (30-200, default 50): FD lookback
- Short (30-50): Responsive FD
- Medium (60-100): Stable FD
- Long (120-200): Very smooth FD
Emergence Detection:
• Emergence Threshold (0.5-0.95, default 0.75): Minimum coherence
- Sensitive (0.5-0.65): More signals
- Balanced (0.7-0.8): Recommended
- Strict (0.85-0.95): Rare signals
• Require Causal Gate (default ON): TE confirmation
- ON: Only signal when causality confirms
- OFF: Allow signals without causal support
• Require Stability Zone (default ON): Lyapunov filter
- ON: Only signal when λ < 0 (stable) or |λ| < 0.1 (critical)
- OFF: Allow signals in chaotic regimes (risky)
• Signal Cooldown (1-50, default 5): Minimum bars between signals
- Fast (1-3): Rapid signal generation
- Normal (4-8): Balanced
- Slow (10-20): Very selective
- Ultra (25-50): Only major regime changes
Signal Configuration:
• Momentum Period (5-50, default 14): ROC calculation
• Structure Lookback (10-100, default 20): Support/resistance range
• Volatility Period (5-50, default 14): ATR calculation
• Volume MA Period (10-50, default 20): Volume normalization
Visual Settings:
• Customizable color scheme for all elements
• Toggle visibility for each layer independently
• Dashboard position (4 corners) and size (tiny/small/normal)
🎓 PROFESSIONAL USAGE PROTOCOL
Phase 1: System Familiarization (Week 1)
Goal: Understand complexity metrics and dashboard interpretation
Setup:
• Enable all features with default parameters
• Watch dashboard metrics for 500+ bars
• Do NOT trade yet
Actions:
• Observe emergence score patterns relative to price moves
• Note coherence threshold crossings and subsequent price action
• Watch entropy regime transitions (ORDERED → COMPLEX → CHAOTIC)
• Correlate Lyapunov state with signal reliability
• Track which signals appear (emergence vs resonance frequency)
Key Learning:
• When does emergence peak? (usually before major moves)
• What entropy regime produces best signals? (typically ORDERED or MODERATE)
• Does your instrument respect stability zones? (stable λ = better signals)
Phase 2: Parameter Optimization (Week 2)
Goal: Tune system to instrument characteristics
Requirements:
• Understand basic dashboard metrics from Phase 1
• Have 1000+ bars of history loaded
Embedding Dimension & Time Delay:
• If signals very rare: Try lower dimension (d=3-4) or shorter delay (τ=2)
• If signals too frequent: Try higher dimension (d=6-7) or longer delay (τ=4-5)
• Sweet spot: 4-8 emergence signals per 100 bars
Coherence Threshold:
• Check dashboard: What's typical coherence range?
• If coherence rarely exceeds 0.70: Lower threshold to 0.60-0.65
• If coherence often >0.80: Can raise threshold to 0.75-0.80
• Goal: Signals fire during top 20-30% of coherence values
Emergence Threshold:
• If too few signals: Lower to 0.65-0.70
• If too many signals: Raise to 0.80-0.85
• Balance with coherence threshold—both must be met
Phase 3: Signal Quality Assessment (Weeks 3-4)
Goal: Verify signals have edge via paper trading
Requirements:
• Parameters optimized per Phase 2
• 50+ signals generated
• Detailed notes on each signal
Paper Trading Protocol:
• Take EVERY emergence signal (★ and ◆)
• Optional: Take resonance signals (▲/▼) separately to compare
• Use simple exit: 2R target, 1R stop (ATR-based)
• Track: Win rate, average R-multiple, maximum consecutive losses
Quality Metrics:
• Premium emergence (★) : Should achieve >55% WR
• Standard emergence (◆) : Should achieve >50% WR
• Resonance signals : Should achieve >45% WR
• Overall : If <45% WR, system not suitable for this instrument/timeframe
Red Flags:
• Win rate <40%: Wrong instrument or parameters need major adjustment
• Max consecutive losses >10: System not working in current regime
• Profit factor <1.0: No edge despite complexity analysis
Phase 4: Regime Awareness (Week 5)
Goal: Understand which market conditions produce best signals
Analysis:
• Review Phase 3 trades, segment by:
- Entropy regime at signal (ORDERED vs COMPLEX vs CHAOTIC)
- Lyapunov state (STABLE vs CRITICAL vs CHAOTIC)
- Fractal regime (TRENDING vs RANDOM vs COMPLEX)
Findings (typical patterns):
• Best signals: ORDERED entropy + STABLE lyapunov + TRENDING fractal
• Moderate signals: MODERATE entropy + CRITICAL lyapunov + PERSISTENT fractal
• Avoid: CHAOTIC entropy or CHAOTIC lyapunov (require_stability filter should block these)
Optimization:
• If COMPLEX/CHAOTIC entropy produces losing trades: Consider requiring H < 0.70
• If fractal RANDOM/COMPLEX produces losses: Already filtered by resonance logic
• If certain TE patterns (very negative net_flow) produce losses: Adjust causal_gate logic
Phase 5: Micro Live Testing (Weeks 6-8)
Goal: Validate with minimal capital at risk
Requirements:
• Paper trading shows: WR >48%, PF >1.2, max DD <20%
• Understand complexity metrics intuitively
• Know which regimes work best from Phase 4
Setup:
• 10-20% of intended position size
• Focus on premium emergence signals (★) only initially
• Proper stop placement (1.5-2.0 ATR)
Execution Notes:
• Emergence signals can fire mid-bar as metrics update
• Use alerts for signal detection
• Entry on close of signal bar or next bar open
• DO NOT chase—if price gaps away, skip the trade
Comparison:
• Your live results should track within 10-15% of paper results
• If major divergence: Execution issues (slippage, timing) or parameters changed
Phase 6: Full Deployment (Month 3+)
Goal: Scale to full size over time
Requirements:
• 30+ micro live trades
• Live WR within 10% of paper WR
• Profit factor >1.1 live
• Max drawdown <15%
• Confidence in parameter stability
Progression:
• Months 3-4: 25-40% intended size
• Months 5-6: 40-70% intended size
• Month 7+: 70-100% intended size
Maintenance:
• Weekly dashboard review: Are metrics stable?
• Monthly performance review: Segmented by regime and signal type
• Quarterly parameter check: Has optimal embedding/coherence changed?
Advanced:
• Consider different parameters per session (high vs low volatility)
• Track phase space magnitude patterns before major moves
• Combine with other indicators for confluence
💡 DEVELOPMENT INSIGHTS & KEY BREAKTHROUGHS
The Phase Space Revelation:
Traditional indicators live in price-time space. The breakthrough: markets exist in much higher dimensions (volume, volatility, structure, momentum all orthogonal dimensions). Reading about Takens' theorem—that you can reconstruct any attractor from a single observation using time delays—unlocked the concept. Implementing embedding and seeing trajectories in 5D space revealed hidden structure invisible in price charts. Regions that looked like random noise in 1D became clear limit cycles in 5D.
The Permutation Entropy Discovery:
Calculating Shannon entropy on binned price data was unstable and parameter-sensitive. Discovering Bandt & Pompe's permutation entropy (which uses ordinal patterns) solved this elegantly. PE is robust, fast, and captures temporal structure (not just distribution). Testing showed PE < 0.5 periods had 18% higher signal win rate than PE > 0.7 periods. Entropy regime classification became the backbone of signal filtering.
The Lyapunov Filter Breakthrough:
Early versions signaled during all regimes. Win rate hovered at 42%—barely better than random. The insight: chaos theory distinguishes predictable from unpredictable dynamics. Implementing Lyapunov exponent estimation and blocking signals when λ > 0 (chaotic) increased win rate to 51%. Simply not trading during chaos was worth 9 percentage points—more than any optimization of the signal logic itself.
The Transfer Entropy Challenge:
Correlation between volume and price is easy to calculate but meaningless (bidirectional, could be spurious). Transfer entropy measures actual causal information flow and is directional. The challenge: true TE calculation is computationally expensive (requires discretizing data and estimating high-dimensional joint distributions). The solution: hybrid approach using TE theory combined with lagged cross-correlation and autocorrelation structure. Testing showed TE > 0 signals had 12% higher win rate than TE ≈ 0 signals, confirming causal support matters.
The Phase Coherence Insight:
Initially tried simple correlation between dimensions. Not predictive. Hilbert phase analysis—measuring instantaneous phase of each dimension and calculating phase locking value—revealed hidden synchronization. When PLV > 0.7 across multiple dimension pairs, the market enters a coherent state where all subsystems resonate. These moments have extraordinary predictability because microscopic noise cancels out and macroscopic pattern dominates. Emergence signals require high PLV for this reason.
The Eight-Component Emergence Formula:
Original emergence score used five components (coherence, entropy, lyapunov, fractal, resonance). Performance was good but not exceptional. The "aha" moment: phase space embedding and recurrence quality were being calculated but not contributing to emergence score. Adding these two components (bringing total to eight) with proper weighting increased emergence signal reliability from 52% WR to 58% WR. All calculated metrics must contribute to the final score. If you compute something, use it.
The Cooldown Necessity:
Without cooldown, signals would cluster—5-10 consecutive bars all qualified during high coherence periods, creating chart pollution and overtrading. Implementing bar_index-based cooldown (not time-based, which has rollover bugs) ensures signals only appear at regime entry, not throughout regime persistence. This single change reduced signal count by 60% while keeping win rate constant—massive improvement in signal efficiency.
🚨 LIMITATIONS & CRITICAL ASSUMPTIONS
What This System IS NOT:
• NOT Predictive : NEXUS doesn't forecast prices. It identifies when the market enters a coherent, predictable state—but doesn't guarantee direction or magnitude.
• NOT Holy Grail : Typical performance is 50-58% win rate with 1.5-2.0 avg R-multiple. This is probabilistic edge from complexity analysis, not certainty.
• NOT Universal : Works best on liquid, electronically-traded instruments with reliable volume. Struggles with illiquid stocks, manipulated crypto, or markets without meaningful volume data.
• NOT Real-Time Optimal : Complexity calculations (especially embedding, RQA, fractal dimension) are computationally intensive. Dashboard updates may lag by 1-2 seconds on slower connections.
• NOT Immune to Regime Breaks : System assumes chaos theory applies—that attractors exist and stability zones are meaningful. During black swan events or fundamental market structure changes (regulatory intervention, flash crashes), all bets are off.
Core Assumptions:
1. Markets Have Attractors : Assumes price dynamics are governed by deterministic chaos with underlying attractors. Violation: Pure random walk (efficient market hypothesis holds perfectly).
2. Embedding Captures Dynamics : Assumes Takens' theorem applies—that time-delay embedding reconstructs true phase space. Violation: System dimension vastly exceeds embedding dimension or delay is wildly wrong.
3. Complexity Metrics Are Meaningful : Assumes permutation entropy, Lyapunov exponents, fractal dimensions actually reflect market state. Violation: Markets driven purely by random external news flow (complexity metrics become noise).
4. Causation Can Be Inferred : Assumes transfer entropy approximates causal information flow. Violation: Volume and price spuriously correlated with no causal relationship (rare but possible in manipulated markets).
5. Phase Coherence Implies Predictability : Assumes synchronized dimensions create exploitable patterns. Violation: Coherence by chance during random period (false positive).
6. Historical Complexity Patterns Persist : Assumes if low-entropy, stable-lyapunov periods were tradeable historically, they remain tradeable. Violation: Fundamental regime change (market structure shifts, e.g., transition from floor trading to HFT).
Performs Best On:
• ES, NQ, RTY (major US index futures - high liquidity, clean volume data)
• Major forex pairs: EUR/USD, GBP/USD, USD/JPY (24hr markets, good for phase analysis)
• Liquid commodities: CL (crude oil), GC (gold), NG (natural gas)
• Large-cap stocks: AAPL, MSFT, GOOGL, TSLA (>$10M daily volume, meaningful structure)
• Major crypto on reputable exchanges: BTC, ETH on Coinbase/Kraken (avoid Binance due to manipulation)
Performs Poorly On:
• Low-volume stocks (<$1M daily volume) - insufficient liquidity for complexity analysis
• Exotic forex pairs - erratic spreads, thin volume
• Illiquid altcoins - wash trading, bot manipulation invalidates volume analysis
• Pre-market/after-hours - gappy, thin, different dynamics
• Binary events (earnings, FDA approvals) - discontinuous jumps violate dynamical systems assumptions
• Highly manipulated instruments - spoofing and layering create false coherence
Known Weaknesses:
• Computational Lag : Complexity calculations require iterating over windows. On slow connections, dashboard may update 1-2 seconds after bar close. Signals may appear delayed.
• Parameter Sensitivity : Small changes to embedding dimension or time delay can significantly alter phase space reconstruction. Requires careful calibration per instrument.
• Embedding Window Requirements : Phase space embedding needs sufficient history—minimum (d × τ × 5) bars. If embedding_dimension=5 and time_delay=3, need 75+ bars. Early bars will be unreliable.
• Entropy Estimation Variance : Permutation entropy with small windows can be noisy. Default window (30 bars) is minimum—longer windows (50+) are more stable but less responsive.
• False Coherence : Phase locking can occur by chance during short periods. Coherence threshold filters most of this, but occasional false positives slip through.
• Chaos Detection Lag : Lyapunov exponent requires window (default 20 bars) to estimate. Market can enter chaos and produce bad signal before λ > 0 is detected. Stability filter helps but doesn't eliminate this.
• Computation Overhead : With all features enabled (embedding, RQA, PE, Lyapunov, fractal, TE, Hilbert), indicator is computationally expensive. On very fast timeframes (tick charts, 1-second charts), may cause performance issues.
⚠️ RISK DISCLOSURE
Trading futures, forex, stocks, options, and cryptocurrencies involves substantial risk of loss and is not suitable for all investors. Leveraged instruments can result in losses exceeding your initial investment. Past performance, whether backtested or live, is not indicative of future results.
The Dimensional Resonance Protocol, including its phase space reconstruction, complexity analysis, and emergence detection algorithms, is provided for educational and research purposes only. It is not financial advice, investment advice, or a recommendation to buy or sell any security or instrument.
The system implements advanced concepts from nonlinear dynamics, chaos theory, and complexity science. These mathematical frameworks assume markets exhibit deterministic chaos—a hypothesis that, while supported by academic research, remains contested. Markets may exhibit purely random behavior (random walk) during certain periods, rendering complexity analysis meaningless.
Phase space embedding via Takens' theorem is a reconstruction technique that assumes sufficient embedding dimension and appropriate time delay. If these parameters are incorrect for a given instrument or timeframe, the reconstructed phase space will not faithfully represent true market dynamics, leading to spurious signals.
Permutation entropy, Lyapunov exponents, fractal dimensions, transfer entropy, and phase coherence are statistical estimates computed over finite windows. All have inherent estimation error. Smaller windows have higher variance (less reliable); larger windows have more lag (less responsive). There is no universally optimal window size.
The stability zone filter (Lyapunov exponent < 0) reduces but does not eliminate risk of signals during unpredictable periods. Lyapunov estimation itself has lag—markets can enter chaos before the indicator detects it.
Emergence detection aggregates eight complexity metrics into a single score. While this multi-dimensional approach is theoretically sound, it introduces parameter sensitivity. Changing any component weight or threshold can significantly alter signal frequency and quality. Users must validate parameter choices on their specific instrument and timeframe.
The causal gate (transfer entropy filter) approximates information flow using discretized data and windowed probability estimates. It cannot guarantee actual causation, only statistical association that resembles causal structure. Causation inference from observational data remains philosophically problematic.
Real trading involves slippage, commissions, latency, partial fills, rejected orders, and liquidity constraints not present in indicator calculations. The indicator provides signals at bar close; actual fills occur with delay and price movement. Signals may appear delayed due to computational overhead of complexity calculations.
Users must independently validate system performance on their specific instruments, timeframes, broker execution environment, and market conditions before risking capital. Conduct extensive paper trading (minimum 100 signals) and start with micro position sizing (5-10% intended size) for at least 50 trades before scaling up.
Never risk more capital than you can afford to lose completely. Use proper position sizing (0.5-2% risk per trade maximum). Implement stop losses on every trade. Maintain adequate margin/capital reserves. Understand that most retail traders lose money. Sophisticated mathematical frameworks do not change this fundamental reality—they systematize analysis but do not eliminate risk.
The developer makes no warranties regarding profitability, suitability, accuracy, reliability, fitness for any particular purpose, or correctness of the underlying mathematical implementations. Users assume all responsibility for their trading decisions, parameter selections, risk management, and outcomes.
By using this indicator, you acknowledge that you have read, understood, and accepted these risk disclosures and limitations, and you accept full responsibility for all trading activity and potential losses.
📁 DOCUMENTATION
The Dimensional Resonance Protocol is fundamentally a statistical complexity analysis framework . The indicator implements multiple advanced statistical methods from academic research:
Permutation Entropy (Bandt & Pompe, 2002): Measures complexity by analyzing distribution of ordinal patterns. Pure statistical concept from information theory.
Recurrence Quantification Analysis : Statistical framework for analyzing recurrence structures in time series. Computes recurrence rate, determinism, and diagonal line statistics.
Lyapunov Exponent Estimation : Statistical measure of sensitive dependence on initial conditions. Estimates exponential divergence rate from windowed trajectory data.
Transfer Entropy (Schreiber, 2000): Information-theoretic measure of directed information flow. Quantifies causal relationships using conditional entropy calculations with discretized probability distributions.
Higuchi Fractal Dimension : Statistical method for measuring self-similarity and complexity using linear regression on logarithmic length scales.
Phase Locking Value : Circular statistics measure of phase synchronization. Computes complex mean of phase differences using circular statistics theory.
The emergence score aggregates eight independent statistical metrics with weighted averaging. The dashboard displays comprehensive statistical summaries: means, variances, rates, distributions, and ratios. Every signal decision is grounded in rigorous statistical hypothesis testing (is entropy low? is lyapunov negative? is coherence above threshold?).
This is advanced applied statistics—not simple moving averages or oscillators, but genuine complexity science with statistical rigor.
Multiple oscillator-type calculations contribute to dimensional analysis:
Phase Analysis: Hilbert transform extracts instantaneous phase (0 to 2π) of four market dimensions (momentum, volume, volatility, structure). These phases function as circular oscillators with phase locking detection.
Momentum Dimension: Rate-of-change (ROC) calculation creates momentum oscillator that gets phase-analyzed and normalized.
Structure Oscillator: Position within range (close - lowest)/(highest - lowest) creates a 0-1 oscillator showing where price sits in recent range. This gets embedded and phase-analyzed.
Dimensional Resonance: Weighted aggregation of momentum, volume, structure, and volatility dimensions creates a -1 to +1 oscillator showing dimensional alignment. Similar to traditional oscillators but multi-dimensional.
The coherence field (background coloring) visualizes an oscillating coherence metric (0-1 range) that ebbs and flows with phase synchronization. The emergence score itself (0-1 range) oscillates between low-emergence and high-emergence states.
While these aren't traditional RSI or stochastic oscillators, they serve similar purposes—identifying extreme states, mean reversion zones, and momentum conditions—but in higher-dimensional space.
Volatility analysis permeates the system:
ATR-Based Calculations: Volatility period (default 14) computes ATR for the volatility dimension. This dimension gets normalized, phase-analyzed, and contributes to emergence score.
Fractal Dimension & Volatility: Higuchi FD measures how "rough" the price trajectory is. Higher FD (>1.6) correlates with higher volatility/choppiness. FD < 1.4 indicates smooth trends (lower effective volatility).
Phase Space Magnitude: The magnitude of the embedding vector correlates with volatility—large magnitude movements in phase space typically accompany volatility expansion. This is the "energy" of the market trajectory.
Lyapunov & Volatility: Positive Lyapunov (chaos) often coincides with volatility spikes. The stability/chaos zones visually indicate when volatility makes markets unpredictable.
Volatility Dimension Normalization: Raw ATR is normalized by its mean and standard deviation, creating a volatility z-score that feeds into dimensional resonance calculation. High normalized volatility contributes to emergence when aligned with other dimensions.
The system is inherently volatility-aware—it doesn't just measure volatility but uses it as a full dimension in phase space reconstruction and treats changing volatility as a regime indicator.
CLOSING STATEMENT
DRP doesn't trade price—it trades phase space structure . It doesn't chase patterns—it detects emergence . It doesn't guess at trends—it measures coherence .
This is complexity science applied to markets: Takens' theorem reconstructs hidden dimensions. Permutation entropy measures order. Lyapunov exponents detect chaos. Transfer entropy reveals causation. Hilbert phases find synchronization. Fractal dimensions quantify self-similarity.
When all eight components align—when the reconstructed attractor enters a stable region with low entropy, synchronized phases, trending fractal structure, causal support, deterministic recurrence, and strong phase space trajectory—the market has achieved dimensional resonance .
These are the highest-probability moments. Not because an indicator said so. Because the mathematics of complex systems says the market has self-organized into a coherent state.
Most indicators see shadows on the wall. DRP reconstructs the cave.
"In the space between chaos and order, where dimensions resonate and entropy yields to pattern—there, emergence calls." DRP
Taking you to school. — Dskyz, Trade with insight. Trade with anticipation.
Market Momentum in Premium & Discount-Delta @MaxMaserati 3.0Market Delta Momentum in Premium & Discount-Delta @MaxMaserati 3.0
══════════════════════════════════════════════════════
Overview
The MMPD 3.0 indicator is an advanced momentum oscillator that combines market structure analysis with institutional order flow concepts. It transforms price action into a normalized 0-100 scale, identifying premium and discount zones where institutional traders typically operate, while simultaneously tracking momentum through specialized body close candles and multi-timeframe synchronization.
This indicator is designed for traders who want to:
══════════════════════════════════════════════════════
Identify high-probability reversal zones using premium/discount analysis
Track momentum divergence between price and the MMPD oscillator
Recognize institutional rejection and acceptance zones
Synchronize multiple timeframes for confluence-based trading decisions
Core Methodology
══════════════════════════════════════════════════════
MMPD Calculation
The Market Delta Momentum indicator uses a proprietary calculation that:
Normalizes price position within a specific period range (0-100 scale)
Applies double smoothing to filter noise
Calculates a balance line (similar to a moving average) to determine bullish/bearish momentum
The relationship between the MMPD line and balance line creates directional candles
Key Zones:
══════════════════════════════════════════════════════
90-100: Extreme Premium (Institutional Selling Zone)
80-90: High Premium (Caution Zone)
65-80: Premium (Bullish Bias)
50-65: Light Premium (Neutral-Bullish)
35-50: Light Discount (Neutral-Bearish)
20-35: Discount (Bearish Bias)
10-20: High Discount (Institutional Buying Zone)
0-10: Extreme Discount (High Probability Buy Zone)
MMM 3.0 Body Close Logic BC and the MMPD 3.0 Body Close Logic MBC
══════════════════════════════════════════════════════
1️⃣ Body Close Analysis (BC & MBC)
Price Body Close (BC)
Bullish BC: Price closes above the previous high AND closes above its open (green candle showing aggressive buying)
Bearish BC: Price closes below the previous low AND closes below its open (red candle showing aggressive selling)
No Body Close (NBC): All other candles - representing consolidation, pause, or loss of momentum
MMPD Body Close (MBC)
Bullish MBC: MMPD closes higher than previous MMPD structure (continuation or reversal momentum)
Bearish MBC: MMPD closes lower than previous MMPD structure (continuation or reversal momentum)
MNBC: MMPD No Body Close - weak or ranging MMPD momentum
BC + MBC Confirmation
When Price BC and MMPD MBC align in the same direction, it signals high-conviction momentum:
Deep Green: Bullish BC + Bullish MBC (Strongest Bullish Signal)
Pale Green: Bullish BC only (Moderate Bullish Signal)
Deep Red: Bearish BC + Bearish MBC (Strongest Bearish Signal)
Pale Pink: Bearish BC only (Moderate Bearish Signal)
2️⃣ Momentum Synchronization System
The indicator compares MBC (MMPD Body Close) momentum against BC (Price Body Close) momentum to identify divergence and synchronization:
Synchronized States:
BULLISH+: High volatility bullish synchronization (BC+MBC aligned, high ATR)
BULLISH-: Low volatility bullish synchronization (BC+MBC aligned, low ATR)
BEARISH+: High volatility bearish synchronization (BC+MBC aligned, high ATR)
BEARISH-: Low volatility bearish synchronization (BC+MBC aligned, low ATR)
SYNCHRONIZED: Both MMPD and Price moving together (standard bullish or bearish move)
Divergence States (Reversal Warnings):
MMPD FAST | PRICE SLOW: MMPD showing strong directional MBC candles while Price shows NBC (pause/consolidation) - Reversal Warning!
If MMPD is bullish MBC but Price is NBC → Potential Bearish Reversal
If MMPD is bearish MBC but Price is NBC → Potential Bullish Reversal
Status Indicators:
BULL / BEAR: Standard synchronized moves
BULL+ / BEAR+: High volatility synchronized moves (aggressive trending)
BULL- / BEAR-: Low volatility synchronized moves (grinding trends)
POT. BULL / POT. BEAR: Potential reversal zones (divergence detected)
BALANCED: Neutral conditions, no clear momentum alignment which is price efficiency
3️⃣ Premium/Discount Breakout Markers
🔴 Red Circle Dots (Premium Exit)
Appears when MMPD closes below 80 after being completely in the 80-100 extreme premium zone
Signals institutional distribution complete, potential reversal or correction
🟢 Green Circle Dots (Discount Exit)
Appears when MMPD closes above 20 after being completely in the 0-20 extreme discount zone
Signals institutional accumulation complete, potential rally or reversal
🔴 Red Squares (Premium Rejection)
Appears on the first candle that fails to touch 80-100 after a Bullish MBC touched that zone
Indicates rejection of premium pricing, bearish signal
🟢 Green Squares (Discount Rejection)
Appears on the first candle that fails to touch 0-20 after a Bearish MBC touched that zone
Indicates rejection of discount pricing, bullish signal
🔻 Red Triangles Down (Bearish Midline Rejection)
Signals potential bearish Resumption
🔺 Green Triangles Up (Bullish Midline Bounce)
Signals potential Bullish Resumption
4️⃣ Multi-Timeframe Dashboard with Candle time to close
The MTF table displays:
6 customizable timeframes (default: 5min, 15min, 1H, 4H, Daily, Weekly)
Premium/Discount Status with color-coded zones for each timeframe
Time to Close (T2C): Live countdown timer for each timeframe candle close
Red warning color when the candle closing time is imminent
4H timeframe auto-detects exchange-specific session starts (ES, NQ, CL, GC, etc.)
Momentum Sync Status: Shows the current synchronization state between MMPD and Price across the chart timeframe
Color Coding:
Premium zones: Green/Cyan colors
Discount zones: Purple/Magenta colors
Intensity increases with extremeness (darker = more extreme)
5️⃣ Delta MMPD Alternative View
Toggle between two oscillator calculations:
MMPD: Original MMPD
Delta MMPD: Volume-weighted delta calculation emphasizing buying/selling pressure
TIPS
══════════════════════════════════════════════════════
Use Multi-Timeframe Confluence: The strongest signals occur when multiple timeframes align in premium/discount zones
Wait for Body Close Confirmation: BC+MBC alignment = highest probability setups
Respect Momentum Sync Warnings: "MMPD FAST | PRICE SLOW" is a critical reversal warning
Trade Premium → Discount or Discount → Premium: Mean reversion from extremes offers best risk/reward
Combine with Price Action: MMPD is a momentum oscillator - always confirm with price structure (support/resistance, trendlines, chart patterns)
Educational Notes
══════════════════════════════════════════════════════
What is Premium/Discount Pricing?
Institutional traders operate based on value zones:
Premium: Price is expensive relative to recent range - institutions distribute (sell)
Discount: Price is cheap relative to recent range - institutions accumulate (buy)
Fair Value (50 line): Equilibrium pricing where institutions pause
MMM 3.0 Body Close Approach Importance
══════════════════════════════════════════════════════
BC (Body Close): Shows price commitment and aggressivity
NBC (No Body Close): Shows indecision, consolidation, or loss of momentum
Consecutive BC candles = strong momentum
NBC candles breaking BC sequence = momentum loss → potential reversal
Momentum Synchronization Theory
══════════════════════════════════════════════════════
When MMPD (momentum) moves aggressively but Price shows NBC (pause), it indicates:
Momentum exhaustion
Smart money distribution/accumulation
Imminent reversal as retail traders get trapped
⚠️ Disclaimer
This indicator is for educational purposes only. Past performance does not guarantee future results. Always practice proper risk management and never risk more than you can afford to lose. Trading involves substantial risk of loss. The creator assumes no responsibility for trading losses incurred using this indicator.
Market Structure Trailing Stop MTF [Inspired by LuxAlgo]# Market Structure Trailing Stop MTF
**OPEN-SOURCE SCRIPT**
*208k+ views on original · Modified for MTF Support*
This indicator is a direct adaptation of the renowned **Market Structure Trailing Stop** by **LuxAlgo** (original script: [Market Structure Trailing Stop ]()). The core logic remains untouched, providing dynamic trailing stops based on market structure breaks (CHoCH/BOS). The **only modification** is the addition of **Multi-Timeframe (MTF) support**, allowing users to apply the trailing stops and structures from **higher timeframes (HTF)** directly on their current chart. This enhances usability for traders analyzing cross-timeframe confluence without switching charts.
**Special thanks to LuxAlgo** for releasing this powerful open-source tool under CC BY-NC-SA 4.0. Your contributions to the TradingView community have inspired countless traders—grateful for the solid foundation!
## 🔶 How the Script Works: A Deep Dive
At its heart, this indicator detects **market structure shifts** (bullish or bearish breaks of swing highs/lows) and uses them to generate **adaptive trailing stops**. These stops trail the price while protecting profits and acting as dynamic support/resistance levels. The MTF enhancement pulls this logic from user-specified higher timeframes, overlaying HTF structures and stops on the lower timeframe chart for seamless multi-timeframe analysis.
### Core Logic (Unchanged from LuxAlgo's Original)
1. **Pivot Detection**:
- Uses `ta.pivothigh()` and `ta.pivotlow()` with a user-defined lookback (`length`) to identify swing highs (PH) and lows (PL).
- Coordinates (price `y` and bar index/time `x`) are stored in persistent variables (`var`) for tracking recent pivots.
2. **Market Structure Detection**:
- **Bullish Structure (BOS/CHoCH)**: Triggers when `close > recent PH` (break above swing high).
- If `resetOn = 'CHoCH'`, resets only on major shifts (Change of Character); otherwise, on all breaks.
- Sets trend state `os = 1` (bullish) and highlights the break with a horizontal line (dashed for CHoCH, dotted for BOS).
- Initializes trailing stop at the local minimum (lowest low since the pivot) using a backward loop: `btm = math.min(low , btm)`.
- **Bearish Structure**: Triggers when `close < recent PL`, mirroring the bullish logic (`os = -1`, local maximum for stop).
- Structure state `ms` tracks the break type (1 for bull, -1 for bear, 0 neutral), resetting based on user settings.
3. **Trailing Stop Calculation**:
- Tracks **trailing max/min**:
- On new bull structure: Reset `max = close`.
- On new bear: Reset `min = close`.
- Otherwise: `max = math.max(close, max)` / `min = math.min(close, min)`.
- **Stop Adjustment** (the "trailing" magic):
- On fresh structure: `ts = btm` (bull) or `top` (bear).
- In ongoing trend: Increment/decrement by a percentage of the max/min change:
- Bull: `ts += (max - max ) * (incr / 100)`
- Bear: `ts += (min - min ) * (incr / 100)`
- This creates a **ratcheting effect**: Stops move favorably with the trend but never against it, converging toward price at a controlled rate.
- **Visuals**:
- Plots `ts` line colored by trend (teal for bull, red for bear).
- Fills area between `close` and `ts` (orange on retracements).
- Draws structure lines from pivot to break point.
4. **Edge Cases**:
- Variables like `ph_cross`/`pl_cross` prevent multiple triggers on the same pivot.
- Neutral state (`ms = 0`) preserves prior `max/min` until a new structure.
### MTF Enhancement (Our Addition)
- **request.security() Integration**:
- Wraps the entire core function `f()` in a security call for each timeframe (`tf1`, `tf2`).
- Returns HTF values (e.g., `ts1`, `os1`, structure times/prices) to the chart's context.
- Uses `lookahead=barmerge.lookahead_off` for accurate historical repainting-free data.
- Structures are drawn using `xloc.bar_time` to align HTF lines precisely on the LTF chart.
- **Multi-Output Handling**:
- Separate plots/fills/lines for each TF (e.g., `plot_ts1`, `plot_ts2`).
- Colors and toggles per TF to distinguish HTF1 (e.g., teal/red) from HTF2 (e.g., blue/maroon).
- **Benefits**: Spot HTF bias on LTF entries, e.g., enter longs only if both TF1 (1H) and TF2 (4H) show bullish `os=1`.
This keeps the script lightweight—**no repainting, max 500 lines**, and fully compatible with LuxAlgo's original behavior when TFs are set to the chart's timeframe.
## 🔶 SETTINGS
### Core Parameters
- **Pivot Lookback** (`length = 14`): Bars left/right for pivot detection. Higher = smoother structures, fewer signals; lower = more noise.
- **Increment Factor %** (`incr = 100`): Speed of stop convergence (0-∞). 100% = full ratchet (mirrors max/min exactly); <100% = slower trail, reduces whipsaws.
- **Reset Stop On** (`'CHoCH'`): `'CHoCH'` = Reset only on major reversals (dashed lines); `'All'` = Reset on every BOS/CHoCH (tighter stops).
### MTF Support
- **Timeframe 1** (`tf1 = ""`): HTF for first set (e.g., "1H"). Empty = current chart.
- **Timeframe 2** (`tf2 = ""`): Second HTF (e.g., "4H"). Enables dual confluence.
### Display Toggles
- **Show Structures** (`true`): Draws horizontal lines for breaks (per TF colors).
- **Show Trailing Stop TF1/TF2** (`true`): Plots the stop line.
- **Show Fill TF1/TF2** (`true`): Area fill between close and stop.
### Candle Coloring (Optional)
- **Color Candles** (`false`): Enables custom `plotcandle` for body/wick/border.
- **Candle Color Based On TF** (`"None"`): `"TF1"`, `"TF2"`, or none. Colors bull trend green, bear red.
- **Candle Colors**: Separate inputs for bull/bear body, wick, border (e.g., solid green body, transparent wick).
### Alerts
- **Enable MS Break Alerts** (`false`): Notifies on structure breaks (bull/bear per TF) **only on bar close** (`barstate.isconfirmed` + `alert.freq_once_per_bar_close`).
- **Enable Stop Hit Alerts** (`false`): Triggers on stop breaches (long/short per TF), using `ta.crossunder/crossover`.
### Colors
- **TF1 Colors**: Bullish (teal), Bearish (red), Retracement (orange).
- **TF2 Colors**: Bullish (blue), Bearish (maroon), Retracement (orange).
- **Area Transparency** (`80`): Fill opacity (0-100).
## 🔶 USAGE
Trailing stops shine in **trend-following strategies**:
- **Entries**: Use structure breaks as signals (e.g., long on bullish BOS from HTF1).
- **Exits**: Trail stops for profit-locking; alert on hits for automation.
- **Confluence**: Overlay HTF1 (e.g., 1H) for bias, HTF2 (e.g., Daily) for major levels—enter LTF only on alignment.
- **Risk Management**: Lower `incr` avoids early stops in chop; reset on `'All'` for aggressive trailing.
! (i.imgur.com)
*HTF1 shows bullish structure (teal line), trailing stop ratchets up—long entry confirmed on LTF pullback.*
! (i.imgur.com)
*TF1 (blue) bearish, TF2 (red) neutral—avoid shorts until alignment.*
! (i.imgur.com)
*Colored based on TF1 trend: Green bodies on bull `os=1`.*
Pro Tip: Test on demo—pair with LuxAlgo's other tools like Smart Money Concepts for full structure ecosystem.
## 🔶 DETAILS: Mathematical Breakdown
On bullish break:
- Local min: `btm = ta.lowest(n - ph_x)` (optimized loop equivalent).
- Stop init: `ts = btm`.
- Update: `Δmax = max - max `, `ts_new = ts + Δmax * (incr/100)`.
Bearish mirrors with `Δmin` (negative, so decrements `ts`).
In MTF: HTF `time` aligns lines via `line.new(htf_time, level, current_time, level, xloc.bar_time)`.
No logs/math libs needed—pure Pine v5 efficiency.
## Disclaimer
This is for educational purposes. Not financial advice. Backtest thoroughly. Original by LuxAlgo—modify at your risk. See TradingView's (www.tradingview.com). Licensed under CC BY-NC-SA 4.0 (attribution to LuxAlgo required).
Velocity Pressure Index | AlphaNattVelocity Pressure Index (VPI) | AlphaNatt
A sophisticated momentum oscillator that combines price velocity analysis with volume pressure dynamics to identify high-probability trading opportunities.
📊 KEY FEATURES
Dual Analysis System: Merges price velocity measurement with volume pressure analysis for comprehensive market momentum assessment
Dynamic Normalization: Automatically scales values between -100 and +100 for consistent readings across all market conditions
Adaptive Zones: Self-adjusting overbought/oversold levels based on recent price history
Multi-Layer Confirmation: Combines momentum, acceleration, and crossover signals for robust trade identification
Volume-Weighted Pressure: Differentiates between bullish and bearish volume to gauge true market sentiment
📈 HOW IT WORKS
The VPI calculates price velocity using linear regression of price changes, then weights this velocity by the difference between bullish and bearish volume pressure. This creates a momentum reading that accounts for both price movement speed and the volume conviction behind it.
Signal Generation:
Price velocity is measured over the specified period
Volume is separated into bullish (close > open) and bearish (close < open) pressure
Velocity is amplified or dampened based on volume pressure differential
The resulting index is normalized to oscillate between -100 and +100
A signal line smooths the oscillator for crossover detection
🎯 TRADING SIGNALS
Long Signals (Cyan #00F1FF):
Strong Bull: VPI > Signal with positive momentum and acceleration
Crossover Bull: VPI crosses above signal while above oversold zone
Divergence: Price makes lower low while VPI makes higher low
Short Signals (Magenta #FF019A):
Strong Bear: VPI < Signal with negative momentum and deceleration
Crossover Bear: VPI crosses below signal while below overbought zone
Divergence: Price makes higher high while VPI makes lower high
⚙️ CUSTOMIZABLE PARAMETERS
Velocity Settings:
Velocity Period (14): Lookback for price velocity calculation
Pressure Period (21): Volume analysis window
Smoothing Factor (3): Final oscillator smoothing
Signal Configuration:
Signal Type: Choose between SMA, EMA, or DEMA
Signal Length (9): Signal line smoothing period
Normalization Period (50): Range calculation window
Dynamic Zones:
Zone Lookback (100): Period for adaptive overbought/oversold calculation
Percentiles: 80th/20th percentiles for dynamic zones
📐 VISUAL COMPONENTS
Main Oscillator: Color-coded line showing current momentum state
Signal Line: White line for crossover detection
Momentum Histogram: Shows velocity differential at 50% scale
Dynamic Zones: Self-adjusting overbought/oversold bands
Extreme Levels: ±50 dotted lines marking extreme conditions
Background Shading: Subtle highlighting of overbought/oversold regions
💡 USAGE TIPS
Trend Trading: Use strong bull/bear signals in trending markets for continuation entries
Range Trading: Focus on crossovers near extreme zones for reversal trades
Divergence Trading: Watch for price/oscillator divergences at market extremes
Multi-Timeframe: Combine with higher timeframe VPI for directional bias
Volume Confirmation: Stronger signals occur with aligned volume pressure
⚠️ BEST PRACTICES
The VPI works best in liquid markets with reliable volume data. For optimal results, combine with price action analysis and use appropriate risk management. The indicator is most effective during trending conditions but can identify reversals when divergences occur at extremes.
🔔 ALERTS AVAILABLE
VPI Long/Short Signals
Bullish/Bearish Crossovers
Extreme Overbought/Oversold Conditions
Version 6 | Pine Script™ | © AlphaNatt
Vector Sniper Pro What it is
Vector Sniper (Simplified) is a single, original algorithm that flags impulsive “vector” moves only when volatility, volume, and structure align. It is not a mashup of other indicators; everything below is computed from raw OHLCV with a small, transparent ruleset.
⸻
Core idea (signal = force × participation × context)
1. Force (Volatility):
• We z-score true range: trZ = (ATR(1) - SMA(ATR(1), N)) / StDev(ATR(1), N).
• A move must exceed a user-set Volatility Z-Score.
2. Participation (Volume):
• We z-score raw volume: volZ = (Vol - SMA(Vol, N)) / StDev(Vol, N).
• Volume must also exceed a Volume Z-Score.
3. Context (Structure, Body, Imbalance, Traps):
• Body% filter: real body / range ≥ Min Body %.
• Delta-volume proxy: (bullVol − bearVol) / volume, where bullVol = volume*(close−low)/range and bearVol = volume*(high−close)/range. We require positive imbalance for bulls, negative for bears.
• Structure break (optional): price must take out the prior N-bar high/low.
• Trap detection (optional): spring/upthrust patterns defined by lower-low/upper-high followed by a close back inside.
If the above align, you get a Bull Vector (green) or Bear Vector (red). “Extreme” vectors require the same conditions at a higher multiple (Ext Mult).
⸻
Noise control (pre-signal gate)
Before a vector is allowed, a pre-signal score (0–7) must pass:
• Checks include spring/upthrust, no-supply/no-demand, imbalance, volume > average, VWAP side alignment, EMA trend alignment, proximity to structure break, and candle direction.
• You choose a minimum score, persistence (must occur ≥N times inside last M bars), cooldown after a pass, and hysteresis vs the opposite side.
This prevents one-off blips and keeps signals directional.
⸻
Optional confluence
• VWAP alignment: require price on the correct side and VWAP slope with it.
• EMA filter: require EMA trend agreement.
• HTF bias (optional): compare HTF close vs HTF EMA on a selected timeframe.
• Implemented with request.security and no look-ahead; bias updates when the higher timeframe bar closes.
⸻
Visuals & alerts
• Candle colors (5 total):
• Green = Bull Vector, Red = Bear Vector.
• Blue = Pre-Bull, Orange = Pre-Bear.
• Gray = Neutral.
• Markers (optional): diamonds = “Extreme” vectors; small triangles = pre-signals.
• Built-in alerts: Bull Vector, Bear Vector, Extreme Bull/Bear, Pre-Bull, Pre-Bear.
• Add from: Alerts → Condition → this script → choose event.
⸻
How to use (practical)
1. Start with defaults. Turn on VWAP and EMA filters; add HTF bias if you want fewer but cleaner signals.
2. Hunt for alignment: Pre-signal (blue/orange) → Vector (green/red) in the same direction.
3. Use your own risk model for entries/exits; the script does not place orders or compute stops/targets.
⸻
Inputs (plain English)
• ATR/Volume Periods & Z-Scores: sensitivity to volatility/participation.
• Extreme Multiplier: threshold for “Extreme” vectors.
• Structure Break (bars) & Traps: contextual confirms.
• Pre-signal gate: Min Score, Persistence (N in last M), Cooldown, Opposite-side lockout.
• Confluence: VWAP side, EMA trend, optional HTF bias (timeframe + EMA length).
• Visuals: candle painting and markers.
⸻
Design notes / limitations
• Signals evaluate on bar close. Intrabar they can form and cancel; for consistency, trade on closed bars.
• HTF bias is derived from closed HTF bars; no future data is used.
• This is an indicator, not financial advice. Backtest forward and manage risk.
⸻
Why this isn’t a “mashup”:
All components are purposeful and documented: z-score volatility + z-score volume (force & participation), body% and delta-volume (quality), structure & traps (context), and a scored, persistent pre-filter with VWAP/EMA/HTF alignment (noise control).
Smart Money Precision Structure [BullByte]Smart Money Precision Structure
Advanced Market Structure Analysis Using Institutional Order Flow Concepts
---
OVERVIEW
Smart Money Precision Structure (SMPS) is a comprehensive market analysis indicator that combines six analytical frameworks to identify high-probability market structure patterns. The indicator uses multi-dimensional scoring algorithms to evaluate market conditions through institutional order flow concepts, providing traders with professional-grade market analysis.
---
PURPOSE AND ORIGINALITY
Why This Indicator Was Developed
• Addresses the gap between retail and institutional analysis methods
• Consolidates multiple analysis techniques that professionals use separately
• Automates complex market structure evaluation into actionable insights
• Eliminates the need for multiple indicators by providing comprehensive analysis
What Makes SMPS Original
• Six-Layer Confluence System - Unique combination of market regime, structure, volume flow, momentum, price action, and adaptive filtering
• Institutional Pattern Recognition - Identifies smart money accumulation and distribution patterns
• Adaptive Intelligence - Parameters automatically adjust based on detected market conditions
• Real-Time Market Scoring - Proprietary algorithm rates market quality from 0-100%
• Structure Break Detection - Advanced pivot analysis identifies trend reversals early
---
HOW IT WORKS - TECHNICAL METHODOLOGY
1. Market Regime Analysis Engine
The indicator evaluates five core market dimensions:
• Volatility Score - Measures current volatility against 50-period historical baseline
• Trend Score - Analyzes alignment between 8, 21, and 50-period EMAs
• Momentum Score - Combines RSI divergence with MACD signal alignment
• Structure Score - Evaluates pivot point formation clarity
• Efficiency Score - Calculates directional movement efficiency ratio
These scores combine to classify markets into five regimes:
• TRENDING - Strong directional movement with aligned indicators
• RANGING - Sideways movement with mixed directional signals
• VOLATILE - Elevated volatility with unpredictable price swings
• QUIET - Low volatility consolidation periods
• TRANSITIONAL - Market shifting between different regimes
2. Market Structure Analysis
Advanced pivot point analysis identifies:
• Higher Highs and Higher Lows for bullish structure
• Lower Highs and Lower Lows for bearish structure
• Structure breaks when established patterns fail
• Dynamic support and resistance from recent pivot points
• Key level proximity detection using ATR-based buffers
3. Volume Flow Decoding
Institutional activity detection through:
• Volume surge identification when volume exceeds 2x average
• Buy versus sell pressure analysis using price-volume correlation
• Flow strength measurement through directional volume consistency
• Divergence detection between volume and price movements
• Institutional threshold alerts when unusual volume patterns emerge
4. Multi-Period Momentum Synthesis
Weighted momentum calculation across four timeframes:
• 1-period momentum weighted at 40%
• 3-period momentum weighted at 30%
• 5-period momentum weighted at 20%
• 8-period momentum weighted at 10%
Result smoothed with 6-period EMA for noise reduction.
5. Price Action Quality Assessment
Each bar evaluated for:
• Range quality relative to 20-period average
• Body-to-range ratio for directional conviction
• Wick analysis for rejection pattern identification
• Pattern recognition including engulfing and hammer formations
• Sequential price movement analysis
6. Adaptive Parameter System
Parameters automatically adjust based on detected regime:
• Trending markets reduce sensitivity and confirmation requirements
• Volatile markets increase filtering and require additional confirmations
• Ranging markets maintain neutral settings
• Transitional markets use moderate adjustments
---
COMPLETE SETTINGS GUIDE
Section 1: Core Analysis Settings
Analysis Sensitivity (0.3-2.0)
• Default: 1.0
• Lower values require stronger price movements
• Higher values detect more subtle patterns
• Scalpers use 0.8-1.2, swing traders use 1.5-2.0
Noise Reduction Level (2-7)
• Default: 4
• Controls filtering of false patterns
• Higher values reduce pattern frequency
• Increase in volatile markets
Minimum Move % (0.05-0.50)
• Default: 0.15%
• Sets minimum price movement threshold
• Adjust based on instrument volatility
• Forex: 0.05-0.10%, Stocks: 0.15-0.25%, Crypto: 0.20-0.50%
High Confirmation Mode
• Default: True (Enabled)
• Requires all technical conditions to align
• Reduces frequency but increases reliability
• Disable for more aggressive pattern detection
Section 2: Market Regime Detection
Enable Regime Analysis
• Default: True (Enabled)
• Activates market environment evaluation
• Essential for adaptive features
• Keep enabled for best results
Regime Analysis Period (20-100)
• Default: 50 bars
• Determines regime calculation lookback
• Shorter for responsive, longer for stable
• Scalping: 20-30, Swing: 75-100
Minimum Market Clarity (0.2-0.8)
• Default: 0.4
• Quality threshold for pattern generation
• Higher values require clearer conditions
• Lower for more patterns, higher for quality
Adaptive Parameter Adjustment
• Default: True (Enabled)
• Enables automatic parameter optimization
• Adjusts based on market regime
• Highly recommended to keep enabled
Section 3: Market Structure Analysis
Enable Structure Validation
• Default: True (Enabled)
• Validates patterns against support/resistance
• Confirms trend structure alignment
• Essential for reliability
Structure Analysis Period (15-50)
• Default: 30 bars
• Period for structure pattern analysis
• Affects support/resistance calculation
• Match to your trading timeframe
Minimum Structure Alignment (0.3-0.8)
• Default: 0.5
• Required structure score for valid patterns
• Higher values need stronger structure
• Balance with desired frequency
Section 4: Analysis Configuration
Minimum Strength Level (3-5)
• Default: 4
• Minimum confirmations for pattern display
• 5 = Maximum reliability, 3 = More patterns
• Beginners should use 4-5
Required Technical Confirmations (4-6)
• Default: 5
• Number of aligned technical factors
• Higher = fewer but better patterns
• Works with High Confirmation Mode
Pattern Separation (3-20 bars)
• Default: 8 bars
• Minimum bars between patterns
• Prevents clustering and overtrading
• Increase for cleaner charts
Section 5: Technical Filters
Momentum Validation
• Default: True (Enabled)
• Requires momentum alignment
• Filters counter-trend patterns
• Essential for trend following
Volume Confluence Analysis
• Default: True (Enabled)
• Requires volume confirmation
• Identifies institutional participation
• Critical for reliability
Trend Direction Filter
• Default: True (Enabled)
• Only shows patterns with trend
• Reduces counter-trend signals
• Disable for reversal hunting
Section 6: Volume Flow Analysis
Institutional Activity Threshold (1.2-3.5)
• Default: 2.0
• Multiplier for unusual volume detection
• Lower finds more institutional activity
• Stock: 2.0-2.5, Forex: 1.5-2.0, Crypto: 2.5-3.5
Volume Surge Multiplier (1.8-4.5)
• Default: 2.5
• Defines significant volume increases
• Adjust per instrument characteristics
• Higher for stocks, lower for forex
Volume Flow Period (12-35)
• Default: 18 bars
• Smoothing for volume analysis
• Shorter = responsive, longer = smooth
• Match to timeframe used
Section 7: Analysis Frequency Control
Maximum Analysis Points Per Hour (1-5)
• Default: 3
• Limits pattern frequency
• Prevents overtrading
• Scalpers: 4-5, Swing traders: 1-2
Section 8: Target Level Configuration
Target Calculation Method
• Default: Market Adaptive
• Three modes available:
- Fixed: Uses set point distances
- Dynamic: ATR-based calculations
- Market Adaptive: Structure-based levels
Minimum Target/Risk Ratio (1.0-3.0)
• Default: 1.5
• Minimum acceptable reward vs risk
• Higher filters lower probability setups
• Professional standard: 1.5-2.0
Fixed Mode Settings:
• Fixed Target Distance: 50 points default
• Fixed Invalidation Distance: 30 points default
• Use for consistent instruments
Dynamic Mode Settings:
• Dynamic Target Multiplier: 1.8x ATR default
• Dynamic Invalidation Multiplier: 1.0x ATR default
• Adapts to volatility automatically
Market Adaptive Settings:
• Use Structure Levels: True (default)
• Structure Level Buffer: 0.1% default
• Places levels at actual support/resistance
Section 9: Visual Display Settings
Color Theme Options
• Professional (Teal/Red)
- Bullish: Teal (#26a69a)
- Bearish: Red (#ef5350)
- Neutral: Gray (#78909c)
- Best for: Traditional traders, clean appearance
• Dark (Neon Green/Pink)
- Bullish: Neon Green (#00ff88)
- Bearish: Hot Pink (#ff0044)
- Neutral: Dark Gray (#333333)
- Best for: Dark theme users, high contrast
• Light (Green/Red Classic)
- Bullish: Green (#4caf50)
- Bearish: Red (#f44336)
- Neutral: Light Gray (#9e9e9e)
- Best for: Light backgrounds, traditional colors
• Vibrant (Cyan/Magenta)
- Bullish: Cyan (#00ffff)
- Bearish: Magenta (#ff00ff)
- Neutral: Medium Gray (#888888)
- Best for: High visibility, modern appearance
Dashboard Position
• Options: Top Left, Top Right, Bottom Left, Bottom Right, Middle Left, Middle Right
• Default: Top Right
• Choose based on chart layout preference
Dashboard Size
• Full: Complete information display (desktop)
• Mobile: Compact view for small screens
• Default: Full
Analysis Display Style
• Arrows : Simple directional markers
• Labels : Detailed text information
• Zones : Colored areas showing pattern regions
• Default: Labels (most informative)
Display Options:
• Display Analysis Strength: Shows star rating
• Display Target Levels: Shows target/invalidation lines
• Display Market Regime: Shows regime in pattern labels
---
HOW TO USE SMPS - DETAILED GUIDE
Understanding the Dashboard
Top Row - Header
• SMPS Dashboard title
• VALUE column: Current readings
• STATUS column: Condition assessments
Market Regime Row
• Shows: TRENDING, RANGING, VOLATILE, QUIET, or TRANSITIONAL
• Color coding: Green = Favorable, Red = Caution
• Status: FAVORABLE or CAUTION trading conditions
Market Score Row
• Percentage from 0-100%
• Above 60% = Strong conditions
• 40-60% = Moderate conditions
• Below 40% = Weak conditions
Structure Row
• Direction: BULLISH, BEARISH, or NEUTRAL
• Status: INTACT or BREAK
• Orange BREAK indicates structure failure
Volume Flow Row
• Direction: BUYING or SELLING
• Intensity: STRONG or WEAK
• Color indicates dominant pressure
Momentum Row
• Numerical momentum value
• Positive = Upward pressure
• Negative = Downward pressure
Volume Status Row
• INST = Institutional activity detected
• HIGH = Above average volume
• NORM = Normal volume levels
Adaptive Mode Row
• ACTIVE = Parameters adjusting
• STATIC = Fixed parameters
• Shows required confirmations
Analysis Level Row
• Minimum strength level setting
• Pattern separation in bars
Market State Row
• Current analysis: BULLISH, BEARISH, NEUTRAL
• Shows analysis price level when active
T:R Ratio Row
• Current target to risk ratio
• GOOD = Meets minimum requirement
• LOW = Below minimum threshold
Strength Row
• BULL or BEAR dominance
• Numerical strength value 0-100
Price Row
• Current price
• Percentage change
Last Analysis Row
• Previous pattern direction
• Bars since last pattern
Reading Pattern Signals
Bullish Structure Pattern
• Upward triangle or "Bullish Structure" label
• Star rating shows strength (★★★★★ = strongest)
• Green line = potential target level
• Red dashed line = invalidation level
• Appears below price bars
Bearish Structure Pattern
• Downward triangle or "Bearish Structure" label
• Star rating indicates reliability
• Green line = potential target level
• Red dashed line = invalidation level
• Appears above price bars
Pattern Strength Interpretation
• ★★★★★ = 6 confirmations (exceptional)
• ★★★★☆ = 5 confirmations (strong)
• ★★★☆☆ = 4 confirmations (moderate)
• ★★☆☆☆ = 3 confirmations (minimum)
• Below minimum = filtered out
Visual Elements on Chart
Lines and Levels:
• Gray Line = 21 EMA trend reference
• Green Stepline = Dynamic support level
• Red Stepline = Dynamic resistance level
• Green Solid Line = Active target level
• Red Dashed Line = Active invalidation level
Pattern Markers:
• Triangles = Arrow display mode
• Text Labels = Label display mode
• Colored Boxes = Zone display mode
Target Completion Labels:
• "Target" = Price reached target level
• "Invalid" = Pattern invalidated by price
---
RECOMMENDED USAGE BY TIMEFRAME
1-Minute Charts (Scalping)
• Sensitivity: 0.8-1.2
• Noise Reduction: 3-4
• Pattern Separation: 3-5 bars
• High Confirmation: Optional
• Best for: Quick intraday moves
5-Minute Charts (Precision Intraday)
• Sensitivity: 1.0 (default)
• Noise Reduction: 4 (default)
• Pattern Separation: 8 bars
• High Confirmation: Enabled
• Best for: Day trading
15-Minute Charts (Short Swing)
• Sensitivity: 1.0-1.5
• Noise Reduction: 4-5
• Pattern Separation: 10-12 bars
• High Confirmation: Enabled
• Best for: Intraday swings
30-Minute to 1-Hour (Position Trading)
• Sensitivity: 1.5-2.0
• Noise Reduction: 5-7
• Pattern Separation: 15-20 bars
• Regime Period: 75-100
• Best for: Multi-day positions
Daily Charts (Swing Trading)
• Sensitivity: 1.8-2.0
• Noise Reduction: 6-7
• Pattern Separation: 20 bars
• All filters enabled
• Best for: Long-term analysis
---
MARKET-SPECIFIC SETTINGS
Forex Pairs
• Minimum Move: 0.05-0.10%
• Institutional Threshold: 1.5-2.0
• Volume Surge: 1.8-2.2
• Target Mode: Dynamic or Market Adaptive
Stock Indices (ES, NQ, YM)
• Minimum Move: 0.10-0.15%
• Institutional Threshold: 2.0-2.5
• Volume Surge: 2.5-3.0
• Target Mode: Market Adaptive
Individual Stocks
• Minimum Move: 0.15-0.25%
• Institutional Threshold: 2.0-2.5
• Volume Surge: 2.5-3.5
• Target Mode: Dynamic
Cryptocurrency
• Minimum Move: 0.20-0.50%
• Institutional Threshold: 2.5-3.5
• Volume Surge: 3.0-4.5
• Target Mode: Dynamic
• Increase noise reduction
---
PRACTICAL APPLICATION EXAMPLES
Example 1: Strong Trending Market
Dashboard Reading:
• Market Regime: TRENDING
• Market Score: 75%
• Structure: BULLISH, INTACT
• Volume Flow: BUYING, STRONG
• Momentum: +0.45
Interpretation:
• Strong uptrend environment
• Institutional buying present
• Look for bullish patterns as continuation
• Higher probability of success
• Consider using lower sensitivity
Example 2: Range-Bound Conditions
Dashboard Reading:
• Market Regime: RANGING
• Market Score: 35%
• Structure: NEUTRAL
• Volume Flow: SELLING, WEAK
• Momentum: -0.05
Interpretation:
• No clear direction
• Low opportunity environment
• Patterns are less reliable
• Consider waiting for regime change
• Or switch to a range-trading approach
Example 3: Structure Break Alert
Dashboard Reading:
• Previous: BULLISH structure
• Current: Structure BREAK
• Volume: INST flag active
• Momentum: Shifting negative
Interpretation:
• Trend reversal potentially beginning
• Institutional participation detected
• Watch for bearish pattern confirmation
• Adjust bias accordingly
• Increase caution on long positions
Example 4: Volatile Market
Dashboard Reading:
• Market Regime: VOLATILE
• Market Score: 45%
• Adaptive Mode: ACTIVE
• Confirmations: Increased to 6
Interpretation:
• Choppy conditions
• Parameters auto-adjusted
• Fewer but higher quality patterns
• Wider stops may be needed
• Consider reducing position size
Below are a few chart examples of the Smart Money Precision Structure (SMPS) indicator in action.
• Example 1 – Bullish Structure Detection on SOLUSD 5m
• Example 2 – Bearish Structure Detected with Strong Confluence on SOLUSD 5m
---
TROUBLESHOOTING GUIDE
No Patterns Appearing
Check these settings:
• High Confirmation Mode may be too restrictive
• Minimum Strength Level may be too high
• Market Clarity threshold may be too high
• Regime filter may be blocking patterns
• Try increasing sensitivity
Too Many Patterns
Adjust these settings:
• Enable High Confirmation Mode
• Increase Minimum Strength Level to 5
• Increase Pattern Separation
• Reduce Sensitivity below 1.0
• Enable all technical filters
Dashboard Shows "CAUTION"
This indicates:
• Market conditions are unfavorable
• Regime is RANGING or QUIET
• Market score is low
• Consider waiting for better conditions
• Or adjust expectations accordingly
Patterns Not Reaching Targets
Consider:
• Market may be choppy
• Volatility may have changed
• Try Dynamic target mode
• Reduce target/risk ratio requirement
• Check if regime is VOLATILE
---
ALERTS CONFIGURATION
Alert Message Format
Alerts include:
• Pattern type (Bullish/Bearish)
• Strength rating
• Market regime
• Analysis price level
• Target and invalidation levels
• Strength percentage
• Target/Risk ratio
• Educational disclaimer
Setting Up Alerts
• Click Alert button on TradingView
• Select SMPS indicator
• Choose alert frequency
• Customize message if desired
• Alerts fire on pattern detection
---
DATA WINDOW INFORMATION
The Data Window displays:
• Market Regime Score (0-100)
• Market Structure Bias (-1 to +1)
• Bullish Strength (0-100)
• Bearish Strength (0-100)
• Bull Target/Risk Ratio
• Bear Target/Risk Ratio
• Relative Volume
• Momentum Value
• Volume Flow Strength
• Bull Confirmations Count
• Bear Confirmations Count
---
BEST PRACTICES AND TIPS
For Beginners
• Start with default settings
• Use High Confirmation Mode
• Focus on TRENDING regime only
• Paper trade first
• Learn one timeframe thoroughly
For Intermediate Users
• Experiment with sensitivity settings
• Try different target modes
• Use multiple timeframes
• Combine with price action analysis
• Track pattern success rate
For Advanced Users
• Customize per instrument
• Create setting templates
• Use regime information for bias
• Combine with other indicators
• Develop systematic rules
---
IMPORTANT DISCLAIMERS
• This indicator is for educational and informational purposes only
• Not financial advice or a trading system
• Past performance does not guarantee future results
• Trading involves substantial risk of loss
• Always use appropriate risk management
• Verify patterns with additional analysis
• The author is not a registered investment advisor
• No liability accepted for trading losses
---
VERSION NOTES
Version 1.0.0 - Initial Release
• Six-layer confluence system
• Adaptive parameter technology
• Institutional volume detection
• Market regime classification
• Structure break identification
• Real-time dashboard
• Multiple display modes
• Comprehensive settings
## My Final Thoughts
Smart Money Precision Structure represents an advanced approach to market analysis, bringing institutional-grade techniques to retail traders through intelligent automation and multi-dimensional evaluation. By combining six analytical frameworks with adaptive parameter adjustment, SMPS provides comprehensive market intelligence that single indicators cannot achieve.
The indicator serves as an educational tool for understanding how professional traders analyze markets, while providing practical pattern detection for those seeking to improve their technical analysis. Remember that all trading involves risk, and this tool should be used as part of a complete analysis approach, not as a standalone trading system.
- BullByte
Six Meridian Divine Swords [theUltimator5]The Six Meridian Divine Sword is a legendary martial arts technique in the classic wuxia novel “Demi-Gods and Semi-Devils” (天龙八部) by Jin Yong (金庸). The technique uses powerful internal energy (qi) to shoot invisible sword-like energy beams from the six meridians of the hand. Each of the six fingers/meridians corresponds to a “sword,” giving six different sword energies.
The Six Meridian Divine Swords indicator is a compact “signal dashboard” that fuses six classic indicators (fingers)—MACD, KDJ, RSI, LWR (Williams %R), BBI, and MTM—into one pane. Each row is a traffic-light dot (green/bullish, red/bearish, gray/neutral). When all six align, the script draws a confirmation line (“All Bullish” or “All Bearish”). It’s designed for quick consensus reads across trend, momentum, and overbought/oversold conditions.
How to Read the Dashboard
The pane has 6 horizontal rows (explained in depth later):
MACD
KDJ
RSI
LWR (Larry Williams %R)
BBI (Bull & Bear Index)
MTM (Momentum)
Each tick in the row is a dot, with sentiment identified by a color.
Green = bullish condition met
Red = bearish condition met
Gray = inside a neutral band (filtering chop), shown when Use Neutral (Gray) Colors is ON
There are two lines that track the dots on the top or bottom of the pane.
All Bullish Signal Line: appears only if all 6 are strongly bullish (default color = white)
All Bearish Signal Line: appears only if all 6 are strongly bearish (default color = fuchsia)
The Six Meridians (Indicators) — What They Mean:
1) MACD — Trend & Momentum
What it is: A trend-following momentum indicator based on the relationship between two moving averages (typically 12-EMA and 26-EMA)
Logic used: Classic MACD line (EMA12−EMA26) vs its 9-EMA signal.
Bullish: MACD > Signal and |MACD−Signal| > Neutral Threshold
Bearish: MACD < Signal and |diff| > threshold
Neutral: |diff| ≤ threshold
Why: Small crosses can whipsaw. The neutral band ignores tiny separations to reduce noise.
Inputs: Fast/Slow/Signal lengths, Neutral Threshold.
2) KDJ — Stochastic with J-line boost
What it is: A variation of the stochastic oscillator popular in Chinese trading systems
Logic used: K = SMA(Stochastic, smooth), D = SMA(K, smooth), J = 3K − 2D.
Bullish: K > D and |K−D| > 2
Bearish: K < D and |K−D| > 2
Neutral: |K−D| ≤ 2
Why: K–D separation filters tiny wiggles; J offers an “extreme” early-warning context in the value label.
Inputs: Length, Smoothing.
3) RSI — Momentum balance (0–100)
What it is: A momentum oscillator measuring speed and magnitude of price changes (0–100)
Logic used: RSI(N).
Bullish: RSI > 50 + Neutral Zone
Bearish: RSI < 50 − Neutral Zone
Neutral: Between those bands
Why: Centerline/adaptive bands (around 50) give a directional bias without relying on fixed 70/30.
Inputs: Length, Neutral Zone (± around 50).
4) LWR (Williams %R) — Overbought/Oversold
What it is: An oscillator similar to stochastic, measuring how close the close is to the high-low range over N periods
Logic used: %R over N bars (0 to −100).
Bullish: %R > −50 + Neutral Zone
Bearish: %R < −50 − Neutral Zone
Neutral: Between those bands
Why: Uses a centered band around −50 instead of only −20/−80, making it act like a directional filter.
Inputs: Length, Neutral Zone (± around −50).
5) BBI (Bull & Bear Index) — Smoothed trend bias
What it is: A composite moving average, essentially the average of several different moving averages (often 3, 6, 12, 24 periods)
Logic used: Average of 4 SMAs (3/6/12/24 by default):
BBI = (MA3 + MA6 + MA12 + MA24) / 4
Bullish: Close > BBI and |Close−BBI| > 0.2% of BBI
Bearish: Close < BBI and |diff| > threshold
Neutral: |diff| ≤ threshold
Why: Multiple MAs blended together reduce single-MA whipsaw. A dynamic 0.2% band ignores tiny drift.
Inputs: 4 lengths (default 3/6/12/24). Threshold is auto-scaled at 0.2% of BBI.
6) MTM (Momentum) — Rate of change in price
What it is: A simple measure of rate of change
Logic used: MTM = Close − Close
Bullish: MTM > 0.5% of Close
Bearish: MTM < −0.5% of Close
Neutral: |MTM| ≤ threshold
Why: A percent-based gate adapts across prices (e.g., $5 vs $500) and mutes insignificant moves.
Inputs: Length. Threshold auto-scaled to 0.5% of current Close.
Display & Inputs You Can Tweak
🎨 Use Neutral (Gray) Colors
ON (default): 3-color mode with clear “no-trade”/“weak” states.
OFF: classic binary (green/red) without neutral filtering.
Linton Price Targets(R)Linton Price Targets
A groundbreaking new way of projecting price targets and when they will be met in the future.
Point and figure charts have largely fallen out of favour in recent decades with the birth of personal computing and electronic data services. Few software systems calculate them correctly, and the technique is seen as outdated and difficult for the newcomer to technical analysis to understand. Linton Price Targets takes the point and figure methodology for producing vertical count targets and applies them to time-based charts that are much more widely used for technical analysis.
To place Point and figure price targets on a time-based chart, we first need to relate the conditions that produce the vertical count targets. Vertical Targets are only generated with uninterrupted moves off a high or a low point in prices. A pullback of at least 3 boxes locks the thrust column and therefore the price target. A move of at least one box above (in the case of an upside target off a low) or one box below (downside off a high) ‘activates’ the price target. Here the buyers and sellers respectively are confirmed. Conversely a move below the base of an upside target column, or above the top of a downside column ‘negates’ the vertical target. In this case, the buyers and sellers have been superseded by subsequent events.
Projecting Price
The price projection following the point and figure 3-Box method is relatively straightforward. The standard projection used is twice the original move from the top of the initial thrust level. This derives from the 3-Box construction devised by Cohen, whereby the initial thrust count is a third of the overall price count projection. But there is no reason to limit the Target Price Factor to the value to 2. A value of 1 could be used in the case of consolidation patten where the move out of the pattern is roughly equivalent to the move into the pattern. A value of 1.618 could be used for Fibonacci Retracements or Extensions or a value of 2 x log, can be used to deal with increasing box (unit) sizes as price changes.
Projecting Time
Projecting a potential price target with is relatively straight forward. Determining a time in the future when such a price target will be met is more of a challenge. This has been seen as one of the major drawbacks of point and figure charts for decades. Because there is no time axis on a Point and figure chart, there is no saying when a count projection target will be met.
For the Time to Target, we need to consider potential methodologies such as:
1. Price to Time Ratio – t units of price for every x units of time – ie $1 every 2 days
2. Thrust Angle Factor – a factor x the initial trust angle for the target angle
3. Time to Activation Factor – time to target is x the time taken for a target to activate
4. Follow the Price – track prices as the progress to target and adjust time to target accordingly
5. Historical Average Slope – historical average price time average for last n targets
Considering the Price to Time Ratio method, Chart 1 below shows a chart of the price targets for the US stock Applied Materials with a Unit size of $1. The targets are projected Log Scale 2x the initial thrust. From this chart we see that the target prices are reached later than the projection predicted. This means that we need to consider a lesser slope. Chart 2 below shows the same chart with the slope now adjusted to $1 every three days. This chart shows that recent targets for Applied Materials have been approximately met with this slope. Therefore, this is a better slope to use in this instance.
Chart 1 - Applied Materials (unit size $1) - target projection slope $1 every 2 days
Chart 2 - Applied Materials (unit size $1) - target projection slope $1 every 3 days
Chart 3 - Applied Materials (unit size $1) - target projection slope 1/2 initial thrust slope
The second method of projecting price targets assumes the time that a price target will be reached is directly related to the speed of the initial thrust, which generates the target. Chart 3 shows the same security as in the previous examples but using this method with an angle of slope which is half the initial thrust angle. The factor can also be altered with this method to best fit the data. In the previous examples (Charts 1 & 2) we see the slope of each of the targets is constant. Using the Thrust Angle Factor method, different buying and selling thrust angles produces different target slopes.
A third possible projection method assumes that the longer a price target takes to activate, the longer it takes for a target to be reached. The argument goes that the pullback from the initial thrust is more of a consolidation phase rather than a sharp reaction and therefore, the potential overall move will take longer. Chart 4 shows this method. Again, we see that, due to the varying times of price targets to activate, the slopes of the targets are not uniform as in Method 1 which uses a consistent price to time slope.
Chart 4: Applied Materials (unit size $1) – target projection x times the time taken for target to activate.
Chart 5: Applied Materials (unit size $1) – target projection readjusts with new price information
A fourth method for predicting when in the future that a price target might be met adjusts the slope of the targets from the activation point as new price information arrives. With multiple targets activated at different points on the chart, this method also produces price targets of different slopes. Because targets are readjusted with every new price, it is best to set this method to ignore the last x bars in order to spot any divergence from the targets. Chart 5 shows this methodology.
Chart 6 shows a method where the average slope of price over time is taken for the previous n targets that are achieved and used as the slope for projecting targets into the future. While the slopes for upward and downward targets can be separately adjusted with the previous methods mentioned, this method automatically calculates the different slope speeds of upside and downside targets.
Chart 6: Applied Materials (unit size $1) – target projection based on the average slope of the last x targets.
Multiple Price Targets
As with Point and figure count targets, multiple price targets point to the same price or price level increases the likelihood of price targets being met. This is known as ‘clustering’. Now with the ability to project price targets to a future date on a chart, it is not only possible to see clustering of the price of multiple targets, but also clustering of times targets may be met. This can lead to a ‘cluster zone’, an area of price and time in the future that multiple targets may be met. Chart 7 shows an example of this.
Chart 7: Applied Materials (unit size $1) – target zone of future price and time of multiple targets
Achievement and Non-Achievement of Price Targets and Prevailing Trend
Point and figure targets are approximate and are more often than not, not met precisely. They are regularly not achieved or exceeded, but this provides valuable information in itself. Upside price targets that are achieved or exceeded shows bullish confirmation, whereas these targets not being achieved indicates a degree of bearishness. Conversely, downside price targets achieved or exceeded is bearish confirmation and such targets not achieved is an indication of inherent bullishness.
Unsurprisingly, price targets are normally achieved or exceeded in line with the prevailing trend. Upside price targets should be given more weight in uptrends, while downside ones may only serve as a temporary moment for caution, because they are counter-trend. Downside Targets will carry more weight in downtrends. It is also often the case that the last target in line with the prevailing trend is never met as the trend changes and a new set of targets in the opposite direction are generated with the new reversal of trend. Active price targets in both directions are often an early sign of this. This is particularly true with multiple targets in the new trend direction verses one lone target in the previous trend direction. This lone target is likely to be negated, clearly signalling the new trend direction is taking hold.
Activation and Negation of Price Targets
An upside price target is only activated when prices rise a further than a full price unit above the top of the initial uninterrupted buying thrust in prices from a low. A low is defined by a price level at least one full price unit below a previous recent low. The pullback downwards of at least three price units ‘locks’ the initial thrust that generates the upside price target. Here the bulls buying from the bottom have been confirmed.
A downside price target is only activated when prices fall further than a full price unit below the bottom of the initial uninterrupted selling thrust in prices from a high. A high is defined by a price level at least one full price unit above a previous recent high. The pullback upwards of at least three price units ‘locks’ the initial thrust that generates the downside price target. Here the bears selling from the top have been confirmed.
A target is valid once the column is locked with the pullback of at least three units, but it should not be considered as active until the price breaks through the activation level. An unactivated target serves as advance notice that a target is in place and will become active once the activation price level is broken.
An upside price target is negated if prices fall below the bottom of the initial uninterrupted buying thrust in prices. In this instance the bulls have been beaten by the bears. Conversely, a downside price target is negated if prices rise above the top of the initial uninterrupted Selling thrust in prices. Here the bears selling from the top have been beaten by the bulls.
It is important to note the difference between a target that is activated first and then negated and a target that was never activated and negated first. Research shows that normally more than half of all negated targets were never activated and wouldn’t have been taken. Taking the prevailing trend into account further reduces the number of negated targets that would have been taken at the activation point.
Evaluating a Target as Price Progress
Because Linton Price targets can be evaluated with subsequent new price information with the passage of time, it becomes possible to see more easily, than on a point and figure chart, when a target might be failing. The ideas of activation, negation, and achievement of price targets are understood in point and figure charting and apply similarly here to time-based charts. But the ability to now see prices diverging from the target path presents us with some potential new states of a target. In the case of an upside target, if prices fall away or wander sideways from a target path this alerts us to the fact that the prices on their way to the target may be ‘exhausting’. If we fall or wander back below the target activation level, this implies the previous resistance level off the thrust high has not managed to become a new support level for the price. Consequently, we may consider that the target has been ‘de-activated’. If we fall further below the low of the pullback low point, this previous support level also failed to hold and this is providing us with an early warning that the target is quite possibly ‘failing.’ If prices are moving towards the target as expected, we can say the target is ‘in train.’ This is particularly appropriate for multiple targets that run parallel using the first price/time slope prediction method where the targets look like ‘train tracks.’
Improbable Targets
Occasionally an improbable target a long way from the price will be generated. This is particularly true using a log scale projection. Beware of a target that points to a very large change in price. This is especially true of a lone target. It is also quite likely that the unit size has been set too small where a bigger unit size may not produce a target at all.
Longer term charts
Point and figure charts have always meant to be constructed with tick data. The point and figure methodology reduces this down to just the ticks that create a new box on the chart. Long tick data price histories are typically expensive and hard to come by. This can also be an overwhelming amount data to store and analyse, particularly in the case of very liquid instruments such as a major currency pair. For intraday charts, one minute data will normally suffice. But these histories may not be long enough either and it may be necessary to use a 60-minute chart.
It is also possible to construct point and figure charts using high/low data or even open-high-low-close data making some assumptions based on a rising or falling candle, on which came first, the high or the low. The targets will be impacted accordingly.
When it comes to longer term charts such as weekly or monthly charts it is unlikely that these time frames would be used for point and figure charts. The construction method already filters the data. But when it comes to long-term time based charts it becomes necessary to look at weekly or monthly data.
You will also see that long term price upside targets are generated that are not on the daily chart. This is because daily the movements will not provide the same uninterrupted buying thrusts as with the monthly data. The daily pullbacks are effectively ignored when using monthly data. The other advantage is the unit size is now months so we can say that the target slope equates to 1% of price every month for a 1 to 1 slope for example. Using weekly or monthly data to construct the price targets is a significant departure from the traditional point and figure charting method.
Time-Based Charts Are Easier to Understand Than Point and Figure Charts
In recent years, the vast majority of people carrying out technical analysis of charts do not use the point and figure charts. This is partly because very few software systems draw them correctly and do not calculate the price targets. Newcomers to technical analysis find point and figure charts hard to understand.
Combining With Other Techniques
Using point and figure charts has also often meant the need to switch between different chart types for the same instrument. Time-based charts allow for a vast set of technical analysis time-series based techniques to be married with Linton Price Targets. Having different sets of analysis on the same chart can increase the power of the analysis without having to swap between different chart types.
Linton Price Targets builds on the technical analysis body of knowledge developed over the past 100 years by bringing an old, largely lost, technique into the modern age.
The main advantages of Linton Price Targets are:
• The ability to have price targets on time-based charts.
• It is now possible to ascertain when in the future a price target may be met.
• With the passage of time, it becomes clearer if a target track is being followed.
• The targets can be applied to longer-term time-based charts.
• Time-series based analysis techniques can be used on the same chart as the targets.
• The targets are much easier to understand for the newcomer to technical analysis.
BVB dominance bars
Hello everyone, this is my first indicator. these candles shows you who's in control. I like to think its some what close to heikin ashi candles as it shows you the Trend but doesn't average it out. also shows you when there is indecision. please read the instructions on how it works. its not a stand alone strategy. but adds value to your own strategy.
📖 How It Works
The BvB Dominance Bars indicator is a visual tool that colors candles based on market control—whether bulls or bears are in charge. It uses a custom metric comparing the price's relationship to a smoothed moving average (EMA), then normalizes that difference over time to express relative bullish or bearish pressure.
Here’s the breakdown:
Bulls vs Bears Logic:
A short-term EMA (default: 14-period) is used to establish a midpoint reference.
Bull Pressure is calculated as how far the high is above this EMA.
Bear Pressure is how far the low is below this EMA.
These are normalized over a lookback period (default: 120 bars) to produce percentile scores (0–100) for both bulls and bears.
Dominance & Color Coding:
The indicator compares normalized bull and bear scores.
Candles are color-coded based on:
Bright Lime: Strong Bull Dominance (with high confidence)
Soft Lime/Yellow: Moderate Bull Control
Bright Red: Strong Bear Dominance
Soft Red/Yellow: Moderate Bear Control
Gray: Neutral/Low conviction
Optional Live Label:
A small floating label shows who has control: “Bull Control,” “Bear Control,” or “Neutral.”
🧠 How to Use It (Example Strategy)
The BvB Dominance Bars indicator is not a standalone buy/sell signal but a market sentiment overlay. It’s most effective when combined with your own strategy, like price action or trend-following tools.
Here’s an example use case:
🧪 Reversal Confirmation Strategy
Objective: Catch high-probability reversals during key kill zones or supply/demand levels.
Setup:
Mark your key support/resistance zones using your standard method (e.g., FVGs, liquidity sweeps, or ICT PD arrays).
Wait for price to reach one of these zones.
Watch candle colors from the BvB Dominance Bars:
If you expect a bullish reversal, wait for a transition from red/gray candles to lime green or bright lime (bullish dominance taking over).
If you expect a bearish reversal, look for a change from green/gray to red or bright red.
Entry Filter:
Only enter if the dominant color holds for 2+ candles.
Avoid trades when candles are gray or yellow (indecision/neutral).
Exit Option:
Exit if dominance shifts against you (e.g., from lime to red), or use structure-based stops.
⚙️ Settings You Can Adjust:
BvB Period: Controls how fast EMA responds.
Bars Back: Determines how long the normalization looks back.
Thresholds: Influence how strong the dominance must be to change candle color.
✅ Best Used When:
You already have a bias and just want a confirmation of sentiment.
You're trading intraday and want a feel for shifting momentum without relying on noisy indicators.
You want a clean, color-coded overlay to help filter out fakeouts and indecision.
Multiple (12) Strong Buy/Sell Signals + Momentum
Indicator Manual: "Multiple (12) Strong Buy/Sell Signals + Momentum"
This indicator is designed to identify strong buy and sell signals based on 12 configurable conditions, which include a variety of technical analysis methods such as trend-following indicators, pattern recognition, volume analysis, and momentum oscillators. It allows for customizable alerts and visual cues on the chart. The indicator helps traders spot potential entry and exit points by displaying buy and sell signals based on the selected conditions.
Key Observations:
• The script integrates multiple indicators and pattern recognition methods to provide comprehensive buy/sell signals.
• Trend-based indicators like EMAs and MACD are combined with pattern recognition (flags, triangles) and momentum-based signals (RSI, ADX, and volume analysis).
• User customization is a core feature, allowing adjustments to the conditions and thresholds for more tailored signals.
• The script is designed to be responsive to market conditions, with multiple conditions filtering out noise to generate reliable signals.
________________________________________
Key Features:
1. 12 Combined Buy/Sell Signal Conditions: This indicator incorporates a diverse set of conditions based on trend analysis, momentum, and price patterns.
2. Minimum Conditions Input: You can adjust the threshold of conditions that need to be met for the buy/sell signals to appear.
3. Alert Customization: Set alert thresholds for both buy and sell signals.
4. Dynamic Visualization: Buy and sell signals are shown as triangles on the chart, with momentum signals highlighted as circles.
________________________________________
Detailed Description of the 12 Conditions:
1. Exponential Moving Averages (EMA):
o Conditions: The indicator uses EMAs with periods 3, 8, and 13 for quick trend-following signals.
o Bullish Signal: EMA3 > EMA8 > EMA13 (Bullish stack).
o Bearish Signal: EMA3 < EMA8 < EMA13 (Bearish stack).
o Reversal Signal: The crossing over or under of these EMAs can signify trend reversals.
2. MACD (Moving Average Convergence Divergence):
o Fast MACD (2, 7, 3) is used to confirm trends quickly.
o Bullish Signal: When the MACD line crosses above the signal line.
o Bearish Signal: When the MACD line crosses below the signal line.
3. Donchian Channel:
o Tracks the highest high and lowest low over a given period (default 20).
o Breakout Signal: Price breaking above the upper band is bullish; breaking below the lower band is bearish.
4. VWAP (Volume-Weighted Average Price):
o Above VWAP: Bullish condition (price above VWAP).
o Below VWAP: Bearish condition (price below VWAP).
5. EMA Stacking & Reversal:
o Tracks the order of EMAs (3, 8, 13) to confirm strong trends and reversals.
o Bullish Reversal: EMA3 < EMA8 < EMA13 followed by a crossing to bullish.
o Bearish Reversal: EMA3 > EMA8 > EMA13 followed by a crossing to bearish.
6. Bull/Bear Flags:
o Bull Flag: Characterized by a strong price movement (flagpole) followed by a pullback and breakout.
o Bear Flag: Similar to Bull Flag but in the opposite direction.
7. Triangle Patterns (Ascending and Descending):
o Detects ascending and descending triangles using pivot highs and lows.
o Ascending Triangle: Higher lows and flat resistance.
o Descending Triangle: Lower highs and flat support.
8. Volume Sensitivity:
o Identifies price moves with significant volume increases.
o High Volume: When current volume is significantly above the moving average volume (set to 1.2x of the average).
9. Momentum Indicators:
o RSI (Relative Strength Index): Confirms overbought and oversold levels with thresholds set at 65 (overbought) and 35 (oversold).
o ADX (Average Directional Index): Confirms strong trends when ADX > 28.
o Momentum Up: Momentum is upward with strong volume and bullish RSI/ADX conditions.
o Momentum Down: Momentum is downward with strong volume and bearish RSI/ADX conditions.
10. Bollinger & Keltner Squeeze:
o Squeeze Condition: A contraction in both Bollinger Bands and Keltner Channels indicates low volatility, signaling a potential breakout.
o Squeeze Breakout: Price breaking above or below the squeeze bands.
11. 3 Consecutive Candles Condition:
o Bullish: Price rises for three consecutive candles with higher highs and lows.
o Bearish: Price falls for three consecutive candles with lower highs and lows.
12. Williams %R and Stochastic RSI:
o Williams %R: A momentum oscillator with signals when the line crosses certain levels.
o Stochastic RSI: Provides overbought/oversold levels with smoother signals.
o Combined Signals: You can choose whether to require both WPR and StochRSI to signal a buy/sell.
________________________________________
User Inputs (Inputs Tab):
1. Minimum Conditions for Buy/Sell:
o min_conditions: Number of conditions required to trigger a buy/sell signal on the chart (1 to 12).
o Alert_min_conditions: User-defined alert threshold (how many conditions must be met before an alert is triggered).
2. Donchian Channel Settings:
o Show Donchian: Toggle visibility of the Donchian channel.
o Donchian Length: The length of the Donchian Channel (default 20).
3. Bull/Bear Flag Settings:
o Bull Flag Flagpole Strength: ATR multiplier to define the strength of the flagpole.
o Bull Flag Pullback Length: Length of pullback for the bull flag pattern.
o Bull Flag EMA Length: EMA length used to confirm trend during bull flag pattern.
Similar settings exist for Bear Flag patterns.
4. Momentum Indicators:
o RSI Length: Period for calculating the RSI (default 9).
o RSI Overbought: Overbought threshold for the RSI (default 65).
o RSI Oversold: Oversold threshold for the RSI (default 35).
5. Bollinger/Keltner Squeeze Settings:
o Squeeze Width Threshold: The maximum width of the Bollinger and Keltner Bands for squeeze conditions.
6. Stochastic RSI Settings:
o Stochastic RSI Length: The period for calculating the Stochastic RSI.
7. WPR Settings:
o WPR Length: Period for calculating Williams %R (default 14).
________________________________________
User Inputs (Style Tab):
1. Signal Plotting:
o Control the display and colors of the buy/sell signals, momentum indicators, and pattern signals on the chart.
o Buy/Sell Signals: Can be customized with different colors and shapes (triangle up for buys, triangle down for sells).
o Momentum Signals: Custom circle placement for momentum-up or momentum-down signals.
2. Donchian Channel:
o Show Donchian: Toggle visibility of the Donchian upper, lower, and middle bands.
o Band Colors: Choose the color for each band (upper, lower, middle).
________________________________________
How to Use the Indicator:
1. Adjust Minimum Conditions: Set the minimum number of conditions that must be met for a signal to appear. For example, set it to 5 if you want only stronger signals.
2. Set Alert Threshold: Define the number of conditions needed to trigger an alert. This can be different from the minimum conditions for visual signals.
3. Customize Appearance: Modify the colors and styles of the signals to match your preferences.
________________________________________
Conclusion:
This comprehensive trading indicator uses a combination of trend-following, pattern recognition, and momentum-based conditions to help you spot potential buy and sell opportunities. By adjusting the input settings, you can fine-tune it to match your specific trading strategy, making it a versatile tool for different market conditions.
Signal Reliability Based on Condition Count
The reliability of the buy/sell signals increases as more conditions are met. Here's a breakdown of the probabilities:
1. 1-3 Conditions Met: Lower Probability
o Signals that meet only 1-3 conditions tend to have lower reliability and are considered less probable. These signals may represent false positives or weaker market movements, and traders should approach them with caution.
2. 4 Conditions Met: More Reliable Signal
o When 4 conditions are met, the signal becomes more reliable. This indicates that multiple indicators or market patterns are aligning, increasing the likelihood of a valid buy/sell opportunity. While not foolproof, it's a stronger indication that the market may be moving in a particular direction.
3. 5-6 Conditions Met: Strong Signal
o A signal meeting 5-6 conditions is considered a strong signal. This indicates a well-confirmed move, with several technical indicators and market factors aligning to suggest a higher probability of success. These are the signals that traders often prioritize.
4. 7+ Conditions Met: Rare and High-Confidence Signal
o Signals that meet 7 or more conditions are rare and should be considered high-confidence signals. These represent a significant alignment of multiple factors, and while they are less frequent, they are highly reliable when they do occur. Traders can be more confident in acting on these signals, but they should still monitor market conditions for confirmation.
________________________________________
You can adjust the number of conditions as needed, but this breakdown should give a clear structure on how the signal strength correlates with the number of conditions met!
Uptrick: Oscillator SpectrumUptrick: Oscillator Spectrum is a versatile trading tool designed to bring together multiple aspects of technical analysis—oscillators, momentum signals, divergence checks, correlation insights, and more—into one script. It includes customizable overlays and alert conditions intended to address a wide range of market conditions and trading styles.
Developed in Pine Script™, Uptrick: Oscillator Spectrum represents an extended version of the classic Ultimate Oscillator concept. It consolidates short-, medium-, and long-term momentum readings, applies correlation analysis across different symbols, and offers optional table-based metrics to provide traders with a more structured overview of potential trade setups. Whether used alongside your existing charts or as a standalone toolkit, it aims to build on and enhance the functionality of the standard Ultimate Oscillator.
### A Few Key Features
- Momentum Insights: Multiple timeframes for oscillators, plus buy/sell signal modes for flexible identification of overbought/oversold situations or crossovers.
- Divergence Detection: Automated checks for bullish/bearish divergences, aiming to help traders spot potential shifts in momentum.
- Correlation Meter: A visual histogram summarizing how selected assets are collectively trending. It is useful for tracking the bigger market picture.
- Gradient Overlays & Bar Coloring: Dynamic color transitions designed to emphasize changes in momentum, trend shifts, and overall sentiment without cluttering the chart.
- Money Flow Tracker: Tracks the flow of money into and out of the market using a smoothed Money Flow Index (MFI). Highlights overbought/oversold conditions with dynamic bar coloring and visual gradient fills, helping traders assess volume-driven sentiment shifts.
- Advanced Table Metrics: An optional table showing return on investment (ROI), collateral risk, and other contextual metrics for supported assets.
- Alerts & Automation: Configurable alerts covering divergence events, crossing of critical levels, and more, helping to keep traders informed of developments in real time.
### Intended Usage
- For Multiple Markets: Works on various markets (cryptocurrencies, forex pairs, stocks) to deliver a consistent view of momentum, potential entry/exit signals, and correlation.
- Adaptable Trading Styles: With customizable input settings, you can enable or disable specific features to align with your preferred strategies—intraday scalping, swing trading, or position holding.
By combining these elements under one indicator, Uptrick: Oscillator Spectrum allows traders to streamline analysis workflows, helping them stay focused on interpreting market moves and making informed decisions rather than juggling multiple scripts.
Purpose
Purpose of the “Uptrick: Oscillator Spectrum” Indicator
The “Uptrick: Oscillator Spectrum” indicator is intended to bring together several technical analysis elements into one tool. It combines oscillator-based momentum readings across different lookback periods, checks for potential divergences, provides optional buy/sell signal triggers, and offers correlation-based insights across multiple symbols. Additionally, it includes features such as bar coloring, gradient visualization, and user-configurable alerts to help highlight various market conditions.
By consolidating these functions, the script aims to help users systematically observe changing momentum, identify when prices reach user-defined overbought or oversold levels, detect when oscillator movements diverge from price, and examine whether different assets are aligning or diverging in their trends. The indicator also allows for optional advanced metric tables, which can supply further context on risk, ROI calculations, or other factors for supported assets. Overall, the script’s purpose is to organize multiple layers of technical analysis so that users have a structured way to evaluate potential trade opportunities and market behavior.
## Usage Guide
Below is an outline of how you can utilize the various components and features of Uptrick: Oscillator Spectrum in your charting workflow.
---
### 1. Using the Core Oscillator
- Basic View: By default, the script calculates a multi-timeframe oscillator (commonly displayed as the “Ultimate Oscillator”). This oscillator combines short-, medium-, and long-term measurements of buying pressure and true range.
- Overbought/Oversold Zones: You can configure thresholds (e.g., 70 for overbought, 30 for oversold) to help identify potential turning points. When the oscillator crosses these levels, it may indicate that price is extended in one direction.
- You can use the colors of the main oscillator to help you take short-term trades as well: cyan : Buy , red: Sell
- Alerts: If you enable alerts, the indicator can notify you when the oscillator crosses above or below your chosen overbought/oversold boundaries or when you get buy/sell signals.
---
### 2. Buy/Sell Signals in Overlay Modes
Uptrick: Oscillator Spectrum provides several signal modes and a choice between overlay true and overlay false or both. Additionally, you can pick which “line” (data source) the script uses to generate signals. This is set in the “Line to Analyze” dropdown, which includes Oscillator, HMA of Oscillator, and Moving Average. The following sections describe how each piece fits together.
---
#### Line to Analyze - Overlay Flase: Oscillator / HMA of Oscillator / Moving Average
1. Oscillator
- The core momentum reading, reflecting short-, medium-, and long-term periods combined.
2. HMA of Oscillator
- Applies a Hull Moving Average to the oscillator, creating a smoother but still responsive curve.
- Signals will be derived from this smoothed line. Some traders find it filters out minor fluctuations while remaining quicker to react than standard averages.
3. Moving Average
- Uses a user-selected MA type (SMA, EMA, WMA, etc.) over the oscillator values, rather than the raw oscillator itself.
- Tends to be more stable than the raw oscillator, but might delay signals more depending on the chosen MA settings.
---
#### Signal Modes
Regardless of which line you choose to analyze, you can use one of the following seven signal modes in overlay being true:
1. Overbought/Oversold (Pyramiding)
- What It Does:
- Buy signal when the chosen line crosses below the oversold threshold.
- Sell signal when it crosses above the overbought threshold.
- Pyramiding:
- Allows multiple triggers within the same overbought/oversold event.
2. Overbought/Oversold (Non Pyramiding)
- What It Does:
- Same thresholds but only one signal per oversold or overbought event.
- Use Case:
- Prevents repeated signals and chart clutter.
3. Smoothed MA Middle Crossover
- What It Does:
- Uses an MA defined by the user.
- Buy when crossing above the midpoint (50), Sell when crossing below.
- Use Case:
- Generates fewer signals, focusing on broader momentum shifts. There is no pyramiding.
In this image ,for example, the VWMA is used with length of 14 to identify buy sell signals.
4. Crossing Above Overbought/Below Oversold (Non Pyramiding)
- What It Does:
- Buy occurs if the line exits oversold territory by crossing back above it.
- Sell occurs if the line exits overbought territory by crossing back below it.
- Non Pyramiding:
- Restricts repeated signals until conditions reset.
5. Crossing Above Overbought/Below Oversold (Pyramiding)
- What It Does:
- Same thresholds, but allows multiple signals if the line repeatedly dips in and out of overbought or oversold.
- Use Case:
- More frequent entries/exits for active traders.
6. Divergence (Non Pyramiding)
- What It Does:
- Identifies bullish or bearish divergences using the chosen line vs. price.
- Buy for bullish divergence (higher low on the line vs. lower low on price), Sell for bearish divergence.
- Single Trigger:
- Only one signal per identified divergence event. (non pyramiding)
7. Divergence (Pyramiding)
- What It Does:
- Same divergence logic but triggers multiple times if the script sees repeated divergence in the same direction.
- Use Case:
- Could suit traders who layer positions during sustained divergence scenarios.
#### Overlay Modes: True vs. False
1. Overlay True
- Buy/sell arrows or labels plot directly on the main price chart, often at or near candlesticks.
- Bar Coloring:
- Can turn the candlestick bars green (buy) or red (sell), with intensity reflecting signal recency if bar coloring is enabled for this mode. (read below.)
- Advantage:
- Everything (price, signals, bar colors) is in one spot, making it straightforward to associate signals with current market action. You can adjust the periods of the main oscillator or lookback periods of divergences or overbought/oversold thresholds, to play around with your signals.
2. Overlay False
- Signal Placement:
- Signals appear in a sub-window or oscillator panel, leaving the main price chart uncluttered.
- Bar Coloring:
- You may still enable bar colors on the main chart (green for buy, red for sell) if desired.
- Alternatively, you can keep them neutral if you prefer a completely separate display of signals.
- Advantage:
- Clear separation of price action from signals, useful for cleaner charts or if using multiple overlay-based tools.
At the bottom are the signals for overlay being false and on the chart are the signals for overlay being true:
#### Bar Color Adjustments
1. Coloring Logic
- Bars typically go green on buy signals, red on sell signals.
- The opacity or brightness can vary to indicate signal freshness. When a new signal is formed, the color gets brighter. When there is no signal for a longer period of time, then the color slowly fades.
2. Enabling Bar Coloring
- In the indicator’s settings, turn on Bar Coloring.
- Choose “Signals Overlay True” or “Signals Overlay False” from the “Color should depend on:” dropdown, depending on which overlay approach you want to drive your bar colors. You can also chose the cloud fill in overlay false, correlation meter and smoothed HMA to color bars. Read more below:
### Bar Color Options:
When you enable bar coloring in Uptrick: Oscillator Spectrum, you can select which component or signal logic drives the color changes. Below are the five available choices:
---
#### Option 1: Overlay True Signals
- What It Does:
- Uses signals generated under the Overlay True mode to color the bars on your main chart.
- If a buy signal is triggered, bars turn green. If a sell signal occurs, bars turn red.
- Color Intensity:
- Bars appear brighter (more opaque) immediately after a new signal fires, then gradually fade over subsequent bars if no new signal appears.
---
#### Option 2: Overlay False Signals
- What It Does:
- Links bar coloring to signals generated when Overlay False mode is active.
- Buy/sell labels typically plot in a separate sub-window instead of the main chart, but your price bars can still change color based on these signals.
- Color Intensity:
- Similar to Overlay True, new buy/sell signals yield stronger color intensity, which fades over time.
- Use Case:
- Helps maintain a clean main chart (with signals off-chart) while still providing an immediate color-coded indication of a buy or sell state.
- Particularly useful if you prefer less clutter from signal markers on your price chart yet still want a visual representation of signal timing.
In this example normal divergence Pyramiding Signals are used in the overlay being true and the signals in overlay false are signals that analyze the HMA. This can help clear out noise (using a combo of both).
Option 3: Money Flow Tracker
What It Does:
The Money Flow Tracker uses the Money Flow Index (MFI), a volume-weighted oscillator, to measure the strength of money flowing into or out of an asset. The script smooths the raw MFI data using an EMA for a more responsive and visually intuitive output.
The feature also includes dynamic color gradients and bar coloring that highlight whether money flow is positive or negative.
Green Fill/Bar Color: Indicates positive money flow, suggesting potential accumulation.
Red Fill/Bar Color: Indicates negative money flow, signaling potential distribution.
Overbought and oversold thresholds are dynamically emphasized with transparency, making it easier to identify high-confidence zones.
Use Case:
Ideal for traders focusing on volume-driven sentiment to identify turning points or confirm existing trends.
Suitable for assessing broader market conditions when used alongside other indicators like oscillators or correlation analysis.
Provides additional clarity in spotting areas of accumulation or distribution, making it a valuable complement to price action and momentum studies.
---
#### Option 4: Correlation Meter
- What It Does:
- Colors the bars based on the indicator’s Correlation Meter output. The script checks multiple chosen tickers and sums up how many are trending positively or negatively.
- If the meter indicates an overall bullish bias (e.g., more than three assets in uptrend), bars turn green; if it’s bearish, bars turn red.
- Trend Readings:
- The correlation meter typically plots a histogram of bullish/neutral/bearish states. The bar color option links your chart’s candlestick coloring to that higher-level market sentiment.
- Use Case:
- Useful for traders wanting a quick visual prompt of whether the broader market (or a selection of related assets) is bullish or bearish at any given time.
- Helps avoid signals that conflict with the market majority.
#### Option 5: Smoothed HMA
- What It Does:
- Bar colors are driven by the slope or state of the Hull Moving Average (HMA) of the oscillator, rather than individual buy/sell triggers or correlation data.
- If the HMA indicates a strong upward slope (possibly darkening), bars may turn green; if the slope is downward (purple in the HMA line), bars turn red.
- Use Case:
- Ideal for those who focus on momentum continuity rather than discrete signals like overbought/oversold or divergence.
- May help identify smoother, more sustained moves, as the HMA filters out minor oscillations.
---
### 3. Using the Hull Moving Average (HMA) of the Oscillator
- HMA Calculation: You can enable a dedicated Hull Moving Average (HMA) for the oscillator. This creates a smoother line of the same underlying momentum reading, typically responding more quickly than classic moving averages.
- Color Intensity: As the HMA sustains an uptrend or downtrend, the script can adjust the line’s color. When slope momentum persists in one direction, the color appears more opaque. This intensification can hint that the existing direction may be well-established.
- Reversal Potential: If you observe the HMA color shifting or darkening after multiple bars of slope in the same direction, it may indicate increasing momentum. Conversely, a sudden flattening or change in color can be a clue that momentum is waning.
---
### 4. Moving Average Overlays & Gradient Cloud
- Oscillator MA: The script allows you to apply moving average types (SMA, EMA, SMMA, WMA, or VWMA) to the core oscillator, rather than to price. This can smooth out noise in the oscillator, potentially highlighting more consistent momentum shifts.
- Gradient Cloud: You can also enable a cloud in overlay true between two moving averages (for instance, a Hull MA and a Double EMA) on the price chart. The cloud fills with different colors, depending on which MA is above the other. This can provide a quick visual reference to bullish or bearish areas.
---
### 5. Divergence Detection
- Bullish & Bearish Divergence: By toggling “Calculate Divergence,” the script looks for oscillator pivots that contrast with price pivots (e.g., price making a lower low while the oscillator makes a higher low).
- A divergence is when the price makes an opposite pivot to the indicator value. E.g. Price makes lower low but indicator does higher low - This suggests a bullish divergence. THe opposite is for a bearish divergence.
- Visual Labels: When a divergence is found, labels (such as “Bull” or “Bear”) appear on the oscillator. This helps you see if the oscillator’s momentum patterns differ from the price movement.
- Filtering Signals: You can combine divergence signals with other features like overbought/oversold or the HMA slope to refine potential entries or exits.
---
### 6. Correlation & Multi-Ticker Analysis
- Correlation Meter: You can select up to five tickers in the settings. The script calculates a slope-based metric for each, then combines those metrics to show an overall bullish or bearish tendency (displayed as a histogram).
- Bar Coloring & Overlay: If you activate correlation-based bar coloring, it will reflect the broader trend alignment among the selected assets, potentially indicating when most are trending in the same direction.
- Use Case: If you trade multiple markets, the correlation histogram can help you quickly see if several major assets support the same market bias or are diverging from one another.
—
### 7. Money Flow Tracker
Money Flow Calculation: The Money Flow Tracker calculates the Money Flow Index (MFI) based on price and volume data, factoring in buying pressure and selling pressure. The output is smoothed using a low-lag EMA to reduce noise and enhance usability.
Visual Features:
Dynamic Gradient Fill:
The space between the smoothed MFI line and the midline (set at 50) is filled with a gradient.
Above 50: Green gradient, with intensity increasing as the MFI moves further above the midline.
Below 50: Red gradient, with intensity increasing as the MFI moves further below the midline.
This gradient provides a clear visual representation of money flow strength and direction, making it easier to assess sentiment shifts at a glance.
Overbought/Oversold Levels: Default thresholds are set at 70 (overbought) and 30 (oversold). When the MFI crosses these levels, it signals potential reversals or trend continuations.
Bar Coloring:
Bars turn green for positive money flow and red for negative money flow.
Color intensity fades over time, ensuring recent signals stand out while older ones remain visible without dominating the chart.
Alerts:
Alerts are triggered when the Money Flow Tracker crosses into overbought or oversold zones, keeping traders informed of critical conditions without constant monitoring.
Practical Applications:
Trend Confirmation: Use the Money Flow Tracker alongside the oscillator or HMA to confirm trends or identify potential reversals.
Volume-Based Reversal Signals: Spot turning points where price action aligns with shifts in money flow direction.
Sentiment Analysis: Gauge whether market participants are accumulating (positive flow) or distributing (negative flow) assets, offering an additional layer of insight into price movement.
(Space for an example chart: “Money Flow Tracker with gradient fills and overbought/oversold levels”)
### 8. Putting It All Together
- Combining Signals: A practical approach might be to watch for a bullish divergence in the oscillator, confirm it with a shift in the HMA slope color, and then wait for the price to be near or below oversold conditions. The correlation histogram may further confirm if the broader market is also leaning bullish at that time.
- Visual Cues: Bar coloring adds another layer, making your chart easier to interpret at a glance. You can also set alerts to ensure you don’t miss key events like divergences, crossovers, or moving average flips.
- Flexibility: Not every feature needs to be used simultaneously. You might opt to focus on divergences and overbought/oversold signals, or you could emphasize the correlation histogram and bar colors. The settings let you enable or disable each module to suit your style.
---
### 9. Tips for Customization
- Adjust Periods: Shorter periods can yield more signals but also more noise. Longer periods may provide steadier, but fewer, signals.
- Set Appropriate Alert Conditions: Only alert on events most relevant to your strategy to avoid overload.
- Explore Different MAs: Depending on the instrument, some moving average types may give a smoother or more responsive indication.
- Monitor Risk Management: As with any tool, these signals do not guarantee performance, so consider position sizing and stop-loss strategies.
---
By toggling and experimenting with the features described above—buy/sell signals, divergences, moving averages, dynamic gradient clouds, and correlation analysis—you can tailor Uptrick: Oscillator Spectrum to your specific trading approach. Each module is designed to give you a clearer, structured view of potential momentum shifts, overbought or oversold states, and the alignment or divergence of multiple assets.
## Features Explanation
Below is a detailed overview of key features in Uptrick: Oscillator Spectrum. Each component is designed to provide different angles of market analysis, allowing you to customize the tool to your preferences.
---
### 1. Main Oscillator
- Purpose: The primary oscillator in this script merges short-, medium-, and long-term views of buying pressure and true range into a single line.
- Calculation: It weights each period’s contribution (e.g., a heavier focus on the short period if desired) and normalizes the result on a 0–100 scale, where higher readings may suggest more robust momentum. (like from the classic Ultimate Oscillator)
- Practical Use:
- Traders can watch for overbought/oversold conditions at user-defined thresholds (e.g., 70/30).
- It can also provide a straightforward momentum reading for those who prefer to see if momentum is rising, falling, or leveling off.
---
### 2. HMA of the Smoothed Oscillator
- What It Is: A Hull Moving Average (HMA) applied to the main oscillator values. The HMA is often more responsive than standard MAs, offering smoother lines while preserving relatively quick reaction to changes.
- How It Works:
- The script takes the oscillator’s output and processes it through a Hull MA calculation.
- The HMA’s slope and color can change more dynamically, highlighting sharper momentum shifts.
- Why It’s Useful:
- By smoothing out minor fluctuations, the HMA can highlight trends in the oscillator’s trajectory.
- If you see an extended run in the HMA slope, it may indicate a more persistent trend in momentum.
- Color Intensity:
- As the HMA continues in one direction for several bars, the script can intensify the color, signaling stronger or more sustained momentum in that direction.
- Sudden changes in color or slope can signal the start of a new momentum swing.
---
### 3. Gradient Fill
This script uses two gradient-based visual elements:
1. Shining/Layered Gradient on the Main Oscillator
- Purpose: Adds multiple layers around the oscillator line (above and below) to emphasize slope changes and highlight how quickly the oscillator is moving up or down.
- Color Changes:
- When the oscillator rises, it uses a color scheme (e.g., aqua/blue) that intensifies as the slope grows.
- When the oscillator declines, it uses a distinct color (e.g., red/pink).
- User Benefit: Makes it easier to see at a glance if momentum is accelerating or decelerating, beyond just the numerical reading.
2. Dynamic Cloud Fill (Between MAs)
- Purpose: Allows you to plot two moving averages (for example, a short-term Hull MA and a longer-term DEMA) and fill the area between them with a color gradient.
- Bullish vs. Bearish:
- When the short MA is above the long MA, the cloud might appear in a greenish hue.
- When the short MA is below the long MA, the cloud can switch to red or another color.
- Transparency/Intensity:
- The fill can get more opaque if the difference between the two MAs is large, indicating a stronger trend but a higher probability of a reversal.
- User Benefit: Helps visualize changes in trend or momentum across multiple time horizons, all within a single chart overlay.
---
### 4. Correlation Meter & Symbol Inputs
- What It Is: This feature looks at multiple user-selected symbols (e.g., BTC, ETH, BNB, etc.) and computes each symbol’s short-term slope. It then aggregates these slopes into an overall “trend” score.
- Inputs Configuration:
1. Ticker Inputs: You can specify up to five different tickers.
2. Timeframe: Decide whether to pull data from different chart timeframes for each symbol.
3. Slope Calculation: The script may compute, for instance, a 5-period SMA minus a 20-period SMA to gauge if each symbol is trending up or down.
- Market Trend Histogram:
- Displays a column that goes above/below zero depending on how many symbols are bullish or bearish.
- If more than three (out of five) symbols are bullish, the histogram can show a green bar at +1; if fewer than three are bullish, it can show red at –1.
- How to Use:
- Quick Glance: Lets you know if most correlated assets are aligning or diverging.
- Bar Coloring (Optional): If enabled, your main chart’s bars can reflect the aggregated correlation, turning green or red depending on the meter’s reading.
---
### 5. Advanced Metrics Table
- What It Is: An optional table displaying additional metrics for several cryptocurrencies (or any symbols you define).
- Metrics Included:
1. ROI (30D): Calculates return relative to the lowest price in a 30-day period.
2. Collateral Risk: Uses standard deviation to assess volatility (higher risk if standard deviation is large).
3. Liquidity Recovery: A rolling average of volume, aiming to show how liquidity flows might recover over time.
4. Weakening (Rate of Change): Reflects how quickly price is changing compared to previous bars.
5. Monetary Bias (SMA): A simple average of recent prices. If price is below this SMA, it might be seen as undervalued relative to the short term.
6. Risk Phase: Categorizes risk as low, medium, or high based on the standard deviation figure.
7. DCA Signal: Suggests “Accumulate” or “Do Not Accumulate” by checking if the current price is below or above the SMA.
- Why It’s Useful:
- Offers a concise view of multiple assets in one place—helpful for portfolio-level insight.
- DCA (Dollar-Cost Averaging) suggestions can guide longer-term strategies, while volatility (collateral risk) helps gauge how aggressive the price swings might be.
---
### 6. Other Vital Aspects
- Alerts & Notifications:
- The script can trigger alerts for various conditions—crossovers, divergence detections, overbought/oversold transitions, or correlation-based signals.
- Useful for automating watchlists or ensuring you don’t miss a key setup while away from the screen.
- Customization:
- Each module (oscillator settings, divergence detection, correlation meter, advanced metrics table, etc.) can be enabled or disabled based on your preferences.
- You can fine-tune parameters (e.g., periods, smoothing lengths, alert triggers) to align the indicator with different trading styles—scalping, swing, or position trading.
- Combining Features:
- One might watch the main oscillator for momentum extremes, confirm via the HMA slope, check if correlation supports the same bias, and look at the table for risk-phase validation.
- This multi-layer approach can help develop a more structured and informed trading view.
(Space for an example chart: “A fully configured layout showing oscillator, HMA, gradient cloud, correlation meter, and table all in use.”)
7. Money Flow Tracker
Purpose: The Money Flow Tracker adds a volume-based perspective to the indicator suite by incorporating the Money Flow Index (MFI), which assesses buying and selling pressure over a defined period. By smoothing the MFI using an exponential moving average (EMA), the feature highlights the directional flow of capital into and out of the market with greater clarity and reduced noise.
Dynamic Gradient Visualization:
The Money Flow Tracker enhances visual analysis with gradient fills that reflect the MFI’s relationship to the midline (50).
Above 50: A green gradient emerges, intensifying as the MFI moves higher, indicating stronger positive money flow.
Below 50: A red gradient appears, with deeper shades signifying increasing selling pressure.
Transparency dynamically adjusts based on the MFI’s proximity to the midline, making high-confidence zones (closer to 0 or 100) visually distinct.
Directional Sensitivity:
The Tracker emphasizes the importance of overbought (above 70) and oversold (below 30) zones. These thresholds help traders identify when an asset might be overextended, signaling potential reversals or trend continuations.
The inclusion of a midline (50) as a neutral zone helps gauge shifts between accumulation (money flowing in) and distribution (money flowing out).
Bar Integration:
By enabling bar coloring linked to the Money Flow Tracker, traders can visualize its impact directly on price bars.
Green bars reflect positive money flow (above 50), signaling bullish conditions.
Red bars indicate negative money flow (below 50), highlighting bearish sentiment.
Intensity adjustments ensure that recent signals are more visually prominent, while older signals gradually fade for a clean, non-cluttered chart.
Key Advantages:
Volume-Informed Context: Traditional oscillators often focus solely on price; the Money Flow Tracker incorporates volume, adding a crucial dimension for analyzing market behavior.
Adaptive Filtering: The EMA-smoothing feature ensures that sudden, insignificant spikes in volume don’t trigger false signals, providing a clearer and more actionable representation of money flow trends.
Early Warning System: Divergences between price movement and the Money Flow Tracker’s trends can signal potential turning points, helping traders anticipate reversals before they occur.
Practical Use Cases:
Trend Confirmation: Pair the Money Flow Tracker with the oscillator or HMA to confirm bullish or bearish trends. For example, a rising oscillator with positive money flow indicates strong buying interest.
Identifying Entry/Exit Zones: Use overbought/oversold conditions as entry/exit points, particularly when combined with other features like divergence detection.
Market Sentiment Analysis: The Tracker’s ability to dynamically assess buying and selling pressure provides a clear picture of market sentiment, helping traders adjust their strategies to align with broader trends.
By understanding these features—main oscillator readings, the HMA’s smoothing capabilities, gradient-based visual highlights, correlation insights, advanced metrics, and the money flow tracker—you can tailor Uptrick: Oscillator Spectrum to your specific needs, whether you’re focusing on quick trades, longer-term market moves, or broad portfolio health.
Originality of the “Uptrick: Oscillator Spectrum” Indicator
While it includes elements of standard momentum analysis, Uptrick: Oscillator Spectrum sets itself apart by adding an array of features that broaden the typical oscillator’s scope:
1. Slope Coloring & Layered Gradient Effects
- Beyond just plotting a single line, the indicator visually highlights momentum shifts using color changes and gradient fills.
- As the oscillator’s slope becomes steeper or flatter, these gradients intensify or fade, helping users see at a glance when momentum is accelerating, slowing, or reversing.
2. Mean Reversion & Divergence Detection
- The script offers optional logic for marking potential mean reversion points (e.g., overbought/oversold crossovers) and flagging divergences between price and the oscillator line.
- These divergence signals come with adjustable lookback parameters, giving traders control over how recent or extended the pivots should be for detection.
- This functionality can reveal subtle momentum discrepancies that a basic oscillator might overlook.
3. Integrated Multi-Asset Correlation Meter
- In addition to monitoring a single symbol, the indicator can fetch data for multiple tickers. It aggregates each symbol’s slope into a histogram showing whether the broader market (or a group of assets) leans bullish or bearish.
- This cross-market insight moves beyond standard “one-symbol, one-oscillator” usage, adding a bigger-picture perspective in one tool.
4. Advanced Metrics Table
- Users can enable a table that covers ROI calculations, volatility-based risk (“Collateral Risk”), liquidity checks, DCA signals, and more.
- Rather than just seeing an oscillator value, traders can view additional metrics for selected assets in one place, helping them judge overall market conditions or assess multiple instruments simultaneously.
5. Flexible Overlay & Bar Coloring
- Signals can be displayed directly on the price chart (Overlay True) or in a sub-window (Overlay False).
- Bars themselves may change color (e.g., green for bullish or red for bearish) according to different rules—signals, dynamic cloud fill, correlation meter states, etc.
- This adaptability allows traders to keep the chart as simple or as info-rich as they prefer.
6. Custom Smoothing Options & HMA Extensions
- The oscillator can be processed further with a Hull Moving Average (HMA) to reduce noise while still reacting quickly to market changes.
- Slope-based coloring on the HMA provides an additional layer of visual feedback, which is not common in a standard oscillator.
By blending traditional momentum checks with slope-based color feedback, mean reversion triggers, divergence signals, correlation analysis, and an optional metrics table, Uptrick: Oscillator Spectrum offers a more rounded approach than a typical oscillator. It integrates multiple market insights—both visual and analytical—into one script, giving users a broader toolkit for studying potential reversals, gauging momentum strength, and assessing multi-asset trends.
## Conclusion
Uptrick: Oscillator Spectrum brings together multiple layers of analysis—oscillator momentum, divergence detection, correlation insights, HMA smoothing, and more—into one adaptable toolkit. It aims to streamline your charting process by offering meaningful visual cues (such as gradient fills and bar color shifts), advanced tables for broader market data, and flexible alerts to keep you informed of potential setups.
Traders can choose the specific features that suit their style, whether they prefer to focus on raw oscillator signals, multi-ticker correlation, or smooth trend cues from the HMA. By centralizing these different methods in one place, Uptrick: Oscillator Spectrum can help users build more structured approaches to spotting trend shifts and extended conditions, while also remaining compatible with additional analysis techniques.
---
### Disclaimer
This script is provided for informational purposes only and does not constitute financial or investment advice. Past performance is not indicative of future results, and all trading involves risk. You should carefully consider your objectives, risk tolerance, and financial situation before making any trading decisions.
AI Momentum [YinYang]Overview:
AI Momentum is a kernel function based momentum Indicator. It uses Rational Quadratics to help smooth out the Moving Averages, this may give them a more accurate result. This Indicator has 2 main uses, first it displays ‘Zones’ that help you visualize the potential movement areas and when the price is out of bounds (Overvalued or Undervalued). Secondly it creates signals that display the momentum of the current trend.
The Zones are composed of the Highest Highs and Lowest lows turned into a Rational Quadratic over varying lengths. These create our Rational High and Low zones. There is however a second zone. The second zone is composed of the avg of the Inner High and Inner Low zones (yellow line) and the Rational Quadratic of the current Close. This helps to create a second zone that is within the High and Low bounds that may represent momentum changes within these zones. When the Rationalized Close crosses above the High and Low Zone Average it may signify a bullish momentum change and vice versa when it crosses below.
There are 3 different signals created to display momentum:
Bullish and Bearish Momentum. These signals display when there is current bullish or bearish momentum happening within the trend. When the momentum changes there will likely be a lull where there are neither Bullish or Bearish momentum signals. These signals may be useful to help visualize when the momentum has started and stopped for both the bulls and the bears. Bullish Momentum is calculated by checking if the Rational Quadratic Close > Rational Quadratic of the Highest OHLC4 smoothed over a VWMA. The Bearish Momentum is calculated by checking the opposite.
Overly Bullish and Bearish Momentum. These signals occur when the bar has Bullish or Bearish Momentum and also has an Rationalized RSI greater or less than a certain level. Bullish is >= 57 and Bearish is <= 43. There is also the option to ‘Factor Volume’ into these signals. This means, the Overly Bullish and Bearish Signals will only occur when the Rationalized Volume > VWMA Rationalized Volume as well as the previously mentioned factors above. This can be useful for removing ‘clutter’ as volume may dictate when these momentum changes will occur, but it can also remove some of the useful signals and you may miss the swing too if the volume just was low. Overly Bullish and Bearish Momentum may dictate when a momentum change will occur. Remember, they are OVERLY Bullish and Bearish, meaning there is a chance a correction may occur around these signals.
Bull and Bear Crosses. These signals occur when the Rationalized Close crosses the Gaussian Close that is 2 bars back. These signals may show when there is a strong change in momentum, but be careful as more often than not they’re predicting that the momentum may change in the opposite direction.
Tutorial:
As we can see in the example above, generally what happens is we get the regular Bullish or Bearish momentum, followed by the Rationalized Close crossing the Zone average and finally the Overly Bullish or Bearish signals. This is normally the order of operations but isn’t always how it happens as sometimes momentum changes don’t make it that far; also the Rationalized Close and Zone Average don’t follow any of the same math as the Signals which can result in differing appearances. The Bull and Bear Crosses are also quite sporadic in appearance and don’t generally follow any sort of order of operations. However, they may occur as a Predictor between Bullish and Bearish momentum, signifying the beginning of the momentum change.
The Bull and Bear crosses may be a Predictor of momentum change. They generally happen when there is no Bullish or Bearish momentum happening; and this helps to add strength to their prediction. When they occur during momentum (orange circle) there is a less likely chance that it will happen, and may instead signify the exact opposite; it may help predict a large spike in momentum in the direction of the Bullish or Bearish momentum. In the case of the orange circle, there is currently Bearish Momentum and therefore the Bull Cross may help predict a large momentum movement is about to occur in favor of the Bears.
We have disabled signals here to properly display and talk about the zones. As you can see, Rationalizing the Highest Highs and Lowest Lows over 2 different lengths creates inner and outer bounds that help to predict where parabolic movement and momentum may move to. Our Inner and Outer zones are great for seeing potential Support and Resistance locations.
The secondary zone, which can cross over and change from Green to Red is also a very important zone. Let's zoom in and talk about it specifically.
The Middle Zone Crosses may help deduce where parabolic movement and strong momentum changes may occur. Generally what may happen is when the cross occurs, you will see parabolic movement to the High / Low zones. This may be the Inner zone but can sometimes be the outer zone too. The hard part is sometimes it can be a Fakeout, like displayed with the Blue Circle. The Cross doesn’t mean it may move to the opposing side, sometimes it may just be predicting Parabolic movement in a general sense.
When we turn the Momentum Signals back on, we can see where the Fakeout occurred that it not only almost hit the Inner Low Zone but it also exhibited 2 Overly Bearish Signals. Remember, Overly bearish signals mean a momentum change in favor of the Bulls may occur soon and overly Bullish signals mean a momentum change in favor of the Bears may occur soon.
You may be wondering, well what does “may occur soon” mean and how do we tell?
The purpose of the momentum signals is not only to let you know when Momentum has occurred and when it is still prevalent. It also matters A LOT when it has STOPPED!
In this example above, we look at when the Overly Bullish and Bearish Momentum has STOPPED. As you can see, when the Overly Bullish or Bearish Momentum stopped may be a strong predictor of potential momentum change in the opposing direction.
We will conclude our Tutorial here, hopefully this Indicator has been helpful for showing you where momentum is occurring and help predict how far it may move. We have been dabbling with and are planning on releasing a Strategy based on this Indicator shortly.
Settings:
1. Momentum:
Show Signals: Sometimes it can be difficult to visualize the zones with signals enabled.
Factor Volume: Factor Volume only applies to Overly Bullish and Bearish Signals. It's when the Volume is > VWMA Volume over the Smoothing Length.
Zone Inside Length: The Zone Inside is the Inner zone of the High and Low. This is the length used to create it.
Zone Outside Length: The Zone Outside is the Outer zone of the High and Low. This is the length used to create it.
Smoothing length: Smoothing length is the length used to smooth out our Bullish and Bearish signals, along with our Overly Bullish and Overly Bearish Signals.
2. Kernel Settings:
Lookback Window: The number of bars used for the estimation. This is a sliding value that represents the most recent historical bars. Recommended range: 3-50.
Relative Weighting: Relative weighting of time frames. As this value approaches zero, the longer time frames will exert more influence on the estimation. As this value approaches infinity, the behavior of the Rational Quadratic Kernel will become identical to the Gaussian kernel. Recommended range: 0.25-25.
Start Regression at Bar: Bar index on which to start regression. The first bars of a chart are often highly volatile, and omission of these initial bars often leads to a better overall fit. Recommended range: 5-25.
If you have any questions, comments, ideas or concerns please don't hesitate to contact us.
HAPPY TRADING!
Dee_MeterHere's how you can effectively use the Dee Meter indicator:
1. **Understanding the Basics**:
- Dee Meter evaluates the market sentiment across various sectors.
- It calculates the overall market trend and presents it in percentage form through a line graph.
2. **Indicator Results**:
- When you add the Dee Meter indicator to your chart, you'll notice two key results: Bull and Bear percentages, along with a line graph.
- The Bull percentage reflects the strength of bullish (positive) sentiment, while the Bear percentage indicates bearish (negative) sentiment.
- For example, if the Bull percentage is 55% and the Bear percentage is 45%, it signifies that the bulls currently have a stronger influence in the market.
3. **Interpreting Percentages**:
- Utilize the Bull and Bear percentages to craft your analysis strategy.
- A high Bull percentage in a bullish market suggests strong bullish momentum.
- In the case of a bullish trend showing signs of weakening (e.g., a double top pattern), monitor the Bull and Bear percentages for early reversal indications.
- A decrease in the Bull percentage and an increase in the Bear percentage could hint at a potential market reversal.
4. **Line Graph Analysis**:
- The line graph visually depicts the strength of bulls (green line) and bears (red line) over time.
- During a bullish trend, the green line rises while the red line remains lower, indicating bullish strength.
- Conversely, during a bearish trend, the red line climbs higher, indicating bearish dominance.
5. **Cross Over and Cross Under**:
- Cross-over and cross-under scenarios occur when the market abruptly reverses direction.
- For instance, in a bullish market that suddenly turns bearish, the red line could cross above the green line, indicating increased bearish power.
- In a bearish market that experiences a sudden influx of buying activity, the green line might cross above the red line, signifying strong buying interest.
6. **Applying the Indicator**:
- Use the Dee Meter to build your own trading strategies and make informed decisions.
- Keep an eye on changes in Bull and Bear percentages to identify shifts in market sentiment.
- Monitor line graph movements to assess the relative strength of bulls and bears.
In summary, the Dee Meter indicator is a valuable tool for assessing market sentiment and confirming trends in the Indian market. By understanding and utilizing the Bull and Bear percentages, line graph analysis, and cross-over/cross-under scenarios, you can develop effective trading strategies and trade with greater confidence.






















