Native Timeframe Moving Average📈 Native Timeframe Moving Average
Overview
Native Timeframe Moving Average allows you to plot a moving average that is always calculated from its own selected timeframe, regardless of the chart timeframe you're viewing.
Instead of recalculating the MA using the current chart bars, this indicator performs the entire moving-average calculation inside the selected source timeframe before mapping the result back onto your chart. This ensures the moving average always remains true to its native timeframe.
For example, selecting a 200 SMA on the Daily timeframe will always display the genuine 200-day SMA whether you're viewing a 15-minute, 1-hour, 4-hour, Daily, Weekly, or any other timeframe.
✨ Features
✔ Native timeframe moving averages
✔ SMA, EMA, WMA, RMA & VWMA
✔ Any TradingView timeframe
✔ Developing and Confirmed calculation modes
✔ Connected and Native display modes
✔ Standard MA Offset
✔ Uses TradingView Style settings for colour and line width
✔ No repainting or future leakage
✔ Lightweight and fast
⚙️ Value Modes
📡 Developing (Default)
Includes the active source-timeframe candle in the calculation.
This behaves like traders generally expect when viewing a higher-timeframe moving average on a lower-timeframe chart, allowing the MA to update as the source candle develops.
Perfect for discretionary chart analysis.
🔒 Confirmed
Uses only completed source-timeframe candles.
The plotted value remains unchanged until the next source-timeframe candle closes.
Ideal for:
• Strategies
• Alerts
• Stable signal generation
• Any workflow requiring confirmed higher-timeframe values
📉 Line Modes
🔗 Connected (Default)
Connects each source-timeframe moving-average value using straight lines.
This provides a cleaner, smoother appearance that most traders prefer when analysing trends across multiple timeframes.
Note: The connecting segments are visual interpolation between confirmed source-timeframe values. They improve readability but should not be interpreted as the exact value that existed on every individual chart bar.
🪜 Native
Displays the actual sampled moving-average value available on every chart bar.
When the selected timeframe is higher than the chart timeframe, the line naturally appears as a staircase because the source-timeframe value only updates when that timeframe produces a new value.
This mode is recommended whenever the output is being used for:
• Strategy logic
• Alerts
• Numerical comparisons
• Other indicators
💡 Typical Uses
• Overlay a Daily 200 SMA while trading the 15-minute chart
• View Weekly trend direction without changing chart timeframe
• Display Monthly moving averages on swing-trading charts
• Compare multiple native timeframe moving averages by adding multiple indicator instances
• Keep important higher-timeframe trend references visible while executing on lower timeframes
🎯 Why use this instead of a standard Moving Average?
A standard Moving Average is always calculated from the timeframe of the chart you're viewing.
This indicator keeps the calculation anchored to the timeframe you choose.
That means a 200 Daily SMA always remains a 200 Daily SMA, regardless of whether you're looking at a 5-minute chart or a Weekly chart. It never silently becomes a 200-bar moving average of the current chart timeframe.
🚀 Final Notes
This indicator was designed to provide a clean, reliable and flexible way to work with native timeframe moving averages across any chart.
Whether you're monitoring long-term trend structure while trading intraday or building multi-timeframe confluence into your analysis, Native Timeframe Moving Average keeps your moving averages true to their original timeframe while giving you the flexibility to choose between the smooth appearance of Connected mode and the mathematically exact representation of Native mode. Индикатор

SMC Reality Check [Concept Hit-Rate Audit]SMC Reality Check
WHAT THIS PUBLICATION ADDS
Hundreds of scripts DRAW Smart Money Concepts. This one MEASURES them.
Every classic SMC event it detects - Order Block retest, Breaker retest,
Fair Value Gap entry, liquidity sweep reclaim, Equal High/Low raid,
structure-break follow-through - is tracked forward, bar by bar, and
resolved as a HIT or a MISS against one uniform, pre-declared rule. The
result is a report card computed on YOUR symbol and YOUR timeframe:
sample size, hit-rate, a Wilson 95% confidence interval, median MFE and
a verdict per concept and side: EDGE, COIN-FLIP or FADE. To my
knowledge, no existing public script forward-tests the SMC toolkit and
reports per-concept outcome statistics like this.
This is deliberately NOT a signal mashup. The six detectors are not
combined to generate entries; each one exists so that its outcomes can
be counted by the same measurement engine. That engine is the reason
the components live in one script: one event definition, one target
rule, one invalidation rule, applied identically to every concept, so
their numbers are comparable side by side. The indicator does not ask
you to believe in SMC. It audits it.
HOW EVENTS ARE DETECTED (all on confirmed bars - nothing repaints)
- Market structure: swing pivots (configurable length) feed a state
machine. A close beyond the last unbroken swing is a structure break
(BOS in trend direction, CHoCH against it) - that bar itself is the
"follow-through" event, expecting continuation.
- Order Blocks: on a structure break, the last opposite-colour candle
before the break becomes the OB (full range or body only). The FIRST
return of price into that zone is the audited retest event.
- Breaker Blocks: an OB broken by the invalidation rule flips polarity
and becomes a Breaker; its first retest is audited the same way.
- Fair Value Gaps: the classic 3-candle imbalance, filtered by a
minimum ATR size. The first return of price into the gap is the event.
- Liquidity sweeps: a wick through a confirmed, unbroken swing high or
low while the bar closes back inside - a stop-hunt. The reclaim close
is the event, expecting a move away from the raided level.
- Equal Highs/Lows: two consecutive swings within an ATR tolerance form
a resting liquidity pool; a wick through it with a close back inside
is the raid event.
HOW OUTCOMES ARE MEASURED
- Every event gets one uniform definition: entry = the event bar close,
target = entry +/- N ATR (default 1.5, measured at event time),
invalidation = the level that falsifies the concept (OB/FVG far edge,
the sweep extreme, the broken structure level; by close or by wick,
selectable).
- HIT: the target is reached before invalidation. MISS: invalidation
first. Conservative by construction: if both happen on the same bar,
it counts as a MISS; if the resolve window (default 40 bars) expires
without a target, it counts as a MISS; if the event bar itself closes
beyond the invalidation, it is an instant MISS.
- Zones are audited on their FIRST test only, so every event is
independent - no double counting. Untested zones that expire are
excluded: statistics describe only what price actually revisited.
- The report card shows, per concept and side: n (resolved events),
hit-rate, the Wilson 95% confidence interval (which is what the
verdict is built from), the median maximum favourable excursion in
ATR, and the verdict: EDGE when the interval's lower bound is above
50%, FADE when the upper bound is below 50%, COIN-FLIP in between,
and no verdict below the minimum sample (default 20).
- Optional Edge Ranking sorts the table by the interval's lower bound,
so the statistically strongest concepts on this chart rise to the top.
A separate filter can restrict markers and alerts to concepts whose
current verdict is EDGE - a display filter only; the statistics always
track every concept.
HOW TO USE
- Read the table before trusting any drawing on the chart - that is the
point of the script. The same concept can be EDGE on one symbol and
FADE on another; the table tells you which is which, here.
- Give it history: statistics need bars. Load more history or use a
lower timeframe if n is small; below the minimum sample the script
deliberately refuses to issue a verdict.
- Treat EDGE as "this event, on this chart, has historically reached
+1.5 ATR before its invalidation more often than not" - context for
your own decisions, not an automatic entry. FADE is a descriptive
label for a historically failing definition, not advice to trade
against it.
- Alerts: create one alert with "Any alert() function call" - each
message names the concept, the side and its measured hit-rate at that
moment. Six classic alertconditions are also available.
SETTINGS GUIDE
- Swing length 5-10 for intraday auditing, 20+ for swing charts.
- Hit target 1.5 ATR and window 40 bars suit intraday; swing traders
may prefer 2-3 ATR with a longer window. Changing the rule changes
the question you are asking - the footer always restates the active
rule so every screenshot carries its own methodology.
- Invalidation "Close" is the forgiving audit, "Wick" the strict one.
LIMITATIONS - READ BEFORE USING
- This is an event study with one fixed rule, not a strategy backtest:
no fees, no slippage, no position sizing, and hit-rate is not P&L. A
hit-rate above 50% against a 1.5 ATR target does not by itself prove
positive expectancy, because the distance to invalidation varies per
event; the 50% line is a neutral reference for the verdict labels,
and the median MFE column adds the magnitude context.
- Pivots confirm after the swing length, so events print with that
structural lag on closed bars only. Reactive by design - the cost of
not repainting.
- Detector definitions are one reasonable, documented interpretation of
SMC concepts; other definitions would produce other numbers.
- The statistics are descriptive for the loaded chart history. Past
behaviour does not guarantee future results. This is a
decision-support tool, not a signal service and not financial advice.
Open-source under MPL 2.0 - study, fork and improve it freely. Индикатор

Индикатор

Индикатор

