Moving Average Ribbon - MTFMOVING AVERAGE RIBBON (MTF)
A clean, lightweight ribbon of four independent moving averages — everything you normally need from several separate MA scripts, combined into a single indicator slot.
Instead of loading four copies of a basic MA indicator, this script lets you configure each line completely on its own, including the timeframe it is calculated on.
FEATURES
• 4 independent moving averages. Each one can be enabled or disabled individually, and a disabled MA is fully removed from the chart and the status line.
• 5 MA types per line: SMA, EMA, SMMA (RMA), WMA, and VWMA. Every MA can use a different type — for example an EMA for the fast line and an SMA for the slow line.
• Custom source per line. Choose close, open, hl2, hlc3, or any other series available in the source dropdown, separately for each MA.
• Custom length and color per line.
• Per-MA multi-timeframe (MTF). Each moving average has its own MTF toggle and timeframe field. Enable MTF on a single line to overlay, for example, the daily 200 MA on a 15-minute chart, while the other three lines stay on the chart timeframe.
• Compact settings layout. All parameters for one MA sit on a single inline row, so the settings panel stays readable, and the inputs for a disabled MA are greyed out.
DEFAULT CONFIGURATION
MA #1 — SMA, length 5, source close
MA #2 — SMA, length 20, source close
MA #3 — SMA, length 50, source close
MA #4 — SMA, length 200, source close
All four are enabled by default with MTF turned off, so out of the box the indicator behaves as a standard 5 / 20 / 50 / 200 ribbon on the chart timeframe. Every value can be changed in the settings.
ABOUT THE MTF CALCULATION
Higher-timeframe values are requested with lookahead disabled, so no future data is used and the plotted history matches what would have been visible in real time. Higher-timeframe lines update as the higher-timeframe bar develops, and become final when that bar closes. The indicator also supports the built-in timeframe selector in the settings, with gaps enabled, if you prefer to shift the whole indicator to another resolution at once.
HOW TO USE IT
• Use the fast and slow lines together to read trend direction and momentum: price above the ribbon with the lines stacked in order suggests an uptrend, the reverse suggests a downtrend.
• Watch crossovers between two lines as a classic trend-change reference (for example 20 over 50).
• Use the MTF option to keep a higher-timeframe level of reference — such as the daily 200 MA — visible while you work on a lower timeframe.
This indicator is a visualization tool only. It does not generate buy or sell signals and should be combined with your own analysis and risk management.
Indicator

Wave Radar - Chan Lun - Structure Analysis (Wyckoff-like Range)概述 / OVERVIEW
缠论自动结构划分 —— 包含处理 → 分型 → 笔 → 中枢 → 买卖点。
Chan Theory, decomposed automatically: inclusion merge → fractals → strokes → pivots → buy/sell points.
本指标按《教你炒股票108课》的口径,把K线逐层拆成缠论的结构单元,并在结构成立处标出买卖点。下面先解释每个名词,再说判定规则。
先把名词讲清楚
包含处理 —— 相邻两根K线若一根的高低完全被另一根包住,就合并成一根(按当前方向取高取低)。之后所有计算都在「合并K线」上进行,而不是原始K线。
分型 —— 就是波段的顶和底。连续三根合并K线中,中间那根的高点最高=顶分型;中间那根的低点最低=底分型。
笔 —— 一个顶分型和相邻一个底分型之间的连线,是最小的结构单元。
中枢 —— 连续三笔及以上互相重叠的价格区间,也就是多空在此反复争夺的震荡区。 ZG 是中枢上沿 (取前两笔高点中的较低者), ZD 是中枢下沿 (取前两笔低点中的较高者)。
结构划分 —— 指上面这一整套「合并 → 分型 → 笔 → 中枢」的逐层拆解过程。
「相邻分型之间要间隔足够的独立K线」是什么意思
一个分型要占用三根合并K线。如果顶分型和底分型挨得太近,它们会共用K线,这种「一顶一底」只是噪音,不能算一笔。
所以要求:两个相反分型的中心K线之间,至少相隔设定的根数(默认 4,即所谓「新笔」口径)。这样能保证两个分型不共用任何K线,中间还至少留有一根完全独立的K线。间隔不足就不成笔,直接否决。
「连续同向中枢构成趋势」是什么意思
指 相邻的两个中枢 ,而且是 完全错开、不重叠 的——不是一上一下,而是整体一路往下(或一路往上):
下跌趋势 —— 后一个中枢的 上沿 低于前一个中枢的 下沿 (ZG后 < ZD前),即整个中枢都掉到下面去了。此时去找 一买 。
上涨趋势 —— 后一个中枢的 下沿 高于前一个中枢的 上沿 (ZD后 > ZG前)。此时去找 一卖 。
买卖点不是「中枢本身」,而是趋势末段出现背驰的那个转折点 —— 打开指标设置里的 教学模式 ,可以直接在图上看到每个买卖点的成立理由。
买卖点判定
一买 / 一卖 —— 如上:相邻两中枢完全错开构成趋势,且后一段的 MACD 面积小于前一段。面积变小=推动力衰竭,即背驰。
二买 / 二卖 —— 一类出现之后,价格先离开中枢(升破 ZG 或跌破 ZD),随后回抽时 没有跌破一类的极点 ,形成更高的低点(或更低的高点)。
三买 / 三卖 —— 一笔突破中枢,之后回抽 不再重新回到 ZG/ZD 区间内 ,说明中枢已被有效离开。
同一笔有可能同时满足二类(离开中枢)与三类(突破中枢)的条件,两个标注会重叠在同一价位同一时间。脚本按级别高者保留 —— 突破后站稳于中枢上沿属于教科书式的三买,因此 3 覆盖 2。
对应课次
第62/65课 —— 包含处理、顶/底分型、笔。
第17/20课 —— 走势中枢与第三类买卖点。
第24课 —— MACD 面积背驰 → 第一类买卖点。
第29课 —— 一类之后的次级别第一类 → 第二类买卖点。
设置
History window —— 参与结构划分的K线数量。数值越大,往前追溯越深,计算也越重。
笔 min gap —— 相邻两个相反分型之间所需的合并K线间隔,默认 4(新笔口径)。调大则笔更少更粗,调小则更细碎。
笔 / 中枢 / 买卖点 —— 可在设置中分别显示或隐藏。
中文买卖点标注 —— 关闭后显示 B1/B2/B3、S1/S2/S3。
教学模式(Educational mode)
不想背规则,就把它打开。开启后指标会 直接在图上写出每个买卖点为什么成立 ,并且带上当时的实际数值,而不是泛泛的说明:
一买 —— 标出「后中枢上沿 X < 前中枢下沿 Y → 下跌趋势」,以及「末段 MACD 面积 a < 前段 b → 背驰」,两个数字都是实测值。
二买 —— 标出「升破中枢上沿 ZG=X → 离开中枢」,以及「回抽 Y 未破一买低点 Z → 更高的低点」。
三买 —— 标出「一笔升破 ZG=X」,以及「回抽 Y 仍在 ZG 之上 → 未重回中枢」。
卖点同理,方向相反。
同时会画一条虚线,从买卖点连回它所依据的那条边界(ZG、ZD 或一类的极点),让「它到底在跟哪个价位比」一眼可见;中枢的上下沿也会直接标上 ZG / ZD 与数值。
解释文字 买点放在K线下方、卖点放在上方 。放置时会避开 左右一定范围内所有K线 的最高/最低(不只是信号那一根),因为文字横向会跨很多根K线;避让范围与距离都可在设置中调整。
配色跟随语言习惯: 中文按红涨绿跌 —— 买点解释用红底、卖点用绿底; English uses green-up / red-down ,买绿卖红,正好相反。
为避免整张图被文字盖住,默认只解释 最近的 3 个 买卖点(按时间,买卖点都算),可在设置中调整(1–12)。
已知简化与边界
中枢由「笔」构成,未实现「线段」 。这是唯一保留的简化,需要说明清楚: 笔 确实就是相邻两个分型的连接,是最小单元; 线段 则是比笔 高一个层次 的单元,由至少三笔组成,而它在哪里结束,要靠 特征序列 判定——把反方向的那些笔的高低区间排成一个序列,在这个序列里再找一次分型,才能确定线段的终点(遇到缺口还要另作处理)。标准缠论在较大级别上是用线段来构筑中枢的;本指标直接用笔来构筑,因此画出的结构比教科书口径细一个层次。
结构划分只使用图上已加载的K线,因此与手工划分可能存在细微差异。缠论本身在若干处就存在有争议的划分,这不是靠代码能消除的。
每次在 最新一根K线 上重算全图结构;周期与笔的口径一变,结果就会变——这是方法本身的性质,不是实现的缺陷。
所标示的买卖点是结构判定,并非预测。
配合使用
同一套结构逻辑每日运行在数千只美股、A股与港股上。可与我发布的 OABC 等腿指标 配合,用波浪的测量目标位与缠论的买卖点互相印证。
本指标为研究缠论结构的分析工具,不构成投资建议,不推荐任何标的的买卖,也不对任何结果作出保证。
ENGLISH SUMMARY
缠论 (Chan Theory) is a Chinese market-structure methodology from 缠中说禅's 108 Lessons on Stock Trading . The script decomposes price into its structural units and marks the buy/sell points where the structure completes.
Inclusion merge — adjacent candles where one's range contains the other's are merged; all later work uses merged candles.
Fractal — a swing top or bottom: in three consecutive merged candles, the middle one holds the highest high (top) or lowest low (bottom).
Stroke (笔) — the link between adjacent opposite fractals; the smallest unit. The two fractals must be separated by at least N merged candles (default 4) so they share no candle.
Pivot (中枢) — the overlap of three or more consecutive strokes. ZG is its upper bound, ZD its lower bound.
Signals
1st (B1/S1) — two adjacent, fully separated pivots form a trend (the later pivot's ZG below the earlier one's ZD for a downtrend), and the later leg's MACD area is smaller than the earlier one's: momentum divergence.
2nd (B2/S2) — after a first point, a leg leaves the pivot and the pullback fails to breach the first point's extreme — a higher low, or a lower high.
3rd (B3/S3) — a stroke breaks out of the pivot and the pullback does not re-enter ZG/ZD.
Where one stroke satisfies both the 2nd and 3rd rules, the labels would stack on a single price and date; the script keeps the higher class, since a breakout holding above the pivot is textbook 三买.
Main limit — pivots are built from strokes , not segments (线段) . A stroke is simply the link between adjacent fractals; a segment is one level above it, built from at least three strokes, and its termination requires characteristic-sequence analysis — collecting the counter-direction strokes into a sequence and finding a fractal within that sequence. Textbook Chan builds higher-degree pivots from segments; this builds them from strokes, so the structure is one degree finer than the textbook reading.
Analysis tool for studying 缠论 structure. Not investment advice, not a recommendation to buy or sell any instrument, and no guarantee of any outcome.
Indicator

