CandelaCharts - Intraday Gaps📝 Overview
The CandelaCharts - Intraday Gaps indicator is a precise technical tool designed to automatically identify, visualize, and track market gaps between daily trading sessions. By highlighting the hidden zones between the Previous Day's Close (or High/Low) and Today's Open, this indicator provides traders with actionable support and resistance levels right from the market open.
Gaps are powerful price action phenomena. A "Gap Up" occurs when the market opens higher than the previous session's close, leaving a void that often acts as support. Conversely, a "Gap Down" occurs when the market opens lower, leaving a void that often acts as resistance. This indicator eliminates the need to manually draw these zones every day.
📦 Features
Dynamic Gap Detection: Automatically detects Gap Ups (Bullish) and Gap Downs (Bearish) at the start of every new daily session.
Customizable Gap Logic: Choose whether gaps are calculated based on the Previous Day's Close (standard) or the Previous Day's High/Low (traditional breakaway gaps).
Filter by Bias: Easily unclutter your chart by filtering the display to only show Bullish gaps, Bearish gaps, or Both.
Midline Tracking: Automatically calculates and plots the exact 50% mean (midline) of the gap zone, a highly respected level for intraday rejections. The midline can be easily toggled on or off.
Precision Price Labels: Displays dynamic price labels for the top, bottom, and midline of the active gap directly on the chart axis.
⚙️ Settings
Filter Bias: Select which gap types to display (Bullish, Bearish, or Both).
Gap Up / Gap Down Toggles: Enable or disable gap detection. If the tooltip checkbox is checked, the gap is calculated from the previous day's close. If unchecked, it calculates from the previous day's high/low.
Midline: Toggle the visibility of the gap's 50% mean level.
Enable Alerts: Toggle the ability for the indicator to fire programmatic alerts.
⚡️ Showcase
Bullish Gap
Bearish Gap
Both
1H Range
📒 Usage
Opening Range Strategies: Use the gap zones as immediate support and resistance for the first few hours of trading. Price will often test the edges of the gap before reversing or accelerating.
The "Gap Fill" Trade: If price enters the gap and gains momentum, it will often gravitate toward the opposite side of the gap (the "fill").
Midline Rejections: Watch price action closely as it approaches the gap's midline. The 50% level of a gap is a classic hidden barrier where intraday reversals frequently occur.
🚨 Alerts
This indicator includes built-in alert conditions ensuring you never miss a critical gap test. Once "Enable Alerts" is checked in the settings, you can configure PulseWire to notify you when:
Price reaches the boundary of an active gap.
Price fully fills the gap zone.
⚠️ Disclaimer
Trading involves significant risk, and many participants may incur losses. The content on this site is not intended as financial advice and should not be interpreted as such. Decisions to buy, sell, hold, or trade securities, commodities, or other financial instruments carry inherent risks and are best made with guidance from qualified financial professionals. Past performance is not indicative of future results.
Indicator

FVG Displacement & Fill Scoring [SlatinaTrades]📦 FVG Displacement & Fill Scoring — not every gap earns a box.
Most FVG tools draw every three-candle gap and call it a day. Chart full of boxes, no way to tell which one was actually worth anything. This one scores the displacement that created each gap, tracks its fill lifecycle bar by bar, then bins every completed zone into quartiles and reports whether the score actually separated the good gaps from the noise — on your symbol, your timeframe.
Bidirectional. Context only — no entries, no stops, no targets, no risk anywhere in the file.
THE MECHANICS
📐 Displacement score (0–100) — a weighted composite of gap size (in ATR), displacement-candle range (in ATR), and body/range ratio. Every weight and every normalization point ("gap ATR = full score at X") is a user input.
🔍 Measure-only probes — structure-break (did the displacement candle take out the most recent confirmed pivot?) and volume ratio (displacement volume vs. average) are computed, exported to alerts, and binned in the harness — kept out of the composite until they earn a place.
🚦 Regime, as a flag, not a gate — an HTF SMA direction read. It never blocks a zone from forming or scoring. It only tags the sample so the harness can slice regime-aligned vs. counter-regime.
🔁 Fill lifecycle — every zone moves FRESH → TAGGED → HALF → FULL, with an INVALIDATED branch. Box opacity fades with state so a glance tells you what's live and what's already resolved.
📊 Separation harness — completed zones get binned into quartiles by displacement score, and the table reports mean favorable excursion (ATR-at-tag units) per quartile against a baseline — with a minimum-sample trust flag so a 6-sample bin doesn't get read as gospel. Four slice filters (All / Regime-aligned / Counter-regime / Struct-broke / No-struct) let you test whether the score actually separates outcomes under a given condition.
🎨 Visuals — inline labels capped to the top-scoring live zones (anti-overlap nudge or cascade, optional leader lines), a 50% midline at the half-fill threshold, a callout arrow on the displacement candle, and a dashboard panel. Resolved zones stop drawing the moment they fill or invalidate — the harness still counts them, they just get out of the way.
🚫 Non-repainting — one request.security call, lookahead off. Detection, fill-state transitions, and alerts are all gated by barstate.isconfirmed. One honest exception: the regime read looks at the developing HTF bar in realtime, since it's a flag-only context tag, never a signal — worth knowing if you're auditing for repaint.
🔔 Alerts — FVG born, FVG fill change, FVG any event. Each carries a JSON payload (direction, score, state, structure flag, volume ratio, zone bounds, fill depth) for webhook consumption.
📐 Built for
Any symbol and timeframe where FVGs form — bidirectional, so demand and supply gaps are both first-class. Optional session filter narrows detection to a chosen window if you only want gaps born inside specific hours. Give the harness enough history to clear your minimum-sample threshold before trusting the quartile read.
⚙️ Note
Context tool, not a signal generator.
Built to pass one test: still useful after it's been on your chart a while. — SlatinaTrades Indicator

