Fractal ZigZag with Retest & Filters By WiselyWealthIndicator ; Fractal ZigZag with Retest & Filters
Introduction
Welcome to the comprehensive guide for the 'Fractal ZigZag with Retest & Filters' indicator. This custom-built Pine Script indicator is an advanced technical analysis tool designed explicitly for the PulseWire platform. At its core, the primary objective of this script is to provide traders with high-probability entry signals by systematically filtering out market noise, avoiding false breakouts, and ensuring alignment with the overarching macroeconomic trend.
Many retail traders fall into the trap of entering positions during sudden, volatile price spikes, only to suffer heavy drawdowns when the market naturally pulls back. This script mitigates that risk by enforcing a strict, rules-based approach: identifying structural shifts, confirming the initial breakout, and mathematically demanding a pullback (or "retest") before issuing a final trading signal. Additionally, it features built-in alert conditions, making it perfectly suited for algorithmic traders who wish to automate their strategies via Webhooks, Telegram bots, or MT5 API integrations.
Technical Mechanism
The mechanical operation of this script is multi-layered, relying on a confluence of structural mapping, trend filtering, and volatility-based retest calculations. Here is a detailed, step-by-step technical breakdown of how the script detects and generates its buy and sell signals:
Mapping Market Structure with Williams Fractals:The foundation of the script relies on identifying key swing highs and swing lows using Williams Fractals. By default, the indicator evaluates a 5-bar lookback and look-forward period to pinpoint these structural pivots. Once a valid upward or downward fractal is identified, the script connects them using a dynamic ZigZag line. This creates an unambiguous visual map of the market's underlying structure, cleanly displaying the sequence of higher highs or lower lows.
Initial Breakout Identification: The indicator actively monitors the current closing price in relation to the most recently confirmed fractal levels. A raw bullish breakout is registered the moment a candle closes definitively above the last established fractal high. Conversely, a raw bearish breakout is noted when the closing price drops below the most recent fractal low. To prevent redundant alerts, the script locks the current trend state upon a successful breakout.
The ATR-Based Retest Engine: This is the most sophisticated aspect of the indicator. When "Enable Retest Mode" is activated, the script refuses to issue an immediate entry signal at the exact moment of the breakout. Instead, it uses the Average True Range (ATR) over a 14-period lookback to measure current market volatility. For a bullish setup, it calculates a "Retest Target" by subtracting a user-defined ATR multiplier (default 1.0) from the breakout close price. It then starts a countdown timer, allowing a maximum number of candles (default 3) for the price to drop back down and touch this target. If the pullback is successful within the time limit, the raw buy signal is triggered. If the time expires without a retest, the setup is safely invalidated.
Macro Trend Filtering: Before finalizing any signal, the script consults a 200-period Exponential Moving Average (EMA). If the trend filter is enabled, a buy signal is entirely suppressed unless the closing price is strictly above the EMA200. Sell signals similarly require the price to remain below the EMA200. Users can also force the script into a "Buy Only" or "Sell Only" mode to align with their long-term directional bias.
How to Use and Best Practices
To extract maximum profitability and accuracy from this script, traders must apply the correct settings and deploy it in appropriate market environments.
Recommended Settings and Configuration:
Conservative Swing Trading: Ensure the EMA200 Trend Filter remains enabled to keep you on the side of institutional momentum. You may also want to increase the Fractal Periods from 5 to 7 or 9. This filters out minor price fluctuations and forces the script to base its breakouts on major structural swing points.
Retest Calibration for Volatility:** The default ATR multiplier is 1.0, and the wait limit is 3 candles. If you are trading on lower timeframes (e.g., 5-minute or 15-minute charts), breakouts can take slightly longer to retest. Consider increasing the "Max Candles to wait" to 5 or 6. For highly volatile assets, increasing the ATR Multiplier to 1.5 can help you secure a deeper, more favorable pullback entry.
Directional Lock: If higher timeframe analysis dictates a strong bull market, use the "Trade Direction" setting to restrict signals to "Buy Only," eliminating counter-trend noise during minor market corrections.
Suitable Markets and Timeframes:
Forex and Indices: This indicator performs exceptionally well on major Forex pairs (EUR/USD, GBP/JPY) and Global Indices (US30, NAS100) on the 1-Hour and 4-Hour timeframes. These assets heavily respect market structure, and liquidity grabs (retests) are highly common after structural breakouts.
Cryptocurrency: Bitcoin and Ethereum on the 15-minute to 1-Hour charts are excellent candidates, provided you adjust the ATR multiplier to account for crypto's volatile, whipsaw movements.
Markets to Avoid: Avoid using this script in heavily consolidated, range-bound, or sideways markets. Breakout and trend-continuation logic inherently struggles during prolonged periods of low volatility, where price chops indiscriminately around the 200 EMA without clear directional follow-through. Indicator

CISD with Projections (Just)# CISD with Dynamic Projection Levels
This indicator automatically detects **Change in State of Delivery (CISD)** and projects measured price targets based on the completed impulse.
### Features
* **Automatic CISD Detection**
* Identifies both bullish and bearish CISD setups.
* Option to display **Bullish Only**, **Bearish Only**, or **Both**.
* **Dynamic Projection Levels**
* Automatically calculates the impulse range from the CISD level to the swing extreme.
* Projects customizable target levels using user-defined multipliers.
* Example: `1,2,3,4` creates 1R, 2R, 3R, and 4R projection levels.
* **Custom Projection Input**
* Enter any projection values as a comma-separated list.
* Examples:
* `0.5,1,1.5,2`
* `1,2,3`
* `2,4,6`
* **Base Swing Reference**
* Displays the swing extreme used to calculate all projection levels, making it easy to visualize the measured move.
* **Automatic Cleanup**
* Projection levels remain active until price revisits the originating swing.
* Once the swing is mitigated, the entire CISD setup—including the CISD line, base level, projection lines, and labels—is automatically removed to keep the chart clean.
* **Maximum Active Setups**
* Control how many recent CISD structures remain visible using the **Max CISD Lines** setting.
* **Customizable Appearance**
* Separate bullish and bearish colors.
* Adjustable CISD line width.
* Optional projection display.
### How It Works
1. The indicator detects a valid CISD.
2. It measures the distance between the CISD level and the swing extreme.
3. Using that range, it projects user-defined target levels above bullish setups or below bearish setups.
4. All projections remain visible until the originating swing is revisited, after which the setup is automatically deleted.
This indicator is designed for traders who use CISD as part of their market structure analysis and want objective projection levels for planning potential targets while maintaining a clean chart.
Indicator

High Volume Breakout Targets [AlgoAlpha]🟠 OVERVIEW
High Volume Breakout Targets identifies price zones formed by related pivot highs or pivot lows. These zones represent areas where price previously reacted around overlapping wick and candle-body levels.
The indicator then checks whether price closes through a zone with enough of the breakout candle extending beyond its boundary. Qualified breakouts can display directional labels, an entry level, and three targets based on the height of the broken zone.
Normalized volume candles are also shown inside recent active zones. This helps traders compare current volume with its recent average while watching price interact with a potential support or resistance area.
🟠 CONCEPTS
Pivot High Zone — A resistance area formed when a confirmed pivot-high wick falls within the body of a previous pivot-high candle. The zone spans the associated wick highs and body-top levels.
Pivot Low Zone — A support area formed when a confirmed pivot-low wick falls within the body of a previous pivot-low candle. The zone spans the associated wick lows and body-bottom levels.
Pivot Confirmation — A pivot requires the selected number of bars on both sides of the turning point. A higher Pivot Length identifies broader structures but confirms them later and less often.
Zone Maximum Age — The maximum number of bars during which two pivots can be associated and an active zone can continue extending. An expired zone remains visible but no longer produces a breakout.
Qualified Breakout — A breakout requires a confirmed close above a bearish zone or below a bullish zone. It must also place the selected percentage of the candle’s full range beyond the broken boundary.
Normalized Volume — Current volume is divided by its 20-bar average. The resulting ratio controls the size and transparency of the volume candle displayed inside an active zone.
Breakout Targets — The breakout close becomes the entry level. The broken zone’s height is divided into three equal steps to calculate TP1, TP2, and TP3 in the breakout direction.
Target Expiry — Each target setup remains active for a selected number of bars. When TP1 or TP2 is reached, the remaining unhit targets receive a new expiry period from the hit candle.
🟠 FEATURES
Pivot Zones — Displays bullish support zones and bearish resistance zones created from associated pivot structures.
Breakout Labels — Marks bullish and bearish closes that satisfy the selected outside-range requirement.
Three-Level Targets — Displays the breakout entry, a target area, and TP1, TP2, and TP3 levels derived from the broken zone’s height.
Zone Volume Display — Shows normalized volume candles inside the four most recently active zones.
Target Completion Marker — Prints a checkmark on the first candle whose wick reaches TP3.
🟠 HOW TO USE
Adjust Pivot Length to match the structure you trade. Use lower values for smaller and more frequent zones, or higher values for broader and less frequent zones.
Treat bullish zones as potential support and bearish zones as potential resistance while they continue extending.
Watch how price behaves inside a zone. Use the normalized volume candles to compare participation with the recent volume average.
Wait for a breakout label rather than treating every wick through a zone as a breakout. A label appears only after the candle closes beyond the boundary and meets the Minimum Breakout Range setting.
Use a higher Minimum Breakout Range to require more of the breakout candle to trade beyond the zone. Use a lower value to accept less decisive moves.
After a qualified breakout, use the entry line as the breakout reference and TP1, TP2, and TP3 as zone-based projection levels.
Check whether targets are reached before their expiry. TP1 and TP2 extend the active period for the remaining targets when reached.
Combine the zones and breakout signals with market structure, trend direction, liquidity, and risk controls. The indicator does not define a stop-loss or position size.
🟠 CONCLUSION
High Volume Breakout Targets combines pivot-based support and resistance zones, normalized volume context, qualified breakout signals, and zone-height target projections. It gives traders a structured way to assess price interaction with established zones and track the progression of confirmed breakouts. Indicator

Indicator

