Adaptive Trend TrackerHere is the professional Functional Description for your indicator completely in English and without any emojis:
Adaptive Trend Tracker — Functional Description
Overview
The Adaptive Trend Tracker is an advanced, volatility-based trend-following indicator designed to identify market trends and reversals on trading charts. This indicator utilizes the Average True Range (ATR) to dynamically generate support and resistance bands that adapt to shifting market volatility. Built on Pine Script v6, the visual design and color palette have been fully optimized to maintain high contrast and clear readability on white or light-themed charting backgrounds.
Key Features
Dynamic Volatility Tracking: It automatically adjusts support and resistance levels based on real-time market momentum and volatility, significantly reducing false signals during flat or consolidating markets.
Light Theme Optimization: Standard bright colors tend to look faded on white backgrounds; therefore, this script uses high-contrast Deep Teal Green for bullish conditions and Crimson Red for bearish conditions to maximize clarity.
Dual ATR Modes: Users can seamlessly toggle between the standard TradingView ATR (RMA-based) and a Simple Moving Average (SMA) based ATR calculation.
Visual Cloud and Labels: Immediate trend shifts are confirmed visually on the chart via highly visible BUY/SELL labels alongside a supporting background cloud fill.
How It Works
Bullish Trend (Buy): When the price crosses above the dynamic resistance line (Lower Band), the market trend flips to Bullish. The tracking line turns teal green, and a clear BUY signal label is plotted on the chart.
Bearish Trend (Sell): When the price breaks below the dynamic support line (Upper Band), the market trend flips to Bearish. The tracking line turns crimson red, and a clear SELL signal label is plotted on the chart.
Trailing Stop Loss: The continuous plotting line that shadows the price action can also be effectively utilized by traders as a dynamic trailing stop-loss level.
Settings and Inputs
ATR Length (Default: 10): Specifies the historical bar count used to calculate the market's current volatility.
ATR Multiplier (Default: 3.0): Controls the distance between the price and the dynamic bands. Increasing this value (e.g., 4.0) filters out noise for stronger signals, while decreasing it (e.g., 2.0) creates tighter, more frequent signals with increased risk.
Use Standard ATR?: When checked, the script uses the standard TradingView mathematical formula (RMA). When unchecked, it switches to an SMA-based calculation.
Enable Cloud Highlight: Allows users to toggle the background gradient cloud on or off for clean chart visualization.
Alerts Setup
This indicator comes equipped with ready-to-use alert configurations:
Bullish Trend Alert: Triggers immediately upon the confirmation of a new BUY signal.
Bearish Trend Alert: Triggers immediately upon the confirmation of a new SELL signal.
Trend Direction Change: Dispatches an automated notification whenever the overall market bias flips between bullish and bearish states. Indikator

Indikator

Supertrend Confirmed Close | forexs# Supertrend Confirmed Close
Supertrend Confirmed Close is an open source modification of the classic ATR based Supertrend indicator. Its main purpose is to confirm trend reversals only after the current bar has closed, so temporary intrabar crossings do not create confirmed Buy or Sell signals.
## How it works
The indicator builds trailing volatility bands from Average True Range and a user selected price source.
Default settings:
ATR Period: 10
ATR Multiplier: 3.0
Source: HL2
ATR Method: Wilder ATR
An SMA of True Range can also be selected as an alternative ATR calculation.
During a bullish state, the lower Supertrend band trails price. During a bearish state, the upper Supertrend band trails price.
A bullish reversal is confirmed when the previous trend state is bearish and a completed bar closes above the previous bearish Supertrend band.
A bearish reversal is confirmed when the previous trend state is bullish and a completed bar closes below the previous bullish Supertrend band.
## What is different in this version
This implementation adds explicit closed bar confirmation to the reversal logic. The trend state, Buy signal, Sell signal, and direction change alerts are not confirmed until the bar is complete.
It also includes an optional "Freeze Supertrend Line Until Candle Close" setting. When enabled, the displayed active Supertrend line remains at its previous confirmed value while the realtime bar is forming, then updates when the bar closes.
Other additions include Pine Script v6 compatibility, organized inputs, optional trend change circles, trend highlighting, and separate alert conditions for bullish, bearish, and any confirmed direction change.
## Signals and alerts
BUY marks a confirmed change from a bearish Supertrend state to a bullish Supertrend state.
SELL marks a confirmed change from a bullish Supertrend state to a bearish Supertrend state.
These labels describe the indicator's trend state. They are not forecasts or guarantees of future price direction.
Alert conditions are provided for confirmed Buy, confirmed Sell, and confirmed direction changes. Users may also select TradingView's Once Per Bar Close frequency when creating an alert.
## Settings
Users can adjust the ATR period, ATR multiplier, source, and ATR calculation method. Buy and Sell labels, trend change circles, trend highlighting, and realtime line freezing can also be enabled or disabled.
## Limitations
Supertrend is a trend following method. In sideways or choppy markets it can change direction frequently and produce false or late signals.
Closed bar confirmation intentionally waits until the bar is complete. This avoids treating temporary intrabar crossings as confirmed reversals, but it can also make signals occur later than an intrabar implementation.
ATR settings materially affect sensitivity. Different symbols, market conditions, and timeframes can produce different behavior.
This indicator does not include position sizing, stop loss rules, profit targets, trade management, or performance guarantees. It should not be treated as a complete trading system.
For signal based use, apply it to standard price charts such as regular candles or bars rather than synthetic chart types whose prices do not represent directly traded market prices.
## Credits and open source reuse
This script reuses and modifies the open source SuperTrend implementation published by TradingView author KivancOzbilgic. That publication also credits everget, Alex Orekhov, for inspiration related to highlighting, signals, and alerts.
The reused Supertrend logic is credited here in accordance with TradingView's open source reuse requirements. This modified publication should remain open source unless the necessary permission for another publication mode has been obtained from the original author.
## Disclaimer
This indicator is provided for technical analysis and educational purposes only. It is not financial or investment advice. No signal or indicator can guarantee a profitable outcome.
Indikator

Indikator

