Rejection Block Pro+ [TakingProphets]REJECTION BLOCK PRO+
Rejection Block Pro+ detects and plots wick-only sweeps of liquidity (BSL/SSL) and converts them into actionable
Rejection Block zones with optional quadrant levels and HTF projection.
This tool is built for traders who want clean, rule-based rejection zones that only print when a sweep occurs
without a candle body acceptance through the level.
-----------------------------------------------------------------------------------------------
IMPORTANT NOTE: ORIGINAL RB INDICATOR VS THIS VERSION
-----------------------------------------------------------------------------------------------
We already have an existing Rejection Block indicator published on TradingView.
- That original Rejection Block script is being kept live and functioning exactly as it currently does
- We are not modifying the legacy logic or changing its behavior
- This new script is being released separately as "Rejection Block Pro+"
- Pro+ uses different detection logic, object management, and higher timeframe projection behavior
Reason:
- This update was requested specifically so traders can keep using the legacy RB tool unchanged
while also gaining access to a separate RB version with expanded functionality and cleaner HTF logic
If you have the old RB saved on your charts:
- You can continue using it with no changes
- Add Rejection Block Pro+ as a separate indicator when you want the newer behavior
-----------------------------------------------------------------------------------------------
CORE CONCEPT
-----------------------------------------------------------------------------------------------
Rejection Blocks are created when price sweeps a liquidity level using the wick only.
Wick-only sweep definition:
- BSL wick sweep (bearish rejection block)
- high trades above the level
- candle body remains fully below the level
- condition: high > level AND max(open, close) < level
- SSL wick sweep (bullish rejection block)
- low trades below the level
- candle body remains fully above the level
- condition: low < level AND min(open, close) > level
This prevents "accepted" breaks from generating rejection zones and keeps the output strict.
-----------------------------------------------------------------------------------------------
WHAT THIS INDICATOR DISPLAYS
-----------------------------------------------------------------------------------------------
Current Timeframe Rejection Blocks
- Automatically detects BSL/SSL pivot liquidity using ICT-style pivots
- Monitors those levels for wick-only sweeps
- When a wick-only sweep occurs, a rejection block box is created and extended forward
- Boxes invalidate when price breaks the rejection extreme
Higher Timeframe Rejection Blocks (HTF Projection)
- Optionally projects higher timeframe rejection blocks onto your lower timeframe chart
- HTF boxes only form after the HTF candle is confirmed closed (prevents early HTF repaint behavior)
- Supports up to 3 HTF sources (ex: 5m / 15m / 1h)
- Optional timeframe tag text rendered on each HTF box (bottom-right)
Quadrant Levels (0% / 25% / 50% / 75% / 100%)
- Optional horizontal levels drawn inside each box
- Each level has independent toggles:
- show/hide
- style (solid/dashed/dotted)
- width (thin/medium/thick)
- optional label
- Designed to support execution models that reference internal retracement levels of the rejection zone
-----------------------------------------------------------------------------------------------
MODEL FLOW
-----------------------------------------------------------------------------------------------
Step 1: Liquidity Level Detection (Pivot Levels)
- A pivot strength setting controls how BSL/SSL levels are formed
- More sensitive → more levels → more potential rejection blocks
- Strict → fewer levels → higher quality structure levels
Step 2: Wick-Only Sweep Validation
- When price trades beyond a level:
- if wick-only condition is true → create a rejection block
- regardless of outcome → the level is removed (prevents repeat triggering)
Step 3: Box Creation + Extension
- A rejection block box is created using wick + body boundaries
- Box extends forward in real-time until invalidated
Step 4: Invalidation
- Bearish rejection blocks invalidate if price breaks above the rejection extreme
- Bullish rejection blocks invalidate if price breaks below the rejection extreme
- When invalidated, the box and associated quadrant objects are deleted
Step 5: Visibility Control (Noise Management)
- Current timeframe: keeps only the closest N bullish and closest N bearish blocks
- HTF: per timeframe, keeps only the closest N bullish and closest N bearish blocks
- This prevents charts from being flooded with old rejection zones
-----------------------------------------------------------------------------------------------
SETTINGS GUIDE
-----------------------------------------------------------------------------------------------
General
- Swing strength
- Sensitive = pivot strength 1
- Normal = pivot strength 3
- Strict = pivot strength 6
- Maximum visible RBs per timeframe
- Controls how many bullish and bearish blocks remain visible per HTF source
Higher Timeframes
- Current Timeframe toggle
- If off, disables all current timeframe rejection blocks and clears existing drawings
- HTF1 / HTF2 / HTF3
- Enable and choose a timeframe for each projection source
- HTF colors
- Separate bullish and bearish colors per HTF source
- Timeframe label on box
- Displays source timeframe tag inside the HTF boxes
Visual
- Remove box fill
- Makes fill invisible while keeping the box border
- Quadrants
- Master toggle plus per-quadrant toggles for 0/25/50/75/100
Alerts
- Enable alerts
- Session windows (New York time)
- Session 1 / Session 2 / Session 3
- Bullish rejection block alert
- Bearish rejection block alert
- Alert templates support:
- {{symbol}} for ticker
- {{tf}} for timeframe tags
-----------------------------------------------------------------------------------------------
HOW TO USE (PRACTICAL)
-----------------------------------------------------------------------------------------------
- Use Sensitive swing strength if you want frequent rejection zones for scalping
- Use Normal for a balanced approach
- Use Strict if you only want major structure sweeps
Suggested workflows:
- LTF execution with HTF rejection block context:
- Enable HTF1 (ex: 5m) and HTF2 (ex: 15m)
- Keep max visible RBs per timeframe = 1 or 2
- Use quadrant 50% as your primary reaction/decision level
If you want the cleanest chart:
- Enable Remove box fill
- Leave only 50% or 25/50/75 quadrants enabled
- Disable 0% and 100% labels
-----------------------------------------------------------------------------------------------
ALERTS
-----------------------------------------------------------------------------------------------
Alerts trigger when a new rejection block is created (current TF and/or HTF projections).
Alerts can be restricted to session windows using New York time sessions.
Notes:
- HTF alerts are only produced after HTF bars confirm
- This prevents early/partial HTF triggers on lower timeframe charts
-----------------------------------------------------------------------------------------------
DISCLAIMER
-----------------------------------------------------------------------------------------------
This indicator is provided for educational and analytical purposes only.
It does not constitute financial advice.
Trading involves risk, and past performance is not indicative of future results.
© TakingProphets
-----------------------------------------------------------------------------------------------
Indicators and strategies
Hoon Fib project//@version=6
indicator("Hoon Fib project", shorttitle ="Hoon Fib project" ,overlay = true, max_bars_back = 5000)
// ~~ Tooltips {
var string t1 = "Period: Number of bars used to detect swing highs and swing lows. Larger values give fewer but larger swings. (Works relative to current timeframe)."
var string t2 = "Projection Level: Fibonacci ratio used to calculate the projected future swing targets (e.g. 61.8%)."
var string t2_b = "Trend Projection Ratio: The secondary Fibonacci ratio used for the furthest extension (default was 1.272)."
var string t3 = "Level 1: Ratio and Color for the first retracement level (Standard: 0.236)."
var string t4 = "Level 2: Ratio and Color for the second retracement level (Standard: 0.382)."
var string t5 = "Level 3: Ratio and Color for the third retracement level (Standard: 0.500)."
var string t6 = "Level 4: Ratio and Color for the fourth retracement level (Standard: 0.618)."
var string t7 = "Level 5: Ratio and Color for the fifth retracement level (Standard: 0.786)."
var string t8 = "Fib Line Width: Thickness of all horizontal Fibonacci retracement lines."
var string t9 = "Fib Labels: Show or hide percentage labels at each Fibonacci retracement line."
var string t10 = "Fib Label Text Color: Text color of Fibonacci retracement labels."
var string t11 = "Fib Label Size: Font size of Fibonacci retracement labels."
var string t12 = "Low Line Color: Color for the most recent swing low horizontal guide line."
var string t13 = "High Line Color: Color for the most recent swing high horizontal guide line."
var string t14 = "Swing Line Width: Thickness of both swing high and swing low guide lines."
var string t15 = "Fib Volume Profile: Enable or disable the main volume profile drawn between the last swing high and low."
var string t16 = "Rows: Number of price rows (bins) used in the Fib volume profile. More rows = finer detail."
var string t17 = "Flip Bull/Bear: Swap the horizontal position of bullish and bearish volume bars in the profile."
var string t18 = "Bull Volume Color: Base color used for bullish (up-bar) volume in the Fib volume profile."
var string t19 = "Bear Volume Color: Base color used for bearish (down-bar) volume in the Fib volume profile."
var string t20 = "Fib Volume Delta: Enable or disable the separate volume delta profile between Fibonacci price bands."
var string t21 = "Delta Max Width: Maximum horizontal width (in bars) used to scale delta boxes from smallest to largest."
var string t22 = "Bullish Delta Color: Fill color for bands where bullish volume exceeds bearish volume (positive delta)."
var string t23 = "Bearish Delta Color: Fill color for bands where bearish volume exceeds bullish volume (negative delta)."
var string t24 = "Bullish Projection Line Color: Color of projected segments when price is projected upward."
var string t25 = "Bearish Projection Line Color: Color of projected segments when price is projected downward."
var string t26 = "Projection Line Width: Thickness of projected swing segments."
var string t27 = "Projection Line Style: Visual style of projected lines (solid, dashed, dotted, or arrows)."
var string t28 = "Bullish Label Background: Background color for percentage labels on upward projection segments."
var string t29 = "Bearish Label Background: Background color for percentage labels on downward projection segments."
var string t30 = "Projection Label Text Color: Text color of projection percentage labels."
var string t31 = "Projection Label Size: Font size of projection percentage labels."
var string t32 = "Projection Box Background: Toggle the background fill of projection boxes on or off."
var string t33 = "Projection Box Background Color: Fill color used for projection boxes (when background is enabled)."
var string t34 = "Projection Box Border: Toggle drawing a border around projection boxes."
var string t35 = "Projection Box Border Color: Color of the border around projection boxes."
var string t36 = "Projection Box Border Width: Thickness of projection box borders."
var string t37 = "Projection Box Border Style: Line style for projection box borders (solid/dashed/dotted)."
var string t38 = "Projection Box Horizontal Align: Horizontal alignment of text inside projection boxes (left/center/right)."
var string t39 = "Projection Box Vertical Align: Vertical alignment of text inside projection boxes (top/center/bottom)."
var string t40 = "Projection Box Text Color: Text color for the projection level values shown inside the boxes."
var string t41 = "Projection Box Text Size: Font size of the projection level values shown inside the boxes."
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~}
// ~~ Inputs {
prd = input.int(
100,
"Period",
group = "Fib Settings",
inline = "fibColor",
tooltip = t1
)
lvl = input.float(
0.618,
title = "Projection Level",
group = "Fib Settings",
options = ,
tooltip = t2
)
// NEW INPUT FOR CUSTOM FIB
trendFibbRatio = input.float(
1.272,
title = "Trend Projection Ratio",
step = 0.001,
group = "Fib Settings",
tooltip = t2_b
)
// Fib line style inputs (horizontal fib levels)
fibLvl1 = input.float(0.236, "Level 1", group = "Fib Levels Style", inline = "f1", tooltip = t3)
fibColor236 = input.color(#f23645, "", group = "Fib Levels Style", inline = "f1")
fibLvl2 = input.float(0.382, "Level 2", group = "Fib Levels Style", inline = "f2", tooltip = t4)
fibColor382 = input.color(#81c784, "", group = "Fib Levels Style", inline = "f2")
fibLvl3 = input.float(0.500, "Level 3", group = "Fib Levels Style", inline = "f3", tooltip = t5)
fibColor500 = input.color(#4caf50, "", group = "Fib Levels Style", inline = "f3")
fibLvl4 = input.float(0.618, "Level 4", group = "Fib Levels Style", inline = "f4", tooltip = t6)
fibColor618 = input.color(#089981, "", group = "Fib Levels Style", inline = "f4")
fibLvl5 = input.float(0.786, "Level 5", group = "Fib Levels Style", inline = "f5", tooltip = t7)
fibColor786 = input.color(#64b5f6, "", group = "Fib Levels Style", inline = "f5")
fibLineWidth = input.int(
2,
"Fib Line Width",
minval = 1,
maxval = 5,
group = "Fib Levels Style",
inline = "fwidth",
tooltip = t8
)
showlab = input.bool(
false,
title = "Fib Labels",
group = "Fib Levels Style",
inline = "fiblab"
)
fibLabelColor = input.color(
color.white,
"",
group = "Fib Levels Style",
inline = "fiblab"
)
fibLabelSizeStr = input.string(
"Small",
"",
options = ,
group = "Fib Levels Style",
inline = "fiblab",
tooltip = t9 + " " + t10 + " " + t11
)
fibLabelOffset = 1 // (fixed) x offset for labels
// derived label size
fibLabelSize =
fibLabelSizeStr == "Tiny" ? size.tiny :
fibLabelSizeStr == "Small" ? size.small :
fibLabelSizeStr == "Large" ? size.large :
fibLabelSizeStr == "Huge" ? size.huge :
size.normal
// Swing high/low lines
loLineColor = input.color(
color.new(color.green, 0),
"Low Line",
group = "Swing High/Low Lines Style",
inline = "hi"
)
hiLineColor = input.color(
color.new(color.red, 0),
"High Line",
group = "Swing High/Low Lines Style",
inline = "hi"
)
hiloLineWidth = input.int(
2,
"Width",
1,
5,
group = "Swing High/Low Lines Style",
inline = "hi",
tooltip = t12 + " " + t13 + " " + t14
)
// Fib volume profile inputs
showFibProfile = input.bool(
true,
"Fib Volume Profile",
group = "Fib Volume Profile",
inline = "fibprof"
)
rows = input.int(
10,
"Rows",
2,
100,
group = "Fib Volume Profile",
inline = "fibprof"
)
flipOrder = input.bool(
false,
"Flip Bull/Bear",
group = "Fib Volume Profile",
inline = "fibprof",
tooltip = t15 + " " + t16 + " " + t17
)
bull_color = input.color(
color.new(color.teal, 30),
"Bull",
group = "Fib Volume Profile",
inline = "volColor"
)
bear_color = input.color(
color.new(color.orange, 30),
"Bear",
group = "Fib Volume Profile",
inline = "volColor",
tooltip = t18 + " " + t19
)
// Volume Text Settings
showVolText = input.bool(true, "Show Volume Values", group="Fib Volume Profile", inline="vtxt")
volTextSizeStr = input.string("Tiny", "Size", options= , group="Fib Volume Profile", inline="vtxt")
volTextSize =
volTextSizeStr == "Tiny" ? size.tiny :
volTextSizeStr == "Small" ? size.small :
size.normal
// Fib Volume Delta profile
showFibDelta = input.bool(
false,
"Fib Volume Delta",
group = "Fib Volume Delta Profile",
inline = "delta"
)
deltaMaxWidth = input.int(
30,
"Max Width",
minval = 5,
maxval = 200,
group = "Fib Volume Delta Profile",
inline = "delta",
tooltip = t20 + " " + t21
)
deltaBullColor = input.color(
color.new(color.lime, 80),
"Bullish Delta",
group = "Fib Volume Delta Profile",
inline = "deltaColor"
)
deltaBearColor = input.color(
color.new(color.red, 80),
"Bearish Delta",
group = "Fib Volume Delta Profile",
inline = "deltaColor",
tooltip = t22 + " " + t23
)
// Projection LINES style
projLineBullColor = input.color(
color.new(color.green, 0),
"Bullish",
group = "Projection Lines Style",
inline = "plc"
)
projLineBearColor = input.color(
color.new(color.red, 0),
"Bearish",
group = "Projection Lines Style",
inline = "plc"
)
projLineWidth = input.int(
2,
"Width",
1,
5,
group = "Projection Lines Style",
inline = "plc"
)
projLineStyleStr = input.string(
"Arrow Right",
"",
options = ,
group = "Projection Lines Style",
inline = "plc",
tooltip = t24 + " " + t25 + " " + t26 + " " + t27
)
projLineStyle =
projLineStyleStr == "Solid" ? line.style_solid :
projLineStyleStr == "Dashed" ? line.style_dashed :
projLineStyleStr == "Dotted" ? line.style_dotted :
projLineStyleStr == "Arrow Left" ? line.style_arrow_left :
line.style_arrow_right
// Projection % LABELS style
projPercBullColor = input.color(
color.new(color.green, 0),
"Bullish Bg",
group = "Projection Labels Style",
inline = "plc"
)
projPercBearColor = input.color(
color.new(color.red, 0),
"Bearish Bg",
group = "Projection Labels Style",
inline = "plc"
)
projPercTextColor = input.color(
color.white,
"Text",
group = "Projection Labels Style",
inline = "plc"
)
projPercLabelSizeStr = input.string(
"Small",
"",
options = ,
group = "Projection Labels Style",
inline = "plc",
tooltip = t28 + " " + t29 + " " + t30 + " " + t31
)
projPercLabelSize =
projPercLabelSizeStr == "Tiny" ? size.tiny :
projPercLabelSizeStr == "Small" ? size.small :
projPercLabelSizeStr == "Large" ? size.large :
projPercLabelSizeStr == "Huge" ? size.huge :
size.normal
// Projection box style inputs
projBoxBgOn = input.bool(
true,
"Background",
group = "Projection Box Style",
inline = "pbg"
)
projBoxBgColor = input.color(
color.new(color.blue, 80),
"",
group = "Projection Box Style",
inline = "pbg"
)
projBoxBorderOn = input.bool(
true,
"Border",
group = "Projection Box Style",
inline = "pbg"
)
projBoxBorderCol = input.color(
color.new(color.white, 0),
"",
group = "Projection Box Style",
inline = "pbg"
)
projBoxBorderW = input.int(
1,
"",
minval = 1,
maxval = 5,
group = "Projection Box Style",
inline = "pbg"
)
projBoxBorderStyleStr = input.string(
"Solid",
"",
options = ,
group = "Projection Box Style",
inline = "pbg",
tooltip = t32 + " " + t33 + " " + t34 + " " + t35 + " " + t36 + " " + t37
)
projBoxTextHAlignStr = input.string(
"Center",
"H Align",
options = ,
group = "Projection Box Style",
inline = "ptxt"
)
projBoxTextVAlignStr = input.string(
"Center",
"V Align",
options = ,
group = "Projection Box Style",
inline = "ptxt",
tooltip = t38 + " " + t39
)
projBoxTextColor = input.color(
color.white,
"Text",
group = "Projection Box Style",
inline = "ptxt2"
)
projBoxTextSizeStr = input.string(
"Normal",
"",
options = ,
group = "Projection Box Style",
inline = "ptxt2",
tooltip = t40 + " " + t41
)
projBoxTextSize =
projBoxTextSizeStr == "Tiny" ? size.tiny :
projBoxTextSizeStr == "Small" ? size.small :
projBoxTextSizeStr == "Large" ? size.large :
projBoxTextSizeStr == "Huge" ? size.huge :
size.normal
// Derived projection box style settings
projBoxBorderStyle =
projBoxBorderStyleStr == "Solid" ? line.style_solid :
projBoxBorderStyleStr == "Dashed" ? line.style_dashed :
line.style_dotted
projBoxTextHAlign =
projBoxTextHAlignStr == "Left" ? "left" :
projBoxTextHAlignStr == "Right" ? "right" :
"center"
projBoxTextVAlign =
projBoxTextVAlignStr == "Top" ? "top" :
projBoxTextVAlignStr == "Bottom" ? "bottom" :
"center"
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~}
// ~~ Swing detection {
hi = ta.highest(high, prd)
lo = ta.lowest(low, prd)
isHi = high == hi
isLo = low == lo
HB = ta.barssince(isHi)
LB = ta.barssince(isLo)
// price of last swing high/low
hiPrice = ta.valuewhen(isHi, high, 0)
loPrice = ta.valuewhen(isLo, low, 0)
// bar index of last swing high/low
hiBar = ta.valuewhen(isHi, bar_index, 0)
loBar = ta.valuewhen(isLo, bar_index, 0)
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~}
// ~~ Persistent drawings {
var line hiLine = na
var line loLine = na
if barstate.isfirst
hiLine := line.new(na, na, na, na, color = hiLineColor, width = hiloLineWidth)
loLine := line.new(na, na, na, na, color = loLineColor, width = hiloLineWidth)
// arrays to store objects
var array fibbLines = array.new_line()
var array fibbLabels = array.new_label()
var array forecastLines = array.new_line()
var array areas = array.new_box()
var array perc = array.new_label()
var array fibProfileBoxes = array.new_box()
var array fibDeltaBoxes = array.new_box()
var int deltaStartX = na
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~}
// ~~ Functions {
// fib level calculator
fibbFunc(v, last, h, l) =>
last ? h - (h - l) * v : l + (h - l) * v
// generic cleaner for drawing-object arrays (lines, boxes, labels)
cleaner(a, idx) =>
if idx >= 0 and idx < array.size(a)
el = array.get(a, idx)
if not na(el)
el.delete()
array.remove(a, idx)
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~}
// ~~ Main logic {
if not na(HB) and not na(LB) and not na(hiPrice) and not na(loPrice) and not na(hiBar) and not na(loBar)
// update swing lines
// update swing lines (position + live style)
line.set_xy1(hiLine, hiBar, hiPrice)
line.set_xy2(hiLine, bar_index, hiPrice)
line.set_color(hiLine, hiLineColor)
line.set_width(hiLine, hiloLineWidth)
line.set_xy1(loLine, loBar, loPrice)
line.set_xy2(loLine, bar_index, loPrice)
line.set_color(loLine, loLineColor)
line.set_width(loLine, hiloLineWidth)
bars = math.abs(HB - LB)
// FIB retracement lines
for i = array.size(fibbLines) - 1 to 0
cleaner(fibbLines, i)
for i = array.size(fibbLabels) - 1 to 0
cleaner(fibbLabels, i)
lvls = array.from(fibLvl1, fibLvl2, fibLvl3, fibLvl4, fibLvl5)
cols = array.from(fibColor236, fibColor382, fibColor500, fibColor618, fibColor786)
baseOffset = HB > LB ? LB : HB
xFibStart = bar_index - baseOffset
for in lvls
f = fibbFunc(e, HB < LB, hiPrice, loPrice)
x1 = xFibStart
x2 = bar_index
ln = line.new(
chart.point.from_index(x1, f),
chart.point.from_index(x2, f),
color = cols.get(i),
width = fibLineWidth
)
array.push(fibbLines, ln)
// fib label at right of line
if showlab
fibText = str.tostring(e * 100, "#.##") + "%"
lbl = label.new(
chart.point.from_index(x2 + fibLabelOffset, f),
fibText,
textcolor = fibLabelColor,
style = label.style_label_left,
size = fibLabelSize,
color =cols.get(i)
)
array.push(fibbLabels, lbl)
// Projection part
fibb = fibbFunc(lvl, LB > HB, hiPrice, loPrice)
fibb2 = LB < HB ?
fibbFunc(lvl, true, fibb, loPrice) :
fibbFunc(lvl, false, hiPrice, fibb)
trendfibb = LB > HB ?
fibbFunc(trendFibbRatio, true, hiPrice, loPrice) :
fibbFunc(trendFibbRatio, false, hiPrice, loPrice)
forecast = array.from(HB < LB ? hiPrice : loPrice, fibb, fibb2, trendfibb)
segment = math.min(bars, math.floor(500.0 / 4.0))
// clear previous forecast lines, boxes, and labels
for i = array.size(forecastLines) - 1 to 0
cleaner(forecastLines, i)
for i = array.size(areas) - 1 to 0
cleaner(areas, i)
for i = array.size(perc) - 1 to 0
cleaner(perc, i)
deltaStartX := na
future = bar_index
for i = 0 to forecast.size() - 2
x1 = math.min(future, bar_index + 500)
x2 = math.min(future + segment, bar_index + 500)
y1 = forecast.get(i)
y2 = forecast.get(i + 1)
lnForecast = line.new(
x1, y1,
x2, y2,
color = y1 < y2 ? projLineBullColor : projLineBearColor,
width = projLineWidth,
style = projLineStyle
)
array.push(forecastLines, lnForecast)
// area box around the end of segment
midBoxLeft = x2 - math.round((x1 - x2) / 4.0)
midBoxRight = x2 + math.round((x1 - x2) / 4.0)
boxHeight = math.abs(y1 - y2) / 10.0
txtLevel = i == forecast.size() - 2 ?
str.tostring(trendFibbRatio, "#.###") :
str.tostring(lvl * 100, "#.##")
boxBg = projBoxBgOn ? projBoxBgColor : color.new(projBoxBgColor, 100)
boxBord = projBoxBorderOn ? projBoxBorderCol : color.new(projBoxBorderCol, 100)
bx = box.new(
midBoxLeft,
y2 + boxHeight,
midBoxRight,
y2 - boxHeight,
bgcolor = boxBg,
border_color = boxBord,
border_style = projBoxBorderStyle,
border_width = projBoxBorderW,
text = txtLevel,
text_halign = projBoxTextHAlign,
text_valign = projBoxTextVAlign,
text_color = projBoxTextColor,
text_size = projBoxTextSize
)
array.push(areas, bx)
// keep track of the rightmost edge of the last projection box
deltaStartX := na(deltaStartX) ? box.get_right(bx) : math.max(deltaStartX, box.get_right(bx))
// percentage label
change = (y2 - y1) / y1
midX = int(math.avg(x1, x2))
midY = line.get_price(lnForecast, midX)
lb = label.new(
chart.point.from_index(midX, midY),
str.tostring(change * 100, format.percent),
color = change > 0 ? projPercBullColor : projPercBearColor,
style = i == 1 ? label.style_label_lower_right : label.style_label_lower_left,
textcolor = projPercTextColor,
size = projPercLabelSize
)
array.push(perc, lb)
future += segment
// ~~ Fib Volume Profile
if showFibProfile and hiBar != loBar and not na(hiPrice) and not na(loPrice)
for i = array.size(fibProfileBoxes) - 1 to 0
cleaner(fibProfileBoxes, i)
top = math.max(hiPrice, loPrice)
bottom = math.min(hiPrice, loPrice)
if top != bottom
step = (top - bottom) / rows
levels = array.new_float()
for i = 0 to rows
array.push(levels, bottom + step * i)
volUp = array.new_float(rows, 0.0)
volDn = array.new_float(rows, 0.0)
startBar = math.min(hiBar, loBar)
endBar = math.max(hiBar, loBar)
for bi = startBar to endBar
offset = bar_index - bi
// SAFETY CHECK: Prevents crash on low timeframes if swing is > 5000 bars
if offset < 4998
price = hlc3
vol = nz(volume ) // SAFETY: nz() for no volume data
bull = close > open
for r = 0 to rows - 1
dn = array.get(levels, r)
up = array.get(levels, r + 1)
if price >= dn and price < up
if bull
array.set(volUp, r, array.get(volUp, r) + vol)
else
array.set(volDn, r, array.get(volDn, r) + vol)
break
maxTot = 0.0
for r = 0 to rows - 1
tot = array.get(volUp, r) + array.get(volDn, r)
maxTot := math.max(maxTot, tot)
span = endBar - startBar + 1
if maxTot > 0
for r = 0 to rows - 1
upVol = array.get(volUp, r)
dnVol = array.get(volDn, r)
normUp = upVol == 0 ? 0 : int((upVol / maxTot) * span)
normDn = dnVol == 0 ? 0 : int((dnVol / maxTot) * span)
bullRowCol = color.from_gradient(r, 0, rows - 1, color.new(bull_color, 80), color.new(bull_color, 10))
bearRowCol = color.from_gradient(r, 0, rows - 1, color.new(bear_color, 80), color.new(bear_color, 10))
yTop = array.get(levels, r + 1)
yBottom = array.get(levels, r)
leftBull = flipOrder ? startBar : startBar + normDn
rightBull = flipOrder ? startBar + normUp : startBar + normDn + normUp
leftBear = flipOrder ? startBar + normUp : startBar
rightBear = flipOrder ? startBar + normUp + normDn : startBar + normDn
if normUp > 0
bBull = box.new(
leftBull, yTop,
rightBull, yBottom,
bgcolor = bullRowCol,
border_color = color.new(bullRowCol, 0),
border_style = line.style_dotted,
text = showVolText ? str.tostring(upVol, format.volume) : "",
text_color = color.white,
text_size = volTextSize,
text_valign = text.align_center,
text_halign = text.align_center
)
array.push(fibProfileBoxes, bBull)
if normDn > 0
bBear = box.new(
leftBear, yTop,
rightBear, yBottom,
bgcolor = bearRowCol,
border_color = color.new(bearRowCol, 0),
border_style = line.style_dotted,
text = showVolText ? str.tostring(dnVol, format.volume) : "",
text_color = color.white,
text_size = volTextSize,
text_valign = text.align_center,
text_halign = text.align_center
)
array.push(fibProfileBoxes, bBear)
// Fib Volume Delta Profile
if showFibDelta and hiBar != loBar and not na(hiPrice) and not na(loPrice)
for i = array.size(fibDeltaBoxes) - 1 to 0
cleaner(fibDeltaBoxes, i)
// Build fib prices
fibPrices = array.new_float()
array.push(fibPrices, hiPrice)
for e in lvls
lvlPrice = fibbFunc(e, HB < LB, hiPrice, loPrice)
array.push(fibPrices, lvlPrice)
array.push(fibPrices, loPrice)
// Sort prices low→high
fibSorted = array.copy(fibPrices)
array.sort(fibSorted)
bandsCount = array.size(fibSorted) - 1
if bandsCount > 0
bandBull = array.new_float(bandsCount, 0.0)
bandBear = array.new_float(bandsCount, 0.0)
startBar = math.min(hiBar, loBar)
endBar = math.max(hiBar, loBar)
// accumulate bull/bear volume per band
for bi = startBar to endBar
offset = bar_index - bi
// SAFETY CHECK: Prevents crash on low timeframes if swing is > 5000 bars
if offset < 4998
price = hlc3
vol = nz(volume ) // SAFETY: nz()
bull = close > open
for b = 0 to bandsCount - 1
bandLow = array.get(fibSorted, b)
bandHigh = array.get(fibSorted, b + 1)
if price >= bandLow and price < bandHigh
if bull
array.set(bandBull, b, array.get(bandBull, b) + vol)
else
array.set(bandBear, b, array.get(bandBear, b) + vol)
break
// compute delta
maxAbsDelta = 0.0
for b = 0 to bandsCount - 1
delta = array.get(bandBull, b) - array.get(bandBear, b)
maxAbsDelta := math.max(maxAbsDelta, math.abs(delta))
if maxAbsDelta > 0
xStartBase = startBar
for b = 0 to bandsCount - 1
bandLow = array.get(fibSorted, b)
bandHigh = array.get(fibSorted, b + 1)
delta = array.get(bandBull, b) - array.get(bandBear, b)
if delta == 0
continue
absDelta = math.abs(delta)
widthBars = int((absDelta / maxAbsDelta) * deltaMaxWidth)
widthBars := math.max(widthBars, 1)
xEnd = xStartBase
xStart = xStartBase - widthBars
col = delta >= 0 ? deltaBullColor : deltaBearColor
dBox = box.new(
xStart, bandHigh,
xEnd, bandLow,
bgcolor = col,
border_color = color.new(col, 0),
border_style = line.style_solid,
text = "Δ " + str.tostring(delta, format.volume),
text_color = color.white,
text_halign = "center",
text_valign = "center"
)
array.push(fibDeltaBoxes, dBox)
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~}
VX-Market Pulse Dashboard - by Ikaru-s-📊 VX-Market Pulse Dashboard
The VX-Market Pulse Dashboard is a lightweight market overview tool designed to give you instant context across multiple asset classes - without cluttering your chart.
It displays daily market performance in a compact heatmap-style table, showing:
📈 Daily % change
📊 Point movement (P)
🔥 Daily range (R%)
💵 Daily close price
🎯 Color-coded strength & momentum
All values are calculated from daily data, making it ideal for:
Market bias & sentiment checks
Top-down analysis
Session preparation
Macro & intermarket overview
✅ Features
Supports up to 15 instruments
Fully customizable symbols & labels
Heatmap coloring based on volatility thresholds
Clean % | Points | Range layout
Optional daily close column
Ultra-lightweight (only 1 request per symbol)
Works on any chart / timeframe
📌 Default Markets Included
NASDAQ / US30
DXY / VIX
BTC / ETH
Gold & Silver
S&P 500
FX majors
(All fully editable in settings)
⚙️ Designed For
Traders who want:
A fast market pulse
Clean data without indicator noise
A dashboard that actually adds context instead of clutter
⚠️ Note
This is not a trading signal, it’s a market state & awareness tool designed to complement your existing strategy.
MMM Fear & Greed Meter - Multi-Asset @MaxMaseratiMMM Fear & Greed Meter - Multi-Asset Edition
Professional Sentiment Analysis for Futures, Stocks, and Crypto
The MMM Fear & Greed Meter is an advanced market sentiment indicator that transforms CNN's Fear & Greed methodology into an actionable trading tool. Unlike generic sentiment gauges, this indicator provides specific trading recommendations with position sizing guidance and institutional context - turning vague market mood readings into clear trading decisions.
🎯 Three Optimized Market Modes
FUTURES (ES/NQ) MODE - Default configuration weighted for index futures trading
VIX: 20% (highest weight - volatility drives futures)
Put/Call Ratio: 18% (institutional hedging behavior)
Safe Haven Demand: 18% (risk-on/risk-off capital flows)
Ideal for: ES1!, NQ1! futures traders, London Open preparation, intraday bias
STOCKS (EQUITIES) MODE - Optimized for stock picking and swing trading
52-Week High/Low: 20% (market breadth matters most)
Volume Breadth: 18% (sector rotation and participation)
SPX Momentum: 18% (trend confirmation)
Ideal for: Individual stocks, ETFs, portfolio management
CRYPTO (BTC/ETH) MODE - Calibrated for cryptocurrency's correlation to equity sentiment
Safe Haven: 25% (crypto moves inverse to risk-off)
SPX Momentum: 20% (crypto follows tech/equities)
VIX: 20% (crypto crashes when volatility spikes)
Ideal for: Bitcoin, Ethereum, major altcoins
CUSTOM MODE - Manually adjust all seven component weights to your preference
🔥 What Makes This Unique?
1. ACTIONABLE INTELLIGENCE
Not just a number - get specific recommendations:
"★ PRIORITIZE LONGS @ Key Support - Size up 1.5x"
"FAVOR SHORTS @ Resistance - Watch Distribution"
"TRADE YOUR EDGE - No Sentiment Bias"
2. INSTITUTIONAL FRAMING
Understand WHY the market feels this way:
"Institutions defending levels aggressively"
"Retail chasing, institutions distributing"
"Market stretched and vulnerable - violent turn coming"
3. POSITION SIZING GUIDANCE
Know HOW MUCH to risk:
Extreme zones (0-24, 76-100) + order flow confirmation = 1.5x size
Normal zones = standard position sizing
Neutral zone (45-55) = no sentiment edge, pure price action
4. DIRECTION-BASED COLOR CODING
Green action column = Bullish recommendations
Red action column = Bearish recommendations
Gray action column = No directional bias
5. GRANULAR DISPLAY CONTROLS
Configure exactly what you need:
Show/hide index display section
Show/hide component breakdown
Show/hide live action column
Show/hide decision matrix
27 possible layout combinations
📈 Seven Market Components
Based on CNN Fear & Greed methodology with market-specific weighting:
Market Momentum - S&P 500 vs 125-day moving average
Stock Price Strength - 52-week highs vs lows (NYSE breadth)
Stock Price Breadth - Advancing vs declining volume
Put/Call Options - Options market sentiment (calculated proxy)
Market Volatility (VIX) - CBOE Volatility Index
Safe Haven Demand - Stocks vs bonds 20-day performance
Junk Bond Demand - High yield vs investment grade spread
All components normalized to 0-100 scale, weighted by market relevance, combined into single sentiment index.
🎨 Trading Decision Matrix
EXTREME FEAR (0-24) + Bullish Order Flow @ Support
→ ★ PRIORITIZE LONGS | Size up 1.5x | Strong bounce expected
FEAR (25-44) + Bullish Order Flow @ Support
→ FAVOR LONGS | Normal size | Good reversal context
NEUTRAL (45-55) + Any Setup
→ TRADE YOUR EDGE | Standard approach | No macro bias
GREED (56-75) + Bearish Order Flow @ Resistance
→ FAVOR SHORTS | Watch distribution | Fake breakouts likely
EXTREME GREED (76-100) + Bearish Order Flow @ Resistance
→ ★ AGGRESSIVE SHORTS | Size up 1.5x | Rapid reversals expected
💡 How To Use
Daily Workflow (Recommended):
Check indicator once per morning (pre-session)
Note the sentiment zone and action recommendation
Apply bias filter to your technical setups throughout the day
Size up positions at extremes when order flow confirms
For Futures Traders:
Use bar close mode (default) for stable daily bias
However, try and test live candle option , it might give you early insights
Check before London Open (6:00 AM ET)
Combine with order flow analysis (Body Close, sweeps, institutional levels)
For Stock Traders:
Use for sector rotation decisions
Extreme Fear = buy quality at your edge support level
Extreme Greed = trim positions, raise cash
For Crypto Traders:
Crypto mode captures equity risk sentiment spillover
VIX spikes = crypto dumps (size shorts)
Safe haven demand = BTC correlation tracking
🔧 Technical Details
Data Sources: Universal TradingView symbols (SP:SPX, TVC:VIX, TVC:US10Y, AMEX:HYG, AMEX:LQD, INDEX breadth data with fallback proxies)
Calculation: Seven components normalized over 252-day period, weighted by market mode, combined into 0-100 composite index
Accuracy: 85-90% zone correlation to CNN Fear & Greed Index (zones matter more than exact numbers for trading bias)
Update Frequency: User-controlled - bar close (stable) or live (real-time)
Compatibility: Works on any chart timeframe (recommend daily for bias context)
🎓 Best Practices
DO:
Use as bias filter for your existing strategy
Check once per session for daily context
Size up at extremes with order flow confirmation
Pay attention to ZONES (Extreme Fear/Greed) not exact numbers
Combine with technical analysis and price action
DON'T:
Use as standalone entry/exit signals
Overtrade or force setups when neutral
Ignore price action because sentiment contradicts
Check constantly (designed for daily bias, not tick-by-tick)
Expect exact CNN number match (focus on zones)
🏆 Who Is This For?
Futures Traders - ES/NQ intraday traders needing daily bias context
Stock Traders - Equity swing traders and stock pickers
Crypto Traders - BTC/ETH traders following equity risk sentiment
Position Traders - Anyone wanting institutional sentiment context
Systematic Traders - Adding sentiment filter to mechanical systems
📚 Based On CNN Fear & Greed Methodology
This indicator builds upon CNN Business's proven Fear & Greed Index framework, enhancing it with:
Market-specific component weighting (Futures/Stocks/Crypto)
Actionable trading recommendations with position sizing
Institutional market context and framing
Flexible display options for different trading workflows
Universal data compatibility for all TradingView users
DI +/- Breakout SignalBreakout Signals based on the DI+ and DI- values cross and pass the treshold. Signals will be displayed when bullish and bearish momentum start building, move the mouse over the signal for explanation. For better results use along with other confirmation indicators like MACD and VWAP.
Orion (Market Structure & Confluence Framework)Orion (Market Structure & Confluence Framework • Premium • Closed)
Orion is a professional-grade market structure and execution framework designed for serious intraday traders who want clarity, precision, and discipline — not signal spam.
This indicator was developed and refined through extensive live trading and backtesting in Natural Gas, one of the most volatile and difficult markets to master. While NG was the primary proving ground, Orion is market-agnostic and works across commodities, stocks, indices, forex, and crypto.
What Orion Does
Orion continuously evaluates higher-timeframe structure and lower-timeframe execution conditions, then only presents trade opportunities when conditions are clean, aligned, and favorable.
It helps traders:
Capture large directional moves
Participate in confirmed reversals
Stand down during choppy or mean-reversion days
Avoid overtrading and noise
Trade signals are intentionally selective. When signals are mixed, Orion does nothing — by design.
Core Concepts (High Level)
Market Structure Context
Determines whether the market environment is bullish, bearish, or mixed.
Key Levels & Structural Zones
User-defined levels are evaluated based on how price last interacted with them to determine bias and probable targets.
Trendlines (Manual, Human-Defined)
Orion interprets price interaction with trader-drawn trendlines, preserving human discretion and avoiding unreliable auto-drawn logic.
Confluence Logic
Signals only appear when multiple independent factors agree. No alignment = no trade.
Trade Signals (When Appropriate)
Based on extensive testing, signal days have historically been profitable roughly 80% of the time (about 4 out of 5 days), with an emphasis on capturing meaningful market moves, not scalping.
Ease of Use
Simple initial setup (define key levels, draw trendlines)
Minimal upkeep (occasional adjustments as structure evolves)
Once set, Orion handles the heavy lifting
This is not a fully automated system. It is a decision-support tool that rewards discipline, patience, and proper risk management.
Transparency & Risk
No guarantees are made
Losses are part of trading
Stop losses and position sizing are essential
Results depend on trader discipline and execution
Educational resources on trendlines and support/resistance (e.g., creators like Tori Trades or WyseTrade) can be helpful for newer users.
Support & Mentorship
24/7 support included for all users
A limited number of users, upon request, may receive direct mentorship from the creator
The creator combined personal trading experience, discretionary strategy design, and AI-assisted development to build Orion, and trades Natural Gas profitably using this framework.
Pricing
$99.99 per year
One solid trading day can easily justify the cost.
Who Orion Is For
✅ Serious intraday traders
✅ Structure-focused traders
✅ Traders who value quality over quantity
❌ Beginners seeking guaranteed signals
❌ Fully automated trading seekers
© 2026 Gordon Edwards. All rights reserved.
Licensed for individual use only. Redistribution, resale, or reverse engineering is prohibited.
Structural Equilibrium Line and DashboardOverview The Structural Equilibrium Dashboard is a comprehensive technical analysis tool designed to identify the "fair value" or balance point of market structure across multiple timeframes. Unlike traditional moving averages that rely on time-based smoothing, this indicator anchors its calculations to confirmed Structural Pivots (Highs and Lows).
By reflecting current price action against these structural boundaries, the algorithm identifies the internal momentum of an asset. This provides traders with a clear visualization of whether the market is in a state of structural strength or nearing potential exhaustion points.
Core Methodology The script utilizes a custom reflection algorithm that determine the Structural Equilibrium Line:
Structural Pivot Detection: The engine scans for significant peaks and valleys based on user-defined lookback and confirmation parameters.
Equilibrium Mapping: It calculates the midpoint of the current structural range and projects the price relative to this "balance point."
Signal Smoothing: The raw structural data is processed through a precision filter to reduce market noise while remaining responsive to significant momentum shifts.
Key Features
Multi-Timeframe (MTF) Dashboard: Monitor the structural bias of five key timeframes (5m, 15m, 30m, 1h, 4h) simultaneously. This allows for rapid top-down analysis and confluence tracking without changing charts.
Structural Momentum Cloud: A dynamic visual zone that highlights the displacement between price and equilibrium, assisting in the identification of market overextensions.
Adaptive UI: The dashboard is optimized for both Dark and Light modes, ensuring maximum legibility across all user interface configurations.
Structural Filtering: The logic is specifically tuned to maintain a neutral stance during low-volume consolidation, updating only upon confirmed structural shifts.
Operational Use
1. The "Top-Down" Lead: You don’t need the whole table to match. If your higher timeframes (1H or 4H) are Green, look for the lower timeframes (5M or 15M) to turn Green as well. This alignment can sometimes occur before the main line changes colour, offering contextual insight — not a guaranteed signal.
2. Trend Shifts: When the main line on your chart changes colour (e.g., Red to Green), it means the price has crossed the "Balance Point" of the current market structure. This is your signal that the trend direction has officially shifted.
3. Measuring Strength: Use the Momentum Cloud (the shaded area) to see how strong the move is. A widening cloud means the trend is gaining speed. If the cloud is very thin, the market is likely just "chopping" or consolidating.
This tool is for analytical and educational purposes only. It is not financial advice, and it does not guarantee profits.
Atilla Bollinger Squeeze EMA Intelligence PanelIndicator Description (English)
Atilla – Bollinger Squeeze + EMA Intelligence Panel is a trend-following and breakout-detection indicator designed to help traders avoid fake signals and emotional overtrading.
This indicator combines Bollinger Band Squeeze logic, EMA structure analysis, and trend intelligence filters to identify:
Low-volatility squeeze zones
Real trend expansions
EMA-based continuation vs. fake reversals
🔍 Core Features
Bollinger Band Squeeze Detection
Identifies extreme volatility compression
Highlights potential breakout zones
Differentiates between tight squeeze and normal consolidation
EMA Intelligence System
EMA slope and stretch analysis
Detects when EMA is trending, flat, or overstretched
Helps filter false EMA cross signals
Trend Context Awareness
Designed to work with trend-following strategies
Avoids signals during choppy, sideways markets
Supports EMA-based systems (9–21, 8–13, 21–50, etc.)
Noise Reduction
Prevents entering trades during low-quality market conditions
Focuses on momentum-backed moves only
🎯 Who Is This Indicator For?
Trend traders
EMA crossover traders
Breakout traders
Traders who want to avoid fake moves and stop hunts
Traders who prefer confirmation over prediction
⚠️ Important Notes
This indicator is not a buy/sell signal generator
Best used as a confirmation and filtering tool
Works especially well on 15m, 30m, and 1H timeframes
Always use proper risk management
🧠 Trading Philosophy
“The goal is not to trade more,
but to trade only when the market is ready.”
If you want, I can also:
write a shorter minimalist description
add a professional disclaimer
optimize wording for TradingView Popular Scripts
Smart Signals [Vdubus]Smart Signals
Concept & Philosophy
Smart Signals is a "Regime-Filtered" oscillator designed to solve the biggest problem with standard indicators: Counter-trend noise.
Most oscillators (like Stochastic or RSI) are "dumb" to market context—they will signal "Sell" continuously during a strong uptrend simply because the price is high. Smart Signals fixes this by first determining the Market Regime (Bullish or Bearish) and then strictly filtering out any signal that contradicts that trend.
It creates a "Tiered" trading system that separates standard trend-following entries from high-probability "Sniper" entries (Hidden Divergence), all presented in a clean, color-blind-friendly visual interface.
Core Functions
1. The "Sheriff" (Trend Filter)
At the heart of the indicator is a heavy, modified Hull Moving Average (HMA 200) that acts as the trend baseline.
Bullish Regime: When the baseline is sloping UP, the indicator enters "Buy Only" mode. All Sell signals are mathematically deleted.
Bearish Regime: When the baseline is sloping DOWN, the indicator enters "Sell Only" mode. All Buy signals are mathematically deleted.
The Math: It uses a custom difference-weighted formula (wmaHalf = Length / 1) to create a stable, chop-resistant trend anchor.
2. Dual-Signal Engine
The indicator scans for two distinct types of entries simultaneously:
♦ Standard Signals (Blue/Red Diamonds):
Logic: A classic Stochastic pullback (Cross 20/80) aligned with the trend.
Use Case: These are frequent "Bread and Butter" trend entries. They are excellent for scaling into a position or adding to a winner as the trend continues.
Location: Plotted at the top (Sell) and bottom (Buy) edges of the panel.
+ Sniper Signals (Gold Crosses):
Logic: Hidden Divergence. The script detects when Price holds structure (Higher Low) while Momentum resets (Lower Low). This is a "Slingshot" setup.
Use Case: These are rare, high-conviction entries. They often mark the end of a complex correction and the resumption of the main trend.
Location: Plotted on the Zero Line to indicate structural strength.
3. Smart Momentum Histogram
The histogram visualizes the "Energy" of the move (MACD 21, 34, 7), but with a twist. It is color-coded to the signal priority:
Gold Bars: A Sniper (Divergence) setup is active.
Solid Blue/Red Bars: A Standard Signal is active.
Faded Blue/Red Bars: The trend is active, but momentum is resetting (waiting mode).
Gray Bars: Counter-trend noise (Ignore).
How to Trade It
Check the "Road": Look at the general color of the histogram columns.
Blue Columns: Look for Longs.
Red Columns: Look for Shorts.
The "Sniper" Entry: Wait for a Gold Cross (+) on the zero line. This is your primary signal to enter a trade with normal risk.
The "Pyramid" Entry: If the trend continues and you see Blue/Red Diamonds (♦) appear at the edges, these are safe places to add to your position.
The Exit: Since this is a trend-following tool, exit when the histogram color flips (e.g., from Blue to Red/Gray), or use your own support/resistance targets.
Alerts Configuration
The indicator comes with a full suite of alerts for automation:
Gold Buy / Gold Sell: Notifies you only for the high-probability Hidden Divergence setups.
Standard Buy / Standard Sell: Notifies you for every trend pullback.
ANY BUY / ANY SELL: A combo alert that triggers on either signal type (useful for simplifying your alert limits).
Accessibility
Color Blind Friendly: The default palette uses High-Contrast Blue (#2962FF) and Soft Red (#FF5252) instead of standard Green/Red, ensuring visibility for all users.
Zero Clutter: No text labels or confusing lines. Just clear, distinct shapes (Diamonds and Crosses) at fixed locations.
Advanced Fundamentals DashboardAdvanced Fundamentals Dashboard
Overview This indicator is designed to provide a comprehensive view of an asset's financial health on a quarter-to-quarter basis and its fundamental context directly on the chart. The goal is to allow traders to combine technical analysis with key fundamental data without having to switch tabs or platforms.
Key Features :
• Financial Metrics Dashboard : Visualization of critical fundamental ratios (such as P/E Ratio, Market Cap, EPS, etc.; see the full list below). These are displayed both in the main panel (on hover over the balance) in data mode, and in the secondary panel in chart mode.
• Contextual Awarenes s: Helps identify if the current price is supported by underlying financial data and visualize potential divergences.
• Custom Interface : The panel is designed to be minimally intrusive, allowing a clear reading of the price action while monitoring fundamental data.
• Multi-Asset Support : Compatible with any asset that has fundamental data available in the TradingView database (primarily Stocks).
• Customizable Metric Selection : The user has full control over which metrics to display. Through the inputs, you can enable or disable indicators such as P/E, EPS, Quick Ratio, and more, keeping the dashboard clean and focused on what matters to you.
• Dual-Source Market Cap : Includes the option to use an external source for Market Cap calculation. This was added specifically for companies with more than one share class (e.g., Google), where traditional calculation might only account for the ticker currently on the chart. To solve this, you can use an external source (the native TradingView "Market Capitalization" indicator is recommended). If the external source is not selected (default setting), the following calculation is used: TOTAL_SHARES_OUTSTANDING * close.
• Comparative Balance Sheet Analysis : Unlike static dashboards, this script allows you to visualize not only the current balance sheet data but also a comparison with the previous quarter. This facilitates the immediate detection of growth or deterioration in the company's financial health.
• Threshold Customization (Dynamic Dashboard) : All valuation ranges in the dashboard are editable. You can customize the thresholds from the inputs so that the classification of a value as "poor," "good," or "excellent" is entirely in your hands.
How to use : This script is not an isolated buy/sell signal but a confirmation tool. It is recommended to use the Advanced Fundamentals Dashboard to:
1. Filter technical signals that go against the fundamental trend.
2. Monitor changes in financial statements during Earnings seasons.
3. Evaluate the asset's valuation compared to its price history.
Available Data Metrics :
• Liquidity : Current Ratio, Quick Ratio.
• Leverage / Capital Structure : Debt to Equity, Enterprise Value, Market Cap.
• Profitability : Return on Equity (ROE), Return on Assets (ROA), Return on Invested Capital (ROIC).
• Operating Profitability & Margins : EBITDA, Gross Margin, Net Income, Free Cash Flow, Free Cash Flow per Share, EPS (Basic), EPS (Diluted).
• Valuation Multiples : P/E Ratio (Basic/Diluted), P/S Ratio, P/B Ratio, EV/EBITDA.
• Activity / Investment : CapEx, Revenue.
Hoon Fib project1. Automatic Swing Detection
What it does: It scans the chart to find the most recent significant "Swing High" and "Swing Low" based on the Period setting (default 100 bars).
Visual: It draws a Red Line at the swing high and a Green Line at the swing low.
Purpose: This defines the current trading range. Everything else in the indicator is calculated based on this specific range.
2. Fibonacci Retracement Levels
What it does: It automatically draws horizontal lines between the Swing High and Low at standard Fibonacci ratios (23.6%, 38.2%, 50%, 61.8%, 78.6%).
Customization: You can now change these specific numbers in the settings (e.g., change 0.786 to 0.886) to fit your strategy.
Purpose: These act as potential Support (in an uptrend) or Resistance (in a downtrend) levels where price often reverses.
3. Future Price Projections (The "Forecast")
What it does: It projects lines forward into the future to predict where price might go next.
The Math: It uses the Projection Level (standard 0.618) and the new Trend Projection Ratio (default 1.272) to calculate extension targets.
Visual: You see lines extending to the right with percentage labels, showing potential take-profit zones or reversal points.
4. Fibonacci Volume Profile (The "Boxes")
What it does: This is the most advanced part. It looks at all the candles inside the current swing range and calculates the Volume traded at different price levels.
Visual:
Teal Boxes: Represent Bullish Volume (buying pressure).
Orange Boxes: Represent Bearish Volume (selling pressure).
Text: We added text inside these boxes so you can read the exact volume (e.g., "1.5K", "10M").
Purpose: This helps you see where the "smart money" is active. If a Fibonacci line lines up with a huge Volume Box, that level is much stronger.
5. Volume Delta (Optional Feature)
What it does: It calculates the difference between buying and selling volume (Delta = Buy Vol - Sell Vol).
Visual:
Green Bar: More buyers than sellers at that level.
Red Bar: More sellers than buyers.
Purpose: This shows Aggression. If price hits resistance but you see a massive Green Delta bar, it suggests buyers might break through.
6. Robustness (Timeframe Fix)
What it does: The code now includes safety checks (nz and loop limits).
Why it matters: On lower timeframes (like 1-minute or 5-minute), swings can be thousands of bars long. Standard scripts crash when trying to calculate volume for that many bars. This version detects that limit and stops the calculation just before a crash occurs, ensuring the indicator works on every timeframe.
P&T incl. lijnen en timeframePeaks en Troughs indicator waarin je de timeframe kan opgeven en het aantal minimale candles welke tussen een high en low in moeten zitten. Eventueel kan je deze P&T koppelen met een line.
MSS Candle + OB series - Body & Fib By HaykTradingThis indicator is designed for traders utilizing Smart Money Concepts (SMC) who focus on high-probability Market Structure Shifts (MSS). Unlike standard structure indicators that look for breaks of swing highs/lows based on wicks, this script specifically identifies the **Last Reverse Candle** (often associated with an Order Block) and validates the structure break based on **Candle Body** levels.
It includes strict filtration logic to ensure the structure point was formed by a genuine displacement move, and automatically calculates the 50% equilibrium level for potential re-entries.
**How It Works**
The script operates on a multi-step validation process to identify a valid Bullish Reversal setup:
1. **Pivot Detection:** It first identifies a Swing Low based on user-defined left and right bar lookbacks.
2. **Reverse Candle Identification:** From the Pivot Low, the script scans backward to find the last Bullish (Green) candle. This represents the last buying volume before the final push down.
3. **Displacement Validation (New Feature):** To filter out choppy price action, the script verifies that immediately after the Reverse Candle, there is a sequence of Bearish (Red) candles. This ensures that the Reverse Candle was followed by a decisive move down, validating it as a significant structural point.
4. **Body-Based Level:** The MSS line is drawn from the **Body Top** (Open or Close) of the Reverse Candle. SMC theory suggests that wicks can be liquidity grabs, whereas body breaks signify a true shift in sentiment.
5. **Equilibrium (Fib 50%):** Once a valid setup is found, a dashed line is drawn at the 50% midpoint between the Pivot Low and the MSS Body Level. This assists traders in identifying "Discount" pricing for potential entries after a confirmed break.
**Key Features & Settings**
* **Structure Settings:**
* **Pivot Lookback:** Adjust the sensitivity of swing low detection.
* **Min Consecutive Drop:** Define how many bearish candles must immediately follow the reverse candle to validate the setup (filters out noise).
* **Visuals:**
* **Body-Based MSS:** Lines are drawn strictly on candle bodies, not wicks.
* **Fib/Equilibrium:** Automatically plots the 50% retracement level of the range.
* **Highlighting:** Optional highlighting of the specific Reverse Candle used for the calculation.
* **Alerts:**
* Includes a built-in alert condition that triggers when a candle **closes** above the MSS Body Level, signaling a confirmed structure shift.
**How to Use**
1. Add the indicator to your chart (works best on timeframes where market structure is clear, e.g., 15m, 1H, 4H).
2. Wait for the indicator to plot a Red MSS line and a Blue Dashed Equilibrium line.
3. **Confirmation:** A Market Structure Shift is confirmed when price closes above the Red MSS line.
4. **Entry Context:** Traders often look for a retracement to the 50% Equilibrium line or the highlighted Reverse Candle (Order Block) below it to formulate a trade idea.
**Disclaimer**
This tool is for educational purposes and technical analysis assistance only. Market structure interpretation is subjective; always manage risk appropriately.
On Chart ATR DisplayShows the ATR (Average True Range) on the chart.
Can position in different places
Can change the period from 30 to 1 days
+25% DMA200 +25% DMA200 highlights daily over-extension by printing a ⚠️ marker on every daily candle where price is more than X% above the Daily 200 DMA (200-period SMA calculated on the Daily timeframe). It also plots the Daily DMA200 line on the chart. Recommended usage in GOLD, GLD, etc.
How it works
Computes DMA200 using Daily data
Measures extension: (Close − DMA200) / DMA200
If extension is above the threshold (default 0.25 = 25%), it places a ⚠️ above that candle (one per qualifying daily candle).
Optional alert triggers only when extension crosses above the threshold (entry into the over-extended zone).
Inputs
DMA Length (Daily): Moving average length (default 200).
Threshold: Over-extension level (0.25 = 25%).
Run ONLY on 1D chart: If enabled, marks/alerts only on Daily charts.
Pad above high: Vertical spacing for the marker above the candle’s high.
Keep last N markers: Limits how many markers are kept to avoid chart clutter.
Note
This is not a buy/sell signal—it’s a risk/extension detector to help identify when price is stretched far above its long-term daily mean.
PSP (Precision Swing Point - CIC SMT)PSP SMT – Correlation Stages Indicator
The PSP SMT – Correlation Stages indicator is designed to identify Smart Money divergences (SMT) between correlated markets through a progressive, stage-based model.
It visually classifies price behavior into correlation stages, helping traders detect early imbalance, confirmation, and distribution phases used by institutional participants.
By comparing a primary asset with a correlated symbol, the indicator highlights loss of correlation, displacement, and confirmation signals, offering a structured framework to anticipate potential reversals or continuations within ICT-based market models.
Ideal for traders who apply ICT concepts, intermarket analysis, and liquidity-based strategies, the PSP SMT enhances timing, context, and confidence in decision-making.
Quarter Point Levels [GBPJPY] RIIBDynamic Quarter Point Levels
Overview
This indicator is a specialized charting tool designed for traders who follow Institutional Price Action and Psychological Levels. Unlike standard grid indicators, the Dynamic Quarter Point Levels script focuses on the specific decimal increments used by large banks and algorithmic execution desks—specifically the 0.250, 0.500, 0.750, and 1.000 milestones.
On pairs like GBPJPY, these "Quarter Points" act as magnets for liquidity. This indicator ensures you never miss a rejection or a breakout from these high-probability zones.
Key Features
Dynamic Market Following: The script automatically detects the current market price and projects the nearest Quarter Points. As the market trends up or down, the levels shift with it, keeping your chart clean and relevant.
Visual Hierarchy:
Major Whole Numbers & Mid-Points (.000, .500): Displayed as solid, high-visibility lines (Major levels).
Intermediate Quarters (.250, .750): Displayed as dotted lines to help differentiate between primary and secondary support/resistance.
Price Labeling: Real-time price labels on the right-hand side for precise order entry and stop-loss placement.
Fully Customizable: Adjust the "Quarter Step Size" to fit different assets (e.g., 0.25 for FX, 1.0 or 5.0 for Gold/Indices) and modify colors to match your dark or light mode theme.
Why Use Quarter Points?
Large financial institutions do not place orders at random prices. They cluster liquidity at psychological round numbers.
The Whole Number (1.000): The strongest psychological barrier.
The Mid-Point (0.500): Often used as the "Fair Value" for a session.
The Quarters (0.250/0.750): Known as "The Trap" zones where liquidity sweeps often occur before a trend continuation.
How to Use
Rejection Trading: Look for candlestick wicks touching a level and closing back away from it (Stop-run confirmation).
Break & Retest: Use the levels to identify clear breakout points and wait for a retest of the level before entering.
Targets: Use the next Quarter Point as a logical Take Profit (TP) target, as price tends to travel from one quarter to the next in high-volatility sessions like the London Open.
Developed for professional intraday traders targeting GBPJPY and Major FX pairs.
Closing countdownThe most prominent closing countdown indicator
The most prominent closing countdown indicator
The most prominent closing countdown indicator
Trader Otto - Christmas Tree - Strategy [BlackBox]🎄 Trader Otto - Christmas Tree - Indicator
This is a premium visual intelligence suite designed for precision trading. It combines the statistical power with the Pearson Correlation (R-Value) to filter market noise and identify high-probability reversal zones.
Unlike standard regression tools, the "Christmas Tree" uses an adaptive Neon Coloring System that changes based on trend intensity and direction, giving you instant visual feedback on market conditions.
🚀 Key Features:
📊 Statistical Core: Uses a 75-period to define the "Fair Price" (Mean) and statistical extremes (Standard Deviation).
✨ Pearson R Filter: The background logic calculates the R-Value to distinguish between Strong Trends (Bull/Bear) and Choppy/Sideways markets.
🎨 Adaptive Neon Visuals:
Cyan/Electric Purple: Strong Trend (High R-Value).
Orange/Soft Purple: Neutral/Weak Trend.
Gray: Sideways/Consolidation.
🖥️ Pro Dashboard: A clean, informative panel displaying the current R-Value, Trend Status (BULL/BEAR/FLAT), and Trading Zones (BUY/SELL) in real-time.
🔔 Clear Signals: Non-repainting text signals ("BUY"/"SELL") appear when price rejects the outer bands with statistical confirmation.
How to Use:
Trend Identification: Look at the candle colors. Bright Neon means momentum is strong.
Entries: Wait for the price to touch the outer bands (Buy/Sell Zones).
Confirmation: Enter when a "BUY" or "SELL" text signal appears, indicating the price has rejected the extreme and is reverting to the mean.
Settings:
Period & Deviation: Customizable to fit any asset or timeframe.
Visual Toggles: Turn on/off lines, dashboard, or text signals to keep your chart clean.
⚙️ Strategy Logic:
The algorithm waits for price overextensions (2.0 Standard Deviations) and executes trades only when two conditions are met:
Rejection Area.
Pearson Filter: The correlation (R-Value) must meet a minimum threshold to ensure market liquidity and directionality.
🛡️ Risk Management (Built-in):
Smart Entries: Only takes confirmed close-of-bar signals to avoid "falling knives."
Triple Exit System:
Partial 1: At the Mean (Regression Line) - Secures initial profit.
Partial 2: At the Opposing Band - Maximizes range capture.
Final Target: Extended runner for trend continuation.
Hard Stop: Fixed point-based protection.
Ideal for indices and volatile crypto pairs.
Trader Otto - Christmas Tree - Indicator [BackBox]🎄 Trader Otto - Christmas Tree - Indicator
This is a premium visual intelligence suite designed for precision trading. It combines the statistical power with the Pearson Correlation (R-Value) to filter market noise and identify high-probability reversal zones.
Unlike standard regression tools, the "Christmas Tree" uses an adaptive Neon Coloring System that changes based on trend intensity and direction, giving you instant visual feedback on market conditions.
🚀 Key Features:
📊 Statistical Core: Uses a 75-period to define the "Fair Price" (Mean) and statistical extremes (Standard Deviation).
✨ Pearson R Filter: The background logic calculates the R-Value to distinguish between Strong Trends (Bull/Bear) and Choppy/Sideways markets.
🎨 Adaptive Neon Visuals:
Cyan/Electric Purple: Strong Trend (High R-Value).
Orange/Soft Purple: Neutral/Weak Trend.
Gray: Sideways/Consolidation.
🖥️ Pro Dashboard: A clean, informative panel displaying the current R-Value, Trend Status (BULL/BEAR/FLAT), and Trading Zones (BUY/SELL) in real-time.
🔔 Clear Signals: Non-repainting text signals ("BUY"/"SELL") appear when price rejects the outer bands with statistical confirmation.
How to Use:
Trend Identification: Look at the candle colors. Bright Neon means momentum is strong.
Entries: Wait for the price to touch the outer bands (Buy/Sell Zones).
Confirmation: Enter when a "BUY" or "SELL" text signal appears, indicating the price has rejected the extreme and is reverting to the mean.
Settings:
Period & Deviation: Customizable to fit any asset or timeframe.
Visual Toggles: Turn on/off lines, dashboard, or text signals to keep your chart clean.



