ATR%(Volatility index) by ogudoraATR% (Volatility Index) — Volatility Heat & Tradability Gauge
█ OVERVIEW
This indicator answers one question at a glance: "Is this stock hard to trade right now?"
It plots the stock's ATR% (ATR ÷ Close × 100) as a volatility heat line, compares it against up to two market indices (Nikkei 225, NK225 Mini Futures, JP225 CFD, NASDAQ, SOX), and combines everything into a simple O/X verdict displayed in a single label or table.
█ KEY FEATURES
1. Individual ATR% Heat Line
The stock's ATR% is colored by level: cyan (normal), orange (caution, default 7%), red (STOP, default 9%). Dashed/solid threshold lines are drawn on the pane.
2. Index Zone (Fixed Lower Band)
Index ATR% is compressed into a dedicated zone at the bottom of the pane, so the individual line (usually 3%+) and the index line (usually under 2%) never overlap or distort each other's scale. Display is compressed, but all calculations, alerts, and label values always use the REAL index ATR%.
The index line itself is heat-colored by real value: white (calm, under 2%), orange (danger, 2%+), red (extreme danger, 3%+).
3. O/X Verdict
One line tells you everything: "Stock O Index X" style marks.
- Stock X = ATR% is high AND accelerating, or above the STOP line
- Index X = index ATR% is accelerating sharply (reversal warning) or above the danger line
Any X → red background (avoid new entries). All O + confirmed volatility decline → green background (calm regime).
4. Volatility Slope Detection
The slope of ATR% (current minus N bars ago, smoothed) classifies the regime:
- Rising volatility (slope above deadband)
- Confirmed decline (N consecutive down days — filters out zigzag "one good day" noise)
- Over-calm (ATR% below 2%): excessive complacency, one-sided optimism → reversal risk, alert only
5. Hidden Turbulence Detection
Detects days where ATR% still looks "comfortable" but the intraday range spikes above its average (default 1.8×) — the classic topping-zone zigzag pattern that ATR alone misses. Alert only, no chart clutter.
6. Two Display Modes
- Unified label: verdict + stock + index values in one bubble
- Table: fixed at top-right, row background = line color
█ ALERTS
- Stock ATR% high & accelerating (avoid entry)
- Confirmed volatility decline
- Over-calm (reversal caution)
- Hidden turbulence (calm ATR% but range spike)
- Index ATR% sharp acceleration (1 & 2)
- Index danger / extreme-danger line crossovers (1 & 2)
- Stock ATR% STOP line crossover
█ SETTINGS
- ATR Period (default 10, matching Supertrend 10/1)
- Stock caution / STOP thresholds (7% / 9%)
- Slope lookback, smoothing, deadband, consecutive-decline count
- Index selection ×2, danger / extreme thresholds, acceleration deadband
- Index zone height and scaling
- MA (SMA/EMA) overlay for both stock and index ATR%
- Daily-only display option
█ HOW TO USE
Green background / all O: volatility is calming — normal trading conditions.
Red background / any X: volatility is high and rising, or the market index is destabilizing — consider pausing new entries.
White index line turning orange or red: market-wide volatility regime shift — tighten risk regardless of how the individual stock looks.
This is a risk-filter tool, not a buy/sell signal generator. It is designed to be used alongside your own entry/exit system. Indicator

Deep Market Structure & Liquidity Matrix [Pro]================================================================================
Deep Market Structure & Liquidity Matrix
================================================================================
Welcome to the Deep Market Structure & Liquidity Matrix . This all-in-one technical indicator is designed for Smart Money Concepts (SMC) traders, price action analysts, and institutional structure followers. It cleans up market noise and delivers precise structure mapping directly on your chart.
Whether you trade Forex, Crypto, Indices, or Commodities, this tool provides clear, real-time insights into macro trends, key structural breaks, major liquidity levels, and dynamic trend channels.
--------------------------------------------------------------------------------
KEY FEATURES & DETAILED BREAKDOWN
--------------------------------------------------------------------------------
1. Smooth Glowing Trend Line (Length: 70)
Unlike standard moving averages that lag or cause frequent false flips during choppy sessions, this script incorporates a high-period smoothed trend tracking algorithm (Hull-based).
- Green Line: Confirms a sustained macro Bullish Trend.
- Red Line: Confirms a sustained macro Bearish Trend.
It filters out minor price noise and keeps your focus aligned with the dominant higher-timeframe trend direction.
2. Major ITH & ITL Badges (Intermediate Term Highs/Lows)
Identifying major structural pivots is essential for liquidity mapping.
- Red "ITH" Badge: Highlights major macro swing highs (Intermediate Term Highs) where buy-side liquidity resides.
- Green "ITL" Badge: Highlights major macro swing lows (Intermediate Term Lows) where sell-side liquidity resides.
These badges only trigger on major swing points, keeping your charts clutter-free.
3. SMC Structure Mapping (BOS & CHoCH with Offset Labels)
To eliminate visual clutter, all structure markers are placed precisely with clean vertical offsets:
- BOS (Break of Structure): Highlights structural trend continuations.
- CHoCH (Change of Character): Signals potential early trend reversals.
Labels are placed above bullish break lines and below bearish break lines to prevent candles or lines from obscuring the text.
4. Dynamic Trend Channel Engine
Automated swing-point connections generate real-time trend channels to highlight dynamic support and resistance zones. This helps traders visually identify key channel boundaries and structural slope without manual drawing clutter.
5. Live Market Structure Dashboard
Located at the top right of the chart, this live dashboard summarizes key market metrics at a glance:
- Market Trend: Live macro direction (Bullish / Bearish).
- Market Phase: Automatically detects Consolidation (Low Volatility) vs. Expansion (High Volatility) using ATR parameters.
- Volatility (ATR): Displays real-time 14-period Average True Range metrics.
--------------------------------------------------------------------------------
HOW TO USE THIS INDICATOR
--------------------------------------------------------------------------------
1. Trend Identification: Use the Glowing Trend Line to bias your trades (Long when Green, Short when Red).
2. Liquidity Zones: Monitor the Major ITH and ITL levels as key targets or reversal zones.
3. Confirmation: Look for CHoCH for trend shift signals and BOS for continuation entries aligned with the main trend.
--------------------------------------------------------------------------------
DISCLAIMER & HOUSE RULES COMPLIANCE
--------------------------------------------------------------------------------
This script is strictly created for educational and analytical purposes only. It does not provide buy/sell signals or financial advice. Trading involves substantial risk, and past structural setups do not guarantee future price action. Always apply sound risk management strategies.
Indicator

Nwog - Ndog Tracker (M1D)NWOG - NDOG Tracker (M1D)
Maps the two electronic-session opening gaps on index futures and tracks how much of each one price has traded back through.
A New Day Opening Gap is the distance between the prior session's 17:00 close and the 18:00 Globex reopen — the CME maintenance halt. A New Week Opening Gap is the distance between Friday's 16:59 close and the Sunday 18:00 reopen. These are electronic-session boundaries and are deliberately not the 09:30 cash open or the 16:14 regular-hours close, which belong to a different gap entirely.
How It Is Built-
No bar prints inside either window, so the bar immediately preceding a reopen always carries the true prior close. Both gaps read their origin from that bar rather than from a bar found by its clock time, which is what keeps them correct through a holiday or an early close — on those days the scheduled closing bar never prints at all, and a tool that waits for it builds the gap off a stale price.
A gap is read from the side its reopen landed on. Opening above the prior close leaves the unfilled area below price, where it stands as support. Opening below leaves it overhead as resistance.
Every boundary is detected on the bar that contains its target time rather than by comparing bar-open times, so each one resolves correctly on any intraday timeframe. All detection runs on confirmed bars only.
What It Draws-
Each gap is a box spanning from its origin to its right edge, captioned with its direction, type and date. The caption sits level with the consequent encroachment just past the right edge, and holds the same visual distance from the box at any zoom.
Direction and type are carried separately so neither has to be inferred from the other. The box fill stays keyed to the type, daily and weekly each keeping their own wash, while the border and the caption arrow carry the polarity.
Levels inside a gap are optional. Quadrants draw 0.25, the consequent encroachment and 0.75. Octants draw eighths. Each level's value is printed beside the right end of its own line, level with it at any zoom, and the consequent encroachment is named CE and carries its own colour. The gap high and low are the box itself and are not redrawn as levels.
A table lists the tracked gaps newest first, each with its direction and the percentage of it that price has covered, and a count of how many remain unfilled. The callout arrow in the example chart points from a gap to this table so the two can be matched up at a glance.
Settings-
Gap times, session close, and the reopen times are each adjustable and independent of one another.
Extend controls how far a box runs. Until next gap keeps only the newest box tracking price, clipping the previous one as a new gap forms. Extend to price runs every kept box to the current bar. End of day stops each at the session close. The weekly gap adds End of week, which stops it at Friday's close and keeps it visible for a set number of weeks afterwards.
Direction colouring can be switched off, in which case every border and caption falls back to the single border colour. The two direction colours themselves are adjustable.
Keep-last counts, fill and border colours, label size, and the table position and length are all adjustable.
Notes-
Fill percentage is the share of a gap's own range that price has covered, measured between the deepest and shallowest points reached inside it. It only increases, and reaches 100 percent once price has covered the gap end to end. It is deliberately direction-agnostic: it records how much of the gap has been consumed, not which side consumed it.
Being traded through does not remove a gap. A filled gap stays on the chart, and only the keep-last count clears it.
Disclaimer-
This script reports where these gaps sit and how much of each has been consumed. It does not generate signals and it is not financial advice. Indicator

Quartermaster Quadrants [VIZ]Quartermaster Quadrants
Overview
Most traders watch the session high and low. Far fewer watch what price does in the space between them — and that space is where most of the session's story actually plays out. Quartermaster Quadrants divides the current session's range into quarters and eighths to give you a live, self-adjusting map of exactly where price sits within the session, and how it behaves at the edges and the mid-zones.
As the session's high and low expand, every level, marker and colour recalculates in real time, so the framework always reflects the session as it actually is — not a fixed range drawn at the open. It's built as a context tool: rather than telling you to buy or sell, it shows you where price is and how it's acting there, so you can layer that read on top of your own approach.
How the levels are built
At the start of each session the indicator begins tracking the running high and low. From that range it derives seven internal levels: the 12.5%, 25%, 37.5%, 50%, 62.5%, 75% and 87.5% marks. The quarter lines (25/50/75) are always drawn; the eighth lines (12.5/37.5/62.5/87.5) can be toggled on. Optional session extensions project a user-defined percentage beyond the high and low for targets or breakout context, and clean price labels sit to the right of each level.
Because the range is live, the levels expand intrabar and finalize when the bar closes. This is by design — it keeps the map accurate to the current session — and it's worth understanding when reading forming bars.
The two modes
The indicator has two bias modes that change how it colours bars and which signals take priority:
Range (fade extremes) treats the session as mean-reverting. The primary signals are acceptance triangles at the outer eighths — a move up through 12.5% or down through 87.5% that then confirms on close — and secondary diamonds mark when a fade reaches the opposite mid-zone (37.5% / 62.5%), useful as a "reached the other side" waypoint.
Trend (follow extremes) inverts the intent. The primary signals become trend-flip diamonds when price commits across the 62.5% / 37.5% midline (one flip per direction, to control whipsaw), with secondary context diamonds at the outer eighths. Bar colouring shifts to reinforce continuation rather than reversion, with an optional neutral-mid-zone setting to keep things clean.
Switching modes never causes markers to overlap — each set is gated to its own mode.
Reading it in practice
Say price has spent the session grinding in the middle, then pushes down and wicks below the 87.5% level (the lower extreme in this framework) before closing back inside. In Range mode that arms and then prints an acceptance triangle — a signal that the extreme was tested and rejected, the kind of spot a mean-reversion trader watches for. If price then travels all the way back up and crosses the 62.5% mid-zone, a target diamond marks that the fade has reached the other side.
Now flip to Trend mode on the same move. Instead of fading that extreme, the tool waits for price to commit — a close across the 37.5% / 62.5% midline flips the trend state and prints a flip diamond, keeping you on the side of the prevailing push rather than against it. Same price action, two completely different reads depending on which context you're trading.
Ray levels
When a session closes, its 12.5% and 87.5% levels are captured and projected to the right as horizontal rays, marked at their origin with a small amber circle. Each ray extends until price wicks back to that level, at which point it freezes on the chart as a record of where that level was tagged. Because they're built from the completed prior session, these rays do not repaint. A "Sessions to Track" input controls how many are kept on screen.
Timeframes and instruments
The session is defined by the "Session Timeframe" input (default Daily), independent of your chart timeframe — so you can view Daily quartiles on a 15-minute chart, Weekly quartiles on an hourly chart, and so on. Common combinations are an intraday chart with a Daily session for day-trading structure, or a higher chart with a Weekly or Monthly session for swing context. It works across indices, futures, forex, crypto and stocks; on gapped instruments like individual stocks the session simply resets cleanly at each new boundary.
Potential use cases
Reading whether price is being accepted or rejected at session extremes; framing mean-reversion entries in Range mode or continuation entries in Trend mode; using the mid-zones and extensions as logical target areas; and using the frozen rays to see which prior-session levels are still untested versus already tagged. It pairs naturally with your existing bias, structure or momentum read rather than replacing it.
A note on behaviour
Levels are live and finalize on bar close. On-chart markers evaluate as the bar forms and are confirmed once it closes, so a signal can appear and adjust on the forming bar — normal for any live-adaptive tool. Alerts are deliberately gated to fire only on confirmed bar close, so alert notifications do not fire on unconfirmed intrabar moves. Indicator