Previous Day Levels & Stats - High and Low, Wicks, Gaps👀OVERVIEW
Previous Day Levels & Stats (PDH/PDL) draws yesterday's open, high, low and close on today's chart and pairs them with a statistics table showing how this symbol has historically behaved at those levels and split both by whether yesterday closed red or green, and by where today opened.
Most previous-day indicators tell you where yesterday's high and low sit. This one also tells you what price has historically done at those levels including:
⚪ How often the previous day level broke
⚪ How often a break held
⚪ How often price traded into yesterday's wick zone and got rejected
⚪ How far a real break typically ran which is then calculated in today's dollars and added to the chart as an option.
Stats tables like this exist already, but this one splits every statistic two ways at once. First by whether yesterday closed red or green, and then by where today opened. A three-way open classification decides which numbers apply to today.
⚡ CONCEPT
Previous Day. The previous day is the most recently completed regular trading session. At the 4:00 pm close, the levels, candle, projection, and table all flip to the day that just finished and these new levels hold through post-market and the next morning's pre-market. This allows you to prepare for the next day ahead of time.
Conditioning on yesterday's color. The data for red days and green days are kept in two separate sets. The table header tells you which condition applies right now ("AFTER A RED DAY" / "AFTER A GREEN DAY"), and you only ever see the set that matters today.
Conditioning on today's open. Each day is classified three ways against yesterday's range: ⚪Opened inside the range
⚪Gapped above the previous day's high
⚪Gapped below the previous day's low
These are all different situations, a PDH break on an inside day and a gap that opened above PDH are not the same event, so they get separate data and are shown in separate rows.
When trading opens on each new day, the table reduces to only show the section that applies for today. The full table returns at the close so you can study both possibilities while preparing for the next day. If you prefer to always see both sections, a setting turns this off and the non-applicable section dims instead.
Inside-day rows. For days that opened inside yesterday's range.
🔴A: Wick rejected: The day opened inside yesterday's range and traded up into yesterday's upper wick, reaching at least the top of yesterday's body. It never touched yesterday's high, and it ultimately closed back below the top of the body (below the wick). If the day so much as touched yesterday's high, it counts in the break rows instead of in wick rejected row. The percentage is out of all days that opened inside yesterday's range after the same color day. This is showing when we open inside the previous day how often price traded both up into the wick and then got rejected. The PDL column is the mirror image using the lower wick and yesterday's low.
🔵B: Broke but failed: The day opened inside yesterday's range and traded up to or above yesterday's high then ultimately closed at or under yesterday's high. This includes closes just under the high, inside the wick, inside the body and through to the other side of the previous day. This is showing when we open inside the previous day how often price traded both up above the previous day and then got rejected. The PDL column is the mirror image using yesterday's low.
🟡C: Broke & held: The day opened inside yesterday's range and traded up to and above yesterday's high then ended up closing the day above it. This does not track anything that happens in between the break and the close, simply the final outcome. The PDL column is the mirror image using the low of yesterday.
🟢D: Typical run past level: On inside opening days where a break beyond PDH or PDL held, the indicator measures how far price historically ran beyond the level. A run measured in dollars from years ago is not comparable to one from last week. So each historical run is first measured against what a normal daily range was at that time, the median value of all those runs is taken, and that value is converted back to dollars using what a normal daily range is now. The result reads like this: when a break like this held, price typically ran about this far past the level. The median average is used instead of mean average so a single giant day cannot distort the number. In addition to the median distance of the run, a second, farther distance is also available: about 1 in 4 of those runs went beyond this level. This does not include days that closed back inside, these are all from days that broke and held. This also is the furthest distance of the day, not how far the final close of the day was.
Each row is a separate outcome from the same set of days. A day lands in at most one of the three rows per column. The rows do not add up to 100 because some inside days never reach some of the levels at all. The only row that is connected is the Typical run past level row which is based on days that broke and closed past the high or low.
Gap-day rows. For days that opened either above PDH or below PDL.
🔴A: Gap Fill: Opened beyond either PDH or PDL and price came back to at least touch the respective PDH or PDL during the day. This is specifically for the high or low of the previous day, not the previous days close. A day can fill the gap to the level and still close back beyond it, so this row overlaps the rows below it.
🔵B: Wick rejected: Opened beyond either PDH or PDL, traded back into only the wick of the previous day (did not trade back into the body of the candle) and then closed back beyond respective high or low. This is showing when we opened above or below previous day, how often we both traded into the respective high or low wick and back out beyond it. If price at any time during the day traded into the body of the previous candle, it no longer counts in this row.
🟡C: Body rejected: Opened beyond either PDH or PDL, traded back into the body of the previous day candle and then closed the day all the way back beyond respective high or low.
🟢D: Closed back inside: Opened beyond either PDH or PDL and by the end of the day closed back inside the previous day range (wick or body).
🟠E: Closed through: Opened beyond PDH or PDL and ultimately closed the day on the opposite side of the previous day candle than where it opened.
🟣F: Gap held: Opened above PDH and closed the day still above PDH, or opened below PDL and closed the day still below PDL, regardless of what happened in between. This row includes days that never pulled back and days that pulled back and recovered. So price could have never even touched the previous days candle, traded clear through to the other side and back again or anything in between, but closed the day on the same side as the open gap.
Wick rejected and Body rejected are subsets of Gap held. Gap held, Closed back inside, Closed through partition all gap days and sum to 100%.
⭐Doji days. If yesterday closed exactly where it opened, it has no color, so no condition applies. The indicator carries the most recent non-doji color forward for the table, and the header reads "AFTER A DOJI DAY*" on a neutral background so you know a substitution happened. Days that follow a doji are not counted into either condition's statistics, they're displayed under the carried color, never counted under it. So the previous day open, high, low and close are based on the actual previous day (the doji), but the stats are filtered through the most recent colored day before it. There are not enough doji days to have a realistic amount of data to work from. So the levels are used but the data is from the color of the bar before the doji day.
💥FEATURES
• The statistics table: conditioned as described above, with preset color themes (including one designed for light charts). Cell color intensity shows decisiveness, not direction. The further a percentage sits from a coin flip (50/50) in either direction, the stronger the cell glows. Sample sizes appear in hover tooltips on every row.
• Previous-day OHLC lines: with span, style, width, and label options.
• Previous-day candle: a large rendering of yesterday's candle beside today's action, with different placement options.
• Projection overlay: yesterday's candle projected across today's session, so you watch today on top of yesterday's shape.
• Typical-run levels: optional lines shown on the chart from inside days only.
❓HOW TO USE
1. Open an intraday chart of a stock before the market opens. The levels and/or projection already show the most recently completed day and the table shows the data based on what color the previous day was for both if today opens inside previous day and if today opens with a gap in either direction.
2. At 9:30 AM ET, the table will classify the day and the section matching today's open highlights. That shows context, what this symbol has historically done from this starting situation in the past.
3. Use the OHLC lines and wick zones as the map, and the table as the stats at each level. Hover any row for its exact definition and sample size.
4. On inside-open days, turn on the typical-run levels if you want the median-run distances drawn on the chart.
The table describes what this symbol has done, not what it will do. Treat every number as context, not a prediction.
❗ LIMITATIONS
• Session logic is built around US stocks (9:30–4:00 ET regular session). The indicator loads on other symbols, but the open classification, the flip at the close, and the projection presets assume US stock sessions; on 24-hour markets without distinct pre/post sessions the close-flip does not engage.
• Statistics are historical frequencies on your symbol's data. They are not predictions, carry no performance implication, and small samples (newer tickers, rare conditions) mean wider uncertainty so check the sample sizes in the tooltips.
• Days following a doji are excluded from both condition samples (see Concepts), so condition totals will be slightly smaller than the symbol's full day count.
• Absence of typical-run lines on a gap open is intentional, the typical run lines are based on a break out of the prior day. In an attempt to keep the indicator simple and user friendly, the lines are only applied for break outs of the range.
• During post-market, the projection covers the just-completed session behind price; the pre-market view is the designed preparation window.
• Different data feeds disagree by cents on some historical days, so counts can differ slightly between feeds.
• This indicator is for educational purposes and is not intended to be used alone for decision making. Make sure that you properly backtest with any data before using it.
📋NOTES
All statistics are computed from the symbol's complete daily history, so the numbers are the same on every chart timeframe and don't depend on how many bars your chart happens to have loaded. Everything is computed on confirmed bars only and states move forward-only so nothing is retroactively relabeled, and what you see live is what remains on the chart in history and in replay.
Indicator

