Genişlik Göstergeleri
SymFlex Band - MAD, RSI, ATRThe SymFlex Band is an adaptive volatility and momentum framework that merges
three independent band models into a unified analytical tool.
• The MAD Band measures deviation from the moving average using Median Absolute Deviation,
providing a stable view of range-based volatility.
• The RSI Momentum Band adjusts its upper and lower boundaries asymmetrically,
expanding in the direction of momentum and contracting against it.
• The ATR Band captures classical volatility expansion for breakout and trend-continuation conditions.
Rather than placing the three indicators separately on a chart, the script synchronizes
their center-line logic, compares their band distances, identifies the nearest active band,
and displays real-time correlation between their dynamic ranges.
This structure helps traders understand whether price behavior is dominated by
range compression, momentum imbalance, or volatility expansion.
The table summarizes:
• active band ranges
• breakout status
• distance from each band
• cross-band correlation
This indicator is designed purely for analysis. It does not generate trade entries.
Heikin Ashi Background ColorHighlights the background of traditional candle sticks with the corresponding heiken ashi candle colour in order to avoid switching back and forth between heiken ashi and traditional candle sticks
Crypto Signals & Overlays –29-11-2025Nebula Crypto Signals & Overlays
Nebula is a multi-timeframe trend and momentum indicator designed for high-cap crypto pairs (BTC, ETH, SOL, DOGE, etc.).
• Uses 21/50/200 EMAs + higher-timeframe EMA for trend filtering
• RSI and Bollinger Bands for momentum and squeeze detection
• Generates BUY/SELL labels on trend-side pullbacks
• ATR line as a dynamic stop/target guide, plus pivot-based support/resistance zones
• Background colors: green = bullish regime, red = bearish regime, yellow = low-volatility squeeze
Not financial advice. Always backtest and use proper risk management before trading live.
Student Wyckoff Target Shooter
**Target Shooter — Equal Move Target Tool (Larry Williams idea)**
**1. What this indicator does**
Target Shooter is a tool that measures the last meaningful price swing and projects an **equal move target** in the direction of the breakout.
The logic is simple:
* The market makes a move from point A to point B (a swing high to a swing low, or vice versa).
* Then price breaks out above or below this swing range.
* Target Shooter takes the size of that swing and **adds it in the direction of the breakout**, showing a logical **price target zone** where the move may:
* slow down,
* react,
* or potentially reverse.
This is a practical implementation of the “Equal Moves” idea often referenced by Larry Williams.
---
**2. Core idea (example)**
Example from the classic explanation:
* Price drops from **80 down to 20** → the move is **60 points**.
* The swing range is now: **High = 80, Low = 20**.
* Later, price **breaks above 80**.
Target Shooter assumes:
> “If the market could move 60 points in one direction, after a breakout it may travel another 60 points in the opposite direction.”
So the upside target becomes:
* Move size: 80 − 20 = 60
* Breakout above 80
* **Target = 80 + 60 = 140**
The indicator finds such swings automatically and draws:
* **UT (Upper Target)** on upside breakouts
* **DT (Down Target)** on downside breakouts
---
**3. What you see on the chart**
1. **Target lines**
* When price breaks **above** a previous swing range, the indicator plots a horizontal **UT (Upper Target)** line — the projected equal move target.
* When price breaks **below** the previous swing range, it plots a **DT (Down Target)** line — the downside target.
* Each line is drawn from the breakout bar and extended to the right for a user-defined number of bars.
2. **Price labels**
* A small label “UT” or “DT” is shown at the end of the line with the exact target price.
* This makes it easy to see where the projected target is without checking the scale.
3. **Optional swing range (debug view)**
* There is an option to display the **swing range** that the target is based on (similar to a Donchian channel on previous bars).
* This shows the upper (swing high) and lower (swing low) boundaries the indicator used to define the last move.
---
**4. Key inputs (plain language)**
* **Swing window length (bars)**
How many bars back the indicator looks to find the last meaningful swing (highest high and lowest low).
This is like the length of a Donchian channel used to define the previous range.
Smaller values → more frequent, shorter targets.
Larger values → bigger swings and more distant targets.
* **Minimum move size (in ticks)**
This is a noise filter.
If the distance between the swing high and swing low is smaller than this threshold, no targets are drawn.
The indicator will only react to moves that are big enough to matter for your trading.
* **Breakout type: Close vs High/Low**
* **Breakout by Close**:
The target appears only when the **bar closes** above/below the swing range.
More conservative and fewer false signals.
* **Breakout by High/Low**:
The target appears as soon as the **high** or **low** of the bar breaks the swing range.
Faster and more aggressive, but more sensitive to noise.
* **Target line length (bars)**
How far to the right the UT/DT lines should be extended.
Shorter length → local target zones.
Longer length → important levels visible far into the future.
* **Appearance settings**
* Separate color, width and style for **UT** and **DT** lines.
* Option to show or hide labels with price and “UT/DT” text.
---
**5. How to use Target Shooter in trading**
> Important: this is **not** an entry signal indicator.
> Target Shooter is a **targeting and context tool**, not a standalone system.
Typical uses:
1. **Planning take-profit zones**
* You already have an entry signal from your own strategy (Wyckoff, Larry Williams patterns, levels, volume, whatever you use).
* Target Shooter shows a **logical equal move target** where the current wave can reasonably “shoot”.
* You can:
* place your main take-profit around the target,
* scale out part of the position,
* tighten stops when price approaches the target.
2. **Finding potential reaction / reversal areas**
* Equal move targets often act as **zones of interest**.
* If price reaches a UT/DT level and then shows weakness/absorption/volume spikes or reversal candles, this might be a good place to take profits or look for counter-trend opportunities (for experienced traders).
3. **Assessing trend strength**
* If price **easily exceeds** the equal move target and keeps going without any reaction, it suggests a very strong trend.
* If price **fails to reach** the target and reverses early, the move is weaker than expected.
---
**6. Timeframes**
Target Shooter can be used on:
* **Intraday** (M5, M15, M30, H1) — for shorter-term targets within the day,
* **Higher timeframes** (H4, D1 and above) — for swing and position trades.
General rule:
The **higher the timeframe and the larger the swing**, the **more important** the target level tends to be.
---
**7. Notes and limitations**
* The indicator does **not** predict the future.
It simply projects a geometric equal move from the last swing.
* It should be combined with your own trading framework:
* support/resistance,
* Wyckoff / VSA,
* trend tools,
* volume/flow, etc.
* Always keep proper risk management.
A target is a **scenario**, not a guarantee.
.
stock whisperersdfasow, why your line.new failed:
If Pine isn’t exactly v5, TradingView treats line like it doesn’t exist and throws “undeclared identifier”. That’s what you saw.
If you still want the fancy extending lines instead of plots, I can give you a version that forces Pine v5. But this one already does what you asked:
Shows the levels on top of candles, not in a lower pane.
Copy. Paste. Add. Done.
If it still breaks, the issue is your TradingView editor, not the code.
Meu scriptPricemap CONTROL (2, 1, 1, 5, 15, 60, 3, 50, 200, 14, 12, 26, 9, bottom_right, 21, 14, 14, 1, 1,5)
Sniper Entry AU - AYUSHThis indicator combines EMA 9, EMA 15, and VWAP to identify trend direction and intraday strength. EMA 9 and EMA 15 show short-term momentum and crossover signals, while VWAP acts as an institutional reference point for fair value. Together, they help traders spot trend continuation, pullbacks, and high-quality entry zones during intraday sessions.
لbsm15// This work is licensed under a Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0) creativecommons.org
// © LuxAlgo
//@version=5
indicator("لbsm15", overlay = true, max_lines_count = 500, max_boxes_count = 500, max_bars_back = 3000)
//------------------------------------------------------------------------------
//Settings
//-----------------------------------------------------------------------------{
liqGrp = 'Liquidity Detection'
liqLen = input.int (7, title = 'Detection Length', minval = 3, maxval = 13, inline = 'LIQ', group = liqGrp)
liqMar = 10 / input.float (6.9, 'Margin', minval = 4, maxval = 9, step = 0.1, inline = 'LIQ', group = liqGrp)
liqBuy = input.bool (true, 'Buyside Liquidity Zones, Margin', inline = 'Buyside', group = liqGrp)
marBuy = input.float(2.3, '', minval = 1.5, maxval = 10, step = .1, inline = 'Buyside', group = liqGrp)
cLIQ_B = input.color (color.new(#4caf50, 0), '', inline = 'Buyside', group = liqGrp)
liqSel = input.bool (true, 'Sellside Liquidity Zones, Margin', inline = 'Sellside', group = liqGrp)
marSel = input.float(2.3, '', minval = 1.5, maxval = 10, step = .1, inline = 'Sellside', group = liqGrp)
cLIQ_S = input.color (color.new(#f23645, 0), '', inline = 'Sellside', group = liqGrp)
lqVoid = input.bool (false, 'Liquidity Voids, Bullish', inline = 'void', group = liqGrp)
cLQV_B = input.color (color.new(#4caf50, 0), '', inline = 'void', group = liqGrp)
cLQV_S = input.color (color.new(#f23645, 0), 'Bearish', inline = 'void', group = liqGrp)
lqText = input.bool (false, 'Label', inline = 'void', group = liqGrp)
mode = input.string('Present', title = 'Mode', options = , inline = 'MOD', group = liqGrp)
visLiq = input.int (3, ' # Visible Levels', minval = 1, maxval = 50, inline = 'MOD', group = liqGrp)
//-----------------------------------------------------------------------------}
//General Calculations
//-----------------------------------------------------------------------------{
maxSize = 50
atr = ta.atr(10)
atr200 = ta.atr(200)
per = mode == 'Present' ? last_bar_index - bar_index <= 500 : true
//-----------------------------------------------------------------------------}
//User Defined Types
//-----------------------------------------------------------------------------{
// @type used to store pivot high/low data
//
// @field d (array) The array where the trend direction is to be maintained
// @field x (array) The array where the bar index value of pivot high/low is to be maintained
// @field y (array) The array where the price value of pivot high/low is to be maintained
type ZZ
int d
int x
float y
// @type bar properties with their values
//
// @field o (float) open price of the bar
// @field h (float) high price of the bar
// @field l (float) low price of the bar
// @field c (float) close price of the bar
// @field i (int) index of the bar
type bar
float o = open
float h = high
float l = low
float c = close
int i = bar_index
// @type liquidity object definition
//
// @field bx (box) box maitaing the liquity level margin extreme levels
// @field bxz (box) box maitaing the liquity zone margin extreme levels
// @field bxt (box) box maitaing the labels
// @field brZ (bool) mainains broken zone status
// @field brL (bool) mainains broken level status
// @field ln (line) maitaing the liquity level line
// @field lne (line) maitaing the liquity extended level line
type liq
box bx
box bxz
box bxt
bool brZ
bool brL
line ln
line lne
//-----------------------------------------------------------------------------}
//Variables
//-----------------------------------------------------------------------------{
var ZZ aZZ = ZZ.new(
array.new (maxSize, 0),
array.new (maxSize, 0),
array.new (maxSize, na)
)
bar b = bar.new()
var liq b_liq_B = array.new (1, liq.new(box(na), box(na), box(na), false, false, line(na), line(na)))
var liq b_liq_S = array.new (1, liq.new(box(na), box(na), box(na), false, false, line(na), line(na)))
var b_liq_V = array.new_box()
var int dir = na, var int x1 = na, var float y1 = na, var int x2 = na, var float y2 = na
//-----------------------------------------------------------------------------}
//Functions/methods
//-----------------------------------------------------------------------------{
// @function maintains arrays
// it prepends a `value` to the arrays and removes their oldest element at last position
// @param aZZ (UDT, array, array>) The UDT obejct of arrays
// @param _d (array) The array where the trend direction is maintained
// @param _x (array) The array where the bar index value of pivot high/low is maintained
// @param _y (array) The array where the price value of pivot high/low is maintained
//
// @returns none
method in_out(ZZ aZZ, int _d, int _x, float _y) =>
aZZ.d.unshift(_d), aZZ.x.unshift(_x), aZZ.y.unshift(_y), aZZ.d.pop(), aZZ.x.pop(), aZZ.y.pop()
// @function (build-in) sets the maximum number of bars that is available for historical reference
max_bars_back(time, 1000)
//-----------------------------------------------------------------------------}
//Calculations
//-----------------------------------------------------------------------------{
x2 := b.i - 1
ph = ta.pivothigh(liqLen, 1)
pl = ta.pivotlow (liqLen, 1)
if ph
dir := aZZ.d.get(0)
x1 := aZZ.x.get(0)
y1 := aZZ.y.get(0)
y2 := nz(b.h )
if dir < 1
aZZ.in_out(1, x2, y2)
else
if dir == 1 and ph > y1
aZZ.x.set(0, x2), aZZ.y.set(0, y2)
if per
count = 0
st_P = 0.
st_B = 0
minP = 0.
maxP = 10e6
for i = 0 to maxSize - 1
if aZZ.d.get(i) == 1
if aZZ.y.get(i) > ph + (atr / liqMar)
break
else
if aZZ.y.get(i) > ph - (atr / liqMar) and aZZ.y.get(i) < ph + (atr / liqMar)
count += 1
st_B := aZZ.x.get(i)
st_P := aZZ.y.get(i)
if aZZ.y.get(i) > minP
minP := aZZ.y.get(i)
if aZZ.y.get(i) < maxP
maxP := aZZ.y.get(i)
if count > 2
getB = b_liq_B.get(0)
if st_B == getB.bx.get_left()
getB.bx.set_top(math.avg(minP, maxP) + (atr / liqMar))
getB.bx.set_rightbottom(b.i + 10, math.avg(minP, maxP) - (atr / liqMar))
else
b_liq_B.unshift(
liq.new(
box.new(st_B, math.avg(minP, maxP) + (atr / liqMar), b.i + 10, math.avg(minP, maxP) - (atr / liqMar), bgcolor=color(na), border_color=color(na)),
box.new(na, na, na, na, bgcolor = color(na), border_color = color(na)),
box.new(st_B, st_P, b.i + 10, st_P, text = 'Buyside liquidity', text_size = size.tiny, text_halign = text.align_left, text_valign = text.align_bottom, text_color = color.new(cLIQ_B, 25), bgcolor = color(na), border_color = color(na)),
false,
false,
line.new(st_B , st_P, b.i - 1, st_P, color = color.new(cLIQ_B, 0)),
line.new(b.i - 1, st_P, na , st_P, color = color.new(cLIQ_B, 0), style = line.style_dotted))
)
alert('buyside liquidity level detected/updated for ' + syminfo.ticker)
if b_liq_B.size() > visLiq
getLast = b_liq_B.pop()
getLast.bx.delete()
getLast.bxz.delete()
getLast.bxt.delete()
getLast.ln.delete()
getLast.lne.delete()
if pl
dir := aZZ.d.get (0)
x1 := aZZ.x.get (0)
y1 := aZZ.y.get (0)
y2 := nz(b.l )
if dir > -1
aZZ.in_out(-1, x2, y2)
else
if dir == -1 and pl < y1
aZZ.x.set(0, x2), aZZ.y.set(0, y2)
if per
count = 0
st_P = 0.
st_B = 0
minP = 0.
maxP = 10e6
for i = 0 to maxSize - 1
if aZZ.d.get(i) == -1
if aZZ.y.get(i) < pl - (atr / liqMar)
break
else
if aZZ.y.get(i) > pl - (atr / liqMar) and aZZ.y.get(i) < pl + (atr / liqMar)
count += 1
st_B := aZZ.x.get(i)
st_P := aZZ.y.get(i)
if aZZ.y.get(i) > minP
minP := aZZ.y.get(i)
if aZZ.y.get(i) < maxP
maxP := aZZ.y.get(i)
if count > 2
getB = b_liq_S.get(0)
if st_B == getB.bx.get_left()
getB.bx.set_top(math.avg(minP, maxP) + (atr / liqMar))
getB.bx.set_rightbottom(b.i + 10, math.avg(minP, maxP) - (atr / liqMar))
else
b_liq_S.unshift(
liq.new(
box.new(st_B, math.avg(minP, maxP) + (atr / liqMar), b.i + 10, math.avg(minP, maxP) - (atr / liqMar), bgcolor=color(na), border_color=color(na)),
box.new(na, na, na, na, bgcolor=color(na), border_color=color(na)),
box.new(st_B, st_P, b.i + 10, st_P, text = 'Sellside liquidity', text_size = size.tiny, text_halign = text.align_left, text_valign = text.align_top, text_color = color.new(cLIQ_S, 25), bgcolor=color(na), border_color=color(na)),
false,
false,
line.new(st_B , st_P, b.i - 1, st_P, color = color.new(cLIQ_S, 0)),
line.new(b.i - 1, st_P, na , st_P, color = color.new(cLIQ_S, 0), style = line.style_dotted))
)
alert('sellside liquidity level detected/updated for ' + syminfo.ticker)
if b_liq_S.size() > visLiq
getLast = b_liq_S.pop()
getLast.bx.delete()
getLast.bxz.delete()
getLast.bxt.delete()
getLast.ln.delete()
getLast.lne.delete()
for i = 0 to b_liq_B.size() - 1
x = b_liq_B.get(i)
if not x.brL
x.lne.set_x2(b.i)
if b.h > x.bx.get_top()
x.brL := true
x.brZ := true
alert('buyside liquidity level breached for ' + syminfo.ticker)
x.bxz.set_lefttop(b.i - 1, math.min(x.ln.get_y1() + marBuy * (atr), b.h))
x.bxz.set_rightbottom(b.i + 1, x.ln.get_y1())
x.bxz.set_bgcolor(color.new(cLIQ_B, liqBuy ? 73 : 100))
else if x.brZ
if b.l > x.ln.get_y1() - marBuy * (atr) and b.h < x.ln.get_y1() + marBuy * (atr)
x.bxz.set_right(b.i + 1)
x.bxz.set_top(math.max(b.h, x.bxz.get_top()))
if liqBuy
x.lne.set_x2(b.i + 1)
else
x.brZ := false
for i = 0 to b_liq_S.size() - 1
x = b_liq_S.get(i)
if not x.brL
x.lne.set_x2(b.i)
if b.l < x.bx.get_bottom()
x.brL := true
x.brZ := true
alert('sellside liquidity level breached for ' + syminfo.ticker)
x.bxz.set_lefttop(b.i - 1, x.ln.get_y1())
x.bxz.set_rightbottom(b.i + 1, math.max(x.ln.get_y1() - marSel * (atr), b.l))
x.bxz.set_bgcolor(color.new(cLIQ_S, liqSel ? 73 : 100))
else if x.brZ
if b.l > x.ln.get_y1() - marSel * (atr) and b.h < x.ln.get_y1() + marSel * (atr)
x.bxz.set_rightbottom(b.i + 1, math.min(b.l, x.bxz.get_bottom()))
if liqSel
x.lne.set_x2(b.i + 1)
else
x.brZ := false
if lqVoid and per
bull = b.l - b.h > atr200 and b.l > b.h and b.c > b.h
bear = b.l - b.h > atr200 and b.h < b.l and b.c < b.l
if bull
l = 13
if bull
st = math.abs(b.l - b.l ) / l
for i = 0 to l - 1
array.push(b_liq_V, box.new(b.i - 2, b.l + i * st, b.i, b.l + (i + 1) * st, border_color = na, bgcolor = color.new(cLQV_B, 90) ))
else
st = math.abs(b.l - b.h ) / l
for i = 0 to l - 1
if lqText and i == 0
array.push(b_liq_V, box.new(b.i - 2, b.h + i * st, b.i, b.h + (i + 1) * st, text = 'Liquidity Void ', text_size = size.tiny, text_halign = text.align_right, text_valign = text.align_bottom, text_color = na, border_color = na, bgcolor = color.new(cLQV_B, 90) ))
else
array.push(b_liq_V, box.new(b.i - 2, b.h + i * st, b.i, b.h + (i + 1) * st, border_color = na, bgcolor = color.new(cLQV_B, 90) ))
if bear
l = 13
if bear
st = math.abs(b.h - b.h) / l
for i = 0 to l - 1
array.push(b_liq_V, box.new(b.i - 2, b.h + i * st, b.i, b.h + (i + 1) * st, border_color = na, bgcolor = color.new(cLQV_S, 90) ))
else
st = math.abs(b.l - b.h) / l
for i = 0 to l - 1
if lqText and i == l - 1
array.push(b_liq_V, box.new(b.i - 2, b.h + i * st, b.i, b.h + (i + 1) * st, text = 'Liquidity Void ', text_size = size.tiny, text_halign = text.align_right, text_valign = text.align_top, text_color = na, border_color = na, bgcolor = color.new(cLQV_S, 90) ))
else
array.push(b_liq_V, box.new(b.i - 2, b.h + i * st, b.i, b.h + (i + 1) * st, border_color = na, bgcolor = color.new(cLQV_S, 90) ))
if b_liq_V.size() > 0
qt = b_liq_V.size()
for bn = qt - 1 to 0
if bn < b_liq_V.size()
cb = b_liq_V.get(bn)
ba = math.avg(cb.get_bottom(), cb.get_top())
if math.sign(b.c - ba) != math.sign(b.c - ba) or math.sign(b.c - ba) != math.sign(b.l - ba) or math.sign(b.c - ba) != math.sign(b.h - ba)
b_liq_V.remove(bn)
else
cb.set_right(b.i + 1)
if b.i - cb.get_left() > 21
cb.set_text_color(color.new(color.gray, 25))
//-----------------------------------------------------------------------------}
Dynamic Support and Resistance with Trend LinesMain Purpose
The indicator identifies and visualizes dynamic support and resistance levels using multiple strategies, plus it includes trend analysis and trading signals.
Key Components:
1. Two Support/Resistance Strategies:
Strategy A: Matrix Climax
Identifies the top 10 (configurable) most significant support and resistance levels
Uses a "matrix" calculation method to find price levels where the market has historically reacted
Shows these as horizontal lines or zones on the chart
Strategy B: Volume Extremes
Finds support/resistance levels based on volume analysis
Looks for areas where extreme volume occurred, which often become key price levels
2. Two Trend Line Systems:
Trend Line 1: Pivot Span
Draws trend lines connecting pivot high and pivot low points
Uses configurable pivot parameters (left: 5, right: 5 bars)
Creates a channel showing the trend direction
Styled in pink/purple with dashed lines
Trend Line 2: 5-Point Channel
Creates a channel based on 5 pivot points
Provides another perspective on trend direction
Solid lines in pink/purple
3. Trading Signals:
Buy Signal: Triggers when Fast EMA (9-period) crosses above Slow EMA (21-period)
Sell Signal: Triggers when Fast EMA crosses below Slow EMA
Displays visual shapes (labels) on the chart
Includes alert conditions you can set up in TradingView
4. Visual Features:
Dashboard: Shows key information in a table (top-right by default)
Visual Matrix Map: Displays a heat map of support/resistance zones
Color themes: Dark Mode or Light Mode
Timezone adjustment: For accurate time display
5. Customization Options:
Universal lookback length (100 bars default)
Projection bars (26 bars forward)
Adjustable transparency for different elements
Multiple calculation methods available
Fully customizable colors and line styles
What Traders Use This For:
Entry/Exit Points: The EMA crossovers provide clear buy/sell signals
Risk Management: Support/resistance levels help set stop-losses and take-profit targets
Trend Confirmation: Multiple trend lines confirm trend direction
Key Price Levels: Identifies where price is likely to react (bounce or break through)
The indicator is quite feature-rich and combines technical analysis elements (pivots, EMAs, volume, support/resistance) into one comprehensive tool for trading decisions.
LETHINH-Swing pa,smc🟦 📌 Title (English)
Swing High / Swing Low – 3-Candle Fractal (5-Bar Pivot) | Auto Alerts
⸻
🟩 📌 Short Description
A clean and reliable swing high / swing low detector based on the classic 3-candle (5-bar) fractal pivot. Automatically marks SH/SL and triggers alerts when a swing is confirmed. No repainting after confirmation.
⸻
🟧 📌 Full Description (for TradingView Publishing)
🔶 Swing High / Swing Low – 3-Candle Fractal (5-Bar Pivot)
This indicator identifies Swing Highs (SH) and Swing Lows (SL) using the classic 3-candle fractal pattern, also known as the 5-bar pivot.
It marks swing points only after full confirmation, making it highly reliable and suitable for structure-based trading.
⸻
🔶 📍 How It Works
A swing is confirmed when the center candle is higher (or lower) than the two candles on each side:
Swing High (SH)
high > high , high , high
Swing Low (SL)
low < low , low , low
The confirmation occurs after 2 right candles close, so the indicator does not repaint once a swing is identified.
⸻
🔶 📍 Key Features
• Detects clean and accurate swings
• Uses pure price action — no indicators, no lag
• Marks swing high (SH) and swing low (SL) directly on the chart
• Non-repainting after confirmation
• Works on all timeframes and all markets
• Extremely lightweight and fast
• Includes alert conditions for both SH and SL
Perfect for traders using:
• Market Structure (BOS / CHoCH)
• Order Blocks (OB)
• Smart Money Concepts (SMC)
• Liquidity hunts
• Wyckoff
• Support/Resistance
• Price Action entries
⸻
🔶 📍 Why This Indicator Is Useful
Swing points are the foundation of market structure.
Accurately detecting them helps traders:
• Identify trend shifts
• Spot BOS / CHoCH correctly
• Find key zones (OB, liquidity levels, supply/demand)
• Time entries more precisely
• Avoid fake structure breaks
This indicator ensures swings are plotted only when fully confirmed, reducing noise and confusion.
⸻
🔶 📍 Alerts
You can create alerts for both conditions:
• Swing High Confirmed
• Swing Low Confirmed
Recommended settings:
• Once per bar close
• Open-ended alert
With alerts enabled, TradingView will automatically notify you every time a new swing forms.
⸻
🔶 📍 No Repainting
Once a swing is confirmed and plotted, it will not change or disappear.
This makes the indicator reliable for real-time alerts and backtesting.
⸻
🔶 📍 Pine Script (v5)
Paste your indicator code here if you want it visible.
Or leave the code hidden if you are publishing as protected.
⸻
🔶 📍 Final Notes
• This indicator focuses on confirmation, not prediction
• It is designed for clean structure reading
• All markets supported: Forex, Crypto, Stocks, Indexes, Commodities
• Suitable for scalping, intraday, swing, and even higher-timeframe trading
If you find this tool helpful, feel free to give it a like and add it to your favorites ❤️
Your support helps me share more tools with the community!
Distance Dashboard (50DMA / 52W High / 20DMA)Distance Dashboard – Summary
The Distance Dashboard indicator provides a quick snapshot of where price is positioned relative to three key reference points:
Distance of current HIGH from the 50-day moving average (50DMA)
Helps gauge how extended price is above or below medium-term trend support.
Distance of current LOW from the 52-week HIGH
Shows how far price has pulled back from long-term highs.
Distance of current HIGH from the 20-day moving average (20DMA)
Measures short-term extension and potential overbought/overextended behaviour.
The indicator displays these values in a clean, movable table directly on the price chart.
It does not affect chart scaling and is designed for quick visual assessment of trend extension and relative strength.
Buy/Sell Signals [WynTrader]Hello dear Friend
Here is a new version ( B-S_251121_wt ) of my Buy/Sell Signals indicator.
Some calculation updates and useful enhancements have been applied.
Concepts
This Buy/Sell Signals indicator generates Buy/Sell signals as accurately as possible, identifying trend changes. Compared to other tools that detect trend shifts, this one is simple, easy to use, and demonstrates its efficiency on its own.
- Its features are carefully designed to minimize false signals while ensuring optimal signal placement.
- The Table results allow you to quickly evaluate signal performance, both on their own and compared to a Buy & Hold strategy.
- The Table calculations are fully synchronized with the visible chart (WYSIWYG – What You See Is What You Get). You can also scroll the chart across different date ranges to see how a stock or product performs under various market conditions.
- Seeing Buy/Sell signals on a chart is appealing, but assessing their performance in a Table makes it even more convincing. And without running a full backtest, you can get a clear overview of overall performance immediately.
Features
This indicator generates Buy/Sell signals using:
- Fast and Slow Moving Averages (adjustable).
- Bollinger Bands (adjustable).
- Filters (optional, adjustable) to refine signals, including : Bollinger Bands Lookback Trend Filter; High-Low vs Candle Range Threshold %; Distance from Fast and Slow MAs Threshold %.
- Results are displayed in a Table on the chart, based on the currently visible start and end dates.
Functionality
- The indicator aims to confirm trend changes through timely Buy/Sell signals.
- It uses two Moving Averages and Bollinger Bands, combined with filters such as BB Lookback, -- The variable settings have been tested with a mix of manual and AI testing to find the optimal configuration. You can adjust the variables to suit your goals.
- The design is simple, with clear parameters and instant readability of Buy/Sell Signals on the chart and in the Table results, without complex interpretation needed.
- It works effectively by requiring both trend confirmation and volatility control management.
- Signals are timed to be as accurate as possible, avoiding futile weak or false ones.
- A Table shows the effectiveness of the signals on the current visible chart, providing immediate, realistic feedback. The Buy & Hold strategy results are also included for comparison with the Buy/Sell swing strategy. The Buy & Hold results start from the first Buy signal to ensure a fair comparison.
- Changing the parameters instantly updates the Table, giving a quick, at-a-glance performance check.
Caution
- No technical tool is perfect; it cannot predict disasters, wars, or the actions of large fund managers or short sellers.
- After testing thousands of TradingView indicators over 24 years, I’ve found none to be 100% accurate all the time.
- This Buy/Sell Signals indicator may outperform some others but is still not perfect.
So, just be aware, and don’t be fooled by this tool.
S&P 500 Breadth: Bull vs Bear (20DMA)Simple market breadth for S&P500 using percentage of stock above or below 20dma
MA + ATR Channel (Custom)MA + ATR Channel
The moving average serves as the axis, with an upper and lower channel at x times the ATR acting as support and resistance.
Key Levels by Romulus V2This is the updated key levels script I added dynamic levels that change throughout the day opening range high and low and customizable settings to adjust.
Futures Momentum Scanner – jyoti//@version=5
indicator("Futures Momentum Scanner – Avvu Edition", overlay=false, max_lines_count=500)
//------------------------------
// USER INPUTS
//------------------------------
rsiLen = input.int(14, "RSI Length")
macdFast = input.int(12, "MACD Fast")
macdSlow = input.int(26, "MACD Slow")
macdSignal = input.int(9, "MACD Signal")
stLength = input.int(10, "Supertrend Length")
stMult = input.float(3.0, "Supertrend Multiplier")
//------------------------------
// SUPER TREND
//------------------------------
= ta.supertrend(stMult, stLength)
trendUp = stDirection == 1
//------------------------------
// RSI
//------------------------------
rsi = ta.rsi(close, rsiLen)
rsiBull = rsi > 50 and rsi < 65
//------------------------------
// MACD
//------------------------------
= ta.macd(close, macdFast, macdSlow, macdSignal)
macdBull = macd > signal and macd > 0
//------------------------------
// MOVING AVERAGE TREND
//------------------------------
ema20 = ta.ema(close, 20)
ema50 = ta.ema(close, 50)
ema200 = ta.ema(close, 200)
trendStack = ema20 > ema50 and ema50 > ema200
//------------------------------
// BREAKOUT LOGIC
//------------------------------
prevHigh = ta.highest(high, 20)
breakout = close > prevHigh
//------------------------------
// FINAL SCANNER LOGIC
//------------------------------
bullishCandidate = trendUp and rsiBull and macdBull and trendStack and breakout
//------------------------------
// TABLE OUTPUT FOR SCANNER FEEL
//------------------------------
var table t = table.new(position.top_right, 1, 1)
if barstate.islast
msg = bullishCandidate ? "✔ BUY Candidate" : "– Not a Setup"
table.cell(t, 0, 0, msg, bgcolor=bullishCandidate ? color.new(color.green, 0) : color.new(color.red, 70))
//------------------------------
// ALERT
//------------------------------
alertcondition(bullishCandidate, title="Scanner Trigger", message="This stock meets Avvu's futures scanner criteria!")
ICT Key Levels: PDH / PDL / Daily Open//@version=5
indicator("ICT Key Levels: PDH / PDL / Daily Open", shorttitle="ICT Levels", overlay=true)
// --- Inputs
showPD = input.bool(true, "Mostrar PDH/PDL")
showOpen = input.bool(true, "Mostrar Daily Open")
pdhColor = input.color(color.new(color.green, 0), "Color PDH")
pdlColor = input.color(color.new(color.red, 0), "Color PDL")
openColor = input.color(color.new(color.orange, 0), "Color Daily Open")
lineWidth = input.int(1, "Ancho líneas", minval=1, maxval=4)
// --- Previous day high / low (using daily security)
pdh = request.security(syminfo.tickerid, "D", high )
pdl = request.security(syminfo.tickerid, "D", low )
// --- Daily open (current day's open on Daily timeframe)
dailyOpen = request.security(syminfo.tickerid, "D", open)
// --- Plots
plot(showPD and not na(pdh) ? pdh : na, title="PDH", color=pdhColor, linewidth=lineWidth, style=plot.style_line)
plot(showPD and not na(pdl) ? pdl : na, title="PDL", color=pdlColor, linewidth=lineWidth, style=plot.style_line)
plot(showOpen and not na(dailyOpen) ? dailyOpen : na, title="Daily Open", color=openColor, linewidth=lineWidth, style=plot.style_line)
// --- Optional: etiquetas en inicio de día (solo en la primera barra diaria)
isNewDay = ta.change(time("D"))
labelNewDayOpen = input.bool(true, "Mostrar etiqueta en apertura diaria")
if labelNewDayOpen and isNewDay
label.new(bar_index, dailyOpen, text="Open", style=label.style_label_down, color=color.new(openColor,50), textcolor=color.black, yloc=yloc.price)
an_dy_time_marker+killzone+sessionAn indicator where you can configure 5 different trading times. You can also view the kill zone and the entire session.
Have fun and catch the pips!
VWAP POC Volume ConfirmationVWAP POC Volume Confirmation
Advanced volume-based trading indicator that combines VWAP, Point of Control, and volume analysis for precise entry signals. Features:
• VWAP Trend Filter - Confirms market direction
• POC Levels - Identifies key price control points
• Volume Confirmation - Validates moves with high volume
• Multi-Timeframe - Adapts to any chart timeframe
• Smart Signals - Strong/Medium entry alerts with visual arrows
Perfect for day traders seeking volume-confirmed entries with clear VWAP and POC alignment. Includes real-time info table and customizable alerts.
#VWAP #VolumeProfile #POC #TradingStrategy #VolumeAnalysis
TradingBee Money FlowTradingBee Money Flow
Most traders make the mistake of relying on a single indicator. RSI only looks at price. OBV only looks at volume. If you only look at one, you are missing half the picture.
TradingBee Money Flow solves this by calculating a weighted consensus of 10 different technical metrics combined into a single "Flow Score." It answers the most important question in trading: "Is the money actually backing up the price move?"
If Price goes UP, but this indicator goes DOWN, it’s a trap.
How It Works: The 3-Tier Logic
This script does not just average numbers; it weights them based on importance to creating a true "Composite Score" (-100 to +100).
Tier 1: Primary Volume Flow (50% Weight) The engine of the indicator. It measures raw capital entering/exiting.
MFI (Money Flow Index)
OBV Momentum (On-Balance Volume)
Chaikin Money Flow (CMF)
Tier 2: Secondary Momentum (35% Weight) Validates if the volume is actually moving price efficiently.
VWAP Oscillation
Accumulation/Distribution (A/D) Momentum
Klinger Oscillator
Elders Force Index
Tier 3: Confirmation & Volatility (15% Weight) Filters out fake-outs using volatility metrics.
RSI
ADX (Trend Strength)
Bollinger Band Width
The "Clean Divergence" Engine (Unique Feature)
Standard divergence indicators are "noisy"—they print signals on every small pivot. The TradingBee Money Flow uses a custom Clean Wave Filter to only identify high-probability reversals.
It requires two conditions to trigger a Divergence Signal:
The "Gap" Rule (Zero Cross): The indicator must cross the Zero Line in between two peaks. This ensures we are comparing two distinct waves of buying/selling, rather than just jagged noise in a single trend.
The "Shrinkage" Rule: The second wave must be significantly smaller (by a user-defined ratio) than the first. This confirms a true collapse in momentum.
How to Use This Indicator
1. The Histogram (Trend Following)
Bright Green: Buying pressure is accelerating. Strong Trend.
Dark Green: Buying is continuing, but momentum is slowing. Warning sign.
Bright Red: Selling pressure is accelerating.
Zero Line Cross: The definitive signal of a trend change.
2. The Lines (Reversal Trading)
🔴 Red Line (Bearish Divergence): Price made a Higher High, but Money Flow made a Lower High (with a gap in between). Smart money is selling into the rally. Look for Shorts.
🟢 Green Line (Bullish Divergence): Price made a Lower Low, but Money Flow made a Higher Low. Sellers are exhausted. Look for Longs.
Settings
Lookback Period: Adjusts the sensitivity of the composite score.
Pivot Lookback: Increases or decreases the strictness of the pivot detection.
Require Zero Cross: Keep checked for "Clean" signals. Uncheck to see standard divergences.
Wave Size Ratio: Defines how much smaller the second wave must be to trigger a signal.
Disclaimer: This tool provides market analysis but does not guarantee future results. Always manage your risk.
BTC vs US2000 – Correlation (BarDai)📉 Bottom Panel — BTC vs US2000 Correlation
This panel measures how synchronized BTC and US2000 are moving right now.
Correlation range: +1.00 … -1.00
Correlation Value Meaning Market Behavior
+0.5 to +1.0 Strong Positive Correlation BTC and US2000 move together (same direction)
0.0 to +0.5 Weak/Neutral Positive Similar direction but unstable
0.0 to -0.5 Weak Negative Early decoupling — BTC may lead
-0.5 to -1.0 Strong Negative Correlation BTC and US2000 move opposite ways — risk divergence
🧠 Why this is important?
Correlation shows whether the ratio movement is reliable.
✔ Valid Risk Signal
If:
Ratio = Risk-ON
AND Correlation is positive
→ BTC rising with equities → strong confirmation
→ You can trust the Risk-ON regime
⚠️ Risk Divergence (Decoupling)
If:
Ratio = Risk-ON
BUT Correlation drops into negative
→ BTC is pumping alone, not backed by global risk
→ Breakout is weaker / can fail
This often happens before trend reversals.
🟡 Yellow “Decoupling Dots”
These appear when correlation is low but volatility is high.
They indicate:
Market tension
Possible rotation of capital
Early warning of shift
➡ Good for catching reversals early, but never alone — must confirm with the Ratio crossover.
🔍 Practical Usage Summary
What you see Interpretation Strategy
Ratio above EMA + Correlation > 0 Global Risk-ON Favor BTC longs
Ratio below EMA + Correlation > 0 Global Risk-OFF Protective mode
Ratio > EMA but Correlation < 0 Fake Risk-ON Reduce risk, wait
Strong negative correlation Markets diverging Look for reversal signals
🎯 Main Message
Correlation tells you how trustworthy the risk regime is.
The ratio tells who leads
The correlation tells whether the move is real
Together → a powerful institutional macro signal 🔥
BTC vs US2000 – Ratio & Spread (BarDai v6 CLEAN)📌 How the Indicator Works
BTC vs US2000 — Ratio & Spread
The indicator shows:
who is stronger right now — crypto-risk (BTC) or equity-risk (US2000 / Russell-2000)
📈 Top Panel — RATIO + Risk Regime Signals
🎯 Ratio (cyan line)
Measures BTC’s relative strength versus US2000:
📈 Ratio rising → BTC outperforming → Risk-ON environment
📉 Ratio falling → BTC underperforming → Risk-OFF environment
📉 EMA (white line)
A smoothed benchmark.
➡ Key signal — when Ratio crosses the EMA
That marks a shift in the risk regime.
🟩🟥 Background Coloring (Risk Mode)
Condition Regime Meaning Trading Logic
Ratio above EMA 🟩 Risk-ON Capital flows into risk assets Favor BTC longs
Ratio below EMA 🟥 Risk-OFF Capital flows out of risk Prefer shorts / hedge / cash
🧭 SpreadNorm — Bottom Panel
🎯 SpreadNorm shows how strong the deviation is:
🟩 Above 0 → BTC risk premium
🟥 Below 0 → Equity-side risk premium (US2000 stronger)
It helps to:
✔ confirm regime signals
✔ filter false crossovers
✔ measure strength of risk move
(Yellow dots mark extreme deviations → mean-reversion potential)
📌 Trading Usage Guide
Scenario Interpretation Action
Ratio above EMA + SpreadNorm green Stable Risk-ON Look for BTC long entries
Ratio below EMA + SpreadNorm red Stable Risk-OFF Avoid aggressive longs
SpreadNorm extreme + yellow dot Reversal potential Take profit / wait for crossover
📌 Best used on 30–60m timeframes for intraday decision making.
🎁 Final Takeaway
The indicator tracks where risk-capital is flowing.
If BTC outperforms equities → we buy BTC.
If BTC underperforms → we don’t buy (or short it).






