Indicator

PO3 Matrix+ (M1D)PO3 Matrix+ (M1D)
Projects the recent candles of a chosen higher timeframe as a compact candle matrix beside live price, then marks the liquidity events, structure and PD array context that develop on that timeframe — taken swings, structure shifts, fair value gaps, previous-day levels, and cross-market divergence. The intent is to read higher-timeframe conditions without leaving the execution chart, and to keep every drawn element sourced from the same data so nothing drifts out of step.
── HOW IT IS BUILT ──
The selected higher timeframe is pulled once, as a snapshot of its recent candles, and every element is drawn on the last bar from that one source. Dividers, high/low rails, quadrants, sweeps, gaps and structure all read the same array, so they cannot disagree with each other. The forming candle is accumulated from chart bars, so it updates live without repainting its history.
Level lines are origin-anchored: each one begins at the candle that actually printed the extreme, not at the bar where the level happened to be calculated. Derived midlines (equilibrium, the inner quartiles) have no originating candle, so they run from the period open instead.
── WHAT IT DRAWS ──
PO3 CANDLE MATRIX — the selected higher timeframe's recent candles, projected to the right of price with time dividers on the live chart and a per-candle high/low rail. A countdown above the block shows the timeframe in use and the time left on the forming candle. The PD array context is mirrored onto the block at its own horizontal scale, and each event carries a compact direction marker there, so the block reads as a standalone view of what that timeframe is showing.
CANDLE EQUILIBRIUM — the true 50 percent of each completed candle in the block, as a reference the following candle can retrace into.
CURRENT-RANGE QUADRANTS — the forming candle's high, 75 percent, equilibrium, 25 percent and low projected across price as a live premium and discount reference.
LIQUIDITY SWEEPS — only swing liquidity is marked. A level qualifies when it is a swing high or swing low that a later candle raids and then closes back inside: wick beyond, body back within. A candle that simply trades past its neighbour is not a sweep and is not marked.
SMT DIVERGENCE — the correlated market is read on the same higher-timeframe grid, so the two align candle for candle. A SMT is marked when your chart takes a swing but the peer fails to take its matching swing, meaning the move lacked cross-market participation. The peer auto-pairs across equity indices, precious metals and BTC against ETH, in matching contract sizes, and can be overridden with any symbol. It deliberately does not guess a peer for markets where the correlation is too loose for a divergence to mean anything; with no pairing, no SMT is drawn. A SMT is invalidated in real time once price trades back through the extreme that formed it, and is then either faded or removed.
MARKET STRUCTURE SHIFT — a true swing broken by a body close. A swing here means a level price actually turned at: a swing low sits at the change from a down candle to an up candle, a swing high at the change from an up candle to a down one. A low that merely sits under its neighbours while price kept running the same way is not a swing and is never used, which is what separates this from a plain pivot break. The first candle to CLOSE beyond the swing's full wick — body, not wick — marks the shift; later closes past the same level are continuation and are not marked. An optional setting requires a liquidity raid to precede the shift, for the classic sweep-then-shift sequencing: a buyside raid before a bearish shift, a sellside raid before a bullish one.
FAIR VALUE GAPS (BISI+ / SIBI-) — detected on the higher-timeframe snapshot, so they are multi-timeframe by construction. Only fully formed gaps are drawn; a gap still forming on the live candle is ignored until it completes. Each zone moves through four states: live, active, inverted, or spent. A gap closed clean through has inverted — the old support is now resistance, or the reverse — and it stays inverted, flipped and redrawn in the inversion colour, for as long as that break holds. No retest is required, because a retest is where the level gets traded rather than what makes it valid. Closing back through in the original direction takes the gap back; the zone is spent, and fades but stays on the chart as history rather than disappearing.
PREVIOUS-DAY LEVELS — previous high, low and equilibrium, drawn from session start and dimming once taken. Three definitions of the day are offered because they genuinely differ on futures: the symbol's own daily candle, midnight to midnight New York, or the regular-hours session only. Regular hours are taken from the instrument itself rather than a fixed clock, so index futures, metals and everything else each use their own session. The label carries the source date, so a level that is several days old after a weekend reads as intentional.
CONTEXT TABLE — day, AMD phase, forming-candle bias, premium or discount, higher-timeframe direction, last sweep, market structure shift, fair value gap, previous-day status, and a session-close countdown. SMT is drawn on the chart and the block but does not have its own table row.
── SETTINGS WORTH KNOWING ──
The higher timeframe must be above the chart timeframe; the script says so on the chart if it is not.
Session handling is read from the instrument, not hardcoded, so the regular-hours option and the session countdown are correct on index futures, metals and anything else without configuration. Instruments that trade around the clock have no regular session, and the countdown says so rather than inventing one.
Every drawn element can be turned on or off on its own, and the chart labels and the compact markers on the projected block are controlled separately, so the block can be kept clean while the chart stays annotated. Label size, colour, vertical clearance, which side of a line a label sits on, and the marker glyph style are all adjustable.
Fair value gap sensitivity is measured against the average range of the visible higher-timeframe candles, so it scales per instrument rather than being a fixed distance. Raise the minimum height and displacement to keep only the larger gaps.
Market structure shift has an optional displacement requirement, off by default. Turn it on if you want the shifting candle to also expand or leave a gap, which reduces how often it marks.
Sweeps, gaps and structure marks each have a maximum shown, so the chart stays contained rather than accumulating history indefinitely. Gap zones also declutter against each other: two translucent zones stacked on the same prices multiply into a solid block, so a zone overlapping one already drawn beyond an adjustable tolerance is skipped and the most recent gap in that price band is the one kept. The same idea applies to stacking: two same-direction zones separated by only a thin seam read as one inefficiency wearing two boxes, so the older one is removed and the newest kept. Zones facing opposite directions are never removed for sitting close together — they are genuinely different reads.
── NOTES ──
Detection runs on completed higher-timeframe candles. The forming candle updates live, but a gap or a structure mark is only considered once the candles that define it have closed.
SMT is not available in bar replay. Replay rewinds the chart symbol only, so the correlated symbol keeps returning its live data and the two grids no longer line up; the table reports Misaligned and no divergence is drawn. That is the alignment guard working, not a fault. Every other feature reads from the chart symbol and replays normally.
Everything drawn is context. There are no entry or exit instructions, no directional calls, and no performance claims of any kind. It reports what has happened on the higher timeframe.
This is a market-analysis tool, not financial advice. Past market behaviour does not indicate future results. Test any tool thoroughly and trade your own plan.
Indicator

ALGOSMART ASSIST v2ALGOSMART TECHNICAL ASSIST - Advanced Smart Money & Market Structure Indicator
The ALGOSMART ASSIST indicator is an intelligent and highly advanced tool designed for analysts and traders who utilize Smart Money Concepts (SMC) and Price Action. This powerful script automates your chart analysis by identifying and drawing all vital market structures in real-time.
Key Features:
Market Structure Mapping: Automatically detects and plots Break of Structure (BOS) and Change of Character (CHoCH). You can customize the structure type to map with or without Inducement (IDM).
Supply & Demand Zones: Accurately draws Points of Interest (POI) and Supply/Demand order blocks. Mitigated zones automatically change color.
Liquidity Sweeps: Highlights crucial daily highs and lows (PDH/PDL) and displays sweep lines.
Specific Candle Patterns: Toggle the detection of important candlestick patterns such as Inside Bars (ISB), Outside Bars (OSB), and Strong Change of Character Bars (SCOB).
Live Tracking: Projects dynamic, real-time lines for BOS, CHoCH, and IDM directly to the live price edge.
Additional Assistive Tools: Displays the 0.5 Equilibrium level, marks major swing points (HH, HL, LL, LH), and automatically calculates potential Target Profits.
Original base script by AlbaTherium & Ma Bang Chu. Modified, Updated and Enhanced by Crypto Smart. Indicator

Renko Size TableSuggested Renko brick sizes at a glance, across four timeframes at once — no chart switching, no one indicator per interval.
Each row shows half of the timeframe's ATR (the common brick-size rule of thumb) in both price and ticks, over its own lookback in days. Two reads sit side by side:
- ATR / Half ATR / Ticks — the live, EMA-smoothed average true range. Reacts to the current session.
- Med ATR / Med Half ATR / Med Ticks — the median of each recent day's mean true range. It holds steady through an outlier session (one hot news day out of ten barely moves it), so it's the more stable pick on volatile instruments.
The suggested brick size is the Ticks (or Med Ticks) column.
Options: four timeframes with individual ATR-in-days lookbacks, an "ignore gaps" toggle to exclude the session-open gap, decimals, table position, text size, and colors.
Important: place it on a chart timeframe at or below the smallest row — a 1-minute chart for the 1/5/15/60 defaults. PulseWire can only feed a higher-or-equal timeframe into each row; a row below the chart timeframe is flagged rather than shown wrong. Give it a couple of sessions to settle, since the ATR period is learned from how many bars each session holds. Indicator

3m Cycles3m Cycles is a PulseWire indicator that draws vertical lines on your chart at fixed clock-based time intervals — every 20 seconds, every 1 minute, and every 3 minutes — to help you visually track recurring market cycles.
Each cycle is fully independent and configurable: you can set the line color, width, and style (solid, dashed, or dotted), control how far back and ahead the lines project, and choose which chart timeframes each cycle appears on. The 3-minute cycle acts as the master clock — all three cycles' visible windows shift forward together every time a new 3-minute boundary is crossed, keeping everything in sync. Lines are pre-drawn into the future so they're already on the chart before the candle forms, and they automatically disappear once they fall outside your configured lookback window. Indicator

