LTF BPR (Balanced Price Range) [D4A]LTF BPR (Balanced Price Range)
Why working on my other BPR script: HTF BPR , I thought it would be interesting to have BPR script that shows BPR from lower timeframe and hence this script was created. The logic is simply the same as in higher timeframe BPR script, with a few differences:
- the main one is to simplify the drawings, this script only draws average line from lower timeframe BPR. The main reason for this is that otherwise you can have too many BPR drawings which overlap and make it look very busy on the chart. From my experience the average line from LTF BPR is a reasonable level which the price usually interacts with. Once candles close beyond this line, the BPR won't hold in most cases.
- the average line is only drawn where the BPR formed and is not extended to avoid having too many lines on the chart.
- another difference is that there are no side markers or labels like in the HTF script
Who is this script for
- students who follow ICT methodology
- scalper traders who want to see where price has already been balanced on lower timeframe
Since two scripts are very similar in what they do, the large part of script description is taken from the other script and only modified where appropriate.
Introduction to BPR Concept
Balanced Price Range (BPR) is especially important ICT methodology, as it helps to navigate institutional order flow. It pinpoints price zones where opposing market inefficiencies intersect, leaving pools of resting liquidity and unexecuted orders. This indicator automates the identification of these overlapping structures across any asset class while using data from lower timeframe (the script pulls data using pine function request.security_lower_tf)
What is BPR
A Balanced Price Range - frequently referred to as a double Fair Value Gap occurs when a bullish FVG and a bearish FVG directly overlap. Because both buyers and sellers created imbalances across the exact same price window, these overlapping zones become high-probability reaction areas. In algorithmic price delivery, BPRs serve as primary rebalancing targets where the market seeks liquidity before expanding or reversing.
What is FVG
FVG or Fair Value Gap is a three-candle formation where the middle candle moves so aggressively creating displacement that it leaves a gap between the wick of the prior candle and the wick of the following candle.
Trading Lower Timeframe BPRs
BPR entries remain one of the most underrated setup models in ICT trading. This script should help to pinpoint areas which may be important levels where the price is going to reverse from after seeking to re-balance and/or to give opportunity for Smart Money to re-enter the market. While using the script, one can easily observe that price very often reverses, which is seen as wicking out to/from these areas. With some experience you can learn how to use this information to make advantage of knowing which levels have been balanced and are not likely to be reversed to while the trend continues in the opposite direction.
The Underlying Mechanics
- Single Inefficiencies: A standard Fair Value Gap represents one-sided delivery—a rapid displacement where either buyers or sellers were largely absent.
- Dual Inefficiencies: A BPR represents a corridor that price aggressively skipped twice — once going up without sellers, and second time going down without buyers.
- Algorithmic Repricing: When price returns to a BPR, the delivery algorithm is repricing an area of double inefficiency. Because both buy-side and sell-side resting orders line up inside this narrow range, retests typically trigger decisive expansion away from the zone.
SETTINGS:
- Show LTF BPRs - enable displaying of BPR zones on lower timeframe
- Looback - how many previous bars are used to find BPRs
- Auto Lower timeframe (one step down) - when enabled, the script works using data from the previous lower timeframe below the chart's timeframe, eg. when on 1m chart, the script uses 15sec data, 5m chart -> 1m data and so on.
- Manual HTF - when the previous option is not enabled, you can select manualy any lower timeframe (it won't work with current timeframe or higher timeframe)
- Max BPR Length (LTF bars) - max distance between two opposing FVGs which are part of the same BPR
- Stop drawing BPR after X Candles - BPR is removed from the chart after this many bars
- Volume Imbalance Included - include volume imbalance as part of FVG which is part of BPR
- FVG Size Filter (x LTF ATR) - limit the size of LTF FVG that is used to create valid BPR. Use 0 to ignore this limit.
- Bull/Bear Average Line - BPR decoration settings
- Mitigated BPR - select what happens when BPR is fully mitigated (the price closes through it).
-----------------
Disclaimer
The content provided in this script is for educational and informational purposes only. It does not constitute financial advice, investment recommendations, or a solicitation to buy or sell any financial instruments. I will not accept liability for any loss or damage, including without limitation any loss of profit, which may arise directly or indirectly from the use of or reliance on such information.
All investments involve risk, and the past performance of a security, industry, sector, market, financial product, trading strategy, backtest, or individual's trading does not guarantee future results or returns. Investors are fully responsible for any investment decisions they make. Such decisions should be based solely on an evaluation of their financial circumstances, investment objectives, risk tolerance, and liquidity needs. 指标

ICT Liquidity HunterICT Liquidity Hunter
OVERVIEW
ICT Liquidity Hunter is not another "trade the CHoCH" indicator. It is built on the same Inner Circle Trader (ICT) / Smart Money Concepts structure that most ICT traders use to enter a trade, but it uses that structure for the opposite purpose: to locate where those traders end up placing their stop-loss orders, so that level can be marked as a probable liquidity target instead of an entry signal.
CONCEPT
The vast majority of retail ICT traders execute the same textbook sequence: wait for a Change of Character (CHoCH), wait for price to return to the Order Block (OB) or Fair Value Gap (FVG) left behind by that break, and enter when price shows a clean, obvious rejection at that zone. Because this sequence is taught everywhere and followed by a huge number of traders in exactly the same way, the stop-loss orders from all those entries cluster tightly just beyond the extreme of that rejection candle - a very predictable, crowded pool of resting liquidity.
This script does not stop at marking the OB/FVG zone the way a conventional ICT indicator would. It goes one step further: it waits for the same rejection the crowd is trading, then marks the exact high or low left by that rejection candle as a "Liquidity Level" - the level where the stops of everyone who just entered on that textbook retest are most likely resting. That level, not the zone itself, is the actual point of interest: it is a probable target for a subsequent liquidity run/stop hunt, either before price resumes in the "expected" direction or as the setup for a reversal against the crowd that just entered.
In short: conventional ICT tools show you where to copy the crowd's entry. This one shows you where the crowd's stops are sitting once they've already entered - so you can plan around that liquidity instead of trading the same obvious retest everyone else is watching.
WHAT IT'S MADE OF
1. Market structure / CHoCH
The script builds an alternating (zig-zag) sequence of swing highs and lows from pivot points, filtered by a minimum size (in ATR) so minor internal noise doesn't count as real structure. A CHoCH is flagged the first time price closes back through the currently active opposite swing level since the trend last flipped - the same first break of structure a traditional ICT trader would use as their starting signal.
2. Order Blocks and Fair Value Gaps
Once a CHoCH fires, the script looks back over a configurable number of bars for:
- Order Block: the last candle of the opposite color before the impulse that caused the break.
- Fair Value Gap: a 3-candle imbalance (a gap between candle 1 and candle 3) formed during that same impulse.
Both are drawn as shaded zones - above the breakout candle for a bearish CHoCH, below it for a bullish CHoCH - exactly where a conventional ICT trader would be watching for their own entry. Only a small number of zones are kept on the chart at once, and each one expires automatically if price never returns to it within a set number of bars.
3. Rejection detection
When price returns and touches an active OB/FVG zone, the script checks the candle that touches it (or the one immediately after) for a strong, obvious rejection: a candle whose range is a multiple of the recent average range, closing decisively away from the zone - the exact kind of clean reaction that convinces the crowd to enter and place stops just beyond it.
4. Liquidity Level
A valid rejection prints a solid horizontal line - the Liquidity Level - starting at the exact high (bearish rejection) or low (bullish rejection) of that candle, extending forward in time. This is not the entry the crowd took; it is the resting-stop level just beyond it, and therefore the level most likely to get run before or instead of continuation in the "obvious" direction. Liquidity lines expire automatically after a set number of bars if price never reaches them.
5. Alerts
Two alert conditions are built in: one for a bullish rejection (liquidity marked below) and one for a bearish rejection (liquidity marked above), so alerts can be set directly from the TradingView alert dialog the moment a new Liquidity Level appears.
HOW TO USE IT
- Structure group: controls how strict the swing/CHoCH detection is (pivot lookback, minimum swing size in ATR) and how long an OB/FVG zone stays valid before it expires unused.
- Order Block / FVG group: toggle Order Blocks and/or FVGs independently, set how far back to search for them after a CHoCH, and optionally require a minimum FVG size.
- Rejection candle group: controls what counts as a "strong" rejection candle (size relative to average range, how close the close must be to the extreme of the candle) and how many liquidity lines/zones stay visible at once.
- Style group: colors for bullish/bearish OB, FVG and liquidity lines, and an optional display of the raw swing pivot points.
A typical read: let the CHoCH and the OB/FVG zone form exactly as a conventional ICT trader would expect. Once a rejection candle prints and a "Liquidity Level" line appears, treat that line - not the zone - as the point of interest: the resting liquidity from everyone who just entered on the retest. Whether you plan a position through that level, tighten risk ahead of it, or simply use it as a warning that the "obvious" move may get run first, always combine it with your own higher-timeframe context, confirmation and risk management.
NOTES
This is an educational tool for visualizing where ICT-style retest liquidity is likely to build up, based on standard market structure, order blocks and FVGs. It does not constitute financial advice and does not guarantee any outcome. Like any structure-based tool, back-test it on the instrument and timeframe you intend to trade before using it live. 指标

HTF BPR (Balanced Price Range)Introduction
Within Inner Circle Trader (ICT) concepts, the Balanced Price Range (BPR) is especially important, as it helps to navigate institutional order flow. It pinpoints price zones where opposing market inefficiencies intersect, leaving pools of resting liquidity and unexecuted orders. This indicator automates the identification of these overlapping structures across any asset class while using data from higher (or current) timeframe.
How is this script different from other similar tools:
- Unique way of presenting BPR zones with focus on clarity and simplicity
- Highly configurable and customizable
- Automatic timeframe selection which always uses next higher timeframe (can be manually overridden)
- It marks BPRs on either higher or current timeframe providing more flexibility
- Uses side box markers which can help to navigate busy charts (can be turned off)
- Option to wait for higher timeframe close before removing BPR from the chart which should eliminate any repainting during mitigation
- Markers are highlighted when price touches BPRs, giving clear indication the price interacts with this BPR
What is BPR
A Balanced Price Range - frequently referred to as a double Fair Value Gap occurs when a bullish FVG and a bearish FVG directly overlap. Because both buyers and sellers created imbalances across the exact same price window, these overlapping zones become high-probability reaction areas. In algorithmic price delivery, BPRs serve as primary rebalancing targets where the market seeks liquidity before expanding or reversing.
What is FVG
FVG or Fair Value Gap is a three-candle formation where the middle candle moves so aggressively creating displacement that it leaves a gap between the wick of the prior candle and the wick of the following candle.
Trading BPR
BPR entries remain one of the most underrated setup models in ICT trading:
- The Setup: Locate overlapping bullish and bearish FVGs, ideally on the 1-hour to 4-hour timeframes.
- Execution: Wait for price to revisit this overlap following a confirmed Market Structure Shift (MSS). The reaction inside this confluence is usually immediate and sharp.
- The Edge: While average retail traders trade single FVGs in isolation, entering at the intersection captures the compound liquidity of both imbalances.
The Underlying Mechanics
- Single Inefficiencies: A standard Fair Value Gap represents one-sided delivery—a rapid displacement where either buyers or sellers were largely absent.
- Dual Inefficiencies: A BPR represents a corridor that price aggressively skipped twice — once going up without sellers, and second time going down without buyers.
- Algorithmic Repricing: When price returns to a BPR, the delivery algorithm is repricing an area of double inefficiency. Because both buy-side and sell-side resting orders line up inside this narrow range, retests typically trigger decisive expansion away from the zone.
SETTINGS:
- Show HTF BPRs - enable displaying of BPR zones on higher (or current) timeframe
- Looback - how many previous bars are used to find BPRs
- Auto Higher timeframe (one step up) - when enabled, the script works using data from the next higher timeframe above the chart's timeframe
- Manual HTF - when the previous option is not enabled, you can select manualy any higher timeframe (or chart TF)
- Wait for HTF Close (no repainting) - BPR is removed from the chart after higher timeframe close (this may take some time on higher timeframes)
- Max BPR Length - max distance between two opposing FVGs which are part of the same BPR
- Stop drawing BPR after X Candles - BPR is removed from the chart after this many bars
- Fill & Border - BPR decorations settings
- Side Marker & Border - apart from displaying factual BPRs as they are created, the script can also display box side markers
- Marker Position - define where the markers should be displayed (and their width)
- Mitigated BPR Boxes - select what happens when BPR is fully mitigated (the price closes through it). When "Remove" is selected, the corresponding Marker is removed as well. "Highlight" and "Display" options don't apply to the Markers.
-----------------
Disclaimer
The content provided in this script is for educational and informational purposes only. It does not constitute financial advice, investment recommendations, or a solicitation to buy or sell any financial instruments. I will not accept liability for any loss or damage, including without limitation any loss of profit, which may arise directly or indirectly from the use of or reliance on such information.
All investments involve risk, and the past performance of a security, industry, sector, market, financial product, trading strategy, backtest, or individual's trading does not guarantee future results or returns. Investors are fully responsible for any investment decisions they make. Such decisions should be based solely on an evaluation of their financial circumstances, investment objectives, risk tolerance, and liquidity needs. 指标

ICT & SMC Guide [JPT]🔷 OVERVIEW
ICT & SMC Guide is an educational price-action indicator designed to organize key ICT (Inner Circle Trader) and SMC (Smart Money Concepts) ideas into a clear visual framework.
The indicator focuses on liquidity, session behavior, market structure, displacement, and Fair Value Gaps (FVGs), helping traders analyze potential setups through a structured top-down process.
🔷 HOW IT WORKS
The indicator continuously evaluates price action and highlights important ICT/SMC conditions.
When qualifying conditions appear, it can:
• Identify Asia, London & New York sessions
• Track important session highs and lows
• Detect potential Buy-Side Liquidity (BSL) and Sell-Side Liquidity (SSL) sweeps
• Identify Market Structure Shifts (MSS)
• Detect bullish and bearish displacement
• Highlight Fair Value Gaps (FVGs)
• Identify potential 2022 Model conditions
• Highlight potential FVG + $$$ Model setups
🔷 CORE CONCEPTS
The indicator brings several concepts together:
• Session Liquidity
• Liquidity Sweeps
• Buy-Side / Sell-Side Liquidity
• Market Structure
• Market Structure Shift
• Displacement
• Fair Value Gaps
• 2022 Model
• FVG + $$$ Model
• Trend Bias
🔷 VISUAL FEATURES
• Asia session range
• London session range
• New York session range
• Liquidity sweep markers
• Bullish and bearish FVG zones
• Market structure signals
• Bullish/Bearish setup labels
• Entry, Stop Loss & Target framework
• ICT & SMC information dashboard
• Optional EMA 50 / EMA 200 trend context
• Historical signals for chart review
🔷 ICT & SMC WORKFLOW
A common workflow is:
Liquidity → Sweep → Displacement → Structure Shift → FVG → Confirmation
Rather than treating every liquidity sweep or FVG as a trade, users can wait for multiple conditions to align before considering a setup.
🔷 USAGE
Identify the relevant session and liquidity range.
Watch for a liquidity sweep.
Look for displacement and a structure shift.
Check for a relevant FVG or model formation.
Review the potential trade framework.
Combine the indicator's information with your own market analysis and risk management.
🔷 MARKETS
The indicator can be applied to:
• Forex
• Cryptocurrency
• Indices
• Commodities
• Stocks
It can be used across multiple timeframes depending on the trader's analysis and strategy.
🔷 IMPORTANT NOTE
ICT & SMC Guide is designed as an educational market-structure and price-action tool. ICT/SMC concepts can be interpreted differently by traders, and no indicator can guarantee the outcome of a trade.
Always perform your own analysis, use appropriate risk management, and avoid relying on any single signal or model.
🔷 DISCLAIMER
This indicator is provided for educational and informational purposes only. It does not constitute financial, investment, or trading advice. Signals and levels are algorithmically generated and may be inaccurate or unsuitable for individual trading decisions. Past performance does not guarantee future results. Trade responsibly and manage your risk. 指标

Optimal Trade Entry (OTE) Zone Plotter [algotim]Optimal Trade Entry (OTE) Zone Plotter locates the 62%-79% institutional retracement zone of a confirmed impulsive swing and keeps only the single most relevant zone per direction on the chart, fading it through disclosed mitigation states as price interacts with it.
Problem Statement
The Optimal Trade Entry concept, retracing into the 62%-79% region of an impulsive leg before continuation, is a well-known Fibonacci convention, but most public implementations simply plot every Fibonacci level on every swing they detect. This produces charts covered in overlapping retracement boxes, most of which come from insignificant swings that carry no real weight, and gives no visual indication of which zones are still fresh, already tested, or fully invalidated.
This indicator addresses that gap by filtering which swings are allowed to generate a zone in the first place, by showing only the current zone per direction at full strength, and by changing each zone's appearance as price actually interacts with it.
Methodology
Swing highs and lows are identified with ta.pivothigh/ta.pivotlow using a user-defined Pivot Length, so every swing referenced by the script is a confirmed pivot, evaluated only after barstate.isconfirmed is true.
Consecutive pivots of the same type extend a running swing extreme; a leg is only registered when the pivot type alternates (a low following a high, or a high following a low). Each candidate leg must then clear three disclosed checks before it is allowed to create a zone: the leg's price range must reach a minimum multiple of ATR, the swing candle's own body-to-range ratio must reach a minimum threshold, and, if the Break of Structure filter is enabled, the new swing must exceed the prior swing of the same type. Legs that fail any check produce no zone, no label, and no alert.
A qualifying leg generates one OTE zone: the shaded region between the 62% and 79% retracement of that leg, with the 70.5% level drawn as a two-layer glowing midline inside it. Only one bullish and one bearish zone are ever active at a time. When a new qualifying leg forms, the previous zone of that direction is frozen in place and, if enabled, kept as a single low-opacity historical reference rather than removed outright or left overlapping the new zone.
Each active zone tracks its own mitigation state on every confirmed bar: Fresh (untouched), Touched (price has wicked into the 62%-79% region), Mitigated (a confirmed close through the 79% boundary), or Invalidated (a confirmed close back through the leg's own origin point). State can only advance forward, and the zone's fill opacity and border color update automatically at each transition, so the chart communicates a zone's condition without any additional label or panel.
Signal Workflow
Step 1 — a confirmed swing pivot alternates direction, registering a candidate leg from the prior opposite pivot to the new one.
Step 2 — the leg is checked against the Minimum Swing Size, Body Ratio, and optional Break of Structure filters; legs that fail are discarded with no chart output.
Step 3 — a qualifying leg creates a new active OTE zone (62%-79%) with its 70.5% midline, and the previous zone of the same direction is frozen and faded.
Step 4 — the active zone's state advances from Fresh to Touched as price wicks into the zone on a confirmed bar.
Step 5 — the zone advances to Mitigated on a confirmed close through the 79% boundary, or to Invalidated on a confirmed close back through the leg's origin, at which point it is greyed out.
Step 6 — each transition and each zone entry/exit can trigger its own alert, gated by the corresponding toggle in the Alerts group.
Why This Indicator Is Different
Most public OTE/Fibonacci scripts draw a zone for every detected swing regardless of its significance, leaving multiple overlapping retracement boxes on the chart at once.
This script applies a disclosed three-part quality filter (ATR-relative swing size, swing candle body ratio, optional break-of-structure confirmation) before a swing is even allowed to generate a zone.
Only one zone per direction is ever shown at full strength; the prior zone automatically fades to a quiet historical reference the moment a new qualifying swing appears, keeping the chart focused on the current opportunity.
Zone fill opacity and border color are driven entirely by a four-state mitigation engine (Fresh/Touched/Mitigated/Invalidated) computed from confirmed price action against the zone's own boundaries, so the visual state of a zone is informative rather than purely decorative.
The 70.5% equilibrium level is rendered as a two-layer glow line rather than a plain dashed line, giving the zone's mid-point a distinct, non-generic appearance.
Inputs
Swing Detection
Pivot Length
ATR Length
OTE Quality Filter
Minimum Swing Size (x ATR)
Minimum Swing Candle Body Ratio
Require Break of Structure
OTE Zone
Show Bullish OTE Zones
Show Bearish OTE Zones
Zone Extension (bars)
Show Institutional Midline (70.5%)
Fade Previous Zone on New Swing
Visual Settings
Bullish/Bearish Zone Colour
Bullish/Bearish Midline Colour
Label Size
Alerts
Alert: New OTE Zone Created
Alert: Price Entered OTE Zone
Alert: Price Left OTE Zone
Alert: OTE Zone Mitigated
Alert: OTE Zone Invalidated
Alerts
Alerts are available for:
New Bullish/Bearish OTE Zone Created
Price Entered Bullish/Bearish OTE Zone
Price Left Bullish/Bearish OTE Zone
Bullish/Bearish OTE Zone Mitigated
Bullish/Bearish OTE Zone Invalidated
Practical Usage
Treat an active, Fresh OTE zone in the direction of the prevailing structure as a region to watch for a retracement entry, not a standalone entry signal by itself.
Use the Break of Structure filter on trending instruments to restrict zones to swings that genuinely extended structure, and disable it on ranging instruments where internal swings may still be meaningful.
Raise the Minimum Swing Size and Body Ratio filters on lower timeframes or noisy instruments to reduce the number of zones generated.
Watch the zone's fill opacity as a quick visual read of its condition: a bold zone has not been tested, a lighter fill has already been touched or mitigated, and a greyed zone has been invalidated and should generally be disregarded.
Combine the Entered/Exited alerts with your own confirmation criteria (candlestick behavior, lower-timeframe structure, etc.) rather than treating zone entry alone as a trigger.
Limitations
Swing pivots require bars to form on both sides before they confirm, so every zone is inherently placed a Pivot Length number of bars after the actual swing extreme occurred.
The quality filter reduces the number of zones shown but does not evaluate or predict the outcome of any individual retracement.
Only one active zone per direction is displayed at a time; if you want to review multiple historical zones simultaneously, enable "Fade Previous Zone on New Swing" and note that only the single most recent prior zone is retained, not a full history.
As with any retracement-based tool, results will vary across instruments, timeframes, and market regimes.
Notes
This indicator is a zone-location tool intended to highlight the current, quality-filtered Optimal Trade Entry region and its mitigation state through a disclosed, rule-based process.
All swing confirmations, zone creation, mitigation-state transitions, and invalidations are evaluated on confirmed bar closes only, so no element of the script repaints once drawn.
The output is intended to support retracement-based analysis and is not a standalone buy or sell recommendation. 指标

ICT PO3 AI [PickMyTrade]Every AMD / Power-of-Three script marks where accumulation, manipulation and distribution happened. None answer the question a trader actually has the moment a range locks and gets swept: is THIS raid the kind that expands into distribution, or a pattern that only looked right?
――――――――――――――――――――――――――――――――――――――
🔷 WHAT IT MEASURES
A locked accumulation range, scored on five independent compression measures — not one pass/fail test
Every raid checked against a weighted pool of real liquidity — previous week/day high-low, Asia high-low, last confirmed swing — never against price alone
A reclaim's own quality — penetration depth, acceptance beyond the level, overshoot, rejection wick — scored before the sequence is trusted
The expansion leg itself: a genuine displacement bar, the first qualifying imbalance, and a market-structure shift back through the range it came from
――――――――――――――――――――――――――――――――――――――
🔷 THE ENGINE
Three phase scores — Accumulation, Manipulation, Distribution — combined by weighted geometric mean, not a sum: a weak link drags the whole score down, never averaged away
A k-nearest-neighbour search compares every new setup's own 8-property fingerprint against up to 100 stored past outcomes from the same chart — no training, no forecasting, just distance
Whether a signal exists at all is decided by measured price behaviour alone; the analog engine sharpens the read but — outside Gate mode — never adds or removes a signal
Below enough same-direction history, the high-confluence circle tier is disabled outright rather than guessed
――――――――――――――――――――――――――――――――――――――
🔷 SIGNALS AND DISPLAY
Accumulation and Distribution boxes colored by role, always the same hue for the same tag — never by market bias
A raid marker (×) placed at the sweep extreme, drawn only once the reclaim actually confirms — a location, not an entry
Circle = high confluence, triangle = standard signal; marker opacity (not size) scales with score
Dashboard: phase, the three sub-scores, regime, which liquidity level was raided, entry/stop/target, R-multiple, and the analog library's own sample count
6 alertconditions, plus an optional JSON payload for webhook use
――――――――――――――――――――――――――――――――――――――
🔷 INPUTS
ATR Length / Compression Window — volatility baseline and consolidation lookback. Default 14 / 20.
Consolidation Sensitivity — Strict/Balanced/Loose compression floor. Default Loose.
Minimum Score / High Confluence Score — structural floor to draw a signal, and the circle-tier threshold. Default 45 / 80.
Higher Timeframe / Use Session Context / Timezone — directional context and session-window fit.
Fallback Target Multiple — used only when no liquidity level qualifies as a target. Default 2.0R.
Adaptive Mode — Off / Advisory / Gate. Default Advisory.
Neighbours Compared / Outcome Horizon — KNN neighbour count and bars until a signal's result is recorded. Default 8 / 24.
Show Accumulation Range, Distribution Zone, Imbalance — display toggles for each zone type.
Zen Mode, Show Dashboard, Dashboard Position/Detail — display toggles; Zen Mode hides everything but zones and signals.
――――――――――――――――――――――――――――――――――――――
🔷 REQUIREMENTS AND LIMITATIONS
Swing highs/lows used in the liquidity-pool weighting confirm 10 bars after they form, by construction — a level newer than that isn't counted yet
The analog engine's read is thin until its library builds; the sample count travels with every score so that's never hidden
Stored past outcomes are hypothetical — no commission, no slippage — and are not a record of trading results
This script measures a specific, disclosed sequence. It does not predict, and it is not a trading system on its own.
――――――――――――――――――――――――――――――――――――――
Built in Pine Script v6. Open source — Mozilla Public License 2.0. 指标

Order Block (OB) Statistics: Real Win Rate vs Random LevelsOn real price data, a 54% win rate can be worse than random, and a 46% win
rate can be better. Whether a level "works" depends on the number it is
compared with. That comparison number is called the baseline, and for levels
on a chart it is almost never exactly 50%.
An order-block arrow is therefore not evidence of an edge. The practical
question is simple: does price behave differently after touching an order
block than after touching a similar level with no order-block event behind
it?
This script performs that comparison. It does not generate buy or sell
signals; it measures the entry logic that such signals rely on.
The measurements behind this publication were made on a forex pair
(EURUSD), a crypto pair (BTCUSDT) and an equity index future (ES1!). The
script itself runs on any symbol and timeframe.
What to Use It For
Evaluating what already exists. Whatever tool draws your order
blocks, set this script's inputs to match the same rules. The panel then
shows how those zones performed against matched comparison levels. The
comparison levels are measured on the same chart, in the same direction,
with the same size and distance from price.
Evaluating something before you build it. Entry, exit, sizing and
filters are normally backtested together. Because of this, even a profitable
backtest may not show which part produced the result. This script isolates
the entry and asks one question: after price reaches the zone, does it
behave differently than after reaching a similar level where nothing
happened? If not, exit rules may change the size of wins and losses, but
they cannot add information that the entry does not have. You can learn that
before writing the full strategy.
Generalizing beyond order blocks. Supply and demand zones, breaker
blocks, support and resistance, session highs and lows, and other
level-based signals can be evaluated with the same test. The rule that
builds the level changes; the baseline problem does not.
Order blocks are widely taught and rarely measured.
Order blocks on BTCUSDT 30m. Open zones extend to the right until price
reaches them. Once reached, they freeze and change to dotted lines, showing
how long each zone lasted. Triangles mark the break of structure - a close
beyond the most recent swing - that confirmed each zone as an order block.
The panel in the corner is the measurement. It scores every zone in the
selected date range - 1,854 of them here, not just the dozen visible -
against matched control levels.
The Result in Plain Language
The study contains 31 runs. They cover the three instruments named above,
timeframes, periods, barrier widths (target and stop distances) and
order-block definitions. No tested configuration showed a reliable
difference between real order blocks and their placebo levels, and no
configuration repeated such a difference on other instruments. A placebo
level is a matched comparison zone with no order-block event behind it.
The combined estimates were slightly below zero, but the uncertainty range
still included zero.
This does not prove that all order-block concepts fail. It only reports what
this definition, this measurement method and this sample showed - and did
not show. The value of the script is the method. The sections below explain
each term before it is used and show how to apply the same measurement to
your own rules.
Terms Used in the Panel
Hit rate. The percentage of counted outcomes in which the target was
reached before the stop. This is the raw result that a simple backtest would
usually report.
Placebo or control level. A comparison zone with no order-block
event, but matched to the real zone by height, direction and distance from
price. It estimates the hit rate that price movement, general trend and
level placement produce on their own, without any order-block information.
Edge estimate: "real - placebo." The real-zone hit rate minus the
control-zone hit rate. A positive value means the real zones performed
better than the controls; a negative value means they performed worse.
Percentage point (pp). An absolute difference between percentages.
For example, 54% minus 50% equals +4 percentage points, not +4% relative
growth.
z score. The edge estimate divided by a measure of its statistical
noise (the standard error). It shows how large the observed difference is
compared with normal random variation. As a widely used threshold, an
absolute z score near 2 is treated as a first sign of a real effect. This
study also requires the result to repeat before drawing a conclusion.
95% confidence interval (95% CI). A range around the estimate that
shows how uncertain it is. When the range includes zero, the data do not
clearly show a positive or a negative difference.
Ambiguous outcome. A bar whose high and low contain both the target
and the stop. Open-high-low-close data cannot show which one price reached
first. The script counts such cases against the hit rate, which is the safe
choice.
Censored outcome. A zone that reaches neither barrier before the time
limit. It is reported separately and not counted in the hit rate.
Why 50% Is the Wrong Baseline
Any rule that enters when price reaches a level already has some hit rate
before any real signal is involved. That hit rate comes from how price moves
and drifts on its own. Intuition says that with equal target and stop
distances, price should reach each side half the time. On real price data
this is often not true, and the size of the difference varies by instrument,
direction and period.
Across the runs behind this publication, the baseline for levels with no
special meaning ranged from 47.3% to 52.3% overall, and from 43.3% to 54.6%
after splitting by direction. This is the source of the numbers at the top
of this description: a 54% long hit rate can be below its baseline, while a
46% short hit rate can be above its baseline.
The script measures both sides at once. For every confirmed order block, it
also places control zones of the same height, direction and distance from
price, at bars where no order-block event occurred. Real and control zones
are then measured in exactly the same way.
The "real - placebo" row is therefore the primary result. It subtracts the
part of the performance that the baseline alone explains. It is more
informative than the raw hit rate. The control does not remove every
possible difference, however; those limits are listed below.
What Counts as an Order Block
A swing high or swing low is confirmed a fixed number of bars after it
forms. A break of structure is a close beyond the most recent unbroken
swing. The break is tested on the closing price only, never inside a bar.
The order block is the source candle: the last candle before the break
that moved the other way. An upward break points back at the last down
candle; a downward break points back at the last up candle.
The close is used rather than the high or the low because a bar's extreme
has no known timing. OHLC data records that price reached a level during
the bar, not when, and every measurement here has to start from a defined
moment. A close supplies one. It also means a break that is reversed
before the bar ends does not count as a break.
The important question is: when does the zone become visible in real time?
An order block is not visible when its source candle forms. The candle
becomes a zone only after a later break of structure points back to it. Two
bars are therefore involved: the source bar on which the zone is drawn and
the confirmation bar on which the break closes.
Every measurement starts from the confirmation bar forward. Price that
reached the source candle before the zone became visible is not a trade and
is not counted. Because confirmation occurs at a close, the first touch test
is performed on the following bar. Control zones use the same one-bar delay
so the comparison stays fair.
A single order block, zoomed in. The source candle is where the zone is
drawn. The triangle several bars later marks the close that confirmed the
break of structure - the first moment the zone existed for a user in real
time. The bars between the two were not tradeable, and nothing in that
interval is counted.
How the Measurement Works
A risk unit, or R, is selected in the settings as either average true range
(ATR) or zone height. It sets the scale of the measurement: for example, a
barrier size of 2R places both the target and the stop two selected risk
units from entry.
Average true range is the average size of a bar's full range over a set
number of bars, including any gap from the previous close - in effect, how
far price typically travels in one bar. Setting barriers in ATR rather than
in points means a 2R barrier is twice the recent typical bar range, so the
same setting means the same thing on a volatile instrument and a quiet one.
The ATR used for a zone's barriers is read once, at the bar where that
zone is created - the confirmation bar for a real zone, the placement
bar for a control zone - and stays fixed for that zone.
The near edge of a zone is the side facing price after the break: the top of
a bullish zone, the bottom of a bearish one. It is the side price has to come
back to.
When price returns to the near edge of a zone, the entry is recorded at that
bar's close. A target and a stop are placed the selected number of risk
units away, one in each direction. For a bullish zone the target is above
the entry and the stop below it; for a bearish zone, the reverse. The
script then records which barrier price reaches first, starting from the
next bar.
Entry is recorded at the close rather than at the zone edge for a specific
reason. A touch is triggered when price crosses the edge, not only when
price equals it, so the touching bar may cross the edge by an unknown
amount. Suppose the entry were recorded at the edge price while the
measurement started on the next bar. Then the measurement would begin after
price had already moved away from the assumed entry. The entry price and the
price from which the barriers are measured must be the same.
Sometimes a single bar contains both the target and the stop.
Open-high-low-close (OHLC) data alone cannot show which one price reached
first inside that bar. Such outcomes are marked ambiguous and counted
against the hit rate, which is the safe choice.
Zones that reach neither barrier inside the time limit are censored.
Censoring is the statistical term for an observation whose outcome was
never seen: the zone was still running when the limit expired, which is
known, and nothing more. Counting it as a win or a loss would mean
inventing the missing outcome, so it is dropped from the hit rate and
reported separately.
Ambiguous and censored counts are reported for real and control zones
separately. They cancel out of the difference only when both sides show them
at similar rates.
One measurement from beginning to end: the confirming break, price
returning to the near edge, entry at that bar's close, and the barrier
that was reached first - here, the stop. On this instrument the aggregate
ran negative over the test window; the result did not replicate on the
other two instruments and is recorded as unresolved in the limitations
section. The panel reports what it measures.
Where the Method Comes From
None of the statistics here are new, and it is worth being clear about that.
A standard way to test a method is to apply it where the signal does not
exist, then check that no effect appears. In statistics this is called a
placebo test, and it is a common tool in causal inference - the field that
studies cause and effect. The placebo zones in this script apply that idea
to price bars instead of people.
The trading application is not new either. David Aronson's
Evidence-Based Technical Analysis (2006) argues that a trading rule
should be compared with random entry signals rather than with zero. His book
uses Monte Carlo permutation and White's Reality Check for this purpose.
The scoring rule - a target, a stop and a time limit, whichever is reached
first - is the triple-barrier method described by Marcos López de Prado.
What this script adds is not the method but its availability. The control is
created and scored automatically next to the real zones, on any chart and
any symbol. The baseline arrives together with the result, instead of
requiring a separate study that most people will never run.
How to Use It
1. Match the definition. Set the order-block inputs to reproduce the
rules used by the indicator, strategy or idea you want to evaluate. A
statistical result only applies to the definition that produced it.
2. Run the built-in validation first. Enable synthetic mode before
interpreting live-market results. Synthetic mode replaces price internally
with a random walk - artificial price data that moves randomly and contains
no real signal - whose correct answer is known. If the measurement does not
recover that answer, the market result should not be trusted.
3. Check the sample funnel. The funnel accounts for every break of
structure: how many found no source candle, fell below the displacement
filter (a minimum move size, set in the settings), had price already inside
the zone at confirmation, or became measurable zones. If the categories
do not add up to the break count, the panel reports the mismatch.
4. Check measurement quality. A barrier size of 1R often resolves
within a few bars. It may then only measure price noise right at the entry
rather than what happens afterward; the panel flags it as TOO TIGHT. Set the
time limit long enough to keep the number of censored zones small, and
compare the real and control ambiguous and censored rates.
5. Read the three core rows. "Hit rate" is the raw real-zone result
and sample size. "Placebo" is the matched baseline. "Real - placebo" is the
edge estimate. Read its size first, then its z score and confidence
interval. Do not treat a high raw hit rate as evidence of an edge unless it
also exceeds the matched baseline.
6. Look for repetition, not the best single result. Repeat the same
configuration on other instruments and independent periods. A result that
appears on only one chart can be random variation rather than a reusable
signal.
Results
The study contains 31 runs and 23 distinct estimates. They span three
instruments from three asset classes - BTCUSDT (crypto), EURUSD (FX) and
ES1! (an equity index future) - plus four timeframes, three time periods,
three barrier widths and eight definition variants.
In the table, Estimate means "real - placebo" in percentage points. A
negative estimate means the placebo levels performed better. The z score
compares that estimate with its statistical noise, and the 95% CI shows the
uncertainty range.
Pool Estimate z 95% CI
30m, 3 instruments, 2025-26 -1.18pp -1.19 -3.1 to +0.8
1h, 3 instruments, 2025-26 -1.90pp -1.35 -4.7 to +0.9
1h, 3 instruments, 2024 -2.39pp -1.36 -5.8 to +1.1
1h, 7 runs, all periods -1.73pp -1.66 -3.8 to +0.3
Every pooled row combines the same three instruments: BTCUSDT, EURUSD and
ES1!. They are one crypto pair, one FX pair and one equity index future
sharing the same calendar window, chosen so that a result holding on all
three cannot come from the structure of a single market.
The decision rule was fixed before the runs: a single configuration had to
reach an absolute z score above 2 (|z| > 2) and then repeat on two other
instruments. One result crossed the single-run threshold: EURUSD 30m at
-4.9pp and z -2.69. It failed both repetitions. The same configuration
returned +0.1pp on BTCUSDT and +0.8pp on ES1!. Its two independent EURUSD
periods combined to -1.23pp at z -0.55, and the sign flipped between the
two periods.
No tested configuration met the full decision rule. The most precise
combined estimate was -1.73pp, and its confidence interval included zero.
The balanced pool - the same three instruments over the two periods that
share no data, before adding the third EURUSD year - gave -2.10pp at
z -1.91, the largest combined deviation in the study; its interval of
-4.3 to +0.1 also included zero, by a small margin. The study therefore
did not detect a reliable positive or negative order-block effect under
the tested conditions.
None of the tested refinements changed the conclusion. A displacement
filter that discarded 56% of breaks, body-only zones, the mitigation
requirement (the Require price outside setting: it discards a zone if price
was already inside it when the break of structure closed), and swing length
across a 3.3x range all moved the estimate by less than the measurement
noise.
Using 50% as the comparison point can create a false conclusion in either
direction. Order blocks filtered to 2 ATR of displacement produced a
46.7% hit rate and z -1.83 against a 50% comparison, which could be
presented as evidence that the setup loses. Against the matched control, the
same runs produced -0.6pp at z -0.29. The apparent result came mostly from
the wrong baseline, not from the order blocks.
To reproduce the published figures: The script defaults match the
configuration used for these estimates. Set the date range to 2025-01-01
through 2026-08-01 for rows labelled 2025-26, or use the matching calendar
year for the other rows. Disable compact panel mode to display the funnel
counts. The three instruments are BTCUSDT, EURUSD and ES1!.
A final note on direction. The mean of all 23 estimates is -0.87pp,
while the same statistic on data built to contain no edge returned -0.44pp.
Fifteen estimates are negative, seven are positive and one is exactly zero.
The estimates share data, so this count is not a formal statistical test.
The data do not establish an exact zero effect, but they do limit how large
any real effect could be within this design and sample.
Validation
Driftless random-walk check. On a driftless random walk, an entry
with equal barriers reaches either side with equal probability. Synthetic
mode replaces price with such a walk, so the combined real and control hit
rates should stay close to 50%, within normal statistical variation.
Eight seeds were tested - starting values for the random generator, each
producing a different artificial price series. The combined real hit rate
was 49.83% and the combined control hit rate was 50.26%, both within 1.5
standard deviations of 50% - that is, well inside normal random variation.
Two of the eight individual runs fell outside the expected range, on
opposite sides of the test and in opposite directions. That pattern
matches ordinary random variation, not a systematic measurement error.
Resolution check. Combined across all eight seeds, the difference
statistic was -0.44pp even though the synthetic data contained no edge. This
shows the smallest difference the design can detect in practice: at this
sample size, differences smaller than about 1.2 percentage points cannot be
separated from measurement noise.
Drift stress test. The same validation was then repeated after adding
drift, while the data was still built to contain no signal edge.
Synthetic mode with drift, where no edge exists by construction. Against the
50% comparison the long side reads 59.6% at z +5.33 and the short side 38.8%
at z -5.89. Both look statistically significant, and both are false signals
created by the wrong baseline. Against the matched control the same two sides
read -0.59 and -0.16 percentage points, at z -0.27 and -0.07, and the
aggregate difference is 0.0%. Synthetic mode replaces price internally, so
the chart behind the panel does not show the tested data.
Settings
Order-block definition. Swing length sets how many bars on each side
are required to confirm a swing point. Search depth sets how far back from
the break the script looks for the source candle. Zone bounds selects either
the full candle range or the candle body. Minimum displacement can require
the move from the source candle to the break to span a selected number of
ATR. Require price outside excludes zones that price had already traded into
by the time of confirmation.
Measurement. Risk unit selects ATR or zone height. Barrier size sets
the target and stop distance in risk units. Time limit removes zones that
have not reached either barrier in time (censoring). Entry price offers the
bar close or the zone edge; the zone-edge option is included for comparison
but is labelled biased. Minimum zone height and the overlap filter determine
which zones enter the sample, while the overlap window sets how far back the
filter compares.
Sample. The range uses explicit year, month and day fields rather
than a date picker. The built-in picker can silently snap to the loaded data
and change the dates, which would make a published result hard to reproduce.
Placebo control. Sets the number of control zones generated for each
real zone and the bar offset used to place them.
Validation. Controls synthetic mode, seed, step size and drift per
bar.
Display. Controls compact panel mode, zone drawing and break markers.
Limitations
The control does not match every feature. It matches zone size,
direction and distance from price, but it does not match the fact that a
strong move in that direction has just happened. In trending markets this
gap matters for direction: control long and short hit rates differed by as
much as 10.9 percentage points. Treat long/short splits as unreliable in
trends. The combined result is also affected, to a degree this study does
not measure.
One instrument remains unresolved. EURUSD 30m returned -4.9pp at
z -2.69. The result failed repetition on both other instruments, and its two
independent EURUSD periods combined to -1.23pp at z -0.55 with opposite
signs. The available history cannot fully separate a real
instrument-specific effect from a random outlier.
Single runs are not precise enough to support the conclusion on their
own. An order block requires a break of structure, so observations are
rarer than for many gap-based patterns. A single instrument-timeframe run
can only detect differences of about 3 percentage points or larger. The
combined estimates therefore carry more weight than any single run.
Loaded chart history limits the sample. The number of bars loaded by
the chart, not only the selected calendar dates, determines how much data a
run can use. The 5-minute cell reaches only a few months, so the effects of
its period and its timeframe cannot be separated.
Historical measurement is not a forecast. The script reports what
happened under the specified rules and sample. Past behavior of a level does
not guarantee or predict future behavior.
Disclaimer
This script and its description are provided for educational and research
purposes only. They do not constitute financial, investment, trading or
other professional advice, and they do not recommend buying, selling or
holding any asset. Historical and simulated results do not guarantee future
performance. Trading involves risk, including the possible loss of capital.
You are solely responsible for your trading and investment decisions and
should conduct your own research and, where appropriate, consult a
qualified financial professional.
指标

ICT Market Structure [JPT] ICT Market Structure is an educational market structure indicator that automatically identifies Higher Highs, Higher Lows, Lower Highs, Lower Lows, Break of Structure (BOS), and Change of Character (CHOCH) using confirmed swing points. The indicator also highlights potential Demand and Supply Order Blocks to help traders analyze structural continuation and potential market reversals.
The indicator is designed to help traders visualize market structure and identify important price reaction zones. It does not predict future price movement or guarantee profitable trades.
🔷 FEATURES
Automatic market structure detection
Higher High (HH) and Higher Low (HL) identification
Lower High (LH) and Lower Low (LL) identification
Bullish and bearish Break of Structure (BOS)
Bullish and bearish Change of Character (CHOCH)
Automatic Demand Order Block detection
Automatic Supply Order Block detection
Confirmed swing-based structure
Optional Order Block retest analysis
Automatic broken/invalidated zone removal
Customizable swing and Order Block settings
Clean chart layout with minimal clutter
🔷 HOW IT WORKS
Detects confirmed swing highs and swing lows.
Classifies market structure into HH, HL, LH, and LL.
Monitors important swing levels for structural breaks.
Identifies potential BOS events when price breaks established structure.
Identifies potential CHOCH events when market structure shifts.
Searches for relevant bullish and bearish candles around structural breaks to create potential Order Blocks.
Displays Demand and Supply zones directly on the chart for market structure analysis.
🔷 HOW TO USE
Start by observing the current HH / HL / LH / LL structure.
Use BOS to identify potential continuation of the existing market structure.
Use CHOCH to monitor potential changes in market direction.
Watch how price reacts when returning to a Demand or Supply Order Block.
Use Order Blocks as areas of interest rather than automatic entry signals.
Combine the structure information with your own confirmation methods and risk management rules.
🔷 MARKET STRUCTURE GUIDE
Bullish Structure:
HH → HL → BOS → continuation
Bearish Structure:
LH → LL → BOS → continuation
Potential Structural Shift:
Existing Structure → CHOCH → New Direction → New BOS
🔷 NOTES
Structure is based on confirmed swing points.
Historical structure may appear only after the required swing confirmation period.
Order Blocks are analytical zones and should not be considered guaranteed reversal areas.
BOS and CHOCH are designed to help visualize structural changes, not predict future price movement.
The indicator is intended as an educational and analytical tool.
No indicator can guarantee successful trades, and this script should not be used as the sole basis for investment or trading decisions. 指标

指标

SMC Liquidity Sweep Swing High/Low [JPT]🔷 OVERVIEW
Liquidity Sweep Reversal Engine is a price-action indicator designed to identify potential reversal setups after price sweeps confirmed swing highs or swing lows and rejects the liquidity level.
The indicator combines swing structure, liquidity sweep detection, rejection candles, trend confirmation, displacement, and optional volume analysis to filter potential LONG and SHORT setups.
After a confirmed signal, the indicator automatically provides a trade plan with:
• Entry level
• Stop Loss
• TP1 / TP2 / TP3
• Risk-Reward levels
• Signal score
🔷 CONCEPTS
Liquidity Sweep Detection
The indicator tracks confirmed swing highs and lows as potential liquidity areas.
• Buy-side liquidity sweep → price takes a previous swing high and rejects below it → SHORT bias.
• Sell-side liquidity sweep → price takes a previous swing low and rejects above it → LONG bias.
Rejection Confirmation
A sweep can be filtered using:
• Close back through the liquidity level
• Rejection wick
• Minimum wick percentage
• Candle direction
Trend Confirmation
An optional EMA filter helps align signals with the current market direction.
Displacement
The indicator can require a minimum candle-body size relative to ATR to help filter weak price movements.
Volume Filter
Optional relative-volume confirmation can be enabled to identify sweeps occurring with increased market participation.
🔷 FEATURES
1. Swing Liquidity Detection
• Automatic swing high/low detection
• Buy-side and sell-side liquidity levels
2. Liquidity Sweeps
• High sweep detection
• Low sweep detection
• Rejection confirmation
3. Signal Filtering
• EMA trend filter
• Displacement filter
• Optional volume filter
• Signal score from 1–5
4. Trade Management
• Automatic Entry
• ATR-based Stop Loss
• TP1 / TP2 / TP3
• Custom Risk-Reward ratios
5. Visuals
• Liquidity lines
• Swing labels
• LONG / SHORT labels
• Entry / SL / TP levels
6. Alerts
• LONG signal
• SHORT signal
• TP1 / TP2 / TP3
• Stop Loss
🔷 APPLICATIONS
1. Liquidity Sweep Reversals
Identify potential reversal opportunities after price takes liquidity above a swing high or below a swing low.
2. Market Structure Mapping
Use confirmed swing levels to visualize important liquidity areas and potential reaction zones.
3. Signal Filtering
The optional trend, displacement, volume, and score filters can help reduce weaker setups.
4. Trade Planning
The built-in Entry, Stop Loss, and multiple Take Profit levels provide a structured framework for evaluating trades.
🔷 NOTES
• Lower pivot settings generate more signals and may produce more noise.
• Higher pivot settings identify larger structural liquidity levels.
• Liquidity sweeps do not guarantee reversals.
• Signal confirmation occurs on the closed candle.
• Always evaluate signals within the broader market structure and apply appropriate risk management. 指标

XauLabs Swing PointsENGLISH
What it does
It marks confirmed swing highs and swing lows, labels each one relative to the previous one of the same type — HH, HL, LH, LL — and connects them with a zigzag. That labelled sequence is the raw material of every structure-based method: HH + HL is the skeleton of an uptrend, LH + LL the skeleton of a downtrend, anything mixed is no man's land.
How it works (full method)
Confirmation. A swing high is confirmed only when the highs of the N bars before AND the N bars after are all lower (mirrored for swing lows). N is user-defined, default 7, range 5–21.
Labelling. On confirmation, the new swing high is compared to the previous confirmed swing high: higher gives HH, lower gives LH. The first one, with no predecessor, is labelled H. Swing lows are compared to previous swing lows: HL or LL, first one labelled L. Highs are never compared to lows.
Zigzag. Each confirmed pivot is joined to the previous confirmed pivot by a straight line, regardless of type. The result is the chart's skeleton with the intermediate noise removed.
Two levels of structure. Major structure uses the main sensitivity and is the default view. An optional minor structure, with its own smaller sensitivity (default 3), plots the internal waves inside each major leg. It is off by default: the skeleton first, the ripples afterwards. Reading a minor swing as if it were a major one is the most common way to end up flipping bias several times a day.
No repainting
Labels appear N bars after the extreme they mark, are drawn at the true historical position of that extreme, and never move or disappear afterwards. What history shows is what would have been visible live. The confirmation delay is the cost, and it is stated rather than hidden.
On-chart output
HH / HL / LH / LL labels on every confirmed major pivot.
Zigzag connecting major pivots.
Optional minor pivot dots.
A badge in the top-right corner showing the two most recent readings, with selectable text size.
Two alert conditions: major swing high confirmed, major swing low confirmed.
Suggested use
Start on H4. Read the badge: HH · HL means the bullish skeleton is intact. Structure has to be read on one sensitivity, applied consistently — not on whichever swing supports the trade you already want to take.
This is an educational structure-reading tool. It gives no buy or sell signals and makes no performance claim. Trading involves substantial risk of loss.
FRANÇAIS
Ce que fait l'indicateur
Il marque les sommets et creux de swing confirmés, étiquette chacun par rapport au précédent du même type — HH, HL, LH, LL — et les relie par un zigzag. Cette séquence étiquetée est la matière première de toute méthode structurelle : HH + HL forme le squelette d'une tendance haussière, LH + LL celui d'une tendance baissière, tout ce qui est mixte est une zone grise.
Comment il fonctionne (méthode complète)
Confirmation. Un sommet n'est confirmé que si les N bougies avant ET les N bougies après ont toutes un plus haut inférieur (symétrique pour les creux). N est réglable, 7 par défaut, plage 5–21.
Étiquetage. À la confirmation, le nouveau sommet est comparé au sommet confirmé précédent : plus haut donne HH, plus bas donne LH. Le premier, sans prédécesseur, est étiqueté H. Les creux sont comparés aux creux : HL ou LL, le premier étiqueté L. Un sommet n'est jamais comparé à un creux.
Zigzag. Chaque pivot confirmé est relié au pivot confirmé précédent par une droite, quel que soit son type. On obtient le squelette du graphique, débarrassé du bruit intermédiaire.
Deux niveaux de structure. La structure majeure utilise la sensibilité principale : c'est la vue par défaut. Une structure mineure optionnelle, avec sa propre sensibilité plus courte (3 par défaut), trace les vagues internes de chaque jambe majeure. Elle est désactivée par défaut : le squelette d'abord, les vagues ensuite. Lire un swing mineur comme s'il était majeur est la façon la plus courante de changer de biais cinq fois par jour.
Aucun repaint
Les étiquettes apparaissent N bougies après l'extrême qu'elles marquent, sont tracées à la vraie place historique de cet extrême, et ne bougent ni ne disparaissent ensuite. Ce que montre l'historique est ce qui aurait été visible en direct. Le délai de confirmation est le prix à payer, et il est affiché plutôt que masqué.
Affichage
Étiquettes HH / HL / LH / LL sur chaque pivot majeur confirmé.
Zigzag reliant les pivots majeurs.
Points de pivots mineurs, optionnels.
Un badge dans le coin supérieur droit affichant les deux dernières lectures, avec taille de texte réglable.
Deux conditions d'alerte : sommet majeur confirmé, creux majeur confirmé.
Utilisation suggérée
Commencer en H4. Lire le badge : HH · HL signifie que le squelette haussier est intact. La structure se lit sur une seule sensibilité, appliquée avec constance — pas sur le swing qui arrange le trade qu'on a déjà envie de prendre.
Outil éducatif de lecture de structure. Il ne donne aucun signal d'achat ou de vente et ne formule aucune promesse de performance. Le trading comporte un risque de perte important. 指标

MTF Daily Bias DashboardOverview
The "MTF Daily Bias Dashboard" is a streamlined, non-intrusive utility designed specifically for Smart Money Concepts (SMC) and Inner Circle Trader (ICT) methodologies. Multi-timeframe analysis is the backbone of finding high-probability setups, but constantly switching between charts to check the higher-timeframe narrative can lead to missed lower-timeframe entries.
This indicator solves that problem by providing a clean, customizable on-chart dashboard that displays real-time, objective market bias across three different timeframes simultaneously.
Core Features
Objective Bias Detection: Bias is determined mechanically using a customizable Exponential Moving Average (EMA) and price action closes, removing emotion and guesswork from your directional bias.
Multi-Timeframe Synchronization: By default, it tracks the Daily (1D), 4-Hour (4H), and 15-Minute (15m) timeframes, giving you a complete top-down narrative at a glance.
Non-Repainting Logic: The multi-timeframe data is pulled securely, ensuring that historical signals remain accurate and current data does not repaint past the current candle formation.
Dynamic Visual Dashboard: A color-coded table (Green for Bullish, Red for Bearish) provides immediate visual confirmation of market alignment.
How It Works
The indicator evaluates the current price action against your chosen baseline (EMA).
Bullish (Green):Price closes above the EMA, and the current candle closes higher than the previous candle.
Bearish (Red): Price closes below the EMA, and the current candle closes lower than the previous candle.
Confluence: When all three timeframes show the same color, you have high-probability directional alignment, perfect for looking for lower-timeframe sweeps, order blocks, or fair value gaps in the direction of the trend.
Customization & Settings
Timeframes: Fully adjustable inputs allow you to change the three monitored timeframes to fit your specific trading model (e.g., Weekly/Daily/1H or 4H/1H/5m).
Dashboard Positioning: You can move the dashboard to any corner of your chart to ensure it never obstructs current price action.
Trend Logic: Adjust the EMA length used to calculate the bias to make the indicator more or less sensitive to recent price action.
Who is this for?
This tool is ideal for SMC, ICT, and pure price action traders who rely on the daily narrative but execute on intraday timeframes. It keeps you aligned with the macro trend while you focus on micro executions. 指标

XauLabs Trend & Range**ENGLISH**
**What it does**
This indicator answers one question, and only one: is the market currently trending up, trending down, or ranging? It reads pure price structure — confirmed swing highs and swing lows — and states a verdict on the chart.
**How it works (full method)**
1. **Swing detection.** A swing high is confirmed only when the highs of the N bars before AND the N bars after are all lower (mirrored for swing lows). N is user-defined, default 7, range 5–21. Confirmation therefore arrives N bars after the actual extreme; the marker is then plotted at its true historical position and never moves again.
2. **Memory.** The script keeps the last two confirmed highs and the last two confirmed lows.
3. **Classification.**
- Uptrend: last high > previous high AND last low > previous low.
- Downtrend: last high < previous high AND last low < previous low.
- Range: anything else, including any state with fewer than two confirmed highs and two confirmed lows.
4. **Close-based invalidation** (optional, on by default). Any bar closing below the last confirmed swing low arms an invalidation flag. While that flag is armed, no uptrend is displayed: the state is forced to Range, even if the swing sequence otherwise qualifies as higher highs and higher lows. The flag is cleared only when a new swing low is confirmed. The logic is mirrored for downtrends, using a close above the last confirmed swing high. Wicks piercing the level do not count — only the close does. This mechanism can only suppress a trend reading, never create one: a trend must always earn its own structure.
**Why the delay is deliberate**
Signals never appear and later vanish. What the history shows is what would have been visible live. The cost is the N-bar confirmation delay, and it is stated openly rather than hidden behind a repainting display.
**On-chart output**
- Background tint: green uptrend, red downtrend, grey range.
- Triangles marking each confirmed swing high and low.
- A two-line state badge in the top-right corner, with selectable size and language (EN/FR).
- One alert condition: state change.
**Suggested use**
Start on H4. When the state reads Range, trend-following setups are structurally out of place — the indicator is meant to be used as a context filter before any entry logic, not as an entry trigger itself. The lower the sensitivity value, the faster and noisier the reading; the higher, the slower and more stable.
**Originality**
Most trend tools average price (moving averages, oscillators) and therefore lag by construction. This one reads structure only, applies a strict non-repainting confirmation rule, and adds a close-based invalidation layer so that a broken structure is downgraded to Range immediately rather than after the next swing forms. Open source: every rule above is verifiable line by line in the code.
This is an educational structure-reading tool. It gives no buy or sell signals and makes no performance claim. Trading involves substantial risk of loss.
---
**FRANÇAIS**
**Ce que fait l'indicateur**
Il répond à une seule question : le marché est-il en tendance haussière, baissière, ou en range ? Il lit la structure pure du prix — sommets et creux confirmés — et affiche son verdict.
**Comment il fonctionne (méthode complète)**
1. **Détection des pivots.** Un sommet n'est confirmé que si les N bougies avant ET les N bougies après ont toutes un plus haut inférieur (symétrique pour les creux). N est réglable, 7 par défaut, plage 5–21. La confirmation arrive donc N bougies après l'extrême réel ; le marqueur est ensuite tracé à sa vraie place historique et ne bouge plus jamais.
2. **Mémoire.** Le script conserve les deux derniers sommets et les deux derniers creux confirmés.
3. **Classification.**
- Hausse : dernier sommet > précédent ET dernier creux > précédent.
- Baisse : dernier sommet < précédent ET dernier creux < précédent.
- Range : tout le reste, y compris tant que moins de deux sommets et deux creux sont confirmés.
4. **Invalidation en clôture** (optionnelle, active par défaut). Toute bougie qui clôture sous le dernier creux confirmé arme une invalidation. Tant qu'elle est armée, aucune tendance haussière n'est affichée : l'état reste Range, même si la séquence de pivots remplit par ailleurs la condition sommets et creux ascendants. L'invalidation ne se désarme qu'à la confirmation d'un nouveau creux. Le mécanisme est symétrique en tendance baissière, avec une clôture au-dessus du dernier sommet confirmé. Une mèche qui perce le niveau ne suffit pas — seule la clôture compte. Ce mécanisme peut uniquement supprimer une lecture de tendance, jamais en créer une : une tendance doit toujours prouver sa propre structure.
**Pourquoi le délai est assumé**
Aucun signal n'apparaît puis ne disparaît. Ce que montre l'historique est ce qui aurait été visible en direct. La contrepartie est le délai de confirmation de N bougies, affiché ouvertement plutôt que masqué derrière un affichage qui se repeint.
**Affichage**
- Fond teinté : vert en hausse, rouge en baisse, gris en range.
- Triangles marquant chaque sommet et creux confirmé.
- Un badge d'état à deux lignes dans le coin supérieur droit, avec taille et langue (EN/FR) réglables.
- Une condition d'alerte : changement d'état.
**Utilisation suggérée**
Commencer en H4. Quand l'état affiche Range, les setups de suivi de tendance sont structurellement hors sujet — l'indicateur est conçu comme un filtre de contexte en amont d'une logique d'entrée, pas comme un déclencheur d'entrée. Plus la sensibilité est basse, plus la lecture est rapide et bruitée ; plus elle est haute, plus elle est lente et stable.
**Originalité**
La plupart des outils de tendance moyennent le prix (moyennes mobiles, oscillateurs) et retardent par construction. Celui-ci lit uniquement la structure, applique une règle de confirmation stricte sans repeinture, et ajoute une couche d'invalidation en clôture pour qu'une structure cassée redevienne Range immédiatement plutôt qu'au pivot suivant. Code ouvert : chaque règle ci-dessus est vérifiable ligne par ligne.
Outil éducatif de lecture de structure. Il ne donne aucun signal d'achat ou de vente et ne formule aucune promesse de performance. Le trading comporte un risque de perte important. 指标

Smart Money Toolkit Pro [JPT]🔷 OVERVIEW
Smart Money Toolkit Pro is an original Pine Script® v6 indicator that combines multiple Smart Money Concepts (SMC) into one clean and powerful trading tool. It automatically detects market structure, Break of Structure (BOS), Change of Character (CHoCH), liquidity levels, liquidity sweeps, and dynamic support/resistance to help traders analyze price action with confidence.
Designed for Forex, Gold (XAUUSD), Crypto, Stocks, Indices, and Futures, the indicator provides a clear visual representation of institutional market behavior without requiring manual chart drawing.
🔷 HOW IT WORKS
The indicator continuously scans price using confirmed pivot highs and lows.
Market Structure
The script automatically identifies:
• Higher High (HH)
• Higher Low (HL)
• Lower High (LH)
• Lower Low (LL)
These labels help traders understand whether the market is trending, ranging, or reversing.
Break of Structure (BOS)
A BOS is generated when price closes beyond a previous confirmed swing in the direction of the current trend.
Bullish BOS
Price breaks above a previous Swing High.
Bearish BOS
Price breaks below a previous Swing Low.
Change of Character (CHoCH)
A CHoCH signals a potential shift in market direction.
Bullish CHoCH
Price breaks above the previous Lower High.
Bearish CHoCH
Price breaks below the previous Higher Low.
This helps traders recognize possible trend reversals early.
Liquidity Engine
The built-in liquidity engine automatically plots:
• Buy-Side Liquidity (BSL)
• Sell-Side Liquidity (SSL)
• Equal Highs (EQH)
• Equal Lows (EQL)
The indicator monitors these areas for liquidity grabs and sweep events commonly associated with institutional trading activity.
Liquidity Sweeps
The script detects:
• Buy-Side Liquidity Sweeps
• Sell-Side Liquidity Sweeps
When a sweep occurs, the indicator marks the event directly on the chart, allowing traders to identify potential reversal opportunities.
🔷 VISUAL FEATURES
• Automatic Market Structure Labels (HH, HL, LH, LL)
• Break of Structure (BOS)
• Change of Character (CHoCH)
• Buy-Side Liquidity (BSL)
• Sell-Side Liquidity (SSL)
• Equal High Detection
• Equal Low Detection
• Liquidity Sweep Detection
• Dynamic Swing High & Low Levels
• Trend Background Coloring
• Liquidity Dashboard
• Trend Dashboard
• Professional Chart Layout
• Customizable Colors
🔷 DASHBOARD
The built-in dashboard displays:
• Current Trend
• Last Confirmed High
• Last Confirmed Low
• Active Buy-Side Liquidity
• Active Sell-Side Liquidity
• Latest Liquidity Event
This provides a quick overview of current market conditions.
🔷 INPUTS
Available settings include:
• Pivot Strength
• Show Structure Labels
• Show Swing Levels
• Extend Swing Levels
• Show BOS
• Show CHoCH
• Show Liquidity
• Show Liquidity Sweeps
• Show Equal High / Low
• ATR Tolerance
• Maximum Historical Liquidity Levels
• Bullish Color
• Bearish Color
• Liquidity Colors
🔷 ALERTS
Built-in alerts are available for:
• Bullish BOS
• Bearish BOS
• Bullish CHoCH
• Bearish CHoCH
• Buy-Side Liquidity Sweep
• Sell-Side Liquidity Sweep
Alerts can be connected directly to TradingView's notification system.
🔷 COMMON WORKFLOW
A typical workflow is:
Wait for confirmed market structure (HH, HL, LH, LL).
Observe BOS or CHoCH confirmation.
Monitor Buy-Side and Sell-Side Liquidity levels.
Watch for liquidity sweeps around key swing points.
Combine confirmations with your preferred entry strategy and risk management.
🔷 MARKETS
Smart Money Toolkit Pro can be used on:
• Forex
• Gold (XAUUSD)
• Silver (XAGUSD)
• Cryptocurrency
• Stocks
• Indices
• Futures
• Commodities
Compatible with all TradingView-supported timeframes.
🔷 BEST PRACTICES
For additional confirmation, many traders combine this indicator with:
• Support & Resistance
• Supply & Demand Zones
• Order Blocks
• Fair Value Gaps (FVG)
• Fibonacci Retracement
• EMA 50 / EMA 200 Trend Filter
• Volume Analysis
• Higher Timeframe Confirmation
These concepts are optional but can enhance decision-making when used alongside market structure.
🔷 UPCOMING FEATURES
Future updates may include:
• Institutional Order Blocks
• Fair Value Gap (FVG) Detection
• Premium & Discount Zones
• Auto Fibonacci Retracement
• Multi-Timeframe Market Structure
• Entry & Exit Signals
• TP1, TP2, TP3 Auto Targets
• Stop Loss Calculation
• Risk/Reward Visualization
• Advanced Smart Money Dashboard
• Session Analysis
• Volume Confirmation
🔷 DISCLAIMER
This indicator is provided for educational and informational purposes only. It highlights market structure and liquidity concepts based on historical price action and does not predict future market movements or guarantee trading performance. Always conduct your own analysis, use proper risk management, and consider additional market factors before making trading decisions. 指标

Strong MTF Liquidity Matrix | ProjectSyndicateStrong MTF Liquidity Matrix
Strong MTF Liquidity Matrix puts four higher-timeframe charts on one screen and reads the same institutional map on every one of them — order blocks, fair value gaps, and resting liquidity — then ranks each zone by strength so you know which level actually matters. It's a command deck: your main chart stays clean while four live mini-panels track the structure above you, and the liquidity pools that price is really hunting sit directly on your candles.
Most multi-timeframe tools make you flip between charts. This one stops the flipping.
🔲 Four-Panel MTF Engine — the core. Four independent mini-charts render right on your pane — M30 · H1 · H2 · H4 by default, each one fully configurable to any timeframe (drop to seconds or push to Daily). Every panel fetches its own higher-timeframe candles, keyed on the HTF bar's own time, so the zones are invariant to your master chart timeframe — switch your main chart from M30 to H1 to D1 and the panels don't move. The last candle in each panel tracks the live, forming HTF bar tick by tick.
🟩 Order Block Detection — real ICT logic, per timeframe. Each panel runs a swing-pivot + displacement scan: the last opposing candle before an impulsive move that clears your displacement multiple becomes the order block. Bull OBs from swing-low reversals, bear OBs from swing-high reversals — detected natively on every one of the four timeframes at once.
🟥 Fair Value Gap Detection — the imbalance map. True three-candle FVGs on each timeframe, with an optional ATR gap filter so only gaps worth trading survive. Bullish and bearish gaps rendered in the original green/red palette, distinct from the order blocks, on all four panels simultaneously.
🧲 Universal Zone Height — the accuracy differentiator. Raw OB/FVG zones come in wildly different sizes and clutter the read. Every zone is normalized to one clean height — ATR-based or a fixed percentage of price — so the panels stay legible and every zone carries equal visual weight. Fair value framed; noise removed.
🔢 0–10 Strength Ranking — the power-ranking. Every zone earns a live grade, printed inside the shaded box (OB 8.5, FVG 6.0). Order blocks score on displacement force, zone height and age; fair value gaps score on gap size versus ATR. Set a minimum strength floor and the weak zones simply don't draw — only the levels that earned attention survive.
🌊 Liquidity Heatmap — resting pools on your main chart. Buy-side and sell-side liquidity, seeded from fractal swing highs and lows across two pivot passes, drawn as heat-weighted boxes whose opacity scales with liquidity weight (volume × range). Strong pools glow, weak ones stay faint. When price trades through a pool it's consumed — the zone freezes and fades to show exactly what's already been taken. Colours locked 100% to the OB/FVG palette: buy-side green, sell-side red.
🏷️ Clean Liquidity Labels — above the zone, never in the way. Each resting pool is tagged with its side (BSL/SSL), price, weight and distance from current price — anchored above the zone at its left edge so labels never overlap the fills and never protrude past the level. Read the map without the mess.
🧹 Clean-Chart Discipline — dashboard off by default. No stat panel competing with price. The liquidity dashboard exists — nearest SSL/BSL, hottest level, pool counts, consumed tally — but it's switched off out of the box. Turn it on only if you want it.
🎨 Fully Themed & Configurable. Neutral-gray candles that let the coloured zones pop, custom OB/FVG/liquidity colours, panel size and spacing, right-offset from live price, 2× timeframe labels, per-panel OB/FVG toggles, adjustable swing length, displacement, mitigation type (Touch / Full Fill / 50% Fill), gap filter, zone-height method, strength floor, pivot lengths, heat contrast, pool extension and cap.
🔒 Honest, Non-Repainting Core. Panel history is built from confirmed higher-timeframe bars only; the live forming candle refreshes as it builds — inherent to showing a real-time HTF candle, not a defect — while every closed bar is fixed. Liquidity pools consume on confirmed interaction and don't un-consume to flatter the chart. The 0–10 strength score is a descriptive ranking framework for directing attention, not a backtested edge.
🔔 Native Alerts — new sell-side pool and new buy-side pool formation.
🎯 Why this is different. MTF tools make you tab between charts and reconcile the structure in your head. Profile tools show you liquidity and leave the map disconnected from your entries. Strong MTF Liquidity Matrix holds all four higher timeframes in view at once, marks the order blocks and fair value gaps on every one of them, grades each so you know which to trust, and lays the liquidity price is actually hunting directly on your candles — so you read where structure sits, how strong it is, and where price is being pulled, at a glance.
🚀 Apply to Gold (XAUUSD), Silver, Forex, Crypto, Indices and Futures on any timeframe (liquidity heat requires a volume-bearing symbol).
💡 Cleanest setup: give the four panels room — nudge Right Offset and the panels sit clear of live price to the right, while liquidity zones map onto the candles on the left.
🎯 How To Trade It — Two Approaches
Everything hinges on one read the Matrix gives you at a glance: is higher-timeframe structure lining up, and is price being pulled toward unfilled liquidity?
◾ 1) Trade into confluence toward liquidity (the core thesis)
Use when a high-strength zone on a higher panel lines up with a resting liquidity pool in the same direction.
▪️ Scan the four panels for a strong OB or FVG (7+) on H1/H2/H4 sitting where price is heading.
▪️ Confirm a naked liquidity pool (BSL below / SSL above) as the magnet — the untested pools are where price is drawn.
▪️ Entry: as price reaches the higher-timeframe zone, in the direction of the unfilled liquidity beyond it.
▪️ Stop: beyond the zone; if price closes through and accepts, the level failed — stand aside.
▪️ Target: the nearest resting pool in your direction; the opposite-side pool if the move extends.
⚖️ The cleanest version: H1 and H2 panels both print a strong bull OB at the same area, a fat buy-side pool sits just below unconsumed, and the M30 panel shows price rotating down into it. Structure, strength and liquidity all point the same way. That confluence is the exact setup this tool was built to frame.
◾ 2) Stand down — the map says wait
The Matrix also tells you when there's nothing to do.
▪️ Panels disagree — a bull OB on H1 against a bear FVG on H4 is conflict, not confluence. Wait for alignment.
▪️ Liquidity already consumed on your side — the magnet's gone; the pull is spent.
▪️ No strong zone in range — low scores everywhere means no level worth risking on. Let it develop.
Rule of thumb: ⭐ Aligned high-strength zones + an unfilled pool in the same direction → trade into the confluence toward the liquidity. ⭐ Conflicting panels, consumed pools, or weak scores → stand down until the map agrees.
⚠️ IMPORTANT NOTICE: Strong MTF Liquidity Matrix is a structure-and-liquidity mapping tool. Order blocks, fair value gaps and liquidity pools are drawn from swing-pivot and gap logic — a model of institutional behaviour, not exchange order-book data. Liquidity weight is inferred from volume × range and requires a volume-bearing symbol. The 0–10 strength score is a descriptive ranking framework for directing attention — NOT a backtested signal and NOT a standalone trade trigger. Trading into higher-timeframe structure still carries real risk of failed levels and stop-outs. Always combine it with your own strategy, price-action analysis and risk management. Past behaviour does not guarantee future results. 指标