Indicator

Indicator

Range Budget [AFD]
Range Budget answers one question at a glance: **how much of a
typical session's range has today already used?**
A day that has spent 40% of its typical range and a day that has spent 130% are different trading environments. This indicator measures which one you are in, from this chart's own price history, and says so in one number, onecolour, and one word.
###What it does###
- **Headline percentage** — today's realized range so far, divided by thetypical completed-session range. Never clamped: a wide day reads 130%, not100%.
- **State word and meter** — ROOM → PAST HALF (50%) → NEAR FULL (80%) → OVER
TYPICAL (100%). The word, the meter and every state colour come from the same thresholds, so they cannot disagree.
- **Envelope levels** — session low + typical range, and session high − typicalrange, drawn as glowing lines with a gradient band between them. Aconditional identity, not a projection: IF the session finishes at itstypical size AND the low holds, the high lands exactly on the upper level. Once the day crosses its typical range, the levels take the state colour.
- **Percentile ladder** (optional) — where a finished day of each size (p25 /p50 / p75 / p90 of the lookback window) would top out, measured up fromtoday's low. Nearest-rank percentiles: every rung is a session range thatactually occurred, never an interpolation.
- **Dashboard** — distance left to (or past) typical in both price points andpercent, how many of the last N sessions ran wider than typical, and optional detail rows (range so far, typical range, percentile standing,widest/narrowest, envelope and ladder values). Compact by default; everycryptic cell explains itself on hover; the whole panel can be switched off.
###How it works###
- **Typical range is user-selectable**, and the chart always names the activestatistic:
- **ADR** — the average of the last N completed session ranges (high − low).
- **ATR RMA** — the average true range, so overnight gaps count. Seeded withthe first true range rather than an initial SMA, which is why it is labelled "ATR RMA" and will not match `ta.atr()` to the last digit. Under ATR the numerator is the live session's true range too, so the percentageis never a ratio of two different measures.
- **Median** — the middle completed session range, which is also theladder's p50 rung.
- The three are identical on a symbol that never gaps and diverge as gaps grow — on heavily gapping symbols ATR can run near 2.5× ADR. That is why the choice exists and why the active one is named on the chart.
- **Completed sessions only.** The live day never feeds its own denominator —a partial day would drag the typical range down as the day progressed and bias the percentage upward with no symptom. Statistics update when a session completes; the live day contributes only its running range.
- **One session rule for everything.** Regular hours or regular + extended:history and the live day follow the same rule, and if the filter cannot change anything on your chart (no extended-hours bars loaded), the dashboard says so instead of staying silent.
- **The sample is what your chart holds.** n is capped by the sessions actually loaded — roughly 64 completed regular-hours sessions on a 5-minute chart from 5,000 bars on a Basic plan, more on higher plans and higher timeframes. The dashboard shows the n actually in use, plus a spread figure ((p90 − p25) ÷ p50) that says whether recent sessions were similar in size
or mixed.
- Eleven plotted values sit in the Data Window (percentage, ranges, envelope percentiles, sample size and more), so every number on the panel can be read, checked and exported.
###How to use it###
1. Add it to a liquid intraday chart. The defaults are the intended reading: compact dashboard, ADR(20), regular hours.
2. Read the headline first. ROOM means the day is still small next to its recent finished sessions; OVER TYPICAL means it has already run further than a typical one.
3. Use the envelope as context for the day's remaining room under the stated conditions — the tooltip on every input spells those conditions out.
4. Turn on the ladder to see today against the whole recent distribution instead of one average: price between p50 and p75 means today has already matched a mid-sized finished day.
5. Hover the bottom row of the dashboard whenever a figure is unclear — the statistic, the sample and any active caveat (gap counted, filter inert, no completed session yet) are explained there.
###What it deliberately does not do###
**Realized range from OHLCV — not an implied or expected move.** Every number is measured from this chart's own price history. Nothing comes from options pricing, and the typical range describes completed sessions — a description of what happened, not a statement about what happens next.
- No alerts, no signals, no entries or exits.
- Counts stay counts — "Sessions over typical: 4 of last 20" describes this chart's history, and the indicator never converts a count into odds.
- The percentage is never capped at 100%, because a day past its typical range is the most informative reading the tool produces.
###Why it is original###
Range tools usually hand you one number (an ADR level pair) or one overlay (an ATR band). Range Budget treats the session range as a budget and reports its consumption: one percentage against a user-chosen, chart-named statistic, computed from completed sessions only, with its sample size, its spread and every degeneracy disclosed on the panel itself. The three statistics are not interchangeable and the tool is built around that fact rather than hiding it: the active one is named on the chart, the ATR path measures true range on both sides of the ratio, and the ladder shows the whole recent distribution so one average never has to stand in for it.
Open source under the Mozilla Public License 2.0. All calculations are native
Pine v6 — no security() calls, no external data. Indicator

