OPEN-SOURCE SCRIPT
Target Radar

Target Radar filters entries with a confidence gate, then maps the next objective using pivot-cluster Support/Resistance pools.
It’s built for traders who want fewer, cleaner signals and a clear target level instead of guessing exits.
What you get on the chart
🔵 Support pools (pivot-low clusters)
🟠 Resistance pools (pivot-high clusters)
🟢 Long signal (▲) when the setup passes filters + score threshold
🔴 Short signal (▼) when the setup passes filters + score threshold
Projection band (expected move with uncertainty half-width)
Forward box (next-horizon projected zone)
Target line + label (best nearby pool in the forecast direction + score)
How to read the Support/Resistance pools
Target Radar doesn’t draw random lines. It builds price pools from confirmed pivots and clusters them:
A pivot forms after pivotLen bars confirm (that’s the confirmation delay by design).
Levels within ATR * mergeATR merge into one pool.
Strength = number of merged touches.
Thickness/opacity = strength (stronger pools stand out).
Legend
🔵 Blue = Support pools
🟠 Orange = Resistance pools
Thick + less transparent = stronger level
These colors are reserved for structure, not signal direction.
What makes this different
Most tools do signals or support/resistance or volatility bands.
Target Radar combines them into a single workflow:
Directional forecast (up/down pressure)
Uncertainty gate (trade conditions vs noise)
Structure-based target (where price is most likely to react next)
So you’re not just taking entries—you’re trading entry + environment + destination.
The math behind it (simple + transparent)
1) Forecast Engine (direction)
Each component is normalized with a z-score over lookback:
trendZ = zscore((EMA10 − EMA20) / EMA20)
momZ = zscore(RSI14 − 50)
volZ = zscore(ATR14 / close) (penalty)
vprZ = zscore(log(SMA(upVol)/SMA(downVol)))
Weighted blend:
rawScore = wTrend*trendZ + wMom*momZ − wVol*volZ + wVpr*vprZ
Bounded and scaled:
bound(x) = x / (1 + |x|)
forecastRet = bound(rawScore) * (ATR/close) * retScale
2) Uncertainty band (confidence gate)
The script measures recent forecast error:
realRet = ln(close / close[h])
residual = |realRet − forecastRet[h]|
Half-width uses rolling error stats:
halfWidth = max(mean(residual) + zMult*stdev(residual), minHW)
Interpretation:
Small halfWidth = stable environment
Large halfWidth = unstable environment (signals blocked if enabled)
3) Target scoring (structure + forecast alignment)
The target is the nearest pool in the forecast direction, then scored by:
distance fit vs the uncertainty band
whether the level sits inside the projection zone
pool strength bonus
Best practices (how traders actually use it)
New traders
Start with Breakout or EMA Cross
Keep filters ON:
Require Forecast Alignment ✅
Block High Uncertainty ✅
Match Regime to Mode ✅
Use the dashed target as the first objective.
Experienced traders
Use Target Radar as a validation + targeting layer:
Your setup triggers → Target Radar decides if conditions are tradable and where the next level sits.
Raise minScore to reduce signals and tighten quality.
Use the pool strength (thicker/clearer lines) as a structure filter.
Mode ↔ Regime pairing
TREND regime: Breakout, EMA Cross
RANGE regime: Mean Reversion
CHAOS regime: filtered out when regime gate is enabled
What it is / what it isn’t
It is: a confidence-gated signal filter + structure target mapper.
It isn’t: a full strategy/backtest engine—use Strategy Tester if you want full trade simulation.
Alerts
Long signal
Short signal
High uncertainty
It’s built for traders who want fewer, cleaner signals and a clear target level instead of guessing exits.
What you get on the chart
🔵 Support pools (pivot-low clusters)
🟠 Resistance pools (pivot-high clusters)
🟢 Long signal (▲) when the setup passes filters + score threshold
🔴 Short signal (▼) when the setup passes filters + score threshold
Projection band (expected move with uncertainty half-width)
Forward box (next-horizon projected zone)
Target line + label (best nearby pool in the forecast direction + score)
How to read the Support/Resistance pools
Target Radar doesn’t draw random lines. It builds price pools from confirmed pivots and clusters them:
A pivot forms after pivotLen bars confirm (that’s the confirmation delay by design).
Levels within ATR * mergeATR merge into one pool.
Strength = number of merged touches.
Thickness/opacity = strength (stronger pools stand out).
Legend
🔵 Blue = Support pools
🟠 Orange = Resistance pools
Thick + less transparent = stronger level
These colors are reserved for structure, not signal direction.
What makes this different
Most tools do signals or support/resistance or volatility bands.
Target Radar combines them into a single workflow:
Directional forecast (up/down pressure)
Uncertainty gate (trade conditions vs noise)
Structure-based target (where price is most likely to react next)
So you’re not just taking entries—you’re trading entry + environment + destination.
The math behind it (simple + transparent)
1) Forecast Engine (direction)
Each component is normalized with a z-score over lookback:
trendZ = zscore((EMA10 − EMA20) / EMA20)
momZ = zscore(RSI14 − 50)
volZ = zscore(ATR14 / close) (penalty)
vprZ = zscore(log(SMA(upVol)/SMA(downVol)))
Weighted blend:
rawScore = wTrend*trendZ + wMom*momZ − wVol*volZ + wVpr*vprZ
Bounded and scaled:
bound(x) = x / (1 + |x|)
forecastRet = bound(rawScore) * (ATR/close) * retScale
2) Uncertainty band (confidence gate)
The script measures recent forecast error:
realRet = ln(close / close[h])
residual = |realRet − forecastRet[h]|
Half-width uses rolling error stats:
halfWidth = max(mean(residual) + zMult*stdev(residual), minHW)
Interpretation:
Small halfWidth = stable environment
Large halfWidth = unstable environment (signals blocked if enabled)
3) Target scoring (structure + forecast alignment)
The target is the nearest pool in the forecast direction, then scored by:
distance fit vs the uncertainty band
whether the level sits inside the projection zone
pool strength bonus
Best practices (how traders actually use it)
New traders
Start with Breakout or EMA Cross
Keep filters ON:
Require Forecast Alignment ✅
Block High Uncertainty ✅
Match Regime to Mode ✅
Use the dashed target as the first objective.
Experienced traders
Use Target Radar as a validation + targeting layer:
Your setup triggers → Target Radar decides if conditions are tradable and where the next level sits.
Raise minScore to reduce signals and tighten quality.
Use the pool strength (thicker/clearer lines) as a structure filter.
Mode ↔ Regime pairing
TREND regime: Breakout, EMA Cross
RANGE regime: Mean Reversion
CHAOS regime: filtered out when regime gate is enabled
What it is / what it isn’t
It is: a confidence-gated signal filter + structure target mapper.
It isn’t: a full strategy/backtest engine—use Strategy Tester if you want full trade simulation.
Alerts
Long signal
Short signal
High uncertainty
Mã nguồn mở
Theo đúng tinh thần TradingView, tác giả của tập lệnh này đã công bố nó dưới dạng mã nguồn mở, để các nhà giao dịch có thể xem xét và xác minh chức năng. Chúc mừng tác giả! Mặc dù bạn có thể sử dụng miễn phí, hãy nhớ rằng việc công bố lại mã phải tuân theo Nội quy.
Thông báo miễn trừ trách nhiệm
Thông tin và các ấn phẩm này không nhằm mục đích, và không cấu thành, lời khuyên hoặc khuyến nghị về tài chính, đầu tư, giao dịch hay các loại khác do TradingView cung cấp hoặc xác nhận. Đọc thêm tại Điều khoản Sử dụng.
Mã nguồn mở
Theo đúng tinh thần TradingView, tác giả của tập lệnh này đã công bố nó dưới dạng mã nguồn mở, để các nhà giao dịch có thể xem xét và xác minh chức năng. Chúc mừng tác giả! Mặc dù bạn có thể sử dụng miễn phí, hãy nhớ rằng việc công bố lại mã phải tuân theo Nội quy.
Thông báo miễn trừ trách nhiệm
Thông tin và các ấn phẩm này không nhằm mục đích, và không cấu thành, lời khuyên hoặc khuyến nghị về tài chính, đầu tư, giao dịch hay các loại khác do TradingView cung cấp hoặc xác nhận. Đọc thêm tại Điều khoản Sử dụng.