Smart FVG by EonMetricsSMART FVG
What it does
A "Fair Value Gap" (FVG) is a small gap left behind in price when a move happens so fast that a whole price area gets skipped over — nobody actually traded there. It shows up as a gap between three candles in a row. These gaps often get "filled" later, meaning price comes back to trade through that skipped area before continuing on its way (or reversing). This indicator finds these gaps automatically and draws a box around each one.
It also tells you which gaps look more important: a gap is marked "STRONG" only when BOTH of these are true at the same time — the gap is unusually large (measured against recent average volatility) AND the candle that created it traded on unusually high volume. Both conditions have to be true together; a big gap on quiet volume, or high volume with only a small gap, does not count as Strong. This two-part check is stricter than simply flagging "any big gap," which is what most similar tools do.
How to actually use it (step by step)
Let gaps form naturally as price moves. Each one is drawn as a colored box — green/cyan-ish tones for bullish (demand) gaps, red/orange tones for bearish (supply) gaps.
Pay extra attention to boxes marked "STRONG" — these represent a real, forceful, high-conviction move, not just random noise.
When price comes back down (or up) into a gap box, that's a potential trade opportunity — buy near a bullish gap, sell near a bearish gap — especially reacting at the dotted 50% line drawn through the middle of the box.
Look at the small number in the corner of each box — it counts how many candles ago the gap formed. A small number (fresh gap) is generally considered more reliable than a large number (old, already-tested-many-times gap).
If you turn on the higher-timeframe overlay, you'll also see gaps from a bigger timeframe (marked "HTF") plotted directly on your current chart — these represent bigger, more significant levels than same-timeframe gaps.
Every setting explained
Visualization group
Bullish FVG / Bearish FVG — the fill color for ordinary gaps.
Strong Bullish FVG / Strong Bearish FVG — the fill color for gaps that pass the "Strong" test above.
Show 50% Line (EQ) — draws a line through the exact middle of every gap box; this is a common spot for price to react to.
EQ Line Color.
Width Mode — controls how far the box stretches to the right: "Dynamic" keeps growing the box to reach today's candle in real time, "Fixed" stops the box at a set number of candles wide, "Extended" stretches the box all the way to the right edge of your screen forever.
Fixed Width (bars) — how many candles wide the box is, only used when Width Mode is set to Fixed.
Min FVG Size (x ATR) — the smallest gap size the script will bother drawing, measured against recent average volatility. Raise this to ignore tiny, insignificant gaps; set to 0 to see every gap no matter how small.
Mitigation group (mitigation = "price has now traded back through the gap")
Delete Mitigated Zones — when turned on, a gap box disappears completely once price fills it. When off, it stops growing and stays on the chart as a faded historical marker.
Mitigation Level — decide what counts as "filled": either price reaching the halfway (50%) point of the gap, or price completely closing the entire gap.
Mitigation Confirmation — decide what counts as reaching that level: any wick poking into it ("Wicks"), or a full candle close past it ("Close" — stricter, fewer false triggers).
Imbalance Age group
Show Age Label — displays a small number (like "34b") showing how many candles ago the gap was created.
Fade Old Zones — when turned on, gap boxes slowly become more transparent as they age, so your eye is naturally drawn to the freshest ones.
Max Age for Full Fade (bars) — how many candles it takes for a gap to reach maximum fade/transparency.
Strong Imbalance group
Mark Strong Imbalances — master on/off switch for the whole Strong-gap detection described above.
Min Gap Size (x ATR) — how big the gap must be (relative to recent volatility) to count toward "Strong" — this is one of the two required conditions.
Min Volume (x SMA 20) — how much higher than the recent 20-candle average volume the gap-forming candle's volume must be — this is the second required condition. Both this and the size condition must be true at the same time.
Show 'STRONG' Tag — shows the word "STRONG" written inside qualifying gap boxes.
Labels group
Show Labels — master switch for all text written inside gap boxes (age number, STRONG tag, HTF tag). Turn this off to hide all text and keep only the colored boxes.
Label Text Color.
MTF FVG group (MTF = "multiple timeframes")
Show Higher Timeframe FVGs — turns on the overlay of gaps from a bigger timeframe, drawn directly on your current chart.
Higher Timeframe — which bigger timeframe to pull gaps from (should be higher than whatever timeframe you're currently viewing).
HTF Bullish FVG / HTF Bearish FVG — colors for these imported higher-timeframe gaps.
Show HTF Label — shows an "HTF" tag inside these imported gaps so you can tell them apart from same-timeframe ones. Indicator

Gap Closure Stats# Gap Closure Stats — Publication Description
---
## What This Indicator Does
**Gap Closure Stats** tracks the gap between each session's **4:15pm ET close** (the anchor price) and up to three configurable **opening prices** — by default the midnight open (00:00 ET), the London/European open (03:00 ET), and the RTH open (09:30 ET). For each of those levels it draws a coloured box on the chart spanning from the anchor price to the opening price, and records statistics on how often price subsequently fills that gap during the regular trading session.
Every percentage in the stats table is computed **live, from the history on your own chart**. There are no hard-coded numbers. The statistics describe exactly the instrument and timeframe you are looking at, and they update automatically as new sessions complete.
The indicator answers a core structural question about daily price behaviour:
- Given a gap of a certain size between yesterday's 4:15pm close and today's open, how often does price retrace back to that 4:15pm level (a full gap fill)?
- How often does price retrace at least a defined partial amount of the gap?
- Do these tendencies differ depending on whether the gap is up or down?
- Do they change when the gap is unusually large or small relative to recent history?
It is an analytical and contextual tool. It does not issue buy or sell signals.
---
## Core Concepts and Definitions
### The Anchor Price (4:15pm ET Close)
The reference price for each trading day is the **close of the 4:15pm ET bar** from the prior session. This is captured during a narrow one-minute anchor session (default 16:15–16:16 ET). The anchor represents where the market last traded before overnight activity begins, and it is the level that a "gap fill" requires price to return to.
### The Gap
A gap exists when the opening price at one of the three configurable levels differs from the anchor. If the opening price is **above** the anchor, the gap is **up** — price has gapped higher overnight and a fill means price would need to fall back to the anchor. If the opening price is **below** the anchor, the gap is **down** — price would need to rally back to fill it.
The **gap size** in points is the absolute difference between the anchor and the opening price.
### Gap Size Buckets (Quartiles vs. History)
Each day's gap size is classified into one of four buckets based on where it falls in the **historical distribution of all prior gaps** on your chart:
- **Q1 (0–25th percentile)** — the smallest gaps relative to history
- **Q2 (25–50th percentile)** — below-median gaps
- **Q3 (50–75th percentile)** — above-median gaps
- **Q4 (75–100th percentile)** — the largest gaps relative to history
This classification requires at least 4 prior sessions of data before it becomes meaningful. On very fresh charts, all gaps are assigned to Q2 until enough history accumulates. The bucket thresholds update as each new session completes.
### Full Gap Fill (Hit%)
A **full gap fill** (labelled **FULL%** in the table) is recorded when price trades at or through the anchor price at any point during the RTH session (09:30–16:00 ET). It does not matter whether price opens, then reverses immediately, or whether it fills the gap hours later — any intraday touch of the anchor counts.
### Partial Gap Fill (≥X%)
The **partial fill level** is user-configurable (default 50%). A partial fill is recorded when price retraces at least that percentage of the gap back toward the anchor from the opening price. For example, with a 50% setting: if the gap up is 10 points (open is 10 points above the 4:15pm close), a partial fill is recorded when price falls to within 5 points of the open (i.e. 5 points back toward the anchor). A 100% setting makes this equivalent to FULL% — a complete gap fill.
### The Three Gap Levels
The indicator captures three independent opening prices, each at a configurable time:
- **Level 1** — defaults to the **RTH open at 09:30 ET**. This is the most widely watched gap — the difference between the prior day's 4:15pm close and the next day's regular-session open.
- **Level 2** — defaults to the **03:00 ET open** (broadly the London/European futures open). This captures the gap that existed when European trading began.
- **Level 3** — defaults to the **midnight (00:00 ET) open**. This captures the initial overnight gap that formed at the start of the new calendar day.
Each level builds its own independent statistics, so you can compare how gap-fill behaviour differs across these three time windows.
### Level Quartile (LQ)
For the current session, the **level quartile** describes where the opening price of each level sits **within the gap box** — i.e. how far into the gap that level's open was relative to the full anchor-to-RTH-open range. LQ1 means the level opened very close to the RTH open (near the far edge of the gap), LQ4 means it opened very close to the anchor (near full-fill territory already).
---
## What You See on the Chart
### Gap Boxes
For each active level, a shaded box is drawn spanning from the **anchor price** to the **opening price** at that level's time. The box extends rightward through the session, stopping at 4:15pm ET. The box colour matches the level's configured colour (default: purple for Level 1, blue for Level 2, teal for Level 3). Boxes are shown only when there is a genuine gap — if the opening price equals the anchor, no box is drawn.
### Quartile Lines Inside Boxes
When enabled, three dashed/solid lines are drawn inside each gap box, dividing it into four equal price quartiles:
- **Q1 line (dashed)** — 25% of the way from the opening price toward the anchor
- **Q2 line (solid)** — the midpoint of the gap (50%)
- **Q3 line (dashed)** — 75% of the way toward the anchor
These help you gauge how far price has retraced into the gap at a glance, and they correspond to the Level Quartile (LQ) measure in the stats table.
### Opening Price Lines
A dotted line is drawn at each level's opening price for the session and extends rightward to 4:15pm, giving a persistent visual reference for where each gap began.
### Session History
The indicator keeps and displays the last N sessions (configurable, default 10). Older boxes and lines are automatically removed as new sessions are added, keeping the chart uncluttered.
---
## The Stats Table, Explained Column by Column
The stats table has one block of four rows per level. Each block breaks down the statistics for that level across the four gap-size quartile buckets.
### Row structure
Each row corresponds to one **gap size bucket** (Q1 through Q4). The row currently matching today's session is highlighted in grey.
### Columns
**LEVEL** — identifies which opening level the block belongs to (shown as the configured session string, e.g. `0930-0931`). The label is coloured to match the level's chart colour.
**GAP SIZE BUCKET (vs history)** — the quartile label for that row:
- `0–25%ile (smallest gaps)` — Q1
- `25–50%ile` — Q2
- `50–75%ile` — Q3
- `75–100%ile (largest gaps)` — Q4
**GAP UP — N** — the number of completed sessions where the gap was **up** (open above anchor) and fell in this size bucket.
**GAP UP — FULL%** — of those sessions, the percentage where price returned to the anchor at any point during RTH. This is the full gap fill rate for up-gaps of this size.
**GAP UP — ≥X%** — of those sessions, the percentage where price retraced at least the configured partial fill percentage back toward the anchor. At the default 50% setting, this is how often the market covered at least half the gap.
**GAP UP — AVG GAP** — the average gap size in points for up-gap sessions in this bucket.
**GAP DOWN — N / FULL% / ≥X% / AVG GAP** — the same four columns as above, but for sessions where the gap was **down** (open below anchor).
**CURRENT SESSION — GAP-Q / LVL-Q** — visible only on the row matching today's gap size bucket, and only when a level has fired today. Shows two numbers:
- **GQ** — the gap size quartile for today (GQ1 = smallest, GQ4 = largest)
- **LQ** — the level quartile, indicating where that level's open sits within today's overall gap box (LQ1 = close to the RTH open, LQ4 = close to the anchor)
---
## How To Configure the Indicator
### Anchor Settings
**Anchor Session (4:15pm)** — the one-minute session window used to capture the previous session's closing price. The default `1615-1616` captures the 4:15pm ET bar close. Only change this if your instrument's reference close is at a different time.
### Gap Times
These three groups configure the three independent opening levels. Each has the same three inputs:
**Level X Open Time** — a PulseWire session string defining the one-minute window at which the opening price is captured. The default sessions are:
- Level 1: `0930-0931` (RTH open)
- Level 2: `0300-0301` (European open)
- Level 3: `0000-0001` (Midnight ET)
You can change any of these to any time of day. Common alternatives include the 08:30 ET futures open (`0830-0831`) or the London open (`0800-0801`). The level fires once per calendar day at the first bar inside that window, and only if the anchor has already been set.
**Level X Color** — the colour used for that level's box, lines, and table label.
**Show Level X** — master toggle. When off, the level's boxes and lines are hidden and its rows are omitted from the stats table.
### Gap Fill Stat
**Partial Fill Level (%)** — controls what counts as a partial fill, from 1% to 100%. At 50% (default), the ≥X% column in the table tracks how often price retraced at least halfway back to the anchor. Set this to 100% to track only complete fills, or to a lower value such as 25% to track more modest retracements. The column header in the table updates to reflect your chosen value (e.g. `≥50.0%`).
### Visuals
**Show Gap Boxes (per level)** — toggles the shaded gap boxes on or off for all levels. The opening-price dotted lines are still drawn when this is off.
**Show Quartile Lines Inside Boxes** — toggles the three internal Q1/Q2/Q3 division lines inside each gap box.
**Keep Last N Sessions** — how many sessions of boxes and lines to retain on the chart. Higher values give more context but can clutter the chart. Default is 10.
### Stats Table
**Position** — one of nine positions on the chart for the stats table (top/middle/bottom × left/center/right). Default is `bottom_right`.
**Text Size** — `tiny`, `small`, `normal`, or `large`. Default is `small`. Use `tiny` on smaller screens or when all three levels are shown simultaneously.
---
## Practical Tips for Interpreting the Statistics
**Focus on N first.** A FULL% or ≥X% figure is only meaningful with an adequate sample size. Rows with small N values (especially Q4, which by definition can only contain 25% of all sessions) should be read cautiously. As a general guide, treat any figure based on fewer than 20–30 sessions as directionally interesting but not statistically reliable.
**Compare up vs. down gaps.** Many instruments show different fill rates for up-gaps versus down-gaps. A market that fills up-gaps 80% of the time but down-gaps only 50% of the time has a structural asymmetry worth knowing about.
**Use the size buckets to understand context.** The quartile split reveals whether gap-fill behaviour is consistent across all gap sizes or whether it changes materially. For example, small gaps (Q1) may fill at very high rates while large gaps (Q4) fill much less often — or vice versa. Today's highlighted row tells you which regime today's gap falls into.
**The partial fill column adds nuance.** Even when FULL% is modest, the ≥50% column may be high, suggesting price often makes a meaningful but incomplete move back toward the anchor. This can be useful context for targets and stops.
**The current session column (GAP-Q / LVL-Q)** tells you at a glance where today sits historically. GQ4 / LQ2 would mean today has a historically large gap, and Level 2 opened roughly in the middle of that gap — already halfway to a fill before the RTH session began.
**Compare levels against each other.** If Level 3 (midnight open) shows a higher fill rate than Level 1 (RTH open), it may indicate that much of the gap-filling happens during the overnight and pre-market session before RTH begins. If Level 1 shows a higher fill rate, the RTH session is where fills predominantly occur.
---
## Important Limitations and Considerations
1. **Levels must fire after midnight ET.** Because the indicator resets its session state once per calendar day in Eastern Time, a level's open time must fall on or after 00:00 ET for it to be captured correctly for that calendar day. If you configure a level earlier than midnight ET (which would be the prior afternoon), it will not associate correctly with the next day's anchor. The three defaults (00:00, 03:00, 09:30) all respect this constraint.
2. **The indicator requires an anchor from the prior session.** On the very first bar of a chart's history (or after a gap in data), there is no prior 4:15pm close available and no gap is measured for that day. This is normal behaviour and those sessions are simply skipped.
3. **Gap size quartile buckets need history to calibrate.** Until at least 4 prior gaps have been recorded, all sessions are assigned to Q2. The quartile thresholds update as history grows, so the bucket assignments for earlier sessions may shift over time as more data accumulates. This is by design — the buckets are always relative to all available history, not a fixed absolute threshold.
4. **All times are Eastern Time (ET).** The indicator uses the `America/New_York` timezone for all session windows. If your chart's timezone is set differently, the session windows still fire at the correct ET times — but the visual bar positions will correspond to your chart's local timezone.
5. **The stats table only shows levels that are enabled.** If you turn off Level 2, its rows are removed from the table and its data is no longer accumulated. Stats accumulate only for sessions where a level is enabled, so disabling and re-enabling a level mid-history will cause a gap in its data.
6. **Descriptive, not predictive.** The indicator reports what has happened on your chart's history. Past fill rates do not guarantee future behaviour. A 75% full-fill rate means the gap did not fill 25% of the time. These statistics provide context, not certainty, and should be used alongside your own analysis and risk management.
7. **Not financial advice.** This is an analytical and educational tool. It does not provide buy or sell signals and makes no claim about future price direction.
---
*Gap Closure Stats computes everything from the sessions on your own chart — no external data, no hard-coded numbers. The statistics are only as reliable as the history available on your chart.* Indicator

Gap Fill Probability for SPY SPX XSPGap Fill Probability Viewer - open gaps with an adaptive fill probability
Gap Fill Probability Viewer automatically finds price gaps on your chart and draws each one as a colored zone - no more drawing rectangles by hand. It then tells you how likely each open gap is to "fill," and exactly how far price has to travel to close it.
What it shows
Gap zones - every gap-up and gap-down, drawn as a box that extends to the current bar.
Fill probability (P) - an estimate of how likely the gap is to close, shown as a % and color-coded (green = likely, orange = uncertain, red = unlikely).
p-value - the flip side of P: the chance the gap stays open.
Distance to close - how far the current price is from fully closing the gap, in both points and % of the charted symbol.
Stats table - a clean summary for the gap closest to filling.
How the probability works
The estimate adapts to three things research associates with gap fills:
- Size - bigger gaps are harder to fill.
- Distance - the closer price is to the gap, the higher the odds.
- Recency - fresh gaps fill faster; old, stubborn gaps lose momentum.
Handy options
- Auto-hide, fade, or keep gaps once they fill.
- Filter out tiny gaps by % or ATR.
- Detect gaps on wicks or candle bodies.
- Fully tunable probability model and colors.
⚠️ The fill probability is a heuristic estimate for study and education — not a guarantee or financial advice. Calibrate the settings to your own market and timeframe. Indicator

Gap Fill TrackerGap Fill Tracker
The Gap Fill Tracker is an overlay indicator that automatically detects, tracks, and measures the fill rate of price gaps — defined as the difference between the previous candle's close and the current candle's open. It counts a gap as filled when price reaches the 50% midpoint of the gap range, and provides a live statistics panel including total gaps detected, fill rate percentage, open gaps, and the average time gaps take to fill expressed in human-readable time units adapted to the current chart timeframe.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
WHAT IS A GAP?
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
A gap occurs when a candle opens at a different price than the previous candle's close, leaving an unfilled zone on the chart. Bullish gaps open above the prior close. Bearish gaps open below the prior close. Gaps can occur on any timeframe and any instrument, and they represent price imbalances — zones where no trading occurred, which the market tends to revisit.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
FILL CONDITION
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
A gap is considered filled when price touches the 50% midpoint of the gap range — not necessarily the full extent. This is a more conservative and statistically accurate measure than requiring a full gap fill, as it captures the point at which the market has revisited the center of the imbalance. The midpoint is marked on the chart as a dashed line through the middle of each open gap zone.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
COMPONENTS
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
1. Gap Zones (boxes)
Each detected gap is visualized as a colored rectangle spanning from the gap's lower boundary to its upper boundary, starting at the bar where the gap occurred and extending to the right. Bullish gaps are displayed in teal. Bearish gaps are displayed in pink. Zones disappear silently when the fill condition is met — no confirmation markers are left on the chart, keeping it clean.
2. Midpoint Line (dashed)
A dashed horizontal line runs through the center of each open gap zone, marking the exact price level that constitutes a fill. This is the target level the indicator monitors.
3. Gap Labels
Small labels mark the bar where each gap was detected, indicating direction (GAP ↑ for bullish, GAP ↓ for bearish).
4. Statistics Table (top right)
A compact panel displays four key metrics updated in real time:
- Detected: total number of gaps found in the chart's history
- Filled: number of gaps that reached the 50% midpoint, with fill rate percentage
- Open: number of gaps still unfilled, with open rate percentage
- Avg fill time: average time gaps take to reach the 50% midpoint, expressed automatically in minutes, hours, days, or weeks depending on the chart timeframe
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
SETTINGS
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
• Minimum gap (%): The minimum size of a gap expressed as a percentage of the prior close, to filter out micro-gaps caused by spread or rounding. Default is 0.5%. Lower values detect more gaps; higher values focus only on significant gaps.
• Max open gaps visible: Controls how many of the most recent unfilled gaps are displayed on the chart. Older open gaps continue to count in the statistics but are hidden visually to keep the chart readable. Default is 10.
• Show open zones: Toggle the visual display of open gap zones on or off. Statistics continue to update regardless.
• Bull/Bear gap colors: Customize the colors for bullish and bearish gap zones independently.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
HOW TO INTERPRET IT
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
FILL RATE
The fill rate shown in the statistics panel tells you what percentage of historical gaps on this instrument and timeframe have been filled. A fill rate above 95% confirms that gap fills are a near-certain statistical event for this market. A lower fill rate suggests that the instrument or timeframe has structural tendencies that prevent consistent gap fills — for example, strongly trending markets on higher timeframes.
OPEN GAPS
Each visible zone on the chart represents an active price target — a level where the market has a strong statistical tendency to return. The more open gaps accumulated above or below current price, the stronger the magnetic pull toward those levels.
MIDPOINT LINE
The dashed line through each zone is the exact fill target. Price touching this level — even with a wick — constitutes a fill and removes the zone from the chart.
AVERAGE FILL TIME
This is the most operationally useful metric. It tells you how long gaps on this instrument and timeframe typically take to fill, expressed in real time units. If the average fill time on a 4-hour chart is 1.1 weeks, that means most gaps are filled within approximately 1 to 2 weeks of forming. This information can be used to time entries — rather than entering immediately after a gap forms, waiting until price approaches the average fill window increases the probability of catching the fill move at the right moment.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
HOW TO USE IT
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
1. CHECK THE FILL RATE FIRST
Load the indicator on your instrument and timeframe of choice. Check the fill rate in the statistics panel. If it is above 95%, gap fills are a reliable statistical edge on that market. If it is significantly lower, adjust the minimum gap size or consider a different timeframe.
2. IDENTIFY OPEN GAPS AS PRICE TARGETS
The visible zones on the chart are active price targets. Open gaps above current price are upside targets. Open gaps below current price are downside targets. The midpoint line is the specific price level to watch.
3. USE THE AVERAGE FILL TIME FOR ENTRY TIMING
Note the average fill time displayed in the table. After a gap forms, use this as a reference for when to start looking for an entry toward the fill. If the average fill time is 1 week on a daily chart, the highest probability entry window is typically in the days surrounding that average, not immediately after the gap opens.
4. MANAGE THE TRADE
The target is the midpoint of the gap. Once price touches the midpoint, the zone disappears automatically. Position sizing, stop placement, and exit management are left to the trader's discretion and should be based on their own risk framework.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
NOTES
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
• Works on any instrument and any timeframe. Fill rates and average fill times vary by market and timeframe — always verify the statistics panel before trading.
• The average fill time automatically adapts to the chart's timeframe: it displays in minutes on intraday charts, hours on hourly charts, days on daily charts, and weeks on weekly charts.
• Filled gaps disappear silently without leaving markers on the chart, ensuring a clean visual at all times.
• The statistics counter covers the full available chart history, not just the visible bars on screen.
• For instruments that trade 24/5 (forex) or 24/7 (crypto), the average fill time reflects calendar time based on bar count times timeframe minutes. For instruments with trading sessions (equities, futures), the actual calendar time will be longer since no bars are generated outside market hours. Indicator

Gap AnalysisDescription:
This indicator automates the tracking of session gaps, providing real-time data on gap fills, historical context, and exhaustion risk. It is built specifically for day traders and swing traders who use gap-fill strategies during Regular Trading Hours (RTH).
Core Functionality:
The script captures the closing price (settle) of the previous RTH session and measures it against the open of the current RTH session. If a gap exceeds your minimum point threshold, it maps the gap zone on your chart and tracks price action against the settle line until the gap is filled.
Key Features:
Dynamic Fill Tracking: Monitors unfilled gaps bar-by-bar. It calculates the exact percentage of the gap filled and displays how many bars it took to reach completion.
Exhaustion Risk Detection: Tracks consecutive gaps in the same direction. If the market gaps in the same direction three or more times consecutively, the script flags an "Elevated Exhaustion" risk on the display panel.
Clean Chart Management: Automatically shades the gap zone and draws the target settle line. You can toggle a setting to instantly hide gaps once they are 100% filled, preventing chart clutter.
Heads-Up Display Table: An on-chart dashboard provides immediate access to the current session's gap direction, fill status, specific target price, and elapsed time.
Historical Gap Review: Displays up to 20 historical session gaps, allowing you to backtest how often and how quickly an asset fills its gaps.
Integrated Alerts: Supports automated alerts for two conditions: when a new qualifying gap is formed at the session open, and the moment a gap is entirely filled.
Configuration & Setup:
RTH Session: Define your specific trading hours (default is 0830-1500 America/Chicago). The indicator requires this to accurately lock in the previous day's settle.
Minimum Gap Size: Filter out market noise by setting a minimum point threshold. Gaps smaller than this value will be ignored.
Visual Customization: Full control over bull/bear zone colors, line styles, text sizes, and table positioning.
Usage Notes:
This script relies on timeframe data to establish session boundaries. It is optimal for intraday timeframes (e.g., 1m, 5m, 15m, 1H). Indicator

Indicator

Daily Deviation Range and Gap Stats - NikaQuant
## What It Does
This indicator projects six pairs of deviation levels above and below a defined session range, draws a daily gap line at a configurable time, and shows a live stats panel with historical hit rates, mean-revert rates, gap fill statistics, and trade-decision suggestions.
The range itself is captured as the high and low of 5-minute closes during a configurable New York time window (default 19:30 to 20:30 NY). Once the window closes, the range is locked and six fibonacci-style deviation levels at multiples 1, 2.5, 5, 8, 13, and 19 of the range size are projected forward both upward and downward across the next trading day until a configurable cutoff (default 16:00 NY next day).
A separate gap line is captured at a configurable time (default 15:55 NY) using the close of that 5-minute bar. The gap line extends visually across the overnight session and is monitored for fill during the next session's open-to-close window (default 09:30 to 16:00 NY). When price crosses the gap level inside that window, the line is locked at the fill bar.
A live statistics table aggregates historical performance per day for the lookback period, showing per-level touch frequencies, mean-revert frequencies, close-inside-level frequencies, and gap fill statistics, then turns these into actionable trade-setup suggestions.
## Why It Is Original
Unlike a standard pivots or fibonacci-retracement indicator, this script is not a static price-level projection. It is a session-range deviation framework combined with an integrated gap tracker and a per-level historical statistics engine.
This script combines three distinct functional modules because each one addresses a different question about session structure:
(1) The range-multiple deviation levels answer "how far has price moved from session balance, in units of session range?" — analogous to standard-deviation channels but anchored to a user-defined range window rather than a rolling average.
(2) The daily gap line answers "is there an unfilled overnight reference price and what is the historical edge of trading toward it?" — different from standard gap detectors that only flag open-to-close gaps because it captures a specific price (the close at gap-time) and tracks fill behaviour inside a defined session window.
(3) The historical statistics engine answers "given today's structure, what has actually happened on past days when price reached the same levels or when a gap was open at this distance?" — turning the visual levels into probability-weighted decision inputs rather than just lines on a chart.
Together, the three modules produce something none of them would alone: a session-relative deviation map with quantified historical edge per level, plus a context-aware trade decision suggestion that combines current position, time remaining in the session, and historical revert behaviour.
The script also enforces a strict 5-minute internal data resolution regardless of chart timeframe (1-minute through 1-hour), so the levels and gap stay consistent whether the user is on a 5m chart or a 1H chart. This is accomplished via a dual-path data fetch that adapts to the chart's timeframe — pulling individual 5-minute samples on lower-timeframe charts and aggregating 5-minute closes per chart bar on higher-timeframe charts.
## How It Works
On each chart bar the script collects the 5-minute bars that have closed since the last update. For each 5-minute bar it checks whether the bar falls inside the range window, the extension window, the gap trigger time, or the gap fill window, and updates the relevant state.
When a 5-minute bar marks the end of the range window, the script locks in the highest and lowest 5-minute closes of the window, computes the range size and midline, and draws the deviation levels at multiples of the range above the high and below the low, projected forward to the configured extension-end time. A range-outline box is drawn over the range window for visual reference.
When a 5-minute bar matches the gap-trigger time, the script captures that bar's close as the gap price and starts drawing a horizontal line. On every subsequent 5-minute bar inside the next session's gap-fill window, the script checks whether the bar's high-low straddles the gap price. If so, the line is locked and the gap is recorded as filled.
Every time a deviation level is touched intraday — the 5-minute high reaches an upper level or the 5-minute low reaches a lower level — the script records that touch for the day. If price subsequently revisits the midline before the extension window ends, all touched levels for that day are also recorded as having reverted. When the extension window ends, the day's data is appended to a rolling history.
Each day's gap statistics (occurred, filled, minutes from fill-window open to fill) are appended at the next gap trigger, which ensures the gap is paired with its complete fill outcome before the next gap overwrites the live tracking state.
The stats table reads the history and renders per-level touch frequency, per-level revert frequency, close-inside-level frequency, gap fill rate, gap fill-time distribution (average, median, percent filled within 1 hour, percent filled within 4 hours), daily directional bias, range expansion vs contraction regime, day-type classification, time-elapsed in the active extension, and a context-aware trade-setup suggestion with stop and target prices for active fade setups.
The setup engine includes a time-remaining guard: when fewer minutes remain in the extension than the configured threshold, time-sensitive setups (fades and gap targets) are suppressed and the panel shows a "late session" status instead.
## How To Use It
- A range outline box appears over the range window once the window closes — this is the visual reference for the session range.
- Six pairs of lines extend forward from range-end to extension-end at multiples 1, 2.5, 5, 8, 13, and 19 of the range above and below the range high and low.
- Numerical labels at each level show the multiple — labels can be placed at the left or right end of the line via the "Level Label Side" setting.
- The gap line appears horizontally at the gap price after the configured gap time and extends until either price crosses through it during the fill window or the next day's gap is set.
- The live stats panel shows current price location vs midline (in range-multiples), today's range vs historical average, the current zone between two adjacent levels, the furthest level tagged today, per-level historical touch and revert rates, gap fill statistics, and a live setup suggestion.
Recommended timeframes: 1-minute through 1-hour. The script always uses 5-minute data internally, so behavior is consistent across chart timeframes.
Recommended markets: 24-hour markets such as index futures (ES, NQ), major FX pairs, and crypto majors, where overnight session structure matters and the configured NY-time windows align with meaningful session boundaries.
Avoid using when: less than 30 sessions of chart history are loaded (statistics will be unreliable) or on instruments that close before the configured range window (the range simply will not populate).
## Settings
- Max Deviation Days (default 11): how many past days to keep deviation levels visible. Older days are removed automatically.
- Show Deviation Levels: toggle the level lines.
- Normalize Range Size: when on, the range box and level distances use the average range over N past days instead of today's actual range.
- Normalize over N Days (default 500): number of past days to average for the normalization.
- Range Start and End Hour and Minute (default 19:30 to 20:30 NY): the window during which the range is captured.
- Extension Start and End Hour and Minute (default 20:30 to 16:00 NY next day): the window during which the deviation levels are drawn forward.
- Show Gap Level: toggle the gap line.
- Max Gap Days (default 11): number of past gap lines to keep visible.
- Gap Time Hour and Minute (default 15:55 NY): the 5-minute bar whose close becomes the gap price.
- Gap Close Start and End Hour and Minute (default 09:30 to 16:00 NY next day): the window during which gap fill is detected.
- Show Range Outline (default on): toggle the range outline box.
- Range Outline Color, Width, Style, Fill Transparency: visual settings for the box.
- Gap Width, Style, Color: visual settings for the gap line.
- Levels Width, Style: visual settings for the deviation lines.
- Level 1 through Level 6 (defaults 1, 2.5, 5, 8, 13, 19): numeric multiples of the range used for each level pair.
- Level 1 to 6 Color: per-level color.
- Level Label Side (default Left): place the level number labels at the left or right end of each line.
- Font Size (default 9): label font size.
- Show Stats Table (default on): toggle the live statistics panel.
- Stats Lookback in Days (default 5000): number of past completed days to include in historical statistics. Higher means more reliable percentages but requires more chart history loaded.
- Min Revert Percent for Fade Setup (default 55): a FADE setup is suggested only if the historical mean-revert rate at the touched level is at or above this threshold and the level was tagged at least 3 times in the lookback.
- Min Remaining Minutes for Setup (default 60): suppresses time-sensitive setups when fewer than this many minutes remain in the extension. Set to 0 to disable.
- Table Position (default Top Right): where the stats table is anchored.
- Table Size (default Normal): text size inside the stats table.
- Bull / Setup Color, Bear / Warning Color, Table Background, Table Text, Table Border: color settings for the panel.
## Alerts
Five alert conditions are exposed and can be selected from PulseWire's "Add Alert" dialog:
- Range Locked: fires when the range window closes and the levels are projected.
- Level Tagged: fires the first time price reaches any deviation level on either side.
- Gap Set: fires when the daily gap level is captured.
- Gap Filled: fires when price crosses through an open gap during the fill window.
- Session End: fires when the extension window ends and stats are finalized.
## Notes
The script does not repaint after a 5-minute bar closes. The range, deviation levels, and gap line are drawn from confirmed data only. The live distance-from-midline and live setup suggestions update intrabar based on current price.
Future bar-index positions for projected lines and labels are estimated based on the chart timeframe's bar duration. On charts with weekend gaps the projected end positions may visually diverge from the configured extension-end time by a small amount, but the underlying logical end time is correct.
Indicator

Gap Analyzer[KG] Overview:
Gap Analyzer is a statistical research tool that scans every bar on your chart, identifies significant gap-down and gap-up events beyond a user-defined threshold, and summarizes what historically happens inside those gap bars — from open to high, open to low, and open to close.
What is a Gap?
A gap occurs when a bar's open is meaningfully higher or lower than the prior bar's close, leaving an empty zone on the chart with no traded price. This indicator flags:
Gap Down — when (Open − Prior Close) / Prior Close × 100 is at or below your threshold (default: −1%)
Gap Up — when the same calculation is at or above your threshold (default: +1%)
Visual Markers on the Chart:
Every qualifying gap is marked directly on the price pane with three layers:
Gap Zone Box — a semi-transparent dashed box fills the exact price area between the prior close and the current open, making the gap size immediately visible
Bar Highlight — a subtle background tint on the gap bar itself (red for gap down, teal for gap up)
Arrow + Label — a triangle arrow above/below the bar paired with the exact gap percentage printed inside the gap zone box (e.g. −6.43% or +5.91%)
Statistical Tables:
Two summary tables are rendered in the price pane — one for gap downs (bottom right by default) and one for gap ups (opposite corner). Each table contains 10 columns across 3 rows:
Gap Down Table:
Column Meaning Coun Total number of gap-down bars detectedΦGapAverage gap size across all qualifying bars O>C %% of gap-down bars that closed bearish (continuation) ΦO→HAverage % move from Open to High on continuation barsΦO→LAverage % move from Open to Low on continuation bars ΦO→CAverage % move from Open to Close on continuation bars O C)
All percentage values are colour-coded — teal for positive, red for negative — for instant readability.
The Φ Notation-
The symbol Φ (Phi) denotes an average (mean) across all qualifying bars in that category. So ΦO→H means "the average percentage move from the Open to the High across all gap bars in this group" — a measure of how much intraday upside was available on average after the gap open.
Inputs:
Input Default Description Gap-Down Threshold−5%Minimum gap size to qualify as a gap down Gap-Up Threshold+5%Minimum gap size to qualify as a gap up Table Position Bottom Right Where to anchor the gap-down table (gap-up table auto-mirrors) Show Gap % Label On Toggles the arrow and % label on each gap bar
Use Cases:
Intraday traders — know statistically how far price tends to travel from open toward the high or low after a gap, helping size entries and targets
Swing traders — quickly assess whether gaps on your instrument tend to fill (bounce) or continue, and by how much on average
Back testing context — apply to any timeframe and ticker to build a historical gap behavior profile before trading a live gap event
Notes:
Works on any ticker and any timeframe
All statistics are computed from the full visible history loaded on the chart; extending your chart history will give more robust sample sizes
Past statistical behavior does not guarantee future results — use as context, not as a signal in isolation Indicator