FIE GraphFIE Graph (Frequency • Influence • Efficiency)
FIE Graph is a companion indicator designed for use alongside FIE Price Action Overlay.
While the Price Action overlay focuses on signal generation, participation, and market context directly on the chart, FIE Graph provides a dedicated visualization of the underlying FIE calculations over time, making it easier to observe trends, shifts in participation, and changes in component behaviour.
FIE Graph allows traders to monitor how Frequency, Influence, Efficiency, Share Participation, Active Average, and other FIE metrics evolve throughout a trading session without cluttering the main price chart.
Features
Time-series visualization of FIE metrics
Component participation trends
Active Average and Share monitoring
Normalized Efficiency (E-Norm) visualization
Clean companion display for deeper analysis
Designed to complement the FIE Price Action overlay
Directionality to observe current and historical bull/bear pressure
FIE Graph is intended as an analytical companion rather than a standalone trading indicator. For entry signals, market context, and the complete FIE framework, use it together with FIE Price Action Overlay, available in my indicators. Indicator

Dynamic Market Structure & Liquidity Engine PRO [DMSL]Dynamic Market Structure and Liquidity Engine PRO
The Dynamic Market Structure and Liquidity Engine PRO is an all in one technical analysis tool designed to help price action and institutional traders navigate market structure without cluttering their charts.
Instead of drawing dozens of random support and resistance boxes, this indicator dynamically calculates high probability supply and demand zones, tracks institutional market structure shifts like BOS and CHoCH, marks major swing extremes, and highlights macro equilibrium levels in real time.
Key Features
1. High Probability Supply and Demand Zones
Every zone is scored based on volatility, body displacement, and wick rejection strength. Weak and low volume zones are automatically filtered out. Zones disappear as soon as price breaks through them, keeping your workspace very clean.
2. Major Swing Points
High contrast visual dots mark structural high and low pivot points to help traders identify the overall trend direction instantly.
3. Institutional Market Structure
BOS or Break of Structure signals trend continuation when price breaks major swing points. CHoCH or Change of Character warns of potential trend reversals when price breaks counter trend pivots.
4. Major 50 Percent Equilibrium Range
It automatically projects the 50 percent Fibonacci level of the recent macro swing range. This helps determine whether price is trading in a Premium Zone above 50 percent which is ideal for short setups, or a Discount Zone below 50 percent which is ideal for long setups.
5. Compact Dashboard
A clean and simple on screen table displays active resistance and support counts in real time.
How to Use
Use the major swing dots and structure labels to establish market direction.
Look for sell or short opportunities when price is above the 50 percent equilibrium line and reacting near a resistance zone.
Look for buy or long opportunities when price is below the 50 percent equilibrium line and reacting near a support zone.
Wait for price to touch a power scored zone, confirm with price action patterns, and manage risk according to the structural swing points.
Settings Overview
Pivot Lookback Length controls structural sensitivity. Higher values detect macro trends, while lower values detect scalping structure.
Min Zone Power Score sets the minimum threshold to filter out low probability zones.
Max Active Zones limits the maximum active boxes per side to maintain chart clarity.
Show Major Range 50 Percent EQ Line lets you toggle the macro equilibrium line on or off.
Styling and Visual Customization gives you full control over zone opacity, border width, line styles, text sizes, and colors.
Things to Avoid
Do not buy right into a resistance zone when price is deep in the premium area above 50 percent without a clear CHoCH confirmation.
Do not place blind limit orders directly on zones during high impact news events. Always look for price action confirmation at the zone.
Setting the lookback length too short below 5 may increase market noise on lower timeframes like 1 minute or 3 minute charts.
Disclaimer
This indicator is designed purely for educational and analytical purposes. It does not provide financial advice or automated trading signals. Always practice proper risk management.
Indicator

Indicator

Indicator

Indicator

