Indicator

Liquidity Gravity SMC Engine [Jayadev Rana]LIQUIDITY GRAVITY SMC ENGINE
WHAT IT IS
An experimental Smart Money Concepts toolkit that does not treat every order block and fair value gap as equal. Each unmitigated zone is modeled as a gravitational mass acting on price: heavy zones (born from strong displacement on high relative volume) matter more, old zones fade away, and the combined pull of all active zones is compressed into a single bounded bias reading. On top of that field sit a composite trend engine, a quality-scored buy/sell signal engine, and a pyramid re-add engine that only accepts fresh continuation zones.
THE GRAVITY MODEL (CORE ORIGINAL IDEA)
Every zone is minted with a mass at birth:
mass = displacement impulse (in ATR units) x (0.5 + volume percentile / 100)
The mass decays exponentially with a configurable half-life, so a zone that sits unmitigated for a long time gradually loses influence:
effective mass = mass x 0.5 ^ (age in bars / half-life)
Each bar, the script sums the pull of every active bullish zone and every active bearish zone on the current close using a softened inverse-square law (the softening epsilon prevents the value from exploding when price trades inside a zone):
pull = effective mass / (distance in ATR ^ 2 + epsilon ^ 2)
The two fields collapse into a bounded oscillator:
gravity bias = 100 x (bull field - bear field) / (bull field + bear field)
A reading near +100 means the active demand field dominates; near -100 means overhead supply dominates. The raw bull/bear field values, zone counts, and the bias are all exposed in the data window and on the dashboard.
ZONE DETECTION
- Order blocks: a break of a confirmed swing pivot with a displacement candle (body larger than a configurable ATR multiple) anoints the most recent opposite-color candle as the origin. Body-only or full-range zones are selectable.
- Fair value gaps: classic three-candle imbalance, filtered by a minimum gap height in ATR units and an optional minimum displacement body on the middle candle.
- Lifecycle: zones are marked on first touch, removed on a decisive close through the far side, expired after a maximum age, and capped per side (oldest dropped first).
TREND ENGINE
A composite score in -100..+100 blends three independent measurements with user weights:
1. Market structure regime from a BOS / CHoCH state machine on confirmed swing pivots.
2. Signed Kaufman efficiency ratio (how directional the recent path is versus noise).
3. ATR-normalized Hull MA slope, clamped to -1..+1.
The score passes through a hysteresis gate with separate entry and exit thresholds, so the published trend state (LONG / SHORT / NEUTRAL) does not flicker around zero.
SIGNALS AND THE RE-ADD ENGINE
A primary BUY prints when price trades into an active bullish zone and closes back above its top (a sweep and reject), while the trend state and, optionally, the gravity bias agree. Every candidate is scored with a 0-100 confluence quality:
quality = 100 x (0.35 x trend alignment + 0.25 x gravity alignment + 0.20 x zone mass rank + 0.20 x rejection strength)
Only candidates above the quality threshold print. After a primary entry, the re-add engine arms: an ADD signal requires a FRESH zone (born after the previous entry bar), the same trend direction, and a reduced quality threshold, with a hard cap on adds per leg. Legs terminate on an opposing trend flip or an opposing CHoCH, which prints an EXIT marker. SELL logic mirrors the buy side.
INPUT GROUPS
1. Market Structure - pivot length, BOS/CHoCH lines, swing labels.
2. Order Blocks - lookback, body-only toggle, displacement filter.
3. Fair Value Gaps - minimum gap size, middle-candle displacement filter.
4. Gravity Model - mass half-life, softening epsilon, volume percentile lookback, zone expiry, zone cap.
5. Trend Engine - efficiency ratio length, Hull MA length and slope lookback, component weights, entry/exit thresholds.
6. Signals and Re-Add - primary and re-add quality thresholds, max adds per leg, cooldown, gravity alignment toggle, bar-close confirmation.
7. Visuals - zone boxes, signal labels, trend ribbon, gravity gradient bar coloring, colors.
8. Dashboard - position and text size.
ALERTS
Ten alert conditions: primary BUY, primary SELL, re-add long, re-add short, trend flip long, trend flip short, bullish zone created, bearish zone created, bullish zone touched, bearish zone touched.
INTENDED MARKETS AND TIMEFRAMES
Any symbol with volume data (crypto, futures, liquid stocks, major forex pairs). The volume percentile term falls back gracefully where volume is absent, but zone masses become less differentiated. Designed for intraday through daily timeframes; defaults were chosen on 5-minute to 1-hour charts.
NON-REPAINTING BEHAVIOR
Swing pivots confirm after the pivot length (standard pivot lag). BOS/CHoCH events are evaluated on closes against already-confirmed pivots. With "confirm on bar close" enabled (default), signals and alerts fire only on confirmed bars. No security() calls and no lookahead are used.
LIMITATIONS
- The gravity model is a heuristic, not a physical law; the inverse-square form and the half-life are modeling choices you can tune.
- Zone quality depends on the displacement and volume filters; thin or gappy instruments produce fewer, noisier zones.
- Signals are informational markers, not orders; the leg/adds bookkeeping is a visual state machine, not broker position tracking.
This is an educational tool, not financial advice. Test any settings on your own market and timeframe before relying on them. Indicator

