Strong ETF Screener | ProjectSyndicateStrong ETF Screener turns dozens of charts into a single institutional-style dashboard, ranking a curated universe of the 40 largest US-listed ETFs by performance across six timeframes and scoring each one on professional-grade risk metrics — Beta, Sharpe, Sortino, Omega, Z-Score, and Kelly — so you can find the market's leaders and weigh their risk-adjusted quality at a glance, all on one clean, sortable panel. Every figure is computed live on the daily timeframe from real price history, not hard-coded, so the board reflects the market as it actually is right now.
📊 Curated Top-40-by-AUM Universe — the screener watches the 40 biggest US-listed ETFs by assets under management in one place: broad-market and S&P 500 cores (VOO, SPY, IVV, VTI), growth and tech (QQQ, VUG, VGT, XLK, SMH), international and emerging markets (VEA, IEFA, VXUS, VWO, IEMG), bonds (BND, AGG, TLT, BNDX, VCIT), factor and income (SCHD, VYM, VIG, QUAL, JEPI, RSP), and alternatives like gold (GLD) and spot Bitcoin (IBIT). Instead of flipping through forty charts, you see every fund's performance and risk profile side by side and immediately spot which sleeve of the market is leading and which is rolling over.
🗓️ Six-Timeframe Performance — each ETF is tracked across Week, Month, Quarter, 6-Month, 12-Month, and Year-to-Date returns, so you can separate a one-week move from a genuine long-run trend and see momentum building or fading across horizons in a single row.
🧮 Institutional Risk Metrics, Done Properly — beyond raw returns, every fund is scored on Sharpe (excess return per unit of total volatility), Sortino (return per unit of downside risk only), Omega (probability-weighted gains versus losses above the risk-free threshold), Z-Score (how stretched the recent move is in standard deviations), and the Kelly fraction (a theoretical optimal-sizing read from return and variance). The stats are annualized from daily returns over a rolling one-year window with a configurable risk-free rate, so the risk picture is consistent and comparable across the whole list — letting you line a high-flying tech fund up against a steady bond ETF on the same footing.
🎯 Basket-Relative Beta — Beta is measured against an equal-weight basket of the 40 ETFs in the screener, so it tells you how a fund moves relative to this specific top-40 cohort rather than a single broad index. Beta above 1 swings harder than the group; below 1 is steadier — an instant read on which names amplify the market and which cushion it. You control the lookback length used for the beta and correlation calculation.
🌡️ Annualized Weekly Volatility — a dedicated Wk Vol column annualizes the standard deviation of recent weekly returns, giving you a fast read on how violent each fund's price action is before you size into it — so a leveraged-feeling growth or crypto ETF never gets mistaken for a sleepy aggregate-bond fund.
🔀 Dynamic Sorting — sort the entire board by any of the six performance columns, or by static AUM rank, with a single setting. Rank by YTD to find the year's leaders, by Week to catch what is moving on fresh flows, or by any horizon in between — the table re-ranks instantly.
🎨 Bloomberg-Amber Theme with Color-Coded Strength — a clean amber-on-black dashboard with a multi-level gradient that runs from bright amber on the strongest gains through to deep red on the steepest losses, so strength and weakness jump out the moment you look at the panel.
🧩 Fully Customizable Dashboard — place the table anywhere on the chart (Top / Middle / Bottom paired with Left / Center / Right), choose your text size (Tiny / Small / Normal / Large), set the sort column, the beta length, and the risk-free rate and periods — all from the settings menu, no code editing required. The 40-ticker list is a single, clearly labeled block in the source, so refreshing the universe as AUM rankings shift is a quick edit.
🔒 Daily-Timeframe Lock — the screener is built for daily data and will prompt you to switch if you load it on a lower timeframe, so the returns, volatility, and ratios are always calculated on the basis they are designed for.
⚡ Lightweight and Efficient — the whole 40-name board is built from a tight, well-organized script that runs smoothly on TradingView, with a clean merged title heading and an alternating-row layout for easy reading. Delisted or halted tickers degrade gracefully to blank rows rather than breaking the panel.
🎯 Why this is different — most watchlists show you price and maybe a percentage move. This screener puts performance and a full institutional risk stack — Sharpe, Sortino, Omega, Z-Score, Kelly, Beta, and annualized volatility — for the forty largest ETFs on one sortable, color-coded panel, so you are ranking opportunities by risk-adjusted quality, not just chasing the biggest green number.
🚀 Where to use it — apply it to any daily chart to monitor the ETF leadership landscape as a whole. Use it for top-down asset-allocation and rotation ideas, cross-sleeve comparison (equity vs bond vs commodity vs crypto), and risk screening before you drill into an individual fund's chart for entry timing.
⚠️ Important — this is a research and decision-support dashboard, not a buy/sell system, and it makes no performance guarantees. The 40-name universe is a snapshot of the current largest ETFs by AUM and will drift over time; the board re-ranks live, but membership is fixed until you update the ticker list. All figures are historical and descriptive, computed from past price data, and say nothing certain about the future. Risk metrics like Sharpe, Sortino, Omega, Z-Score, and Kelly are simplified, assumption-based estimates and should inform your judgment, not replace it. Always pair the screener with your own analysis and risk management. Wskaźnik

Wskaźnik

jrhORBChecklistjrhORBChecklist — Documentation
Standalone companion script that automates the ORB entry/exit checklist as a live TradingView table. Built to mirror the rules described for jrhMultiORB (close-only breakout, retest RTC/RTF, Failed-ORB REV/FADE, max-bars expiration, one-signal-per-direction lock).
Input Groups
Group Setting What it controls
Opening Range Window OR Session (exchange time)
The session window used to build the Opening Range (default 09:30–10:00)
Session Timezone IANA timezone for the OR session (default America/New_York)
Plot OR High/Low on Chart Toggles the lime/red OR High/Low step-lines
Retest / Reversal Rules Max Bars to Wait How long a retest or reversal/fade watch stays armed before it's abandoned as stale
Day Bias / Strength Filter ADX/DMI Length, ADX Smoothing Standard ADX/DMI calculation settings
ADX 'Weak Trend' Threshold Below this, bias reads "Weak / Choppy" regardless of DI direction
Checklist Table Show Checklist Table Master on/off
Position Where the table renders on the chart
Table Row Reference
OR Range
Shows the locked Opening Range high–low once the session window closes. Reads "forming..." while the session is still building. Everything else in the table is measured against these two levels.
Day Bias / Strength
Live ADX/DMI reading, recalculated every bar (unlike the rows below, which are historical snapshots). Format: Strong Up/Down (ADX X) or Weak / Choppy (ADX X). A low ADX going into a session means breakouts are more prone to failing/reversing.
Breakout Up / Breakout Down
Shows whether that direction's breakout has fired this session ("used this session" / "not yet"). Each direction can only fire once per session (one-signal-per-direction lock) — a second breakout attempt in the same direction won't retrigger it.
Retest (Up) / Retest (Down)
The core entry-decision row. Cycles through these states:
Status Meaning Action
OR locked — waiting for breakout No breakout yet Wait
Breakout confirmed — awaiting retest Breakout closed beyond the OR level, watching for price to come back and tag it Wait
RTC — continuation confirmed Retest candle closed back through the level, confirming the breakout is holding Entry signal in the breakout direction
RTF — retest failed Retest candle closed back inside the range Do not enter continuation; watch the opposite Reversal/Fade row instead
Retest window expired (stale) No retest touch within Max Bars to Wait Treat as void
Includes a (N bars ago) tag showing how long ago that status last changed — critical for judging whether an RTC/RTF is a live, actionable signal or old context from earlier in the session.
Reversal/Fade (from Up-fail) / (from Dn-fail)
Only activates after the matching Retest row shows RTF. Watches the opposite OR level:
Status Meaning
— Not armed (no RTF has occurred yet)
Armed - watching ORL/ORH for reversal/fade RTF occurred, now watching the opposite level
REV/FADE tagged at OR Low/High Opposite level was reached within the window — a separate, opposite-direction opportunity, distinct from the original breakout
Fade window expired (stale) No touch within Max Bars to Wait
Also includes a (N bars ago) tag.
Signal vs Bias Check
Compares the current Retest status against the live Day Bias reading:
Display Meaning
No conflict No confirmed RTC exists, or it agrees with Day Bias
⚠ Confirmed LONG vs Bearish Bias An RTC long is confirmed while Day Bias reads Strong Down
⚠ Confirmed SHORT vs Bullish Bias An RTC short is confirmed while Day Bias reads Strong Up
This is a caution flag, not a stop signal — it surfaces a judgment call (skip, reduce size, or tighten targets) rather than making it for you.
Important Usage Notes
• Retest/Fade rows are historical snapshots, not live recalculations. Once RTC/RTF/REV/FADE fires, that text stays displayed unchanged until the next session reset — always check the (N bars ago) tag before treating a status as a current signal.
• Day Bias is the opposite — it's a live indicator value recalculated every bar, so it can visibly diverge from an older Retest status as price evolves through the session.
• All session-tracking state (OR levels, breakout-used flags, retest/fade bar counters) resets automatically at the start of each new Opening Range session.
• This script does not compute stop/target levels or position size — pair it with your own risk rules.
Wskaźnik

Options ConfluenceBacktest Strategy. EMA (13-period) — Trend Direction Filter
The Exponential Moving Average weights recent price more heavily than older price, so it reacts faster to changes than a simple moving average. Here it's used as a basic trend filter: price above EMA = bullish bias, price below = bearish bias. It's the "which side of the market am I even allowed to trade" gate.
2. VWAP — Institutional Fair Value Reference
Volume-Weighted Average Price is the average price weighted by volume traded at each price level, resetting each session. It's widely used by institutional/algo desks as a benchmark for "fair value" for the day — price above VWAP suggests buyers are in control and paying a premium to average; below suggests sellers are dominant. Combining EMA + VWAP means you're requiring both a short-term trend signal and an institutional positioning signal to agree before considering a trade.
3. Chandelier Exit — Volatility-Adjusted Trend/Stop Indicator
Originally built by Chuck LeBeau, this uses ATR (Average True Range) to set a trailing stop: highest high (over N bars) − ATR × multiplier for longs, lowest low + ATR × multiplier for shorts. The idea is the stop distance scales with how volatile the market currently is — tighter stops in calm markets, wider stops in choppy ones — rather than using a fixed point/percentage stop. Here it's repurposed as a directional filter (ceDir): once price closes beyond its own ratcheted stop line, the market is considered to have flipped regime. This is the piece that was buggy before — a proper Chandelier Exit locks in its stop level as the trend extends (never loosens it), so it acts like a ratchet defining trend persistence, not just a moving band.
4. BOS (Break of Structure) — Price Action / Smart Money Concepts
This comes from ICT/Smart Money Concepts trading theory. A "break of structure" happens when price closes beyond a recent swing high (bullish BOS) or swing low (bearish BOS), signaling that the prevailing short-term structure has been broken and a new directional leg may be underway. Here it's simplified to "close beyond the highest high/lowest low of the last N bars" — a lightweight proxy for genuine swing-point BOS.
How they combine — Confluence Trading
The core theory tying this together is confluence: no single indicator is trusted alone; a trade only triggers when multiple independent signal types agree simultaneously:
Trend (EMA)
Institutional reference level (VWAP)
Volatility-adjusted regime/momentum (Chandelier direction)
Structural price action break (BOS)
The logic is that each indicator alone throws false signals regularly, but the intersection of unrelated methodologies (a moving average, a volume-weighted price, a volatility band, and a structural break) filters out a lot of that noise, at the cost of trading much less frequently — you're trading only the highest-conviction setups where trend, order flow proxy, volatility regime, and structure all point the same way at once.
The tradeoff worth knowing: confluence models like this tend to have fewer trades and (in theory) higher win rates per trade, but they also lag — by the time all four conditions align, you're often entering after a meaningful chunk of the move has already happened, which matters a lot for options where theta is working against you while you wait for the setup to form. Strategia