XI0033 Williams FractalA Williams fractal confirms late by definition: the pattern is complete only after the bars to its right have closed, so the marker always appears in the past. This script keeps the classic fractal template — three- or five-bar — and adds the one thing the classic version cannot show: the bar that is about to become a fractal, before the confirmation arrives.
It draws triangles for confirmed fractal highs and lows, plus one highlighted triangle for the last potential fractal on the live edge. Nothing else: no lines, no levels, no signals.
Confirmed fractals
A fractal high is a bar whose high stands above the highs of its neighbours; a fractal low mirrors that on the lows. The 3-bar mode compares one neighbour on each side, the 5-bar mode two on each side — the original Bill Williams definition. The Periods input sets how many bars back the reference bar sits. Confirmed fractals are painted as muted grey triangles above the highs and below the lows, and once the pattern that produced them is closed, they are history: they do not move and do not disappear.
Confirmed fractal highs and lows in the muted default colour: every triangle marks a bar whose extreme beat its neighbours on both sides, printed only after the pattern completed.
The last potential fractal
This is the addition. One bar to the right of the last confirmable centre there is always a candidate: a bar already higher (or lower) than its closed neighbours, waiting only for the current bar to keep its distance. The script highlights that candidate with an orange triangle — pointing down above a potential high, pointing up below a potential low — so the developing swing is visible before it becomes official.
The highlight exists only on the live bar. It is recalculated tick by tick, disappears the moment price violates the candidate, and is deliberately dropped on the bar's final update, so it never leaves a trace in the chart history. Scroll back and you will find only confirmed fractals.
Left: the orange triangle under the newest low is the last potential fractal. Right, a few bars later: that low now carries a grey confirmed triangle — the preview left no trace — and a new potential fractal already sits above the latest high.
What repaints, and what does not
The potential marker repaints by design — that is its job. It is a live preview that appears, moves and vanishes with the current bar, and it is intentionally not committed to history. Confirmed fractals in the default 3-bar mode are built from closed bars only, so once a triangle prints, it is final. In the 5-bar mode with the default period, the newest confirmation still involves the forming bar's extreme, so it can appear and be withdrawn until that bar closes; after the close it is final. And every confirmed fractal is late by definition — the triangle appears above a bar that is already in the past, because that is what confirmation means.
What is reused, and what is new
The confirmed-fractal logic is the classic Bill Williams fractal template as coded by Mit Nayi, reused open-source with attribution in the source header. What this edit adds: the port to Pine Script v6, and the whole potential-fractal layer — the candidate detection one bar to the right of the confirmable centre, and the barstate mechanism that shows the preview on the live bar only and drops it on the bar's final update, so it never piles up in history.
What it does not do
It gives no signals. A fractal marks a local extreme, and most local extremes get traded through; on their own they are not entries. This is a structural marker — swing logic, liquidity maps and ICT-style analysis use fractals as raw material, and the potential marker only tells you where the next one may appear. The decision stays yours.
The Inputs allow you to set:
Periods: how many bars back the fractal centre sits; the triangles are drawn on that centre bar
3 or 5 Bar Fractal: one or two neighbours compared on each side
Show last potential fractal: the live-edge preview on or off
Potential down and up fractal colours
About the chart
BYBIT:BTCUSDT.P, 5-minute chart. The only script on it is this one, with default settings: muted grey triangles mark confirmed fractal highs and lows across the chart, and the orange triangle at the right edge is the last potential fractal, not yet confirmed. No other indicators, no drawings. Indicator

CandelaCharts - MTF FVG Alignment📝 Overview
The CandelaCharts - MTF FVG Alignment indicator detects Fair Value Gaps (FVGs) across up to four customizable timeframes and visualises them directly on the chart. A Fair Value Gap is a three-candle pattern where price moved so rapidly that an unfilled area remains between the high of the first candle and the low of the third candle, representing a price imbalance the market often returns to fill.
The core strength of this indicator is Confluence . An alignment signal is generated only when every enabled timeframe shows FVGs in the same direction (all Bullish or all Bearish), giving traders a powerful multi-timeframe confirmation before taking a position.
📦 Features
Four-Timeframe Analysis : Track up to four independent timeframes simultaneously with per-TF toggle and FVG count.
Confluence Alignment : Automatic detection of Bullish or Bearish alignment across all enabled timeframes.
Bias Filter : Filter displayed FVGs to show only Bullish, only Bearish, or both (Neutral).
FVG Mitigation : FVGs are automatically invalidated and removed from the chart once they are fully filled by price action.
Hide Overlapped : Clean up chart clutter by automatically hiding lower-timeframe or older FVGs that overlap with others.
Fibonacci Levels : Optional Fibonacci retracement levels (0.236, 0.382, 0.5, 0.618, 0.65, 0.705, 0.786) drawn inside each FVG with a highlighted Golden Pocket zone (0.705–0.786).
FVG Visuals : Semi-transparent boxes showing active FVGs for each timeframe, with configurable borders and midlines.
Status Dashboard : A clean table showing the current directional status (Bullish / Bearish / None) for each enabled timeframe.
⚙️ Settings
Timeframes
TF 1–4: Each timeframe row has a toggle (show/hide), a timeframe selector, and an FVG count (1–10) controlling how many recent FVGs are displayed for that timeframe. Defaults are 1D, 4H, 1H, and 15m.
Settings
Bias Filter: Filter displayed FVGs by direction — Neutral (show all), Bullish (show only bullish FVGs), or Bearish (show only bearish FVGs).
Bull / Bear Colors: Customise the colours used for bullish and bearish FVG zones.
Border: Toggle the FVG box border and configure its style (Solid, Dotted, Dashed) and width (1–5).
Midline: Toggle the Consequent Encroachment midline inside each FVG and configure its style and width. When enabled, the timeframe label moves outside the box.
Fibonacci: Toggle the drawing of Fibonacci retracement levels inside each FVG, including the highlighted Golden Pocket (0.705–0.786).
Hide Overlapped: Toggle whether to hide overlapping FVGs across different timeframes to keep the chart clean (prioritising higher timeframes).
Dashboard
Show: Toggle the multi-timeframe status dashboard.
Position: Choose the dashboard corner — Top Right, Top Left, Bottom Right, or Bottom Left.
⚡️ Showcase
Multi-Timeframe FVG Boxes
Fibonacci Levels & Golden Pocket
Status Dashboard
🔎 Usage
Trend Identification : Glance at the dashboard to see the current bias of each higher timeframe at a glance.
Confluence : When all enabled timeframes align in the same direction, it provides strong multi-timeframe confluence for a directional trade.
Fibonacci Entries : Use the Fibonacci levels inside each FVG — particularly the Golden Pocket (0.705–0.786) — for precise entries when price retraces into the gap.
Bias Filtering : Set the Bias Filter to Bullish or Bearish to remove counter-trend FVGs and keep the chart focused on your directional thesis.
Execution : Use the alignment as confirmation for your existing strategy. Bullish alignment suggests upward momentum; Bearish alignment suggests downward momentum.
⚠️ 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

Market Dictionary [GBB]Can price be translated into a language?
I wondered if it could. So I built a dictionary for the market. This
indicator is that dictionary — including everything it does NOT say.
How it reads the chart: Every bar, the recent closes are reduced to
their shape and spelled as a short word — a few letters describing where
price sat along the way, from a (lowest zone) up to the top of the
alphabet (highest zone). A sharp drop that goes quiet spells "ddaa". With
short words and a small alphabet, the market has a finite vocabulary:
256 words in the standard config, 6,561 in the long one. Every bar on
your chart is speaking exactly one of them.
The readout:
The current word translated into plain English:
"THE MARKET JUST SAID: sharp drop, now quiet at the lows" — plus how
many times this exact word has been seen on your chart and how rare
that is. A description of shape, not a signal.
The regime wash. The background tinted by the word's temperature —
toward red when the word lives in the low zones, toward green in the
high zones, stronger when the shape is more extreme.
The letter ribbon. A letter-colored track under price showing the
letter each bar is writing right now. Calm markets babble; you will see
the tone shift.
The Lexicon Panel
The full dictionary entry: seen-count, rarity
percentile, and causal win rate / average forward return over the next
1, 4 and 16 bars, computed on your chart's history with nothing peeking
into the future — each line carrying its validation verdict. Faint
numbers mean thin data, on purpose: your eyes should trust a statistic
exactly as much as the sample deserves.
Events. When the chart prints a word it has NEVER printed before,
you get a violet flare: "NEVER SEEN BEFORE". And on exactly two
market/timeframe combinations, a gold marker when a study-validated
word completes (more on both below — read the caveats).
Most words mean nothing
"no significant edge" is its most common verdict, by design.
Rare words looked like they preceded volatility in-sample on 5 of 7
markets. Out of sample: 0 of 28 configurations passed. The
"NEVER SEEN BEFORE" flare is a curiosity flag, and its own tooltip
tells you rarity's predictive power is not confirmed.
The vocabulary itself is remarkably stable: in 25 of 28 configurations
the word frequencies stayed the same from the research years into the
held-out years. Markets from 2008 and 2025 speak the same language.
It just mostly is not saying anything predictive.
Two words survived everything: "ddaa" on gold H1 (564 out-of-sample
occurrences; remained net-positive after median spread cost in the
study — informational, not a recommendation) and one BTC 1h pattern
that passed at 69% degradation against a 70% cutoff with 38 samples —
the panel labels that one "marginal" because that is what it is.
The surviving edges are breakpoint-fragile: they appear under the
empirically fitted letter boundaries, not under textbook Gaussian ones.
I tell you this because it is a real limitation.
What this tool is
A translator, not a signal. It tells you what the
current shape is called, how common it is, and what the record shows,
with the verdict attached to every number. Whether any of that adds
something to YOUR strategy is your test to run — that is not a
disclaimer, it is the design.
Frozen parameters
The letter boundaries, variance gates, and rarity
thresholds are hardcoded from the validation study (2026-07) and cannot
be edited or refit — there is deliberately no adaptive mode, because
refitting live would detach the display from its validation. Crypto
combos were validated on Binance USDT-M perpetual data; the indicator
accepts the same symbol on other venues since perp prices track closely
across exchanges — the panel tooltip names the exact validated
instrument. The panel's live statistics (seen-counts, win rates,
averages) are built from your chart's visible history; the validation
verdicts are not — they are the study's hardcoded results. On markets
outside the study, the indicator runs in EXPLORER MODE: fully functional,
clearly labeled, and it will never show you a validation star it did not
earn.
No Repainting:
Words finalize on bar close; statistics
update only when their forward horizons complete; nothing is drawn on
unconfirmed bars. Don't take my word for it: open bar replay, step
through a session, and try to catch a value changing after its bar
closes.
Indicator

Indicator