Gold Session Map & Sweep Signals# Gold Session Map & Sweep Signals — Setup Guide
*Pine Script v6 indicator for TradingView. Companion to the session breakdown.*
---
## What it does
Four things, in order of how much you should trust them:
1. **Shades the four session blocks** on your chart — Asian, London, the London–NY overlap (deliberately the boldest shade), and the New York afternoon. This is just fact; it's a map.
2. **Draws the Asian range** as a box that extends through the rest of the day. This is the reference level everything else keys off.
3. **Tracks ADR(20) and how much of it today has already spent.** A gauge of remaining fuel.
4. **Fires sweep-reclaim signals** with a stop and target. This is a hypothesis, not a fact — treat it accordingly.
---
## Installing it
1. Open TradingView, load an **XAUUSD** chart on a **5-minute or 15-minute** timeframe.
2. Open the **Pine Editor** (bottom panel).
3. Delete the template code, paste in the whole `.pine` file.
4. Click **Save**, give it a name, then **Add to chart**.
**Timeframe matters.** The logic needs intraday bars to resolve sessions. 5m or 15m is the sweet spot — 1m is noisy and generates false sweeps, and anything from 4h up will not work at all because a single bar spans multiple sessions.
---
## The signal, in plain English
The setup this codes is the pattern that shows up repeatedly in gold session behaviour: **London opens, runs the stops sitting just outside the Asian range, and then reverses.**
The script waits for all of the following:
| # | Condition | Why |
|---|---|---|
| 1 | Asian session has **closed** | The range must be finished before it can be swept |
| 2 | We are in an **allowed session** (London + overlap by default) | Asian-hours breaks are noise |
| 3 | Price traded **beyond** the Asian high or low by at least 5% of the range | Filters out one-tick brushes that aren't real sweeps |
| 4 | The bar **closed back inside** the range | This is the reclaim — the actual signal |
| 5 | **ADR used is under 90%** | Gold that has already run its daily range has no fuel left |
| 6 | Not inside the **news blackout** (±15 min around 12:30 UTC) | Don't get run over by CPI |
| 7 | No position already open, and this direction hasn't fired today | One clean shot per side |
**Entry** is the close of the reclaim bar. **Stop** goes beyond the sweep extreme plus a 0.25×ATR buffer. **Target** is 2R by default.
A long fires when the Asian *low* is swept and reclaimed. A short fires when the Asian *high* is swept and reclaimed. This is deliberately counter-intuitive — you are buying the failed breakdown, not the breakout.
---
## Settings worth changing
**`Take signals during`** — defaults to *London + Overlap*. If you can only watch your evening (16:00–20:00 EAT), switch to **Overlap only**. Fewer signals, better ones.
**`Minimum sweep depth`** — 0.05 (5% of the Asian range). Raise it to 0.10–0.15 if you're getting signals on trivial pokes; lower it if you're getting none.
**`Target (R multiple)`** — 2.0. At 2R you need above ~33% strike rate to break even. If your tally shows a high hit rate but you keep giving profits back, try 1.5R.
**`Require trend agreement (EMA filter)`** — off by default, because this is a mean-reversion setup and a trend filter fights it. Turn it on if you only want sweeps that resolve *with* the prevailing direction; expect roughly half as many signals.
**`Blackout centre`** — set to 12:30 UTC, which is 08:30 ET, which is when US CPI, PPI and payrolls land. If you're on a chart whose exchange timezone differs, this is defined in your chosen **session timezone**, so leave that on UTC.
**`Dashboard clock`** — set to `Africa/Nairobi`, which is your time. Display only; it changes nothing in the logic.
---
## Why sessions are defined in UTC
Because London and New York observe daylight saving and you don't. If you define sessions in local time, every window silently shifts by an hour twice a year and your signals drift with them. Defining them in UTC pins them to a fixed reference, and the dashboard handles the conversion for your eyes.
If you do change the session timezone, you must also change all four session strings to match. That's why the input is grouped with a warning.
---
## Reading the dashboard
| Row | What it tells you |
|---|---|
| **Session** | Which block you're in right now, colour-coded |
| **Signals allowed** | Green "yes" or the specific reason it's blocked |
| **Asian high / low** | The levels being watched |
| **ADR(20)** | Average daily range over 20 days, in dollars |
| **ADR used** | Green under your ceiling, amber over it, red past 130% (exhausted) |
| **Position** | Whether a signal is currently live |
| **Signal record** | Running W / L / flat tally with hit rate |
---
## Alerts
Right-click the chart → **Add alert** → set Condition to the indicator, then pick one of:
- *Gold — long sweep reclaim*
- *Gold — short sweep reclaim*
- *Gold — target reached*
- *Gold — stop reached*
The script also fires `alert()` calls carrying the actual entry, stop and target prices, so if you create an **"Any alert() function call"** alert you'll get a message like:
```
XAUUSD LONG entry 4412.35 stop 4398.10 target 4440.85
```
Set the trigger to **Once per bar close**, not on every tick. Signals are defined on the close of the reclaim bar; intrabar alerts will fire and un-fire as the bar moves.
---
## What this is not — read this bit
**The W/L tally is not a backtest.** It is a rough count of how the plotted signals resolved on whatever history your chart happens to have loaded. It ignores spread, commission and slippage — all three of which matter enormously on gold, where retail spreads run 12–40¢ depending on session. It assumes you got filled exactly at the bar close and exactly at your stop or target. And when a single bar touches both levels, it assumes the stop hit first — pessimistic, but not necessarily right.
**Signals are close-of-bar.** On a 15m chart you may be entering 15 minutes after the actual sweep low. That is a real cost the tally doesn't capture.
**Sample size will be small.** One or two signals a day at most, and the "one per direction per day" rule caps it further. Fifty signals is not evidence of an edge.
**The setup can fail structurally.** Sweep-and-reclaim is a mean-reversion pattern. On genuine trend days — an FOMC surprise, a CPI shock — the "sweep" isn't a sweep, it's the start of a move that keeps going. That is precisely what the ADR filter and news blackout are trying to avoid, and they will not always succeed.
**Forward-test before risking anything.** Run it on a demo account through at least a month of sessions, including at least one FOMC and one CPI, before you let it inform a real position.
---
## If you want to backtest it properly
Convert it to a strategy. Change the header:
```pinescript
//@version=6
strategy("Gold Sweep Strategy", "Gold Sweep", overlay = true,
initial_capital = 10000,
default_qty_type = strategy.percent_of_equity,
default_qty_value = 2,
commission_type = strategy.commission.cash_per_contract,
commission_value = 0.30,
slippage = 2,
calc_on_every_tick = false)
```
Then delete the whole trade-state-machine block and replace the entry section with:
```pinescript
if longSig
stopL = math.min(low, nz(low , low)) - atr * slBufAtr
tgtL = close + (close - stopL) * rr
strategy.entry("L", strategy.long)
strategy.exit("L x", "L", stop = stopL, limit = tgtL)
if shortSig
stopS = math.max(high, nz(high , high)) + atr * slBufAtr
tgtS = close - (stopS - close) * rr
strategy.entry("S", strategy.short)
strategy.exit("S x", "S", stop = stopS, limit = tgtS)
if inFlat and strategy.position_size != 0
strategy.close_all("flatten")
```
Set `slippage` and `commission_value` to match your actual broker — with defaults left at zero, a strategy tester will flatter almost anything. The Strategy Tester tab then gives you real drawdown, profit factor and trade-by-trade detail, which the indicator's tally cannot.
---
## Files
- `gold-session-sweep.pine` — the indicator, paste-ready
---
*This is a charting tool and a research exercise, not financial advice, and I'm not a financial adviser. Gold at $4,400 with 20:1 leverage moves roughly $440 of notional per contract per 1% — position size accordingly, and assume any pattern can stop working the day you start relying on it.*
**Sources for the underlying logic:** the session structure and behaviour patterns come from the research in the earlier session briefing — chiefly ( www.mql5.com ) for the sweep pattern and ADR framework, (tiomarkets.com) for the overlap concentration, and the (www.tradingview.com) for session handling. Indikator

Sessions & Killzones with Time Profile [FEELS]Draws your sessions and killzones, then tells you what they have actually done on this symbol: which session takes the day's high most often, which hours of the day the extremes really land on, and how much of that is just chance.
That last part is the whole point. Cut any price series into days and its highs and lows crowd toward the edges of the day on their own, so a plain hour-by-hour count shows a spike at the day boundary even when there is nothing there to find. On Bitcoin the hour that looks busiest on a raw count turns out to be the quietest one once chance is taken out. Every figure in this script has that subtracted first.
FEATURES
- Four sessions you can rename, recolour and re-time, drawn as range boxes
- Labels on closed days naming which session held the day's high and which held its low, thinned so they do not collide
- Rotating notes describing what the day did: sweeps of the previous session, inside sessions, ranges against their own recent normal
- Notes are ranked by how rare they are on this symbol, so you are not reading the same line every day
- Hour profile of where the day's high and low land, measured against a random-walk baseline
- The profile can be stated in words in the panel, drawn as a strip under price, or drawn as a block in the right margin. Words are the default; the two drawn forms are checkboxes and ship switched off
- Session and hour figures always carry the number of days behind them
- On symbols that trade inside a single session the session names drop out of the wording and the hour layer takes over the panel
- Time zone selector for sessions, the day boundary and the profile
- Three alerts
- Tooltips on the inputs that need explaining
HOW TO USE IT
Open it on a symbol you trade and read the panel's first line. That is the standing fact about this instrument: which session holds the day's high most often, and how much of that is just chance. On some symbols the gap is wide. On others there is barely a gap, and that is worth knowing too.
Then the hours. The crowded ones are when this symbol has historically set the extremes of its day; the empty ones are when it has not. That tells you which part of the day is worth sitting at the screen for, and whether a move happening right now is landing in a window where this symbol usually turns or in one where it usually does not.
The rotating lines are the day-to-day layer. They say whether the session that just closed did something unusual here: a sweep of the previous session that was given straight back, a range at a fraction of its normal size, a day whose high and low were both set inside one session.
An example of what the correction is worth. On Bitcoin's hourly history, chance alone would put 11.7% of all daily highs in the 23:00 hour, purely because it sits at the edge of the day. The measured figure is 6.5%. Counted raw it looks like one of the busiest hours on the clock. Counted properly it is the emptiest.
None of it is an instruction to buy or sell. It describes what has already happened, with the sample size attached so you can judge how much weight it carries.
HOW TO READ IT
1. A box is one session's range on one day. The label above or below the day's extreme names the session that produced it.
2. In the profile, a bar rising from a row's centre line means that hour holds the extreme more often than chance would give it. A grey bar hanging below means it holds fewer. The grey is not filler. On most symbols the hour that looks busiest raw is a grey bar once chance is removed.
3. The panel's first line is the standing fact about this symbol: which session holds the high most often, next to what chance alone would produce, with the day count.
4. The lines below it change with the day. They are picked by rarity, so a fact that happens on most days here will rarely be the one shown.
5. Every figure carries its sample size. Sixty days is a hint. Six hundred is a distribution.
HOW IT WORKS
Each closed day is cut into its sessions. The session holding the day's high and the session holding the day's low are recorded, and so is the hour each extreme landed on.
Those counts mean nothing without a baseline. A day is a window, and the extreme of a random walk inside a window is not evenly placed: it sits near the edges far more often than the middle. That is the arcsine law, and it produces a convincing looking pattern out of pure noise. So every bar of every day contributes its own share of that baseline to the hour it sits on, using the discrete arcsine weights for a day of that many bars. Days with missing bars are handled by the same arithmetic.
What the profile shows is the difference: how often an hour actually held the extreme, minus how often chance would have handed it one. An hour with nothing above chance is drawn flat. Flat is information.
Ranges are compared in logarithmic terms against a rolling median of that session's own recent history, so a symbol whose price has tripled does not read as permanently explosive.
ORIGINALITY
Session boxes are common and this script does not claim to draw them better. What it adds is the measurement on top of them, and one specific correction inside that measurement.
Raw percentages are the usual way this is reported, and raw percentages of an extreme inside a window are dominated by the arcsine effect, which is a property of windows rather than of markets. Subtracting a per-day arcsine baseline, accumulating it by clock hour so that uneven days still work, and reporting only the difference is written from scratch here.
One thing worth admitting about how the notes got here. The rarity ranking exists because my first version did not have one and the panel was useless. Whichever family of notes happened to carry the biggest raw numbers led every single day: on a Nasdaq index future it opened with "New York made the day's high" on 41% of days, which is perfectly true and tells you nothing, because on that instrument New York makes the high almost always. Scoring each note by how rare it is on that particular symbol is what turned the panel from wallpaper into something worth reading.
HONESTY
- The day still forming is not counted into anything and gets no labels. It joins the statistics when it closes.
- Statistics are computed from closed days only. A label, and the box of a session that has ended, never change afterwards. The box of the session currently running extends as it runs, which is the one thing on screen that is still moving.
- The figures depend on how much history your chart has loaded, and TradingView loads different depths on different timeframes. The same symbol can honestly show a different day count on 15m than on 1H. The count is on screen for that reason.
- Below the minimum day count the profile is not drawn at all and the panel says so. Sessions, labels and notes still work.
- On a daily or higher timeframe there is no time of day to profile, and the script says so instead of drawing something meaningless.
- The profile describes where extremes have landed. It is not a forecast, and an hour standing above chance is not a reason to expect a turn.
- Each bar is attributed to the first session whose window contains it, so overlapping session definitions resolve to the earlier one instead of being counted twice.
- The arcsine baseline is a theoretical reference for a random walk, not a simulation of this symbol. I checked it against four hundred permutations of real hourly data and the worst disagreement was under one percentage point.
- TradingView allows a script a limited number of boxes and labels and removes the oldest past that, so the history shown is capped by the two day-count settings.
ALERTS
A day closed and the statistics updated. A session traded through the previous session's high or low. The day's extreme landed on an hour that holds them far more, or far less, often than chance.
SETTINGS
The four session windows are arbitrary and are yours to set: the defaults are full trading sessions, and they narrow to any killzone timing you work with, with the time zone switched by a selector. Everything measured follows the windows you set. The other main ones: "Days of session boxes" and "Days of labels" trade history against the drawing budget. "Minimum bars between labels" stops labels colliding on symbols that print few bars per day. "Minimum days before showing statistics" sets how much history the profile insists on. The profile has three independent display checkboxes and they can be combined. Out of the box only the panel wording is on, so switch on "strip" or "block" if you want the drawn forms shown in the screenshots. "Block height" and "Strip height" are separate, so the block can stay large while the strip sits close under price.
This is a descriptive tool for reading session structure. It is not financial advice and it does not predict price.
Indikator