ICT/SMC Sessions + SMT DivergencePro ICT/SMC Structural Suite: Sessions, SMT Divergence & RTH Gaps
Overview
The ICT/SMC Structural Suite is a highly optimized, "pure structure" indicator designed for traders utilizing Inner Circle Trader (ICT) and Smart Money Concepts (SMC). Unlike traditional indicators that rely on lagging oscillators or moving averages, this script focuses entirely on Time and Price Geometry.
It provides an all-in-one visual overlay for institutional trading sessions, Opening Prices, Fair Value Gaps (FVGs), real-time SMT Divergences, and a highly advanced Regular Trading Hours (RTH) Gap engine. It is engineered to be lightweight, incredibly fast, and meticulously anchored to "America/New_York" time to natively handle Daylight Saving Time (DST) shifts without user intervention.
Core Features & Technical Breakdown
1. Asset-Aware RTH Gap Engine
One of the most complex challenges in charting is accurately mapping the daily RTH gap on continuous Extended Trading Hours (ETH) charts, especially over the weekend.
The Logic: This script uses a custom state-management system to bypass the Sunday overnight session on Futures. It isolates the true Regular Trading Hours (session.regular), explicitly locking the Friday close and drawing a dynamic gap box to the Monday 09:30 AM open.
Asset-Aware: The engine dynamically reads syminfo.type. If you are trading Futures (e.g., ES/NQ), it tracks the close until 16:15 EST. If you switch to Equities (e.g., AAPL/NVDA), it automatically snaps back to 16:00 EST, preventing after-hours earnings volatility from breaking your gap levels.
Quartiles: Automatically calculates and plots the 25%, 50% (Consequent Encroachment), and 75% levels inside the gap.
2. Real-Time Multi-SMT Divergence
Traditional divergence indicators wait for a candle to close before signaling. This script utilizes a custom real-time evaluation engine.
The Logic: The script establishes historical swing points using a 5-bar pivot lookback (ta.pivothigh / ta.pivotlow). It then compares your active, live tick against those historical pivots. If the current ticker sweeps a previous high/low, but your correlated assets fail to do so, a real-time label flashes on the chart.
Customization: Supports up to 5 concurrent assets. Includes a built-in VIX tracker (auto-inversed) and 4 customizable tickers (e.g., NQ, YM, DXY) with toggleable inversion logic.
3. Institutional Time Sessions
Visualizes key accumulation and distribution zones via clean, customizable background boxes.
Tracks Equity Pre-Market (EPM), London, Asia, and CBDR (Central Bank Dealers Range).
DST Proof: All sessions are mathematically forced to America/New_York time in the background, meaning your 09:30 AM open and macro times will never drift when Daylight Saving Time begins or ends.
4. 1st AM FVG Detector
Automatically detects and highlights the very first Fair Value Gap (FVG) that forms exclusively during the opening volatility window (09:31 AM – 10:30 AM EST). This box is extended forward in time as a high-probability draw on liquidity or retracement POI for the remainder of the session.
5. ICT Macros & Opening Prices
Macros: Highlights the 14 standard ICT Macro windows (e.g., 09:50-10:10, 10:50-11:10) with non-intrusive, bottom-anchored X-axis labels to keep your price action completely uncluttered. Includes an optional End-of-Day (15:15) macro toggle.
True Daily Opens: Plots the Midnight (00:00) Open, NY (08:30) Open, and Equity (09:30) Open as extended horizontal rays.
6. Higher Timeframe (HTF) Liquidity Levels
Automatically pulls and plots the Previous Day High/Low (PDH/PDL) and Previous Week High/Low (PWH/PWL) without requiring you to change timeframes.
How to Use This Script
This indicator is not a "buy/sell" signal generator; it is a structural mapping tool designed to give you contextual awareness of institutional order flow.
Trading the RTH Gap: The RTH gap box acts as a powerful magnetic zone. Traders can look for price to rebalance into the gap, using the internal 50% line (Consequent Encroachment) as a target or a bounce level.
Validating Reversals with SMT: When price pushes into a Higher Timeframe Liquidity Level (like PDH or PWL), look for an SMT Divergence label to appear. If ES sweeps the high but NQ fails to make a higher high, the divergence adds high-probability confluence to a reversal setup.
Opening Price Lenses: Use the Midnight and 08:30 Opens as your daily bias gauge. If price is above the Midnight Open, the daily profile is expansive (bullish); look for manipulation moves below the open to accumulate longs (Judas Swing).
Under the Hood (For Pine Geeks)
This script was heavily refactored for enterprise-grade execution speed. Repetitive drawing logic has been extracted into single-pass functions, state arrays are trimmed using optimized while loops, and request.security calls are fully gated by boolean toggles to prevent API overhead when custom tickers are disabled. Indicator