Day-Extreme Reversal Signals (SPY 5m)What you'll see on the chart
5-minute scouts (small triangles + small labels). When a bar makes a new session low with one of the study shapes, it's marked with its honest hold-rate: 5m RevClose: holds 28% (base 14%) (green bar closing in its top third at the low — the most common day-low shape), 5m Spring: holds 17% (big lower wick, close held up), 5m V-confirm: holds 27% (green bar defending the prior bar's flush). Deliberately subtle styling — at 17–28% these are scouts, not entries. High-side scouts get the same treatment with their (weak) 11–12% numbers.
Hourly signals (full background band + large label). When a completed hourly bar prints one of the shapes at a session extreme, the next 12 five-minute bars get a colored band and a loud label: HOURLY RevClose at session low: DAY LOW 64% (base 35%). This is the real signal tier — teal bands for lows, orange for highs (with the high label honestly adding "expect a retest attempt," since even the best high pattern only holds 47%). Alerts fire on both hourly signal types.
The decision panel (top-right)
- Live session state: current session low/high, when each was set, and — the piece I think you'll use most — "Odds the day extreme has ALREADY printed: low ~X%, high ~Y%", interpolated live from the measured time-of-day curves as the session progresses. At 10:30 ET it'll say the low is ~47% likely already in but the high only ~32%.
- Hourly forming row: what shape the current, incomplete hourly bar is building (labeled provisional — it only becomes a signal at the hour close).
- The two structural rules, always visible: lows are V-shaped — 55% never retest within 30 minutes, don't wait for confirmation; highs retest 82% of the time — first touch is rarely final, exits can be patient.
- Timing reference (lows in by 10:00/10:30/11:30 on 37/47/60% of days; highs skew late) and the honesty footer distinguishing scout-grade from signal-grade percentages.
Design honesty, as always
The percentages are P(that extreme holds as the day's extreme) from real-time simulation on 60 days of 5m and 730 days of hourly data — the number you actually face in the moment, which is why they're much lower than the hindsight lifts from the study (a 3.9× lift collapsed to 28% precision once you can't peek at the future). None of this has been tested as an entry system with P&L — it's decision support for the scalps you're already taking within the daily-bias framework. The natural marriage: an hourly RevClose band firing while the bias panel shows an active long tier is the highest-alignment moment this whole project can currently produce. If you want, the next study can quantify exactly that intersection — hold-rate and forward return when hourly low-signals fire during active T1–T3 windows. Wskaźnik

Wskaźnik

Wskaźnik

MAGALHAES NEOWAVE ONDA 3 PRO//@version=6
indicator(
title="MAGALHAES NEOWAVE ONDA 3 PRO",
shorttitle="NEOWAVE O3 PRO",
overlay=true,
max_lines_count=500,
max_labels_count=500
)
//==================================================
// 1. MOTOR DA ESTRUTURA
//==================================================
grupoMotor = "1. Motor da Estrutura"
inicioLeitura = input.time(
defval=timestamp("01 Jan 2024 00:00 +0000"),
title="Iniciar/Reiniciar leitura em",
confirm=true,
group=grupoMotor
)
forcaPivot = input.int(
defval=5,
title="Força do pivô",
minval=2,
maxval=30,
group=grupoMotor
)
hipoteseCorrecao = input.string(
defval="Onda 2",
title="Correção analisada",
options= ,
group=grupoMotor
)
retracaoMinima = input.float(
defval=0.236,
title="Retração mínima para validar",
minval=0.05,
maxval=1.00,
step=0.001,
group=grupoMotor
)
fibIdealMinimo = input.float(
defval=0.382,
title="Início da região Fibonacci válida",
minval=0.05,
maxval=1.00,
step=0.001,
group=grupoMotor
)
fibIdealMaximo = input.float(
defval=0.886,
title="Fim da região Fibonacci válida",
minval=0.05,
maxval=1.50,
step=0.001,
group=grupoMotor
)
invalidarEm100 = input.bool(
defval=true,
title="Invalidar se fechar além de 100%",
group=grupoMotor
)
scoreMinimo = input.int(
defval=80,
title="Índice mínimo de confirmação",
minval=40,
maxval=100,
step=20,
group=grupoMotor
)
//==================================================
// 2. TEMPO NEOWAVE
//==================================================
grupoTempo = "2. Tempo NeoWave"
relacaoMinimaTempo = input.float(
defval=1.00,
title="Tempo mínimo da correção",
minval=0.10,
maxval=5.00,
step=0.05,
group=grupoTempo
)
relacaoIdealInicio = input.float(
defval=1.50,
title="Início da janela temporal ideal",
minval=0.20,
maxval=6.00,
step=0.05,
group=grupoTempo
)
relacaoIdealFim = input.float(
defval=2.00,
title="Fim da janela temporal ideal",
minval=0.30,
maxval=8.00,
step=0.05,
group=grupoTempo
)
//==================================================
// 3. VISUALIZAÇÃO
//==================================================
grupoVisual = "3. Visualização"
mostrarPainel = input.bool(true, "Mostrar painel", group=grupoVisual)
mostrarBase = input.bool(true, "Mostrar movimento direcional", group=grupoVisual)
mostrarCorrecao = input.bool(true, "Mostrar correção", group=grupoVisual)
mostrarFibonacci = input.bool(true, "Mostrar Fibonacci", group=grupoVisual)
mostrarAlvos = input.bool(true, "Mostrar alvos", group=grupoVisual)
mostrarSinal = input.bool(true, "Mostrar sinal da próxima onda", group=grupoVisual)
mostrarFundo = input.bool(false, "Colorir fundo temporal", group=grupoVisual)
//==================================================
// 4. NÍVEIS
//==================================================
grupoNiveis = "4. Níveis"
usar236 = input.bool(true, "23,6%", group=grupoNiveis)
usar382 = input.bool(true, "38,2%", group=grupoNiveis)
usar500 = input.bool(true, "50,0%", group=grupoNiveis)
usar618 = input.bool(true, "61,8%", group=grupoNiveis)
usar705 = input.bool(true, "70,5%", group=grupoNiveis)
usar786 = input.bool(true, "78,6%", group=grupoNiveis)
usar810 = input.bool(true, "81,0%", group=grupoNiveis)
usar854 = input.bool(true, "85,4%", group=grupoNiveis)
usar886 = input.bool(true, "88,6%", group=grupoNiveis)
usar100 = input.bool(true, "100,0%", group=grupoNiveis)
//==================================================
// 5. CORES
//==================================================
grupoCores = "5. Cores"
corAlta = input.color(color.lime, "Direcional de alta", group=grupoCores)
corBaixa = input.color(color.red, "Direcional de baixa", group=grupoCores)
corCorrecao = input.color(color.orange, "Correção", group=grupoCores)
corFibo = input.color(color.aqua, "Fibonacci", group=grupoCores)
corIdeal = input.color(color.yellow, "Janela temporal ideal", group=grupoCores)
corConfirmacao = input.color(color.green, "Próxima onda confirmada", group=grupoCores)
corAlvo = input.color(color.fuchsia, "Alvos", group=grupoCores)
//==================================================
// 6. FUNÇÕES
//==================================================
f_tempo(float minutos) =>
string texto = "AGUARDANDO"
if not na(minutos)
int dias = int(math.floor(minutos / 1440.0))
int horas = int(math.floor((minutos % 1440.0) / 60.0))
int mins = int(math.floor(minutos % 60.0))
if dias > 0
texto := str.tostring(dias) + "d " + str.tostring(horas) + "h " + str.tostring(mins) + "m"
else if horas > 0
texto := str.tostring(horas) + "h " + str.tostring(mins) + "m"
else
texto := str.tostring(mins) + "m"
texto
f_percentual(float valor) =>
na(valor) ? "AGUARDANDO" : str.tostring(valor * 100.0, "#.##") + "%"
f_relacao(float valor) =>
na(valor) ? "AGUARDANDO" : str.tostring(valor, "#.##") + "x"
f_preco(float valor) =>
na(valor) ? "-" : str.tostring(valor, format.mintick)
f_simNao(bool condicao) =>
condicao ? "SIM" : "NÃO"
f_nivelRetracao(float inicio, float fim, float percentual) =>
fim - ((fim - inicio) * percentual)
f_nomeProximaOnda(string tipoCorrecao) =>
string nome = "ONDA C"
if tipoCorrecao == "Onda 2"
nome := "ONDA 3"
else if tipoCorrecao == "Onda 4"
nome := "ONDA 5"
nome
f_direcaoTexto(int direcao) =>
string texto = "AGUARDANDO"
if direcao == 1
texto := "ALTA"
else if direcao == -1
texto := "BAIXA"
texto
//==================================================
// 7. PIVÔS CONFIRMADOS
//==================================================
float pivotTopo = ta.pivothigh(high, forcaPivot, forcaPivot)
float pivotFundo = ta.pivotlow(low, forcaPivot, forcaPivot)
float novoPivotPreco = na
int novoPivotBar = na
int novoPivotTempo = na
int novoPivotTipo = 0
if not na(pivotTopo) and na(pivotFundo)
novoPivotPreco := pivotTopo
novoPivotBar := bar_index - forcaPivot
novoPivotTempo := time
novoPivotTipo := 1
else if not na(pivotFundo) and na(pivotTopo)
novoPivotPreco := pivotFundo
novoPivotBar := bar_index - forcaPivot
novoPivotTempo := time
novoPivotTipo := -1
//==================================================
// 8. ESTADOS
//==================================================
// 0 = procurando movimento direcional
// 1 = correção ativa
// 2 = próxima onda iniciada
var int estado = 0
//==================================================
// 9. MEMÓRIA DO ÚLTIMO PIVÔ
//==================================================
var float ultimoPivotPreco = na
var int ultimoPivotBar = na
var int ultimoPivotTempo = na
var int ultimoPivotTipo = 0
//==================================================
// 10. MOVIMENTO DIRECIONAL TRAVADO
//==================================================
var float baseInicioPreco = na
var float baseFimPreco = na
var int baseInicioBar = na
var int baseFimBar = na
var int baseInicioTempo = na
var int baseFimTempo = na
var int direcaoBase = 0
var float tempoBase = na
var float amplitudeBase = na
//==================================================
// 11. CORREÇÃO
//==================================================
var float extremoCorrecao = na
var int extremoCorrecaoBar = na
var int extremoCorrecaoTempo = na
var float retracaoMaxima = na
var bool correcaoValidada = false
var int finalCorrecaoTempo = na
var int confirmacaoBar = na
var float confirmacaoPreco = na
//==================================================
// 12. OBJETOS
//==================================================
var line linhaBase = na
var line linhaCorrecao = na
var line linhaRetomada = na
var label labelInicio = na
var label labelFim = na
var label labelCorrecao = na
var label labelConfirmacao = na
var line linhasFibo = array.new_line()
var label labelsFibo = array.new_label()
var line linhasAlvo = array.new_line()
var label labelsAlvo = array.new_label()
//==================================================
// 13. LIMPEZA DOS NÍVEIS
//==================================================
f_limparFibo() =>
int totalLinhas = array.size(linhasFibo)
if totalLinhas > 0
for i = 0 to totalLinhas - 1
line.delete(array.get(linhasFibo, i))
int totalLabels = array.size(labelsFibo)
if totalLabels > 0
for i = 0 to totalLabels - 1
label.delete(array.get(labelsFibo, i))
array.clear(linhasFibo)
array.clear(labelsFibo)
f_limparAlvos() =>
int totalLinhas = array.size(linhasAlvo)
if totalLinhas > 0
for i = 0 to totalLinhas - 1
line.delete(array.get(linhasAlvo, i))
int totalLabels = array.size(labelsAlvo)
if totalLabels > 0
for i = 0 to totalLabels - 1
label.delete(array.get(labelsAlvo, i))
array.clear(linhasAlvo)
array.clear(labelsAlvo)
//==================================================
// 14. DESENHO DE FIBONACCI
//==================================================
f_desenharFibo(float precoNivel, string nome, bool habilitado) =>
if habilitado and mostrarFibonacci and not na(precoNivel) and not na(baseFimBar)
line novaLinha = line.new(
x1=baseFimBar,
y1=precoNivel,
x2=bar_index + 25,
y2=precoNivel,
xloc=xloc.bar_index,
extend=extend.right,
color=corFibo,
style=line.style_dashed,
width=1
)
label novoLabel = label.new(
x=bar_index,
y=precoNivel,
text=nome + " " + f_preco(precoNivel),
xloc=xloc.bar_index,
yloc=yloc.price,
style=label.style_label_left,
color=color.new(corFibo, 78),
textcolor=corFibo,
size=size.tiny
)
array.push(linhasFibo, novaLinha)
array.push(labelsFibo, novoLabel)
//==================================================
// 15. DESENHO DOS ALVOS
//==================================================
f_desenharAlvo(float precoAlvo, string nome) =>
if mostrarAlvos and not na(precoAlvo) and not na(confirmacaoBar)
line novaLinha = line.new(
x1=confirmacaoBar,
y1=precoAlvo,
x2=bar_index + 30,
y2=precoAlvo,
xloc=xloc.bar_index,
extend=extend.right,
color=corAlvo,
style=line.style_dotted,
width=2
)
label novoLabel = label.new(
x=bar_index,
y=precoAlvo,
text=nome + " " + f_preco(precoAlvo),
xloc=xloc.bar_index,
yloc=yloc.price,
style=label.style_label_left,
color=color.new(corAlvo, 75),
textcolor=corAlvo,
size=size.small
)
array.push(linhasAlvo, novaLinha)
array.push(labelsAlvo, novoLabel)
//==================================================
// 16. IDENTIFICAÇÃO DO MOVIMENTO DIRECIONAL
//==================================================
bool leituraAtiva = time >= inicioLeitura
if leituraAtiva and estado == 0 and novoPivotTipo != 0 and novoPivotTempo >= inicioLeitura
if na(ultimoPivotPreco)
ultimoPivotPreco := novoPivotPreco
ultimoPivotBar := novoPivotBar
ultimoPivotTempo := novoPivotTempo
ultimoPivotTipo := novoPivotTipo
else if novoPivotTipo == ultimoPivotTipo
bool pivotMaisExtremo = novoPivotTipo == 1 ? novoPivotPreco > ultimoPivotPreco : novoPivotPreco < ultimoPivotPreco
if pivotMaisExtremo
ultimoPivotPreco := novoPivotPreco
ultimoPivotBar := novoPivotBar
ultimoPivotTempo := novoPivotTempo
else
baseInicioPreco := ultimoPivotPreco
baseInicioBar := ultimoPivotBar
baseInicioTempo := ultimoPivotTempo
baseFimPreco := novoPivotPreco
baseFimBar := novoPivotBar
baseFimTempo := novoPivotTempo
direcaoBase := baseFimPreco > baseInicioPreco ? 1 : -1
tempoBase := math.abs(baseFimTempo - baseInicioTempo) / 60000.0
amplitudeBase := math.abs(baseFimPreco - baseInicioPreco)
extremoCorrecao := baseFimPreco
extremoCorrecaoBar := baseFimBar
extremoCorrecaoTempo := baseFimTempo
retracaoMaxima := 0.0
correcaoValidada := false
finalCorrecaoTempo := na
confirmacaoBar := na
confirmacaoPreco := na
estado := 1
ultimoPivotPreco := novoPivotPreco
ultimoPivotBar := novoPivotBar
ultimoPivotTempo := novoPivotTempo
ultimoPivotTipo := novoPivotTipo
//==================================================
// 17. MEDIÇÃO DA CORREÇÃO
//==================================================
float retracaoAtual = na
if estado == 1 and not na(amplitudeBase) and amplitudeBase > 0
if direcaoBase == 1
if low < extremoCorrecao
extremoCorrecao := low
extremoCorrecaoBar := bar_index
extremoCorrecaoTempo := time
retracaoAtual := math.max(0.0, (baseFimPreco - close) / amplitudeBase)
retracaoMaxima := math.max(0.0, (baseFimPreco - extremoCorrecao) / amplitudeBase)
else if direcaoBase == -1
if high > extremoCorrecao
extremoCorrecao := high
extremoCorrecaoBar := bar_index
extremoCorrecaoTempo := time
retracaoAtual := math.max(0.0, (close - baseFimPreco) / amplitudeBase)
retracaoMaxima := math.max(0.0, (extremoCorrecao - baseFimPreco) / amplitudeBase)
correcaoValidada := retracaoMaxima >= retracaoMinima
//==================================================
// 18. TEMPO DA CORREÇÃO
//==================================================
int tempoAgora = barstate.isrealtime ? timenow : time_close
float tempoCorrecao = na
if estado == 1 and not na(baseFimTempo)
tempoCorrecao := math.max(0.0, (tempoAgora - baseFimTempo) / 60000.0)
else if estado == 2
if not na(baseFimTempo) and not na(finalCorrecaoTempo)
tempoCorrecao := math.max(0.0, (finalCorrecaoTempo - baseFimTempo) / 60000.0)
float relacaoTemporal = na
if not na(tempoBase) and tempoBase > 0 and not na(tempoCorrecao)
relacaoTemporal := tempoCorrecao / tempoBase
float tempoMinimo = na
float inicioJanela = na
float fimJanela = na
if not na(tempoBase)
tempoMinimo := tempoBase * relacaoMinimaTempo
inicioJanela := tempoBase * relacaoIdealInicio
fimJanela := tempoBase * relacaoIdealFim
float faltamMinimo = na
if not na(tempoCorrecao) and not na(tempoMinimo)
if tempoCorrecao < tempoMinimo
faltamMinimo := tempoMinimo - tempoCorrecao
float faltamJanela = na
if not na(tempoCorrecao) and not na(inicioJanela)
if tempoCorrecao < inicioJanela
faltamJanela := inicioJanela - tempoCorrecao
bool tempoValido = not na(relacaoTemporal) and relacaoTemporal >= relacaoMinimaTempo
bool janelaIdeal = not na(relacaoTemporal) and relacaoTemporal >= relacaoIdealInicio and relacaoTemporal <= relacaoIdealFim
bool tempoExcedido = not na(relacaoTemporal) and relacaoTemporal > relacaoIdealFim
bool fibValida = not na(retracaoMaxima) and retracaoMaxima >= fibIdealMinimo and retracaoMaxima <= fibIdealMaximo
//==================================================
// 19. INVALIDAÇÃO
//==================================================
bool estruturaInvalidada = false
if estado == 1 and invalidarEm100 and not na(baseInicioPreco)
if direcaoBase == 1
estruturaInvalidada := close <= baseInicioPreco
else if direcaoBase == -1
estruturaInvalidada := close >= baseInicioPreco
if estruturaInvalidada
estado := 0
ultimoPivotPreco := na
ultimoPivotBar := na
ultimoPivotTempo := na
ultimoPivotTipo := 0
baseInicioPreco := na
baseFimPreco := na
baseInicioBar := na
baseFimBar := na
baseInicioTempo := na
baseFimTempo := na
direcaoBase := 0
tempoBase := na
amplitudeBase := na
extremoCorrecao := na
extremoCorrecaoBar := na
extremoCorrecaoTempo := na
retracaoMaxima := na
correcaoValidada := false
finalCorrecaoTempo := na
confirmacaoBar := na
confirmacaoPreco := na
if not na(linhaBase)
line.delete(linhaBase)
if not na(linhaCorrecao)
line.delete(linhaCorrecao)
if not na(linhaRetomada)
line.delete(linhaRetomada)
linhaBase := na
linhaCorrecao := na
linhaRetomada := na
if not na(labelInicio)
label.delete(labelInicio)
if not na(labelFim)
label.delete(labelFim)
if not na(labelCorrecao)
label.delete(labelCorrecao)
if not na(labelConfirmacao)
label.delete(labelConfirmacao)
labelInicio := na
labelFim := na
labelCorrecao := na
labelConfirmacao := na
f_limparFibo()
f_limparAlvos()
//==================================================
// 20. CONFIRMAÇÃO DA PRÓXIMA ONDA
//==================================================
bool retomadaAlta = estado == 1 and direcaoBase == 1 and correcaoValidada and close > baseFimPreco
bool retomadaBaixa = estado == 1 and direcaoBase == -1 and correcaoValidada and close < baseFimPreco
bool retomadaConfirmada = barstate.isconfirmed and (retomadaAlta or retomadaBaixa)
if retomadaConfirmada
estado := 2
finalCorrecaoTempo := time_close
confirmacaoBar := bar_index
confirmacaoPreco := close
//==================================================
// 21. ÍNDICE NEOWAVE
//==================================================
int indiceNeoWave = 0
if not na(baseFimPreco)
indiceNeoWave += 20
if correcaoValidada
indiceNeoWave += 20
if tempoValido
indiceNeoWave += 20
if fibValida
indiceNeoWave += 20
if estado == 2
indiceNeoWave += 20
bool proximaOndaConfirmada = estado == 2 and indiceNeoWave >= scoreMinimo
//==================================================
// 22. TEXTOS OPERACIONAIS
//==================================================
string nomeProximaOnda = f_nomeProximaOnda(hipoteseCorrecao)
string proximaOndaDirecao = "AGUARDANDO"
if direcaoBase == 1
proximaOndaDirecao := nomeProximaOnda + " DE ALTA"
else if direcaoBase == -1
proximaOndaDirecao := nomeProximaOnda + " DE BAIXA"
string faseTexto = "PROCURANDO DIRECIONAL"
string ondaAtualTexto = "AGUARDANDO"
string estagioTexto = "AGUARDANDO"
string acaoTexto = "AGUARDAR"
string sinalTexto = "SEM SINAL"
if estado == 1
faseTexto := "CORREÇÃO ATIVA"
ondaAtualTexto := str.upper(hipoteseCorrecao)
if not correcaoValidada
estagioTexto := "CORREÇÃO NÃO VALIDADA"
acaoTexto := "AGUARDAR RETRAÇÃO MÍNIMA"
else if not tempoValido
estagioTexto := "CORREÇÃO JOVEM"
acaoTexto := "AGUARDAR MATURIDADE"
else if janelaIdeal and fibValida
estagioTexto := "JANELA DE FINAL DA " + str.upper(hipoteseCorrecao)
acaoTexto := "AGUARDAR RETOMADA DE " + f_direcaoTexto(direcaoBase)
else if tempoExcedido
estagioTexto := "CORREÇÃO COMPLEXA"
acaoTexto := "REAVALIAR CONTAGEM"
else
estagioTexto := "CORREÇÃO MADURA"
acaoTexto := "MONITORAR FINAL DA " + str.upper(hipoteseCorrecao)
else if estado == 2
faseTexto := "EXPANSÃO INICIADA"
ondaAtualTexto := proximaOndaDirecao
if proximaOndaConfirmada
estagioTexto := proximaOndaDirecao + " CONFIRMADA"
if direcaoBase == 1
sinalTexto := "SINAL DE ALTA"
acaoTexto := "ACOMPANHAR EXPANSÃO DE ALTA"
else
sinalTexto := "SINAL DE BAIXA"
acaoTexto := "ACOMPANHAR EXPANSÃO DE BAIXA"
else
estagioTexto := "RETOMADA CONFIRMADA"
acaoTexto := "ÍNDICE ABAIXO DO MÍNIMO"
//==================================================
// 23. STOP E ALVOS
//==================================================
float stopTecnico = estado == 2 ? extremoCorrecao : na
float alvo100 = na
float alvo1618 = na
float alvo2618 = na
if estado == 2 and not na(extremoCorrecao) and not na(amplitudeBase)
alvo100 := extremoCorrecao + direcaoBase * amplitudeBase
alvo1618 := extremoCorrecao + direcaoBase * amplitudeBase * 1.618
alvo2618 := extremoCorrecao + direcaoBase * amplitudeBase * 2.618
//==================================================
// 24. DESENHO DO DIRECIONAL
//==================================================
if not na(baseInicioBar) and not na(baseFimBar)
color corDirecional = direcaoBase == 1 ? corAlta : corBaixa
if mostrarBase
if na(linhaBase)
linhaBase := line.new(
x1=baseInicioBar,
y1=baseInicioPreco,
x2=baseFimBar,
y2=baseFimPreco,
xloc=xloc.bar_index,
color=corDirecional,
width=3
)
else
line.set_xy1(linhaBase, baseInicioBar, baseInicioPreco)
line.set_xy2(linhaBase, baseFimBar, baseFimPreco)
line.set_color(linhaBase, corDirecional)
if na(labelInicio)
labelInicio := label.new(
x=baseInicioBar,
y=baseInicioPreco,
text="INÍCIO DIRECIONAL",
xloc=xloc.bar_index,
yloc=yloc.price,
style=direcaoBase == 1 ? label.style_label_up : label.style_label_down,
color=corDirecional,
textcolor=color.white,
size=size.small
)
if na(labelFim)
labelFim := label.new(
x=baseFimBar,
y=baseFimPreco,
text="FIM DIRECIONAL " + f_tempo(tempoBase),
xloc=xloc.bar_index,
yloc=yloc.price,
style=direcaoBase == 1 ? label.style_label_down : label.style_label_up,
color=corDirecional,
textcolor=color.white,
size=size.small
)
//==================================================
// 25. DESENHO DA CORREÇÃO
//==================================================
if mostrarCorrecao and estado >= 1 and not na(baseFimBar) and not na(extremoCorrecaoBar)
if na(linhaCorrecao)
linhaCorrecao := line.new(
x1=baseFimBar,
y1=baseFimPreco,
x2=extremoCorrecaoBar,
y2=extremoCorrecao,
xloc=xloc.bar_index,
color=corCorrecao,
width=2
)
else
line.set_xy1(linhaCorrecao, baseFimBar, baseFimPreco)
line.set_xy2(linhaCorrecao, extremoCorrecaoBar, extremoCorrecao)
line.set_color(linhaCorrecao, corCorrecao)
string textoCorrecao = str.upper(hipoteseCorrecao) + " " + f_tempo(tempoCorrecao)
if na(labelCorrecao)
labelCorrecao := label.new(
x=extremoCorrecaoBar,
y=extremoCorrecao,
text=textoCorrecao,
xloc=xloc.bar_index,
yloc=yloc.price,
style=direcaoBase == 1 ? label.style_label_up : label.style_label_down,
color=corCorrecao,
textcolor=color.white,
size=size.small
)
else
label.set_xy(labelCorrecao, extremoCorrecaoBar, extremoCorrecao)
label.set_text(labelCorrecao, textoCorrecao)
//==================================================
// 26. SINAL DA PRÓXIMA ONDA
//==================================================
if estado == 2
if not na(confirmacaoBar)
if na(linhaRetomada)
linhaRetomada := line.new(
x1=extremoCorrecaoBar,
y1=extremoCorrecao,
x2=confirmacaoBar,
y2=confirmacaoPreco,
xloc=xloc.bar_index,
color=corConfirmacao,
width=3
)
else
line.set_xy1(linhaRetomada, extremoCorrecaoBar, extremoCorrecao)
line.set_xy2(linhaRetomada, confirmacaoBar, confirmacaoPreco)
line.set_color(linhaRetomada, corConfirmacao)
string textoConfirmacao = "RETOMADA CONFIRMADA " + str.tostring(indiceNeoWave) + "/100"
if proximaOndaConfirmada
textoConfirmacao := proximaOndaDirecao + " CONFIRMADA " + str.tostring(indiceNeoWave) + "/100"
if mostrarSinal
if na(labelConfirmacao)
labelConfirmacao := label.new(
x=confirmacaoBar,
y=direcaoBase == 1 ? low : high,
text=textoConfirmacao,
xloc=xloc.bar_index,
yloc=yloc.price,
style=direcaoBase == 1 ? label.style_label_up : label.style_label_down,
color=proximaOndaConfirmada ? corConfirmacao : color.orange,
textcolor=color.white,
size=size.normal
)
else
label.set_xy(labelConfirmacao, confirmacaoBar, direcaoBase == 1 ? low : high)
label.set_text(labelConfirmacao, textoConfirmacao)
label.set_color(labelConfirmacao, proximaOndaConfirmada ? corConfirmacao : color.orange)
//==================================================
// 27. FIBONACCI
//==================================================
if barstate.islast
f_limparFibo()
if estado >= 1 and not na(baseInicioPreco) and not na(baseFimPreco)
f_desenharFibo(f_nivelRetracao(baseInicioPreco, baseFimPreco, 0.236), "23,6%", usar236)
f_desenharFibo(f_nivelRetracao(baseInicioPreco, baseFimPreco, 0.382), "38,2%", usar382)
f_desenharFibo(f_nivelRetracao(baseInicioPreco, baseFimPreco, 0.500), "50,0%", usar500)
f_desenharFibo(f_nivelRetracao(baseInicioPreco, baseFimPreco, 0.618), "61,8%", usar618)
f_desenharFibo(f_nivelRetracao(baseInicioPreco, baseFimPreco, 0.705), "70,5%", usar705)
f_desenharFibo(f_nivelRetracao(baseInicioPreco, baseFimPreco, 0.786), "78,6%", usar786)
f_desenharFibo(f_nivelRetracao(baseInicioPreco, baseFimPreco, 0.810), "81,0%", usar810)
f_desenharFibo(f_nivelRetracao(baseInicioPreco, baseFimPreco, 0.854), "85,4%", usar854)
f_desenharFibo(f_nivelRetracao(baseInicioPreco, baseFimPreco, 0.886), "88,6%", usar886)
f_desenharFibo(f_nivelRetracao(baseInicioPreco, baseFimPreco, 1.000), "100,0%", usar100)
//==================================================
// 28. ALVOS
//==================================================
if barstate.islast
f_limparAlvos()
if proximaOndaConfirmada
f_desenharAlvo(alvo100, "ALVO 1 — 100%")
f_desenharAlvo(alvo1618, "ALVO 2 — 161,8%")
f_desenharAlvo(alvo2618, "ALVO 3 — 261,8%")
//==================================================
// 29. FUNDO
//==================================================
color corFundo = na
if mostrarFundo and estado == 1 and janelaIdeal
corFundo := color.new(corIdeal, 88)
else if mostrarFundo and proximaOndaConfirmada
corFundo := color.new(corConfirmacao, 90)
bgcolor(corFundo)
//==================================================
// 30. PAINEL
//==================================================
var table painel = table.new(position.top_right, 2, 23, border_width=1)
if mostrarPainel and barstate.islast
color corDirecao = color.gray
color corEstado = corCorrecao
if direcaoBase == 1
corDirecao := corAlta
else if direcaoBase == -1
corDirecao := corBaixa
if proximaOndaConfirmada
corEstado := corConfirmacao
else if janelaIdeal
corEstado := corIdeal
else if tempoExcedido
corEstado := color.fuchsia
string movimentoBaseTexto = "AGUARDANDO"
if direcaoBase == 1
movimentoBaseTexto := "DIRECIONAL DE ALTA"
else if direcaoBase == -1
movimentoBaseTexto := "DIRECIONAL DE BAIXA"
string textoJanela = "-"
if janelaIdeal
textoJanela := "JANELA ATIVA"
else if tempoExcedido
textoJanela := "JANELA EXCEDIDA"
else if not na(faltamJanela)
textoJanela := f_tempo(faltamJanela)
table.cell(painel, 0, 0, "MAGALHAES", bgcolor=color.black, text_color=color.white)
table.cell(painel, 1, 0, "NEOWAVE ONDA 3 PRO", bgcolor=color.black, text_color=color.white)
table.cell(painel, 0, 1, "Fase", bgcolor=color.black, text_color=color.white)
table.cell(painel, 1, 1, faseTexto, bgcolor=corEstado, text_color=color.white)
table.cell(painel, 0, 2, "Movimento Base", bgcolor=color.black, text_color=color.white)
table.cell(painel, 1, 2, movimentoBaseTexto, bgcolor=corDirecao, text_color=color.white)
table.cell(painel, 0, 3, "Onda Atual", bgcolor=color.black, text_color=color.white)
table.cell(painel, 1, 3, ondaAtualTexto, bgcolor=corEstado, text_color=color.white)
table.cell(painel, 0, 4, "Estágio", bgcolor=color.black, text_color=color.white)
table.cell(painel, 1, 4, estagioTexto, bgcolor=corEstado, text_color=color.white)
table.cell(painel, 0, 5, "Tempo Direcional", bgcolor=color.black, text_color=color.white)
table.cell(painel, 1, 5, f_tempo(tempoBase), bgcolor=color.gray, text_color=color.white)
table.cell(painel, 0, 6, "Tempo Correção", bgcolor=color.black, text_color=color.white)
table.cell(painel, 1, 6, f_tempo(tempoCorrecao), bgcolor=color.gray, text_color=color.white)
table.cell(painel, 0, 7, "Relação Temporal", bgcolor=color.black, text_color=color.white)
table.cell(painel, 1, 7, f_relacao(relacaoTemporal), bgcolor=corEstado, text_color=color.white)
table.cell(painel, 0, 8, "Tempo Mínimo", bgcolor=color.black, text_color=color.white)
table.cell(painel, 1, 8, f_tempo(tempoMinimo), bgcolor=color.gray, text_color=color.white)
table.cell(painel, 0, 9, "Faltam Mínimo", bgcolor=color.black, text_color=color.white)
table.cell(painel, 1, 9, not na(faltamMinimo) ? f_tempo(faltamMinimo) : "CUMPRIDO", bgcolor=tempoValido ? color.green : color.gray, text_color=color.white)
table.cell(painel, 0, 10, "Janela Ideal", bgcolor=color.black, text_color=color.white)
table.cell(painel, 1, 10, f_tempo(inicioJanela) + " até " + f_tempo(fimJanela), bgcolor=color.gray, text_color=color.white)
table.cell(painel, 0, 11, "Faltam Janela", bgcolor=color.black, text_color=color.white)
table.cell(painel, 1, 11, textoJanela, bgcolor=corEstado, text_color=color.white)
table.cell(painel, 0, 12, "Retração Atual", bgcolor=color.black, text_color=color.white)
table.cell(painel, 1, 12, f_percentual(retracaoAtual), bgcolor=color.gray, text_color=color.white)
table.cell(painel, 0, 13, "Retração Máxima", bgcolor=color.black, text_color=color.white)
table.cell(painel, 1, 13, f_percentual(retracaoMaxima), bgcolor=color.gray, text_color=color.white)
table.cell(painel, 0, 14, "Tempo Válido", bgcolor=color.black, text_color=color.white)
table.cell(painel, 1, 14, f_simNao(tempoValido), bgcolor=tempoValido ? color.green : color.gray, text_color=color.white)
table.cell(painel, 0, 15, "Fib Válida", bgcolor=color.black, text_color=color.white)
table.cell(painel, 1, 15, f_simNao(fibValida), bgcolor=fibValida ? color.green : color.gray, text_color=color.white)
table.cell(painel, 0, 16, "Correção Completa", bgcolor=color.black, text_color=color.white)
table.cell(painel, 1, 16, estado == 2 ? "SIM" : "NÃO", bgcolor=estado == 2 ? color.green : color.gray, text_color=color.white)
table.cell(painel, 0, 17, "Rompimento", bgcolor=color.black, text_color=color.white)
table.cell(painel, 1, 17, estado == 2 ? "CONFIRMADO" : "AGUARDANDO", bgcolor=estado == 2 ? color.green : color.gray, text_color=color.white)
table.cell(painel, 0, 18, "Índice NeoWave", bgcolor=color.black, text_color=color.white)
table.cell(painel, 1, 18, str.tostring(indiceNeoWave) + " / 100", bgcolor=indiceNeoWave >= scoreMinimo ? color.green : color.orange, text_color=color.white)
table.cell(painel, 0, 19, "Sinal", bgcolor=color.black, text_color=color.white)
table.cell(painel, 1, 19, sinalTexto, bgcolor=proximaOndaConfirmada ? corDirecao : color.gray, text_color=color.white)
table.cell(painel, 0, 20, "Stop Técnico", bgcolor=color.black, text_color=color.white)
table.cell(painel, 1, 20, f_preco(stopTecnico), bgcolor=color.red, text_color=color.white)
table.cell(painel, 0, 21, "Alvos", bgcolor=color.black, text_color=color.white)
table.cell(painel, 1, 21, "100%: " + f_preco(alvo100) + " 161,8%: " + f_preco(alvo1618) + " 261,8%: " + f_preco(alvo2618), bgcolor=corAlvo, text_color=color.white)
table.cell(painel, 0, 22, "Estado / Ação", bgcolor=color.black, text_color=color.white)
table.cell(painel, 1, 22, estagioTexto + " " + acaoTexto, bgcolor=corEstado, text_color=color.white)
//==================================================
// 31. ALERTAS
//==================================================
alertcondition(
correcaoValidada and not correcaoValidada ,
title="NeoWave — Correção validada",
message="A correção atingiu a retração mínima."
)
alertcondition(
tempoValido and not tempoValido ,
title="NeoWave — Tempo mínimo cumprido",
message="A correção cumpriu o tempo mínimo."
)
alertcondition(
janelaIdeal and not janelaIdeal ,
title="NeoWave — Janela temporal ativa",
message="A correção entrou na janela temporal ideal."
)
alertcondition(
retomadaConfirmada,
title="NeoWave — Retomada confirmada",
message="A correção terminou e a direção original foi retomada."
)
alertcondition(
proximaOndaConfirmada and not proximaOndaConfirmada ,
title="NeoWave — Próxima onda confirmada",
message="A próxima onda foi confirmada pelo motor NeoWave."
)
alertcondition(
estruturaInvalidada,
title="NeoWave — Estrutura invalidada",
message="A correção fechou além da origem do movimento direcional."
) Wskaźnik

YL / RL Professional Version 3 - Multi-Market Trading LevelsYL / RL Professional V3 — Multi-Market Trading Levels
I designed this simple indicator to help me implement the RocketScooter Levels in TradingView.
YL / RL Professional V3 is a customizable horizontal-level indicator designed for traders who track key reference levels across Nasdaq and S&P 500 futures.
The indicator allows users to enter separate groups of trading levels for:
MNQ and NQ
MES and ES
Levels entered for MNQ automatically display on NQ, while levels entered for MES automatically display on ES. This eliminates duplicate data entry when switching between micro and full-sized futures contracts.
Included level types
Yellow Levels
Red Levels
DD Band Levels
MHP
Dynamic MHP
HP
Dynamic HP
Bull Zone Bottom
HG
Bear Zone Top
Main features
Comma-separated entry for multiple Yellow, Red and DD Band levels
Separate Nasdaq and S&P 500 level groups
Automatic ticker detection
Shared levels between MNQ/NQ and MES/ES
Custom colors, line widths and transparency
Solid, dashed and dotted line styles
Optional price labels
Adjustable label size and placement
Duplicate-level removal
Automatic level sorting
Show or hide individual level groups
Optional touch alerts
On-chart status panel showing the active market and number of displayed levels
How it works
Enter Nasdaq levels once in the MNQ/NQ settings section. Those levels will appear automatically on both MNQ and NQ charts.
Enter S&P 500 levels once in the MES/ES settings section. Those levels will appear automatically on both MES and ES charts.
When the chart symbol changes, the indicator automatically displays the correct level set and removes levels belonging to the other market.
Supported symbols
MNQ
NQ
MES
ES
The indicator supports continuous contracts and standard dated futures contracts, provided TradingView identifies the symbol root as MNQ, NQ, MES or ES.
Alerts
Touch alerts can be enabled for Yellow Levels, Red Levels, DD Bands and named levels. To receive alerts, create a TradingView alert and select:
Any alert() function call
Important note
This indicator does not calculate or generate trading levels. All levels are entered manually by the user based on their own analysis, methodology or trading plan.
Open-source notice
This script is published as open source so traders can review, customize and improve it for their own use. Please credit the original author when sharing modified versions.
Disclaimer: This indicator is provided for informational and educational purposes only. It is not financial advice and does not guarantee trading results. Wskaźnik

PROTOS 700 StrategiesPROTOS · 700 Strategies packs a full research library into a single indicator: 616 documented trading strategies drawn from quantitative research and classic technical analysis literature (Wilder, Connors, Crabel, Kaufman, Pring, Kyle, Osler, Bai-Perron, Lo-MacKinlay...), ready to display and visually test on any chart.
How to use it
Open the indicator settings.
Pick up to 5 strategies at once from the 5 dropdown menus. Tip: type a keyword directly in the menu to filter the list ("rsi", "breakout", "ichimoku", "session"...).
The indicators each strategy is built on (EMA, Bollinger, SuperTrend, Ichimoku, Keltner, Donchian, VWAP...) are automatically drawn on the chart, one color per slot.
Arrows mark the signals: ▲ LONG below the bar, ▼ SHORT above.
The summary panel shows, for each slot: ID, name, signal state and live indicator values (handy for oscillator-based strategies such as RSI, ADX or Z-score).
Alerts
Click "Create alert" and pick a PROTOS condition: LONG/SHORT per slot or global. Detailed messages (strategy name and ID) are also sent through "Any alert() function call".
Under the hood
12 categories: trend following, mean reversion, breakout, volatility, microstructure, sessions, volume, momentum, candlesticks, statistical...
Each strategy is a precise set of conditions on indicators computed with their original formulas (Wilder RSI/ATR/ADX, population Bollinger Bands, MT5-style stochastic, UTC-based sessions).
Signals are evaluated on bar close: no repainting.
Volume-based strategies stay silent on symbols that do not provide volume data. Wskaźnik

Wskaźnik

Session Intelligence Matrix ProSession Intelligence Matrix Pro
Session Intelligence Matrix Pro is a professional institutional-style session analytics indicator designed to reveal what each major Forex trading session historically contributes to the market. Instead of simply highlighting trading sessions with colored boxes, this indicator performs statistical analysis on hundreds of previous sessions and displays the probability, behavior, volatility, and smart-money characteristics of every session in one professional dashboard.
The primary objective of this indicator is to help traders understand which session is statistically strongest, which session usually creates the daily high or low, where volatility is most likely to appear, and when institutional activity is historically at its highest.
Whether you trade Forex, Gold, Indices, Crypto, or CFDs, Session Intelligence Matrix Pro allows you to make decisions based on historical session behavior rather than assumptions.
Why This Indicator Was Created
Most traders know the names of the major trading sessions:
Asia
London
New York AM
New York Lunch
New York PM
However, very few traders actually know:
Which session usually creates the largest move?
Which session most often sets the High of the Day?
Which session usually creates the Low of the Day?
Which session generates the largest Fair Value Gaps?
Which session contributes the highest percentage of daily volume?
Which session normally produces continuation after the previous session?
These statistics are extremely valuable for intraday traders, yet TradingView does not provide them.
Session Intelligence Matrix Pro was developed to solve this problem by collecting historical session statistics and presenting them in an easy-to-read institutional dashboard.
How the Indicator Works
The indicator automatically separates each trading day into five major sessions:
Asia Session
London Session
New York AM
New York Lunch
New York PM
For every completed session, it records important market information including:
Price range
ATR percentage
Candle size
Volume contribution
Bullish or bearish close
Highest price of the day
Lowest price of the day
Fair Value Gap creation
Session percentile
Over time, these records build a statistical database that is used to calculate historical averages and probabilities.
The dashboard is continuously updated as new market data becomes available.
Dashboard Metrics Explained
Average Range
Shows the average number of price points traveled during each session.
This helps identify which sessions normally produce the biggest market movement.
Large average range generally means:
Better trading opportunities
Higher volatility
Larger profit potential
Average ATR %
Displays how large each session is relative to the Daily ATR.
Instead of showing raw price movement, this metric compares every session against the market's normal daily volatility.
Higher values indicate stronger expansion.
Volume Share %
Shows how much of the entire day's trading volume is generated during each session.
This quickly reveals where institutional participation is strongest.
Average Candle Size
Calculates the average size of candles printed during every session.
Larger candles usually indicate:
Strong momentum
Institutional participation
Aggressive buying or selling
Highest Range
Displays the largest range ever recorded for that session within the available historical dataset.
Useful for understanding maximum expansion potential.
Lowest Range
Displays the smallest recorded range for every session.
This helps traders recognize when markets are historically quiet.
Bullish Session %
Shows how often each session closes bullish.
Example:
London Bullish Session = 54%
This means London has historically closed bullish approximately 54% of the recorded sessions.
High Of Day %
One of the most useful statistics.
Shows how frequently a session creates the day's highest price.
For example:
NY PM = 72%
This means that historically, the New York PM session has produced the High of the Day in 72% of the analyzed periods.
Low Of Day %
Shows how often each session creates the day's lowest price.
This helps traders anticipate where reversals or trend completions are most likely to occur.
Average FVG Count
Counts the average number of Fair Value Gaps created during every session.
Higher values indicate more institutional imbalance and stronger Smart Money activity.
Live Percentile
This feature compares the current session against historical data.
For example:
Live Percentile = 75%
This means the current session is already larger than 75% of previous sessions.
This allows traders to instantly understand whether today's market is:
Normal
Weak
Exceptionally volatile
Session Visualization
The indicator also draws colored session boxes directly on the chart.
Each box clearly highlights:
Session start
Session end
Session range
Session identification
This allows traders to quickly recognize where important moves occurred during the trading day.
Designed For
Session Intelligence Matrix Pro can be used on:
Forex
Gold (XAU/USD)
Silver
Crypto
Indices
CFDs
Futures
It is especially valuable for:
Intraday Traders
Scalpers
Smart Money Traders
ICT Traders
Session-Based Traders
Price Action Traders
Institutional Strategy Traders
Key Benefits
Automatically analyzes every major trading session.
Tracks historical session performance.
Displays institutional-quality statistics in a professional dashboard.
Identifies where volatility is historically concentrated.
Shows which session most frequently creates the High and Low of the Day.
Measures average volatility and ATR expansion.
Calculates volume contribution for each session.
Tracks Fair Value Gap frequency.
Displays live session percentile against historical data.
Helps traders trade with statistical confidence instead of emotion.
Disclaimer
This indicator is designed as a market analysis and statistical decision-support tool. Historical probabilities do not guarantee future market performance. Traders should always combine session statistics with proper market structure analysis, confirmation, and sound risk management before entering any trade.
Verification
Verified Original Script
Developed, programmed, and independently published by Forex_Market_Insights
This script represents original work created specifically for this TradingView publication and is not intended to copy or reproduce another author's proprietary implementation.
Clarification
Forex_Market_Insights is the original creator and developer of the concepts, analytical methodology, and overall trading framework reflected in this indicator.
This publication has been created with full acknowledgment of the original research and development behind the project. The verification reference to Forex_Market_Insights is included solely to recognize the origin of the analytical concepts and development process associated with this work.
The inclusion of Forex_Market_Insights in the verification section is intended as proper attribution and acknowledgment of the original creator's contribution to the methodology presented in this indicator. Wskaźnik

SWING DEMA 200 SUPERTRENDThis script is a high-confluence, trend-following Kill Zone & Swing Trading Strategy built for TradingView (Pine Script v6). It filters short-term candlestick structural reversals against long-term and medium-term trends during specific high-volume market sessions.
Core Components & LogicSession & Kill Zone Filter (Time Filter)
Tracks 4 major trading sessions: Asia, London Open, NY AM, and London Close (configured using New York time).
Valid trades can only be triggered when the market is inside these specific high-volume "Kill Zones.
"Trend Definition (Trend Filter)
Macro Trend: Defined by the 200 Double Exponential Moving Average (DEMA 200).Long positions (Buys) are only allowed if the price is above the DEMA 200.Short positions (Sells) are only allowed if the price is below the DEMA 200.
Micro Trend: Monitored by the Original Supertrend formula. It acts as a secondary filter ensuring you never trade against immediate momentum.
Anti-Whipsaw Filter (Volatility Filter)Measures the rate of change of the DEMA 200 against a 14-period ATR.If the market moves too flat (sideways), the background changes to a custom gray color, and all trading signals are locked to prevent false breakouts.
3-Candle Swing Signals (Execution)
Automatically detects structural Swing Highs (Pinnacles) and Swing Lows (Valleys) based on 3-candle fractal formations.Signals are plotted on the chart as highly visible Red and Green Triangles.
Dynamic Money Management (Risk Control)
Once a valid signal prints, the script instantly calculates and plots Stop Loss (SL) and Take Profit (TP) target guide lines.The SL is anchored directly to the Supertrend line plus a safety tick buffer, while the TP is automatically projected based on a user-defined Risk-to-Reward Ratio (e.g., 1:1.5).
🟢 ENTRY CHECKLIST
- BUY (LONG) POSITION
Phase 1: Timing Validation (Kill Zone)
Active Session: Current server time must fall within an authorized window (Asia, London Open, NY AM, or London Close).
Session BG Active: The chart background must display the session color (Purple, Blue, Orange, or Maroon).
Phase 2: Trend & Volatility Validation
Macro Filter: The current candle price must close above the orange DEMA 200 line.
Micro Filter: The original Supertrend line must be Green and plotting underneath the candles.
Volatility Filter: The background MUST NOT turn Gray (DEMA 200 is healthy and the market is not flat/sideways).
Phase 3: Candle Execution
Fractal Trigger: A structural Green Triangle (Low Swing) must print at the bottom of the pattern.
Bar Close Confirmation: The entry candle must fully close to prevent signal recalculation or repainting.
Risk Parameters: Orders must be set using the dynamic red line for Stop Loss (targetSL) and the teal line for Take Profit (targetTP).
🔴 ENTRY CHECKLIST - SELL (SHORT) POSITION
Phase 1: Timing Validation (Kill Zone)Active Session: Current server time must fall within an authorized window (Asia, London Open, NY AM, or London Close).Session BG Active: The chart background must display the session color (Purple, Blue, Orange, or Maroon).
Phase 2: Trend & Volatility Validation
Macro Filter: The current candle price must close below the orange DEMA 200 line.
Micro Filter: The original Supertrend line must be Red and plotting above the candles.
Volatility Filter: The background MUST NOT turn Gray (DEMA 200 is healthy and the market is not flat/sideways).
Phase 3: Candle Execution
Fractal Trigger: A structural Red Triangle (High Swing) must print at the top of the pattern.
Bar Close Confirmation: The entry candle must fully close to prevent signal recalculation or repainting.
Risk Parameters: Orders must be set using the dynamic red line for Stop Loss (targetSL) and the teal line for Take Profit (targetTP).
⚠️ NO-TRADE ZONE (DO NOT ENTER)
Immediately skip the trade setup if any of these conditions are met:
Gray Background is active → The algorithm detects a flat market where trend-following accuracy plummets.
Conflicting indicators → For example, a Green Buy Triangle prints but the price is under DEMA 200 or the Supertrend is still Red.
Outside Session Windows → The market lacks the necessary institutional momentum to push price targets efficiently.
"Special thanks to kivancOzbilgic for his amazing Supertrend script, which allowed me to successfully integrate it into this method." Wskaźnik

Wskaźnik

FractalMemoryLib [Jayadev Rana]FractalMemoryLib packages the pattern-memory engine used by the Fractal Memory Projection indicator and the Fractal Memory Strategy so any script can import it.
WHAT IT DOES
The library finds the historical window whose movement shape most resembles the most recent bars (mean squared distance between stdev-normalized log returns), replays what followed that window as a projected close path, and sizes stops and targets adaptively by volatility regime.
EXPORTED FUNCTIONS
logRet(src) - one-bar log return of a series.
bestMatch(src, winLen, scanDepth, gapAhead) - scans up to scanDepth bars back and returns the offset of the most similar window plus a 0-100 similarity score. gapAhead reserves bars after the match for a projection.
analogPath(src, offset, fcLen, scaleF) - array of fcLen projected closes built by replaying the returns that followed the match, rescaled by scaleF (for example current ATR over ATR at the match).
adaptiveR(atrLen, rankLen, base) - volatility-adaptive unit risk: ATR times (base plus its 0-1 percentile rank), plus the rank itself. Call on every bar.
volRegime(volRank) - "Low", "Normal" or "High" label from the rank.
targets(entry, dirSign, unitR, slMult) - stop loss and TP1/TP2/TP3 at 1R, 2R and 3R.
USAGE NOTES
Call adaptiveR on every bar for ta consistency. bestMatch and analogPath are loop-heavy; for display purposes call them on the last bar only, and make sure the chart has at least scanDepth plus gapAhead bars of history. When the library itself is added to a chart it draws a small demo projection line from the best analog.
The analog projection is a statistical reference to a similar past episode, not a prediction, and not financial advice. Biblioteka

Fractal Memory Strategy [Jayadev Rana]Fractal Memory Strategy trades the same engine as the Fractal Memory Projection indicator: it looks for the historical episode most similar to current price action, and only takes trend flips that agree with how that episode played out. Exits scale out at three volatility-adaptive targets.
HOW IT DECIDES
An ATR trailing stop tracks the trend. When it flips, the last 30 closes are converted to normalized log returns and compared against past windows by mean squared distance. The bars that followed the best analog give a net direction; the flip is only traded when the analog direction agrees (the filter can be disabled). Orders are processed on bar close, so no lookahead is involved. For visual context the strategy also draws the 50-candle ghost projection beyond the last bar - it is display-only and never affects order logic.
ENTRIES AND EXITS
On a confirmed bullish flip with agreement the strategy closes any short and enters long; the mirror applies to shorts. One unit of risk R equals ATR times (1.2 plus the ATR percentile rank over 200 bars), so targets and stops widen in volatile regimes and tighten in quiet ones. Position exits: one third at 1R, one third at 2R, the remainder at 3R, with a stop at 1.5R (all adjustable). Direction can be restricted to long-only or short-only.
PROPERTIES USED IN THE PUBLISHED BACKTEST
10,000 initial capital, 10 percent of equity per trade, 0.01 percent commission per order, 2 ticks slippage, no pyramiding, orders on close. These are deliberately conservative; adjust them to match your own broker before drawing any conclusion.
PANEL
Match similarity, volatility regime, forecast direction, closed trade count and win rate.
NOTES
The analog projection is a statistical reference, not a prediction, and past behaviour does not guarantee anything about the future. Results vary by symbol and timeframe; test on your own market with realistic costs before considering any live use. This is an educational tool, not financial advice. Strategia

88Targets - CVDD ProCVDD Pro — Bitcoin's Historical Floor and Cycle Top, On One Chart
THE IDEA IN ONE LINE
Every Bitcoin cycle, coins move from experienced long-term holders to new buyers. CVDD tracks the cumulative price at which that handover happened — and historically, Bitcoin's biggest bottoms formed right at that level. This indicator draws that floor, an accumulation zone above it, and a cycle-top estimate — all from real on-chain data.
WHAT YOU SEE
• Gold line — the raw CVDD floor, computed from on-chain data (Realized Cap minus cumulative transfer volume). Bitcoin's major bottoms (2015, 2018, 2022) formed at or near this line.
• Blue line — the practical bottom line, set slightly above the raw floor (Bitcoin historically bottoms a little above it, not exactly on it).
• Green shaded zone — the accumulation zone. Price entering here has historically meant late-stage capitulation territory.
• Red line — the cycle top estimate. Bitcoin's blow-off tops have been shrinking every cycle as the market matures; this line models that decay and compresses over time.
• Background highlights — soft green when price tags the bottom line, soft red when it tags the top line.
SIGNALS & ALERTS (3 built in)
• Zone entry (▽ marker + alert) — price entered the accumulation zone. A heads-up, not a buy signal.
• Zone exit upward (▲ marker + alert) — price climbed back OUT of the zone. Historically this confirmation marked the end of capitulation, near the start of new cycle legs.
• Top band touch (alert) — price reached the cycle top estimate, historically distribution territory.
HOW THE TOP MODEL WORKS (original)
Bitcoin's cycle tops used to overshoot the floor by huge multiples in its early years, and that overshoot has shrunk every cycle. The top line models this with a simple decaying multiple: it starts high in the early era and compresses toward a minimum as the market matures. The three settings controlling it are pre-fitted to the 2013 / 2017 / 2021 / 2025 tops and explained in plain language in their tooltips.
DATA & REQUIREMENTS
• Uses TradingView's integrated on-chain feeds: COINMETRICS:BTC_MARKETCAPREAL and GLASSNODE:BTC_TOTALVOLUME
• Bitcoin only — the script warns you if loaded on a non-BTC chart
• Best on Daily or Weekly with full history (e.g. BITSTAMP:BTCUSD)
SETTINGS
Every setting is written in plain language with a tooltip. The defaults are calibrated — most users never need to change anything. The Colors group lets you restyle every element.
HONEST LIMITATIONS — PLEASE READ
• Bitcoin has had only a handful of true cycle bottoms and tops in its entire history. That is a very small sample — these levels are historical references, not guarantees.
• The top model is fitted to past cycles. Market structure changes (ETFs, institutional holders) may change how future cycles behave in ways no historical model can anticipate.
• Nothing here predicts the future. This is a decision-support tool for cycle context — not financial advice and not a complete trading system. Always apply your own risk management.
CREDITS & ORIGINALITY
The CVDD concept was created by Willy Woo and is publicly documented. This script is an original, from-scratch implementation of that public concept using TradingView's on-chain data feeds, extended with an original cycle-top decay model, accumulation zone system, confirmation signals, and dashboard — none of which reuse code from other scripts. Wskaźnik

Wskaźnik

Risk & Position Sizing CalculatorRisk & Position Sizing Calculator with Signal Add-on
---
LEGAL DISCLAIMER — READ FIRST
**This script and this description are for EDUCATIONAL PURPOSES ONLY.**
- This is **not** investment advice, a trading recommendation, or a solicitation to buy or sell any stock, index, or F&O (Futures & Options) contract.
- Nothing in this script or description constitutes a recommendation to trade Nifty, Bank Nifty, or any stock, in cash, futures, or options.
- The script does **not** predict market direction and does **not** guarantee profit. Past performance of any rule-set (including the EMA-crossover logic used here) does not guarantee future results.
- Trading in equities, futures, and options carries a **high risk of loss**, including the possible loss of your entire invested capital, and is not suitable for everyone.
- All entries, exits, position sizes, and trading decisions remain **solely your own responsibility**.
- Please independently verify all information and **consult a SEBI-registered Investment Adviser** before making any trading or investment decision.
- The creator of this script accepts **no liability** for any financial loss arising from its use.
By using this script, you acknowledge that you understand and accept the above.
---
1. What This Script Is
A **risk and position-sizing calculator** for TradingView, with an **optional mechanical signal add-on**. It does two separate jobs:
1. **Risk Calculator (always on):** tells you how many lots you could safely trade on any chart (Nifty, Bank Nifty, or a stock), given your capital and risk tolerance — the math, not a prediction.
2. **Signal Add-on (optional, toggle on/off):** plots a Buy marker based on one fixed technical rule (EMA crossover, optionally RSI-filtered), then tracks that trade and marks profit-booking levels (T1/T2/T3) and stop-loss on the chart, with alerts.
Wskaźnik

Regression Pulse Trend Suite [Crypto_Zombianz]# Regression Pulse Trend Suite
## Overview
Regression Pulse Trend Suite is a multi-purpose trend-following and market-structure indicator designed to help traders identify trend direction, dynamic support and resistance areas, potential reversal points, and long or short trading opportunities.
The indicator combines a Linear Regression Channel, volatility-based deviation bands, an EMA trend ribbon, peak and trough detection, risk-management levels, and customizable alerts in one complete trading tool.
It can be used on cryptocurrencies, forex, stocks, indices, commodities, and other liquid markets across multiple timeframes.
## Main Features
### Linear Regression Trend Channel
The indicator calculates a Linear Regression Channel using the selected lookback period.
The channel includes:
* A central regression line representing the prevailing price trend.
* Upper and lower deviation bands representing dynamic resistance and support.
* Intermediate dotted levels that help identify potential reaction and pullback areas.
* Optional channel extension to project the current trend structure forward.
The channel automatically adjusts as new price data becomes available.
### EMA Trend Ribbon
The indicator displays five Exponential Moving Averages:
* EMA 8
* EMA 12
* EMA 16
* EMA 20
* EMA 24
The EMA ribbon provides a visual representation of short-term trend direction and momentum.
A properly aligned and expanding ribbon may indicate strengthening momentum, while a compressed or frequently crossing ribbon may indicate consolidation or an uncertain market.
### Peak and Trough Detection
The indicator identifies potential market turning points using candle-direction changes and previous threshold levels.
* A red cross represents a detected peak.
* A blue diamond represents a detected trough.
* A red circle represents a potential short signal when signal visibility is enabled.
* A blue circle represents a potential long signal when signal visibility is enabled.
Peak and trough markers are not guaranteed reversal signals. They should be confirmed using the regression channel, EMA ribbon, market structure, volume, or another confirmation method.
### Long and Short Signals
A potential long signal is generated when a detected trough is followed by price crossing above the lower regression deviation band.
A potential short signal is generated when a detected peak is followed by price crossing below the upper regression deviation band.
The Position setting can be used to control which trade directions are allowed.
## How to Use the Indicator
### Long Setup
Consider a potential long setup when:
1. The price is near or below the lower regression channel.
2. A trough is detected.
3. The price crosses back above the lower deviation band.
4. The EMA ribbon supports bullish momentum.
5. The selected Position mode allows long trades.
The blue diamond identifies a trough, while the optional blue circle represents a potential long entry signal.
Avoid entering only because a trough appears. Waiting for candle-close confirmation and additional trend confirmation may help reduce false signals.
### Short Setup
Consider a potential short setup when:
1. The price is near or above the upper regression channel.
2. A peak is detected.
3. The price crosses back below the upper deviation band.
4. The EMA ribbon supports bearish momentum.
5. The selected Position mode allows short trades.
The red cross identifies a peak, while the optional red circle represents a potential short entry signal.
Avoid entering only because a peak appears. Waiting for candle-close confirmation and additional trend confirmation may help reduce false signals.
### Trend-Following Method
The indicator may also be used for trend-following entries.
During a bullish trend, traders can monitor the central regression line, lower intermediate level, or lower channel boundary for pullback opportunities.
During a bearish trend, traders can monitor the central regression line, upper intermediate level, or upper channel boundary for potential short opportunities.
A wider and clearly aligned EMA ribbon generally represents stronger momentum. A narrow or mixed ribbon can indicate consolidation.
### Support and Resistance Method
The regression levels can act as dynamic support and resistance zones:
* The upper deviation band may act as dynamic resistance.
* The lower deviation band may act as dynamic support.
* The central regression line may act as a trend equilibrium level.
* The intermediate dotted levels may act as pullback or partial profit-taking zones.
These levels should be treated as areas rather than exact prices.
## Indicator Settings
### Position
Controls the permitted trade direction:
* **Auto:** Allows long and short signals according to the regression trend filter.
* **Auto Long:** Allows only trend-filtered long signals.
* **Auto Short:** Allows only trend-filtered short signals.
* **Fixed:** Allows both long and short signals without the automatic trend-direction filter.
* **Fixed Long:** Allows only long signals.
* **Fixed Short:** Allows only short signals.
### Quantity
Sets the quantity value included in the indicator’s dynamic alert message.
This setting does not automatically place or execute an order.
### Take Profit
Controls the reward-to-risk multiplier used to calculate the projected take-profit level.
For example, a value of 1.2 calculates a target approximately 1.2 times the defined risk distance.
### Stop Loss
Available stop-loss calculation methods:
* **ATR:** Adds or subtracts one ATR from the recent three-bar high or low.
* **ATR x 2:** Adds or subtracts two ATR values from the recent three-bar high or low.
* **HHLL:** Uses the highest high or lowest low of the latest three candles without an additional ATR offset.
### Deviation
Controls the width of the Linear Regression Channel.
A higher value creates wider bands and fewer potential channel-crossing signals. A lower value creates narrower bands and may produce more frequent signals.
### Period
Defines the number of candles used in the Linear Regression calculation.
Lower periods react faster to recent price changes but may generate more market noise. Higher periods create smoother channels but react more slowly.
### Spread Percentages
Displays the percentage movement between detected peaks and troughs.
This can help traders estimate the size of recent market swings.
### Extend Trendlines
Extends the regression channel to the right side of the chart.
The projected lines represent the continuation of the current regression structure and will change as new candles are added.
### Visible Signals
Shows or hides the circular long and short signal markers.
Disabling this option does not disable the alert conditions.
## Alerts
The indicator provides alert conditions for:
* Long entry
* Short entry
* Peak detected
* Trough detected
Dynamic long and short alerts may also include:
* Ticker symbol
* Current price
* Quantity
* Stop-loss level
* Take-profit level
To create an alert, add the indicator to the chart, open TradingView’s alert menu, select the indicator, and choose the required alert condition.
For more reliable confirmation, alerts may be configured to trigger once per bar close.
## Recommended Usage
The indicator may be more effective when used with:
* Higher-timeframe trend analysis
* Support and resistance levels
* Volume confirmation
* Market structure
* Appropriate position sizing
* Candle-close confirmation
It is recommended to test different Period and Deviation settings because every market and timeframe has different volatility characteristics.
## Important Notes
The projected stop-loss and take-profit levels are visual reference levels only. The indicator does not automatically execute trades or manage positions.
Regression channels and signals can change as new market data becomes available. Projected trendlines should not be treated as fixed future levels.
No indicator can predict every market movement or eliminate false signals. Always test the indicator using historical data, paper trading, and your own trading plan before using it in live markets.
## Disclaimer
This indicator is provided for educational and informational purposes only. It does not constitute financial, investment, or trading advice. Trading involves substantial risk, and past performance does not guarantee future results. Users are responsible for their own trading decisions and risk management.
Wskaźnik

Quantum Trend Fusion ProQuantum Trend Fusion Pro
Quantum Trend Fusion Pro is a complete multi-factor trend analysis and trade confirmation indicator designed to help traders identify high-probability market opportunities by combining trend direction, momentum, market structure, volatility, volume analysis, probability scoring, and dynamic trade management into a single professional trading system.
Unlike traditional indicators that rely on only one technical method, Quantum Trend Fusion Pro continuously evaluates multiple market conditions simultaneously and converts them into an easy-to-read visual trading framework. The objective is to reduce market noise, filter weak trading opportunities, and highlight only those setups where several independent market factors align together.
Why This Indicator Was Created
Financial markets rarely move because of a single technical signal. Strong trends are usually supported by multiple confirmations such as momentum, volatility expansion, volume participation, directional pressure, and market structure.
Most traditional indicators only analyze one part of the market, forcing traders to combine several indicators manually.
Quantum Trend Fusion Pro was created to solve this problem by bringing all important technical components into one integrated system that continuously evaluates the current market environment and presents the results in a clean visual format.
Instead of making decisions from isolated indicators, traders receive one combined probability-based analysis.
How The Indicator Works
The indicator continuously analyzes live market data and processes multiple independent technical models simultaneously.
These include:
• Multi Moving Average Fusion Engine
• Adaptive Trend Analysis
• Momentum Analysis
• Market Structure Detection
• Relative Volume Analysis
• ATR Based Volatility Analysis
• Price Pressure Analysis
• Candle Strength Analysis
• Probability Scoring Engine
• Dynamic Quantum Oscillator
Every incoming candle updates all calculations in real time.
The indicator then combines these calculations using its internal weighted scoring model to estimate the current bullish and bearish probability.
Multi Moving Average Fusion
Instead of relying on only one moving average, the indicator creates a fusion of multiple moving averages with different lengths.
This allows the system to identify:
• Short-term direction
• Medium-term trend
• Long-term trend
• Trend alignment
• Trend strength
When all moving averages align together, the probability of a strong trend increases.
The colored trend cloud also becomes visually stronger, allowing traders to instantly identify the dominant market direction.
Dynamic Trend Cloud
The multi-layer trend cloud acts as a visual representation of market strength.
Green cloud indicates bullish dominance.
Red cloud indicates bearish dominance.
Neutral colors indicate uncertainty or ranging conditions.
As trend strength increases, the cloud expands and becomes more visually dominant.
During weak markets the cloud contracts and becomes lighter.
This allows traders to understand market strength without reading numerical values.
Smart Probability Engine
One of the most important components of the indicator is the probability engine.
Rather than generating random Buy or Sell signals, the indicator calculates probability using several independent market factors including:
• Trend alignment
• Momentum
• Market structure
• Relative volume
• Candle pressure
• Wick behavior
• Price position inside recent trading range
These values are combined into a weighted mathematical model that estimates the likelihood of bullish or bearish continuation.
The dashboard continuously updates these probabilities as new candles form.
Buy & Sell Signal Logic
Buy signals are not generated simply because price moves upward.
A Buy signal appears only when multiple conditions confirm each other simultaneously.
Examples include:
• Bullish trend alignment
• Positive momentum
• Bullish probability above the selected threshold
• Market structure confirmation
• Oscillator confirmation
• Volume confirmation (optional)
Similarly, Sell signals require:
• Bearish trend
• Negative momentum
• Bearish probability
• Structural weakness
• Oscillator confirmation
• Volume confirmation
Because several filters must agree together, weaker market conditions are automatically ignored.
High Probability Signals
The indicator also identifies exceptionally strong trading opportunities.
When the probability score reaches the High Probability threshold together with trend, momentum, and structure confirmation, a HIGH PROBABILITY SIGNAL label is displayed directly on the chart.
These setups represent periods where multiple independent market conditions align in the same direction, providing stronger confidence than standard signals.
Dynamic Trade Management
After a Buy or Sell signal appears, the indicator automatically creates a professional trade projection.
This includes:
• Entry price
• Stop Loss
• TP1
• TP2
• TP3
• TP4
• Risk-to-Reward visualization
• Profit zone
• Risk zone
• Percentage movement for every target
This helps traders visualize trade planning without manually calculating risk management levels.
Quantum Oscillator
The lower panel contains the custom Quantum Oscillator.
Unlike traditional oscillators that measure only momentum, this oscillator combines:
• Trend
• Momentum
• Velocity
• Price pressure
• Volume
• ATR volatility
The oscillator continuously changes according to live market conditions.
Green waves represent bullish strength.
Red waves represent bearish pressure.
Signal dots identify important momentum shifts while the signal line helps confirm changes in market direction.
Professional Dashboard
The live dashboard summarizes the complete market condition into one compact panel.
It continuously displays:
• Overall Signal
• Trend Score
• Momentum Score
• Volatility Score
• Structure Score
• Probability Score
• Volume Score
• ATR
• Bullish Percentage
• Bearish Percentage
• Current Trend
• Signal Quality
• Market State
• Current Bias
• Risk Level
• Recommended Direction
• Overall Trend Strength
Every value updates automatically as the market changes, giving traders a complete snapshot of current conditions without switching between multiple indicators.
Main Features
• Multi Moving Average Fusion Engine
• Adaptive Trend Detection
• Multi-Layer Dynamic Trend Cloud
• Probability Based Signal Engine
• Smart Buy & Sell Signals
• High Probability Trade Detection
• Dynamic Trade Projection
• Automatic Risk Management
• Four Take Profit Levels
• ATR Based Stop Loss
• Quantum Oscillator
• Professional Market Dashboard
• Trend Strength Measurement
• Volume Confirmation
• Market Structure Analysis
• Momentum Confirmation
• Live Market Scoring System
• Real-Time Probability Analysis
Best Use Cases
Quantum Trend Fusion Pro can be used for:
• Forex Trading
• Gold (XAUUSD)
• Cryptocurrency
• Indices
• Stocks
• Futures
It is suitable for:
• Scalping
• Intraday Trading
• Swing Trading
• Position Trading
Important Note
This indicator is designed as a professional decision-support tool. It helps traders evaluate market conditions by combining multiple technical factors into a single probability-based framework. As with any technical analysis tool, it should be used alongside sound risk management and the trader's own market judgment.
Originality & Author Verification
Quantum Trend Fusion Pro is an original indicator independently researched, designed, and developed by Forex_Market_Insights.
All calculations, probability models, trend fusion logic, quantum oscillator, dashboard architecture, visualization techniques, signal generation workflow, trade management system, scoring methodology, and overall implementation were created specifically for this project.
This script is not a copy, clone, conversion, modification, reverse-engineered version, or recreation of any existing TradingView script.
While it uses widely recognized technical analysis concepts such as moving averages, momentum, volatility, ATR, volume, market structure, and trend analysis, the overall architecture, mathematical integration, visualization system, and workflow are independently implemented.
© Forex_Market_Insights — All Rights Reserved. Wskaźnik

Kill Zone Swing DEMA 200 + Supertrend FilterThis script is a high-confluence, trend-following Kill Zone & Swing Trading Strategy built for TradingView (Pine Script v6). It filters short-term candlestick structural reversals against long-term and medium-term trends during specific high-volume market sessions.
Core Components & LogicSession & Kill Zone Filter (Time Filter)
Tracks 4 major trading sessions: Asia, London Open, NY AM, and London Close (configured using New York time).
Valid trades can only be triggered when the market is inside these specific high-volume "Kill Zones.
"Trend Definition (Trend Filter)
Macro Trend: Defined by the 200 Double Exponential Moving Average (DEMA 200).Long positions (Buys) are only allowed if the price is above the DEMA 200.Short positions (Sells) are only allowed if the price is below the DEMA 200.
Micro Trend: Monitored by the Original Supertrend formula. It acts as a secondary filter ensuring you never trade against immediate momentum.
Anti-Whipsaw Filter (Volatility Filter)Measures the rate of change of the DEMA 200 against a 14-period ATR.If the market moves too flat (sideways), the background changes to a custom gray color, and all trading signals are locked to prevent false breakouts.
3-Candle Swing Signals (Execution)
Automatically detects structural Swing Highs (Pinnacles) and Swing Lows (Valleys) based on 3-candle fractal formations.Signals are plotted on the chart as highly visible Red and Green Triangles.
Dynamic Money Management (Risk Control)
Once a valid signal prints, the script instantly calculates and plots Stop Loss (SL) and Take Profit (TP) target guide lines.The SL is anchored directly to the Supertrend line plus a safety tick buffer, while the TP is automatically projected based on a user-defined Risk-to-Reward Ratio (e.g., 1:1.5).
"Special thanks to kivancOzbilgic for his amazing Supertrend script, which allowed me to successfully integrate it into this method." Wskaźnik

Risk & Position Sizing CalculatorWhat it does
It's a risk and position-sizing calculator for TradingView — not a buy/sell signal generator. It runs on top of any chart (Nifty, Bank Nifty, or a stock) and answers: "If I enter here, how many lots can I safely trade given my capital and risk tolerance?"
1. Inputs (4 setting groups)
Capital & Risk — your capital, risk % per trade, and Caution/High-Risk thresholds that color-code the dashboard.
Stop-Loss Method — ATR-based (volatility-derived) or Swing High/Low (distance to recent swing point).
Contract Details — lot size (65 for Nifty by default, editable) and direction (Long/Short).
Targets — T1/T2/T3 as multiples of your risk (1R, 2R, 3R), mirroring the T1/T2/T3 in your original screenshot.
2. Calculations
Uses current close as "entry."
Computes stop-loss distance via ta.atr() × multiplier, or highest/lowest price over your lookback.
Derives stop-loss price and the three target prices as R-multiples from entry.
Computes risk amount (capital × risk%), risk per lot (SL distance × lot size), and max safe lots (risk amount ÷ risk per lot) — the same math behind "Safe Lots" in your dashboard tool.
Flags a zone: SAFE / CAUTION / HIGH RISK based on your risk % vs. the thresholds.
3. Visuals
Dashed/dotted lines on the chart for entry, stop-loss, and the three targets.
A dashboard table (top-right corner) showing all the numbers, updated on the latest bar.
What it doesn't do: pull option-chain data (strike, premium, decay) — not accessible Wskaźnik
