Adaptive Squeeze Memory [PhenLabs]🚀 #66 Adaptive Squeeze Memory
📌 Overview
Adaptive Squeeze Memory turns a standard public-domain BB/KC squeeze into a clear “what happened after similar squeezes?” dashboard. Instead of forcing traders to decode a complex probability model, ASM gives a simple setup read first: Long Breakout Watch, Short Breakdown Watch, Lean Long, Lean Short, Two-Way Volatility, or Building Memory.
Behind that simple read, ASM compares the current squeeze event against prior confirmed squeezes with similar volatility, RSI, and volume conditions, then projects the historical distribution of forward returns as a cone.
This is an original public-concept interpretation built from standard market primitives: Bollinger Band width, Keltner Channel width, ATR, RSI, volume ratio, Euclidean similarity scoring, and nearest-rank percentiles. It does not copy, clone, reproduce, deobfuscate, or attempt to recreate any commercial squeeze, memory, or prediction product.
📊 What Makes It Different
Most squeeze tools answer one question: “Is price compressed?” Adaptive Squeeze Memory asks a sharper and more tradable question: “When the market has compressed like this before, did the forward memory favor an upside breakout, a downside breakdown, or volatility expansion without a clean directional edge?”
The result is a cleaner PulseWire experience: a plain-English memory dashboard for fast interpretation, plus a projected return cone for traders who want the deeper statistical context.
🚀 Core Features
✅ Public-domain BB/KC squeeze detection using Bollinger Band width versus Keltner Channel width
✅ Similarity memory engine using normalized ATR, RSI, and volume ratio
✅ Configurable nearest-match count for comparing the current squeeze against prior events
✅ 1-bar, 3-bar, 5-bar, and 10-bar forward return distributions
✅ Median projection plus optional 25th/75th and 10th/90th percentile bands
✅ Memory Dashboard with setup state, median edge, likely range, bullish probability, score, matches, and next-step guidance
✅ Memory Bias Score from -100 to +100 for fast data-window scanning
✅ Long Breakout Watch and Short Breakdown Watch markers for stronger memory skews
✅ Confirmed-bar only logic with no request.security() and no lookahead
✅ Capped projection-line arrays for stable long-chart performance
🔧 Settings
Squeeze Memory Lookback
Default: 252
Range: 50–2000
Description: Maximum number of mature prior squeeze events retained for similarity matching.
Similarity Match Count
Default: 10
Range: 3–50
Description: Number of closest historical squeeze events used to build the probability cone.
Cone Projection Bars
Default: 10
Range: 10–50
Description: Forward visual projection window. The statistical anchors are 1, 3, 5, and 10 bars.
BB Length / BB Multiplier
Default: 20 / 2.0
Range: Length 5–200, Multiplier 0.5–5.0
Description: Bollinger Band settings used to measure compression.
KC Length / KC Multiplier
Default: 20 / 1.5
Range: Length 5–200, Multiplier 0.5–5.0
Description: Keltner Channel settings used as the volatility envelope comparison.
ATR Length
Default: 14
Range: 2–200
Description: ATR input for the normalized volatility feature.
RSI Length
Default: 14
Range: 2–200
Description: RSI input for the momentum-position feature.
Volume MA Length
Default: 50
Range: 5–300
Description: Moving average baseline for the relative volume feature.
Similarity Weight: ATR / RSI / Volume
Default: 1.0 / 1.0 / 1.0
Range: 0.0–5.0
Description: Controls how strongly each feature influences the Euclidean distance score.
Bull Cone Color / Bear Cone Color
Default: Lime / Red
Range: Any PulseWire color
Description: Sets the projection color based on whether the 10-bar median return is positive or negative.
Show Percentile Bands
Default: On
Range: On/Off
Description: Toggles the inner 25th/75th percentile and outer 10th/90th percentile cone paths.
Show Memory Dashboard
Default: On
Range: On/Off
Description: Displays the simplified readout so users do not need to interpret the full cone manually.
Median Edge Threshold %
Default: 0.20
Range: 0.05–5.0
Description: Minimum median 10-bar edge required before ASM can classify a strong directional watch.
Directional Probability Threshold %
Default: 55
Range: 50–80
Description: Minimum matched-outcome probability required before ASM classifies a strong long or short watch.
🔥 How It Works
1. Detect compression
• ASM compares Bollinger Band width against Keltner Channel width.
• A squeeze event fires only when compression begins on a confirmed bar.
2. Capture the squeeze fingerprint
• Each confirmed squeeze stores normalized ATR, RSI, and relative volume.
• Events are stored in flat parallel arrays for Pine v6 compatibility.
3. Let history mature naturally
• Forward returns are filled only after the 1st, 3rd, 5th, and 10th future bars have actually printed.
• No future data is read early, and no request.security() calls are used.
4. Match the current event to memory
• The current squeeze is compared against mature prior squeezes.
• Weighted Euclidean distance ranks the most similar historical events.
• The closest N matches form the statistical sample.
5. Convert the distribution into a simple read
• Long Breakout Watch appears when the median edge and bullish outcome probability both clear their thresholds.
• Short Breakdown Watch appears when the median edge and bearish outcome probability both clear their thresholds.
• Lean Long and Lean Short appear when the sample has directional skew but not enough strength for a full watch.
• Two-Way Volatility appears when the historical memory favors expansion but not a clean direction.
6. Project the probability cone
• ASM computes nearest-rank percentiles of the matched forward returns.
• Median, 25th/75th, and 10th/90th percentile paths are drawn forward from the current squeeze bar.
🎨 Visual Guide
• Solid path: median projected forward return
• Dashed paths: 25th and 75th percentile range
• Dotted paths: 10th and 90th percentile range
• Column plot: latest 10-bar median memory edge
• Dashboard: plain-English setup state, range, bullish probability, score, matches, and next-step guidance
• LONG / SHORT markers: stronger confirmed directional memory events
• Yellow marker: confirmed squeeze-memory event
📖 Best Used For
Adaptive Squeeze Memory is designed for traders who want context around volatility compression. It is especially useful for crypto, indices, liquid equities, and FX pairs where squeeze events repeat often enough to build a meaningful memory sample.
✅ Notes
• Pine Script v6 indicator
• Separate pane output
• Confirmed-bar only
• No external data
• No request.security()
• No lookahead
• No commercial/proprietary logic
⚠️ Limitations
ASM is a statistical context tool, not a prediction engine. Percentile cones summarize what similar prior squeezes did; they do not guarantee what the current squeeze will do. Early charts or rare symbols may have too few mature matches for a useful cone until enough events accumulate. Indicator

Indicator