Fair Value Gaps Standalone [Rivasjr]English
Fair Value Gaps Standalone is a Pine Script® v6 indicator designed to identify and display bullish and bearish Fair Value Gaps directly on the chart.
A Fair Value Gap is a three-candle price imbalance that appears when part of the price range between the first and third candles is not traded. These areas can help traders visualize zones where price moved with displacement and where future interaction may occur.
Main features
Detects bullish and bearish Fair Value Gaps.
Displays each imbalance as a two-part shaded zone.
Supports the chart timeframe or a user-selected detection timeframe.
Includes an automatic threshold to filter less significant imbalances.
Allows users to control the horizontal extension of each FVG.
Can automatically remove fully mitigated Fair Value Gaps.
Provides independent colors for bullish and bearish zones.
How the indicator works
A bullish Fair Value Gap is identified when the low of the third candle remains above the high of the first candle and the displacement conditions are satisfied.
A bearish Fair Value Gap is identified when the high of the third candle remains below the low of the first candle and the displacement conditions are satisfied.
Each detected imbalance is divided at its midpoint and displayed using two boxes. Both boxes belong to the same Fair Value Gap and are removed together when full mitigation is enabled and price completely crosses the corresponding invalidation boundary.
Settings translation
Fair Value Gaps: Shows or hides detected Fair Value Gaps.
Auto Threshold: Automatically filters less significant gaps.
Intervalo de tiempo / Timeframe: Selects the timeframe used for FVG detection. Selecting “Chart” uses the current chart timeframe.
Bullish FVG: Sets the color of bullish Fair Value Gaps.
Bearish FVG: Sets the color of bearish Fair Value Gaps.
Extend FVG: Sets the number of additional bars used to extend each zone.
Eliminar FVG mitigados / Delete mitigated FVGs: Removes a zone after price completely crosses its mitigation boundary.
Important information
This indicator identifies price imbalances only. It does not generate entries, exits, profit targets, stop-loss levels, or trading recommendations. Fair Value Gaps should be evaluated together with market structure, liquidity, volume, trend, session context, and appropriate risk management.
Historical and real-time behavior can differ while a higher-timeframe candle is still developing. Users should understand the selected detection timeframe before using the indicator in their analysis.
Credits
Original Fair Value Gap concept and logic: © LuxAlgo.
Standalone Pine Script® v6 adaptation, structural organization, configurable visualization, mitigation management, timeframe selection, and user-interface implementation: © Rivasjr.
This work is distributed under the Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.
────────────────────────────────────
Español
Fair Value Gaps Standalone es un indicador desarrollado en Pine Script® v6 para identificar y mostrar Fair Value Gaps alcistas y bajistas directamente sobre el gráfico.
Un Fair Value Gap es un desequilibrio de precio formado por una estructura de tres velas, en la cual una parte del rango comprendido entre la primera y la tercera vela no fue negociada. Estas zonas permiten visualizar áreas donde el precio se desplazó con fuerza y donde podría producirse una interacción posterior.
Funciones principales
Detecta Fair Value Gaps alcistas y bajistas.
Representa cada desequilibrio mediante una zona dividida en dos secciones.
Permite utilizar el intervalo del gráfico o un intervalo de detección diferente.
Incluye un umbral automático para filtrar desequilibrios menos significativos.
Permite controlar la extensión horizontal de las zonas.
Puede eliminar automáticamente los FVG completamente mitigados.
Ofrece colores independientes para zonas alcistas y bajistas.
Funcionamiento
Un Fair Value Gap alcista se identifica cuando el mínimo de la tercera vela permanece por encima del máximo de la primera vela y se cumplen las condiciones de desplazamiento.
Un Fair Value Gap bajista se identifica cuando el máximo de la tercera vela permanece por debajo del mínimo de la primera vela y se cumplen las condiciones de desplazamiento.
Cada desequilibrio se divide en su punto medio y se representa mediante dos cajas. Ambas cajas forman parte del mismo Fair Value Gap y se eliminan conjuntamente cuando está activada la eliminación de zonas mitigadas y el precio atraviesa completamente su límite correspondiente.
Información importante
Este indicador identifica desequilibrios de precio. No proporciona entradas, salidas, objetivos, niveles de stop-loss ni recomendaciones de inversión. Los Fair Value Gaps deben analizarse junto con la estructura del mercado, liquidez, volumen, tendencia, contexto de sesión y una gestión de riesgo adecuada.
El comportamiento histórico y en tiempo real puede variar mientras una vela de temporalidad superior continúa en formación.
Indicator