AutoFractal MTF Adaptive Projection [Aaron Diaz]TITLE
AutoFractal MTF Adaptive Projection
ENGLISH DESCRIPTION
OVERVIEW
AutoFractal MTF Adaptive Projection searches for historical price structures that resemble a user-defined current structure. The historical search timeframe is independent from the chart timeframe, so a trader can view a daily chart while searching for analogs on 4-hour, 2-hour, daily, or other supported timeframes.
The script is designed as a market-structure comparison and scenario-projection tool. It does not generate buy or sell signals, and its projected path must not be interpreted as a guaranteed forecast.
HOW IT WORKS
1. Historical search range
The user selects a start date, an end date, and a historical source timeframe. The script evaluates candidate structures only inside that selected period.
2. Current target structure
The structure to be matched can be defined using the latest N chart bars or a manual date range on the current chart.
3. Normalized comparison
Historical and current structures are compared using normalized log returns rather than absolute prices. This allows patterns from different price levels and different market regimes to be compared on a proportional basis.
4. Composite similarity score
Each historical candidate receives a score based on:
- Shape and correlation.
- Retracement and Fibonacci behavior.
- Relative amplitude.
- Directional agreement.
Inverse fractals can be enabled when the user wants to compare a bullish structure with an inverted bearish analog, or vice versa.
5. Adaptive projection
After a match is selected, the script uses the historical continuation as an analog scenario. Three adaptation methods are available:
- Percentage: adapts the historical continuation using proportional price movement.
- Fibonacci: adapts the continuation using the relationship between historical and current structural ranges.
- Smart hybrid: combines percentage and Fibonacci adaptation.
The script can automatically adapt both price amplitude and time duration to the current structure.
6. Manual drawing controls
The automatically fitted historical path and future projection can be adjusted independently. Users can change their height, width, horizontal position, and vertical position without changing the historical match itself.
VISUAL OUTPUTS
- Historical match box: marks the selected analog period.
- Fitted historical pattern: overlays the normalized historical structure on the current target.
- Future projection: displays the continuation that followed the historical analog, adapted to the current structure.
- Diagnostics table: shows the search timeframe, matched dates, total score, correlation, retracement score, amplitude scale, time scale, and number of evaluated candidates.
BASIC USE
1. Select the historical search timeframe.
2. Select the historical start and end dates.
3. Define the current target structure.
4. Set the historical pattern length and future projection length.
5. Adjust the minimum score and scoring weights if necessary.
6. Choose Percentage, Fibonacci, or Smart hybrid adaptation.
7. Use the manual drawing controls only after reviewing the automatic fit.
INTERPRETATION
The total score measures similarity under the script's selected criteria. It is not a probability of the projected path occurring. A high score means that the compared structures are mathematically similar according to the configured inputs; it does not mean that market context, liquidity, news, volatility, or order flow are identical.
LIMITATIONS
- Historical analogs can fail and should not be treated as deterministic forecasts.
- Results depend on the selected date range, timeframe, pattern length, score weights, and available historical data.
- Enabling the current unconfirmed bar can cause the selected match and projection to change intrabar.
- Lower-timeframe searches may require more data and processing resources.
- Manual resizing improves visual alignment but does not increase the statistical validity of the match.
- The indicator does not provide entries, exits, stop losses, or position sizing.
OPEN-SOURCE REUSE AND CREDITS
This script is a derivative work based in part on the open-source script "Auto Fractal " originally published by TheUltimator5.
Original author and original portions:
TheUltimator5
Substantial redesign, new logic, and additional code:
Aaron Diaz
The derivative adds independent multi-timeframe searching, date-restricted candidate selection, normalized log-return matching, composite scoring, adaptive percentage/Fibonacci projections, time and amplitude scaling, manual fit controls, and expanded diagnostics.
This publication is open-source and retains attribution to the original author under PulseWire's open-source reuse rules and the Mozilla Public License 2.0.
DISCLAIMER
This indicator is provided for educational and analytical purposes only. It is not financial advice. Historical similarity does not guarantee future similarity. Users remain responsible for their own analysis, risk management, and trading decisions.
DESCRIPCION EN ESPANOL
RESUMEN
AutoFractal MTF Adaptive Projection busca estructuras historicas del precio que se parezcan a una estructura actual definida por el usuario. La temporalidad historica funciona de manera independiente a la temporalidad visible del grafico, por lo que es posible observar un grafico diario mientras se buscan analogias en 4 horas, 2 horas, diario u otras temporalidades compatibles.
El indicador funciona como una herramienta de comparacion estructural y proyeccion de escenarios. No genera senales de compra o venta y la ruta proyectada no debe interpretarse como una prediccion garantizada.
COMO FUNCIONA
1. Rango historico
El usuario selecciona una fecha inicial, una fecha final y la temporalidad historica. El script evalua candidatos solamente dentro de ese periodo.
2. Estructura actual
La estructura que se quiere comparar puede definirse mediante las ultimas N velas del grafico o mediante un rango manual de fechas.
3. Comparacion normalizada
Las estructuras se comparan mediante rendimientos logaritmicos normalizados y no mediante precios absolutos. Esto permite comparar patrones ocurridos en niveles de precio y condiciones de mercado diferentes.
4. Puntuacion compuesta
Cada candidato recibe una puntuacion basada en:
- Forma y correlacion.
- Retrocesos y comportamiento Fibonacci.
- Amplitud relativa.
- Direccion.
Tambien se pueden permitir fractales inversos.
5. Proyeccion adaptativa
El indicador utiliza la continuacion posterior del fractal historico como un escenario analogo. Existen tres metodos:
- Percentage: adapta porcentualmente el movimiento historico.
- Fibonacci: adapta la continuacion de acuerdo con la relacion entre los rangos historico y actual.
- Smart hybrid: combina ambos metodos.
La amplitud y la duracion temporal pueden adaptarse automaticamente a la estructura actual.
6. Ajuste manual
El patron historico ajustado y la proyeccion futura pueden modificarse por separado en altura, ancho y posicion, sin cambiar el fractal historico seleccionado.
INTERPRETACION Y LIMITACIONES
La puntuacion total mide similitud matematica bajo los parametros elegidos; no representa la probabilidad de que la proyeccion se cumpla. Los resultados pueden cambiar al modificar las fechas, la temporalidad, la longitud, los pesos o al incluir una vela sin cerrar. La herramienta no proporciona entradas, salidas, stop loss ni tamano de posicion.
CREDITOS
Este script es una obra derivada basada parcialmente en el script abierto "Auto Fractal ", publicado originalmente por TheUltimator5.
Autor original y partes originales:
TheUltimator5
Rediseno sustancial, nueva logica y codigo adicional:
Aaron Diaz
La publicacion se realiza como codigo abierto, conserva la atribucion correspondiente y mantiene la licencia Mozilla Public License 2.0.
AVISO
Este indicador tiene fines educativos y de analisis. No constituye asesoria financiera. La similitud historica no garantiza que el mercado repita el mismo comportamiento.
Indicator