Indicator

Gap DetectorGap Detector — Multi-Timeframe Price Gap Scanner
Automatically detects and visualizes all price gaps across any timeframe — Daily, Weekly, Monthly, or Intraday.
📊 What It Does
This indicator identifies true price gaps where the current candle opens completely above (gap up) or below (gap down) the previous candle's range, with no price overlap between them.
Gap Up (Bullish): Current candle's low > Previous candle's high
Gap Down (Bearish): Current candle's high < Previous candle's low
✨ Key Features
✅ Auto-Detects Chart Timeframe — Works on any timeframe without manual selection (1min, 5min, 1H, 4H, Daily, Weekly, Monthly)
✅ Visual Gap Boxes — Green boxes for gap ups, red boxes for gap downs, drawn exactly across the gap zone
✅ Gap Size Labels — Shows gap percentage on each box for quick assessment
✅ Customizable Filters — Set minimum and maximum gap size % to filter noise
✅ Summary Statistics Table — Live count of bull gaps, bear gaps, and total gaps detected
✅ Pine Screener Compatible — Built-in signals for bulk scanning stocks with gaps
✅ Clean & Lightweight — No repainting, no lag, works on all markets (stocks, forex, crypto, indices)
🎯 Use Cases
Day/Swing Trading: Identify gap fill opportunities on intraday and daily charts
Earnings Plays: Track post-earnings gaps on daily/weekly timeframes
Breakout Confirmation: Gaps often signal strong momentum or trend continuation
Support/Resistance Zones: Unfilled gaps act as magnets for price action
Multi-Timeframe Analysis: Scan 4H gaps, daily gaps, or weekly gaps depending on your strategy
🛠️ Settings
Visibility Controls:
Toggle bull gaps, bear gaps, labels, and summary table on/off independently
Filter Settings:
Min Gap Size (%) — Ignore gaps smaller than this threshold (default 0.1%)
Max Gap Size (%) — Ignore abnormally large gaps like circuit breaker moves (default 5%)
Style Customization:
Gap box colors, border colors, and table position (Top Right, Top Left, Bottom Right, Bottom Left)
📈 How to Use with Pine Screener (PulseWire Pro+)
Add indicator to any chart and set your desired timeframe (e.g., 4H for intraday gaps)
Open Pine Screener (bottom toolbar)
Select Gap Detector indicator
Choose Bull Gap Signal or Bear Gap Signal
Set condition: Above → 0
Click Scan to find all stocks with gaps on current candle
Screener Outputs:
Bull Gap Signal = 1 → Gap up formed on current candle
Bear Gap Signal = 1 → Gap down formed on current candle
Signal = 0 → No gap on current candle
📌 Notes
Gaps are detected based on previous candle close to current candle open — not wicks
Works on all markets and instruments where gaps occur (stocks, forex, crypto, futures, indices)
Signal plots appear in a separate pane below the chart for clean visualization
Gap count resets when you reload the chart or change timeframes
💡 Pro Tips
4H Timeframe: Great for intraday gap trading on volatile stocks
Daily Timeframe: Classic overnight gaps — ideal for gap fill strategies
Weekly/Monthly Timeframe: Macro trend analysis and major support/resistance zones
Combine with volume or momentum indicators for higher-probability setups
Created for traders who need fast, reliable gap detection without manual scanning. Indicator