Wonra Alchemist SNR EngineWonra Alchemist SNR Engine
An implementation of Malaysian SNR (MSNR) and the Quasimodo reversal pattern, built as one engine because in that method the pieces are not independent indicators. A level means nothing without knowing which way the story is running, and the story is told by levels. This publishes the whole reading rather than one part of it.
Everything below is visible in the source. This is published open-source so the code is the final word on any of it.
How levels are found
Malaysian SNR ignores wicks. A level is marked by joining one candle's close to the next candle's open, and the space between those two prices is the level itself. Where the two meet you get a hairline; where they do not, the space between them never traded, and that untraded space is what the method calls a GAP. The engine treats both as one construct: a level is a band, and a gap is a band you can see.
That has consequences the code follows through on:
A touch registers at either edge of the band.
A break requires a close through the far edge. Closing inside the band has broken nothing, because nothing in there ever traded.
Levels are seeded from confirmed swings (an ATR-threshold zigzag, so minor noise does not create a level of its own) and from close-to-open gaps above a size floor.
How a level earns weight
Two things strengthen a level, and the second is the one most tools ignore.
Touches. Price left the level, came back and was refused. Leaving is required: price hovering at a price does not add a touch every bar.
Misses. Price swung toward the level and turned before reaching it. In MSNR a miss validates a level rather than doing nothing, and the reasoning is that the resting liquidity was never taken, so all of it is still there. A level with three misses is not the same as one with three taps, and the label shows them separately.
Role flip (SBR / RBS)
A level closed through does not disappear, it changes sides. Broken support becomes resistance and broken resistance becomes support, keeping its history. This is the SBR/RBS part of the method and it is why the chart does not empty out over a session.
Quasimodo (QM / QML)
The engine looks for the QM shape: a shoulder, a head beyond it, and a return. For a bullish QM the head must be a lower low than the left shoulder; the level drawn is the left shoulder, not the head, which is where the pattern is traded from. Each candidate must also produce a structure break before it is accepted, and combinations are scanned across several swings so a pattern is still found when a minor swing sits inside it.
Supply zones extend up from the QM level and demand zones extend down from it, on one side only, so price is not counted as having reached a zone while it is still short of the level.
Storyline (direction)
MSNR determines direction from higher-timeframe levels, and the engine follows the four rules the method states:
Direction comes from higher-timeframe levels, read from bodies, not from wick extremes.
A storyline begins with a rejection: a close back below resistance, or back above support.
It is confirmed by a breakout on a lower timeframe. The engine distinguishes the two kinds the method names — an internal breakout of a level formed after the rejection, and an external breakout of one that already existed — and reports which occurred.
Levels against the established direction are roadblocks: the places pullbacks are expected to stop on the way. They are marked rather than hidden, because they are the one thing the method tells you to expect.
Engulfing zones (EG / EF)
An engulfing candle above a size floor creates a zone. The rule that makes it worth having is what happens when it fails: a bullish zone that price closes through becomes a failed zone read the other way, at the same prices, because that is where the other side proved itself. Broken twice and it is discarded, having now been wrong in both directions.
Imbalances
Three-candle gaps, drawn as neutral background. Zones spanning a market closure are discarded — a weekend is not unfinished business between buyers and sellers, it is a closed market, and it happens to leave the largest and most eye-catching gap on the chart.
Scoring
Confirmed patterns are scored 0-100 from what the engine already knows about them: the size of the structure, the quality of the break, whether liquidity was swept and how cleanly, whether an imbalance sits inside the zone, and how proven the levels involved are. The score sets how loudly a pattern is drawn. Nothing is deleted for scoring low.
Why this is one script and not several
Because in this method the parts are not separable. The storyline decides which levels are tradeable and which are roadblocks. The QM level is only a setup when it agrees with the storyline. A level's weight comes from its own touch and miss history. Splitting these into separate indicators would produce three scripts that each need the other two to say anything, which is the situation this replaces.
How to use it
The panel gives the current reading: storyline direction and which breakout confirmed it, how many fresh zones are live on each side, the nearest zone in ATR, and whether a confluence is being watched.
Fresh zones are the tradeable ones. A zone that has been used is faded, not removed, so the history stays readable.
Zone reactions are marked where they happen. A diamond marks a reaction from a level that had already proven itself.
Levels against the storyline are marked RB. Expect a pause there, not a reversal.
Higher timeframes for direction, lower for entry timing. The storyline timeframe is automatic and can be set manually.
Credits
The concepts are not mine. Malaysian SNR, the storyline structure, roadblocks, fresh and unfresh levels, the MISS, SBR/RBS and the Quasimodo entry come from Malaysian SNR and Alchemist educational material that circulates publicly. This is an implementation of that method, not a new one.
The Strong FVG section is taken from "Customizable Strong FVGs" by Fleezzuss, published open-source under the Mozilla Public License 2.0. The three-candle detection, the sensitivity modes and the zone lifecycle are their work. This script is published open-source under the same licence because of it.
Added on top: a gap is not drawn when it would sit on one already on the chart, so consecutive impulse candles stop stacking zones at the same price; gaps spanning a market closure are discarded, because a weekend is a closed market rather than an imbalance; and the palette is neutral so imbalances sit behind the levels instead of competing with them.
Not financial advice. This is an analysis tool. It does not predict outcomes and does not tell you to buy or sell. Every level can fail.
Indicator