Stock Sniper V2HOW TO USE
This indicator combines multiple tools into one TradingView system:
✅ UT Bot main buy and sell signals
✅ Optional Sniper Entry signals
✅ Optional Fair Value Gaps
✅ ATR-based stop-loss and profit targets
✅ Optional EMA ribbon, VWAP, dashboard, and candle colors
MAIN SIGNAL SYSTEM
The UT Bot is the main signal system.
🟢 UT BUY = possible bullish entry
🔴 UT SELL = possible bearish entry
The Sniper Entry module is optional and can be used as extra confirmation.
🟢 SNIPER BUY = EMA 9 crossing above EMA 21
🔴 SNIPER SELL = EMA 9 crossing below EMA 21
RSI DOTS
🔴 Red dot below the candle = RSI oversold
🟢 Green dot above the candle = RSI overbought
Important: The RSI dot colors are intentionally reversed from traditional colors.
A red oversold dot does not automatically mean buy.
A green overbought dot does not automatically mean sell.
Use the dots as a warning that price may be stretched.
FAST SCALP SETTINGS
Recommended for 1-minute, 3-minute, or 5-minute charts.
UT Bot Settings:
Key Value: 0.7 to 1.0
ATR Period: 5 to 7
Heikin Ashi Source: Optional
UT Bar Colors: On
ATR Trailing Stop: On
Sniper Settings:
Fast EMA: 9
Slow EMA: 21
ATR Length: 7
Stop-Loss ATR Multiplier: 1.0 to 1.2
Score Confirmation: Off for more signals
Minimum Score: 57%
Optional Visuals:
EMA Ribbon: On
VWAP: On
Entry, SL, and TP Levels: On
Dashboard: Off for a cleaner chart
Fair Value Gaps: Off or only use on the 5-minute chart
BALANCED INTRADAY SETTINGS
Recommended for 5-minute or 15-minute charts.
UT Bot Settings:
Key Value: 1.0
ATR Period: 10
Heikin Ashi Source: Off
UT Bar Colors: On
ATR Trailing Stop: On
Sniper Settings:
Fast EMA: 9
Slow EMA: 21
ATR Length: 14
Stop-Loss ATR Multiplier: 1.5
Score Confirmation: On
Minimum Score: 57% to 71%
Optional Visuals:
EMA Ribbon: On
VWAP: On
Dashboard: On
Fair Value Gaps: On
FVG Extend: 20 bars
CONSERVATIVE SETTINGS
Recommended for fewer but stronger signals.
UT Bot Settings:
Key Value: 1.5 to 2.0
ATR Period: 14
Heikin Ashi Source: On
Sniper Settings:
Fast EMA: 9
Slow EMA: 21
ATR Length: 14
Stop-Loss ATR Multiplier: 1.5 to 2.0
Score Confirmation: On
Minimum Score: 71%
Fair Value Gaps:
Enabled
Threshold: 0.1% to 0.5%
Mitigation Levels: On
Unmitigated Levels: 3 to 5
POSSIBLE LONG SETUP
UT BUY appears.
Price is above VWAP.
EMA 9 is above EMA 21.
Sniper BUY appears or the bullish score is above 57%.
A red RSI oversold dot recently appeared.
Enter after candle confirmation or a pullback.
Use the ATR stop-loss level.
Take partial profit at TP1, TP2, and TP3.
POSSIBLE SHORT SETUP
UT SELL appears.
Price is below VWAP.
EMA 9 is below EMA 21.
Sniper SELL appears or the bearish score is above 57%.
A green RSI overbought dot recently appeared.
Enter after candle confirmation or a retest.
Use the ATR stop-loss level.
Take partial profit at TP1, TP2, and TP3.
FVG CONFIRMATION
Bullish Fair Value Gap:
Use as a possible support or pullback area during an uptrend.
Bearish Fair Value Gap:
Use as a possible resistance or rejection area during a downtrend.
Do not enter only because an FVG appears. Combine it with UT Bot direction, VWAP, EMA trend, RSI conditions, and price action.
ATR STOP-LOSS GUIDE
Fast scalp:
1.0 to 1.2 ATR
Normal intraday trade:
1.5 ATR
More volatile market:
2.0 ATR
A tighter ATR setting creates a closer stop-loss but may cause more stop-outs.
A larger ATR setting gives the trade more room but increases the amount at risk.
BEST CONFIRMATION COMBINATION
Long:
UT BUY + Above VWAP + Bullish EMA trend + Strong bull score
Short:
UT SELL + Below VWAP + Bearish EMA trend + Strong bear score
Avoid entering when UT Bot and Sniper signals disagree.
RISK MANAGEMENT
Never risk your entire account on one trade.
Consider risking only 1% to 2% of your account per trade.
Take partial profit instead of waiting for every target.
Move the stop-loss only according to your trading plan.
This indicator is a confirmation system, not a guaranteed buy-and-sell system.
Always test the settings on your market, symbol, and timeframe before using real money.
For educational purposes only. Not financial advice. Индикатор

Stock SniperHOW TO USE
This indicator combines multiple tools into one TradingView system:
✅ UT Bot main buy and sell signals
✅ Optional Sniper Entry signals
✅ Optional Fair Value Gaps
✅ ATR-based stop-loss and profit targets
✅ Optional EMA ribbon, VWAP, dashboard, and candle colors
MAIN SIGNAL SYSTEM
The UT Bot is the main signal system.
🟢 UT BUY = possible bullish entry
🔴 UT SELL = possible bearish entry
The Sniper Entry module is optional and can be used as extra confirmation.
🟢 SNIPER BUY = EMA 9 crossing above EMA 21
🔴 SNIPER SELL = EMA 9 crossing below EMA 21
RSI DOTS
🔴 Red dot below the candle = RSI oversold
🟢 Green dot above the candle = RSI overbought
Important: The RSI dot colors are intentionally reversed from traditional colors.
A red oversold dot does not automatically mean buy.
A green overbought dot does not automatically mean sell.
Use the dots as a warning that price may be stretched.
FAST SCALP SETTINGS
Recommended for 1-minute, 3-minute, or 5-minute charts.
UT Bot Settings:
Key Value: 0.7 to 1.0
ATR Period: 5 to 7
Heikin Ashi Source: Optional
UT Bar Colors: On
ATR Trailing Stop: On
Sniper Settings:
Fast EMA: 9
Slow EMA: 21
ATR Length: 7
Stop-Loss ATR Multiplier: 1.0 to 1.2
Score Confirmation: Off for more signals
Minimum Score: 57%
Optional Visuals:
EMA Ribbon: On
VWAP: On
Entry, SL, and TP Levels: On
Dashboard: Off for a cleaner chart
Fair Value Gaps: Off or only use on the 5-minute chart
BALANCED INTRADAY SETTINGS
Recommended for 5-minute or 15-minute charts.
UT Bot Settings:
Key Value: 1.0
ATR Period: 10
Heikin Ashi Source: Off
UT Bar Colors: On
ATR Trailing Stop: On
Sniper Settings:
Fast EMA: 9
Slow EMA: 21
ATR Length: 14
Stop-Loss ATR Multiplier: 1.5
Score Confirmation: On
Minimum Score: 57% to 71%
Optional Visuals:
EMA Ribbon: On
VWAP: On
Dashboard: On
Fair Value Gaps: On
FVG Extend: 20 bars
CONSERVATIVE SETTINGS
Recommended for fewer but stronger signals.
UT Bot Settings:
Key Value: 1.5 to 2.0
ATR Period: 14
Heikin Ashi Source: On
Sniper Settings:
Fast EMA: 9
Slow EMA: 21
ATR Length: 14
Stop-Loss ATR Multiplier: 1.5 to 2.0
Score Confirmation: On
Minimum Score: 71%
Fair Value Gaps:
Enabled
Threshold: 0.1% to 0.5%
Mitigation Levels: On
Unmitigated Levels: 3 to 5
POSSIBLE LONG SETUP
UT BUY appears.
Price is above VWAP.
EMA 9 is above EMA 21.
Sniper BUY appears or the bullish score is above 57%.
A red RSI oversold dot recently appeared.
Enter after candle confirmation or a pullback.
Use the ATR stop-loss level.
Take partial profit at TP1, TP2, and TP3.
POSSIBLE SHORT SETUP
UT SELL appears.
Price is below VWAP.
EMA 9 is below EMA 21.
Sniper SELL appears or the bearish score is above 57%.
A green RSI overbought dot recently appeared.
Enter after candle confirmation or a retest.
Use the ATR stop-loss level.
Take partial profit at TP1, TP2, and TP3.
FVG CONFIRMATION
Bullish Fair Value Gap:
Use as a possible support or pullback area during an uptrend.
Bearish Fair Value Gap:
Use as a possible resistance or rejection area during a downtrend.
Do not enter only because an FVG appears. Combine it with UT Bot direction, VWAP, EMA trend, RSI conditions, and price action.
ATR STOP-LOSS GUIDE
Fast scalp:
1.0 to 1.2 ATR
Normal intraday trade:
1.5 ATR
More volatile market:
2.0 ATR
A tighter ATR setting creates a closer stop-loss but may cause more stop-outs.
A larger ATR setting gives the trade more room but increases the amount at risk.
BEST CONFIRMATION COMBINATION
Long:
UT BUY + Above VWAP + Bullish EMA trend + Strong bull score
Short:
UT SELL + Below VWAP + Bearish EMA trend + Strong bear score
Avoid entering when UT Bot and Sniper signals disagree.
RISK MANAGEMENT
Never risk your entire account on one trade.
Consider risking only 1% to 2% of your account per trade.
Take partial profit instead of waiting for every target.
Move the stop-loss only according to your trading plan.
This indicator is a confirmation system, not a guaranteed buy-and-sell system.
Always test the settings on your market, symbol, and timeframe before using real money.
For educational purposes only. Not financial advice. Индикатор