Indicator

Indicator

Session Gap Fill [LuxAlgo]The Session Gap Fill tool detects and highlights filled and unfilled price gaps between regular sessions. It features a dashboard with key statistics about the detected gaps.
The tool is highly customizable, allowing users to filter by different types of gaps and customize how they are displayed on the chart.
🔶 USAGE
By default, the tool detects all price gaps between sessions. A price gap is defined as a difference between the opening price of one session and the closing price of the previous session. In this case, the tool uses the opening price of the first bar of the session against the closing price of the previous bar.
A bullish gap is detected when the session open price is higher than the last close, and a bearish gap is detected when the session open price is lower than the last close.
Gaps represent a change in market sentiment, a difference in what market participants think between the close of one trading session and the open of the next.
What is useful to traders is not the gap itself, but how the market reacts to it.
Unfilled gaps occur when prices do not return to the previous session's closing price.
Filled gaps occur when prices come back to the previous session's close price.
By analyzing how markets react to gaps, traders can understand market sentiment, whether different prices are accepted or rejected, and take advantage of this information to position themselves in favor of bullish or bearish market sentiment.
Next, we will cover the Gap Type Filter and Statistics Dashboard.
🔹 Gap Type Filter
Traders can choose from three options: display all gaps, display only overlapping gaps, or display only non-overlapping gaps. All gaps are displayed by default.
An overlapping gap is defined when the first bar of the session has any price in common with the previous bar. No overlapping gap is defined when the two bars do not share any price levels.
As we will see in the next section, there are clear differences in market behavior around these types of gaps.
🔹 Statistics Dashboard
The Statistics Dashboard displays key metrics that help traders understand market behavior around each type of gap.
Gaps: The percentage of bullish and bearish gaps.
Filled: The percentage of filled bullish and bearish gaps.
Reversed: The percentage of filled gaps that move in favor of the gap
Bars Avg.: The average number of bars for a gap to be filled.
Now, let's analyze the chart on the left of the image to understand those stats. These are the stats for all gaps, both overlapping and non-overlapping.
Of the total, bullish gaps represent 55%, and bearish ones represent 44%. The gap bias is pretty balanced in this market.
The second statistic, Filled, shows that 63% of gaps are filled, both bullish and bearish. Therefore, there is a higher probability that a gap will be filled than not.
The third statistic is reversed. This is the percentage of filled gaps where prices move in favor of the gap. This applies to filled bullish gaps when the close of the session is above the open, and to filled bearish gaps when the close of the session is below the open. In other words, first there is a gap, then it fills, and finally it reverses. As we can see in the chart, this only happens 35% of the time for bullish gaps and 29% of the time for bearish gaps.
The last statistic is Bars Avg., which is the average number of bars for a gap to be filled. On average, it takes between one and two bars for both bullish and bearish gaps. On average, gaps fill quickly.
As we can see on the chart, selecting different types of gaps yields different statistics and market behavior. For example, overlapping gaps have a greater than 90% chance of being filled, whereas non-overlapping gaps have a less than 40% chance.
🔶 SETTINGS
Gap Type: Select the type of gap to display.
🔹 Dashboard
Dashboard: Enable or disable the dashboard.
Position: Select the location of the dashboard.
Size: Select the dashboard size.
🔹 Style
Filled Bullish Gap: Enable or disable this gap and choose the color.
Filled Bearish Gap: Enable or disable this gap and choose the color.
Unfilled Gap: Enable or disable this gap and choose the color.
Max Deviation Level: Enable or disable this level and choose the color.
Open Price Level: Enable or disable this level and choose the color.
Indicator