Parameter Plateau Map - Moving Average Crossover RobustnessEvery backtest has a best setting. The question almost nobody asks is whether the settings next to it were any good — and that question is the whole difference between an edge and a coincidence.
WHAT IT DOES
It sweeps a grid of fast/slow moving average pairs, scores all thirty valid combinations on the same data, and draws the result as a heatmap. What you are looking for is not the brightest cell. It is the shape around it.
A broad, coherent region → the result survives changing the parameters.
A single bright cell → you found noise and gave it a name.
THE PLATEAU SCORE
The heatmap makes the shape visible; this puts a number on it. It compares the best cell to its four immediate neighbours, both measured against the grid's own mean:
Plateau = (mean of neighbours − grid mean) ÷ (best − grid mean)
Near 1.00, the neighbourhood is nearly as good as the peak, so the peak is a ridge you can actually stand on. Near 0.00, the peak stands alone above an otherwise ordinary grid, and selecting it is curve fitting.
Measuring against the grid's own mean rather than a fixed 50% is deliberate. In a strongly directional window every cell shifts together, and a peak-versus-50% ratio would either explode or collapse on that shift alone. The shape of the surface is the question here, not its height. Height gets its own row.
HOW EACH CELL IS SCORED
Directional hit rate. On every bar in the window a cell votes long when its fast mean is above its slow mean, and the vote counts as correct if price moved that way over the next N bars. 50% is a coin flip.
Means come from a running cumulative sum, so a 233-length mean costs exactly what a 5-length mean costs. That is what keeps a thirty-cell sweep cheap enough to recompute live rather than making you wait.
READING THE VERDICT PANEL
Best pair — the winning fast/slow combination and its hit rate.
Best vs chance — how far that winner sits above or below 50%. This is the level question, kept deliberately separate from the shape question, because they have different answers surprisingly often.
Plateau — the shape. This is the headline.
Grid mean — where the whole surface sits. If this is far from 50%, the window had a strong directional character and every cell inherited it.
Best to worst — the spread across the grid, in percentage points.
Reading — PLATEAU, RIDGE, or SPIKE, so the number does not need interpreting mid-session.
Sample — bar count and, next to it, the roughly independent sample size. Overlapping forward windows mean 250 bars at a 10-bar horizon is closer to 25 independent observations than 250. That second number is the one that should govern how much you trust any of this.
WHAT IT SHOWS RIGHT NOW
On BTCUSD 1h at the time of writing: Plateau 0.86 — a smooth, well-behaved surface with no isolated spike — while Best vs chance reads −3.2 pp and the grid mean sits at 38%. Every one of the thirty settings scored below a coin flip, and they did so coherently rather than randomly. ETHUSD 1h looks much the same, best pair 49.2%, grid mean 40.4%.
That combination is worth sitting with. The parameter surface is not noisy at all. It is simply, consistently, unprofitable over this window — which is a far more useful thing to learn than which of thirty losing settings lost least.
HONEST LIMITS
A hit rate is not a P&L. It ignores position size, cost, slippage, and the size of the moves it is counting. A 55% hit rate that is right on small moves and wrong on large ones loses money.
The effective sample is small. Overlapping windows are correlated, so treat the independent figure in the Sample row as the real one, and treat a few percentage points of difference between cells as noise.
This measures one specific and rather crude strategy family. A flat or losing surface says moving average crossovers did not work here over this window. It does not say nothing works.
Widening the step ladder until the peak looks impressive will collapse the Plateau score, which is precisely what it is there for.
NO REPAINT
There is no request.security call anywhere in this script, so the higher-timeframe lookahead problem does not arise. Every cell is scored on bars that had already closed, the forward return grading a vote is always taken from bars after that vote and before the present, and only confirmed bars enter the sample.
Open source under MPL 2.0. Read it, fork it, tell me where I am wrong. Indicator

PINEOS Genesis Market Structure DashboardPINEOS Genesis — Market Structure Dashboard
PINEOS Genesis is the public layer of the PINEOS platform for discretionary traders who work with market structure on futures and index charts (NQ, ES, MNQ, MES, etc.).
What this script does
• Plots confirmed swing highs and lows using a configurable pivot length (default: 5 bars each side).
• Marks Break of Structure (BOS) when price continues in the direction of the current structural trend.
• Marks Change of Character (CHOCH) when price breaks structure against the prior trend — a potential shift in control.
• Shows a compact PINEOS dashboard: current market bias (bullish / bearish / neutral) and the most recent structure event.
How it works (methodology)
Structure is computed from confirmed pivots, not raw wicks on every bar. By default, breaks require a candle close beyond the relevant swing level (you can switch to wick breaks in settings).
BOS vs CHOCH is determined by the prior trend state at the moment of the break:
• Break in the direction of trend → BOS (continuation).
• Break against trend → CHOCH (character change).
The script imports the PINEOS Core library so swing and structure logic lives in one shared engine — this indicator focuses on visualization, alerts, and the dashboard.
How to use
1. Add to a 5-minute chart (recommended starting point for index futures).
2. Open Settings → Market Structure:
• Swing confirmation length — higher = fewer, more significant swings.
• Require candle close for BOS — on for cleaner signals; off for faster, noisier breaks.
3. Read the top-right dashboard:
• Market — bullish, bearish, or neutral from the last structural break.
• Structure — last event label (BOS or CHOCH).
4. Alerts — four built-in conditions: bullish/bearish BOS and CHOCH.
What is not included in this script
Liquidity sweep detection, higher-timeframe bias filtering, and qualified LONG/SHORT setup labels are part of separate PINEOS Pro tooling delivered outside this public script.
Who this is for
Discretionary traders who already think in terms of swings, liquidity, and structure — and want a clean, readable map of BOS/CHOCH on the chart without stacking multiple overlapping indicators.
About PINEOS
PINEOS is a tiered PulseWire platform (structure → liquidity → confluence). Genesis is the entry layer.
Indicator

Indicator

Indicator