Ultimate Scalping Signal Indicator//@version=6
indicator("Ultimate Scalping Signal Indicator", overlay=true)
// --- Inputs ---
emaLength = input.int(50, title="EMA Trend Length", minval=1)
stochLength = input.int(14, title="Stochastic Length", minval=1)
rsiLength = input.int(14, title="RSI Length", minval=1)
kSmooth = input.int(3, title="Smooth %K", minval=1)
dSmooth = input.int(3, title="Smooth %D", minval=1)
// --- Calculations ---
// 1. Trend Filter (EMA)
emaVal = ta.ema(close, emaLength)
plot(emaVal, color=color.blue, title="50 EMA", linewidth=2)
// 2. Momentum Filter (Stochastic RSI)
rsiVal = ta.rsi(close, rsiLength)
stochRsi = ta.stoch(rsiVal, rsiVal, rsiVal, stochLength)
k = ta.sma(stochRsi, kSmooth)
d = ta.sma(k, dSmooth)
// --- Signal Conditions ---
// Long Condition: Price is above EMA, and Stoch RSI %K crosses above %D below the oversold line (20)
longCondition = (close > emaVal) and ta.crossover(k, d) and (k < 20)
// Short Condition: Price is below EMA, and Stoch RSI %K crosses below %D above the overbought line (80)
shortCondition = (close < emaVal) and ta.crossunder(k, d) and (k > 80)
// --- Visual Alerts on Chart ---
plotshape(series=longCondition, title="Buy Signal", style=shape.triangleup,
location=location.belowbar, color=color.green, size=size.small, text="BUY")
plotshape(series=shortCondition, title="Sell Signal", style=shape.triangledown,
location=location.abovebar, color=color.red, size=size.small, text="SELL")
// --- Technical Alerts for PulseWire ---
alertcondition(longCondition, title="Scalp Buy Alert", message="Scalp Buy Signal Triggered!")
alertcondition(shortCondition, title="Scalp Sell Alert", message="Scalp Sell Signal Triggered!") Indicator

Indicator

Indicator

Eliot's Suite StrategyEliot's Suite Strategy — how it works
This strategy turns the "Eliot's Suite" indicator into a full trading system. It follows exactly the workflow the indicator's author described in the manual: define bias → wait for a structure trigger → enter → trail the stop behind fractals.
1. Bias filter. First the strategy decides which direction it's allowed to trade. With the default EMA Trend (50/200) filter, EMA50 above EMA200 means a macro uptrend, so only longs are allowed; the reverse allows only shorts. You can switch this to Session VWAP (looser) or turn it off entirely.
2. Structure trigger. By default the entry signal is ChoCh (Reversal) — the same trigger the author recommends. After a pullback, market structure breaks in your direction, and you enter on the resumption. You can switch this to BOS (Continuation) or Both.
3. Level check (optional, off by default). This is the author's "wait for the setup" rule. When enabled, the entry only fires if price is currently near a key level — VWAP, Daily Open, or yesterday's VWAP close.
4. Entry. A position only opens when all active conditions line up at once: bias confirms the direction and the trigger fires and (if enabled) price is near a level. The trigger alone does nothing without the bias filter agreeing — this is what filters out counter-trend entries, which is where this kind of structural logic usually bleeds money.
Once you're in a position, the second diagram takes over.
Stop loss sits at the last opposite fractal (below price for longs, above for shorts). If no valid fractal exists at entry, it falls back to an ATR-based stop.
Take profit is set as an R-multiple of that stop distance — default 2R, meaning the target is twice as far as the risk.
Trailing uses a ratchet rule: the stop only ever moves in your favour and never loosens. For a long, the stop becomes max(old stop, newest fractal below price); for a short, min(old stop, newest fractal above price). That's the "trail your stop behind the newly formed fractal boundary lines" idea from the manual, made mechanical.
Exit happens when price hits the stop, hits the take profit, or (optionally) when an opposite structure signal prints.
A couple of honest notes on backtesting: the strategy runs "clean" — no repainting, orders fill on the next bar's open, fractals confirm with the natural rightLen-bar delay. That delay means entries lag slightly behind the actual extreme, which is normal for fractals but eats into moves on low timeframes, so watch net profit against commission carefully — especially on 10m gold like your screenshot.
The two PNGs above are downloadable and copy-pasteable. Want me to also export the same two as a single combined image, or add a short-side mirror toggle like we did on "Money Printer"? Strategy