Indicator

SPX Mapped Gaps [Mxwll]Hello traders 👋
This indicator "SPX Mapped Gaps" detects gaps from the SPX (or the trader's choice of index/asset) and plots them for the asset on your chart!
Features
Selectable comparison symbol
Gaps from the selected symbol (SPX by default) are plotted for the asset on your chart - serving as potential support/resistance levels!
Closest gaps from comparison symbol displayed in upper-right table
Overlapped gaps deleted automatically - less clutter!
How this script works
The "SPX Mapped Gaps" is designed to help traders determine price levels for the asset on their chart where a major index (any asset) gapped up or down.
Of course, a gap that occurs on SPX (4-digit price) is incompatible with the price chart of BTC (5-digit price). To circumvent this, the percentage distance of the gap from SPX is determined, and a gap level is drawn equidistantly (up/down) from the open price of the asset on your chart. With this method, the proportion of the gap is maintained at the price area it occurred for the asset on your chart!
The image above outlines functionality for the indicator!
Key points:
Up gaps are denoted by green boxes
Down gaps are denoted by red boxes
All gaps are listed with their start and end price for the comparison asset (SPX for the example). These labels can be hidden at the user's discretion.
Gaps are expected to act as support/resistance during their lifetime
The image above explains the output of the script, including line style indications!
Solid lines indicate that the leverage used for at your entry price constitutes an active trade. Dotted lines mean the trade has already achieved your profit target for that leverage, or stopped out.
The image above explains the table attached to the indicator!
This table displays the closest gaps to the current asset price. The status (up gap or down gap) from the gap to the current price is also detailed.
Why are gaps on the SPX, or major index, relevant to BTC and other assets?
When a gap on the major indices occurs, it's expected that strong aggregate buying or selling pressure will transpire for BTC and other coins. Due to this, the presence of a gap on a major index might correspond to increased activity on smaller market-cap assets with some degree of positive correlation to the index. Consequently, the price level for the asset at which a gap for the major index occurred may function as support/resistance for future price!
That is all for this - thanks traders!
Indicator

Fair Value Gap (FVG) Oscillator [UAlgo]The "Fair Value Gap (FVG) Oscillator " is designed to identify and visualize Fair Value Gaps (FVG) within a given lookback period on a trading chart. This indicator helps traders by highlighting areas where price gaps may signify potential trading opportunities, specifically bullish and bearish patterns. By leveraging volume and Average True Range (ATR) data, the FVG Oscillator aims to enhance the accuracy of pattern recognition and provide more reliable signals for trading decisions.
🔶 Identification of Fair Value Gap (FVG)
Fair Value Gaps (FVG) are specific price areas where gaps occur, and they are often considered significant in technical analysis. These gaps can indicate potential future price movements as the market may return to fill these gaps. This indicator identifies two types of FVGs:
Bullish FVG: Occurs when the current low price is higher than the high price two periods ago. This condition suggests a potential upward price movement.
Obtains with:
low > high
Bearish FVG: Occurs when the current high price is lower than the low price two periods ago. This condition suggests a potential downward price movement.
Obtains with:
high < low
The FVG Oscillator not only identifies these gaps but also verifies them using volume and ATR conditions to ensure more reliable trading signals.
🔶 Key Features
Lookback Period: Users can set the lookback period to determine how far back the indicator should search for FVG patterns.
ATR Multiplier: The ATR Multiplier is used to adjust the sensitivity of the ATR-based conditions for verifying FVG patterns.
Volume SMA Period: This setting determines the period for the Simple Moving Average (SMA) of the volume, which helps in identifying high volume conditions.
Why ATR and Volume are Used?
ATR (Average True Range) and volume are integrated into the Fair Value Gap (FVG) Oscillator to enhance the accuracy and reliability of the identified patterns. ATR measures market volatility, helping to filter out insignificant price gaps and focus on impactful ones, ensuring that the signals are relevant and strong. Volume, on the other hand, confirms the strength of price movements. High volume often indicates the sustainability of these movements, reducing the likelihood of false signals. Together, ATR and volume ensure that the detected FVGs are both significant and supported by market activity, providing more trustworthy trading signals.
Normalized Values: The FVG counts are normalized to enhance the visual representation and interpretation of the patterns on the chart.
Visual Customization and Plotting: Users can customize the colors for positive (bullish) and negative (bearish) areas, and choose whether to display these areas on the chart, also plots the bullish and bearish FVG counts, a zero line, and the net value of FVG counts. Additionally, it uses histograms to display the width of verified bullish and bearish patterns.
🔶 Disclaimer:
Use with Caution: This indicator is provided for educational and informational purposes only and should not be considered as financial advice. Users should exercise caution and perform their own analysis before making trading decisions based on the indicator's signals.
Not Financial Advice: The information provided by this indicator does not constitute financial advice, and the creator (UAlgo) shall not be held responsible for any trading losses incurred as a result of using this indicator.
Backtesting Recommended: Traders are encouraged to backtest the indicator thoroughly on historical data before using it in live trading to assess its performance and suitability for their trading strategies.
Risk Management: Trading involves inherent risks, and users should implement proper risk management strategies, including but not limited to stop-loss orders and position sizing, to mitigate potential losses.
No Guarantees: The accuracy and reliability of the indicator's signals cannot be guaranteed, as they are based on historical price data and past performance may not be indicative of future results. Indicator

LumleyTrading GapsName: LumleyTrading Gaps
Description:
The Gap Tracker Indicator is a powerful tool designed for traders to identify, monitor, and capitalize on price gaps in financial markets. It serves two primary functions:
Identifying Gaps: The indicator scans price action to detect instances where the current trading session's opening price significantly differs from the previous session's closing price. These disparities indicate the presence of price gaps.
Tracking Gap Fills: Once a gap is identified, the indicator continues to monitor the price movement. It dynamically adjusts its parameters to track whether and when the price retraces back to fill the gap. As soon as the gap is filled, the indicator generates a signal to notify traders of this occurrence.
Key Features:
Customizable Parameters: Traders can adjust the sensitivity and criteria for what constitutes a significant gap based on their trading preferences and the market conditions.
Visual Alerts: The indicator provides clear visual signals on price charts, highlighting the presence of gaps and indicating when they are filled. This helps traders to easily spot trading opportunities and make informed decisions.
Alert Notifications: In addition to visual cues, traders can opt to receive real-time alerts via email, SMS, or within their trading platform, ensuring they never miss an opportunity or a filled gap.
Historical Analysis: The indicator may also offer historical gap data, allowing traders to conduct backtesting and analyze the performance of trading strategies based on gap patterns.
Benefits:
Gap Trading Opportunities: Traders can use the indicator to identify potential areas of price continuation or reversal, leveraging the phenomenon of gap trading for profit.
Risk Management: By tracking gap fills, traders can manage their risk more effectively, knowing when a gap is likely to act as support or resistance and adjusting their positions accordingly.
Enhanced Decision Making: With real-time gap detection and fill tracking, traders gain valuable insights into market sentiment and price dynamics, empowering them to make timely and informed trading decisions.
Compatibility:
The Gap Tracker Indicator is compatible with popular trading platforms and can be seamlessly integrated into various technical analysis tools and strategies.
Conclusion:
In the fast-paced world of financial markets, identifying and understanding price gaps is crucial for successful trading. The Gap Tracker Indicator provides traders with a reliable tool to spot, track, and capitalize on gap opportunities, enhancing their trading efficiency and profitability. Indicator

Indicator

Gap Statistics (Zeiierman)█ Overview
The Gap Statistics (Zeiierman) indicator is crafted to monitor, analyze, and visually present price gaps on a trading chart. Price gaps are areas on a chart where the price jumps up or down from the previous close to the next open, creating a "gap" in the normal price pattern. This script delivers an extensive range of statistics related to these gaps, encompassing their size, direction (whether bullish or bearish), frequency of getting filled, as well as the average number of bars it takes for a gap to be filled. The indicator also visually represents the gaps, making it easier for traders to spot and analyze them.
█ How It Works
Gap Identification: The script identifies gaps by comparing the open price of a bar to the close price of the previous bar. If there is a discrepancy between the two, it is recognized as a gap.
Gap Classification: Once a gap is identified, it is classified based on its size (as a percentage of the previous close price) and direction (bullish or bearish). The gap is then added to a specific category based on its size.
Gap Tracking: The script keeps track of all identified gaps using arrays and user-defined types, storing details like their size, direction, and whether they have been filled.
Gap Filling: The script continuously monitors the price to check if any previously identified gaps get filled. A gap is considered filled if the price moves back into the gap area.
Statistics and Alerts: The script calculates various statistics like the total number of gaps, the number of filled gaps, the average number of bars it takes for a gap to fill, and the percentage of gaps that get filled. It also generates alerts when a new gap is identified or an existing gap gets filled.
█ How to Use
Gaps are often classified into four main types:
Common Gaps: These are not associated with any major news and are likely to get filled quickly.
Breakaway Gaps: These occur at the end of a price pattern and signal the beginning of a new trend.
Runaway Gaps: Also known as continuation gaps, these occur in the middle of a trend and signal a surge in interest in the stock.
Exhaustion Gaps: These occur near the end of a price pattern and signal a final attempt to hit new highs or lows.
The Gap Statistics (Zeiierman) indicator enhances a trader's ability to use gaps in their trading strategy in several ways:
Statistical Analysis: Traders get comprehensive statistics on gaps, such as their size, direction, and how often they get filled.
Performance Tracking: The indicator tracks how many bars it typically takes for a gap to fill, providing traders with an average timeframe for gap closure.
█ Settings
Display Gaps: Choose to display "All Gaps," "Active Gaps," or "None."
Show Gap Size: Toggle on/off the display of the gap size.
-----------------
Disclaimer
The information contained in my Scripts/Indicators/Ideas/Algos/Systems does not constitute financial advice or a solicitation to buy or sell any securities of any type. 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.
My Scripts/Indicators/Ideas/Algos/Systems are only for educational purposes! Indicator