Sphinx Unicorn - FVG Breaker Nesting ModelDescription:
Sphinx Unicorn identifies a specific price structure from ICT-influenced methodology: a swing point that forms inside an unfilled fair value gap (FVG), which price then reclaims through displacement. This structure is commonly called a "unicorn" — a breaker nested within an FVG. The script scans for these continuously, tracks each candidate through a defined lifecycle, and confirms only those that complete the full sequence.
What makes this different from a generic FVG or order-block indicator
Most FVG scripts simply draw every gap. Most breaker scripts simply mark broken structure. This one requires the two to coincide and survives a multi-stage confirmation before it marks anything as complete:
The nesting test — a swing must sit inside an FVG that is still unfilled at the moment the swing forms. A gap price has already traded through is rejected, which removes the majority of low-quality candidates on intraday timeframes.
The Balanced Price Range (BPR) gate — activation requires the breaking leg to leave its own fair value gap that overlaps the nesting gap. A slow drift through the level does not qualify; only a genuine displacement that creates a second, opposing inefficiency does.
A self-scaling displacement filter — the gap left by the breaking leg must be at least a configurable fraction (default 0.75) of the size of the gap it inverts. This means a large level demands a proportionally decisive break to confirm, while a small level needs less. The threshold scales with the structure itself rather than using a fixed point or tick value, so it adapts across instruments and volatility regimes without re-tuning.
How it calculates
FVGs are detected using the standard three-bar definition (a gap between the first and third bar's wicks). A pivot is qualified as "nested" when its price falls strictly within an unfilled gap's range inside the search window. Overlapping gaps in the same direction are collapsed into a single zone drawn at the largest gap, so clustered inefficiencies read as one level rather than a stack of boxes. Displacement is confirmed on bar close beyond both the swing and the gap's far edge, subject to the BPR and ratio conditions above.
The four zone states
Level (grey, thin): a nested swing that has been superseded by a newer one. Price may still react here, but it is no longer the watched candidate and cannot activate.
Armed (grey, dashed): the current front-runner — the zone actively being evaluated for displacement.
Active (green or red): a confirmed unicorn. The displacement completed with a valid BPR.
Spent (purple): an Active zone that price has since mitigated. It is retained as a reference level, since a proven structure often sees price return to it.
How to use it
This tool marks where a precise entry structure exists. It is not a standalone system and is best used as one input within a layered approach. In practice it is strongest when the confirmed zone aligns with an independently identified key level — for example a higher-timeframe draw on liquidity, a volume or dealer-positioning level, or a session reference — and when it is paired with SMT (Smart Money Technique) divergence read across correlated instruments on the manipulation leg that forms the breaker. A confirmed unicorn sitting at a defended level, with SMT divergence present on that leg, represents the confluence this structure is designed to isolate. A confirmed unicorn with no surrounding context should be treated with more caution.
Alerts are provided for both the arming and activation of a zone, in each direction.
Inputs
Swing strength, FVG search radius, strict-nesting toggle, displacement-close requirement, BPR requirement and lookback, minimum displacement gap size, and the self-scaling displacement ratio. Display controls cover zone colors per state, the on-chart zone limit, and the mitigation rule (touch versus close-through). A diagnostic panel shows a live count of zones in each state.
Limitations and behavior traders should know
The nesting swing is detected using pivots, which require bars on both sides to confirm. A zone therefore arms only after the pivot's right-hand bars have formed; it does not arm on the exact pivot bar in real time.
On strongly trending sessions the model produces few or no setups, because reversals into unfilled opposing gaps are rare in a one-directional market. Empty output in a trend is expected behavior, not a failure.
SMT divergence, referenced above as a recommended confluence, is read by the trader from correlated instruments and is not drawn by this script.
This indicator marks structure. It does not predict direction, guarantee outcomes, or constitute a trading system on its own.
Open-source. Part of the Sphinx suite by Hermetic Trader. 指标

ICT Kill Zone Sniper [JOAT]═══ ICT KILL ZONE SNIPER ⚡ ═══
A session-aware sniper tool that paints every candle by its active kill zone, tracks the liquidity pool each session leaves behind, and fires a single clean BUY or SELL only after price sweeps the prior pool and reverses back inside the current kill zone. Built for traders who wait for the liquidity grab, not the breakout.
▎ WHAT IT DOES
It splits the trading day into four classic kill zones — Asia , London , NY-AM and NY-PM — colors the candles inside each one, and records the high and low that every finished session builds. Those prior highs/lows become the liquidity pools hunted in the next window. When the current kill zone reaches into one of those pools and then closes back through it, the tool marks the sweep and projects a full trade: entry, ATR stop, and an R-based target zone.
▎ HOW IT WORKS
• Kill-zone clock — each session window is evaluated in a chosen wall-clock timezone (New York by default). Membership is na-guarded, so it behaves correctly on any intraday timeframe and simply idles on higher timeframes.
• Session state machine — while a kill zone is live, the tool expands that session's running high and low. When the session ends, that high/low is frozen as the prior liquidity pool and drawn as dashed projection lines carried into the next window.
• Sweep + reversal detection — a high sweep needs price to trade above the prior pool high yet close back below it; a low sweep needs a dip below the prior pool low with a close back above. A Min Sweep Depth (× ATR) filter rejects micro-penetrations caused by spread and tick noise.
• Confirmation — sweeps can be evaluated on confirmed bar close only, so signals do not repaint intrabar. At most one long and one short can print per kill-zone occurrence when the one-per-side lock is on.
• Optional HTF bias — a higher-timeframe EMA (requested with lookahead off) can gate direction: longs only above it, shorts only below it.
• Trade projection — on a valid signal the stop is placed beyond the swept extreme plus an ATR buffer, risk is measured from entry to stop, and the target is set at your chosen R multiple. Reward and risk are drawn as tinted zone boxes with entry/SL/TP lines and level labels.
• Optional VWAP — a session-anchored VWAP with a ±σ band is available as extra context.
▎ HOW TO USE IT
• Wait for a BUY or SELL pill to print inside a colored kill zone — it means the prior pool was swept and price reversed back through it.
• The green zone box is the reward leg toward the R-target; the red zone box is the risk leg to the stop. The label pill shows the session and the R multiple.
• Use the dashed prior high/low lines as the liquidity being hunted this session — signals cluster around them.
• Treat the HTF bias as a directional filter and the sweep tags as confirmation that liquidity was actually taken before you commit.
• Combine with your own structure read; the tool marks the setup, you manage the trade.
▎ KEY SETTINGS
• Kill Zones — timezone plus editable session windows for Asia, London, NY-AM and NY-PM.
• Signal Engine — ATR length, confirm-on-close, one-signal-per-side lock, and minimum sweep depth.
• HTF Bias — toggle, higher timeframe, and EMA length.
• Trade Model — stop buffer beyond the sweep, risk/reward target in R, projection length, and how many past signals to keep.
• Visuals — candle tinting and transparency, session boxes, pools, sweep tags, signal labels, SL/TP lines and zone boxes, VWAP bands, and label size.
• Dashboard — show/hide, position, and text size.
▎ DASHBOARD
A cyberpunk chrome-gradient panel reporting the active session , current session high/low , a countdown to the next kill zone , the HTF bias state, the last liquidity grab side, the active signal with bars-since, the last entry , its stop / target , the current ATR , and a running long / short signal tally .
▎ ALERTS
• KZ Sniper Long — prior-pool low sweep plus bullish reversal inside a kill zone.
• KZ Sniper Short — prior-pool high sweep plus bearish reversal inside a kill zone.
▎ NOTES
• Works across assets; the session logic is intended for intraday timeframes and idles on higher ones.
• Confirm-on-close keeps signals non-repainting; the HTF EMA is requested with lookahead off.
• Nearly every visual has a toggle, so you can strip it down to just the candles and signals for a clean chart.
• Any on-chart tallies reflect historical signals only.
For research and education only. This is not financial advice. No indicator can predict the future, and past behavior does not guarantee future results. Always manage your own risk.
Made with passion by JackOfAllTrades ⚡ 指标

Fair Value Gap Detector | AlphaScript⚡ Fair Value Gap Detector
Most fair value gap indicators mark every three-candle gap on the chart — including the weak, meaningless ones. This tool only marks FVGs created by genuine displacement: a strong-bodied move that signals real institutional participation. Fewer gaps, but the ones that matter.
💡 What a fair value gap is
A fair value gap (FVG) is a three-candle imbalance where price moved so quickly that it left an unfilled gap. In a bullish FVG, the low of the third candle sits above the high of the first — the middle candle's move was so strong it skipped a price range where little trading occurred. Price often returns to "fill" these gaps before continuing, which is why traders watch them as potential entry and reaction zones.
🎯 Why displacement matters
A gap alone is not significant, gaps form constantly, most from weak or random price action. What makes an FVG worth trading is displacement: the middle candle being a large, decisive move that leaves the gap behind. This tool measures the middle candle's body against ATR and only registers the FVG when that body is large enough to qualify as real displacement, and when it moved in the gap's direction. The result is a chart showing institutional-grade gaps instead of noise.
🔍 How detection works
On each confirmed three-candle sequence the tool checks:
A valid gap exists (third candle's low above first candle's high for bullish; third's high below first's low for bearish).
The gap is at least a minimum size, measured as a multiple of ATR, so it is instrument-independent.
The middle candle's body is a genuine displacement — at least a configurable multiple of ATR — and pushed in the gap's direction.
Only sequences passing all three become FVG zones. The displacement requirement can be turned off if you prefer the classic "any gap" behavior.
🟩 Mitigation tracking
Each FVG zone stays active until price fills it. You choose how a fill is counted:
Touch — the gap is mitigated when price reaches its midpoint (the 50% level, where FVGs often react).
Close — the gap is mitigated only when price closes fully through it.
A midline marks the 50% level of every zone.
🎨 Customization
Bullish and bearish fill colors and opacity, midline display, and how far zones extend to the right (a configurable number of bars, so zones don't run infinitely across the chart, or fully infinite if you prefer). Separate toggles for bullish and bearish zones.
📈 How to use it
Treat an active bullish FVG below price as a potential demand zone and an active bearish FVG above price as potential supply. Watch for price returning to a zone — especially the 50% midline — as a possible reaction point, in the direction of the displacement that created it. Because only displacement gaps are shown, each zone represents a move with real momentum behind it rather than a random imbalance. Combine with your own structure and bias — the tool marks the zones, you make the decisions.
🔔 Alerts
Bullish FVG formed, bearish FVG formed, and mitigation alerts when a zone is filled.
⚙️ Settings
ATR length and minimum gap size, displacement requirement and strength, mitigation mode, zone extension length, colors, opacity, midline, and per-direction display toggles.
📌 Notes
FVGs are detected on confirmed bars only and do not repaint intrabar. Detection strictness depends on the gap-size and displacement settings — tune them to your instrument and timeframe. A fair value gap marks an area of potential interest, not a guaranteed reaction — always combine with your own analysis and risk management.
指标

ICT Sessions & Killzones [JOAT]ICT Sessions and Killzones
Maps the trading day into sessions and killzones, then shows where each session's liquidity rests and when the next session raids it.
What it is
Intraday price is organised by time: different sessions have different behaviour, and each one leaves liquidity that the next session hunts. This indicator frames when the market is active and where that liquidity sits, so the raids become obvious in advance. It is an original session-mapping tool built around the widely-taught concept of session killzones and inter-session liquidity.
How it works
• Session boxes — Asia, London, New York AM and New York PM are each boxed from their own high to their own low across their clock window. The box is that session's realised range, and its edges are the liquidity the following sessions tend to seek.
• Liquidity lines — every completed session leaves its high and low as thin levels extended to the right. Resting buy-side liquidity sits at the highs, sell-side at the lows, each labelled.
• Sweeps — when a later session trades through a prior session's high or low, that raid is tagged, marking where stops were likely taken.
• Classic reference levels — the previous day's high and low and the midnight open are drawn as the anchor points this style of analysis leans on.
• Bias read — a simple, transparent read from the midnight open and the most recent killzone sweep-and-reclaim prints an understated directional tag. This tool is about mapping context and timing; it deliberately shows direction rather than full trade management.
The dashboard
An adjustable session-clock panel shows which session is currently active, the countdown context of the day, the most recent liquidity event, the current bias, and the reference levels in play, so the state of the day is readable at a glance.
How to use it
• Set the session windows and timezone to your market.
• Watch for a session to sweep the prior session's high or low and then reclaim — that is the timing this map is built to highlight.
• Use it as a context and timing layer beneath your own entry method, or alongside a structure or entry tool.
Settings
Session windows and timezone, which sessions and reference levels to display, sweep marking, bias options, plus full visual and dashboard controls.
Originality and usefulness
The contribution is a single, coherent map of session ranges, inter-session liquidity, sweeps and classic reference levels, with a transparent bias read — assembled so a trader can see the day's liquidity structure and timing without cluttering the chart. Everything evaluates on confirmed bars and does not repaint.
Notes and limitations
• Session times depend on the timezone and the instrument's trading hours; set them correctly for your market.
• The bias read is intentionally simple context, not a standalone trade signal.
• This tool maps liquidity and timing; it does not place stops or targets for you.
• Educational and analytical tool, not financial advice.
— made with passion by officialjackofalltrades
指标

LTF FVGs (Lower Timeframe Fair Value Gaps) [D4A]LTF FVGs - (Lower Timeframe FVGs)
This script draws Fair Value Gaps on the chart that occured on lower timeframe, eg. 1m FVG is drawn on 5 min chart. The script uses request.security_lower_tf to get the lower timeframe data for this. There are several distinct features that make this script unique:
- the script automatically pulls FVGs from the most relevant lower timeframe (this can be manually changed at any time)
- the size of smallest FVGs can be customized based on ATR threshold
- Volume Imbalance can be included as part of FVG
This script can be useful for traders who want to be informed about any gaps created on lower timeframe without switching to lower timeframe chart.
What is FVG?
FVG or Fair Value Gap is a three-candle formation where the middle candle moves so aggressively creating displacement that it leaves a gap between the wick of the prior candle and the wick of the following candle. Price often returns to fill these gaps before continuing — making them useful as targets, entry zones, or invalidation levels.
A bullish forms when the low of the current candle is above the high of two candles ago, with a bullish middle candle. A bearish FVG is the inverse.
FVGs often occur due to sudden market movements triggered by news events, changes in market sentiment, or large orders that move the price significantly. The market tend to return to these unfilled spaces, providing potential opportunities for traders. These areas may serve as either support (bullish FVG) or resistance (bearish FVG). They may also be completely filled by the price and then act as Inversion FVGs but this is outside of scope of this script.
SETTINGS
- Force Manual TF - the user can manually select lower timeframe from which the script can pull FVGs. When this option is not active, the script is pre-programmed to select lower timeframe automatically for FVG discovery which is at least one level below the current timeframe, eg. 15S when on 1m, 1m when on 5m and so on.
- FVG Fill and border transparency - customize the look of FVG boxes
- FVG threshold - set the threshold to eliminate very small gaps
- Volume Imbalance included - include Volume Imbalance as part of FVG. Enabled by default.
- Show LTF Label & Transparency - enable the label which shows from which timeframe is the FVG from
- Extend to Current Bar or by X-bars - customize how the FVG boxes are presented on the chart
- Max FVGs Displayed - how many FVGs should be kept in memory by default
When FVG is fully filled by price, the script removes it from the memory.
Other relevant scripts that are complementary to this script: Candle Displacement
-----------------
Disclaimer
The content provided in this script is for educational and informational purposes only. It does not constitute financial advice, investment recommendations, or a solicitation to buy or sell any financial instruments. I will not accept liability for any loss or damage, including without limitation any loss of profit, which may arise directly or indirectly from the use of or reliance on such information.
All investments involve risk, and the past performance of a security, industry, sector, market, financial product, trading strategy, backtest, or individual's trading does not guarantee future results or returns. Investors are fully responsible for any investment decisions they make. Such decisions should be based solely on an evaluation of their financial circumstances, investment objectives, risk tolerance, and liquidity needs. 指标

指标

指标

ICT Liquidity Sweep & Structure [JOAT]ICT Liquidity Sweep and Structure
A smart-money workflow that maps resting liquidity, detects stop-hunt sweeps, and reads market structure shifts on one clean overlay.
What it is
This tool organises several well-known smart-money / ICT concepts into one coherent, non-repainting engine and — importantly — explains how the pieces reinforce each other rather than just stacking them. The premise: price is drawn to pools of resting orders (old highs and lows), often sweeps them to trigger stops, and then reveals its true intent through a structure break. The indicator makes each of those steps visible and gates its signals on their confluence.
How it works
• Liquidity levels — confirmed swing highs and lows (pivots) are drawn as buy-side liquidity (above old highs) and sell-side liquidity (below old lows) lines, each labelled with its price. These mark where stops are likely resting.
• Liquidity sweeps — a sweep is detected when price trades through one of these levels and then closes back on the original side, i.e. the level was raided but not accepted. This is the classic stop-hunt footprint and is the setup trigger.
• Market structure (BOS / CHoCH) — the engine tracks the live sequence of swings. A Break of Structure confirms trend continuation; a Change of Character is the first counter-break that flips the internal bias. Both are labelled on confirmed closes.
• Fair value gaps — three-bar imbalances left by displacement are drawn as zones and used as entry confluence, since price often rebalances them.
• Confluence gate — a Buy requires a bullish sequence (a sweep of sell-side liquidity followed by a bullish structure shift, optionally aligned with a fair-value gap); a Sell is the mirror. Buy and Sell are made mutually exclusive so both never print on the same bar, and a minimum-spacing control prevents clustering.
Trade levels
Each signal renders a red risk box from entry to stop and a green reward box from entry to the third target, with inner target dividers and right-edge labels for entry, stop and each take-profit at your R multiples. The stop is anchored to the structure that produced the signal, not to a fixed distance.
The dashboard
An adjustable panel summarises the current structural bias, the most recent liquidity event, the nearest untapped level, a conviction estimate, the active signal, and a live first-target-before-stop tally computed only on closed bars.
How to use it
• Suitable for any asset and timeframe; the concepts are scale-independent, though very low timeframes produce more noise.
• Use the liquidity lines to anticipate where price may be drawn next, and wait for a sweep-plus-structure confluence rather than acting on a raw level touch.
• Combine with a higher-timeframe bias for directional filtering.
Settings
Pivot strength, liquidity extension, sweep sensitivity, fair-value-gap minimum size, structure options, risk multiple and target R multiples, plus full colour and dashboard controls.
Originality and usefulness
Rather than plotting isolated ICT drawings, this engine chains them into a single logical sequence — liquidity, sweep, structure shift, imbalance — and only signals when that sequence agrees. The description of why those components belong together, and the confirmed-bar evaluation that keeps them honest, is what distinguishes it from a generic structure plotter.
Notes and limitations
• Structure and sweeps are defined algorithmically; discretionary traders may mark them slightly differently.
• Signals confirm on bar close, which trades a small amount of immediacy for stability and no repainting.
• The on-chart tally reflects only past bars on the current chart and is not a prediction.
• Educational and analytical tool, not financial advice.
— made with passion by officialjackofalltrades
指标