Fibonacci Retracement [AFD]Fibonacci levels that find their own two points, and keep finding them.
THE PROBLEM WITH DRAWING THEM BY HAND
A retracement is two clicks and a judgement call. The judgement is the hard part - which high, which low, and whether the leg you just measured is one move or two glued together. Then the session rolls over and the answer changes, so you do it again.
This draws the grid from the chart's own data instead. You tell it which range matters and it finds the two points itself, every bar, forever. Come back after the open and it has already re-anchored to the new day.
PICKING THE RANGE
Four choices, and they are all self-maintaining.
Current Day is the default and it is the one most intraday traders want - today's high and low, re-anchoring at each session open. Previous Day is yesterday's, and it draws from yesterday's start rather than today's, so the geometry sits over the data it came from. Current Week is the same idea one period up.
Latest Swing is the interesting one. It takes the last confirmed swing high and low, and it insists they alternate.
That insistence matters more than it sounds. ta.pivothigh() and ta.pivotlow() are independent detectors, and a real chart prints two, three, four highs in a row with no qualifying low between them. Take the most recent of each and you get a "leg" whose high end is simply the latest high, not the highest one in the span - so the grid measures a move that never happened as a single push, and 0.618 lands somewhere with no relationship to anything. Here, a pivot on the same side as the last one replaces it only if it is more extreme, and a pivot on the opposite side starts the next leg. On clean impulses this changes nothing at all. On ragged ones it pulls the anchor back to the extreme the leg actually reached.
Swing Strength sets how many bars have to print either side of a pivot before it counts. Higher means fewer and more significant swings, and a longer wait.
WHICH WAY THE LEG RUNS
Fib Direction is Auto, Long or Short, and it is the one control that stays live no matter what else you switch off - because it governs both grids, not just the near one.
Auto works out the direction from the range you actually chose. It looks at the two extremes that range uses and puts 0.00 at whichever one printed later, on the reasoning that the more recent extreme is the one the move ended on. So on Current Day, a day that made its low at 10:15 and its high at 15:50 gets 0.00 at the high and a grid you read downwards. Force it with Long or Short when you disagree.
THE MINUS SIGN, AND WHY THE EXTENSIONS HAVE ONE
Everything on this chart is numbered from the leg end. 0.00 sits at the recent extreme that finished the move, 1.00 at the point it started from. That way the number you read is retracement depth, and it means the same thing whichever direction the leg ran.
The extensions continue that same line past 0.00, which is why they are negative. -0.618 sits 0.618 of the leg's range beyond the 0.00 line, in the direction the leg was travelling - exactly the way 0.618 sits 0.618 of the range on the other side of it. One ruler, and the sign tells you which side of the origin you are on.
If that looks unfamiliar, put PulseWire's own Fib Retracement tool on the same two points. Its tags read the same: -0.618, not 1.618. The 1.618 reading belongs to the Trend-Based Fib Extension tool, which measures from the leg origin instead - a perfectly good convention, but putting both on one chart gives you two rulers running opposite directions from the same 1.00 line, and sooner or later you read the wrong one.
Six ratios are on offer - -0.272, -0.414, -0.618, -1.00, -1.618, -3.236 - and they ship switched off. They are levels, not targets. They are arithmetic on the leg. This script says nothing about whether price gets to one, marks no entry or exit, and has no alerts of any kind.
THE SECOND GRID
Switch on Show HTF Context and a second grid draws behind the first, anchored to the latest confirmed swing on a higher timeframe and dimmed so it stays context rather than competing for your attention. It ships off, so a fresh add gives you one clean grid.
HTF Mode is where this differs from most higher-timeframe overlays. Adaptive , the default, does not hold a fixed interval - it takes the next one up from whatever chart you are on. A 5-minute chart anchors to the 15-minute swing, a 1-hour chart to the 4-hour. Change timeframe and it follows you, and because it always resolves to something strictly higher, it cannot silently resolve to nothing.
Custom lets you name the timeframe instead, which is what you want when a specific one matters - the 4-hour swing while you scalp the 5, say. The catch is that it has to be strictly higher than the chart. Set Custom to 240 and drop to a 4-hour chart and the grid disappears with no warning label, because 240 is not higher than 240.
Both grids keep their own level checkboxes, line width, label size and text colour, so you can make the context layer as quiet as you like. The extension ratios are the exception: which ratios get drawn is shared by both grids, while which grids draw them is not. Each layer has its own extension toggle. The tooltips say which is which, because a control that looks global and is not is worse than one that plainly is.
THE SETTINGS ACTUALLY WORTH YOUR TIME
Most of the 63 inputs are the ordinary colour-and-width kind. These are the ones that change how the thing reads.
Color Mode defaults to Gradient, and it is doing real work. Each level takes its colour from its own ratio, so hue states depth - the shallow end and the deep end are different colours, and the 0.618-0.786 span reads as a region instead of two more identical lines. There are five presets plus Custom. Single Color reverts to one colour per grid if you prefer the classic look, and either way whatever transparency you pick in the colour picker is the transparency you get.
Enable Glow draws every level twice - a wide, near-transparent halo under a thin bright core. It costs nothing but line objects and it is the difference between a grid you can see on a busy chart and a set of hairlines you lose against the candles. Turn it off when the chart is crowded.
Fill Between Levels shades the intervals. OTE Band, the default, shades only 0.618-0.786. All Bands shades everything, Custom Bands lets you pick, and Off is off. The fills are independent of the line checkboxes, so you can shade a band whose boundary lines are hidden.
Highlight Golden Zone at Price is the one piece of reactive styling here. While the last close is between the 0.618 and 0.786 prices, that band draws more opaque and lifts off the chart. It creates nothing new - no box, no zone object, no centre line, no label - it just restyles the band the fill control already drew, and Highlight Strength sets by how much. It is arithmetic on two numbers already on your screen.
HTF Layer Dimming adds transparency to the whole context grid on top of whatever its colours already carry, which is how the second grid stays behind the first instead of doubling the clutter.
Extension Fade fades each extension a little further as it travels away from the leg, so the near ones read as more prominent than the far ones. It counts only the extensions you actually enabled, not their slot in the ladder - so if you turn on just the far ones, the nearest of them is still drawn at full strength rather than arriving pre-dimmed.
Ratio Label Format switches the tags between decimal and percent - 0.618 or 61.8%, minus signs intact either way. Show Price Labels adds the actual price beside each ratio; it is off by default because eight prices is a lot of text.
Line Extension Left/Right and Label Right Offset control how far the grid reaches and how far past it the tags sit. The defaults keep the tags in the empty margin, clear of both the candles and the price scale.
One last thing: any control that cannot do anything greys itself out. Switch the context grid off and its settings dim. Switch to Gradient and the single-colour pickers dim. There is no control in this script that looks live, takes a value, and quietly does nothing.
GETTING STARTED
Add it. You get one grid on today's range, gradient-coloured, golden zone shaded.
Want a different range? Anchor Range. Leave Fib Direction on Auto until it tells you something you disagree with.
Want context from above? Show HTF Context, and leave HTF Mode on Adaptive unless a specific timeframe matters to you.
Want the extensions? Turn them on for whichever grid you want them on, then pick your ratios.
Too busy? Glow off, Fill Between Levels off. You are back to plain lines.
THINGS THAT WILL LOOK LIKE BUGS AND ARE NOT
Swing anchors arrive late. A pivot is not a pivot until Swing Strength bars have printed after it, so on Latest Swing and on the context grid you are always looking at the last confirmed pivot, not the bar in front of you. When a newer one confirms, the anchor moves. That is the price of anchoring to something you can only recognise in hindsight, and it is the same trade every swing-based tool makes.
The day and week ranges are live. Current Day and Current Week use the period's running high and low, so the grid re-scales when the session makes a new extreme. It is showing you the range as it stands, not a finished one.
It draws one grid, not a history of them. You get the current grid, redrawn as things move. There is no trail of old ones behind you.
Higher-timeframe data uses the documented confirmed-value form - the expression is offset by one bar and the request passes barmerge.lookahead_on. Together, that is the pattern the Pine Script documentation gives for reading a higher timeframe without pulling unclosed data into historical bars. The source is open, so you can read the call rather than take my word for it.
Custom HTF at or below the chart timeframe draws nothing at all , and says nothing about it. Worth remembering before you conclude the context layer is broken.
A 12-month chart draws no context grid. 12M is the top of PulseWire's interval list, so Adaptive has nothing left to step up to. 3-month and 6-month charts both work.
Prices come from standard OHLC via ticker.standard(), so your levels are the same on Heikin Ashi, Renko, Kagi, Line Break and Point and Figure as they are on candles. The synthetic geometry of those chart types can still put the lines somewhere you would not expect.
WHAT IT DELIBERATELY DOES NOT DO
No alerts. No signals. No scores, ratings or probabilities. No zones, no nested zones, no centre line. It draws Fibonacci levels, labels them honestly, and stops. If you want something that tells you when to act, this is not it.
WHY IT IS DIFFERENT
Four self-maintaining ranges instead of a two-point drag you place today and replace tomorrow. Two independently configured grids on one continuous number line, with the higher one dimmed to sit behind rather than on top. Extensions numbered on the same ruler as the retracements, matching the tags PulseWire's own tool gives those prices, rather than a second scale running the other way. A swing range that is genuinely one leg, because the pivot pair is kept alternating. And colour that carries information - a level's hue states its depth - instead of a palette applied to identical lines.
Open source under the Mozilla Public License 2.0. Indicator