Fractal Support & Resistance Zones invincible]Fractal Support & Resistance Zones
Fractal Support & Resistance Zones is an advanced market-structure and price-reaction framework designed to identify, evaluate, and dynamically manage support and resistance zones derived from confirmed fractal pivots.
Unlike traditional support and resistance indicators that simply draw horizontal levels at swing highs and lows, this indicator treats every zone as a dynamic market structure object. Each zone develops through its own lifecycle based on price interaction, independent retests, reaction strength, penetration, estimated buying and selling activity, structural confirmation, trend alignment, and eventual support/resistance role reversal.
The objective is not simply to show where price previously turned.
The objective is to evaluate which zones are still technically relevant, which have gained confirmation, which are weakening, and which may provide better structural trade locations.
---------------------------------------------------------------------------------------------
Fractal-Based Zone Detection
The indicator identifies two independent classes of fractal pivots:
Weak Fractals
Shorter-length pivots designed to capture local price reactions and minor structural turning points.
Major Fractals
Higher-strength pivots based on a larger fractal window. These represent more significant swing highs and swing lows and receive greater importance within the zone-quality model.
Fractal support zones are created from confirmed pivot lows, while fractal resistance zones are generated from confirmed pivot highs.
The detection timeframe can be independently selected, allowing zones from a higher timeframe to be displayed on a lower-timeframe chart.
Higher-timeframe fractal data is requested with lookahead disabled to prevent future data from being intentionally introduced into the pivot calculation.
---------------------------------------------------------------------------------------------
Dynamic Support and Resistance Zones
The indicator creates price zones rather than single horizontal lines.
Markets rarely react from one exact price. Orders, liquidity, and previous positioning are often distributed across a price range. The zone model therefore attempts to represent the broader reaction area surrounding a fractal pivot.
Three zone-width methods are available:
ATR
Zone width is calculated from Average True Range and automatically adapts to market volatility.
Pivot Candle
The structure of the original fractal candle is used to determine the zone width.
Hybrid Candle + ATR
Combines pivot-candle structure with an ATR-based volatility limit.
The hybrid method is designed to prevent unusually large pivot candles from creating excessively wide support or resistance areas.
A minimum tick-based width can also be configured for instruments with very small price movements.
---------------------------------------------------------------------------------------------
Fractal Zone Clustering
Markets frequently produce several nearby fractal pivots around the same price area.
Drawing every pivot independently can create overlapping boxes and unnecessary chart congestion.
The indicator therefore includes a fractal clustering engine.
Nearby same-side fractals may be merged into a common structural zone when:
* They are within the configured ATR merge distance.
* The resulting merged zone does not exceed the maximum permitted ATR width.
* The maximum cluster count has not been exceeded.
* Fresh major zones are not being merged into previously tested or damaged zones when protection is enabled.
The cluster count becomes one component of the zone-quality model.
A cluster does not automatically mean a zone is strong. It simply indicates that multiple independent fractal structures developed around a similar price area.
---------------------------------------------------------------------------------------------
Independent Retest Detection
A major feature of the indicator is the distinction between bars inside a zone and independent zone retests.
If price remains inside a support or resistance area for several candles, those candles are not counted as multiple tests.
A new test is counted only after price:
1. Interacts with the zone.
2. Moves sufficiently away from the zone.
3. Travels the configured ATR reset distance.
4. Returns to the zone again.
This creates a more realistic retest model and avoids artificially increasing the test count during sideways congestion.
The label displays the number of independent tests recorded for each selected zone.
---------------------------------------------------------------------------------------------
ATR-Based Reaction Measurement
After an independent zone retest, the indicator measures how strongly price reacts away from the zone.
Reaction strength is normalized using ATR.
For a support zone, the engine measures upward movement from the reaction anchor.
For a resistance zone, the engine measures downward movement from the reaction anchor.
The strongest reaction generated by the zone is stored as its **Best Reaction ATR**.
Two configurable reaction thresholds are used:
Verified Reaction
The zone has produced the minimum ATR reaction required for technical validation.
Proven Reaction
The zone has generated a stronger ATR reaction and has also accumulated sufficient independent testing.
This prevents a zone from receiving a high structural status simply because price briefly touched it.
The market must demonstrate an actual directional response.
---------------------------------------------------------------------------------------------
Dynamic Zone Status System
Every zone is continuously classified according to its current structural condition.
FRESH
A newly created major zone that has not yet received an independent retest.
Fresh zones may represent relatively untouched structural areas.
WEAK
A zone originating from the shorter weak-fractal detection model.
Weak zones can still produce valid reactions but receive a lower fractal-grade contribution in the quality model.
VERIFIED
A zone that has been tested and remains structurally active.
Reaction behaviour and zone validation contribute dynamically to its score.
PROVEN
A zone that has accumulated multiple independent tests and generated a reaction exceeding the configured Proven Reaction ATR threshold.
Proven zones represent areas with demonstrated historical reaction behaviour.
DAMAGED
Price has penetrated a configurable percentage of the zone.
A damaged zone has not necessarily broken, but deeper penetration reduces its quality score.
BROKEN
Price has invalidated the zone according to the selected break-confirmation method.
Break confirmation can use either:
* Close Beyond Zone
* Full Candle Beyond Zone
Broken zones may optionally remain visible for historical analysis.
FLIPPED SUPPORT / FLIPPED RESISTANCE
A previously broken zone has confirmed a structural role reversal.
Previous support may become resistance.
Previous resistance may become support.
The indicator does not immediately flip a zone when price crosses it. A separate role-reversal confirmation process is required.
---------------------------------------------------------------------------------------------
Zone Damage and Penetration Tracking
Zone quality is not binary.
A support or resistance area may gradually weaken before it completely breaks.
The indicator continuously measures the maximum percentage of zone penetration.
For support, penetration is measured downward through the support area.
For resistance, penetration is measured upward through the resistance area.
When penetration exceeds the configured damage threshold, the zone is classified as ** DAMAGED
Damage also applies a progressive penalty to the quality score.
This means a deeply penetrated zone may remain technically valid while receiving a lower structural ranking.
---------------------------------------------------------------------------------------------
Support and Resistance Role Reversal
The indicator contains a dedicated zone-flip engine.
After a support or resistance zone breaks, the engine monitors whether price moves sufficiently beyond the former zone.
The broken zone must first establish separation from price using a configurable ATR distance.
Price must then return to the previous structural area.
Depending on the selected confirmation mode, the indicator can require:
Zone Reclaim Only
The opposite-side retest itself is sufficient.
Close Away
Price must close a configurable ATR distance away from the zone.
Rejection or Engulfing
The retest can be confirmed through rejection behaviour, an engulfing candle, or a sufficiently strong close away from the zone.
Once confirmed:
* Broken support can become resistance.
* Broken resistance can become support.
The zone is then reset into a new lifecycle as a flipped structural area.
---------------------------------------------------------------------------------------------
Estimated Buy and Sell Activity
The indicator includes an estimated directional volume model.
Because standard PulseWire volume does not directly provide true executed bid and ask volume for every market, buying and selling activity is estimated from candle position within the candle range.
A close nearer the candle high allocates a greater portion of volume to estimated buying activity.
A close nearer the candle low allocates a greater portion of volume to estimated selling activity.
The model can use:
* Pivot volume only.
* Pivot volume plus independent retest activity.
Selected zone labels display estimated activity as:
B 64% | S 36%
This should be interpreted as an estimated directional participation model rather than true exchange-level order-flow delta.
---------------------------------------------------------------------------------------------
Multi-Factor Zone Quality Model
Every zone receives a dynamic quality score from 0 to 10.
The score is not based on a single condition.
The model combines several structural factors.
Fractal Grade
Major fractals receive a stronger contribution than weak fractals.
Rejection Wick
The pivot candle's rejection wick is normalized against ATR.
Larger relative rejection can increase the origin score.
Independent Retests
The model evaluates how many genuinely independent zone tests have occurred.
Importantly, unlimited retests do not continuously improve quality.
Excessive testing can weaken a zone.
Reaction Strength
The strongest measured ATR reaction contributes to zone validation.
Estimated Volume Confirmation
Pivot volume participation and directional estimated activity contribute to the score.
Fractal Cluster
Multiple nearby fractals can increase structural confidence.
Freshness
Newer zones receive a greater freshness contribution.
As a zone ages, this component gradually decreases.
The weight of every major quality component can be adjusted by the user.
---------------------------------------------------------------------------------------------
Origin Score and Validation Score
Internally, the quality engine separates zone evaluation into two conceptual stages.
Origin Quality
Evaluates how the zone was created.
This includes:
* Fractal grade.
* Pivot rejection wick.
* Pivot volume participation.
* Fractal clustering.
* Zone freshness.
Validation Quality
Evaluates what price did after the zone was created.
This includes:
* Independent retests.
* Reaction strength.
* Directional estimated activity.
Fresh zones are influenced more heavily by origin quality.
As price begins interacting with a zone, validation behaviour receives greater influence.
This allows the quality score to evolve with market behaviour rather than remaining permanently fixed at zone creation.
---------------------------------------------------------------------------------------------
Retest Exhaustion Penalty
A common assumption is that more support or resistance tests always make a zone stronger.
This indicator does not use that assumption.
Repeated interaction may gradually consume resting liquidity around a price area.
After the configured number of retests, the indicator begins applying an excess retest penalty.
The penalty increases with each additional independent test.
As a result, a heavily tested zone may receive a lower quality score even if it has not formally broken.
---------------------------------------------------------------------------------------------
Congestion Penalty
Price remaining inside a zone for an extended period may indicate balance, absorption, or structural deterioration.
The indicator tracks consecutive bars interacting with each zone.
After the configured congestion threshold, a progressive quality penalty is applied.
This helps distinguish a clean rejection from prolonged price acceptance inside the area.
---------------------------------------------------------------------------------------------
Trend Regime Alignment
An optional EMA-based trend regime is included in the quality model.
Support zones located in an unfavourable bearish regime can receive a counter-trend penalty.
Resistance zones located in an unfavourable bullish regime can also receive a penalty.
The trend filter does not automatically delete zones.
Instead, it modifies their relative quality.
This allows historically valid support and resistance areas to remain visible while acknowledging the current directional regime.
---------------------------------------------------------------------------------------------
Market Structure Break Detection
The indicator includes an independent Market Structure Break, or **MSB**, engine.
Confirmed swing highs and swing lows are detected using a configurable pivot length.
A bullish MSB occurs when price closes above the latest eligible structural high with sufficient momentum confirmation.
A bearish MSB occurs when price closes below the latest eligible structural low with sufficient negative momentum confirmation.
Momentum is normalized using a Z-score calculated from recent price changes.
This reduces the number of minor structural crossings classified as meaningful breaks.
Each structural pivot can generate only one MSB event, preventing repeated labels from appearing after the same swing has already been broken.
---------------------------------------------------------------------------------------------
Zone-to-Structure Confirmation
Market Structure Breaks can also validate previously tested zones.
When a bullish MSB occurs, the indicator searches for a recently touched support zone.
When a bearish MSB occurs, it searches for a recently touched resistance zone.
The most recent eligible zone can receive structural confirmation.
A configurable quality bonus is then applied.
This creates a basic structural sequence:
Zone interaction → Price reaction → Market Structure Break
The intention is to distinguish zones that merely produced a temporary bounce from zones followed by a measurable structural shift.
---------------------------------------------------------------------------------------------
Premium and Discount Trade Location
The indicator uses the latest structural swing high and swing low to estimate the current swing midpoint.
The midpoint represents the 50% equilibrium level of the structural range.
When Premium/Discount grading is enabled:
* Support zones are favoured when positioned in the discount portion of the swing.
* Resistance zones are favoured when positioned in the premium portion of the swing.
This condition contributes to the displayed Trade Grade.
It does not remove zones from the chart.
---------------------------------------------------------------------------------------------
Trade Grade System
Selected zones receive a simplified structural trade grade.
Grade A+
Reserved for high-quality zones with strong alignment between:
* Zone quality.
* Trend regime.
* Premium/discount location.
* Low structural damage.
* Limited retest exhaustion.
Grade A
Strong-quality zones with favourable trend alignment and low damage.
Grade B
Moderate-to-strong structural zones that are not classified as weak fractals.
Grade C
Lower-quality but still technically visible zones.
Grade D
Zones with poor overall structural quality.
The Trade Grade is a contextual ranking system.
It is not an automatic buy or sell signal.
---------------------------------------------------------------------------------------------
Star-Based Quality Display
To make the detailed labels easier to read, the numerical quality model is represented using stars.
★★★★★ = Quality 8.0 or higher
★★★★ = Quality 6.0 to 7.99
★★★ = Quality 4.0 to 5.99
★★ = Quality 2.0 to 3.99
★ = Quality below 2.0
The stars provide a quick visual representation of the underlying 0–10 quality score.
---------------------------------------------------------------------------------------------
Compact Detailed Labels
Selected zones can display compact one-line labels such as:
VERIFIED SUP | B 64% | S 36% | ★★★★ | Tests: 2 | Grade A
The label contains:
* Current zone status.
* Support or resistance classification.
* Estimated buying activity.
* Estimated selling activity.
* Quality stars.
* Independent retest count.
* Structural Trade Grade.
Because displaying a detailed label on every zone can create significant chart congestion, two label modes are available.
Nearest + Strongest
Prioritizes the nearest support, nearest resistance, and the highest-quality remaining zones.
All Visible Zones
Displays labels for every currently visible zone.
The maximum number of detailed labels can also be controlled.
---------------------------------------------------------------------------------------------
Nearest Zone Highlighting
The indicator continuously identifies:
* The nearest active support below price.
* The nearest active resistance above price.
These zones can receive stronger border highlighting.
This makes the most immediately relevant structural areas easier to identify without removing historical zones from the chart.
---------------------------------------------------------------------------------------------
Structural Equilibrium Zone
The latest confirmed structural swing high and swing low are used to calculate a 50% equilibrium area.
The indicator plots:
* Swing origin.
* Swing destination.
* 50% midpoint.
* Configurable equilibrium zone thickness.
Before price interacts with the equilibrium area, the zone is displayed as the current structural midpoint.
After price touches the area, the indicator changes its state to:
Equilibrium touched · wait for structure
This is intended to remind the trader that equilibrium interaction alone is not necessarily directional confirmation.
Additional market structure may be required.
---------------------------------------------------------------------------------------------
Alert Conditions
The indicator provides alert conditions for important zone and market-structure events:
* New fractal support zone.
* New fractal resistance zone.
* Independent zone retest.
* Zone verified by ATR reaction.
* Zone reaching Proven status.
* Zone becoming Damaged.
* Zone break.
* Support/resistance role reversal.
* Bullish Market Structure Break.
* Bearish Market Structure Break.
These alerts can be used to monitor structural changes without continuously watching the chart.
---------------------------------------------------------------------------------------------
Suggested Interpretation
This indicator is designed as a market context and structural analysis tool.
A possible analytical workflow is:
1. Identify the nearest active support and resistance.
2. Review the zone's current status.
3. Check estimated buy/sell activity.
4. Evaluate the quality stars.
5. Review the independent test count.
6. Check whether the zone is fresh, validated, damaged, or exhausted.
7. Evaluate trend alignment.
8. Check premium or discount location.
9. Observe whether price produces a structural break after the zone reaction.
10. Use the Trade Grade as an additional contextual ranking.
No single factor should be interpreted independently.
A five-star zone can still break.
A damaged zone can still generate a reaction.
A weak fractal can still become structurally relevant.
The purpose of the model is to organize multiple price-action variables into a consistent framework.
---------------------------------------------------------------------------------------------
Important Volume Note
The Buy and Sell percentages displayed by this indicator are estimated directional volume statistics.
They are calculated by allocating candle volume according to the closing position within the candle's high-low range.
They do not represent true bid/ask volume, footprint delta, or exchange-level aggressive buying and selling.
The values should therefore be used as a relative activity estimate only.
---------------------------------------------------------------------------------------------
Non-Repainting Considerations
Fractal pivots require confirmation bars.
A zone is created only after the corresponding pivot has been confirmed by the selected fractal length.
Higher-timeframe fractal calculations use `lookahead_off`.
Therefore, historical zones should be interpreted from the point at which the fractal became technically confirmed rather than assuming the pivot was known at the exact swing candle in real time.
Market Structure Break conditions are also evaluated using confirmed price and momentum conditions.
---------------------------------------------------------------------------------------------
Final Note
Fractal Support & Resistance Zones is designed for traders who prefer **dynamic structural zones instead of static support and resistance lines**.
The indicator combines fractal structure, volatility-normalized zone construction, independent retests, reaction measurement, damage analysis, estimated directional activity, structural breaks, trend regime, premium/discount location, and role reversal into a unified zone lifecycle model.
It is intended to help answer three practical questions:
Where is the important price structure?
How has price behaved around that structure?
Is the zone gaining validation, remaining fresh, or gradually losing structural quality?
This indicator is intended for technical analysis and research purposes only. It does not constitute financial advice. Traders should independently evaluate market conditions and apply appropriate risk management.
Indicator