Seasonality Tables Stock vs Sector vs CommoditySeasonality Tables — Stock vs Sector vs Commodity
What it does
This indicator overlays a unified, three-panel seasonality table directly on your chart, showing the historical average return for the current stock, its matched sector ETF, and its most-correlated commodity — side by side, on the same time axis (annual or monthly). Every cell is a real historical average computed bar-by-bar from the chart's full price history; nothing is precomputed or cached from an external dataset.
Three tables:
Stock seasonality — average return of the symbol on your chart, broken down by month (annual view) or by trading day-of-month (monthly view).
Sector seasonality — same calculation applied to the sector ETF that matches the stock's syminfo.sector. The mapping covers ASX sector indices (XEJ, XMJ, XFJ, XHJ, XNJ, XSJ, XIJ, XDJ, XTJ, XUJ, XPJ) and US SPDR sectors (XLE, XLB, XLF, XLV, XLI, XLP, XLK, XLY, XLC, XLU, XLRE, XLC), auto-selected by the stock's listed country. You can override with any ticker you want.
Commodity seasonality — auto-picked from a 23-commodity basket (Gold, Silver, Crude, Copper, Iron Ore, Lithium, Uranium, Nat Gas, Wheat, etc.) by computing rolling price correlation between the stock and each commodity over the stock's full available history. The strongest correlation wins and loads automatically. You can override the pick from a dropdown if you'd rather see a specific commodity.
How it differs from other seasonality scripts
Most seasonality indicators on PulseWire do one of two things: (a) show seasonality for just the symbol on the chart, or (b) hard-code an index (S&P 500, BTC) and ignore what you're actually looking at. This script is built around comparative context:
Stock × Sector × Commodity in one view. You don't have to flip charts to ask "is this stock's June weakness actually a sector pattern, or is it idiosyncratic?" — both rows are on screen, aligned to the same months.
Auto sector mapping. The sector ETF is resolved from syminfo.sector and syminfo.country, so flipping from BHP → CBA → MSFT automatically reloads the right ETF (XMJ → XFJ → XLK). No manual config per symbol.
Correlation-driven commodity selection. Other scripts that overlay commodities make you pick one. This one measures which commodity best tracks the stock and loads it for you. For a copper miner you'll get HG; for a gold miner, GC; for an LNG name, NG. The auto-selection is shown in the commodity table title so you can see what it chose.
Magnitude-scaled colour intensity. Cells aren't binary green/red. Saturation scales linearly with return magnitude up to ±5%, so a +0.3% month looks faded and a −4% month is fully red. Pattern strength is visible at a glance, not just direction.
Honest about new listings. Correlation and seasonality both use a cumulative-sum approach over the stock's actual available history (gated at min 30 valid bars), rather than a fixed 252-bar window. A stock that listed 8 months ago shows 8 months of data; a 20-year stock uses 20 years.
Lookback caps per table. Independent "years to include" inputs for stock, sector, and commodity (0 = all). Useful when you want the stock on its full life but the sector ETF capped at, say, 10 years to avoid a regime that no longer applies.
How to use it
Add to a daily chart. The commodity table uses inline accumulation over chart bars (a workaround for Pine's 40-call request.security budget), so it assumes a Daily timeframe. Weekly+ will under-sample the commodity row.
Pick a scale.
Annual → 12 rows (Jan–Dec), each cell is the average monthly return.
Monthly → 31 rows (1–31), each cell is the average return on that trading day-of-month for the currently displayed month.
Read the columns side-by-side. Look for agreement and divergence:
Stock + Sector + Commodity all green in the same month → strong seasonal tailwind, broad-based.
Stock green but Sector and Commodity red → idiosyncratic; the seasonality may not survive a sector drawdown.
Sector and Commodity strong but Stock weak → potential mean-reversion candidate, or a sign the stock has structural issues.
The current period is highlighted (orange) so you can immediately see "where am I right now in the seasonal cycle, and what's coming next month?"
Override when needed. Toggle "Override Auto ETF" or "Override Auto Commodity" if you disagree with the mapping (e.g. a gold royalty company auto-maps to Materials/XMJ but you'd rather compare it to the Gold ETF and Silver).
The strategy behind it
Seasonality is most useful as a bias filter, not a signal. The premise of the three-table layout:
A standalone seasonal pattern in a single stock is fragile — could be 3–4 random earnings dates clustered in one month.
A pattern that's also present in the sector suggests a real demand/inventory/fiscal-year cycle (e.g. retailers in November, energy in winter, miners around Chinese New Year).
A pattern that also shows in the correlated commodity suggests an underlying physical-market driver (e.g. gold's Q1 strength, oil's summer demand, gas's winter demand).
When all three line up, you have a higher-conviction seasonal window. When they disagree, you've identified an idiosyncratic pattern — which can still be tradeable, but warrants closer inspection (is it earnings-driven? Index rebalance? A one-off?). The script doesn't tell you to enter or exit; it gives you the historical context to time discretionary entries, choose between candidates in the same sector, or simply avoid fighting a strong negative seasonal alignment.
Use it alongside your normal setup as a context layer, not a system or a buy/sell signal. Indicator

RSI Divergence DetectorRSI Divergence Detector with automatic pivot based detection
Spots bullish and bearish RSI divergences automatically by connecting pivot highs and lows on the RSI panel.
🔍 What it does
This indicator detects when price and RSI momentum disagree. One of the most reliable early warning signals in technical analysis.
Regular Bullish Divergence: Price makes a lower low while RSI makes a higher low. Momentum is improving despite price weakness, potential reversal to the upside.
Regular Bearish Divergence: Price makes a higher high while RSI makes a lower high. Momentum is fading despite price strength, potential reversal to the downside.
Hidden Bullish Divergence (need to turn on in options): Price makes a higher low while RSI makes a lower low. Trend continuation signal the pullback is likely over.
Hidden Bearish Divergence (need to turn on in options): Price makes a lower high while RSI makes a higher high. Downtrend continuation signal, the bounce is likely over.
📊 Visual Design
- Clean RSI line that changes color: green in oversold (below 30), red in overbought (above 70), white in the middle
- Subtle gradient fills on overbought/oversold zones
- Solid lines connecting divergence pivots on the RSI panel (green for bullish, red for bearish)
- Dashed lines for hidden divergences (when enabled)
- Small triangle markers when divergence is detected
⚙️ Settings
RSI Length: Default 14. Standard setting that works across most timeframes.
Pivot Lookback: Default 5. How many bars are needed to confirm a pivot point. Lower (3) = more signals. Higher (8-10) = fewer but stronger divergences.
Max Divergence Width: Default 60. Maximum bars allowed between two pivots forming a divergence. On daily charts, 60 bars is roughly 3 months.
Recommended settings by timeframe:
- Daily: Pivot 5, Width 60 (default)
- 4H: Pivot 5, Width 100
- Weekly: Pivot 3, Width 30
- 1H: Pivot 5, Width 120
Hidden divergence is OFF by default. Learn to read regular divergences first, then enable hidden for trend continuation signals.
🔔 Alerts
Built-in alert conditions for: Bullish Divergence, Bearish Divergence, Hidden Bullish, Hidden Bearish, Any Regular, and Any Divergence.
⚠️ Important Notes
Divergence signals appear with a delay equal to the Pivot Lookback setting (default 5 bars) because the indicator needs bars after a potential pivot to confirm it was a real turning point. This is by design accuracy over speed.
Divergence is a warning signal, not an entry trigger. Use it alongside other technical analysis, price action, and your own risk management. Not every divergence leads to a reversal.
This indicator is for educational and informational purposes only. Not financial advice. Indicator

Time-Based Vertical Fib ProjectionsTime-Based Vertical Fib Projections
This indicator automatically measures the time it takes for price to form the high-to-low range during the time window from 20:00 to 00:00 EST.
Once the session ends, the script identifies the highest high and lowest low within that range, calculates the time distance between those two points, and projects that same time interval forward as vertical time levels.
Projection lines are plotted at 1σ, 2σ, 3σ, 4σ, 5σ, and beyond, based on the measured time interval. These projected vertical levels can help traders anticipate future timing windows where price may react, expand, reverse, or reach important intraday objectives.
Features include:
Automatic detection of the 20:00–00:00 EST range.
Measures time between the range high and range low
Projects forward time-based standard deviation levels
Optional labels for each projection
Optional marking of the original range high and low times
Adjustable number of projections
Custom line colors, style, width, and history length
This tool is intended for time-based analysis and does not generate buy or sell signals. It should be used alongside market structure, liquidity, session context, and risk management.
Update Notes
The time-based range window is now fully customizable from the indicator settings.
The default range remains 20:00–00:00 EST, but users can now adjust the start and end time to define their own custom measurement window. The indicator will use the selected range to identify the high and low, calculate the time distance between those points, and project the vertical time levels forward from that custom range.
This makes the tool more flexible for traders who want to apply the same time-projection logic to different sessions, killzones, or custom trading windows.
Indicator

Time-Based Fib ProjectionsTime-Based Vertical Fib Projections
This indicator automatically measures the time it takes for price to form the high-to-low range during the time window from 20:00 to 00:00 EST.
Once the session ends, the script identifies the highest high and lowest low within that range, calculates the time distance between those two points, and projects that same time interval forward as vertical time levels.
Projection lines are plotted at 1σ, 2σ, 3σ, 4σ, 5σ, and beyond, based on the measured time interval. These projected vertical levels can help traders anticipate future timing windows where price may react, expand, reverse, or reach important intraday objectives.
Features include:
Automatic detection of the 20:00–00:00 EST range.
Measures time between the range high and range low
Projects forward time-based standard deviation levels
Optional labels for each projection
Optional marking of the original range high and low times
Adjustable number of projections
Custom line colors, style, width, and history length
This tool is intended for time-based analysis and does not generate buy or sell signals. It should be used alongside market structure, liquidity, session context, and risk management. Indicator

Indicator

Indicator

Indicator

Market Memory Average (Zeiierman)█ Overview
Market Memory Average (Zeiierman) is a similarity-based market regime tool that scans historical price behavior to identify past conditions that closely resemble the current market state.
The script compares momentum, RSI, volatility, and relative volume to build a “market memory” model. It then extracts the internal momentum of the most similar historical states and blends them into a dynamic projection line.
The result is an adaptive average that reflects how the market has historically behaved when conditions looked like this, rather than relying on fixed formulas or traditional lagging averages.
█ How It Works
⚪ Market State Encoding
The script defines the current market using momentum (ROC), RSI, volatility (ATR%), and relative volume. These features describe how the market is behaving, not just price position.
⚪ Historical Similarity Scan
Each past bar is compared to the current state using a multi-feature distance model.
Closer matches receive higher weights through exponential decay:
similarity = 100 * exp(-distance * sensitivity)
⚪ Top Match Selection
The script ranks all historical states and keeps only the most similar ones. These represent past environments that closely resemble current conditions.
⚪ Memory Momentum
From each match, the script extracts its internal momentum (ROC).
A similarity-weighted average is then calculated:
avgMomentum = weightedMomentum / totalWeight
⚪ Market Memory Average
This averaged momentum is applied to the current price to form the line:
memoryLine = close * (1 + avgMomentum / 100)
The result reflects how similar market states have historically behaved.
⚪ Historical Match Zones
Optional boxes highlight where similar conditions occurred in the past, along with their similarity strength.
█ How to Use
⚪ Market Memory Average
Bullish color → market conditions align with historically positive momentum.
Bearish color → market conditions align with historically negative momentum.
Unlike traditional averages, this line is built from the similarity-weighted momentum of past market matches. The cloud and structure dynamically adapt based on how those historical conditions behaved.
This gives the line a context-driven, memory-based approach, rather than relying on fixed calculations. The result is a dynamic reference for directional bias and regime context, grounded in how the market has behaved under similar conditions before.
⚪ Study Historical Match Zones (Example 1)
The match boxes show where similar market conditions occurred in the past, based on momentum, volatility, RSI, and volume alignment.
Each box represents a moment where the market behaved as it does now.
These zones can help:
Visualize recurring structures: See how similar conditions previously formed, such as pullbacks, bottoms, or consolidation phases within a trend.
Identify behavioral clustering: When multiple matches appear around similar types of price action, it suggests the market frequently revisits this behavior.
Understand the current environment: By comparing where those matches occurred (trend, range, recovery), you can interpret what kind of phase the market is currently in.
Build a contextual bias: If most matches come from pullbacks and recoveries (as in the example), the current state aligns more with pause → stabilize → continue behavior, rather than reversal or breakdown conditions.
These zones provide context, not prediction, helping you understand how the market is behaving relative to its own history.
⚪ Study Historical Match Zones (Example 2)
In this example, the current market state most closely aligns with these two highlighted zones.
Both matches formed during bearish conditions:
The left match shows a rejection after a strong move up, with momentum quickly flipping into a sharp drop.
The right match shows a weak bounce inside a downtrend, where the price attempted to recover but continued lower.
Looking at the current state (circled area), the price is:
Breaking down aggressively
Moving similarly to those past rejection phases
This suggests the current behavior aligns more with rejection → continuation, rather than stabilization or reversal.
█ Settings
Historical Scan Depth: Controls how far back the script searches for similar market states.
Top Similar Matches: Determines how many historical matches influence the average.
Historical Pattern Length: Sets the width of the displayed historical match zones.
Similarity Sensitivity: Controls how strict the similarity comparison is.
RSI Length: Defines the oscillator component of the market state.
ATR Length: Controls volatility measurement used in both similarity and cloud calculations.
Volume MA Length: Defines how relative volume is calculated.
Average Smoothing: Controls the responsiveness of the Market Memory Average.
Slope Detection Length: Determines how trend direction is evaluated.
Cloud Spread: Controls how far the cloud extends from the line.
-----------------
Disclaimer
The content provided in my scripts, indicators, ideas, algorithms, and systems 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.
Indicator

Indicator

Bias Dashboard (Mark)# Bias Dashboard — Documentation
### Developed for NQ Futures Trading | Version 1.0
---
## Overview
The Bias Dashboard is a PulseWire Pine Script indicator designed to answer one simple question at any point during the trading day:
**Is the market breaking Long, Short, or is there no clear direction?**
It is designed for NQ futures traders but works on any instrument. It runs on the 1-minute chart and analyzes the last 90 bars of price action to determine trend direction, trend strength, momentum, volume, VWAP positioning, and EMA alignment — combining all of these into a single **Conviction** verdict.
The indicator operates in three modes and is intended to be used as a confirmation and confluence tool, not as a standalone entry signal.
---
## Modes
The indicator has three operating modes, selectable in the settings:
### ⚡ LIVE Mode
The dashboard updates in real time on every candle close. Use this mode throughout the trading day to monitor ongoing market bias. Ideal for continuously gauging whether conditions favor a long or short trade at any given moment.
### 🔔 MOC Mode (Market on Close — 3:50 PM ET)
The dashboard runs live until 3:50 PM ET, at which point it locks and freezes its readings. This gives you a snapshot of market conditions at the critical pre-close window. The snapshot holds until midnight ET, then resets automatically for the next session.
Use this mode to evaluate bias for the 3:50 PM MOC trade. The indicator looks back 90 one-minute bars from the anchor time to assess whether the trend has the strength and conviction to continue into the close.
### 🌏 ASIAN Mode (Asian Open — 8:00 PM ET)
Identical behavior to MOC mode, but anchors at 8:00 PM ET for the Asian session open. Locks at that time and resets at midnight.
Use this mode to evaluate whether the post-US-session trend has enough conviction to continue into the Asian open.
---
## What the Dashboard Shows
The dashboard displays six rows of information plus a verdict bar at the bottom.
### Direction
The overall market direction based on trend structure and momentum alignment.
- **▲ LONG** — conditions favor a long trade
- **▼ SHORT** — conditions favor a short trade
- **— FLAT** — no clear directional bias
### Conviction
How strongly all inputs agree on the stated direction. This is the most important output of the indicator. There are five levels:
- 🟢 **CONFIRMED** — All or nearly all inputs agree. High confidence trade.
- 🟡 **PROBABLE** — Most inputs agree. Good conditions, proceed normally.
- 🟠 **MARGINAL** — Mixed signals. Proceed with caution or reduce size.
- 🔴 **WEAK** — More inputs disagree than agree. Lean toward sitting out.
- ⬜ **NO TRADE** — No meaningful directional bias. Stay out.
### Trend
The strength of the prevailing trend over the last 90 one-minute bars.
- **Strong** — Price is making a clear, sustained directional move with significant slope
- **Moderate** — A trend exists but is less decisive
- **Weak** — Little or no trend structure present
This is measured using two methods simultaneously: pivot high/low structure (higher highs and higher lows for an uptrend, lower highs and lower lows for a downtrend) and a linear regression slope normalized against the Average True Range. Both must agree for a strong trend reading.
### Mom / Vol (Momentum and Volume)
Whether the current candles are showing genuine directional momentum backed by volume. Momentum and volume are treated as a single combined input because strong momentum without volume is a fake move, and strong volume without momentum is absorption — neither alone is sufficient.
- **Strong Long / Strong Short** — Large-bodied candles closing near their extremes, with volume above the 20-bar average
- **Moderate Long / Moderate Short** — Decent candle bodies with average volume
- **Weak / Mixed** — Small bodies, long wicks, or low volume — no conviction
### VWAP
Where price is relative to the Volume Weighted Average Price and which direction VWAP is sloping.
- **Above — Rising** — Price above VWAP and VWAP trending up. Institutional buying pressure. Bullish.
- **Above — Falling** — Price above VWAP but VWAP turning down. Weakening bullish condition.
- **Below — Falling** — Price below VWAP and VWAP trending down. Institutional selling pressure. Bearish.
- **Below — Rising** — Price below VWAP but VWAP turning up. Weakening bearish condition.
- **At VWAP** — Price is at the VWAP level. Decision point. Proceed with caution.
VWAP acts as a magnet — price tends to revert to it over time. This means a trade taken when price is already far from VWAP carries more mean-reversion risk than one taken when price is just breaking away from it cleanly.
### EMA Stack
The alignment of three Exponential Moving Averages — the 9, 20, and 50 EMA.
- **Bull 9>20>50** — All three EMAs in bullish order. Trend is confirmed across multiple timeframes.
- **Bear 9<20<50** — All three EMAs in bearish order. Trend is confirmed across multiple timeframes.
- **Mixed** — EMAs are not fully aligned. Short term and longer term momentum disagree.
A fully aligned EMA stack that agrees with the direction adds conviction. A stack that fights the direction reduces conviction.
### Verdict Bar
The bottom row of the dashboard combines Direction and Conviction into a single colored statement, for example:
**▲ LONG — CONFIRMED**
The background color of this bar matches the conviction level — green for confirmed/probable, orange for marginal, red for weak. This is designed to be readable at a glance without reading the individual rows above it.
---
## How Conviction is Calculated
The conviction engine works in two steps.
**Step 1 — Base Conviction Matrix**
Trend Strength and Momentum/Volume are multiplied together to produce a base conviction level:
| | Strong Trend | Moderate Trend | Weak Trend |
|---|---|---|---|
| **Strong Mom/Vol** | CONFIRMED | PROBABLE | MARGINAL |
| **Moderate Mom/Vol** | PROBABLE | MARGINAL | WEAK |
| **Weak Mom/Vol** | MARGINAL | WEAK | NO TRADE |
**Step 2 — Adjustments**
VWAP and EMA Stack each cast a vote:
- Agrees with direction = +1
- Neutral = 0
- Fights direction = -1
The two votes are combined. If both agree, conviction bumps up one level. If both fight the direction, conviction drops one level. Mixed votes leave base conviction unchanged.
This means the maximum possible conviction is CONFIRMED, and the minimum is NO TRADE, regardless of how extreme the adjustments are.
---
## How to Use It
**For MOC and Asian Open trades:**
Load the indicator in MOC or ASIAN mode. Watch the dashboard update live in the 90 minutes leading up to the event. At the anchor time it will lock. Use the frozen snapshot to decide whether conditions support a trade.
A CONFIRMED or PROBABLE verdict with a clear direction is your green light to look for an entry. MARGINAL means proceed carefully with reduced size. WEAK or NO TRADE means sit this one out.
**In LIVE mode:**
The dashboard updates continuously. Use it as a real-time bias check at any point during the session. It is particularly useful during low-volume or choppy periods when direction is unclear — a NO TRADE reading is a valid and valuable signal to stay out.
---
## Settings
| Setting | Default | Description |
|---|---|---|
| Mode | LIVE | LIVE, MOC, or ASIAN |
| Trend Lookback | 90 bars | Number of 1-minute bars for trend analysis |
| Momentum Bars | 4 bars | Number of recent candles for momentum read |
| Dashboard Position | Top Right | Top Right, Top Left, Bottom Right, Bottom Left |
| Background Color | Dark black | Dashboard background |
| Border Color | Soft white | Table border |
| Header Color | Navy | Mode header row |
| Text Color | White | Primary text |
| Label Color | Subtle white | Row label text |
---
## Important Notes
- This indicator is a **confluence tool**, not an entry signal. It tells you whether conditions are favorable. It does not tell you exactly when or where to enter. That judgment remains yours.
- On NQ futures, unexpected news events — economic data releases, policy announcements, geopolitical developments — can override any technical reading instantly. No indicator can account for surprise news.
- The indicator is designed primarily for NQ but is portable to ES, GC, CL, and other instruments without modification.
- Always trade within your risk management rules regardless of what the indicator shows. A CONFIRMED reading is not a guarantee.
---
*Bias Dashboard — Built for the trading group. Use it as one voice among several, not the only voice.* Indicator

Indicator

Indicator

Indicator

Zero to Hero + Buy / Sell Labels + DashboardZero to Hero is a comprehensive market-readiness meter that distills five powerful technical factors into a single, easy‑to‑read Hero Score (0‑100). It helps you avoid low‑probability chop and only trade when the odds are stacked in your favour. The indicator draws clear entry signals, dynamic stop‑loss and take‑profit levels, and a vibrant dashboard so you always know whether the market is in “hero” mode or still a “zero”.
How It Works
The Hero Score is built from five independent components, each contributing up to 20 points:
Trend Alignment – Price above fast & slow EMAs, and EMAs stacked correctly.
Momentum – RSI in the healthy zone (50‑70 for longs).
Volume – Volume above its moving average, confirming participation.
Volatility – ATR% inside a “Goldilocks” range (not too quiet, not too wild).
Price Structure – Higher highs/higher lows (bullish) or lower highs/lower lows (bearish) based on pivot points.
The Bull Hero Score measures readiness for long trades; the Bear Hero Score does the same for shorts.
When a score crosses your chosen threshold (default 80 for longs, 20 for shorts), the indicator issues a non‑repainting signal.
What You’ll See on the Chart
Buy / Sell Labels – “🦸 HERO LONG” or “🦹 HERO SHORT” appear when the setup is confirmed.
Stop‑Loss & Take‑Profit Lines – Automatically placed at 1.5× ATR and 2.5× ATR from entry (customisable).
Risk‑Reward Shading – A translucent grey box between stop and target makes your trade plan instantly visible.
Hero Meter – A lower‑pane histogram shows the Hero Scores building up, with threshold lines for quick visual reference.
Info Dashboard – A colourful, easy‑to‑read table in the top‑right corner showing all five component scores, ATR%, volume ratio, and your current stop/target when a signal is active.
How to Use It
Wait until the dashboard says “🦸 LONG” or “🦹 SHORT”.
Check the dashboard – all five components should be showing green or positive values.
Enter the trade in the direction indicated.
Set your stop exactly where the red dashed line is drawn.
Take profit at the green dashed line.
Do nothing when the dashboard says “⚪ WAIT”. Patience is the edge.
Inputs & Customisation
All thresholds can be adjusted via the settings panel:
Hero Long / Short Threshold – Sensitivity of signals (default 80 / 20).
EMA lengths – Fast & Slow EMAs for trend detection.
RSI period – Used in momentum scoring.
Volume & Volatility filters – Minimum volume ratio, acceptable ATR% range.
Risk Management – ATR multiplier for stop‑loss and take‑profit.
Dashboard toggle – Show/hide the info panel.
Best For
Swing & position traders who want high‑confidence setups.
Intraday traders looking to filter out low‑volume chop.
Any market – stocks, forex, crypto, indices.
All timeframes (works best on 15min – daily).
Important Notes
Signals are non‑repainting (confirmed on bar close).
No indicator predicts the future – this tool highlights high‑probability conditions only.
Always use proper risk management.
Past performance does not guarantee future results.
Risk Disclaimer
This indicator is provided for educational purposes only. It does not constitute financial advice. Trading involves substantial risk of loss. Always do your own analysis and never trade with money you cannot afford to lose.
Take your trading from zero to hero – only when the market gives you the green light.
Indicator

Major / Minor BIAS Dashboard 1. Purpose of the Script
The script is designed to provide a clear directional view of the Nasdaq/NQ market.
It is not intended to be used as an entry signal. Instead, it works as a higher-level directional filter.
That means the script does not tell you exactly when to enter a trade. It only shows whether the market currently favors long trades, short trades, or caution.
The basic idea is:
If the overall BIAS is Long, only look for long setups.
If the overall BIAS is Short, only look for short setups.
If the script shows Warning or Neutral, no standard trade should be taken.
This helps prevent trading against the broader market direction.
2. Structure of the Dashboard
The script displays a table directly on the chart.
The dashboard is divided into three main parts:
Major
The Major BIAS represents the higher-timeframe market direction.
Minor
The Minor BIAS represents the shorter-term or intraday market direction.
Overall
The Overall BIAS combines Major and Minor and shows whether there is a clear trading direction.
The table is intentionally simple. The first column shows whether the row refers to Major, Minor, or Overall. The middle column displays the current state: Long, Short, Neutral, or Warning. The right column displays a symbol.
A green circle represents Long.
A red circle represents Short.
A grey circle represents Neutral.
A warning symbol represents a conflicting market situation.
3. The Major BIAS
The Major BIAS is used to determine the higher-timeframe market direction.
It is built from several higher-timeframe components:
Daily BIAS
4H BIAS
Previous Day Filter
This means the script does not only check whether the market is moving up or down in the short term. It also checks whether the broader market structure supports that direction.
4. Daily BIAS
For the Daily BIAS, the script uses two exponential moving averages:
Fast EMA
Slow EMA
The default settings are:
Fast EMA: 20
Slow EMA: 50
The logic is simple:
If price is above both Daily EMAs, the Daily BIAS is considered Long.
If price is below both Daily EMAs, the Daily BIAS is considered Short.
If price is between both Daily EMAs, the Daily BIAS is considered Neutral.
There is also an optional ATR buffer.
This buffer prevents the script from switching to Long or Short just because price barely moves above or below the EMAs. As a result, the signal becomes smoother and less sensitive to small market noise.
5. 4H BIAS
The 4H BIAS works in the same way as the Daily BIAS.
It also uses two EMAs:
Fast EMA: 20
Slow EMA: 50
The 4H chart is important because it reacts faster than the Daily chart while still showing a higher-timeframe structure.
For Nasdaq/NQ, this is useful because the Daily chart can sometimes be too slow, while the 1H chart may contain too much short-term noise.
The 4H timeframe acts as a strong middle layer between the Daily trend and intraday movement.
6. Previous Day Filter
The script also includes a Previous Day Filter.
This filter looks at important levels from the previous trading day:
Previous Day High
Previous Day Low
Previous Day Close
Previous Day Mid
The Previous Day Mid is calculated as:
Previous Day High + Previous Day Low divided by 2
The filter can be adjusted. You can choose whether the script should compare price to:
Previous Day Mid
Previous Day Close
Previous Day Mid + Close
If price is above the selected previous-day level, this part of the filter is considered bullish.
If price is below the selected previous-day level, it is considered bearish.
This helps the script understand where the current market is trading compared to the previous day’s structure.
7. When Is the Major BIAS Long or Short?
The Major BIAS only turns Long when all active Major components are Long.
Example:
Daily BIAS: Long
4H BIAS: Long
Previous Day Filter: Long
Then the script shows:
Major: Long
If one of these components does not confirm the direction, Major will not be classified as Long.
The same logic applies to Short.
The Major BIAS only turns Short when all active Major components are Short.
Example:
Daily BIAS: Short
4H BIAS: Short
Previous Day Filter: Short
Then the script shows:
Major: Short
This logic is intentionally strict because Major is meant to act as the higher-timeframe directional filter.
8. The Minor BIAS
The Minor BIAS represents the shorter-term intraday direction.
It is used to check whether the current intraday structure confirms the higher-timeframe direction.
The Minor BIAS consists of three components:
1H BIAS
VWAP
Opening Range
This combination is especially useful for Nasdaq/NQ because the market often reacts strongly to VWAP, the cash open, and short-term trend structure.
9. 1H BIAS
The 1H BIAS also uses two EMAs.
Default settings:
Fast EMA: 20
Slow EMA: 50
The logic is the same:
If price is above both 1H EMAs, the 1H BIAS is Long.
If price is below both 1H EMAs, the 1H BIAS is Short.
If price is between both 1H EMAs, the 1H BIAS is Neutral.
The 1H BIAS is the main EMA-based component of the Minor BIAS because it reflects the shorter-term trading direction.
10. VWAP Filter
VWAP stands for Volume Weighted Average Price.
The script calculates the session VWAP.
In simple terms:
If price trades above VWAP, buyers are more likely in control.
If price trades below VWAP, sellers are more likely in control.
In the script, this means:
Price above VWAP = VWAP Long
Price below VWAP = VWAP Short
VWAP helps identify whether the market is trading above or below its intraday fair value.
11. Opening Range
The Opening Range is based on the first minutes after the US cash market opens.
By default, the script uses:
15:30 to 15:45 German time
During this period, the script stores:
Opening Range High
Opening Range Low
Opening Range Mid
After the Opening Range is completed, the script evaluates price in relation to the Opening Range Mid.
If price is above the Opening Range Mid, the Opening Range filter is considered Long.
If price is below the Opening Range Mid, the Opening Range filter is considered Short.
Before the Opening Range is completed, this filter is not fully active yet.
That means before 15:45 German time, the Minor BIAS may remain more cautious.
12. When Is the Minor BIAS Long or Short?
The Minor BIAS only turns Long when all active Minor components are Long.
Example:
1H BIAS: Long
VWAP: Long
Opening Range: Long
Then the script shows:
Minor: Long
If one of the components does not confirm the direction, Minor will not be classified as Long.
The same applies to Short:
1H BIAS: Short
VWAP: Short
Opening Range: Short
Then the script shows:
Minor: Short
If the components do not align, Minor remains Neutral.
13. Overall BIAS
The Overall BIAS combines Major and Minor.
The logic is strict and clear:
If Major is Long and Minor is Long, the Overall BIAS is Long.
If Major is Short and Minor is Short, the Overall BIAS is Short.
If Major is Neutral and Minor is Neutral, the Overall BIAS is Neutral.
All other combinations are shown as Warning.
That means:
Major Long + Minor Neutral = Warning
Major Short + Minor Neutral = Warning
Major Long + Minor Short = Warning
Major Short + Minor Long = Warning
The Warning state means the market is not clearly aligned.
14. Meaning for Trading
The script should be used as a trading filter.
If the Overall BIAS is Long, only long setups should be considered.
If the Overall BIAS is Short, only short setups should be considered.
If Warning is shown, no normal trade should be taken.
If Neutral is shown, there is no clear directional advantage.
The script does not replace an entry system. It only helps avoid trading against the clearer market direction.
A clean trading rule would be:
I only trade in the direction of the Overall BIAS.
The BIAS does not give me entries. It only defines the allowed trading direction.
The actual entry must come from my separate setup.
When the script shows Warning or Neutral, I do not take a standard trade.
15. Chart Visualization
The script can display several lines and zones on the chart.
These include:
Daily EMAs
4H EMAs
1H EMAs
VWAP
Opening Range High
Opening Range Low
Opening Range Mid
Previous Day Mid
Previous Day Close
The script also colors the area between the Fast EMA and Slow EMA.
These areas represent the neutral zones of each timeframe.
At the moment, the script can show three EMA zones:
Daily Neutral Zone
4H Neutral Zone
1H Neutral Zone
This is correct because the Major BIAS uses Daily and 4H, while the Minor BIAS uses 1H.
For practical use, however, it may be better not to display all zones at the same time, because the chart can become overloaded.
16. Recommended Visualization Settings
For a clean chart, I would not keep everything visible all the time.
A good setup would be:
Hide Daily EMAs
Show 4H EMAs
Show 1H EMAs
Show VWAP
Show Opening Range
Show Previous Day Levels
The Daily BIAS can still be used in the dashboard even if the Daily EMAs are hidden from the chart.
This keeps the chart cleaner while the full logic continues to work in the background.
17. Strengths of the Script
The script is especially useful for identifying clear trend conditions and focusing only on the correct trading direction.
It helps to:
Avoid countertrend trades.
Identify sideways or unclear market conditions.
Make warning situations visible.
Check direction consciously before entering a trade.
Avoid impulsive trades against the market.
For Nasdaq/NQ, this can be very helpful because the market often moves fast and aggressively. When Major and Minor both point in the same direction, setups in that direction are usually more interesting.
18. Limitations of the Script
The script also has clear limitations.
It does not tell you exactly where to enter.
It does not define your stop loss.
It does not define your position size.
It does not guarantee a profitable trade.
It can react late during fast market reversals.
This is normal because a BIAS system is always a filter, not a complete trading system.
The BIAS gives direction.
Your separate setup gives the entry.
19. Practical Trading Rules
For daily use, the rules can be kept simple:
Overall LONG:
Only look for long setups.
Overall SHORT:
Only look for short setups.
Overall WARNING:
Do not take a normal trade. The market is not clearly aligned.
Overall NEUTRAL:
Wait. There is no clear directional advantage.
These rules make the script useful because they simplify the decision-making process.
20. Conclusion
The script is a Major/Minor BIAS dashboard for Nasdaq/NQ.
It combines higher-timeframe trend structure, intraday levels, and strict confirmation logic.
The Major BIAS shows the broader market direction.
The Minor BIAS shows whether the short-term structure confirms that direction.
The Overall BIAS shows whether there is a clear trading direction.
The script is not designed as an entry signal. It is designed as a professional directional filter.
Its purpose is to help you trade only when Major and Minor are aligned.
This supports a more disciplined trading approach:
Not every market needs to be traded.
Not every move is a valid setup.
Only when the direction is clear should an entry setup be considered. Indicator

Indicator

Smart Quant Money Execution Signals [Rehankhanani]The Smart Quant Money Execution Signals indicator is a powerful multi-factor trading system designed to help traders identify high-probability market opportunities using institutional-grade logic. This indicator combines trend, momentum, strength, and price structure into a single unified framework, eliminating the need to rely on multiple separate tools.
Built using a 5-factor confirmation model, the system integrates EMA trend analysis, RSI momentum, ADX strength, MACD confirmation, and Smoothed Heiken Ashi (SHA) to filter out low-quality setups and highlight only strong trading conditions.
Unlike traditional indicators that rely on a single signal, this system uses a scoring-based probability engine, ensuring that trades are only generated when multiple confirmations align. This significantly improves signal quality and reduces noise in volatile markets.
⚙️ Key Features
✔ Multi-Factor Signal Engine (EMA + RSI + ADX + MACD + SHA)
✔ Smart Probability Scoring System (0% – 100%)
✔ Strong Buy / Sell Signals (80%+ Confidence)
✔ Automatic Entry, Stop Loss, and Take Profit Levels
✔ Dynamic Risk-to-Reward Ratio Calculation
✔ Smoothed Heiken Ashi for Trend Clarity
✔ Real-Time Professional Dashboard
✔ Clean BUY / SELL Labels on Chart
✔ Candle Highlighting for Signal Confirmation
🎯 How It Works
The indicator evaluates 5 core market conditions:
📈 Trend Direction (EMA 9/21)
📊 Momentum (RSI)
📉 Trend Strength (ADX)
🔄 Momentum Confirmation (MACD)
🕯️ Price Structure (Smoothed Heiken Ashi)
Each condition contributes 20% to the overall score, creating a total probability rating:
80% – 100% → Strong Trade Signal
60% – 80% → Moderate Setup
Below 60% → No Trade / Low Probability
Signals are only triggered when multiple factors align, ensuring higher reliability.
💡 Advantages of This Indicator
🔹 Reduces False Signals
By combining multiple indicators, the system filters out weak setups and focuses only on high-quality trades.
🔹 Institutional-Level Logic
This is not a basic crossover system — it mimics how professional traders analyze markets using confluence.
🔹 All-in-One Solution
No need to switch between multiple indicators — everything is integrated into one clean system.
🔹 Clear Trade Execution
Entry, Stop Loss, and Take Profit levels are automatically calculated, helping traders manage risk effectively.
🔹 Improved Trend Clarity
Smoothed Heiken Ashi removes market noise and makes trend direction easier to identify.
🔹 Probability-Based Decision Making
Instead of guessing, traders can rely on a structured probability model.
🧠 Best For
✔ Intraday Traders
✔ Swing Traders
✔ Crypto / Forex / Indices / Stocks
✔ Traders looking for high-probability setups
✔ Traders who prefer structured decision-making
⚠️ Important Note
This indicator is designed to assist decision-making and does not guarantee profits. Always apply proper risk management and trading discipline.
"Trade smarter, not harder — let multi-factor confirmation guide your decisions with precision and confidence." Indicator

Indicator

Indicator

Holidays v1
1. Overview
Holidays — marks trading halts at the world's major stock exchanges directly on the PulseWire chart. For each configured holiday, a colored background block spans the full calendar day. At the bottom of the chart, auto-sizing labels display the holiday name and the flag emojis of all affected exchanges.
At a glance, you can see whether one or more markets are closed on any given day — critical information for assessing liquidity conditions, spread behavior, and correlation reliability across instruments.
Key Features
8 pre-configured exchanges with verified 2026 holiday data
10 freely assignable custom slots for user-defined holidays or events
Every holiday individually toggleable — enable only what you need
Per-exchange color and configurable session duration (default: full 24h calendar day)
Smart label merging: when multiple exchanges share the same holiday on the same day (e.g. New Year's Day), a single label shows the holiday name with all country flags combined
Labels at chart bottom with automatic round-robin stacking across 4 rows — no overlap, no text truncation
Info table showing active and upcoming holidays, color-coded by exchange, with flag and date columns
Three independent visibility toggles: background blocks, labels, and info table can each be shown or hidden separately
Works for past AND future dates (box.new with xloc.bar_time)
Visible chart range detection: label positions recalculate automatically when scrolling or zooming
2. Smart Label Merging & Stacking
Many major holidays — such as New Year's Day, Good Friday, or Christmas — are observed simultaneously by multiple exchanges. Without merging, these would produce 5-8 overlapping labels on the same day.
How Merging Works
The indicator groups all holidays by date AND name. When multiple exchanges have the same holiday on the same day, they are merged into a single label:
Line 1: Holiday name (e.g. 'New Year's Day')
Line 2: Combined flag emojis of all affected exchanges (e.g. '🇺🇸 🇬🇧 🇨🇦 🇩🇪 🇯🇵 🇨🇳 🇦🇺 🇰🇷')
Different holidays on the same day (e.g. JP Greenery Day and KR Children's Day on May 4/5) remain as separate labels and are stacked vertically.
Round-Robin Row Stacking
Labels are distributed across 4 rows at the bottom of the chart using a round-robin pattern: label 1 goes to row 1, label 2 to row 2, label 3 to row 3, label 4 to row 4, label 5 back to row 1, and so on. This guarantees that no two adjacent labels share the same vertical position, regardless of how closely spaced the holidays are in time.
The vertical spacing between rows scales automatically with the visible price range — when you zoom in, rows spread further apart; when you zoom out, they compress proportionally.
3. Supported Exchanges
The indicator includes pre-filled and verified holiday data for eight exchanges. Each exchange group has its own color, a master enable toggle, and a configurable session duration (default: 24 hours = full calendar day).
Holidays (Configurable session duration)
Default: full calendar day (24h)
🇺🇸
USA — NYSE / NASDAQ
Holidays: 9
🇬🇧
London — LSE
Holidays: 8
🇨🇦
Canada — TSX
Holidays: 8
🇩🇪
Germany — Xetra
Holidays: 7
🇯🇵
Japan — TSE
Holidays: 8
🇨🇳
China — SSE
Holidays: 7
🇦🇺
Australia — ASX
Holidays: 8
🇰🇷
South Korea — KRX
Holidays: 7
★
Custom (10 slots)
Freely configurable
4. Settings
All settings are accessible via the gear icon next to the indicator name in the chart legend, or by right-clicking the indicator and selecting 'Settings'.
4.1 Style Settings
Background Opacity
Transparency of the background blocks. 0 = fully opaque, 100 = invisible. Default: 85.
Border Color
Color of the outline drawn around each holiday block.
Border Style
Line style of the outline: Solid, Dashed, Dotted, or None.
Border Width (px)
Thickness of the outline in pixels (0–4).
Show Background Blocks
Toggle the full-height colored background blocks on/off. Can be disabled while keeping labels and/or table visible.
Show Block Labels
Toggle the holiday name labels at the bottom of the chart on/off.
Label Font Size
Font size for labels: Tiny, Small, Normal, Large.
Label Text Color
Text color of the bottom labels.
Label Background Transparency
Transparency of the label background. Uses the exchange color. 0 = opaque, 100 = invisible.
Show Info Table
Toggle the info table on/off. Works independently of blocks and labels.
Table Position
Corner of the chart: Top Right, Top Left, Bottom Right, Bottom Left.
Table: max upcoming rows
Maximum number of upcoming holidays in the table. Active holidays always shown additionally.
Table Font Size
Font size: Tiny, Small, Normal, Large.
Table Border Color
Grid line and frame color of the table.
Table Background Color
Background color of the table frame.
Table Upcoming Row Transparency
Transparency of upcoming (not yet active) holiday rows. Active rows always at 30%.
4.2 Per-Exchange Settings
Each of the eight exchanges has its own settings group:
✓ Enable Group: Enable or disable all holidays for this exchange.
Color: Color used for background blocks, labels, and table rows.
Session hours: Duration of the holiday highlight (default: 24h = full calendar day). Can be reduced to show only the actual trading session if desired.
Below these, each individual holiday has a checkbox (enable/disable) and a date/time input.
4.3 Custom Holidays
The '▼ Custom Holidays' group provides 10 free slots. Each slot has a checkbox, a name field, and a start timestamp. Custom slots share a common session duration setting.
5. The Info Table
The info table displays active and upcoming holidays in a compact, color-coded format.
Table Structure
Column 1 (Flag): Country flag emoji or ★ for custom holidays
Column 2 (Holiday): Holiday name with exchange prefix (e.g. 'GB Early May BH')
Column 3 (Date): Date in UTC (format: MMM dd)
Display Logic
Active holidays: strong exchange color, white text
Upcoming holidays (within 90 days): dimmed exchange color at configurable transparency
Maximum N upcoming entries shown (configurable), active holidays always additional
Entries sorted chronologically by date
6. Three Independent Visibility Toggles
The indicator provides three separate toggles in the Style Settings, allowing you to show exactly what you need:
Toggle & What it controls:
Show Background Blocks
Full-height colored blocks spanning the entire price range. Provides an immediate visual cue that a holiday is in effect.
Show Block Labels
Auto-sizing labels at the chart bottom showing the holiday name and country flags. Labels use round-robin row stacking to prevent overlap.
Show Info Table
Compact table listing active and upcoming holidays. Can serve as the sole holiday indicator when blocks and labels are disabled.
Example combinations: table-only mode for a clean chart with minimal visual clutter; blocks-only for quick visual scanning without text; all three enabled for maximum information density.
7. Technical Notes
7.1 Visible Range Detection
The indicator tracks the visible price range using chart.left_visible_bar_time, which triggers a recalculation whenever the user scrolls or zooms. The lowest and highest visible prices are computed incrementally using var float variables — no ta.lowest or ta.highest with series length, avoiding Pine's historical buffer allocation issues entirely.
7.2 Past and Future Display
Holiday blocks use box.new() with xloc=xloc.bar_time, which is not limited to historical bars. Holidays are rendered correctly for future dates as soon as the corresponding time range is visible on the chart axis.
7.3 Performance and Limits
Up to 500 boxes and 500 labels (configurable via indicator declaration)
All drawing objects redrawn only on barstate.islast — no performance impact on historical bars
Holiday data stored in global arrays to stay within Pine v6's 254-element-per-function limit
8.4 Holiday Data
All pre-filled dates refer to 2026 and have been verified against official exchange calendars from NYSE/ICE, LSE, TSX, Xetra/Deutsche Börse, JPX, SSE, ASX, and KRX. All timestamps are set to 00:00 UTC with a default duration of 24 hours, marking the full calendar day. For subsequent years, dates must be updated manually.
8. Use Cases
Liquidity Analysis
On days when multiple exchanges are simultaneously closed — Good Friday affects NYSE, LSE, TSX, Xetra, and ASX — the merged label shows all five flags at once, and the overlapping background blocks create a visually darker zone. This signals exceptionally thin market liquidity.
Forward Planning
The info table lists upcoming holidays chronologically. Traders can identify well in advance when reduced activity is expected — useful for position sizing, stop placement, and avoiding entries before liquidity gaps.
Custom Event Marking
The 10 custom slots can mark FOMC meetings, ECB rate decisions, NFP releases, or any other scheduled events using the same visual system.
If you have questions just contact me or put your ideas or wishes in the comments. Indicator

Indicator