Multi-Anchor_VWAP & Deviation Bands [AFD]
Three anchored VWAPs on one chart, with the price zones where they agree shaded in for you.
WHAT IT IS
An anchored VWAP shows the average price everyone has paid since a moment you pick - the gap open, the earnings bar, the swing low that started the move. That is where buyers from that moment sit at break-even, which is why price keeps coming back to it.
One anchor answers one question, so most traders end up dropping three or four by hand and dropping them again every session. This runs three at once: each anchors where you want, each carries its own deviation bands, and the script shades the zones where two of them line up.
THE CONFLUENCE SHADING
Look at this first. It does work you would otherwise do by eye.
When your session VWAP and your weekly VWAP arrive at the same price, that price is being watched by two different groups at once. Those levels tend to matter more than either line alone, and with three curves running they are easy to miss.
The script shades between any two layers that come within your tolerance of each other - on by default at 8 points, and it checks all three pairings, 1 to 2, 1 to 3 and 2 to 3.
Set the tolerance in ticks, points, currency, or percent of price. Trading more than one instrument, use percent: it is the only one you never have to re-tune when you change symbol.
THE ANCHORS
Ten per layer, mixed freely.
Set and forget - Session, Week, Month, Quarter, Year. Re-anchors itself every new period.
Pick the bar yourself - Manual timestamp. Type a date and time. This is the one for an earnings bar, a Fed day, a gap.
Let the chart find it - prior-session high or low, confirmed swing high or low. These follow structure so you are not re-anchoring by hand.
Defaults are session and week, the pairing most intraday traders want.
Two things about the structure anchors look broken if nobody warns you:
The curve shows up late. A swing is not a swing until enough bars print after it. At swing length 10 the line appears 10 bars after the pivot, then draws itself back to the pivot where it belongs.
It never rewrites history. When a newer pivot confirms, the layer re-anchors from there forward. Everything already drawn stays put.
THE BANDS
Up to three per layer, each with its own multiple from 0.0 to 10.0. They tell you how stretched price is from that anchored average. Four ways to measure the stretch:
Standard deviation (default) - how far price usually strays from this average. The classic VWAP band.
ATR - sized by recent range instead, so the envelope opens up in fast markets.
Percent of VWAP - a fixed percentage. Same shape on any instrument.
Standard error - starts wide on a fresh anchor and tightens as the window fills.
Type the multiples in, or load a Fibonacci preset: 0.382 / 0.618 / 1.0 for the inner set, 1.0 / 1.618 / 2.618 for the outer.
IT TELLS YOU WHEN IT CANNOT DO ITS JOB
An anchored VWAP can quietly stop being volume-weighted, or stop covering the window you think it does. This one writes it on the layer's own label, and these notes cannot be switched off - they show even with line labels turned off:
"UNWEIGHTED (no volume)" or "N bars unweighted" - the feed gives no usable volume, so this is a plain average, not a VWAP. Most indices and some spot forex. This is the one that matters.
"one bar per session" / "two-bar window" - a prior-session anchor on a daily or higher chart, where it can only ever span two bars.
"clipped to the draw depth" or "segment past the 5,000-bar buffer, not drawn" - the line starts in mid-air because it hit a drawing limit, instead of pretending it reaches further back than it does.
"(retro)" - a structure anchor, found after the fact. "RTH" - regular hours only, which changes what the average is.
A clean chart carries none of these. One showing up means something you could not otherwise see has happened.
SETTING IT UP
Add it. Layer 1 takes the session, layer 2 the week, and the shading marks where they agree.
Want one clean line? Switch layer 2 off. Want a third timeframe? Switch layer 3 on.
Anchoring to an event: Manual timestamp, then the bar's date and time. Anchoring to structure: a confirmed swing or a prior-session extreme.
Running two or three layers, turn on "Show anchor" - once bands overlap, a label naming its starting bar beats one that just says "L2".
84 inputs in seven groups, and anything that does not apply greys itself out.
ALERTS
One alert: VWAP crosses, band crosses, both, or off. Create it in PulseWire with "Any alert() function call". It only fires when a bar closes, never mid-bar, so you are not woken up by a wick that gets taken back.
WORTH KNOWING BEFORE YOU USE IT
Structure anchors draw late. That is the trade for anchoring to something only confirmable in hindsight.
History runs 5,000 bars, and draw depth caps how far a line reaches. Hit either and the label says so instead of the line quietly stopping short.
On "Regular hours only" the ATR bands still measure across every bar on the chart, so they use a wider set of bars than the average does.
"Current window only" hides older curves once a repeating anchor has cluttered things up. Fills, the prior-window level and the confluence shading switch off in that mode.
These bands are this script's own definition, not a claim of equivalence with anyone else's bands of the same name.
Not usable in the Pine Screener - the manual anchor needs a time input, and the Screener substitutes its default instead of reading it, so it would anchor from the wrong bar without telling you.
One symbol, one timeframe. No higher-timeframe or cross-symbol requests.
WHAT MAKES IT DIFFERENT
Three genuinely independent anchors - own anchor, own source, own colours, own bands. Not one anchor with presets.
Confluence shading across all three pairings, in four choices of unit.
It anchors to bars it can only recognise after the fact - prior-session extremes and confirmed swings - and back-fills the curve to them. A running-total VWAP cannot reach backwards like that without starting over.
It states its own failure modes on the chart instead of returning a number that is not what its name says.
Four band bases behind one band definition, and Fibonacci ratios as presets on the levels you already have rather than as extra clutter.
Open source under the Mozilla Public License 2.0. Indicator