Bitcoin Almanac [WillyAlgoTrader]₿ Bitcoin Almanac is an overlay indicator that maps the entire Bitcoin macro landscape on one chart: a fixed-length cycle time model (bull/bear phases projected from a single anchor date), two hyperbolic curves fitted through historical cycle lows and cycle highs in log-price space, Fibonacci grids stretched between every macro pivot, halving markers, accumulation and distribution zones, and a hypothetical price path for the next bull leg — all summarized in a live dashboard with projected turn dates, curve prices, and historical correction depths.
The core insight: Bitcoin's completed cycles show a remarkably stable time rhythm (roughly 1064 days up, 364 days down) and a decelerating growth pattern that a hyperbola in log10(price) captures with surprisingly small error. Neither observation is a law of nature — but when the time model and the price curves are combined on one chart, they produce concrete, falsifiable reference points: a projected top date with a curve price, a projected bottom date with a curve price, and buy/sell zones derived from both. The indicator makes the whole framework explicit, configurable, and honest about its assumptions.
Everything is driven by dates and user-defined pivots — not by real-time price action — so nothing repaints: the lines you see today are the lines you saw yesterday.
🧩 WHY THESE COMPONENTS WORK TOGETHER
A cycle-date model alone answers WHEN but not AT WHAT PRICE. A curve through historical lows answers WHERE support migrates but not WHEN price will meet it. Fibonacci retracements answer WHERE pullbacks tend to end, but only if you know which macro leg to anchor them to. Used separately, each tool leaves you guessing at the missing dimension.
Bitcoin Almanac chains them into one pipeline:
Cycle time model (anchor + phase lengths) → projected turn dates → hyperbolic lows/highs curves → curve price AT each projected date → Fibonacci grids between macro pivots → 0.786–0.836 accumulation zones bounded by cycle end dates → ±% distribution zones around each high → replayed bull-path projection between the two curve endpoints → dashboard synthesis
The time model supplies the X-coordinate of every future event. The two hyperbolas supply the Y-coordinate: the lows curve is evaluated exactly at the projected bottom date, the highs curve exactly at the projected top date — the "◎ cycle × curve" labels mark these intersections with date and price. The Fibonacci grids are then anchored to the same pivots the curves are built from, so the 0.786–0.836 buy zone of the current leg stretches in time precisely to the model's next cycle-bottom date. Finally, the projection module takes the two curve × date intersections as endpoints and fills the path between them by replaying the shape of the previous bull phase in log space.
No single component can do this: the intersection of an independent time model with an independent price model is what turns two vague trajectories into specific, checkable coordinates.
🔍 WHAT MAKES IT ORIGINAL
1️⃣ Fixed-rhythm cycle engine — pure time math, zero price input.
The phase of any bar is computed directly from calendar time:
daysSince = (barTime − anchor) / 86 400 000
phasePos = daysSince mod (bullDays + bearDays)
isBull = phasePos < bullDays
Defaults: anchor = 07 Nov 2022, bullDays = 1064, bearDays = 364 (each ≈ the average of the three completed BTC cycles). A true mathematical modulo (always ≥ 0) phases bars BEFORE the anchor correctly, so past cycles line up too. With defaults this reproduces the well-known projected dates: top ≈ 06 Oct 2025, bottom ≈ 05 Oct 2026. An alternative anchor (21 Nov 2022 — the actual lowest trade of the cycle) is documented right in the input tooltip and shifts the bottom to 19 Oct 2026.
Why this matters: because the phase depends only on time, the bull/bear background, turn lines and flip alerts are deterministic and cannot repaint — the model's claims are fully falsifiable in advance.
2️⃣ Hyperbolic curve through cycle lows — exact geometry or least-squares fit, with the error printed on the chart.
The lows model is log10(price) = a + b / (c − t), where t is days from the first pivot. The hyperbola has a vertical asymptote in the past and a horizontal asymptote in the future — it encodes decelerating growth, which a straight log-regression line cannot.
— With exactly 3 enabled lows (default: Aug 2015 ≈ $169, Dec 2018 ≈ $3 122, Nov 2022 ≈ $15 476) the three parameters are solved exactly — the curve passes through the pivots by construction. This is geometry, not statistics, and the label says so: "exact through 3 lows".
— With 4+ enabled lows (three optional early-history slots: 2011, 2013, 2015 are provided) the indicator switches to a least-squares fit: a coarse log-spaced search over 250 candidate asymptote positions, followed by a 200-step linear refinement around the best candidate. The curve label then reports the number of points and the RMSE in log10 units — the fit quality is never hidden.
A fit is accepted only if b > 0 and the asymptote c lies before the earliest pivot — degenerate solutions are rejected and the curve simply doesn't draw.
3️⃣ Second independent hyperbola through cycle highs.
The same model is fitted to cycle tops (defaults: Nov 2013 ≈ $1 238, Dec 2017 ≈ $19 700, Nov 2021 ≈ $69 000, Oct 2025 ≈ $126 200 — four points, so LS fit with visible RMSE). A fifth, disabled slot exists only if you want to force the fit through your own future target; you never need it for the projection, because the future top is marked automatically at the crossing of the highs curve with the projected top date.
Why two curves: lows and highs decelerate at different rates. Fitting them independently (instead of offsetting one curve) lets the model express a narrowing channel without assuming its shape.
4️⃣ "Cycle × curve" intersection labels — the model's testable predictions.
At the projected bottom date the lows curve is evaluated: ◎ label with date ≈ price. At the projected top date the highs curve is evaluated: ◎ label with date ≈ price. These two points are the indicator's headline output — a date AND a price for each future turn, derived from two independent models. Both curves extend beyond their intersection as dashed lines (lows: default 10 years, highs: 5 years) to show the long-term trajectory.
5️⃣ Macro Fibonacci grids with a time-bounded 0.786–0.836 accumulation zone.
All enabled lows and highs are merged chronologically; every leg between two pivots of opposite type receives a grid (low→high = bull grid, high→low = bear grid; same-type neighbours are skipped). Levels are fully user-defined (default: 0, 0.236, 0.382, 0.5, 0.618, 0.786, 0.836, 0.886, 1; values > 1 add extensions).
Two non-standard options:
— Log-scale interpolation : level price = 10^(log10(pA) + f × (log10(pB) − log10(pA))) — matches a fib tool drawn on a log chart. Off by default (arithmetic levels for a linear chart).
— Reverse mode (default ON): ratio 0 sits at the END of the leg, so on a bull leg 0.618 is the classic retracement below the high.
The 0.786–0.836 zone of each bull leg is highlighted as a "BUY ZONE" box — and here is the original part: the box stretches in time from the leg start to the end date of the cycle the leg belongs to (the next projected cycle bottom). Depth from the fib model, deadline from the time model — the zone is a rectangle in (price × time), not just a price band.
6️⃣ Distribution zones tied to the cycle skeleton.
Every enabled high gets a "SELL ZONE" box spanning high ± sellPct (default 5% → from high × 0.95 to high × 1.05). The time span runs from the LATER of (a) the latest enabled low before that high or (b) the model's cycle bottom immediately preceding it — so a projected 2029 high starts its zone at the projected Oct-2026 bottom, not at a 2022 pivot. If no enabled high exists in the upcoming cycle, a projected sell zone is created automatically at the highs-curve × projected-date crossing (duplicate-guarded within half a cycle).
7️⃣ Bull-path projection — fractal replay of the previous bull, rescaled in log space.
The path for the NEXT bull phase (with defaults: 05 Oct 2026 → 03 Sep 2029) is drawn between two model-derived endpoints: start = lows curve at the projected bottom, end = highs curve at the following projected top. Two shapes:
— Replay last bull (default): the log-price trajectory of the previous bull phase is recorded bar by bar (confirmed bars only, thinned to ≤ 400 samples for memory safety on intraday timeframes), then linearly rescaled: y(progress) = yStart + (ref(progress) − ref(0)) × (yEnd − yStart) / (ref(1) − ref(0)). The result keeps the timing character of the last cycle — early acceleration, mid-cycle chop, late blow-off — mapped onto the new endpoints.
— Log-linear : a straight line on a log chart between the endpoints. The replay mode automatically falls back to log-linear if the reference phase covers less than 90% of the bull duration.
The path is explicitly labeled "◇ PROJECTED PATH (hypothetical)" — it is a scenario generator, not a forecast.
8️⃣ Corrections table — every macro drawdown since 2014, including the unfinished one.
The dashboard lists every completed high → following-low leg between enabled pivots since 2014 as a % drop (e.g. 2017–2018: −84%). If the latest pivot is a high with no low after it, the current correction is projected : measured from that high to the lows-curve price at the next model bottom, and marked "(proj.)" in accent color. You always see how the ongoing decline compares with history.
9️⃣ Full-transparency dashboard with a phase gauge and next-leg scenario PNL.
Four toggleable sections: Cycle (phase, day X / Y, ██████░░░░ progress gauge), Projection (top and bottom dates with days-left counters and curve prices, plus the hypothetical PNL of the next bull leg: (topCurve / bottomCurve − 1) × 100% and the × multiple), Corrections (see 8️⃣), Ranges (nearest upcoming buy range = the 0.786–0.836 zone prices; nearest sell range = the ±% zone around the next projected high). The footer states the calibration chart (INDEX:BTCUSD · W · linear scale, with a live ✓ when you're on it), a timeframe warning, and the sample-size caveat "⚠ Sample size: 3 cycles" — the model's biggest limitation is printed on the chart itself.
🔟 Efficient, tick-stable rendering.
All drawings (500+ polyline points, fib grids, boxes, dashboard) are anchored to bar-open times and first-bar curve fits — nothing changes within a bar. A redraw gate rebuilds them once per new bar instead of on every real-time tick, and both curve fits run exactly once on the first bar. The chart stays responsive even with all modules enabled.
📐 HOW IT WORKS — CALCULATION FLOW
Step 1 — Parse pivots: on the first bar, all enabled lows and highs are converted to (days-from-first-pivot, log10(price)) pairs.
Step 2 — Fit the curves: each set is fitted to log10(price) = a + b/(c − t) — exact solve for 3 points, two-stage least-squares search for 4+. Fit validity is checked (b > 0, asymptote before the data).
Step 3 — Phase every bar: calendar-time modulo against the anchor determines bull/bear phase, day-in-phase, and the timestamps of the current, next bottom and next top.
Step 4 — Evaluate intersections: the lows curve at the projected bottom date and the highs curve at the projected top date become the model's price targets.
Step 5 — Record the reference bull: during the anchor cycle's bull phase, confirmed closes are stored as (progress, log10 price) — the shape later replayed by the projection.
Step 6 — Draw (once per bar): turn lines and labels for N past and M future cycles, both hyperbolas with dashed extensions, fib grids per alternating pivot leg, buy/sell zone boxes, halving lines (2012 / 2016 / 2020 / 2024 solid, Apr 2028 dashed "(est.)"), the projected path, the dashboard and the watermark.
Step 7 — Alert: on confirmed bars, phase flips and the pre-turn countdown fire alert() calls in text or JSON format.
📖 HOW TO USE
🎯 Quick start:
1. Open the INDEX:BTCUSD chart, Weekly timeframe, regular (linear) price scale — the model is calibrated there, and the dashboard shows a ✓ when the symbol and timeframe match (the scale must be checked manually — Pine cannot detect it).
2. Add the indicator. The green/red background immediately shows the model's current phase; the dashboard shows the day count and progress gauge.
3. Find the two ◎ labels — the projected bottom (orange, lows curve) and the projected top (red, highs curve). These are the model's date + price coordinates for the next turns.
4. Check the yellow boxes: BUY ZONE (0.786–0.836 of the current bull leg, extended to the cycle end date) and SELL ZONE (±5% around each high).
5. Create ONE alert with condition "Any alert() function call" to receive flips and the pre-turn countdown.
👁️ Reading the chart:
— 🟢 Green background = model bull phase; 🔴 red = bear phase
— Solid green verticals = cycle bottoms; dashed red verticals = cycle tops; future turns are labeled ★ PROJECTED and drawn brighter
— 🟠 Orange curve = hyperbola through cycle lows (solid to the projected bottom, then dashed extension)
— 🔴 Red curve = hyperbola through cycle highs (solid to the projected top, then dashed extension)
— Small circles = the exact pivots each curve is built from
— ◎ labels = cycle × curve intersections with date, ≈ price, and fit info (point count + RMSE, or "exact through 3")
— Fib grids between macro pivots: solid edges (0 / 1), dashed 0.5, dotted intermediate levels, price + ratio labels on the right
— 🟡 Yellow boxes = BUY ZONE (0.786–0.836, time-bounded by the cycle end) and SELL ZONE (±% around highs; "(proj.)" = auto-generated at the projected top)
— ⛏ Grey verticals = halvings; the 2028 line is dashed and marked "(est.)"
— 🔵 Blue dashed path = hypothetical next-bull trajectory with its ◇ end label
📊 Dashboard fields:
— Phase / Phase day / Progress : current model phase, day within it, and a 10-segment gauge
— Proj. top / Proj. bottom : projected turn dates, days remaining, and the curve price at each date
— Next leg PNL : hypothetical bottom→top move of the next bull leg in % and as a × multiple — a scenario, not a forecast
— Corrections : every completed macro drawdown since 2014 (high → following low, %), plus the unfinished one projected to the curve bottom and marked (proj.)
— Next buy range / Next sell range : the price boundaries of the nearest upcoming accumulation and distribution zones
— Footer: recommended chart check, timeframe warning, sample-size caveat, version
🔧 Tuning guide:
— Curve doesn't draw: fewer than 3 pivots enabled, or the fit was rejected as degenerate — enable at least 3 lows (or highs) with sensible dates/prices.
— You disagree with a pivot price: every pivot is an editable date + price input — correct it and both the curve and the fib grids rebuild instantly.
— Want dates matching the actual price low: switch the anchor to 21 Nov 2022 (documented in the tooltip); the projected bottom moves to 19 Oct 2026.
— Fib levels look wrong on a log chart: enable "Log-scale levels" (keep it OFF on the recommended linear chart).
— Chart feels crowded: disable individual modules (grids, zones, halvings, projection) or dashboard sections — every block has its own switch.
— Curious about 2030+: enable "Show 2nd projected cycle" for one more bottom/top pair (~Sep 2030 / ~Aug 2033) — off by default because those dates carry double model uncertainty.
💡 Trading ideas:
— Accumulation planning : scale into the 0.786–0.836 BUY ZONE while the model is in its bear phase; the zone's right edge tells you the model's deadline.
— Distribution planning : scale out inside the ±5% SELL ZONE as the projected top date approaches; the pre-alert (default 30 days) gives you a heads-up.
— Scenario testing : move pivots, change phase lengths, or force High #5 to your own target and watch how the whole framework (curves, zones, PNL) responds — the model is a sandbox, not an oracle.
⚙️ KEY SETTINGS
⚙️ Cycle Model:
— Anchor — cycle bottom (default 07 Nov 2022): date all phases are projected from; alternative 21 Nov 2022 documented in the tooltip
— Bull phase length (default 1064 days) / Bear phase length (default 364 days): ≈ averages of the 3 completed cycles
— Cycles to draw back (default 3) / forward (default 1): how many turn lines and labels are drawn
— Show 2nd projected cycle (default off): one extra bottom/top pair with doubled uncertainty
🎨 Visual Settings:
— Theme (Auto / Dark / Light): Auto detects from the chart background; all text colors adapt
— Phase background , Cycle turn lines , Turn labels , Watermark : independent toggles with color inputs
📊 Dashboard:
— Position (4 corners), font size (Small–Huge; dividers render one step smaller), and per-section switches: Cycle / Projection / Corrections / Ranges
📈 Hyperbola — Lows:
— 3 main cycle lows (2015 / 2018 / 2022, on by default) + 3 optional early-history lows (2011 / 2013 / 2015) — each is a checkbox + date + price
— Dashed extension (default 10 years), curve color, anchor-point markers
📉 Hyperbola — Highs:
— 4 cycle highs (2013 / 2017 / 2021 / 2025, on by default) + a spare projected slot (off), extension (default 5 years), curve color
🔢 Fibonacci Grids:
— Bull grids (default on) / Bear grids (default off) with separate colors
— Levels (default "0, 0.236, 0.382, 0.5, 0.618, 0.786, 0.836, 0.886, 1"; values > 1 = extensions)
— Highlight 0.786–0.836 zone (default on), Log-scale levels (default off), Reverse (default on), level labels
⛏ Halvings: lines + labels toggles, color
🟡 Sell Zones: toggle, color, Zone size % from high (default 5%)
🔮 Price Projection: toggle, Path shape (Replay last bull / Log-linear), color
🔔 Alerts: master switch, Webhook JSON Format (default off), Pre-alert days (default 30)
🔔 ALERTS
— 🟢 CYCLE FLIP → BULL — model bottom date reached; payload: ticker, timeframe, price, next projected top date
— 🔴 CYCLE FLIP → BEAR — model top date reached; payload: ticker, timeframe, price, next projected bottom date
— ⏳ CYCLE TURN APPROACHING — fires once, N days (default 30) before the next projected turn; payload: turn type (TOP/BOTTOM), days left, date
All alerts fire on confirmed bars only (once per bar close) and support both human-readable text and JSON webhook payloads for bot integration. Create a single alert with condition "Any alert() function call".
⚠️ IMPORTANT NOTES
— 🚫 No repainting. The cycle phase is pure calendar-time math against a fixed anchor; the curves are fitted once from user-defined historical pivots; the reference bull shape is recorded from confirmed bars only; all alerts use bar-close frequency. Nothing in the model reads unconfirmed real-time data, so no line, zone or label moves after the fact.
— 📐 Sample size: 3 completed cycles. Every statistical claim in this model rests on three observations. The hyperbolic fits are geometry/regression over 3–6 points. Treat all projected dates and prices as reference scenarios with wide error bars — the dashboard says "Rhythm ≠ law" for a reason.
— 📏 Calibrated chart: INDEX:BTCUSD, Weekly, regular (linear) price scale. Exchange charts start later and distort early-history fits. Keep the fib "Log-scale levels" input OFF on a linear chart. The dashboard's ✓ confirms symbol and timeframe; the scale must be checked manually.
— ⚖️ Scope: this is a macro-cycle framework for Bitcoin. It produces no intraday entry signals, no stop placement, and no position sizing. The projected path is explicitly hypothetical.
— 🛠️ This is a cycle-analysis and scenario-visualization tool, not an automated trading bot. It provides projected turn dates, curve-based price references, and accumulation/distribution zones — trade decisions remain yours.
— 🌐 The script runs on any symbol and timeframe, but the model is designed for Bitcoin on Daily/Weekly charts — a dashboard warning appears on intraday timeframes.
Bitcoin Almanac · v1.5.2 Indicator

Opening Delta Supply Demand HybridOpening Delta Supply Demand Hybrid
This indicator combines Daily Supply and Demand zones, LVN confluence, Money Flow high-trade zones, and Opening Delta dominance pressure.
It detects important supply and demand areas from daily price and volume behavior. The zones stay active until price fully breaks them with a candle close. A supply zone is invalidated only when price closes above it, and a demand zone is invalidated only when price closes below it.
The Opening Delta model measures buyer and seller pressure from the session open. It tracks delta strength, dominance, RVOL, candle quality, superior delta, and dominance flips. If real volume delta is unavailable or returns zero, the indicator can use a candle-volume fallback to keep signals working.
BUY signals appear when price rejects a demand zone and Opening Delta confirms buyer strength. SELL signals appear when price rejects a supply zone and Opening Delta confirms seller strength. The indicator blocks signals when the global strength favors the opposite side.
It also includes a Money Flow High Trade Zone, which highlights the price area with the highest money flow activity from the daily profile.
Main features:
Daily Supply and Demand zones
LVN confluence
Money Flow high-trade zone
Opening Delta buyer/seller pressure
Dominance strength table
BUY and SELL confirmation arrows
Alerts for hybrid signals and delta conditions
Configurable filters for stricter or more aggressive signals
How To Use
Add the indicator to your chart and choose the market/session you trade.
Set the session start time to match your market open.
For example, US index futures usually use 9:30 New York time for the cash open.
Watch the supply and demand zones:
Demand zones are potential bounce areas.
Supply zones are potential rejection areas.
Zones remain active until price fully breaks them with a candle close.
Use the Opening Delta table to read market control:
BUYERS means buyer pressure is stronger.
SELLERS means seller pressure is stronger.
BALANCED means there is no clear dominance.
Look for confirmed signals:
A BUY signal appears when price rejects a demand zone and buyer pressure confirms the bounce.
A SELL signal appears when price rejects a supply zone and seller pressure confirms the rejection.
Avoid trading against the strength:
If price touches demand but strength favors sellers, the indicator blocks the BUY signal.
If price touches supply but strength favors buyers, the indicator blocks the SELL signal.
Use the Money Flow High Trade Zone as an important reaction area.
This zone shows where the highest money flow activity occurred in the daily profile.
Adjust the filters:
Use stricter settings for fewer but stronger signals.
Disable some confirmations for more aggressive signals.
Lower the cooldown if you want more frequent arrows.
Basic Rule
Buy only when price reacts from demand and Opening Delta supports buyers.
Sell only when price reacts from supply and Opening Delta supports sellers. Indicator

Indicator

Strategy
