CTO Line Advanced CloneThis is what I think CTO Larsson is using for his CTO Line Indicator
Use at your own risk
Bandes et canaux
Adaptive Trend Mapper-ATM (Arjo)Adaptive Trend Mapper (ATM) is a multi-factor trend, momentum, and compression-analysis tool designed to help traders visually map the strength and direction of market pressure.
Instead of simply combining existing indicators, ATM creates a new composite framework that blends momentum imbalance, directional strength, volatility contraction, and adaptive smoothing into a single, unified model.
Originality and usefulness
Adaptive Trend Mapper (ATM) does not replicate any one indicator.
It generates two custom indices— Bull Pressure Index and Bear Pressure Index —derived from a mathematical combination of RSI, inverse-RSI, and ADX. These indices behave differently from traditional oscillators:
They represent directional pressure on a 0–100 scale , not momentum.
They are designed to converge/diverge, forming a basis for the built-in Squeeze Detection Engine.
They can be optionally step-compressed , making the movement easier to read on fast or small charts.
The script also integrates a custom SuperSmoother trend model (not TradingView’s built-in function), which acts as an adaptive trend curve on the chart.
All calculations are combined intentionally—not as a mashup—to create a framework that allows traders to understand trend strength, compression phases, and micro-trend shifts in one place.
How the Indicator Works
1. Bull & Bear Pressure Indices:
These indices measure directional imbalance:
Bull Index = ADX strength weighted against inverse-RSI
Bear Index = ADX strength weighted against normal RSI
This produces two opposing pressure curves that rise or fall depending on whether buyers or sellers dominate.
You can optionally smooth these using:
SMA / EMA / WMA / RMA via the “Smoothing Settings” panel.
2. Squeeze & Compression Detection:
A squeeze is detected when:
ADX stays below a user-defined threshold
Bull–Bear Index difference shrinks
Average difference is falling (convergence)
This is a volatility-contraction model inspired by squeeze logic but applied to directional pressure, not Bollinger Bands/Keltner Channels .
3. Adaptive Trend Curve (SuperSmoother Engine)
The indicator applies a two-pole SuperSmoother filter to the price, then smooths it again using EMA.
The slope color flips between bullish and bearish and is displayed using:
A thin SuperSmoother curve
A thicker band for visual context
4. EMA-50 Trend Context:
An optional EMA-50 helps identify broad directional bias .
5. Step-Based Scaling
You can quantize the Bull/Bear indices using custom step intervals.
This makes the indicator easier to read on noisy intraday charts.
How to Use the Indicator
1. Trend Analysis
A rising Bull Index shows strengthening upward pressure
A rising Bear Index shows strengthening downward pressure
Wide divergence between the indices signals a strong trend
2. Compression / Squeeze Analysis
Yellow background = volatility compression + pressure convergence
Breakouts from this zone often precede directional expansion
3. Trendline Reading
SuperSmoother line color flip = micro trend shift
EMA-50 slope gives macro-trend direction
Perfect for combining trend and momentum maps on the same chart
4. Visual Interpretation
Cyan/teal → strong bullish pressure
Purple/red/orange → various levels of bearish control
Neutral/teal background → weak ADX
Yellow background → squeeze zone
Open-Source Notes
This script uses:
TradingView built-in RSI, ADX/DMI, and smoothing functions
A SuperSmoother implementation based on known DSP filter coefficients
All remaining logic, signal methods, composite indices, and compression model are original developments by ARJO .
The script is published open-source to comply with TradingView’s reuse policy.
Disclaimer
This tool is for educational and analytical purposes only.
It does not generate buy or sell signals.
Always use proper risk management.
Happy Trading (ARJO)
Price Channel ScalpingMy X account:@CTF_bule_lotus
1. Core Logic (Price Channel Breakout)
The strategy relies on a single, simple indicator: the highest high of the past 20 bars.
When the current price breaks above this 20-period high, a stop entry is used to initiate a long position.
This design avoids prediction.
The model waits for the market to demonstrate momentum before participating.
2. Trade Direction (Long Only)
The strategy exclusively trades long positions and does not take shorts.
This choice is based on:
ETH’s historically upward-biased structure
Avoiding noise from two-sided signals during high-volatility periods
Keeping the direction consistent, which is beneficial for scalping-style systems
3. Risk Management (Fixed TP / SL)
Immediately after entry, the strategy sets two fixed exit conditions:
Take Profit: +10 price units
Stop Loss: –10 price units
Both are automatically converted using the market’s minimum tick size to ensure cross-instrument applicability.
This fixed TP/SL structure is typical in scalping systems:
small wins, fast exits, controlled losses, high turnover.
4. Transaction Costs
A 0.03% fee is applied to every trade throughout the entire backtest.
This fee level reflects the cost structure of major centralized exchanges, making results closer to real-world conditions.
5. Data & Time Range (2016–2025 Full Sample)
The backtest uses ETH’s complete historical dataset from 2016 to 2025.
No subjective filtering is applied—large moves, flash crashes, and black-swan events are all included.
The strategy does not rely on heavy parameter tuning, reducing the risk of overfitting.
6. Backtest Results (Including Fees)
Under this fixed, rule-based structure, the cumulative return is:
1,202,002.77% (2016 → 2025)
Even after including transaction fees, performance is driven by:
High trade frequency and small profit targets
Strict loss containment
Capturing momentum during breakout regimes
7. Transparency & Reproducibility
I will publish the full Pine Script implementation, including:
Entry logic
Exit logic
Fee configuration
All parameters
Backtesting framework
Transparency and reproducibility remain the core principles of this research.
Advanced Bitcoin Cycle Detector with Projections & Hursttest script created with openrouter adn google gemmi 3
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.
ETHUSDT 4H - Keltner Breakout working nice with ETH above EMA200
Using Keltner bands to prevent get rid off unnecessary noices . Works at safe side
Which is fantastic for people who does not want to stick to screen full day , it needs as couple of transactions per month to gain meaningfull profit
Do not forget to use it with 4 hr time frame
Do not recommend to use it with sh*tcoins, however with a small fine tuning its okay to use it with Top altcoins
Micha Stokes Buyers Breakout Alert v2I added comments starts with EE , where code modifications are needed
Low Volatility Profiles [BigBeluga]🔵 OVERVIEW
Low Volatility Profiles is a market compression and breakout-anticipation tool that identifies phases of low volatility using ADX and then builds a real-time volume profile inside the detected range.
This helps traders spot accumulation/distribution zones and prepare for explosive moves when volatility expands.
When volatility is low ➜ price coils ➜ volume organizes ➜ breakouts become highly actionable.
This tool visualizes that process with dynamic range boxes + volume bins + PoC extension.
🔵 CONCEPTS
Low-Volatility Detection — Uses ADX threshold & cross logic to define volatility contraction regimes.
Range Construction — Draws a price box that expands with highs/lows during the compression phase.
Micro Volume Profile — Builds a volume histogram inside the range using bins (micro volume nodes).
Delta Calculation — Tracks positive vs negative volume to gauge buyer/seller pressure within range.
Point of Control (PoC) — Highlights the price level with max traded volume inside the range.
PoC Extension — Optionally extends PoC into future bars to show potential reaction zone after breakout.
Breakout Validation — Ends the profile zone when price breaks above or below the modeled range.
Noise Removal — Automatically removes invalid or small ranges to prevent chart clutter.
This tool turns consolidation into actionable structure by exposing where smart money accumulates before trending moves.
🔵 FEATURES
ADX-Driven Range Detection — Identify when market transitions into low-volatility compression.
Configurable ADX Threshold — Set sensitivity for contraction zones.
Cross-Type Option — Detect low volatility via cross under / crossover logic.
Dynamic Range Box — Expands live with price as contraction unfolds.
Micro Volume Profile (Bins) — Distributes volume across bins inside range for micro POC mapping.
Volume Delta Visualization — Shows imbalance inside consolidation (accumulation vs distribution).
Real-Time PoC Highlight — Instantly shows most traded price inside the compression.
PoC Extension Mode — Extend PoC forward to project reaction levels post-breakout.
Clean Auto-Reset Logic — Removes boxes if range invalid or breakout occurs too fast.
Optional Filled Boxes — Heatmap-style profile visualization inside range body.
ADX Line + Threshold Plot — Visual assistance for volatility state monitoring.
🔵 HOW TO USE
Identify Accumulation Zones — When price enters low-volatility ADX condition and profile builds.
Watch the PoC — PoC acts as battle zone; move above/below can signal initiator strength.
Breakout Strategy — Trade break above/below the range after compression.
Mean Reversion Inside Range — Fade edges while price remains inside compression box.
Combine With Trend Tools — Use trend confirmation (MA/EMA/Flow indicators) after breakout.
Use Delta Clues — Positive delta tilt suggests accumulation; negative suggests distribution.
Monitor Range Size — Longer build + high PoC volume = stronger potential breakout energy.
🔵 CONCLUSION
Low Volatility Profiles isolates accumulation phases and maps volume concentration before volatility expansion.
By combining ADX compression, micro volume distribution, and PoC tracing, traders gain an edge in anticipating powerful breakout cycles and institutional positioning.
Trade the quiet moment before the storm — where smart money prepares the move, and the real opportunity emerges.
DeepClean Linear indicator 1. Indicator Name
DeepClean Linear indicator
2. One-Line Introduction
A trend-recognition indicator that overlays a “transparent wave” on price, removing noise and revealing directional bias and trend intensity in a highly intuitive visual form.
3. Overall Summary
The DeepClean Linear indicator calculates trend direction using changes in linear regression slope and determines trend strength by comparing how consistently the regression line moves over a defined lookback window.
Rather than merely identifying trend direction, the indicator applies a triple-layer noise-filtering process (EMA → SMA → RMA) to produce a clean, wave-shaped data line that filters out unnecessary market noise.
This transparent wave sits directly on top of price, allowing traders to visually compare price movement and trend strength at the same time.
A stronger trend results in a taller, thicker wave, while weakening momentum causes the wave to thin, making it easier to spot trend continuation, exhaustion, or upcoming reversal.
Color automatically shifts based on trend:
Bright cyan/teal during bullish conditions
Reddish tones during bearish conditions
Transparency dynamically adjusts depending on strength
The indicator excels at identifying the true underlying trend by ignoring minor fluctuations and is well suited for scalping, swing trading, and position trading.
It also significantly reduces false signals in ranging markets, making it ideal for trend-following strategies.
4. Advantages
① Ultra-Clean Noise-Reduced Wave
Utilizes a 3-stage smoothing filter (EMA → SMA → RMA) to produce a much cleaner wave than standard moving averages, highlighting only core trend movement.
② Trend Direction & Strength at a Glance
Based on comparative linear regression behavior, the indicator quantifies both direction and strength, making convergence/divergence highly visible.
③ Intuitive Price Overlay Visualization
The semi-transparent wave sits directly on price action, allowing traders to instantly see divergence from price, trend weakening, or early turning points.
④ Dynamic Transparency Coloring
Strong trends appear bold and intense, while weaker trends fade visually—making signal interpretation effortless.
⑤ Excellent Range Filtering
During low-direction phases (state = 0), the wave turns neutral, preventing forced or premature entries.
⑥ Multi-Timeframe Compatibility
The wave remains stable from 1-minute to weekly charts, making it suitable for trend analysis, execution, and risk control across all timeframes.
📌 Core Concept Overview
The indicator evaluates the relative comparison of linear regression values over the last n periods.
A positive trend value indicates bullish bias
A negative trend value indicates bearish bias
Intensity represents strength and controls wave height
waveTop / waveBot define the visual wave area relative to price
State Values
1 = Bullish Trend
-1 = Bearish Trend
0 = Neutral / Weak Direction
⚙️ Settings Overview
Option Description
Trend Lookback (n) Comparison window for regression slope. Higher = bigger trend focus.
Range Tolerance (%) Strength threshold to classify bullish/bearish movement. Higher = more conservative.
Source Price source for regression calculations.
Linear Reg Length Length of the linear regression.
Noise Filter Strength (smoothK) Controls the smoothing intensity. Higher = smoother wave.
Wave Amplitude (amp) Adjusts the height/thickness of the wave.
Bull/Bear Color Colors for bullish/bearish waves.
Base Transparency Base opacity level; modified dynamically by trend strength.
📈 Bullish Timing Recognition Examples
Wave begins turning brighter teal and more opaque, indicating strengthening upward pressure.
waveTop expands above price, signaling early trend expansion.
State flips to 1, often marking a trend restart or early reversal phase.
A steadily rising wave height suggests sustained bullish momentum.
📉 Bearish Timing Recognition Examples
Wave shifts into red tones, showing bearish dominance.
waveBot expands below price, indicating rising downside volatility.
State stays at -1 while intensity increases, signaling entry into strong downtrend conditions.
A shift from weak → strong bearish intensity can provide short-entry timing cues.
🧪 Recommended Usage
Use as a core component in trend-following systems
Adjust position size based on wave thickness (trend strength)
Combine with RSI/MACD to reduce false signals during overbought/oversold zones
Sudden wave expansion during volatility increases helps detect trend acceleration
In sideways markets, frequent state = 0 readings help avoid low-probability trades
🔒 Important Notes
As a trend-based indicator, it may misread choppy/ranging markets
Because of smoothing, signals may appear slightly delayed
Extreme news volatility can temporarily distort trend clarity
Sideways & Breakout Detector + Forecast//@version=6
indicator("Sideways & Breakout Detector + Forecast", overlay=true, max_labels_count=500)
// Inputs
lengthATR = input.int(20, "ATR Länge")
lengthMA = input.int(50, "Trend MA Länge")
sqFactor = input.float(1.2, "Seitwärtsfaktor")
brkFactor = input.float(1.5, "Breakoutfaktor")
// ATR / Volatilität
atr = ta.atr(lengthATR)
atrSMA = ta.sma(atr, lengthATR)
// Basislinie / Trend
basis = ta.sma(close, lengthATR)
trendMA = ta.sma(close, lengthMA)
// Seitwärtsbedingung
isSideways = atr < atrSMA * sqFactor
// Breakouts
upperBreak = close > basis + atr * brkFactor
lowerBreak = close < basis - atr * brkFactor
// Vorhergesagter Ausbruch (Forecast)
// Wenn Seitwärtsphase + Kurs nahe obere oder untere Kanalgrenze
forecastBull = isSideways and (close > basis + 0.5 * atr)
forecastBear = isSideways and (close < basis - 0.5 * atr)
// Farben
barcolor(isSideways ? color.new(color.yellow, 40) : na)
barcolor(upperBreak ? color.green : na)
barcolor(lowerBreak ? color.red : na)
// Breakout-Bänder
plot(basis + atr * brkFactor, "Bull Break Zone", color=color.new(color.green, 60))
plot(basis - atr * brkFactor, "Bear Break Zone", color=color.new(color.red, 60))
// Labels (klein)
if isSideways
label.new(bar_index, close, "Seitwärts", color=color.yellow, style=label.style_label_center, size=size.tiny)
if upperBreak
label.new(bar_index, high, "Bull Breakout", color=color.green, style=label.style_label_up, size=size.tiny)
if lowerBreak
label.new(bar_index, low, "Bear Breakout", color=color.red, style=label.style_label_down, size=size.tiny)
// Vorhergesagte Ausbrüche markieren
plotshape(forecastBull, title="Forecast Bull", location=location.abovebar, color=color.new(color.green, 0), style=shape.triangleup, size=size.tiny)
plotshape(forecastBear, title="Forecast Bear", location=location.belowbar, color=color.new(color.red, 0), style=shape.triangledown, size=size.tiny)
// Alerts
alertcondition(isSideways, "Seitwärtsphase", "Der Markt läuft seitwärts.")
alertcondition(upperBreak, "Bull Breakout", "Ausbruch nach oben!")
alertcondition(lowerBreak, "Bear Breakout", "Ausbruch nach unten!")
alertcondition(forecastBull, "Forecast Bull", "Voraussichtlicher Bull-Ausbruch!")
alertcondition(forecastBear, "Forecast Bear", "Voraussichtlicher Bear-Ausbruch!")
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))
//-----------------------------------------------------------------------------}
SuperTrend Zone Rejection [STRZ] CONCEPT -
This indicator identifies trend-continuation setups by combining the Super Trend with dynamic Average True Range (ATR) value zones. It highlights specific price action behaviour's—specifically wick rejections and momentum closes—that occur during pullbacks into the trend baseline.
HOW IT WORKS -
The script operates on three logic gates:
>> Trend Filter: Uses a standard Super Trend (Factor 3, Period 10 default) to define market direction.
>> Dynamic Zones: Projects a volatility-based zone (default 2.0x ATR) above or below the Super Trend line to define a valid pullback area.
>> Signal Detection: Identifies specific candle geometries occurring within these zones.
>> Rejection: Candles with significant wicks testing the zone support/resistance.
>> Momentum: Candles that open within the zone and close in the upper/lower quartile of their range.
FEATURES -
>> Dynamic Channel: Visualizes the active buy/sell zone using a continuous, non-repainting box.
>> Volatile Filtering: Filters out low-volatility candles (doji's/noise) based on minimum ATR size.
>> Visuals: Color-coded trend visualization with distinct signal markers for qualified entries.
SETTINGS -
>> Super Trend: Adjustable Factor and ATR Period.
>> Zone Multiplier: Controls the width of the pullback zone relative to ATR.
>> Visuals: Customizable colours for zones and signals to fit light/dark themes.
Highlight Running 30m CandleThis script highlight 30 minute running candle.
mostly used for crypto trading
Avengers Ultimate V5 (Watch Profit)"Designed as a trend-following system, this strategy integrates the core principles of legends like Mark Minervini, Stan Weinstein, William O'Neil, and Jesse Livermore. It has been fine-tuned for the Korean market and provides distinct entry and exit protocols for different market scenarios."
Sk M Sir JiSimple indicator that plots three alma moving averages and provides bgcolor based on below conditions
Red => If RSI (length 14) is below 50 or low is below the lower Bollinger band (length 20)
Green => If RSI (length 14) is above 50 or high is above the upper Bollinger band (length 20)
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.
Grok/Claude Quantum Signal Pro * Grok/Claude X Series*Grok/Claude Quantum Signal Pro
This is a TradingView indicator focused on catching momentum reversals at price extremes, with a sophisticated divergence detection system as its standout feature. The "Quantum" branding is marketing flair — under the hood, it's a well-structured combination of momentum oscillators, volatility bands, and divergence analysis working together to identify high-probability turning points.
Core Philosophy
The indicator asks: "Is price at an extreme level where momentum is exhausted, and is there evidence that a reversal or continuation is likely?"
It approaches this by requiring multiple confirming factors before generating a signal. Price must be at a band extreme, momentum indicators must be at extreme readings, and the market must be trending (not choppy). Optionally, it can also require RSI divergence and volume confirmation.
The Dynamic Envelope Bands
The foundation is an adaptive channel built around a moving average (EMA or SMA, user's choice). The bands extend above and below this centerline using ATR (Average True Range) multiplied by a dynamic factor.
What makes these bands "adaptive" is that the multiplier adjusts based on ADX — when trends are stronger, the bands widen to accommodate larger directional moves. In weaker trend environments, the bands stay tighter. This helps the bands stay relevant across different market conditions rather than being too loose in quiet markets or too tight during volatile trends.
The centerline itself is color-coded based on its slope: green when rising, red when falling, yellow when flat. This gives immediate visual feedback on short-term directional bias.
The Multi-Layer Filter System
Signals must pass through several filters before being displayed. Here's what each filter does:
FilterWhat It ChecksDefault StateADX TrendingIs ADX above threshold (20)? Avoids signals in choppy, directionless marketsRequired (always on)RSI ExtremesIs RSI oversold (<30) for buys, overbought (>70) for sells?Required (always on)Fisher TransformIs Fisher below -2.0 for buys, above +2.0 for sells? Confirms momentum exhaustionRequired (always on)Trend AlignmentIs price above/below the trend EMA in the right direction?Optional (off by default)Volume SurgeIs current volume significantly above average?Optional (off by default)DivergenceIs there an active RSI divergence pattern?Optional (off by default)
The Fisher Transform
The Fisher Transform is a lesser-known oscillator that converts price into a Gaussian normal distribution, making extreme values much more pronounced. When Fisher readings hit +2.0 or -2.0, it indicates statistically significant momentum exhaustion. By requiring both RSI and Fisher to be at extremes simultaneously, the indicator filters out many false signals that would occur using just one oscillator.
The Detrended Price Oscillator (DPO)
The indicator also calculates DPO, which removes the trend component from price to show where current price sits relative to a historical average. This is displayed in the info panel as a percentage — positive values mean price is extended above its typical level, negative values mean it's extended below. This helps gauge how "stretched" price is from its mean.
RSI Divergence Detection — The Core Feature
This is where the indicator really shines. It detects both regular divergences (reversal signals) and hidden divergences (continuation signals).
Regular Divergences
Regular divergences suggest potential reversals:
Regular Bullish Divergence: Price makes a lower low, but RSI makes a higher low. This indicates that despite price falling further, selling momentum is actually weakening — a potential bottom signal. These are marked with cyan/light blue solid lines on the chart.
Regular Bearish Divergence: Price makes a higher high, but RSI makes a lower high. Despite price rising further, buying momentum is weakening — a potential top signal. Also marked with cyan solid lines.
Hidden Divergences
Hidden divergences suggest trend continuation (often overlooked by traders):
Hidden Bullish Divergence: Price makes a higher low, but RSI makes a lower low. The uptrend is healthy (higher lows in price), but RSI dipped lower, creating a "hidden" bullish setup that often precedes another leg up. Marked with purple dashed lines.
Hidden Bearish Divergence: Price makes a lower high, but RSI makes a higher high. The downtrend structure is intact, but RSI bounced higher, suggesting another leg down is coming. Also marked with purple dashed lines.
The divergence detection uses pivot points (local highs and lows) to identify the comparison points. Users can adjust the pivot lookback (how many bars to use for pivot identification) and the maximum lookback window for finding divergence pairs.
Signal Generation Logic
A buy signal fires when all these conditions align:
Market is trending (ADX above threshold)
RSI is in oversold territory (below 30)
Fisher Transform is oversold (below -2.0)
Plus any optional filters that are enabled
A sell signal requires the mirror conditions: trending market, overbought RSI (above 70), and overbought Fisher (above +2.0).
There's also a cooldown mechanism requiring at least 5 bars between signals to prevent clustering.
Visual Elements
The indicator provides layered visual information:
Adaptive bands with color-coded centerline (green/red/yellow based on slope)
Cloud fill between bands, colored by trend direction
Signal arrows (triangles) at entry points
Price labels showing exact entry price at each signal
Divergence lines connecting the pivot points that form the divergence pattern
Divergence labels ("REG BULL", "HID BEAR", etc.) with tooltips explaining what each pattern means
Info panel showing current status of all indicators and any active divergences
The Info Panel
The top-right panel displays real-time status for all the indicator components. Each row is color-coded to show whether that factor is currently bullish, bearish, or neutral. The last two rows specifically track whether regular and hidden divergences are currently active, making it easy to see at a glance if a divergence pattern has recently formed.
Alert System
The indicator includes a comprehensive alert system covering not just buy/sell signals, but also "setup building" conditions (when RSI and Fisher are at extremes but ADX hasn't confirmed yet), market regime changes (trending to ranging and vice versa), and individual divergence detections for all four types.
Summary
This indicator is designed for traders who want to catch reversals at price extremes with multiple layers of confirmation. Its strength lies in the divergence detection system, which identifies both potential reversals and trend continuation setups. The modular filter system lets users dial in their preferred level of strictness — from the default configuration that requires just the core filters, to a highly selective mode requiring trend alignment, volume confirmation, and divergence all at once. It's best suited for swing trading or identifying key turning points on higher timeframes.
Grok/Claude AI Neural Fusion Pro * Grok/Claude X SeriesGrok/Claude AI Neural Fusion Pro
This is a TradingView indicator that combines multiple technical analysis methods into a unified scoring system to identify trading opportunities. Despite the "Neural" and "AI" branding, it's not actually using machine learning — it's a sophisticated blend of traditional indicators weighted together to produce a single decision-aiding score.
Core Philosophy
The indicator attempts to answer the question: "How bullish or bearish is the current market environment, and when should I consider entering a trade?"
It does this by calculating a "GXS Score" (ranging from -1 to +1) that aggregates five different market dimensions: trend strength, momentum, volume, price structure, and price action quality. Each dimension contributes to the final score based on user-defined weights.
The Dynamic Bands System
Rather than using standard Bollinger Bands, this indicator creates adaptive bands that expand and contract based on market conditions. The bands are built around a midpoint calculated from Heikin Ashi candles (smoothed price bars that filter out noise), then extended outward using ATR (Average True Range) multiplied by a dynamic factor.
What makes these bands "dynamic" is that the multiplier adjusts based on two factors: the Chaikin Oscillator (which measures buying/selling pressure through accumulation/distribution) and ADX (trend strength). When there's strong directional pressure or a powerful trend, the bands widen to accommodate larger price swings. In quieter markets, they tighten.
The Five Scoring Components
The GXS Score is built from five weighted components:
ComponentDefault WeightWhat It MeasuresTrend Strength30%ADX direction and magnitude — is there a real trend, and which way?Momentum25%RSI, MACD, Stochastic, CCI, Rate of Change, plus divergence detectionVolume20%On-Balance Volume slope and whether volume confirms price movementPrice Structure15%Where price sits within the bands, plus volatility regimePrice Action10%Ratio of bullish vs bearish candles over recent bars
Trend Strength Component
This component only contributes to the score when ADX indicates a trending market (above the threshold, default 24). If DI+ exceeds DI-, the score tilts bullish; if DI- dominates, it tilts bearish. In ranging markets, this component essentially zeros out, preventing false trend signals during choppy conditions.
Momentum Component
This is the most complex component, combining six sub-indicators. RSI is normalized around the 50 level. MACD histogram is standardized against its own volatility. Stochastic and CCI contribute bonus points at extreme levels (oversold/overbought). Rate of Change adds directional bias for strong moves. Finally, divergence detection looks for situations where price makes new highs/lows but RSI doesn't confirm — a classic reversal warning.
Volume Component
The indicator tracks On-Balance Volume (a cumulative measure of buying vs selling pressure) and compares it to its moving average. When OBV is rising above its average during an uptrend, that's confirmation. The volume rate of change also contributes — surging volume adds conviction to signals.
Price Structure Component
This measures where the current price sits within the dynamic bands. If price is in the bottom 20% of the band range, that's bullish (potential bounce zone). If it's in the top 20%, that's bearish (potential resistance). The component also factors in volatility regime — low volatility environments get a slight bullish bias (breakouts tend to follow compression), while high volatility gets a bearish bias (exhaustion risk).
Price Action Component
A simple measure of recent candle character. If 70%+ of the last 10 candles were bullish (closed higher than they opened), the score tilts positive. Heavy bearish candle dominance tilts it negative.
Signal Generation
Buy and sell signals are generated when price touches or breaches the dynamic bands, but only if several filters pass:
ADX Filter (optional): Requires the market to be trending, avoiding signals in choppy conditions
RSI Filter (optional): For buys, RSI must be oversold (below 30); for sells, RSI must be overbought (above 70)
Cooldown Period: Prevents signal spam by requiring a minimum number of bars between signals (default 6)
The indicator also tracks "zones" based purely on the GXS Score. When the score exceeds the buy threshold (default 0.12) during a trending market, a green cloud appears between the bands. When it drops below the sell threshold (default -0.12), a red cloud appears. These zones indicate favorable conditions even without a specific band-touch signal.
Trend Strength Meter
Separate from the GXS Score, the indicator calculates a "Trend Strength" percentage (0-100%) displayed in the info table. This combines ADX strength (40% weight), slope consistency (30% — how steady is the price direction), volume alignment (20% — is volume confirming the move), and momentum agreement (10% — are multiple indicators pointing the same direction). This helps traders gauge how reliable the current trend is.
Visual Elements
The indicator provides multiple visual layers that can be toggled on or off:
Dynamic bands (blue midline, red upper, green lower)
Signal clouds between the bands when in buy/sell zones
Background shading indicating bullish (green) or bearish (red) regime
Triangle arrows at signal points with configurable sizes
Price labels showing exact entry prices at signals
ADX strength dots at the bottom (white = weak, orange = moderate, blue = strong)
Info table with current readings for all key metrics
Debug panel (optional) showing individual component scores
Summary
This is essentially a "committee voting" system where multiple technical indicators each cast votes on market direction, and those votes are weighted and summed into a single score. The dynamic bands provide context for where price is relative to recent volatility, while the various filters help avoid low-quality signals. It's designed for traders who want a synthesized view of market conditions rather than watching a dozen separate indicators.
Grok/Claude MoneyLine Fusion * Grok/Claude X SeriesMoneyLine Fusion Indicator
This is a technical analysis indicator designed to help traders identify potential buy and sell opportunities in the market. It combines several well-known trading concepts into one unified tool, displaying visual bands on the chart and generating signals when multiple conditions align.
The Core Concept: The "Money Line"
At the heart of this indicator is something called the Money Line, which is essentially a smoothed trend line calculated using linear regression over the last 16 bars (by default). Think of it as a "best fit" line through recent prices that shows you the general direction the market is heading. The indicator colors this line green when the trend is rising, red when it's falling, and yellow when it's essentially flat or undecided.
The Dynamic Bands
Surrounding the Money Line are upper and lower bands that expand and contract based on market volatility. These bands use the ATR (Average True Range) to measure how much the price typically moves. Here's where it gets clever: the bands also factor in the ADX indicator (which measures trend strength). When the market is trending strongly, the bands widen more aggressively to account for bigger price swings. When the trend is weak, they stay tighter. This adaptive behavior helps the indicator adjust to different market conditions automatically.
The area between the bands is shaded in the trend color (green, red, or yellow) to give you a quick visual of the current market bias.
How Buy and Sell Signals Are Generated
The indicator doesn't just look at one thing — it requires multiple conditions to align before triggering a signal. This is designed to filter out false signals and only alert you when several factors agree.
Signal TypeRequired ConditionsBUYFisher Transform is below -2.0 (oversold), Aroon Up is low (below 20), Aroon Down is high (above 80), and optionally a positive TA ScoreSELLFisher Transform is above +2.0 (overbought), Aroon Up is high (above 80), Aroon Down is low (below 20), and optionally a negative TA Score
Fisher Transform is a mathematical technique that converts price data into a bell curve distribution, making extreme readings (overbought/oversold) easier to spot.
Aroon measures how long it's been since the highest high or lowest low. When Aroon Down is high and Aroon Up is low, it suggests recent price action has been dominated by lows — a potential reversal setup for a buy.
The indicator also prevents signal spam by requiring at least 5 bars between signals of the same type.
The TA Scoring System
Behind the scenes, the indicator calculates a composite score based on four different technical indicators:
MACD — Momentum and trend direction (scores -2 to +2)
DMI — Directional movement comparing buyers vs sellers (scores -2 to +2)
MFI — Money Flow Index, similar to RSI but incorporates volume (scores -2 to +2)
RSI — Classic overbought/oversold measure (scores -1 to +1)
These scores are added together, and the result is displayed in the info panel with labels like "very bullish," "slightly bearish," or "neutral." You can optionally require a minimum TA score before signals trigger, adding another layer of confirmation.
Visual Display Elements
The indicator offers several optional display features:
Shaded bands between upper and lower lines
Buy/Sell labels directly on the chart showing the entry price
Bright blue candle highlighting when a signal fires
Info panel in the corner showing the Money Line value, volatility percentile, RSI, and TA score
Score dots at the bottom of the chart (green for bullish, red for bearish, yellow for neutral)
Debug table for troubleshooting that shows real-time values of Fisher, Aroon, and signal conditions
In Summary
This indicator is essentially a multi-factor confirmation system. Rather than relying on a single indicator that might give many false signals, it waits until the trend direction (Money Line), momentum extremes (Fisher Transform), price cycle position (Aroon), and overall technical picture (TA Score) all point in the same direction. The adaptive bands help visualize where price "should" be trading given current volatility and trend strength. It's designed for traders who prefer fewer but higher-conviction signals.
Grok/Claude AI Regime Engine • Grok/Claude X SeriesGrok/Claude AI Regime Engine
This is a TradingView indicator designed to identify market regimes (bullish, bearish, or neutral) and generate buy/sell signals based on multiple technical factors working together.
Core Concept
At its heart, this indicator tries to answer a simple question: "What kind of market are we in right now, and when should I consider buying or selling?"
It does this by blending several well-known technical analysis tools into a unified system. Think of it as a dashboard that synthesizes multiple indicators into clear, actionable information.
How It Determines Market Regime
The indicator creates what it calls a "Money Line" by combining two exponential moving averages (EMAs) — a fast one (default 8 periods) and a slow one (default 24 periods). These are weighted together, with the fast EMA getting 60% influence by default. This blended line serves as the primary trend reference.
Bullish regime is declared when the short EMA crosses above the long EMA, provided the RSI isn't already in overbought territory. Bearish regime kicks in when the opposite happens — short EMA crosses below long, as long as RSI isn't oversold. Neutral regime occurs when the indicator detects sideways, choppy conditions.
The neutral detection is particularly interesting. It uses two optional methods: one looks at how flat the Money Line's slope is (compared to recent volatility via ATR), and the other checks how close together the two EMAs are as a percentage of price. When the market is grinding sideways, these methods help the indicator avoid falsely calling a trend.
Signal Generation Logic
Buy and sell signals are generated using Donchian Channel breakouts as the trigger mechanism. The Donchian Channel tracks the highest high and lowest low over a lookback period (default 20 bars), using the previous bar's values to avoid repainting issues.
A buy signal fires when price touches or breaks below the lower Donchian band, suggesting a potential reversal from oversold conditions. A sell signal fires when price reaches the upper band. However, these raw breakout signals pass through several filters before being displayed:
FilterPurposeADX thresholdOnly signals when the market has sufficient trend strength (default: ADX > 25)RSI filterBuy signals require RSI to be oversold; sell signals require overbought RSICooldown periodPrevents signal spam by requiring a minimum number of bars between signalsClose confirmationOptional setting to require a candle close beyond the band, not just a wick
Additional Metrics Displayed
The indicator calculates and displays several supplementary metrics in an information panel. ADX (Average Directional Index) measures trend strength — values below 15 suggest a weak, ranging market, while above 25 indicates a strong trend. The colored dots at the bottom of the chart reflect this: white for weak, orange for moderate, blue for strong.
BBWP (Bollinger Band Width Percentile) measures current volatility relative to historical volatility over roughly a year of data. High readings suggest volatility expansion; low readings suggest compression, which often precedes significant moves.
Alerts and Notifications
The indicator generates alerts in two scenarios: when the market regime changes (bullish to bearish, etc.) and when buy/sell signals trigger. Alert messages include the ticker symbol, timeframe, current price, RSI, ADX, and other relevant context so you can quickly assess the situation without opening the chart.
Visual Customization
Users can toggle various display elements on or off, including the EMA lines, Donchian bands, shaded regime zones between the bands, and price labels at signal points. The shading between the upper and lower bands changes color based on the current regime — green for bullish, magenta for bearish, and blue for neutral — providing an at-a-glance view of market conditions over time.
Summary
This is essentially a trend-following system with mean-reversion entry signals, filtered by momentum and trend strength indicators. It's designed to help traders identify favorable market conditions and time entries while avoiding signals during choppy, directionless periods. The multiple confirmation layers aim to reduce false signals, though like any technical system, it will still produce losing trades in certain market conditions.
Modello Espansione 1 – Monday Range + ClustersONLY M1 to M30. Don't work on H1 or more. Don't know how i'm watching 😳
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.






