PRZ Execution Engine Liquidity sweep (Structure Based)PRZ Execution Engine + Trap Module (Indicator Description)
This indicator identifies high‑probability reversal zones by combining structural liquidity sweeps, displacement confirmation, and volatility‑based trap detection.
It is designed for futures traders (MES/MNQ/ES/NQ) who want precise reversal signals built from both market structure and volatility behavior.
Builds a Potential Reversal Zone (PRZ) using swing‑structure pivots
Detects liquidity sweeps above/below the PRZ
Confirms momentum shift using displacement
Auto‑plots Entry, Stop Loss, and T1 levels
Includes a separate Trap Module that detects volatility fakeouts using envelope bands
Marks trap signals with small dots for visual confirmation
Highlights sweeps only when PRZ displacement is active
When a PRZ sweep, displacement, and a trap dot occur together, the candle represents a high‑probability reversal point.
This dual‑confirmation approach filters out weak sweeps and focuses on the liquidity events most likely to produce clean reversals.
How to Use
Watch for PRZ blocks created from recent swing highs/lows.
Look for sweeps (wick breaks) of the PRZ boundaries.
Confirm displacement back into the PRZ.
Check for trap dots (volatility fakeouts).
Trade the confluence when sweep + displacement + trap align.
Use auto‑generated Entry, SL, and T1 levels for structure‑based execution.
Key Adjustable Settings
Pivot Bars (Left/Right):
Lower values (3–4) = faster PRZ formation, more signals.
Higher values (6–7) = stronger structure, fewer signals.
Sweep Lookback High/Low:
Lower values = more micro‑sweeps.
Higher values = only major sweeps.
Minimum Wick %:
Controls sweep strength. Higher = stronger sweeps only.
Trap Module Settings:
Envelope length, width, trap window, and cooldown determine how sensitive trap detection is.
Recommended Settings for MES/MNQ
Pivot Bars: 4–5
Sweep Lookback: 7–9
Minimum Wick %: 0.08–0.10
Envelope Smoothness: 40–50
Envelope Width: 2.8–3.4
Trap Window: 5–7
Signal Gap: 5–8
Summary
This indicator is best used to identify premium reversal points where both structure and volatility agree.
The strongest setups occur when:
PRZ Sweep + Displacement + Trap Dot
all fire on the same candle.
Indicator

Russell Momentum Buy/Sell Indicator# Russell Momentum Buy/Sell Indicator
The Russell Momentum Buy/Sell Indicator is an intraday trading tool designed to identify potential momentum breakouts, VWAP reclaims, profit targets, and exit conditions.
The indicator combines trend, volume, momentum, price action, and higher-timeframe confirmation into one visual system. It is intended for traders who want clear, structured signals instead of relying on a single moving average or momentum oscillator.
## Main Signals
### ARMED
The ARMED signal appears when price is approaching a potential breakout level and the supporting trend, momentum, volume, and higher-timeframe conditions are favorable.
ARMED is an early-warning signal. It does not represent a confirmed entry.
### BUY
A BUY signal appears when the selected entry conditions are confirmed.
Depending on the user settings, the indicator can detect:
* Breakouts above recent resistance
* VWAP reclaim setups
* Either breakout or VWAP reclaim conditions
A BUY signal may require:
* Price above VWAP
* Fast EMA above slow EMA
* Strong relative volume
* Bullish RSI conditions
* Positive DMI direction
* Minimum ADX trend strength
* Strong candle close
* Higher-timeframe trend confirmation
* Acceptable distance above VWAP
### TARGET 1
Target 1 represents the first profit-taking level.
The level is calculated using the initial risk distance and the selected reward-to-risk setting. Traders may use this signal to reduce part of the position and protect the remaining shares.
The indicator can automatically move the displayed stop to the entry price after Target 1 is reached.
### FINAL TARGET
The Final Target signal appears when price reaches the second reward-to-risk objective.
This can be used as the final exit point or as a signal to begin managing the remaining position more aggressively.
### SELL
A SELL signal may appear when momentum begins to weaken.
Possible exit conditions include:
* Price losing VWAP and the fast EMA
* Fast EMA crossing below the slow EMA
* Price losing the fast EMA after Target 1
* The selected trading session ending
### STOP
The STOP signal appears when price reaches the active risk level.
The initial stop is calculated using Average True Range. This allows the stop distance to adjust to the stock’s current volatility.
## Chart Levels
After a BUY signal, the indicator displays:
* Entry price
* ATR-based stop level
* First profit target
* Final profit target
These levels remain visible while the signal is active.
## Adjustable Settings
Users can customize:
* Breakout lookback period
* Breakout or VWAP reclaim mode
* Fast and slow EMA lengths
* Higher-timeframe confirmation
* Relative volume requirement
* RSI range
* ADX requirement
* Price range
* Trading session
* ATR stop distance
* First and final reward targets
* Maximum signals per day
* Signal cooldown period
* Closed-candle confirmation
## Alerts
The indicator includes alert conditions for:
* ARMED
* BUY
* TARGET 1
* FINAL TARGET
* STOP
* Momentum SELL
* Any SELL condition
For more reliable signals, closed-candle confirmation and Once Per Bar Close alerts are recommended.
## Suggested Use
This indicator is designed primarily for intraday momentum trading. It may be used on any intraday timeframe, although the default settings are intended as a starting point for a 1-minute chart with 5-minute higher-timeframe confirmation.
The indicator should be used with additional market context, including:
* News catalysts
* Liquidity
* Bid-ask spread
* Overall market conditions
* Support and resistance
* Position sizing
* Risk management
No indicator can predict future price movement or guarantee profitable trades. Signals may fail, especially during low-volume conditions, sudden news events, trading halts, or highly volatile price action.
This indicator is provided for educational and informational purposes only. It is not financial advice or a recommendation to buy or sell any security.
Indicator