Tabela de Volume por Corretora//@version=6
// ════════════════════════════════════════════════════════════════════
// TABELA — RANKING DE VOLUME POR CORRETORA
// Só o painel, sobre o gráfico de preço. Ordena da maior para a menor.
// ════════════════════════════════════════════════════════════════════
indicator("Tabela de Volume por Corretora", shorttitle="TAB VOL", overlay=true)
grpC = "⚙️ Geral"
autoTkr = input.bool(true, "Usar a moeda do gráfico (base automática)", group=grpC)
inUSD = input.bool(true, "Normalizar em USD (volume × preço)", group=grpC)
showBar = input.bool(true, "Mostrar barra de proporção", group=grpC)
txtSize = input.string("Pequeno", "Tamanho do texto", options= , group=grpC)
tblPos = input.string("Superior direito", "Posição", options= , group=grpC)
grpE = "🏦 Corretoras"
x1 = input.string("BINANCE", "1", inline="e1", group=grpE)
s1 = input.string("USDT.P", "", inline="e1", group=grpE)
x2 = input.string("BYBIT", "2", inline="e2", group=grpE)
s2 = input.string("USDT.P", "", inline="e2", group=grpE)
x3 = input.string("OKX", "3", inline="e3", group=grpE)
s3 = input.string("USDT.P", "", inline="e3", group=grpE)
x4 = input.string("BITGET", "4", inline="e4", group=grpE)
s4 = input.string("USDT.P", "", inline="e4", group=grpE)
x5 = input.string("MEXC", "5", inline="e5", group=grpE)
s5 = input.string("USDT.P", "", inline="e5", group=grpE)
x6 = input.string("GATEIO", "6", inline="e6", group=grpE)
s6 = input.string("USDT.P", "", inline="e6", group=grpE)
x7 = input.string("BINGX", "7", inline="e7", group=grpE)
s7 = input.string("USDT.P", "", inline="e7", group=grpE)
x8 = input.string("COINBASE", "8", inline="e8", group=grpE)
s8 = input.string("USD", "", inline="e8", group=grpE)
f_get(string ex, string sfx) =>
string tkr = autoTkr ? ex + ":" + syminfo.basecurrency + sfx : ex + ":" + sfx
nz(request.security(tkr, timeframe.period, volume * (inUSD ? close : 1.0), ignore_invalid_symbol = true))
f_fmt(float x) =>
float a = math.abs(x)
a >= 1e9 ? str.tostring(x / 1e9, "#.##") + "B" :
a >= 1e6 ? str.tostring(x / 1e6, "#.##") + "M" :
a >= 1e3 ? str.tostring(x / 1e3, "#.#") + "K" : str.tostring(x, "#.#")
v1 = f_get(x1, s1)
v2 = f_get(x2, s2)
v3 = f_get(x3, s3)
v4 = f_get(x4, s4)
v5 = f_get(x5, s5)
v6 = f_get(x6, s6)
v7 = f_get(x7, s7)
v8 = f_get(x8, s8)
total = v1 + v2 + v3 + v4 + v5 + v6 + v7 + v8
f_pos() =>
tblPos == "Superior esquerdo" ? position.top_left :
tblPos == "Inferior direito" ? position.bottom_right :
tblPos == "Inferior esquerdo" ? position.bottom_left : position.top_right
f_size() =>
txtSize == "Minúsculo" ? size.tiny : txtSize == "Normal" ? size.normal : txtSize == "Grande" ? size.large : size.small
var table t = table.new(f_pos(), 4, 10, border_width=1, frame_width=1, frame_color=color.new(color.gray, 60), bgcolor=color.new(color.black, 20))
if barstate.islast
sz = f_size()
vols = array.from(v1, v2, v3, v4, v5, v6, v7, v8)
names = array.from(x1, x2, x3, x4, x5, x6, x7, x8)
idx = array.sort_indices(vols, order.descending)
table.cell(t, 0, 0, "#", text_color=color.gray, text_size=sz)
table.cell(t, 1, 0, "Corretora", text_color=color.gray, text_size=sz)
table.cell(t, 2, 0, inUSD ? "Vol (USD)" : "Vol", text_color=color.gray, text_size=sz)
table.cell(t, 3, 0, showBar ? "Share" : "%", text_color=color.gray, text_size=sz)
for i = 0 to 7
j = array.get(idx, i)
v = array.get(vols, j)
nm = array.get(names, j)
sh = total > 0 ? v / total * 100 : 0
col = i == 0 ? color.new(#00E676, 0) : i == 1 ? color.new(#B2FF59, 0) : i < 4 ? color.new(color.white, 10) : color.new(color.white, 45)
bar = showBar ? " " + str.repeat("▌", math.max(1, math.round(sh / 4)), "") : ""
table.cell(t, 0, i + 1, str.tostring(i + 1), text_color=color.new(color.gray, 20), text_size=sz)
table.cell(t, 1, i + 1, nm, text_color=col, text_size=sz, text_halign=text.align_left)
table.cell(t, 2, i + 1, f_fmt(v), text_color=col, text_size=sz, text_halign=text.align_right)
table.cell(t, 3, i + 1, str.tostring(sh, "#.#") + "%" + bar, text_color=col, text_size=sz, text_halign=text.align_left)
table.cell(t, 0, 9, "", bgcolor=color.new(color.black, 100))
table.cell(t, 1, 9, "TOTAL", text_color=color.white, text_size=sz)
table.cell(t, 2, 9, f_fmt(total), text_color=color.white, text_size=sz, text_halign=text.align_right)
table.cell(t, 3, 9, "100%", text_color=color.new(color.gray, 20), text_size=sz, text_halign=text.align_left)
Indikator

Indikator

Volume Top 8 Corretoras//@version=6
// ════════════════════════════════════════════════════════════════════
// VOLUME TOP 8 CORRETORAS
// Volume das 8 maiores exchanges simultaneamente no gráfico,
// empilhado (stacked) ou em linhas separadas, com painel de share %.
// ════════════════════════════════════════════════════════════════════
indicator("Volume Top 8 Corretoras", shorttitle="VOL TOP8", format=format.volume, precision=0)
// ───────────────────────── GERAL ─────────────────────────
grpC = "⚙️ Geral"
autoTkr = input.bool(true, "Usar a moeda do gráfico (base automática)", group=grpC,
tooltip="LIGADO: monta EXCHANGE:BASE+SUFIXO (ex: BINANCE:BTC + USDT.P). DESLIGADO: o campo da direita vira o par completo (ex: BTCUSDT.P).")
inUSD = input.bool(true, "Normalizar em USD (volume × preço)", group=grpC,
tooltip="Essencial: cada corretora reporta volume em unidade diferente (moeda, contratos, USD).")
stacked = input.bool(true, "Modo empilhado", group=grpC,
tooltip="Ligado = colunas empilhadas (total + composição). Desligado = 8 linhas separadas.")
showTot = input.bool(false, "Linha do volume total", group=grpC)
maLen = input.int(21, "Média móvel do total", minval=1, group=grpC)
showTbl = input.bool(true, "Mostrar painel", group=grpC)
tblPos = input.string("Superior direito", "Posição do painel", options= , group=grpC)
// ─────────────────────── CORRETORAS ──────────────────────
//
grpE = "🏦 Corretoras"
u1 = input.bool(true, "", inline="e1", group=grpE)
x1 = input.string("BINANCE", "", inline="e1", group=grpE)
s1 = input.string("USDT.P", "", inline="e1", group=grpE)
k1 = input.color(#F0B90B, "", inline="e1", group=grpE)
u2 = input.bool(true, "", inline="e2", group=grpE)
x2 = input.string("BYBIT", "", inline="e2", group=grpE)
s2 = input.string("USDT.P", "", inline="e2", group=grpE)
k2 = input.color(#FF7A00, "", inline="e2", group=grpE)
u3 = input.bool(true, "", inline="e3", group=grpE)
x3 = input.string("OKX", "", inline="e3", group=grpE)
s3 = input.string("USDT.P", "", inline="e3", group=grpE)
k3 = input.color(#B388FF, "", inline="e3", group=grpE)
u4 = input.bool(true, "", inline="e4", group=grpE)
x4 = input.string("BITGET", "", inline="e4", group=grpE)
s4 = input.string("USDT.P", "", inline="e4", group=grpE)
k4 = input.color(#00D1B2, "", inline="e4", group=grpE)
u5 = input.bool(true, "", inline="e5", group=grpE)
x5 = input.string("MEXC", "", inline="e5", group=grpE)
s5 = input.string("USDT.P", "", inline="e5", group=grpE)
k5 = input.color(#1BC49C, "", inline="e5", group=grpE)
u6 = input.bool(true, "", inline="e6", group=grpE)
x6 = input.string("GATEIO", "", inline="e6", group=grpE)
s6 = input.string("USDT.P", "", inline="e6", group=grpE)
k6 = input.color(#E6007A, "", inline="e6", group=grpE)
u7 = input.bool(true, "", inline="e7", group=grpE)
x7 = input.string("BINGX", "", inline="e7", group=grpE)
s7 = input.string("USDT.P", "", inline="e7", group=grpE)
k7 = input.color(#7BE0FF, "", inline="e7", group=grpE)
u8 = input.bool(true, "", inline="e8", group=grpE)
x8 = input.string("COINBASE", "", inline="e8", group=grpE)
s8 = input.string("USD", "", inline="e8", group=grpE)
k8 = input.color(#2E7CF6, "", inline="e8", group=grpE)
// ───────────────────────── FUNÇÕES ───────────────────────
f_get(string ex, string sfx) =>
string tkr = autoTkr ? ex + ":" + syminfo.basecurrency + sfx : ex + ":" + sfx
nz(request.security(tkr, timeframe.period, volume * (inUSD ? close : 1.0), ignore_invalid_symbol = true))
f_fmt(float x) =>
float a = math.abs(x)
a >= 1e9 ? str.tostring(x / 1e9, "#.##") + "B" :
a >= 1e6 ? str.tostring(x / 1e6, "#.##") + "M" :
a >= 1e3 ? str.tostring(x / 1e3, "#.#") + "K" : str.tostring(x, "#.#")
// IMPORTANTE: request.security precisa ser chamado incondicionalmente.
r1 = f_get(x1, s1)
r2 = f_get(x2, s2)
r3 = f_get(x3, s3)
r4 = f_get(x4, s4)
r5 = f_get(x5, s5)
r6 = f_get(x6, s6)
r7 = f_get(x7, s7)
r8 = f_get(x8, s8)
v1 = u1 ? r1 : 0.0
v2 = u2 ? r2 : 0.0
v3 = u3 ? r3 : 0.0
v4 = u4 ? r4 : 0.0
v5 = u5 ? r5 : 0.0
v6 = u6 ? r6 : 0.0
v7 = u7 ? r7 : 0.0
v8 = u8 ? r8 : 0.0
total = v1 + v2 + v3 + v4 + v5 + v6 + v7 + v8
// Somas acumuladas para o efeito de empilhamento
c8 = total
c7 = v1 + v2 + v3 + v4 + v5 + v6 + v7
c6 = v1 + v2 + v3 + v4 + v5 + v6
c5 = v1 + v2 + v3 + v4 + v5
c4 = v1 + v2 + v3 + v4
c3 = v1 + v2 + v3
c2 = v1 + v2
c1 = v1
// ───────────────────────── PLOTS ─────────────────────────
// Colunas empilhadas: do maior acumulado para o menor,
// cada camada cobre a anterior formando a pilha.
plot(stacked ? c8 : na, "Corretora 8 (barra)", color=k8, style=plot.style_columns)
plot(stacked ? c7 : na, "Corretora 7 (barra)", color=k7, style=plot.style_columns)
plot(stacked ? c6 : na, "Corretora 6 (barra)", color=k6, style=plot.style_columns)
plot(stacked ? c5 : na, "Corretora 5 (barra)", color=k5, style=plot.style_columns)
plot(stacked ? c4 : na, "Corretora 4 (barra)", color=k4, style=plot.style_columns)
plot(stacked ? c3 : na, "Corretora 3 (barra)", color=k3, style=plot.style_columns)
plot(stacked ? c2 : na, "Corretora 2 (barra)", color=k2, style=plot.style_columns)
plot(stacked ? c1 : na, "Corretora 1 (barra)", color=k1, style=plot.style_columns)
// Modo linhas separadas
plot(stacked ? na : v1, "Corretora 1 (linha)", color=k1, linewidth=2)
plot(stacked ? na : v2, "Corretora 2 (linha)", color=k2, linewidth=2)
plot(stacked ? na : v3, "Corretora 3 (linha)", color=k3, linewidth=2)
plot(stacked ? na : v4, "Corretora 4 (linha)", color=k4, linewidth=2)
plot(stacked ? na : v5, "Corretora 5 (linha)", color=k5, linewidth=2)
plot(stacked ? na : v6, "Corretora 6 (linha)", color=k6, linewidth=2)
plot(stacked ? na : v7, "Corretora 7 (linha)", color=k7, linewidth=2)
plot(stacked ? na : v8, "Corretora 8 (linha)", color=k8, linewidth=2)
plot(showTot ? total : na, "Total", color=color.new(color.gray, 20), linewidth=1)
maT = ta.sma(total, maLen)
plot(maT, "Média do total", color=color.new(color.white, 30), linewidth=2)
// ───────────────────────── PAINEL ────────────────────────
f_pos() =>
tblPos == "Superior esquerdo" ? position.top_left :
tblPos == "Inferior direito" ? position.bottom_right :
tblPos == "Inferior esquerdo" ? position.bottom_left : position.top_right
var table t = table.new(f_pos(), 4, 10, border_width=1, frame_width=1, frame_color=color.new(color.gray, 60))
f_row(int r, string nm, float v, color c) =>
float sh = total > 0 ? v / total * 100 : 0
table.cell(t, 0, r, "●", text_color=c, text_size=size.small)
table.cell(t, 1, r, nm, text_color=color.new(color.white, 10), text_size=size.small, text_halign=text.align_left)
table.cell(t, 2, r, f_fmt(v), text_color=color.new(color.white, 10), text_size=size.small, text_halign=text.align_right)
table.cell(t, 3, r, str.tostring(sh, "#.#") + "%", text_color=c, text_size=size.small, text_halign=text.align_right)
if barstate.islast and showTbl
table.cell(t, 0, 0, "", bgcolor=color.new(color.black, 100))
table.cell(t, 1, 0, "Corretora", text_color=color.gray, text_size=size.small)
table.cell(t, 2, 0, inUSD ? "Vol (USD)" : "Vol", text_color=color.gray, text_size=size.small)
table.cell(t, 3, 0, "Share", text_color=color.gray, text_size=size.small)
f_row(1, x1, v1, k1)
f_row(2, x2, v2, k2)
f_row(3, x3, v3, k3)
f_row(4, x4, v4, k4)
f_row(5, x5, v5, k5)
f_row(6, x6, v6, k6)
f_row(7, x7, v7, k7)
f_row(8, x8, v8, k8)
table.cell(t, 0, 9, "", bgcolor=color.new(color.black, 100))
table.cell(t, 1, 9, "TOTAL", text_color=color.white, text_size=size.small)
table.cell(t, 2, 9, f_fmt(total), text_color=color.white, text_size=size.small, text_halign=text.align_right)
table.cell(t, 3, 9, total > maT ? "▲ " + str.tostring(total / maT, "#.##") + "x" : str.tostring(total / maT, "#.##") + "x",
text_color=total > maT ? color.lime : color.gray, text_size=size.small, text_halign=text.align_right)
// ───────────────────────── ALERTAS ───────────────────────
mult = input.float(2.0, "Alerta: volume total X vezes acima da média", minval=1, step=0.1, group="🔔 Alertas")
spike = total > maT * mult
alertcondition(spike, "Pico de volume agregado", "Volume agregado {{ticker}} acima de X vezes a média")
Indikator

ORH Breakout + Relative Volume + VWAP sparkyfromsataHow to use it
Add the script to an intraday chart—1-, 2-, 3-, 5-, 10-, or 15-minute timeframes are most appropriate.
Create a TradingView alert for “ORH Breakout: Volume + VWAP Confirmation.”
Set the alert frequency to Once Per Bar Close. That aligns the alert with your required condition of a close above the opening-range high.
The alert message will populate the chart symbol, closing price, and bar timestamp automatically through TradingView placeholders. alertcondition() is specifically supported in indicators, while time() session checks can use the supplied IANA timezone such as America/New_York.
Implementation notes
The script uses America/New_York, not a fixed EST offset, so it adjusts for U.S. daylight saving time automatically.
It measures “average volume of the opening range” as average volume per chart bar during 9:30–10:00. On a 5-minute chart, that is the mean of the six opening-range bars.
The breakout must occur in the 10:00–11:30 AM window. A close within the range that is already above ORH does not count; ta.crossover() requires the bar to cross from at/below ORH to above it.
For reliable OR construction, use chart intervals that divide evenly into 30 minutes. Indikator

Moody's modified V6 CM_Laguerre PPO %Rank Mkt Tops & BottomsHere is a comprehensive breakdown and write-up of the Pine Script indicator: "CM_Laguerre PPO PercentileRank Mkt Tops & Bottoms."
Developed by Chris Moody (using "CM" in his scripts) with structural logic adapted from community members TheLark, coondawg71, and ChartArt, this is a highly sophisticated momentum-based oscillator designed to identify macro market tops and bottoms.
------------------------------
## 🌟 Executive Summary
The script combines Laguerre Filter smoothed price data with a Percentage Price Oscillator (PPO) framework, then transforms the output into a Percentile Rank. Instead of showing you standard momentum numbers, it tells you how extreme the current trend is relative to the last 200 bars. It visually highlights overbought (market tops) and oversold (market bottoms) conditions via a dynamic, multi-colored histogram.
------------------------------
## 🔎 Core Technical Architecture
The script operates through three distinct layers:
## 1. The Laguerre Moving Average (Smoothing Layer)
Traditional moving averages often suffer from severe lag. This script uses a Laguerre Filter function (credited to TheLark), which uses a 4-element mathematical array (L0 to L3) to process the median price (hl2).
* It applies two damping settings: Short (0.4) and Long (0.8).
* Why it matters: Laguerre filters provide extreme smoothing with very low time lag, filtering out market "noise" without delaying the signal.
## 2. The Percentage Price Oscillator (PPO Layer)
Once the short and long Laguerre lines are calculated, the script builds two standard PPO lines:
* ppoT (for Tops) measures the percentage distance of the short average above the long average.
* ppoB (for Bottoms) measures the inverse relationship.
## 3. The Percentile Rank (The Scoring Layer)
This is where the script becomes unique. Instead of plotting the raw PPO value, it runs the percentrank() function over a user-defined lookback period (200 bars by default).
* It answers the question: "Out of the last 200 bars, what percentage of bars had a value lower than the current bar?"
* The output is locked into a fixed scale: 0 to 100 for bullish momentum (Tops) and 0 to -100 for bearish momentum (Bottoms).
------------------------------
## 📊 Visual Indicator Breakdown
When applied to a chart, the indicator prints a dual-sided histogram centered around a zero line.
| Signal Level | Value (Default) | Histogram Color | Market Meaning |
|---|---|---|---|
| Extreme Top | ≥ 90 | 🟥 Red | Market is heavily overbought. Exhaustion/Top is highly likely. |
| Warning Top | 70 to 89 | 🟧 Orange | Bullish momentum is becoming historically stretched. |
| Normal State | -69 to +69 | 🪙 Gray / Silver | Market is in a healthy or standard trading range. |
| Warning Bottom | -70 to -89 | 🟩 Green | Bearish momentum is becoming historically stretched. |
| Extreme Bottom | ≤ -90 | 🟩 Lime Green | Market is heavily oversold. Capitulation/Bottom is likely. |
------------------------------
## 💡 Trading Strategy & Implementation
This indicator functions best as an exhaustion meter. It is highly effective for counter-trend trading, mean reversion, or taking profit on existing trends.
* Spotting Tops (Shorting / Profit Taking): Watch for the histogram to surge past the 90 line and turn Red. When the histogram peaks and begins declining back below the red or orange lines, it signals that the buying climax has ended.
* Spotting Bottoms (Buying / Accumulation): Watch for the lower histogram to drop below the -90 line and turn Lime Green. When the histogram begins curling back up toward the zero line, it indicates seller exhaustion and a strong high-probability bounce or trend reversal.
## ⚠️ Important Risks & Considerations
Before relying on this script, keep these structural mechanics in mind:
1. Total Capital Loss Risks: Trying to call exact market tops or bottoms in strong trending environments (like crypto bull runs or stock market crashes) is inherently risky. Assets can stay at the 90th or -90th percentile much longer than your capital can remain solvent.
2. The "Lookback" Trap: The indicator is highly dependent on the lkbT and lkbB settings (200 bars). If a massive, once-in-a-decade move happens, the indicator will quickly max out at 100 or -100 and will stay pinned there, losing its granularity until those bars cycle out of the 200-period window.
Indikator

JackTrades NQ 250 LevelsThe JackTrades NQ Quarterly Levels indicator automatically plots horizontal levels at every 250-point interval on the Nasdaq futures (NQ) chart.
These quarterly levels — for example 29,500, 29,750, 30,000 and 30,250 — are used to highlight potential market stress points where price may experience increased reaction, hesitation, acceleration or liquidity interaction.
Rather than acting as standalone support or resistance signals, the levels are designed to provide additional price-location context when combined with market structure, liquidity, PD Arrays, volume profile, SMT and CISD.
The indicator automatically adapts as NQ moves through different price ranges and includes customisable line styling, price labels and label positioning for a clean chart layout.
Purpose: Identify recurring 250-point psychological and structural price levels that may act as areas of increased market sensitivity and provide additional confluence within the JackTrades trading framework.
Indikator

Equalhigh Gyaku Watch Neon CycleEQUALHIGH — GYAKU WATCH NEON CYCLE
OVERVIEW
Gyaku Watch, or 逆ウォッチ曲線, is a traditional Japanese price–volume analysis method designed to identify where an asset may be positioned within its market cycle.
The original method plots:
• Smoothed volume on the horizontal axis
• Smoothed price on the vertical axis
Under ideal conditions, the resulting path rotates counter-clockwise through eight stages, from early accumulation to expansion, distribution, decline and eventual capitulation.
Because Pine Script cannot use volume as an independent horizontal chart axis, this indicator converts the original concept into an automated eight-phase state engine. It measures the direction of smoothed price and volume, classifies their combined vector and displays the result in a futuristic neon interface.
The indicator is intended to answer three questions:
• Is participation increasing or decreasing?
• Is price confirming that change in participation?
• Which phase of the price–volume cycle is currently active?
THE EIGHT GYAKU WATCH PHASES
1 — ACCUMULATION
Price is broadly stable while volume begins to increase.
Interpretation: market participation may be returning before a visible price breakout.
Tactical reading: Watch for launch.
2 — IGNITION
Price and volume are rising together.
Interpretation: the advance is supported by increasing participation.
Tactical reading: Bullish confirmation.
3 — EXPANSION
Price continues rising while volume becomes relatively stable.
Interpretation: the established bullish trend remains active, although participation is no longer accelerating.
Tactical reading: Ride the trend or consider pullbacks.
4 — DISTRIBUTION
Price is still rising while volume begins to contract.
Interpretation: price strength is no longer confirmed by participation. The trend may be entering a mature stage.
Tactical reading: Protect profits.
5 — APEX
Price is broadly stable at an elevated level while volume continues declining.
Interpretation: demand may be fading and reversal risk is increasing.
Tactical reading: Reversal risk.
6 — BREAKDOWN
Price and volume are falling together.
Interpretation: bearish movement is confirmed by deteriorating participation.
Tactical reading: Bearish confirmation.
7 — DESCENT
Price continues falling while volume becomes relatively stable.
Interpretation: the bearish trend remains active without a clear sign of renewed accumulation.
Tactical reading: Avoid or sell rallies.
8 — CAPITULATION
Price is falling while volume begins to increase.
Interpretation: selling activity is accelerating. This may represent capitulation, but it is not automatically a bottom.
Tactical reading: Watch for a base.
MAIN DISPLAY
GYAKU PHASE LINE
The colored step line shows the active phase from 1 to 8.
Each transition is marked with a white diamond. The background glow changes color according to the current phase.
PRICE VECTOR — CYAN
Shows the normalized direction and strength of the smoothed price movement.
• Rising cyan line: improving price vector
• Falling cyan line: deteriorating price vector
VOLUME VECTOR — MAGENTA
Shows the normalized direction and strength of the smoothed volume movement.
• Rising magenta line: participation is expanding
• Falling magenta line: participation is contracting
ENERGY COLUMNS
The columns at the bottom represent the combined magnitude of the price and volume vectors.
High energy means the current phase is being driven by a strong movement. It does not indicate whether that movement is bullish or bearish.
NEON DASHBOARD
The dashboard displays:
• Current system status
• Active phase and phase name
• Price vector
• Volume vector
• Energy and trust scores
• Direction of rotation
• Number of bars spent in the current phase
• Tactical interpretation
CYCLE WHEEL
The compact wheel shows the eight phases in their theoretical counter-clockwise order.
The highlighted cell represents the current phase.
Price increases toward the top of the wheel, while volume increases toward the right.
ROTATION READING
COUNTER-CLOCKWISE ↺
The price–volume vector is rotating in the theoretical direction of the traditional Gyaku Watch cycle.
CLOCKWISE ↻
The vector is moving against the theoretical cycle. This may occur during irregular markets, sudden news reactions or unstable transitions.
VECTOR STABLE
The amount of rotation is below the selected threshold.
Rotation is contextual information, not an independent trading signal.
CHART MARKERS
GW1 — ACCUMULATION SETUP
Displayed when the indicator transitions from Phase 8 to Phase 1.
This represents a possible movement from capitulation into early accumulation. Confirmation is still required.
GW+ — BULLISH IGNITION
Displayed when the indicator enters Phase 2 from Phase 1 or Phase 8 and passes the selected trend and ATR filters.
This is the strongest bullish transition used by the indicator.
GW4 — DISTRIBUTION WARNING
Displayed when the indicator enters Phase 4 from Phase 2 or Phase 3.
Price is still rising, but volume participation is contracting. This is a warning to manage risk rather than an automatic short signal.
GW− — BEARISH IGNITION
Displayed when the indicator enters Phase 6 from Phase 4 or Phase 5 and passes the selected trend and ATR filters.
This is the strongest bearish transition used by the indicator.
DEFAULT SETTINGS
The default configuration is designed primarily for liquid equities on daily charts:
• Price smoothing: 25 periods
• Volume smoothing: 25 periods
• Smoothing method: EMA
• Vector lookback: 3 bars
• Adaptive noise window: 80 bars
• Trend filter: 50-period EMA
• ATR filter: enabled
The traditional Japanese method is commonly associated with a 25-session smoothing period. EMA smoothing is used here by default to make the adaptation more responsive.
IMPORTANT SETTINGS
PRICE AND VOLUME SMOOTHING
Higher values produce a slower and more stable cycle.
Lower values react faster but generate more phase changes.
VECTOR LOOKBACK
Controls how many bars are used to measure the direction of smoothed price and volume.
• Lower value: faster and more sensitive
• Higher value: slower and more structural
ADAPTIVE DEAD ZONE
Defines how much movement is required before price or volume is classified as rising or falling.
• Increase it to reduce noise
• Decrease it to detect transitions earlier
MINIMUM PRICE/VOLUME VECTOR
Sets an absolute minimum movement threshold. These values prevent extremely small changes from being interpreted as meaningful directional movement.
TREND EMA FILTER
When enabled:
• Bullish ignition requires price above the trend EMA
• Bearish ignition requires price below the trend EMA
This affects GW+ and GW− signals but does not change the underlying phase classification.
ATR ANTI-NOISE GATE
Requires the smoothed price vector to cover a minimum fraction of ATR before confirming an ignition signal.
Increasing the threshold produces fewer but more selective signals.
ROTATION THRESHOLD
Controls how much geometric rotation is required before the dashboard reports clockwise or counter-clockwise movement.
SUGGESTED USE
The indicator is best used as a market-cycle and confirmation tool rather than a standalone entry system.
A constructive bullish sequence is:
8 → 1 → 2 → 3
This represents capitulation, accumulation, ignition and expansion.
A potentially weakening sequence is:
3 → 4 → 5 → 6
This represents expansion, distribution, an apex and eventual breakdown.
The complete eight-phase sequence will rarely appear perfectly. Real markets may skip phases, reverse direction or remain in one phase for extended periods.
For better context, combine Gyaku Watch with:
• Market structure and support/resistance
• Relative strength
• Fundamental catalysts
• Earnings and news risk
• Broader market trend
• Position sizing and stop management
TIMEFRAMES AND MARKETS
The default settings are most appropriate for daily equity charts.
The indicator may also be used on weekly charts after adjusting the smoothing lengths.
On intraday charts, volume patterns are strongly affected by the time of day. Longer smoothing and larger dead-zone settings may therefore be necessary.
Volume quality is essential:
• Stocks and exchange-traded products generally provide meaningful volume
• Cryptocurrency volume is specific to the selected exchange
• Spot FX volume is usually tick volume rather than centralized traded volume
• Indices and synthetic instruments may have missing or unsuitable volume data
The dashboard reports “NO VOLUME” when usable volume data is unavailable.
REPAINTING AND REAL-TIME BEHAVIOUR
The indicator does not use future data or pivot confirmation.
Historical closed-bar classifications do not depend on later bars. However, the active phase and real-time signals may change before the current candle closes because price and volume are still developing.
For confirmed alerts, configure TradingView to trigger once per bar close.
ALERTS
Available alert conditions:
• Phase 1 — Accumulation
• Phase 2 — Bullish ignition
• Phase 4 — Distribution warning
• Phase 6 — Bearish ignition
• Any phase transition
For more stable signals, use “Once Per Bar Close.”
METHODOLOGY NOTE
The eight-stage price–volume framework originates from the traditional Japanese Gyaku Watch Curve.
The adaptive vector classification, normalization, energy score, trust score, rotation engine, filters, alerts and neon interface are original Equalhigh adaptations created to make the method usable within TradingView’s charting constraints.
Energy and trust are contextual measurements. They are not probabilities of profit or statistical forecasts.
LIMITATIONS
Gyaku Watch assumes that volume can lead or confirm price. This relationship is not consistent in every asset or market regime.
The indicator may be less reliable during:
• Earnings announcements
• Major news events
• Illiquid trading
• Abnormal opening or closing auctions
• Structural gaps
• Assets with incomplete or synthetic volume
• Highly volatile sideways markets
No phase guarantees that the next theoretical phase will occur.
DISCLAIMER
This indicator is provided for educational and analytical purposes only. It does not constitute financial, investment or trading advice.
All signals require independent confirmation and appropriate risk management. Past market behaviour does not guarantee future results.
Indikator

Master CONFLUENCE MTF DAMASCENOOverview
The Confluência Master MTF is an advanced indicator focused on eliminating market noise and filtering out false breakouts. It combines classic technical analysis methods with Smart Money Concepts (SMC) and order flow reading to provide highly selective trading signals. Instead of relying on a single oscillator or moving average, this script acts as a "judge," evaluating multiple scenarios simultaneously before authorizing an entry.
How the Indicator Works (The Voting Engine)
The core of this indicator is its rigorous voting system. The algorithm processes real-time data through 10 independent analytical modules:
Trend: Triple EMA alignment (8, 80, 200).
RSI Momentum: Directional strength based on dynamic levels.
Stoch RSI Momentum: Identification of overbought/oversold zones and crossovers.
MACD MTF: Moving average convergence and divergence.
JR Index / CCI: Relative strength and exhaustion meter.
PMV / ADX: Balance of Power combined with directional strength.
Price Action (Candle 2/3): Reversal patterns, favorable closes, and volatility expansion.
Liquidity (EQH/EQL): Identification of equal highs and lows (liquidity pools).
Market Structure: Break of Structure (BOS) and Change of Character (CHoCH).
Order Flow (Delta Profile): Order flow and volume aggression.
Signaling Rules and the Dynamic Dashboard
The indicator features a dashboard fixed to the top of the chart that displays the status of each module individually.
Pre-Alert (ATENÇÃO!): When 3 or 4 modules agree in one direction and none of the modules point in the opposite direction, the central panel displays a yellow alert ("ATENÇÃO!"). This allows the trader to prepare the order ticket at their broker in advance.
Confirmed Signal (BUY / SELL): Execution arrows are only plotted on the chart when the confluence reaches the maximum requirement level: 5 or more votes in favor of the direction, while maintaining Zero (0) votes for the opposing force.
⚠️ Alerts and Recommendations for Users
Wait for Candle Close: Since price dynamics change with every tick, the votes on the panel fluctuate during the candle's formation. A signal is only valid and confirmed after the candle closes.
News Filter: Avoid trading during the release of high-impact macroeconomic events. Fundamental volatility temporarily ignores technical analysis.
Risk Management: No confluence, no matter how strong, guarantees a 100% win rate. Use the indicator as a confirmation tool within your trading plan, always respecting your Stop Loss and leverage limits.
Versatility: The indicator is adaptable for Forex, Cryptocurrencies, and Synthetic Indices, but it is essential to backtest the asset and timeframe of your preference before risking real capital.
Author and Support
Developed by Luiz Damasceno.
For questions, feedback, or improvement proposals, please contact: lcds1977@hotmail.com. Indikator

ETH Long MVRV Setup Strategy DescriptionThis strategy is built around a specific on-chain confluence that has historically preceded major Ethereum rallies. The core signal is the MVRV 0.8 pricing band at $1,800 — a level where, in past cycles, clearing it pushed ETH toward and above its realized price ($2,245). The setup also factors in the MVRV momentum golden cross, which has preceded upside moves of up to 166% in prior cycles, and the $1,580 historical launchpad zone that has triggered rallies between 35% and 200%.
How it works
The strategy enters long when price is trading inside the $1,800–$1,950 entry zone with four additional filters confirmed simultaneously: EMA 21 is above EMA 55 (trend), RSI is between 45–70 (momentum, not overbought), and volume exceeds its 20-period average (conviction). All four must align — if any filter fails, no trade is taken.
Exit structure
The position is split into three tiers to capture different legs of the move:
TP1 at $2,245 — ETH realized price, closes 40% of the position
TP2 at $2,650 — intermediate target, closes 35%
TP3 at $3,000 — analyst consensus target, closes remaining 25%
Stop Loss at $1,680 — below the $1,580 launchpad with a buffer
Overall R:R on the setup is approximately 1:4.5.
What's on the chart
EMA 21, 55, and 200 are plotted for trend context. Key horizontal levels are drawn: $1,580 support, $1,800 MVRV band, $2,245 realized price, $2,650 intermediate, $3,000 target, and $1,680 stop. The entry zone ($1,800–$1,950) is highlighted with a blue background when price is inside it. A summary table in the top-right corner shows all trade parameters at a glance. Strategie

Regime CompassMost traders take the same setup in a March 2020 crash as they would in a quiet summer drift, then wonder why results are all over the place.
Regimes change everything. A breakout that prints in low-vol trends gets chopped up in a crisis. I've learned the hard way that knowing where you stand before putting on risk matters as much as the entry signal itself.
This indicator classifies the current environment into four states: RISK-ON, NEUTRAL, RISK-OFF, CRISIS.
It blends three things:
Volatility (40% of the score). Reads VIX for equities or DVOL for crypto, falling back to a realized
vol percentile ranking when neither is on the chart. It also tracks whether vol is speeding up or
slowing down against its own longer-term average. A calm market getting choppy fast is a completely different animal to one that has been volatile for months and is starting to settle.
Trend (35%). Price against short, medium and long-term moving averages. Not calling direction, just asking whether the structure underneath is holding up or falling apart.
Momentum (25%). RSI and rate-of-change percentile over the trailing year. Captures whether we are at an extreme or not.
These blend into a single composite, lightly smoothed so the label does not flip every bar. On the chart you get a colour-coded oscillator, optional background shading so the regime state is visible at a glance, and a dashboard table breaking out each sub-score, fast realized vol, and the live VIX or DVOL read. Alerts fire on regime transitions.
It auto-detects crypto against equity and adjusts annualization accordingly. All thresholds and
lookbacks are in the settings.
I built this because regime awareness is the first filter I run on any trade. Options selling, systematic work, deciding when to lean in or step back. That question always comes first. Indikator

Indikator

Serene APEX Adaptive Probability Entry & Exit System**TradeSerene APEX — Adaptive Probability Entry & Exit System**
TradeSerene APEX is an intraday trading indicator designed to help traders identify higher-quality CALL and PUT opportunities while avoiding weak, late, or overextended entries.
Instead of relying on one indicator, APEX combines several market conditions into a single **0–100 Trade Quality Score**. The system analyzes VWAP, EMA trend structure, Opening Range Breakout levels, RSI momentum, volume, candle strength, higher-timeframe direction, liquidity sweeps, and volatility.
When enough conditions align, APEX can display a **CALL or PUT entry signal** directly on the chart. It also calculates a suggested entry price, stop level, Target 1, and Target 2 based on ATR and risk-to-reward settings.
One of the key features is the **Don't Chase Filter**. APEX can recognize when price has moved too far away from VWAP and warn traders to wait for a better entry instead of chasing momentum after a large move.
The dashboard provides a quick view of:
* CALL Quality Score
* PUT Quality Score
* VWAP direction
* EMA trend
* Volume strength
* Opening Range position
* RSI
* Don't-Chase status
APEX also includes alerts for CALL entries, PUT entries, trade exits, and overextended price conditions.
**Suggested use:** Intraday charts such as 3-minute or 5-minute timeframes on liquid instruments including SPY, QQQ, and actively traded stocks.
**Important:** The APEX score represents the number of qualifying setup conditions present. It is not a guaranteed probability of profit. This indicator is designed as a decision-support and risk-management tool and should be combined with proper position sizing, stop-loss discipline, and testing before live trading.
Indikator

RT Day Trade Signals with Intraday and HTF Zones (1 Min)RT Day Trade Signals with Intraday & HTF Zones (1 Min)
Complete Institutional System Guide & Master User Manual
🚀 Official Upgrade Notice: This system is the next-generation, significantly improved version of the original "Day Trade Signals 1 Min Chart w/ RB Detector" indicator. While the original version focused primarily on standalone candlestick pattern detection, this upgraded engine integrates dynamic ATR-scaled zones, footprint order-flow delta, and multi-timeframe macro structure (4H/1H) into a single, unified execution canvas.
⚠️ Important Requirement
TradingView Plan Requirement: This indicator utilizes native Pine Script v6 footprint order-flow data (request.footprint()) to calculate real-time buy/sell volume imbalances. A TradingView Premium or Ultimate account is required for footprint delta functionality to operate.
🏛️ What’s New vs. The Original Version?
Feature Original "Day Trade Signals 1 Min w/ RB Detector" This Improved Version
Order Flow Delta None (Candle shape only) Real-Time Footprint Delta (request.footprint())
Intraday Zones Static / Fixed Tick Width Dynamic Daily ATR Auto-Scaling + Adjustable Zone Rigidity
Macro Structure Requires separate indicators Built-in 4H & 1H HT Zones with Auto-Anchoring
Zone Invalidation Manual / Static Automated
N
N
-Close Flip Invalidation & Counter
Chart Visuals Standard plotshape clutter Clean Unicode Labels + Customizable Ticks/Points Units
💎 The Triple-Confirmation Signal Model
Unlike standard laggy indicators that print arrows on every crossover, every Buy or Sell signal generated by this system must pass a strict 3-Pillar Confluence Filter:
Zone Alignment: Price MUST be actively touching a validated Support (PPS) or Resistance (PPR) Intraday Zone. Signals outside of zones are suppressed to eliminate low-probability middle-of-nowhere trades.
Reversal Bar (RB) & Price Action: Evaluates candlestick structural patterns (improved from the original RB Detector algorithm).
Footprint Delta Confirmation: Evaluates actual order-flow aggression on the tape. A Buy signal requires positive net-buying footprint delta (deltaGreen), while a Sell signal requires aggressive net-selling footprint delta (deltaRed).
🗺️ Higher Timeframe (HT) Zones: Macro Context
The engine natively calculates and plots 4H and 1H Higher Timeframe (HT) Zones directly on your 1-minute execution chart using non-repainting closed-candle logic (lookahead_off):
4H HT Zones (Purple): Macro institutional supply and demand boundaries.
1H HT Zones (Aqua): Intermediary macro structure levels.
⛔ Critical Trading Rule: Managing Trades Near HT Zones
Higher-Timeframe Zones represent massive concentrations of institutional orders. The macro trend or a major structural reversal will almost always originate at these boundaries.
DO NOT trade directly into an opposing HT Zone: Even if a 1-minute Intraday Buy signal prints, if price is sitting directly inside or right below a 4H or 1H HT Supply/Resistance Zone, DO NOT TAKE THE LONG TRADE. The macro sellers inside that HT zone will frequently steamroll 1-minute buyers.
Use HT Zones as Take-Profit Targets: Treat opposing HT Zones as primary profit targets to lock in gains before price encounters macro resistance/support.
Look for High-Conviction Reversals: When an Intraday Zone aligns directly inside a 4H or 1H HT Zone, you have multi-model confluence for explosive reversal setups.
⚙️ Customizing & Tuning Settings
The indicator is designed to run hands-off, but adjusting key inputs allows you to adapt to changing volatility regimes (high vs. low VIX) or filter out noisy market conditions.
1. Zone Appearance Settings
Intraday Zone Size Multiplier : Controls zone thickness auto-calculated off the Daily ATR(20):
1 (Tighter / Divisor 90): Produces narrow, ultra-precise zones. Best for low-volatility or fast-moving markets.
2 (Balanced / Divisor 60 - Default): The optimal setting for ES, NQ, and major index futures.
3 (Wider / Divisor 30): Produces thicker zones for high-volatility, high-ATR trading sessions.
Zone Width Unit in Labels : Toggles whether zone thickness in the label displays in Ticks (e.g., PPS 5120.25 (24T)) or Points (e.g., PPS 5120.25 (6.00P)).
2. Zone Detection & Noise Filtering
Zone Rigidity : Controls how much "uninterrupted space/time" (4 to 30 bars) is required between a level's creation and its retest.
1 (Flexible / 4 bars - Default): Catches quick, shallow retests.
8 (Rigid / 30 bars): Requires 30 minutes of clean separation before validating a retest.
Pro Tip: If price is trending strongly and creating weak counter-trend zones that keep failing, increase Zone Rigidity to 4 or higher to filter out shallow micro-pullback noise.
Closes Required to Flip (Default: 5): Requires 5 consecutive 1-minute confirmed closes beyond the zone boundary before it flips its classification (e.g., Support breaking into Resistance). Prevents accidental zone flips on single wick breaches.
Zone Invalidation — Flips Allowed (Default: 3): Automatically deletes a zone after it has flipped classification 3 times, keeping your chart free of old, chopped-up levels.
📖 Strategic Trading Playbook
Pre-Market Context: Identify where your 4H (Purple) and 1H (Aqua) HT Zones sit relative to current price.
Wait for Zone Contact: Watch price retest an Intraday PPS (Green Support) or PPR (Red Resistance) Zone.
Wait for Footprint Delta Signal: Look for a confirmed Buy or Sell text marker to print.
HT Confluence Check: Ensure you are not trading directly into an opposing 4H or 1H HT Zone sitting 2–3 points away.
Execution & Risk Management:
Entry: Execute inside the zone boundary upon footprint delta confirmation.
Stop Loss: Place a tight stop-loss 2–4 ticks beyond the far edge of the intraday zone. A confirmed close beyond the zone invalidates the setup thesis.
Disclaimer: This indicator is a discretionary decision-support visualization tool. It does not generate automated financial advice or guaranteed trade signals. Always adhere to strict risk management standards and backtest execution strategies prior to trading live capital. Indikator

Fulcrum: volume-weighted average of a two-market ratioA volume-weighted average price computed on the relationship between two markets rather than on a single price, with dispersion bands built from the same weighted pass.
What it does
Most relative-value work is done by eye: put two markets on one chart, watch the spread, decide when it looks stretched. This computes that judgement. It takes the ratio between two instruments, defaults to the Nasdaq and S&P futures contracts, and runs a volume-weighted average through it with standard deviation bands around that average. It lives in its own pane on its own scale, so the symbol you happen to have loaded is irrelevant to the reading.
What is different here
Volume-weighted average price, standard deviation bands and ratio charting are all public methodology and I claim none of them. The reason this is one script rather than three is the problem in the middle, which is that a ratio has no volume of its own.
If you divide one market by another, the resulting series has a price and no trade behind it. Every implementation has to decide what to weight by, and most sidestep it by using a simple moving average, which throws away the participation information entirely.
Three specific choices follow from taking that problem seriously.
First, the weight is the geometric mean of both legs' volume rather than either leg alone or their sum. A bar where both markets traded heavily is genuine two-sided participation in the relationship. A bar where one leg was busy and the other was dead is not, and the geometric mean punishes that asymmetry in a way an average does not.
Second, the variance is accumulated in the same volume-weighted pass as the mean, using running sums of weighted value and weighted squared value. The bands therefore describe the dispersion of the ratio as it was actually traded, not the standard deviation of the drawn line. Those two are not the same number and the difference matters most exactly when participation is uneven.
Third, the ratio can be normalised by a volatility and rates term, and that term is frozen at each anchor reset rather than updated daily. This matters more than it sounds. The volatility and rates inputs move once a day, so on any anchor longer than a session the divisor would step in the middle of the window being averaged, and you cannot take a volume-weighted average of a quantity whose units change halfway through: the mean chases the step and the variance ends up describing the divisor instead of the two markets. Freezing it means the unit is constant across the window and the level shift lands exactly where the average restarts anyway. Both inputs are read from the prior session's confirmed close, so the value is identical live and on reload, and when either feed is unavailable the table reports the fallback rather than changing every number on screen silently.
How it works
The ratio is computed from both legs bar by bar, including a high and low estimate taken from the most and least favourable combination of the two legs' extremes, so the typical price is a real range rather than just the close.
Volume for the weighting is the geometric mean of the two legs. The average, and the variance around it, accumulate from the anchor point using running weighted sums.
The anchor resets on a schedule, and by default that schedule is chosen from your chart: session on intraday timeframes up to twenty minutes, weekly up to four hours, monthly above that. The point is that an anchor should outlive more than a handful of bars, and a session anchor on a four hour chart does not. You can override it if you disagree.
Bands are hidden for the first few bars after each reset, and the distance reading is suppressed along with them. Cumulative dispersion on two or three samples is tiny but not zero, and dividing by it turns a two-basis-point wiggle into a double-digit sigma reading. Until the window has enough behind it to have measured anything, the readout says it is warming up rather than inventing an extension, and the band alerts stay silent.
The ratio line is coloured by which side of the average it sits on, with a small dead zone so that a ratio hugging its average does not strobe the line bar by bar.
How to use it
Load it on any chart. The pane draws the relationship, not your symbol.
Read the distance in standard deviations rather than the absolute level, which is reported in the table. The absolute number depends on the multiplier and the divisor and means nothing on its own.
The table reports whether both feeds are live, the current average, the current ratio, the distance from the average in percent and in standard deviations, which zone the ratio occupies, and the divisor with a fallback flag if either input is missing. Check the feed status first if the numbers look wrong.
Change the two symbols to compare any pair you like. The scaling multiplier exists to bring the ratio into a readable range and has no effect on the shape.
What it cannot do
It describes a relationship and not a direction. A stretched ratio tells you the two markets have diverged from how they have recently traded together. It does not tell you which leg corrects, or whether either does, or when. Relationships can stay stretched for as long as the reason for the stretch persists.
Standard deviation bands assume a distribution that ratio spreads do not reliably follow. Two sigma here is a description of the recent sample, not a probability of anything.
Requesting two symbols means depending on two data feeds. If either is unavailable on your plan or a symbol is wrong, the reading is incomplete, which is why the table reports feed status rather than drawing a confident line over missing data.
The volatility and rates divisor falls back to fixed placeholder values when its feeds are missing. Those numbers are arbitrary and they change the scale of everything on screen. The table flags it.
There are no entries, exits or trade marks anywhere in this script, and no performance of any kind is claimed or implied.
On authorship
The methodology is public and I have said so plainly. The implementation is not borrowed. Every line is written from scratch, and no code in it is copied or adapted from another author's script on this platform or anywhere else.
Settings
The two ratio symbols and a scaling multiplier; the volatility and rates divisor with its two symbols and an on-off switch; anchor period with an automatic default, band multipliers, band visibility and the post-reset warm-up length; and visual settings for colours, line width, fill, labels, the info table and the extension tint.
Indikator

Indikator

SharkMarket ImpulseSharkMarket Impulse is a trend-following signal tool built around an EMA9/EMA21 crossover, with an optional EMA200 trend filter (require BUY only above EMA200, SELL only below EMA200).
How it works:
- BUY/SELL markers appear the moment EMA9 crosses EMA21.
- Entry price is taken from the open of the candle following the signal (not the signal candle's close), which better reflects real execution.
- After each signal, the script checks the signal candle for a Fair Value Gap (FVG, classic 3-candle definition). If price later retraces into that gap and closes back in the original direction, a Re-Entry signal is plotted.
- A "Trend Track" panel shows price vs EMA200 across several higher timeframes at once, so you can check alignment before taking a signal.
- Built-in alert() calls emit a JSON payload (ticker, action, entry price, timeframe, time) ready to route through a webhook, e.g. to a Telegram bot.
This script is a derivative of "Impulse Alerts" by Riccardo Di Giacomo, published under the Mozilla Public License 2.0. The original EMA/Bollinger Bands/Stochastic/RSI base is credited to that author; this version simplifies the trigger to a pure EMA9/21 crossover and adds the entry-on-next-open logic, FVG re-entry, Trend Track panel, and webhook-ready alerts. Distributed under the same MPL-2.0 license.
This is a technical analysis tool, not financial advice. Past performance of any signal logic does not guarantee future results — backtest and forward-test before live use. Indikator

Indikator