Indicator

ICT Sessions//@version=6
indicator("ICT交易时段", overlay=true)
// ==================== 设置 ====================
tz = input.string("America/New_York", "时区", options= )
showAsia = input.bool(true, "显示亚洲盘")
showLondon = input.bool(true, "显示伦敦盘")
showNY = input.bool(true, "显示纽约盘")
showOverlap = input.bool(true, "显示重合时段")
// 重点:加上 :23456 (只周一到周五)
asiaS = input.session("1900-0400:23456", "亚洲盘时间")
londonS = input.session("0200-1200:23456", "伦敦盘时间")
nyS = input.session("0800-1700:23456", "纽约盘时间")
asiaColor = input.color(color.new(#F5E6C8, 78), "亚洲颜色")
londonColor = input.color(color.new(#C8E6C9, 78), "伦敦颜色")
nyColor = input.color(color.new(#E1BEE7, 78), "纽约颜色")
overlapColor = input.color(color.new(#9C27B0, 65), "伦敦-纽约重合颜色")
asiaLonColor = input.color(color.new(#80CBC4, 70), "亚洲-伦敦重合颜色")
// ==================== 核心逻辑 ====================
isAsia = not na(time(timeframe.period, asiaS, tz))
isLondon = not na(time(timeframe.period, londonS, tz))
isNY = not na(time(timeframe.period, nyS, tz))
isLondonNY = isLondon and isNY
isAsiaLon = isAsia and isLondon
// ==================== 背景绘制 ====================
bgcolor(showOverlap and isLondonNY ? overlapColor : na)
bgcolor(showOverlap and isAsiaLon ? asiaLonColor : na)
bgcolor(showAsia and isAsia and not isAsiaLon and not isLondonNY ? asiaColor : na)
bgcolor(showLondon and isLondon and not isAsiaLon and not isLondonNY ? londonColor : na)
bgcolor(showNY and isNY and not isLondonNY ? nyColor : na) Indicator

ICT Sessions//@version=6
indicator("ICT交易时段(含重合)精简版", overlay=true, max_bars_back=500)
// ==================== 设置 ====================
tz = input.string("America/New_York", "时区(推荐纽约)", options= )
showAsia = input.bool(true, "显示亚洲盘")
showLondon = input.bool(true, "显示伦敦盘")
showNY = input.bool(true, "显示纽约盘")
showOverlap = input.bool(true, "显示重要重合")
// 时段时间
asiaS = input.session("1900-0400", "亚洲盘时间")
londonS = input.session("0200-1200", "伦敦盘时间")
nyS = input.session("0800-1700", "纽约盘时间")
// 颜色
asiaColor = input.color(color.new(#F5E6C8, 78), "亚洲颜色")
londonColor = input.color(color.new(#C8E6C9, 78), "伦敦颜色")
nyColor = input.color(color.new(#E1BEE7, 78), "纽约颜色")
overlapColor = input.color(color.new(#9C27B0, 65), "伦敦-纽约重合颜色")
// ==================== 核心逻辑 ====================
isWeekday = dayofweek != dayofweek.saturday and dayofweek != dayofweek.sunday
isAsia = isWeekday and not na(time(timeframe.period, asiaS, tz))
isLondon = isWeekday and not na(time(timeframe.period, londonS, tz))
isNY = isWeekday and not na(time(timeframe.period, nyS, tz))
isLondonNY = isLondon and isNY
isAsiaLon = isAsia and isLondon
// ==================== 背景绘制 ====================
bgcolor(showAsia and isAsia and not isAsiaLon and not isLondonNY ? asiaColor : na)
bgcolor(showLondon and isLondon and not isAsiaLon and not isLondonNY ? londonColor : na)
bgcolor(showNY and isNY and not isLondonNY ? nyColor : na)
// 重合(重点)
bgcolor(showOverlap and isAsiaLon ? color.new(#80CBC4, 70) : na)
bgcolor(showOverlap and isLondonNY ? overlapColor : na) Indicator

Indicator

EMA + RSI + Stochastic SignalEMA + RSI + Stochastic Signal (Graded Confluence)
Overview
This indicator combines a multi-EMA trend framework, RSI momentum, and a Stochastic crossover trigger into a single, graded signal system. Instead of just firing a triangle, every signal is scored A / B / C based on how much confluence lines up behind it — and a hover tooltip shows you exactly which conditions passed or failed. Optional Heikin-Ashi smoothing helps filter noise.
How signals are generated
A BUY requires all three core conditions:
Price breaks above the EMA High band
RSI > 50 (bullish momentum)
Stochastic %K crosses up (and is not yet overbought)
A SELL is the mirror image:
Price breaks below the EMA Low band
RSI < 50 (bearish momentum)
Stochastic %K crosses down (and is not yet oversold)
Confluence grading
Once a core signal fires, three extra factors are checked to grade signal quality:
EMA trend stack (EMA1 > EMA2 > EMA3 for longs, inverse for shorts)
Volume surge vs its moving average
2nd-candle confirmation in the signal's direction
Grade: A = all 3 confirmed (full confluence), B = 2 (partial), C = 1 or fewer (weak). Hover any signal label to see the full ✓/✗ checklist.
On-chart tools
Graded BUY/SELL labels with detailed hover tooltips
Live info table (RSI, %K, %D, Stoch cross status, current signal) — position selectable
Signal background highlighting
Optional Heikin-Ashi candle overlay
Alerts
Dynamic alert() calls deliver the full breakdown — ticker, price, timeframe, grade, and the pass/fail checklist — straight to your pop-up/webhook. Classic alertcondition() BUY/SELL alerts are also included. To use the detailed version, create an alert and choose "Any alert() function call."
Settings
EMA lengths & colors (trend + High/Low bands)
RSI length and source
Stochastic %K/%D/smoothing and OB/OS levels
Heikin-Ashi toggle & display
Volume MA length and surge multiplier
Table location
Notes
This is an analysis/education tool, not financial advice. Signals repaint intra-bar; wait for bar close for confirmation, and always combine with your own risk management. Best used with trend and higher-timeframe context. Indicator

Indicator

Indicator

Precision Bedrock [MohaveTrader]Precision Bedrock is an open-source market structure indicator that combines adaptive trend rails, structural equilibrium, rail-sourced support and resistance zones, and contextual reversal warnings into a single framework. Rather than accumulating historical levels, Bedrock continuously maintains the structure that remains relevant to current price action.
━━━━━━━━━━━━━━━━━━━━━━━━━━
WHY BEDROCK IS DIFFERENT
━━━━━━━━━━━━━━━━━━━━━━━━━━
Most support/resistance tools draw a level and leave it there. The market moves; the level does not, and the chart slowly fills with lines that no longer matter.
Bedrock treats market structure as something living. Zones are born from rail extremes and confirmed by price rejection. They move through a defined lifecycle that includes testing, confirmation, merging, role reversal, and eventual retirement as the market evolves. The result is a chart focused on the structural levels that remain relevant as price evolves.
━━━━━━━━━━━━━━━━━━━━━━━━━━
THE RAIL & EQUILIBRIUM ENGINE
━━━━━━━━━━━━━━━━━━━━━━━━━━
Upper and lower rails track the recent extremes over a lookback that adapts to your chart's timeframe. They define the channel the zones are sourced from and the directional context the reversal logic reads against, running under the hood rather than as a plotted line.
Between the rails sits the equilibrium: a smoothed, adaptive midline that reads where price is balancing within the channel. It is the reference the reversal logic measures turns against — a curl or slope shift in the equilibrium is often where building pressure first shows up.
━━━━━━━━━━━━━━━━━━━━━━━━━━
STRUCTURAL ZONES
━━━━━━━━━━━━━━━━━━━━━━━━━━
Zones are sourced from the rails, not from raw pivots. A rail printing a new extreme arms a candidate; a close-based pullback of a configurable ATR distance away from that extreme commits it into a zone, keeping zones anchored to structure the market actually stepped away from. Each zone is an ATR-width band — the rail extreme is the outer edge, extending inward toward price — so the level has the thickness real reactions occur across.
Every zone moves through a lifecycle:
• Active — a confirmed level, drawn as Support or Resistance.
• Testing — price has entered the band; the label reads Testing until the test resolves.
• Confirmed hold — after a set number of consecutive closes back outside the inner edge, the test counts and the level's respected-touch strength increases.
• Broken — a confirmed close beyond the outer edge, or price walking far past and staying away, retires the level.
• Role reversal — a broken level can flip its role in place (support becomes resistance, or the reverse) a limited number of times, rather than spawning a duplicate.
Overlapping same-side zones collapse into a single structural area, reducing duplicate levels and chart clutter. Distant zones are hidden but retained, reappearing if price returns; a per-side cap and a broken-level fade keep the chart clean. Labels show the role and mid price (for example, "Support 6.04"), and an optional Full Zone History mode lengthens each box back to where the level first formed. All zone logic runs on confirmed bars and draws at the live edge — historical levels do not repaint.
━━━━━━━━━━━━━━━━━━━━━━━━━━
REVERSAL WARNING DOTS
━━━━━━━━━━━━━━━━━━━━━━━━━━
A reversal warning dot marks a bar where pressure is building against the current trend near a rail extreme. It appears only when several conditions align on the same bar: the trend is intact and not already changing, price is on the appropriate side of the equilibrium, price is near the relevant rail, either the equilibrium is turning or the bar itself is a rejection, and a weighted reversal score clears its threshold. A cooldown prevents clusters on the same swing. The score blends multiple structural and momentum components, so no single feature alone fires a dot.
A dot is an early, contextual warning, not a trade signal. It flags that a turn is being pressured; it does not confirm one. Each dot's tooltip prints its reversal score and the rail-break level a close beyond which would confirm the turn.
━━━━━━━━━━━━━━━━━━━━━━━━━━
CANDLE COLORING
━━━━━━━━━━━━━━━━━━━━━━━━━━
Optional candle coloring displays bullish bars in green and bearish bars in red, to keep the chart readable against the zone bands and dots. It is a simple directional recolor and encodes no state. For the cleanest display, hide the chart’s native candle body, border, and wick colors when this option is enabled.
━━━━━━━━━━━━━━━━━━━━━━━━━━
CHOP SUPPRESSION
━━━━━━━━━━━━━━━━━━━━━━━━━━
An optional filter, off by default, suppresses reversal dots when momentum is unusually weak or the momentum state is changing repeatedly. It remains optional because quiet or thin markets can still produce legitimate reversal pressure.
━━━━━━━━━━━━━━━━━━━━━━━━━━
HOW TO USE IT
━━━━━━━━━━━━━━━━━━━━━━━━━━
Bedrock is context and structure for your own methodology, not a signal service:
• Read the zones as a map of where price may react, and plan your own entries, stops, and scale-outs around them.
• Use the rails and equilibrium for directional context as price approaches a zone.
• Treat a reversal warning dot as an early heads-up to tighten attention on an open position — remembering that a dot is a warning, not a confirmed turn.
• Watch how a level's touch history and lifecycle develop to gauge which zones have earned respect on your instrument.
Alert conditions are included for bullish and bearish reversal warnings, carrying the ticker and timeframe.
Bedrock pairs naturally with tools that add a different lens on the same price — volume profile, VWAP, and momentum or market-structure tools. It does not predict prices or guarantee outcomes: its zones and warnings are analytical structures, not recommendations to buy or sell. You remain solely responsible for every trading decision.
━━━━━━━━━━━━━━━━━━━━━━━━━━
CREDITS & LICENSE
━━━━━━━━━━━━━━━━━━━━━━━━━━
Precision Bedrock is released under the Mozilla Public License 2.0.
The adaptive trend rail, equilibrium, and reversal framework is derived from Adaptive Trend Rails by NICK789, used under the MPL 2.0. Original framework © NICK789.
Structural zones, lifecycle management, reversal scoring, candle coloring, and other Bedrock-specific functionality are original work by MohaveTrader. The momentum-state component of the reversal score is adapted from the author's open-source Precision Price Gamma (PGamma). Indicator

Indicator

ICT Killzones & Pivots Update 07_2026ICT Killzones & Pivots – Sessions Only is a streamlined PulseWire indicator that highlights major institutional trading sessions directly on the chart.
It displays configurable session boxes for:
Asia
London
New York AM
New York Lunch
New York PM
Regular Trading Hours
Each session is identified with large, 50%-transparent text inside its corresponding box. Session times, colors, visibility, timezone, and historical session limit can be adjusted through the indicator settings.
This simplified version removes the statistics table, midlines, opening-price labels, pivot text, and other right-side annotations to provide a cleaner chart focused on the primary global trading sessions. Session high and low boundaries can still be displayed through the configurable pivot-line settings.
The indicator is intended for traders who use ICT-style killzones, session liquidity, and time-based market analysis. Indicator

Market Structure BOS, CHoCH, HH HL LH LL & Trend Health [LunqFX]Market structure is the skeleton of every trend: a series of higher highs and higher lows, or lower highs and lower lows, until a break says the trend has changed. This indicator maps that skeleton automatically — labelling every swing as HH, HL, LH or LL, drawing each Break of Structure (BOS) and Change of Character (CHoCH) — and adds one thing no other structure tool has: it tells you the trend is failing BEFORE the structure actually breaks.
❶ THE STRUCTURE MAP
▸ SWING LABELS — every confirmed swing point is labelled HH (higher high), HL (higher low), LH (lower high) or LL (lower low). The sequence of those four labels IS the trend, and having it on the chart removes the guesswork from reading price action.
▸ BOS — Break of Structure. Price closes through the last swing level in the direction of the trend: the trend is continuing. Drawn as a dashed line from the broken level with a BOS label.
▸ CHoCH — Change of Character. Price closes through the last swing level against the trend: the trend has flipped. Drawn as a solid, highlighted line — this is the reversal signal smart-money traders wait for.
▸ STRUCTURE CANDLES — the candles themselves are coloured by the structural trend, not by whether each bar closed up or down. Green means the market structure is bullish, violet means bearish, so the regime is obvious at a single glance. Their brightness fades as Trend Health falls.
❷ TREND HEALTH 0–100 — THE EARLY WARNING
Every other structure tool tells you a trend has ended after CHoCH prints. By then the move is already gone. Trend Health measures the two things that decay before every structure break:
▸ EXPANSION — in a healthy trend each new extreme clears the previous one by at least as much as the last leg did. When new highs barely exceed the old ones, the trend is running out of fuel.
▸ RETRACEMENT — in a healthy trend pullbacks stay shallow. When each pullback eats deeper into the previous leg, control is shifting to the other side.
Both are measured on the live leg, normalised by ATR so the score behaves the same on any symbol and timeframe, and blended into a single 0–100 reading. When it drops below your threshold the dashboard flags WEAKENING — while the trend is still technically intact. That is the warning CHoCH cannot give you, because CHoCH is confirmation, not anticipation.
❸ THE STRUCTURE TAPE
Instead of a table of numbers, the dashboard shows a timeline of the last five structure events, oldest to newest: BOS ▲ · BOS ▲ · CHoCH ▼ · BOS ▼. Reading the sequence tells you instantly whether the market is trending cleanly (a run of BOS in one direction) or chopping (CHoCH flipping back and forth) — context you cannot get from a single label on the chart.
❹ HOW TO TRADE IT
1 — Establish the bias from MARKET STRUCTURE in the panel. Bullish structure = look for longs, bearish = look for shorts. Do not fight it.
2 — Use BOS as continuation. A BOS in the direction of your bias confirms the trend is intact; the broken level often becomes support or resistance on the retest.
3 — Use CHoCH as the reversal trigger. A CHoCH against the prevailing trend is the earliest confirmed signal that structure has flipped. Wait for it before trading a reversal.
4 — Use TREND HEALTH for timing and risk. Health above 65 with a run of BOS on the tape = a clean trend, hold your position and trail. Health falling into WEAKENING = tighten stops, take partials, and stop adding — the structure is decaying and a CHoCH becomes more likely.
5 — Read the tape for market state. Several BOS in a row = trending market, trade continuations. Alternating CHoCH = choppy market, stand aside or trade the range instead.
❺ HOW IT WORKS
Swing points come from confirmed pivots, so a swing only exists once the bars on both sides of it have closed. The most recent swing high and swing low become the active structure levels. When a bar CLOSES beyond one of them (a wick-based mode is available), the break is registered: in the direction of the current trend it is a BOS, against it a CHoCH, and the trend state flips. Trend Health compares the size of the current expansion leg with the previous one in ATR units, and the depth of the latest pullback against the leg it retraced, then blends them 60/40 into the 0–100 score. Immediately after a CHoCH there is no second leg to compare yet, so the panel honestly reports NEW TREND instead of a misleading health reading.
Works on every symbol and timeframe — forex, gold, indices, crypto and stocks — because every threshold is either structural or ATR-normalised, with nothing to configure per market.
SETTINGS — swing length (how major a swing must be), break on close or wick, the health threshold that flags weakening, swing labels and BOS/CHoCH lines on/off, number of events kept, structure candles on/off, and dashboard position.
ALERTS — BOS up, BOS down, CHoCH up, CHoCH down, and Structure Weakening (the early warning).
NON-REPAINTING — swings are built from confirmed pivots and every break is validated on bar close. A label or line that has printed never moves or disappears.
Every component here describes the same object — the market's structure — at a different resolution: the swings build it, BOS and CHoCH break it, Trend Health measures its condition, and the tape is its history. That is why they belong in one tool rather than five.
This indicator is an educational market-analysis tool, not financial advice. Trend Health describes the current structure's condition and does not predict future prices. Always confirm with your own analysis and manage your risk.
Pre-publish checklist Indicator

Indicator

Indicator

Indicator

Indicator