Индикатор

TSI in Dynamic Zones with Divergence v2.2HOW TO READ IT
A momentum companion oscillator built around the True Strength Index (TSI), with adaptive overbought/oversold zones, automatic divergence detection, and a volatility-context dashboard. Designed to ride underneath a price-chart framework (MA stack / squeeze / trigger systems) as the momentum second opinion: the price chart tells you where, this tells you how much force is behind it. Adapted from the open-source GPL-3.0 "TSI in Dynamic Zones with Divergence" with Pine v6 fixes and display work; published under the same license.
THE 30-SECOND VERSION
Cyan line = TSI (momentum). Orange line = its signal. Cyan above orange = bulls in control; below = bears. The shaded orange band on top and aqua band on the bottom are NOT fixed levels — they're dynamic zones that adapt to the last 70 bars, so "overbought" on a quiet day sits lower than on a wild one. Momentum reaching into a zone is stretched; turning back out of one is the actionable part. Green/red labels on the oscillator are divergences: price and momentum disagreeing, which is an early-warning sign, not an entry by itself.
WHAT EACH ELEMENT MEANS
TSI + signal cross — The basic momentum read. Crosses above zero carry more weight than crosses below it for longs, and vice versa.
Dynamic zones (orange top / aqua bottom) — Percentile-based adaptive OB/OS. Entering a zone = stretched. Exiting back through it = momentum actually turning.
Divergence labels — Green (bullish): price made a lower low but TSI made a higher low — selling force is fading. Red (bearish): price higher high, TSI lower high — buying force is fading. Hidden divergences (aqua/orange, off by default) are continuation signals rather than reversal signals.
White triangles — TSI pivot highs/lows at stretched readings; minor structure inside the oscillator.
Orange / aqua cross markers (top and bottom rows) — A sequence of signal-line cross-bounces that's deteriorating (orange, possible top) or improving (aqua, possible bottom). "Maybe" signals — context, not triggers.
Column colors behind the TSI — Kumo-based implied volatility heat: white/silver/aqua = quiet, yellow/orange = elevated, red/dark red = extreme. Divergences and zone touches mean more when volatility is waking up.
DASHBOARD
TSI — Current value and regime (BULL/BEAR, above/below zero).
Zones — Today's adaptive buy/sell thresholds, so you know what counts as stretched right now.
BB % — Where price sits inside its Bollinger Bands (0 = lower band, 1 = upper).
BBW % — Bollinger Band Width percentile. Under 7 = SQUEEZE (compression — pair this with your price chart's squeeze state). Over 70 = EXPANDED.
MFI — Money Flow Index: volume-weighted momentum, OB above 80 / OS below 20.
Kumo IV — The volatility regime in words, MINIMAL through EXTREME.
SMALL SCREENS — TINY AND COMPACT MODES
Settings → Inputs → Dashboard:
• Dashboard text size — Tiny / Small / Normal. Tiny roughly halves the footprint; recommended on phones and small laptops.
• Dashboard mode — Full shows all 6 rows. Compact merges everything into 3 short rows: TSI value + regime, the two zone thresholds, and a one-line volatility readout (BBWP · IV · MFI). Phone recipe: Compact + Tiny + a corner position.
• Dashboard position — six anchor choices to keep it out of the oscillator's way.
KEY SETTINGS
TSI lengths (5/12/10) — Faster than the textbook 25/13 on purpose; built for intraday timeframes.
Cross signal threshold (±) — Gates the orange/aqua cross-bounce markers to crosses beyond ± this value. Default 0 (any cross past zero); raise toward 30 to only flag crosses at stretched readings.
Divergence pivot lookbacks — Lower left-lookback = more signals, more noise. 5 is aggressive; 8–10 is conservative.
Filter crossovers by BBWP — On by default: zero-line crossover alerts are suppressed during squeezes, when chop makes them unreliable.
Hidden divergences — Off by default; turn on if you trade continuation setups.
HONEST LIMITATIONS
Divergence labels confirm one bar after the pivot — the label appears with a delay by design, and acting on an unconfirmed wiggle is how divergence trading goes wrong. Divergences fail routinely in strong trends; momentum can stay "wrong" far longer than a position can. The dynamic zones need their full lookback (70 bars) of history to mean anything — ignore them in the first bars of a newly listed symbol or a fresh session on low-history tickers. This oscillator describes momentum; it knows nothing about structure, levels, or news. Read it alongside a price framework, not instead of one.
This is a study tool, not trade advice, and not an executor. Nothing here is a recommendation to buy or sell anything. Test it, judge the signals against what actually happened, and size your own risk. Индикатор

Индикатор

Skippy the Indicator v1.8.4Multi-timeframe MA-structure framework for short-timeframe momentum trading. Codifies a full squeeze-to-exit sequence — squeeze arming, 50ma curl, MA-stack trigger, MA5 ride, staged exit — into plain-language labels, a state machine, and a dashboard.
THE SEQUENCE
The core logic walks one setup from start to finish:
WATCH → READY → BUY → HOLD → TRIM or SELL
WATCH — Squeeze armed. Bollinger Bands are inside the Keltner Channels; energy is compressing.
READY ▲/▼ — The 50ma has begun to curl in the trade direction. Early heads-up.
BUY ▲/▼ — Gamma trigger. MA5, MA10, and MA20 have all closed beyond the 50ma, with the required number of confirmation closes (user-set, default 1). A ★ on the BUY marks a full-sequence setup: squeeze → curl → cross.
HOLD ▲/▼ — Price retested the MA5 and held (the glue). Trend intact.
TRIM ▲/▼ — MA5 glue failed. The leg is done but the thesis is alive. Lighten and watch for re-entry. This is NOT an exit signal.
SELL ▲/▼ — Price rejected at the 50ma with confirmed closes. Thesis dead.
TRIM vs SELL is the one distinction not to blur: orange means the leg ended, red means the trade ended.
A Display toggle switches all labels to technical names (ARMED / CURL / GLUE ✓✗ / ✕50) if you prefer.
REVERSAL SIGNALS
PR — Potential Reversal at a Bollinger Band extreme, RSI-confirmed. As of v0.8.4, PR fires intrabar the moment the high/low touches the band — non-repainting, since a bar's high/low can only extend, never retract. A toggle restores close-confirmed firing. PR is a mean-reversion signal and misfires in strong trends by design — that is what HOLD and the Direction row are for.
RIDE logic converts a failed fade into a continuation read: PR fires, then MA5 holds on the retest — the fade failed and the prior trend is resuming.
DASHBOARD
Seq State in plain language (WAITING / WATCHING / GETTING READY / IN TRADE / LEG DONE — WATCH RE-ENTRY), Direction from full MA-stack alignment, RSI veto row, Fast TFs (5/15/30m) and Slow TFs (1h/4h/D/W) bullish counts, cascading three-level target sequence, structure proximity (previous highs/lows, necklines — wick-measured as of v0.8.4), session window, and volume (informational only — it never gates signals).
Display options: Full (19 rows) or Compact (9 rows), Tiny/Small/Normal text size, and position. On phones use Compact + Tiny + bottom right.
ALERTS
Every label has a matching alert, and push notifications lead with the action word ("BUY ▲ — MA5/10/20 closed above 50ma"). PR and structure alerts use touch semantics — set alert frequency to "Once per bar."
READING IT
Trigger and exit logic is close-confirmed on the chart timeframe: "through" a level means a confirmed close, not a wick. The state machine reads one chart — always check higher timeframes before acting. Fast/slow TF agreement is the conviction read; disagreement is information (fast bear + slow bull = pullback in an uptrend, fast bull + slow bear = bounce in a downtrend).
This is a study and visual-verification tool, not trade advice and not an executor. The label words are signal names, not instructions — nothing here is a recommendation to buy or sell anything. Judge the signals against what actually happens and size your own risk. Индикатор

Индикатор

Sniper Open - Complete SignalSniper Open — NY Open FVG + Liquidity + Momentum
This indicator detects a specific 3-part confluence at the New York market open (9:30-9:45 ET):
Fair Value Gap (FVG) — a 3-candle imbalance in price
Liquidity Zone alignment — the gap must sit near a validated equal-high/equal-low level (2+ touches within 24 hours)
Momentum confirmation — the confirming candle must close in the signal's direction
Order block alignment — a recent order block in the same direction must exist
All four conditions must align, during the 9:30-9:45 ET window specifically, for a confirmed signal to fire.
Backtested results (3 years of NQ data, train/test validated):
~66-71% win rate on filled trades
~13-16 point average expectancy per filled trade
Signals fire roughly once every 2 trading days
How to use it:
The small faded circles are "watching" markers — an unconfirmed setup possibly forming. Informational only, not a trade signal.
The solid triangle is the confirmed signal. When it appears, place a limit order at the entry price shown (not a market order).
If your limit order isn't filled within 15 minutes, cancel it. This happens on roughly 44% of signals — it's expected, not a malfunction. The strategy's edge comes from letting price return to the level, not chasing it.
Stop and target levels are drawn automatically alongside each signal.
Important disclaimers:
This is backtested historical data, not a live trading track record. Past performance does not guarantee future results.
This is not financial advice. Trade at your own risk and do your own due diligence.
Built and tested specifically for NQ futures at the NY open — performance on other instruments or timeframes is not validated.
No mechanical filter can eliminate all uncertainty — momentum can reverse, targets aren't always reached, and drawdowns happen even in genuinely validated strategies. Индикатор

Bo3li.trading Scalper//@version=6
indicator(
title = "Bo3li.trading Scalper",
shorttitle = "Bo3li.trading",
overlay = true,
max_lines_count = 100,
max_labels_count = 100,
max_boxes_count = 20
)
//====================================================
// إعدادات الدعم والمقاومة ومناطق العرض والطلب
//====================================================
pivotLeft = input.int(
5,
"قوة المنطقة من اليسار",
minval = 1,
group = "الدعم والمقاومة"
)
pivotRight = input.int(
5,
"قوة المنطقة من اليمين",
minval = 1,
group = "الدعم والمقاومة"
)
atrLength = input.int(
14,
"فترة ATR",
minval = 1,
group = "الدعم والمقاومة"
)
zoneSizeATR = input.float(
0.30,
"سُمك منطقة العرض والطلب",
minval = 0.05,
step = 0.05,
group = "الدعم والمقاومة"
)
showZones = input.bool(
true,
"إظهار مناطق العرض والطلب",
group = "الدعم والمقاومة"
)
showSupportResistance = input.bool(
true,
"إظهار خطوط الدعم والمقاومة",
group = "الدعم والمقاومة"
)
//====================================================
// إعدادات فلتر الدخول
//====================================================
useTrendFilter = input.bool(
true,
"استخدام فلتر الاتجاه",
group = "فلتر الدخول"
)
emaFastLength = input.int(
20,
"EMA السريع",
minval = 1,
group = "فلتر الدخول"
)
emaSlowLength = input.int(
50,
"EMA البطيء",
minval = 1,
group = "فلتر الدخول"
)
useRSIFilter = input.bool(
true,
"استخدام فلتر RSI",
group = "فلتر الدخول"
)
rsiLength = input.int(
14,
"فترة RSI",
minval = 1,
group = "فلتر الدخول"
)
buyRSILevel = input.int(
52,
"أقل RSI للشراء",
minval = 1,
maxval = 99,
group = "فلتر الدخول"
)
sellRSILevel = input.int(
48,
"أعلى RSI للبيع",
minval = 1,
maxval = 99,
group = "فلتر الدخول"
)
//====================================================
// إعدادات الأهداف ووقف الخسارة
//====================================================
// على الذهب:
// 1 Pip = 0.10 دولار من حركة السعر
// 50 Pip = 5 دولارات
// 100 Pip = 10 دولارات
// 150 Pip = 15 دولاراً
pipSize = input.float(
0.10,
"قيمة Pip بالسعر",
minval = 0.00001,
step = 0.01,
tooltip = "للذهب: 100 Pip تساوي حركة 10 دولارات",
group = "الأهداف ووقف الخسارة"
)
tpStepPips = input.int(
50,
"المسافة بين كل TP",
minval = 1,
group = "الأهداف ووقف الخسارة"
)
slPips = input.int(
50,
"SL بالـ Pip",
minval = 1,
group = "الأهداف ووقف الخسارة"
)
tp1Pips = tpStepPips
tp2Pips = tpStepPips * 2
tp3Pips = tpStepPips * 3
projectionBars = input.int(
40,
"طول خطوط الصفقة",
minval = 5,
maxval = 200,
group = "الأهداف ووقف الخسارة"
)
//====================================================
// إعدادات المظهر
//====================================================
showEMAs = input.bool(
true,
"إظهار المتوسطات",
group = "المظهر"
)
showSignals = input.bool(
true,
"إظهار إشارات الشراء والبيع",
group = "المظهر"
)
showWatermark = input.bool(
true,
"إظهار Bo3li.trading بالخلفية",
group = "المظهر"
)
//====================================================
// الحسابات
//====================================================
atrValue = ta.atr(atrLength)
zoneThickness = atrValue * zoneSizeATR
emaFast = ta.ema(close, emaFastLength)
emaSlow = ta.ema(close, emaSlowLength)
rsiValue = ta.rsi(close, rsiLength)
pivotHigh = ta.pivothigh(
high,
pivotLeft,
pivotRight
)
pivotLow = ta.pivotlow(
low,
pivotLeft,
pivotRight
)
//====================================================
// تخزين آخر دعم ومقاومة
//====================================================
var float resistancePrice = na
var float supportPrice = na
var float supplyTop = na
var float supplyBottom = na
var float demandTop = na
var float demandBottom = na
if not na(pivotHigh)
resistancePrice := pivotHigh
supplyTop := pivotHigh
supplyBottom := pivotHigh - zoneThickness
if not na(pivotLow)
supportPrice := pivotLow
demandTop := pivotLow + zoneThickness
demandBottom := pivotLow
//====================================================
// مناطق العرض والطلب
//====================================================
var box supplyBox = na
var box demandBox = na
var label supplyLabel = na
var label demandLabel = na
if not na(pivotHigh)
if not na(supplyBox)
box.delete(supplyBox)
if not na(supplyLabel)
label.delete(supplyLabel)
if showZones
supplyBox := box.new(
left = bar_index - pivotRight,
top = supplyTop,
right = bar_index,
bottom = supplyBottom,
border_color = color.new(color.red, 25),
border_width = 1,
bgcolor = color.new(color.red, 88),
extend = extend.right
)
supplyLabel := label.new(
x = bar_index - pivotRight,
y = supplyTop,
text = "منطقة عرض",
style = label.style_label_down,
color = color.new(color.red, 10),
textcolor = color.white,
size = size.small
)
if not na(pivotLow)
if not na(demandBox)
box.delete(demandBox)
if not na(demandLabel)
label.delete(demandLabel)
if showZones
demandBox := box.new(
left = bar_index - pivotRight,
top = demandTop,
right = bar_index,
bottom = demandBottom,
border_color = color.new(color.green, 25),
border_width = 1,
bgcolor = color.new(color.green, 88),
extend = extend.right
)
demandLabel := label.new(
x = bar_index - pivotRight,
y = demandBottom,
text = "منطقة طلب",
style = label.style_label_up,
color = color.new(color.green, 10),
textcolor = color.white,
size = size.small
)
if not showZones
if not na(supplyBox)
box.delete(supplyBox)
supplyBox := na
if not na(demandBox)
box.delete(demandBox)
demandBox := na
if not na(supplyLabel)
label.delete(supplyLabel)
supplyLabel := na
if not na(demandLabel)
label.delete(demandLabel)
demandLabel := na
//====================================================
// خطوط الدعم والمقاومة البرتقالية
//====================================================
plot(
showSupportResistance ? resistancePrice : na,
title = "المقاومة",
color = color.orange,
linewidth = 2,
style = plot.style_stepline
)
plot(
showSupportResistance ? supportPrice : na,
title = "الدعم",
color = color.orange,
linewidth = 2,
style = plot.style_stepline
)
//====================================================
// المتوسطات المتحركة
//====================================================
plot(
showEMAs ? emaFast : na,
title = "EMA السريع",
color = color.aqua,
linewidth = 1
)
plot(
showEMAs ? emaSlow : na,
title = "EMA البطيء",
color = color.purple,
linewidth = 2
)
//====================================================
// شروط الدخول
//====================================================
bullTrend = emaFast > emaSlow and close > emaFast
bearTrend = emaFast < emaSlow and close < emaFast
bullRSI = rsiValue >= buyRSILevel
bearRSI = rsiValue <= sellRSILevel
buyTrendAllowed = not useTrendFilter or bullTrend
sellTrendAllowed = not useTrendFilter or bearTrend
buyRSIAllowed = not useRSIFilter or bullRSI
sellRSIAllowed = not useRSIFilter or bearRSI
// الشراء بعد كسر المقاومة والإغلاق فوقها
rawBuySignal =
not na(resistancePrice) and
ta.crossover(close, resistancePrice)
// البيع بعد كسر الدعم والإغلاق تحته
rawSellSignal =
not na(supportPrice) and
ta.crossunder(close, supportPrice)
buySignal =
barstate.isconfirmed and
rawBuySignal and
buyTrendAllowed and
buyRSIAllowed
sellSignal =
barstate.isconfirmed and
rawSellSignal and
sellTrendAllowed and
sellRSIAllowed
//====================================================
// خطوط الصفقة
//====================================================
var line entryLine = na
var line tp1Line = na
var line tp2Line = na
var line tp3Line = na
var line slLine = na
var label entryLabel = na
var label tp1Label = na
var label tp2Label = na
var label tp3Label = na
var label slLabel = na
//====================================================
// صفقة شراء
//====================================================
if buySignal
if not na(entryLine)
line.delete(entryLine)
if not na(tp1Line)
line.delete(tp1Line)
if not na(tp2Line)
line.delete(tp2Line)
if not na(tp3Line)
line.delete(tp3Line)
if not na(slLine)
line.delete(slLine)
if not na(entryLabel)
label.delete(entryLabel)
if not na(tp1Label)
label.delete(tp1Label)
if not na(tp2Label)
label.delete(tp2Label)
if not na(tp3Label)
label.delete(tp3Label)
if not na(slLabel)
label.delete(slLabel)
float entryPrice = close
float tp1Price = entryPrice + tp1Pips * pipSize
float tp2Price = entryPrice + tp2Pips * pipSize
float tp3Price = entryPrice + tp3Pips * pipSize
float slPrice = entryPrice - slPips * pipSize
entryLine := line.new(
x1 = bar_index,
y1 = entryPrice,
x2 = bar_index + projectionBars,
y2 = entryPrice,
color = color.blue,
width = 3
)
tp1Line := line.new(
x1 = bar_index,
y1 = tp1Price,
x2 = bar_index + projectionBars,
y2 = tp1Price,
color = color.green,
width = 2,
style = line.style_dashed
)
tp2Line := line.new(
x1 = bar_index,
y1 = tp2Price,
x2 = bar_index + projectionBars,
y2 = tp2Price,
color = color.green,
width = 2,
style = line.style_dashed
)
tp3Line := line.new(
x1 = bar_index,
y1 = tp3Price,
x2 = bar_index + projectionBars,
y2 = tp3Price,
color = color.green,
width = 2
)
slLine := line.new(
x1 = bar_index,
y1 = slPrice,
x2 = bar_index + projectionBars,
y2 = slPrice,
color = color.red,
width = 2
)
entryLabel := label.new(
x = bar_index + projectionBars,
y = entryPrice,
text = "دخول شراء",
style = label.style_label_left,
color = color.blue,
textcolor = color.white
)
tp1Label := label.new(
x = bar_index + projectionBars,
y = tp1Price,
text = "TP1 - " + str.tostring(tp1Pips) + " Pip",
style = label.style_label_left,
color = color.green,
textcolor = color.white
)
tp2Label := label.new(
x = bar_index + projectionBars,
y = tp2Price,
text = "TP2 - " + str.tostring(tp2Pips) + " Pip",
style = label.style_label_left,
color = color.green,
textcolor = color.white
)
tp3Label := label.new(
x = bar_index + projectionBars,
y = tp3Price,
text = "TP3 - " + str.tostring(tp3Pips) + " Pip",
style = label.style_label_left,
color = color.green,
textcolor = color.white
)
slLabel := label.new(
x = bar_index + projectionBars,
y = slPrice,
text = "SL - " + str.tostring(slPips) + " Pip",
style = label.style_label_left,
color = color.red,
textcolor = color.white
)
//====================================================
// صفقة بيع
//====================================================
if sellSignal
if not na(entryLine)
line.delete(entryLine)
if not na(tp1Line)
line.delete(tp1Line)
if not na(tp2Line)
line.delete(tp2Line)
if not na(tp3Line)
line.delete(tp3Line)
if not na(slLine)
line.delete(slLine)
if not na(entryLabel)
label.delete(entryLabel)
if not na(tp1Label)
label.delete(tp1Label)
if not na(tp2Label)
label.delete(tp2Label)
if not na(tp3Label)
label.delete(tp3Label)
if not na(slLabel)
label.delete(slLabel)
float entryPrice = close
float tp1Price = entryPrice - tp1Pips * pipSize
float tp2Price = entryPrice - tp2Pips * pipSize
float tp3Price = entryPrice - tp3Pips * pipSize
float slPrice = entryPrice + slPips * pipSize
entryLine := line.new(
x1 = bar_index,
y1 = entryPrice,
x2 = bar_index + projectionBars,
y2 = entryPrice,
color = color.blue,
width = 3
)
tp1Line := line.new(
x1 = bar_index,
y1 = tp1Price,
x2 = bar_index + projectionBars,
y2 = tp1Price,
color = color.green,
width = 2,
style = line.style_dashed
)
tp2Line := line.new(
x1 = bar_index,
y1 = tp2Price,
x2 = bar_index + projectionBars,
y2 = tp2Price,
color = color.green,
width = 2,
style = line.style_dashed
)
tp3Line := line.new(
x1 = bar_index,
y1 = tp3Price,
x2 = bar_index + projectionBars,
y2 = tp3Price,
color = color.green,
width = 2
)
slLine := line.new(
x1 = bar_index,
y1 = slPrice,
x2 = bar_index + projectionBars,
y2 = slPrice,
color = color.red,
width = 2
)
entryLabel := label.new(
x = bar_index + projectionBars,
y = entryPrice,
text = "دخول بيع",
style = label.style_label_left,
color = color.blue,
textcolor = color.white
)
tp1Label := label.new(
x = bar_index + projectionBars,
y = tp1Price,
text = "TP1 - " + str.tostring(tp1Pips) + " Pip",
style = label.style_label_left,
color = color.green,
textcolor = color.white
)
tp2Label := label.new(
x = bar_index + projectionBars,
y = tp2Price,
text = "TP2 - " + str.tostring(tp2Pips) + " Pip",
style = label.style_label_left,
color = color.green,
textcolor = color.white
)
tp3Label := label.new(
x = bar_index + projectionBars,
y = tp3Price,
text = "TP3 - " + str.tostring(tp3Pips) + " Pip",
style = label.style_label_left,
color = color.green,
textcolor = color.white
)
slLabel := label.new(
x = bar_index + projectionBars,
y = slPrice,
text = "SL - " + str.tostring(slPips) + " Pip",
style = label.style_label_left,
color = color.red,
textcolor = color.white
)
//====================================================
// إشارات الدخول
//====================================================
plotshape(
showSignals and buySignal,
title = "إشارة شراء",
text = "شراء",
style = shape.labelup,
location = location.belowbar,
color = color.green,
textcolor = color.white,
size = size.small
)
plotshape(
showSignals and sellSignal,
title = "إشارة بيع",
text = "بيع",
style = shape.labeldown,
location = location.abovebar,
color = color.red,
textcolor = color.white,
size = size.small
)
//====================================================
// خلفية Bo3li.trading
//====================================================
var table watermark = table.new(
position.middle_center,
1,
1
)
if barstate.islast
table.cell(
watermark,
0,
0,
showWatermark ? "Bo3li.trading" : "",
text_color = color.new(color.gray, 82),
text_size = size.huge,
bgcolor = color.new(color.white, 100)
)
//====================================================
// التنبيهات
//====================================================
alertcondition(
buySignal,
title = "Bo3li.trading - شراء",
message = "إشارة شراء من مؤشر Bo3li.trading بعد كسر المقاومة"
)
alertcondition(
sellSignal,
title = "Bo3li.trading - بيع",
message = "إشارة بيع من مؤشر Bo3li.trading بعد كسر الدعم"
) Индикатор

Sniper Open - Complete SignalSniper Open — NY Open FVG + Liquidity + Momentum
This indicator detects a specific 3-part confluence at the New York market open (9:30-9:45 ET):
Fair Value Gap (FVG) — a 3-candle imbalance in price
Liquidity Zone alignment — the gap must sit near a validated equal-high/equal-low level (2+ touches within 24 hours)
Momentum confirmation — the confirming candle must close in the signal's direction
Order block alignment — a recent order block in the same direction must exist
All four conditions must align, during the 9:30-9:45 ET window specifically, for a confirmed signal to fire.
Backtested results (3 years of NQ data, train/test validated):
~66-71% win rate on filled trades
~13-16 point average expectancy per filled trade
Signals fire roughly once every 2 trading days
How to use it:
The small faded circles are "watching" markers — an unconfirmed setup possibly forming. Informational only, not a trade signal.
The solid triangle is the confirmed signal. When it appears, place a limit order at the entry price shown (not a market order).
If your limit order isn't filled within 15 minutes, cancel it. This happens on roughly 44% of signals — it's expected, not a malfunction. The strategy's edge comes from letting price return to the level, not chasing it.
Stop and target levels are drawn automatically alongside each signal.
Important disclaimers:
This is backtested historical data, not a live trading track record. Past performance does not guarantee future results.
This is not financial advice. Trade at your own risk and do your own due diligence.
Built and tested specifically for NQ futures at the NY open — performance on other instruments or timeframes is not validated.
No mechanical filter can eliminate all uncertainty — momentum can reverse, targets aren't always reached, and drawdowns happen even in genuinely validated strategies.
Feel free to reach out with questions. Built this as a personal tool first, sharing it because a lot of people asked. Индикатор

TopSetup Lite - Multi-TF Bias DashboardWHAT IT DOES
A compact dashboard that reads directional bias on three timeframes at once (15M / 5M / 1M) and shows whether they agree. It answers one question before you zoom in: which side of the market is currently favoured — and do the timeframes align?
HOW IT WORKS
• For each timeframe the script requests price data via request.security() and evaluates two conditions: the position of price relative to an EMA pair (20/50), and the alignment of those EMAs over a lookback window.
• Each timeframe is classified as Bull, Bear or Neutral. Neutral is returned when the conditions disagree — the script deliberately refuses to force a direction.
• The three results are combined into a confluence verdict: 3/3 (strong alignment), 2/3 (partial) or mixed (no alignment).
• Optional BOS / CHoCH labels mark structure breaks based on pivot highs/lows, so every bias reading can be verified directly on the chart.
SETTINGS
Pivot length, structure labels on/off, dashboard on/off, table position and size are configurable.
HOW TO USE IT
Treat the verdict as a filter, not a signal: look for setups only in the direction of 2/3 or 3/3 agreement, and stand aside on mixed readings. Built and tested on Gold and Bitcoin; works on any liquid symbol. The full logic can be read in the source code.
Educational tool only. No financial advice, no performance guarantees. Индикатор

Risk & Levels CockpitRisk & Levels Cockpit
Risk & Levels Cockpit answers one question on any market and any timeframe: if I take this trade, where is my stop, what size should I trade, and what can I lose? It is a risk-and-levels tool, not a buy/sell signal — it does not predict direction, it bounds risk around a trade you have already decided to take.
HOW IT WORKS
Three components chain one-way:
Theil-Sen robust channel — fits a trend line as the median of all pairwise slopes over the lookback. Being a median, it cannot be tilted by a single spike or wick the way ordinary regression can, so the rails give you a stable structure to trade against.
Extreme Value Theory tail model (Peaks-Over-Threshold, Generalized Pareto) — estimates how far price can realistically move against you at a chosen tail quantile, replacing a guessed 2xATR stop with a distance grounded in the actual tail of the return distribution. The channel rail acts as a structural floor, so your stop is never tighter than the channel edge.
Fixed-fractional sizer — turns that stop into a position size: units = floor(risk-budget / (risk distance x point value)). When the stop is wider than your risk budget, size correctly floors to zero and the panel shows what one unit would cost and the capital that would make one unit equal your target risk, so a zero is a decision, not a dead end.
TWO SIZING BASES
Stop distance risks your fraction at the drawn stop. Expected Shortfall risks your fraction at the mean loss beyond the stop (McNeil-Frey POT form, from the same tail fit) — wider, so fewer units, so that gapping through your stop still respects your budget. The panel always shows both the at-stop and at-tail loss per unit, so gap risk is visible in either mode. An optional vol-target overlay (on by default) scales size to keep portfolio volatility steadier across regimes; the Size-mode row always shows the live multiplier.
WORKS ON ANY MARKET, ANY TIMEFRAME
No session, expiry, or clock anchors; every lookback is in bars and volatility annualization self-scales — identical behavior from 1-minute scalping to daily positional, on stocks, futures, forex, crypto, and indices worldwide. Set the currency symbol and point value (money per point per unit) to your instrument: stocks/crypto/spot = 1; index and futures = the contract multiplier (for example NIFTY 65, S&P E-mini 50, Nikkei 1000, DAX 25); forex = point value per lot; options = point value x delta.
A Scalp/Intraday, Positional, or Custom preset adjusts the tail horizon and quantile. Scalp/Intraday is the default (tighter stops); positional traders should switch to the Positional preset for wider, conservative stops.
ON THE CHART
A slope-colored robust trend line with a TREND pill and a channel band, plus solid, pill-labeled decision levels — red STOP, amber BREAK (invalidation), and green T1 and T2 TARGET, each showing price and R-multiple. The panel gives the full sizing and risk readout, including a daily-loss-budget line.
LIMITATIONS (read before use)
Not a signal and not investment advice. Stops and targets are model references, not guarantees — gaps and slippage can exceed them. The tail quantile is scaled to the holding horizon by square-root-of-time, a deliberate approximation chosen over overlapping h-bar fitting which violates independence. The daily-loss cap is a display aid; a single-chart indicator cannot track or enforce live fills. The vol-target overlay multiplies the fixed-fractional size and can nudge per-trade risk above the nominal percent in calm markets — set Size clamp max to 1.0 to only reduce size, or turn it off for a strict fixed-percent rule. Position sizing does not create an edge; it bounds risk.
CREDITS
Original implementation. Theil (1950) and Sen (1968) robust slope; Pickands-Balkema-de Haan / Peaks-Over-Threshold Generalized Pareto tail estimation and Expected Shortfall (McNeil-Frey); fixed-fractional position sizing (Tharp / Vince). Индикатор

Nebbia Session Map & HTF Levels Nebbia Market Sessions & Liquidity Levels is an open-source intraday market-mapping indicator designed to combine session structure, liquidity references, higher-timeframe levels and the US Initial Balance in a single charting tool.
The script is intended primarily for traders who work on lower intraday timeframes and want a clear view of where price is trading relative to important session ranges, historical highs and lows, confirmed swing levels, opening prices and Initial Balance projections.
Market Sessions
The indicator can display the main intraday trading sessions:
Asia
London
New York AM
New York Lunch
New York PM
Each session can be enabled or disabled independently and has customizable hours, colors and transparency.
The first hour of the Asia and London sessions can also be highlighted separately, making it easier to identify their initial range and early-session price development.
Session times use timezone-aware calculations, allowing daylight-saving changes to be handled correctly when IANA timezones such as America/New_York, America/Chicago, Europe/London, Europe/Rome and Asia/Tokyo are selected.
Killzone Pivots
For every enabled killzone, the script can track the session high and low and extend them forward as potential liquidity levels.
These pivots can remain active according to three different expiration rules:
until the end of the trading day;
until the next occurrence of the same session;
until the level is mitigated.
A pivot stops extending once price trades through it.
Alerts can also be enabled for killzone pivot breaks.
Higher-Timeframe Liquidity Levels
Nebbia can display historical liquidity references from several timeframes:
past daily highs and lows;
past weekly highs and lows;
past monthly highs and lows;
two optional confirmed swing-timeframe slots.
The two swing slots are fully configurable. They may be used, for example, for:
4-hour swings;
1-hour swings;
30-minute swings;
or any other supported timeframe.
Swing highs and lows are confirmed only after the selected number of right-side bars has closed, preventing an unconfirmed pivot from being displayed prematurely.
The timeframe name is generated automatically in the label, producing references such as:
4H H
4H L
1H H
30M L
When two swing levels occur at the same price, the higher timeframe takes priority.
Level Confluence
When multiple liquidity references share the same price, Nebbia merges them instead of drawing several overlapping lines.
The hierarchy is:
Monthly → Weekly → Daily → higher swing timeframe → lower swing timeframe
The highest-priority line remains visible, while the label can report the relevant confluence.
Examples:
W LOW 09.06 / 4H L
D HIGH 16.07 / 1H H
M LOW 01.07 / W LOW 07.07
This keeps the chart readable while preserving the information contained in lower-timeframe confirmations.
Active and Mitigated Levels
Active liquidity levels are displayed using the selected active line style.
Once price trades through a level, it can be converted into a mitigated level using a separate broken-line style and transparency.
A dedicated setting allows mitigated levels to be shown or hidden completely.
This means the chart can be configured either to retain historical interaction points or to display only liquidity levels that remain untouched.
Level labels can also be enabled or disabled independently.
High labels are positioned above their level, while low labels are positioned below it.
Current Trading-Day High and Low
An optional developing mode can display the high and low of the current Chicago trading day.
These levels update throughout the session and are treated as provisional rather than as already-confirmed historical levels.
At the beginning of the next trading day, the completed daily range is transferred into the normal historical daily-level logic.
ADR5 Distance Filter
Nebbia includes an optional ADR5 filter, based on the average daily range of the five most recently completed trading days.
The ADR5 value is calculated and frozen at the beginning of each new trading day.
Only levels located within the selected ADR5 distance multiplier are displayed.
This can reduce chart clutter by hiding historical liquidity references that are too far away from current price.
For example:
1.0 displays levels within one ADR5;
1.5 displays levels within one and a half ADR5;
2.0 displays levels within two ADR5.
Opening Prices
The indicator can display the latest opening price for:
Daily Open — 00:00 Rome
Tokyo Open — 09:00 Tokyo
London Open — 08:00 London
US Cash Open — 08:30 Chicago
Each opening price has an independent visibility option, color and editable label text.
Only the latest relevant opening line is retained, preventing older opening levels from unnecessarily accumulating on the chart.
Time Markers and Separators
Optional vertical timestamps can identify:
00:00 Rome;
08:30 Chicago.
Daily, weekly and monthly separators can also be displayed independently.
Optional day-of-week labels may be placed at the top or bottom of the chart, with the possibility of hiding weekend labels.
US Initial Balance
Nebbia includes a dedicated US Initial Balance module based on the first hour of the US cash session:
08:30–09:30 America/Chicago
The Initial Balance can display:
IB High;
IB Low;
50% midpoint;
optional ×2 and ×3 extensions;
optional 50% levels between the main extensions;
a highlighted IB time window;
a tinted area between IB High and IB Low;
optional price labels;
configurable extension direction and line styles.
When lines are extended to the right, they remain active until the beginning of the next trading day’s Initial Balance rather than extending indefinitely.
The script can also calculate statistics from the previous 20 completed Initial Balance sessions.
Customization
Most visual components can be configured independently, including:
session colors and transparency;
swing timeframes and pivot sensitivity;
level colors and widths;
active and mitigated line styles;
label visibility and distance;
opening-price labels;
timestamp styles;
Initial Balance colors, widths and extensions;
timeframe visibility limits;
session-history drawing limits.
Credits
This open-source project was inspired in part by:
ICT Killzones + Pivots
by tradeforopp
Full recognition is given to the original author for the concepts and foundation that helped inspire the session and pivot components of this project.
Nebbia Market Sessions & Liquidity Levels is an independent expansion and redesign that adds higher-timeframe liquidity mapping, swing-timeframe slots, confluence management, ADR5 filtering, opening prices, timestamps and a complete US Initial Balance module.
Disclaimer
This indicator is provided for educational and analytical purposes only.
It does not constitute financial advice, investment advice or a recommendation to enter or exit any trade. Historical levels, session ranges, pivots and Initial Balance projections do not guarantee future market behavior. Индикатор

EMA 21/55/200 Market Quality DashboardEMA 21/55/200 Market Quality Dashboard
An enhanced evolution of the original DANGHIEU EMA 21/55/200 V2 + ADX ATR Momentum , redesigned as a comprehensive Market Quality Dashboard to evaluate trend quality before trade execution.
Overview
EMA 21/55/200 Market Quality Dashboard is a professional trend-following market filter designed to evaluate overall market quality before traders search for trend-following opportunities.
Rather than generating Buy or Sell signals, this indicator analyzes multiple independent market conditions and presents them in a structured dashboard. Its purpose is to help traders understand why the market is suitable—or unsuitable—for trend trading, allowing for more informed decision-making before execution.
Key Features
Trend identification using EMA 21 / 55 / 200
EMA Separation filter to identify sideways markets
ADX Trend Strength analysis
EMA Momentum confirmation
ATR Volatility classification
100-point Market Score
State & Filter Dashboard
HTF Simulation without using request.security()
Market Quality Modules
Trend
Determines the primary market trend using the alignment of EMA 21, EMA 55 and EMA 200.
Bullish → EMA 21 > EMA 55 > EMA 200
Bearish → EMA 21 < EMA 55 < EMA 200
EMA Separation
Measures the distance between EMA 21 and EMA 55.
Helps filter sideways markets where moving averages become compressed.
ADX (Trend Strength)
Evaluates the strength of the current trend.
Displays:
ADX Value
Trend Strength
Rising / Falling Direction
EMA Momentum
Measures the rate of change of EMA 21.
Confirms whether momentum is aligned with the current market trend.
ATR Volatility
Evaluates current market volatility.
ATR is classified into three states:
Expanding
Stable
Contracting
For trend-following markets:
Expanding → PASS
Stable → PASS
Contracting → BLOCK
Unlike previous versions, Stable volatility is considered a valid condition for trend-following markets. Only Contracting volatility blocks the ATR filter.
Market Score
Each module contributes to a 100-point Market Score.
The score is designed to evaluate and rank overall market quality. It is not intended to generate entry signals.
Suggested interpretation:
80 – 100 → Excellent Market Conditions
65 – 79 → Good Market Conditions
50 – 64 → Average Market Conditions
Below 50 → Weak Market Conditions
Dashboard Philosophy
The dashboard separates market information into two independent concepts:
State
Displays the current market condition.
Examples:
Bullish Trend
Strong ADX
Expanding ATR
Positive Momentum
Filter
Shows whether each condition satisfies the trading requirements.
Possible results:
PASS
BLOCK
FILTER OFF
This separation allows traders to quickly identify which condition is preventing a valid trend setup, rather than relying on simple Buy or Sell signals.
HTF Simulation
Supports Higher Timeframe (HTF) Simulation by scaling indicator lengths according to the selected timeframe ratio.
This approach provides a smooth approximation of higher-timeframe market behavior without relying on request.security(), helping traders maintain consistency across multiple timeframes.
How to Use
Use the dashboard as a market quality filter before applying your own trading strategy.
Look for Long opportunities when:
EMA 21 > EMA 55 > EMA 200
EMA Separation passes
ADX passes
EMA Momentum is aligned with the bullish trend
ATR is Expanding or Stable
Market Score is preferably 80 or higher
Look for Short opportunities when:
EMA 21 < EMA 55 < EMA 200
EMA Separation passes
ADX passes
EMA Momentum is aligned with the bearish trend
ATR is Expanding or Stable
Market Score is preferably 80 or higher
Works Best With
This dashboard is designed to complement, not replace, your trading strategy.
It works best when combined with:
Market Structure
Support & Resistance
Supply & Demand
Order Blocks
Liquidity Concepts
Pullbacks
Risk Management
Important Notes
This indicator is not an entry signal.
It is designed to evaluate market quality before trade execution.
Market Score is a market quality ranking system and should never be interpreted as a Buy or Sell signal.
ATR Stable is considered a valid condition for trend-following markets. Only ATR Contracting blocks the ATR filter.
The dashboard is intended to improve trade selection by helping traders avoid low-quality market conditions, rather than predicting future price movements. Индикатор

Индикатор

Anchored VWAP Engine [Quantum Algo]Anchored VWAP Engine
====================================================
🔶 OVERVIEW
Anchored VWAP Engine is a multi-stream anchored Volume Weighted Average Price indicator that removes the hardest part of trading with anchored VWAP: choosing the anchor. The engine runs up to seven independently anchored VWAP streams that place and reset their own anchors automatically — the week open (the default stream), session open, month open, confirmed swing highs and swing lows, the highest-volume bar in a lookback, and a liquidity-sweep anchor that re-anchors from the exact bar where a stop run occurred. On top of the streams it adds volume-weighted deviation bands, automatic confluence cluster zones where multiple streams converge, band-rejection signals, and a stability metric that names which VWAP the market is currently respecting most.
Out of the box the chart shows a single clean line: the week-anchored Volume Weighted Average Price with its deviation bands. Every additional stream is one checkbox away.
🔶 WHAT IS AN ANCHORED VWAP?
The Volume Weighted Average Price is the average price of an instrument weighted by traded volume — the closest public approximation of the average position price of everyone who transacted since a chosen starting point. An anchored VWAP starts that calculation from a meaningful event rather than an arbitrary date: a weekly open, a swing low, a high-volume climax bar. Price above an anchored VWAP means the average participant since that event is in profit; price returning to it often behaves as a decision level, because it is where the average position breaks even. The power of the tool depends entirely on where it is anchored — which is exactly what this engine automates.
🔶 WHY THIS SCRIPT IS ORIGINAL
1. Automatic multi-anchor engine. Seven streams anchor and re-anchor themselves from objectively defined events — no manual anchor placement, no stale anchors, no guessing.
2. The liquidity-sweep anchor. When a swing level is wicked through and rejected — a stop run — the sweep stream re-anchors from that exact bar and colors itself by implication: the accumulation tone after a sell-side sweep, the distribution tone after a buy-side raid. Averaging from the stop-run bar tracks the entry basis of the participants who engineered it. To our knowledge this anchor type has not been published before.
3. Exact swing anchoring. Swing-anchored streams rebuild their sums retroactively from the true pivot bar once the pivot confirms, so the calculation is mathematically identical to a VWAP hand-anchored on the swing itself — not started late at the confirmation bar.
4. Confluence clusters. When two or more active streams converge within an Average True Range tolerance, the engine draws a cluster zone and labels its strength. Multiple independent volume-weighted averages agreeing on one price is the strongest form of VWAP confluence, detected automatically.
5. The In Control metric. An exponentially decayed crossing-rate measures how cleanly price is respecting each stream; the dashboard names the stream currently in control. Users learn which anchor matters today instead of watching all of them equally.
6. True volume-weighted deviation bands. The bands are built from the volume-weighted variance of the primary stream — not a simple price standard deviation — at two configurable widths, with band-rejection signals printed as a single σ character whose full context lives in the hover tooltip, protected by a signal cooldown.
7. Quiet by default. One stream, one set of bands, capped signals, and a compact dashboard. The engine detects everything; the chart shows only what is asked of it.
🔶 HOW IT WORKS
Streams: Each stream maintains volume-weighted price and variance sums that reset on its anchor event — new week, new session, new month, a confirmed swing, a lookback volume record, or a qualified liquidity sweep. Between events the sums accumulate bar by bar, producing the stream's live anchored VWAP.
Sweep detection: A sweep qualifies when price wicks through the last confirmed swing level but closes back inside it, with per-level memory so the same level cannot re-trigger. The sweep stream then re-anchors from that bar.
Deviation bands: The primary stream (selectable; week open by default) carries inner and outer bands at configurable sigma multiples computed from its own volume-weighted variance, with softly tinted zones between them.
Signals: A wick beyond the outer band with a close back inside, on the correct side of the VWAP, prints the σ rejection signal — reversion bias toward the average — evaluated on closed bars only and rate-limited by the cooldown.
Clusters: On the live bar the engine groups all active stream values within the tolerance and draws a labeled zone for each group of two or more.
Dashboard: A fully themeable panel lists every stream with its live distance from price in Average True Range units and side, plus the In Control stream, active cluster count, and the current band width.
Non-repainting: Anchors use confirmed events, sweeps and signals are evaluated at bar close, and swing streams rebuild exactly rather than approximately.
🔶 HOW TO USE IT
1. Works on any market with reliable volume — cryptocurrency, stocks, indices, futures. On the default settings, read the week-anchored VWAP as the institutional benchmark: above it with rising distance means the average weekly participant is in profit.
2. Treat the VWAP itself as the decision level and the outer bands as stretch: σ rejections at the outer band carry a reversion bias back toward the average.
3. Enable the swing and sweep anchors to study reactions: price returning to a sweep-anchored VWAP is returning to the average entry of the stop-run — a level worth watching.
4. Cluster zones are the highest-value levels the engine produces: several independent volume-weighted averages agreeing on one price. Watch how price behaves on first touch.
5. Use the In Control row to pick which stream deserves your attention today, and the distance column to see what is nearby before it is hit.
6. Intraday traders can switch the primary stream to Session Open; swing traders can promote Month Open.
🔶 SETTINGS
- Anchors: independent toggles for all seven streams, swing pivot length, highest-volume lookback. Default: Week Open only.
- Primary stream selection with inner and outer band multiples.
- Cluster detection with Average True Range tolerance.
- Signals: toggle, cooldown, and signals to keep.
- Individual colors for every stream plus accent and neutral colors.
- Themeable dashboard: position, four text sizes, title band, background, frame, grid, and three text colors.
🔶 ALERTS
- Bullish / Bearish Band Rejection — price rejected the outer deviation band of the primary stream.
- Price Crossed Above / Below Primary VWAP.
- VWAP Cluster Formed — two or more streams converged into a confluence zone.
- Sweep Anchor Reset — a liquidity sweep occurred and the sweep stream re-anchored from the stop-run bar.
🔶 FREQUENTLY ASKED QUESTIONS
Does the indicator repaint? No. Anchor events are confirmed before they act, swing streams rebuild exactly from the confirmed pivot bar, and signals are evaluated on closed bars. Swing confirmation carries its standard pivot lag by design.
Why do I only see one line? By default only the week-anchored stream is enabled for a clean first chart. Every other anchor is a checkbox in settings.
What makes the sweep anchor special? It averages price and volume from the exact bar where stops were run — the basis of the participants who engineered the move — rather than from a calendar date or swing alone.
Why is there no cluster or In Control reading? Both features compare multiple streams; enable two or more anchors and they activate.
Which markets should avoid it? Any Volume Weighted Average Price tool is only as good as the volume feed. On symbols with unreliable or synthetic volume reporting, treat every stream with caution.
🔶 CREDITS
The Volume Weighted Average Price was introduced by Stephen Berkowitz, Dennis Logue and Eugene Noser (1988), and the anchored application was popularized by Brian Shannon, whose work established anchoring from meaningful events as a discipline. This script gratefully acknowledges both. The multi-stream auto-anchoring engine, the liquidity-sweep anchor, the exact retroactive swing rebuild, confluence clustering, the In Control stability metric, and all code in this script are original work — no third-party or open-source script code was reused.
🔶 LIMITATIONS
Volume quality determines VWAP quality; symbols with unreliable volume produce unreliable averages. Deviation bands need bars to mature after each re-anchor. Cluster detection reports convergence, not a guarantee of reaction. The In Control metric measures recent respect, not future behavior. No indicator replaces independent analysis.
🔶 DISCLAIMER
This script is provided strictly for educational and informational purposes. It is not financial advice, an investment recommendation, or a solicitation to buy or sell any financial instrument. Past behavior of any average, band, or cluster does not guarantee future results. Trading involves substantial risk. Always do your own research and manage risk independently. Индикатор

3m Cycles3m Cycles is a TradingView indicator that draws vertical lines on your chart at fixed clock-based time intervals — every 20 seconds, every 1 minute, and every 3 minutes — to help you visually track recurring market cycles.
Each cycle is fully independent and configurable: you can set the line color, width, and style (solid, dashed, or dotted), control how far back and ahead the lines project, and choose which chart timeframes each cycle appears on. The 3-minute cycle acts as the master clock — all three cycles' visible windows shift forward together every time a new 3-minute boundary is crossed, keeping everything in sync. Lines are pre-drawn into the future so they're already on the chart before the candle forms, and they automatically disappear once they fall outside your configured lookback window. Индикатор

Auto Support and Resistance [3Commas]Auto Support and Resistance
This indicator maps market structure automatically. Instead of drawing levels by hand, it derives them from recent price action and volatility, then presents a single, consistent read of where price is trading, the zones around it, and the two most likely paths from here.
How it works (the method):
- Macro ceiling & floor — the highest high and lowest low over a configurable lookback window define the outer boundary of the current regime (Macro Resistance / Macro Support).
- Local decision levels — the indicator tracks confirmed swing pivots (a high or low with a set number of bars on each side) and selects the nearest significant pivot above and below price, ignoring any that hug the current price so the levels stay meaningful. These become the Local High / Decision and Local Low. Equilibrium marks the current price.
- Volatility-scaled zones — the Resistance, Support and Accumulation zones are sized from Average True Range (ATR), so they widen on volatile symbols and tighten on calm ones, staying meaningful across different assets and timeframes.
- Two scenario paths — from equilibrium the script projects a bullish and a bearish path as multi-leg zig-zags scaled to ATR, each ending at a target. You choose what the targets represent: an ATR-based measured move (default), the nearest local levels, or the macro boundary. Measured-move targets are capped to the macro range so they always stay on the chart.
How to use it:
1. Add it to any chart and timeframe. Levels, zones and paths populate automatically.
2. Tune detection in Settings: "Macro lookback" sets how far back the ceiling/floor is measured; "Swing sensitivity" controls how strong a pivot must be to count; "Min level distance", "Zone width" and "Scenario swing size" refine spacing; "Scenario target" picks what the arrows aim at.
3. Read it as a decision map: is price nearer the ceiling or the floor, which local level must break first, and which scenario path is in play.
Optional manual mode: turn "Auto-detect" off to enter your own levels, zones and targets — useful for presenting a pre-planned idea.
Colors: red = resistance/ceiling, blue = equilibrium/current price, green = support/floor. White = projected scenario paths.
This tool is for chart visualisation and educational purposes only and is not financial advice. It does not generate buy/sell signals. Индикатор

Regime-Conditional Correlation [RC Tools]RC Tools — Regime-Conditional Correlation
─────────────────────────────────────────────────────────────
█ OVERVIEW
Plain rolling correlation between two assets is well-covered ground. The angle here: correlation is not a constant — it changes with the market regime. This tool computes rolling correlation against a second symbol of your choice and buckets it by the same regime framework as the Regime Classifier, so you can see whether a correlation you're relying on actually holds up across market conditions, or only shows up in one of them.
█ WHAT IT DOES
Plots rolling correlation (Pearson, default 20-bar window) between the current chart's symbol and a compare symbol you choose. Colours the background by the current market regime (Trending — Expansion/Exhaustion, Ranging — Quiet/Volatile), using the identical directionality × volatility-percentile logic as the Regime Classifier. A table shows the current regime and correlation, plus the average correlation, its standard deviation, and the sample count for each of the four regimes historically.
█ THE THEORY BEHIND IT
A single "the correlation is 0.8" number hides a lot. Two assets can be tightly linked during calm trending markets and decouple completely during volatile chop — or vice versa. Regime-conditioning the correlation surfaces that structure instead of averaging it away. This matters directly for anything relying on a stable cross-asset relationship: hedges, pairs, or diversification assumptions that quietly break exactly when you need them most (in the volatile regime).
█ HOW IT IS CALCULATED
CORRELATION: standard Pearson correlation between the current symbol's close and the compare symbol's close (fetched via request.security on the same timeframe), over a rolling window (default 20 bars).
REGIME: identical to the Regime Classifier — Efficiency Ratio for directionality, percentile-ranked realised volatility for volatility state, crossed to give four states. Regime is measured on the CURRENT chart's own price action, not the compare symbol. See the Regime Classifier's description for the full methodology.
The correlation reading and the regime are both "as of now" — contemporaneous — so unlike the Regime Classifier's forward-return table, no forward-looking attribution is needed here: each confirmed bar's correlation is added directly to the running average for whichever regime was active on that same bar.
█ SETTINGS & CONFIGURATION
• Compare Symbol (default BTCUSD) — the second asset to correlate against
• Correlation Length (default 20 bars)
• Regime settings mirror the Regime Classifier exactly (Efficiency Ratio lookback, directionality threshold, realised vol lookback, percentile window, volatility percentile threshold) — keep these in sync if you run both indicators together
• Paint Main Chart Background — off by default; enable on only one of the two indicators if running both, to avoid overlapping backgrounds
█ HOW TO USE IT
Check whether a correlation you're relying on is regime-dependent before trusting it. Example: if a hedge shows strong negative correlation in Ranging — Quiet but the average correlation flips or weakens in Ranging — Volatile, that hedge may not protect you exactly when volatility spikes. Always check the sample count (N) per regime before drawing conclusions — a regime with few historical bars hasn't been tested enough to trust its average.
█ LIMITATIONS
• Correlation is measured over a short rolling window and is noisy by nature — it will swing even when the underlying relationship is stable.
• The compare symbol is fetched via request.security on the same timeframe; illiquid symbols, different exchange sessions, or timezone misalignment can introduce lag or missing values.
• Regime classification carries the same caveats as the Regime Classifier: it is backward-looking by construction, unstable near threshold boundaries, and needs substantial history to be reliable.
• Per-regime correlation statistics accumulate only from where the chart's loaded history begins — early sample counts are small and not yet statistically meaningful.
• This script does NOT repaint. All classification and correlation display values update on confirmed bar close only.
█ DISCLAIMER
For educational and informational purposes only. Nothing here is financial advice. Past correlation between any two assets does not indicate future results. Trade at your own risk.
Индикатор