Candle Expansion Failure @MaxMaseratiCandle Expansion Failure
MMM Body Close Candle Classification with Failed Swing Reversal Control
This indicator classifies every candle by whether its close pushed through the prior bar's range (Body Close) or stalled inside it (No Body Close), then tracks each directional leg for a failed continuation attempt. When a leg fails, it converts into a live structural zone that extends, updates, and eventually invalidates in real time.
─── WHY THESE COMPONENTS TOGETHER ───
Candle coloring alone tells you direction, not conviction — two bullish candles can look identical while one is a confirmed break and the other is a stall. A basic swing high/low, on its own, tells you where a level sits but not whether price already tried and failed to hold it. Combined, this script produces something neither piece gives alone: a live-updating record of failed breakout attempts, each carrying its own strength grade and invalidation condition, that persists on the chart until price proves the level dead.
─── CANDLE CLASSIFICATION ───
Bullish BC: close > previous high. Bearish BC: close < previous low. Anything else is classified NBC (No Body Close) and colored at reduced opacity to visually separate confirmed breaks from stalls.
─── FAILURE ENGINE ───
Each BC candle opens an "active leg" defined by its high, low, and midpoint. The next candle is checked against three failure conditions: a standard reversal (opposite-direction BC), a trap (price pushes past the leg extreme but closes back inside it), or a blowout (price never touches the leg extreme and closes through the opposite side). Any of the three closes the leg and plots a Failed Swing High (FSH) or Failed Swing Low (FSL) line with a strength tag: X for a marginal failure, X+ for a close against the leg's own candle, X++ for a failure through the leg's midpoint or an untouched blowout.
─── LIVE ZONE TRACKING ───
Failed-swing lines are not static. Each new push-back that sets a fresh extreme extends the zone's line and label to the new level, and the zone is only deleted when price closes decisively back through its extreme in the original leg's direction — the structural invalidation condition. A configurable cap limits how many failed setups persist per side, automatically retiring the oldest.
─── HOW TO USE ───
1. Watch for a solid BC-colored candle — this opens a new active leg in that direction.
2. If the next candle fails to continue (reverses, traps, or blows out untouched), an FSH/FSL line prints with a strength tag.
3. Read the tag: X++ marks the strongest failure and the most defensible zone; X marks a marginal one.
4. Treat the FSH/FSL line as a live level — it will extend if price pushes back into it without closing through, and it deletes when price closes through the extreme in the failed direction, which is your invalidation signal.
5. Use the Max Setups input to control chart density on higher-timeframe charts with frequent leg failures.
─── SETTINGS ───
Candle Classification — enable/disable custom coloring, BC and NBC colors for both directions.
Failure Engine — failure line colors per direction, line extension length in bars, max concurrent setups per side, and label size.
─── NOTES ───
Failure detection uses each bar's live high/low/close as it forms, so a zone's strength tag and extension can update intrabar until that bar closes — standard behavior for any live structural tracker. Works on any liquid instrument and timeframe; higher timeframes will produce fewer, more significant failed-swing zones. Indicator

Indicator

Indicator

Options Swing Helper - Expected Move, Volatility & StructureOptions Swing Helper combines volatility analysis, trend tools, and market structure into a single dashboard, designed to help options and swing traders gauge probable price ranges and momentum at a glance.
Expected Move Cone: Projects a forward-looking price range using annualized historical volatility (as a stand-in for implied volatility), scaled by the square root of time for your chosen number of days. Displays the +/-1 standard deviation levels and a center line, and calculates an HV Rank (the percentile of current volatility versus its own lookback history) to flag whether volatility looks Cheap, Fair, or Rich - useful context before buying or selling premium.
Moving Averages & Signals: Three configurable EMAs with optional buy/sell triggers based on EMA crossovers or price crossing an EMA, with an optional filter requiring the long-term EMA's direction (and slope) to agree before signaling.
Market Structure: Automatic swing high/low detection with strong vs. weak classification, zone boxes, and BOS/CHoCH break labels to visualize trend structure and potential reversals.
Dashboard: A live table summarizing price, historical volatility, HV Rank, expected move (in points and %), the 1 SD range, a volatility premium read, trend bias, and the current EMA signal.
All inputs are fully customizable via grouped settings for the cone, moving averages, signals, structure, and dashboard display.
Created by Academia Trade.
This script is provided for informational and educational purposes only and does not constitute financial advice. Indicator

Macro MagicianMacro Magician — Hourly Macros (:50 → :10)
Short description
Marks the :50 → :10 hourly macro windows, shades the opening minute of each, and can carry a chosen macro's opening range across the rest of the session.
Full description
What it does
Macro Magician draws the twenty-minute windows that run from :50 of one hour to :10 of the next — the periods intraday traders commonly call hourly macros. Each window gets a shaded box tracking its high and low, and the opening candle of the window is shaded separately in a darker tone, so you can see where price opened the window from relative to where it finished.
Beyond marking the windows, two features do the work that usually gets done by hand:
Carried-forward opening ranges. Any macro can have its opening-candle high and low projected to the right across the rest of the session, turning that one minute into a horizontal reference band. The macro's time is reprinted along the band at a cadence you set, so it stays identifiable hours later without hovering over it.
A standalone highlight candle. One candle per session — 09:30 by default, matching the equity cash open — can be recolored, given a vertical backdrop and a marker, and boxed with its own carried-forward band. This runs independently of the macro slots, so it works whether or not that minute falls inside a macro window.
Nothing here produces signals or predicts direction. It is a time-and-level marking tool that puts the windows and their opening ranges on the chart automatically.
Settings
General
Timezone — all times are interpreted in this zone, so boxes land correctly regardless of your chart's display timezone. Defaults to New York; "Exchange" follows the symbol.
Timeframe limit — hides the drawings above a chosen timeframe. Default 15 minutes.
Style
Fill, opening-candle fill, and border transparency, plus border width.
Opening-candle level — projects the window's opening candle's open, close, or midpoint as a dotted line across the window.
Label visibility and size.
Chart theme — Auto, Light, or Dark. Auto reads the chart's background brightness and flips the extended-macro label text between the two colors you choose, so the script is legible on either without touching anything else.
Optional alert when a macro opens.
Macro windows Eight independent slots, each with an on/off toggle, a session, a color, and an extend checkbox. Defaults cover 06:50 through 14:10 New York time. The session field accepts day filters, so 0850-0910:23456 restricts a window to Tuesday through Saturday for futures. One "extend through" session sets where all carried-forward bands stop, 16:00 by default.
Extended opening range Controls the band label cadence — either at a fixed minute interval from the macro open, or once an hour at a clock minute you choose so the prints stay clear of the other macro windows — along with the text size, which applies to both the label above the box and the prints along the band.
Highlight candle Hour and minute for the candle, its color, an optional full-height vertical backdrop with its own transparency, an optional triangle marker above or below the bar, and an optional carried-forward box with independent fill, border, and width settings. The box can start on the candle or just after it, so its fill doesn't wash out the candle's own color.
How to read it
The lighter box shows what the window did — its full high and low. The darker box shows the range it opened from. When a window closes well outside its opening range, the two together show the displacement at a glance. A carried-forward band lets later sessions be read against an earlier opening range without redrawing it each day.
Notes and limitations
Intraday charts only. On a 1-minute chart the darker box is exactly the :50 candle; on a 5-minute chart it is the first five minutes of the window, which is wider by design.
The highlight candle is drawn with barcolor plus a candle overlay, so it survives chart settings that override bar colors. On timeframes above one minute it paints whichever bar carries that opening time.
PulseWire caps drawings at 500 boxes, lines, and labels, so the oldest sessions eventually drop off the left of the chart. Running fewer macro slots keeps more history visible.
Windows in progress update until they close, as you would expect. Nothing recalculates on historical bars.
This is a charting aid, not a strategy, and not financial advice. Test how these windows behave on your own instrument and timeframe before relying on them. Indicator
