Indicator
Volatility
Kill Zones, Market Opens and NewsKill Zones, Market Opens and News
Version 1.0.0
Draws FX session kill zones, market opens and news event lines on intraday charts, with its own purpose built kill zones for DE40, the US indices and crude oil. First release, shared open source.
WHAT IT DRAWS
• Forex kill zones: London 07:00-10:00 UK and New York 12:00-15:00 UK, each with start and end boundary lines.
• Market open lines: 08:00 London/Frankfurt and 14:30 New York, each on its own toggle.
• News event lines, filtered to the relevant pair: GBP 07:00 / 09:30 / 12:00, USD 13:15 / 13:30 / 14:45 / 15:00 / 19:00 / 19:30, EUR 08:30 / 13:15. 13:30 USD is on by default, the rest off.
• DE40: London morning only, 08:00-10:00 Frankfurt. Own 08:00 open and 10:00 end line, no afternoon zone.
• US500 / USTEC / US30 (identical): AM orange pre-market 13:30-14:30 then green 14:30-17:00; PM green 18:00-20:00 then blue power hour 20:00-21:00.
• XTIUSD: two green zones, 08:00-10:00 and 13:00-19:00 UK, plus the 14:30 New York open and USD news.
• History range: the last 5 trading days, or the full loaded history.
• Colour, opacity, width and style adjustable on every element.
WHY THESE HOURS
• The windows come from an hour-of-day volatility study, the average bar range in each UK hour: five years of data to July 2026 for the forex majors, gold and index CFDs, and around two years for crude oil, cross-checked against real price action. The aim is to shade the hours that actually move and mark the opens and news that drive them.
HOW IT WORKS
• Each custom instrument shows only its own windows; the forex shading, session lines, opens and news are suppressed on DE40, US500, USTEC, US30 and XTIUSD.
• Forex windows track a US (New York) data feed. The custom instruments are UK clock anchored and render correctly on any exchange timezone.
• The "UK-US Time Difference" input (5 or 4) covers the roughly 4 weeks a year when UK and US daylight saving are out of step. Leave it at 5 the rest of the year.
• Boundary lines draw below 1H; kill zone shading and market opens draw at 1H and below.
WHAT IT RUNS ON
• Intraday, 1H and below.
• Forex majors and XAUUSD get the standard drawing; DE40, US500, USTEC, US30 and XTIUSD get their own custom zones.
• Custom zones match the exact symbols DE40, US500, USTEC, US30 and XTIUSD. Other broker names (for example GER40, SPX500, NAS100, WTIUSD) fall back to the standard forex drawing. The script is open source, so you can add your broker's names.
• Tested so far on forex majors, XAUUSD, DE40, US500, USTEC, US30 and XTIUSD.
HOW TO USE
• Add it to any intraday chart, 1H or below.
• On forex or gold: use the London and NY kill zones to see where the sessions sit, and turn on the opens and news you follow.
• On DE40, US500, USTEC, US30 or XTIUSD: it switches automatically to that instrument's own zones.
• In a DST gap week, set "UK-US Time Difference" to 4; otherwise leave it at 5.
• Use the History range control to keep the chart light (5 days) or show the full history.
IN THIS RELEASE (v1.0.0)
• First public release.
• Forex London and NY kill zones with adjustable boundary lines.
• 08:00 London/Frankfurt and 14:30 New York market opens.
• GBP / USD / EUR news lines, toggled individually and filtered per pair.
• Custom kill zones for DE40, US500 / USTEC / US30 and XTIUSD.
• UK clock anchored custom instruments, timezone independent, with the 5/4 DST toggle.
• History range, and full colour, opacity, width and style control.
FEEDBACK
Please let me know if you experience any issues, or have feedback for improvements or additions in the comments below. Thank you, Tom
Indicator
Stop Loss & Position Size Calculator # Stop Loss & Position Size Calculator
This indicator is designed to help futures traders manage risk by visualizing stop loss levels based on their maximum risk amount, contract type, and position size.
The indicator calculates where your stop loss would be placed depending on how many contracts you want to trade. This allows you to quickly see the relationship between your entry price, stop loss distance, and dollar risk.
## Features
* Supports multiple futures contracts:
* MNQ (Micro Nasdaq)
* NQ (Nasdaq)
* MES (Micro S&P 500)
* ES (S&P 500)
* MYM (Micro Dow Jones)
* YM (Dow Jones)
* Custom contracts
* Automatic point value calculation
* Custom point value option
* Long and Short trading direction
* Adjustable maximum risk amount
* Adjustable number of contracts displayed
* Custom colors for lines and labels
* Adjustable line extension settings
## Settings Explained
### Contract
Select the futures contract you are trading. The indicator automatically uses the correct dollar value per point.
If you are using another instrument, select **Custom** and enter the correct point value manually.
### Maximum Risk ($)
Enter the maximum amount of money you are willing to risk on the trade.
Example:
* Risk: $350
* MNQ point value: $2 per point
The indicator calculates the stop distance for each contract size.
### Trade Direction
Select:
* Long: Stop loss levels are calculated below the entry price.
* Short: Stop loss levels are calculated above the entry price.
### Entry Price
Enter your planned entry price.
If left at 0, the indicator automatically uses the current market price.
### Maximum Contracts Shown
Choose how many contract scenarios you want to display.
Example:
* 1 contract
* 2 contracts
* 3 contracts
This allows you to compare different position sizes quickly.
## Line Extension Settings
You can adjust how far the stop loss levels are displayed on the chart.
Options:
* Right Only: Shows levels only forward from the current price.
* Left + Right: Extends levels in both directions.
* Left Only: Extends levels backwards for historical analysis.
* Fixed Candles: Choose your own number of candles.
## How To Use
1. Select your futures contract.
2. Enter your maximum risk amount.
3. Choose Long or Short.
4. Enter your planned entry price.
5. Review the calculated stop loss levels for different contract sizes.
The indicator is intended as a risk management tool and should be combined with your own trading strategy, market analysis, and trade setup.
Always verify contract specifications and point values before trading live.
Indicator
Chandelier Exit Trend Navigator [MarkitTick]💡 A trend-following overlay that tracks directional shifts using a volatility-adaptive channel (Chandelier Exit methodology) and converts each flip into a fully structured trade plan — entry, stop-loss, and three R-multiple take-profit levels — displayed directly on the chart alongside a live status dashboard.
✨ Originality and Utility
While the Chandelier Exit concept itself (anchoring a trailing stop to the highest high or lowest low over a lookback, offset by a multiple of ATR) is a well-documented volatility-stop technique, this script extends that foundation into a complete navigation system rather than a simple trailing line.
Three layers separate this tool from a stock Chandelier Exit plot:
An optional adaptive pre-filter (Kalman Filter or a slope-adjusted moving average referred to here as LLAMA) that can be applied to the source series before the channel extremes are calculated, allowing the trend anchor itself to react differently to noise depending on which filter is selected.
A full trade-management layer built on top of the directional flip: automatic stop-loss placement, three independently configurable take-profit levels defined in R-multiples, and live linefill zones that visually separate risk from reward.
A condition-stacking filter system (higher-timeframe EMA bias and ADX strength) that must all align before a directional flip is treated as an actionable signal, reducing signals generated during weak or conflicting conditions.
The combination is not an arbitrary mashup — the adaptive filter conditions the input to the channel calculation, the HTF/ADX filters condition which flips are considered valid, and the trade-management layer converts a validated flip into a concrete, risk-defined plan. Each component feeds the next in a single directional pipeline.
🔬 Methodology and Concepts
● Chandelier Exit Core
The core channel is built from Average True Range (ATR), calculated over a user-defined lookback. Two boundaries are computed each bar:
A long-side stop, set below the highest value of the source over the lookback period, offset by a multiple of ATR.
A short-side stop, set above the lowest value of the source over the same lookback, offset by the same ATR multiple.
Users can choose whether the highest/lowest calculation uses close-based extremes or true high/low wicks, which changes how sensitive the channel is to intrabar spikes.
A persistent trailing line then locks in the tighter of the two boundaries as price develops: while the current directional state is bullish, the line only ratchets upward (never loosening on a pullback); while bearish, it only ratchets downward. A directional flip occurs when price closes beyond the opposite boundary from the prior bar, at which point the trailing line resets to anchor the new trend.
● Adaptive Source Filtering
Before the channel extremes are calculated, the source price can optionally be passed through one of two smoothing methods:
Kalman Filter — a recursive estimator that updates its estimate of the "true" price each bar based on a prediction-error and gain calculation, converging faster in stable conditions and adapting more cautiously during volatile ones.
LLAMA — a linear-regression-style approach that takes a simple moving average of the source and adjusts it by the recent slope (rate of change) over the same lookback, projecting the average forward in the direction the price has been drifting.
When neither is selected, the raw close is used directly, preserving the traditional Chandelier Exit behavior.
● Confirmation Filters
Two independent filters can be layered on top of the raw directional flip before it is treated as a signal:
A higher-timeframe EMA bias filter, which only allows long signals when price is trading above an EMA calculated on a higher timeframe, and only allows short signals when price is trading below it.
An ADX-based strength filter, which requires the Average Directional Index to be at or above a user-defined threshold before any signal — long or short — is permitted, filtering out flips that occur during weak, non-trending conditions.
Both filters default to off and can be combined or used independently.
● Trade Level Construction
When a filtered directional flip is confirmed on a closed bar, the script anchors a trade plan to the prior bar's close:
Risk per trade is defined as the prior bar's ATR multiplied by a user-set stop-loss multiplier.
The stop-loss is placed one risk-unit away from the entry, in the direction opposite the trade.
Three take-profit levels are placed at independently configurable R-multiples of that same risk distance (default 1R, 2R, and 3R), each extending in the direction of the trade.
This means every signal comes with a symmetric, volatility-scaled risk framework rather than a fixed point value, so trade levels automatically widen or tighten with current market volatility.
🎨 Visual Guide
Heatmap Candles — the chart's candle bodies and wicks are recolored to match the current directional state: teal/green while the trailing system is bullish, red while bearish, and gray when direction is undetermined (e.g. on the very first bar).
Entry Line (blue, dashed) — marks the anchor price of the most recent confirmed trade signal.
Stop-Loss Line (red, solid, thicker) — marks the calculated stop price for the active signal, labeled "✕ SL" with its price value.
Take-Profit Lines (green, dashed, three separate levels) — TP1, TP2, and TP3, each drawn with progressively fuller opacity so TP3 is the most visually solid, labeled "◆ TP1", "✦ TP2", and "◆ TP3" respectively with their price values.
Risk Zone Fill — a light red shaded region between the stop-loss and entry lines, visually sizing the risk portion of the trade.
Reward Zone Fill — a light teal shaded region between the entry and TP3 lines, visually sizing the potential reward portion of the trade.
Dashboard Table — a repositionable panel (default top-right) summarizing, in real time: Lock status, current Trend direction, HTF Bias reading, the numeric CE trailing-stop level, current ATR value, and the active Entry/SL prices. When enabled, it also displays the current ADX reading and which adaptive filter (if any) is active. A visual bar-and-percentage gauge shows the reward-to-risk ratio of the current trade relative to TP3, colored red/yellow/green depending on how favorable it is.
📌 Note : the best way to resolve visual overlap is to navigate to the Object Tree and drag the indicator above the main chart layer, or simply hide the native candles in your chart settings.
📖 How to Use
A directional flip in the heatmap candle color, together with a new Entry/SL/TP level set appearing on the chart, indicates a fresh signal in that direction.
The Stop-Loss line represents the level at which the trade thesis is considered invalidated under this system's logic.
TP1, TP2, and TP3 represent successive profit-taking references at increasing R-multiples; price reaching a level does not close or resize the plotted level automatically — it is a visual reference for scaling decisions.
The Risk and Reward zone fills give an immediate visual sense of the trade's risk framing without needing to read exact price values.
The Dashboard's R:R (TP3) gauge offers a quick read on how the reward potential compares to the initial risk for the most recent signal.
The Lock Signal input, when enabled, freezes the currently plotted levels in place and suppresses new signal generation — useful for reviewing a specific setup without the chart updating further trade plans in real time.
When the HTF or ADX filters are enabled but conditions aren't met, no new signal will fire even if the raw directional flip occurs — check the Dashboard's HTF Bias and ADX rows to understand why a flip may not have produced a signal.
⚙️ Inputs and Settings
ATR Len / ATR Mult — controls the lookback and volatility multiplier used to build the Chandelier channel; a longer length and/or larger multiplier produces a wider, slower-reacting trailing stop.
Use Close Extremes — toggles between close-based and high/low-based channel construction, changing sensitivity to intrabar wicks.
HTF Trend Filter / HTF TF / HTF EMA Len — enables and configures the higher-timeframe EMA bias filter that gates which direction of signal is permitted.
Use ADX Filter / ADX Threshold / ADX Length — enables and configures the trend-strength filter that must be satisfied for any signal to fire.
Adaptive Filter / Adaptive Filter Length — selects an optional smoothing method (Kalman Filter or LLAMA) applied to the source before channel calculation, and its lookback length.
Lock Signal — freezes the currently displayed trade levels and halts new signal generation.
SL ATR Mult — sets how many ATR units define one unit of risk for stop-loss placement.
TP1 R / TP2 R / TP3 R — sets the R-multiple distance for each take-profit level relative to the calculated risk.
Heatmap Candles / Show Trade Levels — toggle the directional candle coloring and the entry/SL/TP drawing layer independently.
Dash Pos — repositions the dashboard to any chart corner.
Color inputs — customize the bullish/bearish colors, stop-loss, entry, and take-profit line colors, and the dashboard's background, header, and text colors.
Alert action fields (Long/Short/Close Long/Close Short) — customize the text string sent in the "action" field of the JSON alert payload, useful for routing signals to automated systems expecting specific action keywords.
🔍 Deconstruction of the Underlying Scientific and Academic Framework
The trailing-stop core of this script belongs to a family of volatility-adjusted stop techniques that use Average True Range as a normalization factor for price movement, an approach popularized in trend-following and volatility-breakout literature as a way to size stops relative to an instrument's current, rather than fixed, volatility regime. Anchoring the stop to a rolling extreme (highest high or lowest low) rather than a fixed percentage or point distance reflects the broader class of "channel breakout" trend systems, in which a directional bias persists until price violates a level defined by recent extremes — a structure with roots in classical trend-following systems that predate modern indicator platforms.
The optional Kalman Filter smoothing draws on recursive Bayesian estimation theory, originally developed for tracking dynamic systems under measurement uncertainty. Applied to price, it treats each new close as a noisy observation of an underlying "true" value, blending the prior estimate with the new observation according to a gain term that adjusts based on estimated error — a formulation with parallels to adaptive filtering approaches used in signal processing and, more recently, in quantitative finance research on noise-reduction for price series.
The LLAMA-labeled alternative combines a simple moving average with a linear slope projection, conceptually related to local linear regression and momentum-adjusted smoothing techniques, where a lagging average is advanced along the estimated trend direction to partially compensate for the inherent lag of moving-average-based estimators.
The ADX-based strength filter draws on Welles Wilder's Directional Movement framework, which quantifies trend strength independently of trend direction; requiring a minimum ADX reading before accepting a signal reflects a common risk-management heuristic in trend-following systems — that directional signals generated during low ADX (ranging/choppy) conditions have historically shown less reliability than those generated during elevated trend strength, though this relationship is probabilistic rather than deterministic and varies across instruments and regimes.
The take-profit structure, expressed in R-multiples of the initial risk rather than fixed price or percentage targets, reflects standard position-sizing and risk-management theory in which trade outcomes are measured relative to the capital placed at risk, allowing performance to be evaluated on a risk-normalized basis rather than in absolute price terms.
⚠️ Disclaimer
All provided scripts and indicators are strictly for educational exploration and must not be interpreted as financial advice or a recommendation to execute trades. We expressly disclaim all liability for any financial losses or damages that may result, directly or indirectly, from the reliance on or application of these tools. Market participation carries inherent risk where past performance never guarantees future returns, leaving all investment decisions and due diligence solely at your own discretion.
Indicator
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
RSI 30/65 Recovery StrategyRSI 30/65 Recovery Strategy
This is a long-only RSI reversal strategy. It does not open short positions.
Buy conditions
A buy requires two steps:
RSI crosses below 30, marking an oversold condition.
RSI later crosses back above 30, confirming recovery.
The strategy then enters a long position at the candle close.
It does not buy immediately while RSI is falling below 30. This helps avoid buying into continued downside momentum.
Sell conditions
A sell also requires two steps:
RSI crosses above 65, marking an overbought condition.
RSI later crosses back below 65, confirming weakness.
The strategy then closes the long position at the candle close.
Strategy
SEB-Dual-time-period EMA smoothing standard error band-zrbb-1. Gauging Trend Strength
The width of Standard Error Bands directly reflects the health of a trend:
Contracting Bands: When price is trending and the Standard Error Bands continue to narrow, it indicates that price is closely following the regression trendline, suggesting strong trend momentum and a likely continuation in the same direction.
Expanding Bands: When the Standard Error Bands begin to expand, it means price is deviating further from the regression trendline, signaling that the trend may be nearing its end and the market could enter consolidation or reverse.
2. Identifying Low-Volatility Conditions and Breakout Precursors
Similar to the "Squeeze" logic of Bollinger Bands, when Standard Error Bands narrow significantly, it often foreshadows an imminent expansion in volatility. Traders can treat this as an early warning signal for a potential breakout or the start of a significant price move.
3. Warning of Trend Reversals and Consolidation
The expansion of Standard Error Bands itself does not directly provide buy or sell signals, but it offers a statistical indication of trend exhaustion:
Band Expansion → Decreasing "cohesion" of the existing trend
Combined with price patterns, volume, or other momentum indicators (such as RSI, MACD), it can help determine whether a reversal or sideways consolidation is likely.
4. Comparative Application with Other Channel Indicators
Within the technical analysis framework, Standard Error Bands are often used in conjunction with Bollinger Bands, Keltner Channels, Donchian Channels, and others. Compared to Bollinger Bands, which are more sensitive to short-term price spikes, Standard Error Bands—being based on linear regression—provide a more robust depiction of trend direction and tend to generate fewer false signals in clearly trending markets.
1. 判断趋势强度
标准误差带的宽窄变化直接反映趋势的健康程度:
带收窄(Contracting):当价格处于趋势中,而标准误差带持续收窄,说明价格紧密跟随回归趋势线,趋势动能较强,可能继续沿原方向运行。
带扩张(Expanding):当标准误差带开始扩张,意味着价格偏离回归趋势线的程度加大,趋势可能即将结束,市场可能进入盘整或发生反转。
2. 识别低波动与突破前兆
与布林带的"挤压"(Squeeze)逻辑类似,标准误差带在极度收窄时,往往预示着波动性即将放大。交易者可将其视为潜在突破或大幅行情启动的早期预警信号。
3. 趋势反转与盘整预警
标准误差带扩张本身并不直接给出买卖方向,但它提供了一个趋势衰竭的统计信号:
带扩张 → 原有趋势的"凝聚力"下降
结合价格形态、成交量或其他动量指标(如 RSI、MACD),可辅助判断是反转还是横盘整理
4. 与其他通道指标的对比应用
在技术分析体系中,标准误差带常与布林带、凯尔特纳通道(Keltner Channels)、唐奇安通道(Donchian Channels)等配合使用。相比布林带对短期价格尖峰更敏感,标准误差带由于基于线性回归,对趋势方向的刻画更为稳健,在趋势明确的市场中假信号相对较少。
Indicator
Liquidity Heatmap 3D - Volume Density POC CVDLIQUIDITY HEATMAP 3D — the order-flow heatmap look, rebuilt for PulseWire.
This indicator brings the volume-density heatmap visual to any PulseWire chart, with a twist no other heatmap here has: a real 3D relief shader. Instead of flat colour tiles, every cell is lit by a virtual light source (emboss lighting computed in the colour math), and the strongest liquidity walls extrude as 3D blocks with shaded side faces and lit top caps.
━━━ HOW IT WORKS ━━━
PulseWire provides no order book and no historical tick data, so this is an honest volume-density heatmap: each bar's volume is distributed across the price zones its range covered. Dense zones are the liquidity walls where the market actually spent volume. The engine normalises against the 85th percentile of the column maxima, so one hot spike never blanks out the rest of the map.
━━━ WHAT IS ON THE CHART ━━━
· Heatmap grid up to 22 x 28 zones, rebuilt live on every bar
· 3D RELIEF SHADER — emboss lighting, specular glints on the wall tops, adjustable strength
· 3D WALL EXTRUSION — the strongest cells pop out as shaded blocks (toggle)
· 7 PALETTES — GOLD 3D (default), TWILIGHT, FIRE & ICE (buy/sell split), OCEAN, INFERNO, EMERALD, MONO
· POC LINE — the highest-volume price of the window, with its volume readout
· WALL DETECTION — the two strongest active liquidity walls, labelled with their strength in percent
· VOLUME PROFILE — profile bars on the right, POC highlighted in gold
· TRADE BUBBLES — volume-spike bubbles sized by their ratio against the average, buy blue / sell magenta
· CVD STRIP — cumulative volume delta (bar proxy) along the bottom, mint and red
· COCKPIT PANEL — engine checklist, POC box and a BUY / SELL flow signal line
· Optional dark chart theme: navy background with mint / red bars
━━━ HOW TO USE IT ━━━
1. Watch the golden walls: price often reacts at dense volume zones — support and resistance built by traded volume rather than by drawn lines.
2. The POC is the fairest price of the window and acts as a mean-reversion magnet in ranges.
3. CVD rising while price holds a wall below it is an absorption long idea; CVD falling at a wall above is a distribution short idea.
4. Bubbles mark the bars where outsized volume hit. Combine them with wall touches for confluence.
━━━ SETTINGS ━━━
Grid size, bars per column, cutoff, gamma, tile transparency, relief strength, wall threshold and bubble threshold are all adjustable. Works on every symbol and timeframe; if a symbol carries no volume the engine falls back to time-at-price density and says so in the panel.
━━━ HONEST LIMITS ━━━
This is not level-2 order book data — PulseWire does not provide it. The map shows where volume actually traded, not resting limit orders. The 3D effect is a rendering technique, not extra data.
━━━ NOTE ON LOADING ━━━
Right after adding the indicator, or after changing a setting, give it a few seconds: the engine creates its object pools and runs the first build. A brief flicker during that warm-up is normal and stops once the first refresh is done. After that the persistent engine updates in place with no flicker.
Open source — read it, change it, learn from it. This indicator is a study tool, not financial advice.
WHY THESE PARTS BELONG TOGETHER
The heatmap, the point of control and the cumulative delta strip are three views of one question:
where is volume sitting, which price is defending it, and who is doing the trading. The heatmap
shows the distribution, the point of control marks its centre of gravity, and the delta strip says
whether that distribution is being built by buyers or sellers. Read on their own each of the three
is ambiguous; read together they describe one order-flow picture.
Indicator
TradeNomad - Volume + Float TableThe Volume + Float Table is a practical trading tool designed to help traders quickly assess market activity and liquidity at a glance. It combines volume data with float information in a clear table format, making it easier to identify stocks with strong interest, potential momentum, and tradable setups.
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
Master Price Converter + Volatility BackgroundThe **Master Price Converter + Volatility Background** indicator (`VOLATILITY`) is a market regime and tactical timing tool built for PulseWire. It decodes the **Volatility Term Structure** across multiple temporal horizons (9-day, 30-day, and 90-day CBOE VIX indices) to give equities traders real-time clarity on volatility sentiment, fear expansion/contraction, and micro-reversals.
By tracking how short-dated implied volatility moves relative to longer-dated volatility, this script identifies:
1. **Macro Volatility Regimes** (Background Shading): Broad market stress vs. volatility crush.
2. **Tactical Reversal Signals** (Plot Shapes): Early-warning crossover triggers signaling immediate momentum shifts.
3. **Session & Data Integrity Safeguards**: Strict filtering for US Regular Trading Hours (RTH) and data staleness protection.
---
## 2. Core Concepts: Volatility Term Structure
Implied volatility options pricing varies across time expiration dates. The relation between short-term and long-term VIX indices reveals institutional sentiment and hedging activity:
```
┌──────────────────────────┐
│ VIX9D (9-Day VIX) │ <-- Ultra Short-End (Immediate Spike/Crush)
└─────────────┬────────────┘
│
│ r_sig = VIX9D / VIX
▼
┌──────────────────────────┐
│ VIX (30-Day VIX) │ <-- Standard Reference
└─────────────┬────────────┘
│
│ r_mod = VIX / VIX3M
▼
┌──────────────────────────┐
│ VIX3M (90-Day VIX) │ <-- Long-Term Reference
└──────────────────────────┘
```
* **Contango (Normal Market)**: `VIX9D < VIX < VIX3M`. Shorter-dated fear is lower than long-dated fear. Volatility is contracting/crushing, favoring bullish equity momentum.
* **Backwardation (Market Stress)**: `VIX9D > VIX > VIX3M`. Immediate panic drives short-dated options prices higher than long-dated ones. Volatility is expanding, favoring downside risk or hedging.
---
## 3. How the Indicator Works
### A. Volatility Sentiment Background (Macro Regime)
* **Metric**: Broad Term Structure Ratio ($r_{mod} = \frac{\text{VIX}}{\text{VIX3M}}$).
* **Smoothing**: Fast EMA (3-period) vs. Slow EMA (5-period) on $r_{mod}$.
* **Regime State**:
* 🔴 **Stress / Volatility Expanding (Red Background)**: Fast EMA > Slow EMA. Short-term fear is accelerating faster than 90-day baseline fear. Exercise caution on long positions or look for short setups.
* 🟢 **Crush / Bullish (Teal Background)**: Fast EMA $\le$ Slow EMA. Volatility is subsiding/compressing. Favorable environment for trend continuation and long momentum trades.
### B. Volatility Reversal Signals (Micro Timing)
* **Metric**: Short-End Term Structure Ratio ($r_{sig} = \frac{\text{VIX9D}}{\text{VIX}}$).
* **Smoothing**: Fast EMA (5-period) vs. Slow EMA (13-period) on $r_{sig}$.
* **Trigger Conditions**:
* 🟢 **Bullish Volatility Crossover (Lime Circle Below Candle)**:
`ta.crossunder(Fast EMA, Slow EMA)` on $r_{sig}$.
*Meaning*: Immediate short-term fear (9-day) is collapsing faster than 30-day baseline fear. Signals a potential bullish equity reversal or breakout.
* 🟠 **Bearish Volatility Crossover (Orange Circle Above Candle)**:
`ta.crossover(Fast EMA, Slow EMA)` on $r_{sig}$.
*Meaning*: Immediate short-term fear is spiking relative to 30-day fear. Signals early volatility expansion or potential equity pullback/drop.
### C. Real-Time Safeguards & Filtering
To prevent false signals outside trading hours or during stale data periods:
1. **RTH Window (`09:30–16:15 New York Time`)**: Signals and background rendering are active strictly during regular US equity/options trading session hours when VIX data feeds are actively updated.
2. **Staleness Filter (`< 120,000 ms`)**: Ensures that security data for VIX symbols has updated within the past 2 minutes. If data becomes stale, background and signals temporarily disarm to protect from false prints.
---
## 4. Input Configuration Reference
| Group Name | Parameter Name | Default Value | Description |
| :--- | :--- | :--- | :--- |
| **VOLATILITY SENTIMENT (BACKGROUND)** | `Show Vol Sentiment Background` | `True` | Toggle macro background color shading on/off. |
| | `Base Symbol` | `CBOE:VIX` | 30-Day VIX index ticker symbol. |
| | `Reference Symbol` | `CBOE:VIX3M` | 90-Day VIX index ticker symbol. |
| | `Fast EMA` | `3` | Smoothing period for fast background ratio line. |
| | `Slow EMA` | `5` | Smoothing period for slow background ratio line. |
| | `Crushing / Bullish (Teal)` | `#004d4d` (85% Transp.) | Background color when volatility is contracting. |
| | `Expanding / Stress (Red)` | `#3d0000` (80% Transp.) | Background color when volatility is expanding. |
| **VOLATILITY REVERSAL SIGNALS** | `Show Crossover Signals (Circles)` | `True` | Toggle circle signal shapes on/off. |
| | `9-Day VIX (Signal)` | `CBOE:VIX9D` | Short-dated 9-Day VIX index ticker symbol. |
| | `Signal Fast EMA` | `5` | Fast EMA smoothing for signal crossover logic. |
| | `Signal Slow EMA` | `13` | Slow EMA smoothing for signal crossover logic. |
---
## 5. Trading Playbook & Best Practices
>
> **Primary Usage Context**: This indicator is designed to overlay on S&P 500 futures (`ES`), S&P 500 Index (`SPX`), `SPY`, or related US indices (`NQ`, `QQQ`).
### Strategy 1: Regime-Filtered Trend Following
* **Long Trades**: Look for price setups (e.g., VWAP bounces, bullish market structure breaks) when the background is **Teal** (Crush/Bullish regime).
* **Avoid Longs / Consider Shorts**: Exercise caution when the background turns **Red** (Stress regime), as liquidity and downside risk increase.
### Strategy 2: Signal Confluence Execution
* **Lime Circle (Bullish)** + **Teal Background**: High-confluence long signal. Ultra short-term panic cleared while broad volatility remains low/contracting.
* **Orange Circle (Bearish)** + **Red Background**: High-confluence short signal. Short-end fear is popping while broad term structure is already in stress.
### Strategy 3: Early Regime Shifts (Divergence Warnings)
* If the background is **Red**, but a **Lime Circle** appears, monitor for a potential regime flip from Red to Teal as short-end fear subsides first.
* If the background is **Teal**, but an **Orange Circle** appears, take partial profits on longs or tighten stop-losses, as ultra short-term fear is accelerating.
---
## 6. Code Architecture (Pine Script v6 Highlights)
```pinescript
// Flattened VIX requests to avoid nested security errors
s_v9 = request.security(v_fast_sym, "1", close)
s_vx = request.security(v_short_sym, "1", close)
s_v3 = request.security(v_long_sym, "1", close)
r_sig = s_v9 / s_vx // 9-day / 30-day ratio
r_mod = s_vx / s_v3 // 30-day / 90-day ratio
// EMA cross calculations
sig_bull = ta.crossunder(ta.ema(r_sig, 5), ta.ema(r_sig, 13))
sig_bear = ta.crossover(ta.ema(r_sig, 5), ta.ema(r_sig, 13))
is_stress = ta.ema(r_mod, 3) > ta.ema(r_mod, 5)
```
>
> All `request.security` calls request `1-minute` resolution data and are called globally at the top level to adhere to Pine Script v6 standards and prevent runtime errors.
Indicator
Pressure Transfer ZoneMany reversal indicators tell you when a market looks stretched. Pressure Transfer Zone asks a harder question: when price returns to the extreme, can the side that drove it there still make meaningful progress?
This indicator was built to identify a specific form of failed continuation. It waits for a strong directional drive, a real retreat, and then a second attempt at the extreme. If that second attempt makes little progress and closes with clear rejection, the script freezes the structure into a decision zone. From there, price must prove that control has actually transferred before a signal is confirmed.
The goal is not to call every top or bottom. The goal is to isolate the moments when a mature move may be losing control, show that process directly on the chart, and give the trader clear confirmation and invalidation levels.
WHO IT IS FOR
Pressure Transfer Zone is designed for intraday, swing, and position traders who use price action and want a more disciplined way to evaluate exhaustion, failed breakouts, failed continuation, and early reversals.
It is designed for liquid stocks, futures, forex, and cryptocurrency on standard candlestick charts. The engine does not run on Heikin Ashi, Renko, or other synthetic chart types because their prices can distort the structure being measured.
THE IDEA BEHIND IT
A strong trend does not end simply because price is overbought, oversold, or extended. Strong moves can remain extended for a long time. What matters is whether the original side can still produce results when it gets another opportunity.
The pattern develops in five stages:
1. A mature directional drive establishes real displacement.
2. Price makes a meaningful retreat away from the extreme.
3. The original side returns for a second attempt.
4. That second attempt produces limited progress and a weaker close.
5. Price confirms the transfer with a qualified break of the selected boundary or, in Sniper mode, with that break followed by a successful first retest.
This is an effort-versus-result test expressed entirely through price. The script does not claim to measure order flow, bid/ask delta, institutional activity, hidden liquidity, or volume pressure.
HOW THE MATHEMATICS WORKS
The first filter is directional efficiency:
Directional efficiency = net directional change / total absolute bar-to-bar movement
A clean drive that travels mostly in one direction receives a higher score. A noisy move that covers a lot of distance but makes little net progress receives a lower score.
The selected Source is used for net displacement and path efficiency. The zone itself is always built from confirmed OHLC prices.
The drive must also meet volatility, range, closing-location, and local-extreme requirements. Under the default pace profiles, it must:
* Produce at least 1.25 ATR of net directional displacement.
* Span at least 2.00 to 2.50 ATR, depending on the selected pace.
* Meet a directional-efficiency threshold of 0.40 to 0.48.
* Close in the outer 28% of the drive range.
* Create a fresh local extreme.
ATR is measured with a 14-bar lookback and frozen when the sequence begins. This prevents later volatility changes from moving the event’s established thresholds.
The retreat must travel at least the greater of 0.55 ATR or 18% of the original drive range, and the closing price must confirm that full retreat distance.
When price returns to the extreme, the second attempt must show deterioration. By default:
* Price must return to within the greater of 0.30 ATR or 8% of the original drive range from the first extreme.
* New progress beyond the first extreme cannot exceed 0.20 ATR.
* The second push cannot exceed 72% of the original drive range.
* The close must migrate away from the first attempt by at least 0.10 ATR.
* Rejection must equal at least the greater of 0.25 ATR or 25% of the developing zone.
* The rejection bar must close within the directional outer 45% of its range.
* The completed zone cannot exceed 60% of the original drive range.
Together, these filters are intended to remove many one-candle reactions, shallow pauses, and weak two-test formations. The model wants to see a legitimate first drive, real separation between attempts, and measurable deterioration on the return.
THE ZONE
Once the second attempt qualifies, the structure is armed and its levels are frozen:
* Outer edge: the most extreme price reached by the two attempts.
* Inner edge: the counter-extreme formed between the two attempts.
* Midpoint: the halfway point of the zone.
* Invalidation: 0.15 ATR beyond the outer edge in the direction of the original move.
For a bullish setup, price must transfer upward after a mature downward drive. For a bearish setup, price must transfer downward after a mature upward drive.
Invalidation requires a confirmed close beyond the buffered outer edge. The invalidation level is structural information, not an automatic stop-loss recommendation.
ENTRY TIMING
Early
Confirms on a qualified close through the zone midpoint. This is the fastest mode and can trigger on the same confirmed bar that arms the zone. It offers earlier recognition with a greater risk of false starts.
Balanced
Confirms on a later qualified close beyond the structural inner edge. Balanced is the default middle ground between earlier recognition and additional structural confirmation.
Sniper
Requires a qualified break of the inner edge followed by the first later retest of that level. The retest must remain shallow and close back in the transfer direction. The first retest decides the setup; a failed first retest cannot become a signal later.
The breakout candle must move in the transfer direction, span at least 0.35 ATR, have a real body covering at least 45% of its range, close within the directional outer 32% of the candle, and finish no more than 0.45 ATR beyond the selected boundary. The final limit is an anti-chase filter.
A valid Sniper retest must stay within 15% of the frozen zone depth, close at least 0.05 ATR back beyond the inner edge, have a directional body covering at least 35% of the candle, and close within the directional outer 40% of its range.
HOW TO READ THE CHART
With the default color palette:
* Amber: the pattern is still developing. It is information, not an entry signal.
* Violet: the structure is complete, armed, and waiting for confirmation.
* Cyan: the action area between the midpoint and inner edge.
* Green: a bullish pressure transfer has been confirmed.
* Red: a bearish pressure transfer has been confirmed.
* Faint gray: an armed setup failed, expired, or was invalidated.
The right-edge label shows the current phase and the next required action. Once the structure is armed, it also displays the confirmation boundary and invalidation price. A diamond appears only when the selected timing mode produces a confirmed trigger.
When Keep Recent Resolved Zones is enabled, the script retains a limited number of recent successful and failed zones. The default is eight, adjustable from one to twelve, so failures remain visible without overwhelming the chart.
PRACTICAL USE
1. Treat an amber zone as a developing idea, not permission to trade.
2. When the zone turns violet, note its direction, confirmation boundary, and invalidation price.
3. Wait for the exact requirement of Early, Balanced, or Sniper mode.
4. Use the broader trend, nearby support and resistance, liquidity, session conditions, and scheduled news as separate context.
5. Apply your own position sizing, stop placement, targets, and trade-management rules.
ADAPTIVE PACE
Auto mode adjusts the engine according to the chart timeframe:
* Fast: 15-minute charts and below.
* Swing: above 15 minutes through 4 hours.
* Position: above 4 hours.
Fast, Swing, and Position can also be selected manually. The selected pace changes the drive and local-extreme lookbacks, minimum drive size, efficiency threshold, formation lifetime, armed lifetime, and Sniper retest window. It does not change the meaning of the pattern.
ALERTS
The indicator includes five alerts:
* Long Zone Armed
* Short Zone Armed
* Long Pressure Transfer
* Short Pressure Transfer
* Pressure Transfer Invalidated
Create alerts using Once Per Bar Close.
Trigger alerts and chart diamonds use the same confirmed-bar event. If an Early setup resolves on the same bar it arms, the temporary armed alert is suppressed so users do not receive a stale or redundant notification.
CONFIRMED-BAR DESIGN
Actionable signals are confirmed only after the chart bar closes. They are not backdated and do not use future data, pivot backpainting, negative offsets, higher-timeframe requests, or lookahead logic.
Amber developing zones are intentionally provisional and can change or disappear because the pattern is not complete. Once a zone turns violet, its structural prices and invalidation level are frozen for that event.
LIMITATIONS
Pressure Transfer Zone identifies structural-exhaustion candidates, not guaranteed reversals. It tracks one active sequence at a time and can miss fast V-shaped turns that never form two separate attempts.
Strong trends can repeatedly invalidate countertrend setups. Thin markets, price gaps, news shocks, and irregular sessions can also reduce the usefulness of ATR-based thresholds.
This is an indicator, not a strategy. It does not place orders, calculate position size, set profit targets, or claim a win rate. Its job is narrower: determine whether the original directional side returned to the extreme, failed to produce enough additional progress, and then met the model’s confirmation rule at a clearly defined price.
Indicator
ATR Risk Lattice - Position Size QuantizationA position-size calculator answers one question: given equity, a risk percentage and a stop
distance, how many units should I buy? The answer comes back fractional - 3.47 contracts, 118.6
shares - and the trader rounds it. This script is about what that rounding does to the risk you
actually carry.
THE PRINCIPLE
Position size is quantized. A broker sells whole contracts, or whole shares, or units of 0.01. So
the set of risk levels available to you is not continuous. It is a ladder, and the spacing between
two adjacent rungs is:
one size increment x (ATR multiple x ATR) x point value / equity
Every rung is a position you can hold. Everything between two rungs is a position you cannot hold.
The unrounded size almost never lands on a rung, so the risk you end up carrying is the rung you
rounded to, not the target you typed into the settings.
Two consequences follow, and both are invisible in a tool that prints a single size number:
1. When the account is small relative to the instrument, the ladder is coarse. On a
large-multiplier futures contract, adjacent rungs can sit more than a full percent of equity
apart, which means a 1% target is not reachable at all. The real choice is between no position and
one that risks considerably more than intended.
2. The ladder is not fixed. Its spacing is proportional to ATR, so as volatility expands the rungs
spread apart and risk control becomes coarser without anything in the setup changing.
WHAT IS PLOTTED
The pane plots realized risk as a percentage of equity after rounding, together with the two rungs
that bracket the unrounded size. The shaded band between those two lines is the range you are
forced to choose within. The dashed line is your target. When the band is narrow relative to the
target line, sizing is fine-grained. When it is wide, the sizing decision is dominated by
granularity rather than by your risk setting.
The line turns amber when one size increment moves realized risk by more than a configurable share
of your target - 25% by default.
HOW TO READ THE TABLE
The table reports the current bar. ATR and the timeframe and smoothing it came from; stop distance
in price and in ticks; the long and short stop levels measured from the current close; currency
risk per unit; target risk in percent and in currency; the unrounded size; the rounded size;
realized risk after rounding in percent and currency; the rung below and the rung above with their
risk levels; the ladder step, meaning how much realized risk moves per one size increment; and the
ladder step expressed as a percentage of your target, labelled fine or coarse.
The bottom row prints the opening timestamp of the bar the ATR was taken from, so the timing claim
below can be checked on the chart rather than taken on trust.
HIGHER-TIMEFRAME VOLATILITY
Risk is often managed on a slower timeframe than the one being watched. The script can take ATR
from a higher timeframe using a single bundled request. The requested expression is offset by one
bar and the request uses lookahead, which is the pair the Pine Script documentation specifies for
confirmed higher-timeframe values: the offset discards the bar that is still forming and returns
the one before it, which was already final when the current higher-timeframe bar opened.
Historical and realtime bars therefore produce the same value, and the timestamp in the table is
the opening time of the bar that value came from.
If the selected timeframe is at or below the chart timeframe, the table says so instead of quietly
returning something that is not a higher-timeframe value.
When ATR is taken from the chart timeframe instead - the default - it includes the bar currently
forming, so the last plotted value moves until that bar closes. Values on closed bars do not
change.
SETTINGS WORTH SETTING CAREFULLY
Minimum size increment. This sets the ladder spacing and is the input the whole tool turns on. Use
1 for futures and standard share accounts, and your broker's actual minimum for crypto or
fractional shares.
Point value. Defaults to the symbol's exchange multiplier via syminfo.pointvalue. That value is 1
for most equities and the contract multiplier for futures, but it is not what every broker
applies, and on forex and CFDs it will usually need to be overridden manually.
Account equity. Entered in the instrument's quote currency. No FX conversion is performed.
Rounding. Round down keeps realized risk at or below target. Round up does the opposite. Round to
nearest sends an exact half-step upward.
LIMITATIONS
The calculation assumes the stop fills at the stop price. It does not, on gaps, on halts, or in
thin books, so a realized loss can exceed the figure shown. It ignores commissions, financing,
slippage and margin requirements, any of which can make a rung unreachable for reasons this script
knows nothing about. It is a single-position calculator: it does not aggregate exposure across
open trades or correlated instruments. ATR is a description of recent range, not a forecast of it.
On non-standard chart types the true range is computed from synthetic bars rather than from traded
prices, so the ladder will describe the synthetic series.
This is a measurement and planning aid. It produces no entries, no exits and no signals, it makes
no claim about any method being sound or unsound, and there is nothing here to optimize. The
source is open, so every number in the table can be traced to the line that produced it.
Indicator
Squeeze Breakout Signals [TBalgo]Squeeze Breakout Signals spots when volatility compresses, then flags breakout long and short signals when price escapes the band after a tight zone.
Overview
This overlay indicator maps volatility compression and breakout direction on your chart. It builds dynamic SMA bands, detects when band width ranks in the lowest part of recent history (squeeze / tight zone), and fires signals only when price breaks the upper or lower band after compression.
Built for traders who want a clean squeeze → breakout workflow without clutter.
How it works
1. Bands — SMA midline + standard-deviation upper/lower bands
2. Tight zone — band width percentile rank vs lookback; when rank is low, market is in a squeeze
3. Signals — long when price crosses above the upper band after a tight bar; short when price crosses below the lower band after a tight bar
4. Guide lines — optional entry, risk (opposite band), and reward level based on band width
Features
- Green/red squeeze bands with tight-zone background wash
- Diamond markers on breakout signals
- Optional entry labels (`TB Long` / `TB Short`)
- HUD chip showing **TIGHT** or **LIVE** state
- Full display toggles — turn bands, signals, tags, guides, or HUD on/off
- Custom colors for bull, bear, and neutral states
- Built-in alerts for long, short, squeeze start, and expansion
Settings
Display — Bands · Tight Zone · Signals · Tags · Guide Lines · HUD
Engine
- **Length** — SMA / band period (default 50)
- **Std Mult** — band width multiplier (default 2.0)
- **Rank Lookback** — history for squeeze detection (default 100)
- **Tight Rank ≤** — max percentile to count as tight (default 20)
- **Reward × Width** — target distance as multiple of band width (default 1.5)
| Alert | When it fires |
|---|---|
| TB Squeeze Long | Bullish breakout after tight zone |
| TB Squeeze Short | Bearish breakout after tight zone |
| TB Squeeze Tight | Compression / squeeze begins |
| TB Squeeze Expand | Compression ends |
---
Suggested use
- **Higher timeframes (1H–1D):** default settings often work well for swing context
- **Lower timeframes (1–15m):** try shorter Length (20–35) and lower Tight Rank (10–15)
- Wait for **TIGHT** on the HUD, then trade only confirmed diamond signals
- Use guide lines as reference — not automatic trade execution
Pairs well with volume, structure, or liquidity tools on the same chart.
---
License
Original TBalgo indicator.
Licensed under Mozilla Public License 2.0 — free to use and modify with attribution.
Disclaimer
For education and research only. Not financial advice. Past signals do not guarantee future results. Always manage risk and do your own analysis before trading.
Indicator
Liquidity Hunter | SMC System - Full SuiteA full-sequence Smart Money Concepts strategy that trades the way institutional order flow moves — liquidity sweep, displacement, structure break, and a confirmed retest.
This strategy chains them into the complete institutional sequence: a real liquidity pool gets taken, an impulsive displacement candle breaks structure, a correctly-identified order block gets frozen at that exact moment, and only a genuine retest with confirmation triggers the entry.
Features
The Full SMC Sequence
HTF Bias → Liquidity Pool Taken → Sweep → Displacement Candle → BOS/CHoCH → FVG → Return to OB → Confirmation → Entry — every stage gated on the one before it, so entries reflect genuine confluence rather than a single coincidental signal.
Real Liquidity Pool Tracking
Tracks multiple historical swing highs/lows simultaneously (not just the most recent one), so a sweep can trigger off any untaken pool — mirroring how liquidity actually accumulates at equal highs/lows and older structure.
Displacement Filter
Structure breaks only count as valid if the breaking candle's body exceeds a configurable ATR multiple — filters out slow grinds through a level that aren't genuine institutional impulses.
Frozen-Zone Retest Logic
Once an OB forms, its boundaries are locked/frozen at that moment. Entries reference this frozen snapshot, not a live, potentially-mutated box — with an overlap-based touch test (not a strict "price must sit inside the zone" test) for realistic retest detection.
Configurable Confirmation Filters
After a retest touch, choose from: no confirmation, rejection candle, engulfing candle, close back through the OB, or a break of the retest candle's high/low — tune entry strictness to your risk tolerance.
Higher Timeframe Bias
Optional HTF trend filter ensures you're only taking setups aligned with the dominant trend on a higher timeframe.
FVG Confluence Option
Optionally require that the structure break actually creates a fair value gap — an added imbalance-based confluence layer before a setup is even considered.
Liquidity-Target Take Profit
Choose a fixed R-multiple target, or let the strategy aim at the nearest untaken liquidity pool in the trade's direction — closer to how institutional targets are actually theorized to work.
Risk-Based Position Sizing
Size trades by % risk per trade (scaled to actual stop distance) or flat % of equity, with a hard position-size cap.
Realistic Cost Modeling
Commission and slippage built into the backtest engine from the start.
Notes
Start with requireOBRetest = true and confirmationMode = "None" to validate the base sequence produces trades before layering on stricter confirmation modes.
HTF Bias and FVG Confluence are off by default — each meaningfully reduces trade frequency in exchange for higher-conviction setups; enable incrementally and check trade count after each change.
Works on any intraday or swing timeframe — the sequence logic (sweep → displacement → BOS → retest) is timeframe-agnostic, though displacement thresholds and pool aging windows may need retuning per timeframe.
"Nearest Liquidity Pool" take-profit mode requires active, untaken pools in the trade's direction to function — falls back to the R-multiple target if none exist.
Strategy
Swing Persistence Profile - Pivot Width SurvivalSwing Persistence Profile ranks every swing high and swing low on the chart by the widest pivot
window it survives. It is also explicit about the exact bar on which that rank becomes knowable,
and it shades the region where it is not knowable yet.
THE IDEA
A pivot is not a property of a bar on its own. It is a property of a bar together with the width
of the window it was compared against. The same high is a swing high when you look two bars either
side, and is not a swing high when you look thirteen. Tools that ask you to pick one width and
then draw the result bury that choice inside a single number.
This script evaluates up to five widths at once - 2, 3, 5, 8 and 13 bars each side by default -
and records, for every bar, the widest width at which that bar is still the extreme of its window.
That number is the bar's persistence depth.
Because widening a window can only add constraints, the widths are strictly nested: a bar that is
the highest of its 13-bar neighbourhood is necessarily also the highest of its 8, 5, 3 and 2-bar
neighbourhoods. Depth is therefore a single ordered rank rather than five separate opinions that
have to be reconciled. A depth-13 swing is a depth-3 swing that kept going.
TIMING
A pivot of width w cannot be identified until w bars have closed after it. That is arithmetic, not
an implementation detail, and it means a bar's persistence depth is not final until the deepest
active width has passed.
There is one further subtlety that most pivot scripts leave in place. The w-th bar after the
candidate is itself still forming while it is the live bar, and its own high or low can still
invalidate the pivot. A script that reads the verdict during that bar will show a marker that
changes, or vanishes, before the bar closes.
This one waits one bar longer. Every verdict it reads comes from a bar that has already closed, so
the confirmation lag is the deepest active width plus one bar. A marker is created once, on the
bar it describes, and is then left alone: it is not moved, recoloured or deleted on later bars,
and it does not flicker intrabar either.
The bars still inside that delay are shaded, so the region where the answer can still change is
visible on the chart instead of being left to inference. Nothing inside the shaded region has been
ranked yet, so an empty shaded region means "not decided," not "no swings here."
WHAT IS DRAWN
A marker on each qualifying swing, placed on the bar that made the extreme, coloured and sized by
depth, optionally printing the depth as a number.
An optional structure line joining swings at or above one chosen depth, alternating between highs
and lows. The most recent segment extends if a later bar sets a more extreme value in the same
direction; once a swing in the opposite direction closes a segment, that segment is fixed.
An optional higher-timeframe reference: the price of the most recent confirmed swing high and
swing low measured on a higher timeframe, drawn as a stepped level. The requested expression is
offset by one bar and the request uses lookahead, which is the pair the Pine Script documentation
specifies for confirmed higher-timeframe values, so historical and realtime bars receive the same
series. The level therefore lags by the reference width plus one bar of the reference timeframe,
and that lag is the point rather than a defect.
Optional alerts on a swing reaching a chosen depth. The alert fires as many bars after the swing
as the deepest active width plus one; the swing itself is on the earlier bar. Because every
verdict is read from a closed bar, "Once Per Bar" and "Once Per Bar Close" fire on the same bar.
THE TABLE
"Swings" counts how many swings reached at least that depth across loaded history, highs and lows
together. "Kept" is the share of the previous row's swings that survived into this row. "Bars ea"
is the average number of bars per swing at that depth. The footer reports the confirmation lag in
bars and how many bars have been rated.
The survival ratios describe the instrument and timeframe you are looking at, not any particular
trade. If most depth-2 swings die at depth 3, the chart is producing many local extremes that do
not extend. If they survive, the same series is producing fewer and longer swings. Comparing that
profile across timeframes or across symbols is a way of choosing a swing width that matches how a
market actually moves, rather than choosing 5 because 5 is a common default.
Counts cover every bar of history the chart has loaded, so they are comparable between symbols
only when the loaded history is comparable.
SETTINGS
Depths in use activates between two and five of the width slots. Reducing it also shortens the
undecided region at the right edge, because that region is as long as the deepest active width
plus one settling bar.
Every depth threshold in the script - minimum depth to mark, minimum depth for the structure line,
and the alert depth - is stated in BARS EACH SIDE, not as a slot number. With the default widths,
"minimum depth 3" means the second of the five slots. A threshold set above the deepest active
width produces nothing, by design.
Enter the widths in ascending order. The ranking itself does not require it, but the table only
reads as a survival sequence when they ascend, and "Kept" can exceed 100% if they do not.
The higher-timeframe reference width is counted in bars of that timeframe: a width of 5 on a daily
reference means five daily bars each side.
WHO IT IS FOR
Anyone who uses swing points as an input to something else - reading structure, choosing the
lookback for a range or a channel, deciding how far back a level should be considered relevant -
and would rather see how sensitive those points are to window width than settle it by habit. It is
also usable as a calibration step before fixing a pivot length in another tool.
WHAT IT DOES NOT DO
It produces no entries, exits, targets, direction or bias, and nothing in it should be read as
one. It measures the geometry of the price series and stops there. Persistence depth describes
what has already happened; a deep swing is not evidence about what happens next.
NOTES
Highs and lows come from the chart series. On non-standard chart types - Heikin Ashi, Renko, Kagi,
Point and Figure, Range - those values are synthetic, and the depths will describe the synthetic
series rather than the market. The script declares alert conditions, so it should be used and
presented on a standard chart type.
PulseWire permits 500 labels and 500 lines per script. On long histories the platform drops the
oldest drawings as newer ones are created, so the left edge of a deep history may be bare. This
does not affect the table, which counts every rated bar.
Persistence depth for highs and lows, and the bar index each verdict refers to, are available in
the Data Window. Those values describe the bar named by "Swing bar index," not the bar the cursor
is on.
One data request is made for the higher-timeframe reference whether or not it is displayed, so
enabling it costs nothing extra.
ORIGINALITY
The built-in ta.pivothigh() and ta.pivotlow() functions are used as the primitive, as they are in
a great many scripts. Everything above them is written for this script: running several widths in
parallel, aligning their verdicts onto a common bar so that they can be compared, reducing them to
one nested rank, deferring every drawing until that rank is final on closed data, marking the
region where it is not yet final, and reporting the survival ratios between widths.
Open source under the Mozilla Public License 2.0. The logic is described above in enough detail to
be checked line by line against the source.
Indicator
Sigmoid Alpha Bands | NAL1. Overview
Sigmoid Alpha Bands | NAL is an adaptive trend and volatility framework built around a sigmoid-weighted EMA baseline and dynamically adjusted volatility bands.
Instead of smoothing price with a fixed alpha, the indicator modifies its responsiveness using a selected market feed. Momentum, volatility, volume, or price disparity can control how quickly the baseline adapts to changing conditions.
The surrounding bands can also respond asymmetrically to bullish and bearish return shocks. This allows the upper and lower boundaries to develop independently rather than remaining equally spaced around the baseline.
2. Calculation
The indicator begins by selecting the market variable used to control the baseline’s adaptive smoothing weight.
Momentum measures changes in RSI, volatility measures changes in ATR, volume measures changes in smoothed volume, and disparity measures changes in price relative to its EMA.
sigmoidFeed = switch sigFeed
"Momentum" => ta.change(ta.rsi(src, modLen), changeL)
"Volatility" => ta.change(ta.atr(modLen), changeL)
"Volume" => ta.change(ta.ema(volume, modLen), changeL)
"Disparity" => ta.change(src / ta.ema(src, modLen), changeL)
The selected feed is passed through a sigmoid function, converting it into a bounded adaptive weight.
That weight modifies the standard EMA alpha. When the sigmoid weight increases, the baseline can respond more quickly. When it decreases, the baseline becomes more stable.
sigmoidWeight = sigmoid_function(sigmoidFeed)
baseAlpha = 2.0 / (emaLen + 1.0)
adaptiveAlpha = f_clamp(baseAlpha * (0.5 + sigmoidWeight), 0.01, 1.0)
The final adaptive baseline is calculated recursively using the changing alpha.
sigmoid_ema = f_sigmoid_ema(src, sigmoidFeed, sigLen)
The indicator then calculates its base volatility using one of four methods: standard deviation, ATR, mean absolute deviation, or median absolute deviation.
volatilityRaw = switch volFeed
"SD" => ta.stdev(src, volLen)
"ATR" => ta.atr(volLen)
"MeanAD" => ta.dev(src, volLen)
"MedianAD" => f_median_ad(src, volLen)
This raw volatility value is also processed through a sigmoid-adaptive smoothing layer. The result becomes the symmetric volatility foundation used by the bands.
volatilityFeed = ta.change(volatilityRaw / nz(ta.ema(volatilityRaw, volLen), volatilityRaw), changeL)
volatility = f_sigmoid_ema(volatilityRaw, volatilityFeed, volLen)
When asymmetric bands are enabled, positive and negative log-return shocks are separated into bullish and bearish variance components.
bullShock = math.pow(math.max(ret, 0.0), 2.0)
bearShock = math.pow(math.max(-ret, 0.0), 2.0)
totalShock = bullShock + bearShock
Each shock component is adaptively smoothed and compared with total variance. This produces separate upper and lower volatility multipliers.
The multipliers are constrained around their longer-term average so the bands can adapt without becoming unstable.
upperVol = math.max(nz(symmetricVol, syminfo.mintick) * upperMultAdj, syminfo.mintick)
lowerVol = math.max(nz(symmetricVol, syminfo.mintick) * lowerMultAdj, syminfo.mintick)
The final bands are positioned around the sigmoid-adaptive baseline.
upperBand = sigmoid_ema + finalUpper * volMul
lowerBand = sigmoid_ema - finalLower * volMul
A bullish state is established when price closes above the upper band. A bearish state is established when price closes below the lower band. While price remains between the boundaries, the existing state is preserved.
if close > upperBand
NAL := 1
if close < lowerBand
NAL := -1
3. Key Features
Sigmoid-weighted adaptive EMA baseline.
Selectable momentum, volatility, volume, or disparity adaptation feed.
Multiple volatility calculation methods.
Optional asymmetric bullish and bearish volatility bands.
Independent modeling of positive and negative return shocks.
Controlled asymmetry through long-term multiplier normalization.
State-based candle coloring, layered volatility hulls, glow effects, and directional fills.
4. Use
Sigmoid Alpha Bands is designed to identify when price expands beyond an adaptively smoothed volatility structure.
A close above the upper boundary reflects bullish expansion beyond the current baseline and volatility regime. A close below the lower boundary reflects bearish expansion beneath that structure.
The asymmetric mode allows the indicator to recognize that bullish and bearish volatility do not always develop with equal intensity. As market pressure changes, each side of the channel can adjust independently while remaining anchored to the same adaptive baseline.
This indicator is designed as a specialized component within a complete strategy architecture. Its role is to isolate the interaction between adaptive trend, changing volatility, and directional return pressure. Its full value emerges through the way this information is integrated into a broader decision framework.
Indicator
FVG Displacement & Fill Scoring [SlatinaTrades]📦 FVG Displacement & Fill Scoring — not every gap earns a box.
Most FVG tools draw every three-candle gap and call it a day. Chart full of boxes, no way to tell which one was actually worth anything. This one scores the displacement that created each gap, tracks its fill lifecycle bar by bar, then bins every completed zone into quartiles and reports whether the score actually separated the good gaps from the noise — on your symbol, your timeframe.
Bidirectional. Context only — no entries, no stops, no targets, no risk anywhere in the file.
THE MECHANICS
📐 Displacement score (0–100) — a weighted composite of gap size (in ATR), displacement-candle range (in ATR), and body/range ratio. Every weight and every normalization point ("gap ATR = full score at X") is a user input.
🔍 Measure-only probes — structure-break (did the displacement candle take out the most recent confirmed pivot?) and volume ratio (displacement volume vs. average) are computed, exported to alerts, and binned in the harness — kept out of the composite until they earn a place.
🚦 Regime, as a flag, not a gate — an HTF SMA direction read. It never blocks a zone from forming or scoring. It only tags the sample so the harness can slice regime-aligned vs. counter-regime.
🔁 Fill lifecycle — every zone moves FRESH → TAGGED → HALF → FULL, with an INVALIDATED branch. Box opacity fades with state so a glance tells you what's live and what's already resolved.
📊 Separation harness — completed zones get binned into quartiles by displacement score, and the table reports mean favorable excursion (ATR-at-tag units) per quartile against a baseline — with a minimum-sample trust flag so a 6-sample bin doesn't get read as gospel. Four slice filters (All / Regime-aligned / Counter-regime / Struct-broke / No-struct) let you test whether the score actually separates outcomes under a given condition.
🎨 Visuals — inline labels capped to the top-scoring live zones (anti-overlap nudge or cascade, optional leader lines), a 50% midline at the half-fill threshold, a callout arrow on the displacement candle, and a dashboard panel. Resolved zones stop drawing the moment they fill or invalidate — the harness still counts them, they just get out of the way.
🚫 Non-repainting — one request.security call, lookahead off. Detection, fill-state transitions, and alerts are all gated by barstate.isconfirmed. One honest exception: the regime read looks at the developing HTF bar in realtime, since it's a flag-only context tag, never a signal — worth knowing if you're auditing for repaint.
🔔 Alerts — FVG born, FVG fill change, FVG any event. Each carries a JSON payload (direction, score, state, structure flag, volume ratio, zone bounds, fill depth) for webhook consumption.
📐 Built for
Any symbol and timeframe where FVGs form — bidirectional, so demand and supply gaps are both first-class. Optional session filter narrows detection to a chosen window if you only want gaps born inside specific hours. Give the harness enough history to clear your minimum-sample threshold before trusting the quartile read.
⚙️ Note
Context tool, not a signal generator.
Built to pass one test: still useful after it's been on your chart a while. — SlatinaTrades
Indicator
Weather Window Lite [PrimeFold]Regime filter.
GO or NO-GO read on current market conditions.
Run it before any signal.
Free, no alerts.
The best signal in the wrong environment still loses money.
Weather Window Lite tells you whether current conditions favor trading
or patience.
Two states:
- GO: environment favors active trading
- NO-GO: environment favors sitting on hands
Filter by environment before signal quality.
NO-GO means wait,
regardless of how clean the setup looks.
Add it alongside your existing indicators.
Check regime state before you trade.
NO-GO means wait.
It doesn't show regime strength levels, generate alerts, or give entry
points.
This is the environment filter.
Run it before anything else.
Indicator
AlgoStorm Expected Move Levels (EML)AlgoStorm Expected Move Levels (EML)
A precision options-implied range mapping tool that plots daily and weekly ±1σ and ±2σ expected-move bands from the ATM straddle, from implied volatility, or from an automatic average-range fallback — with a live meter showing how much of the average daily and weekly range has already been consumed.
The AlgoStorm Expected Move Levels (EML) indicator is designed for index and futures traders who trade with the options market's own forecast. The at-the-money straddle is the market's priced bet on how far the underlying travels before expiry; the expected move derived from it defines the range the market is paid to defend. Gamma levels show where dealers defend — the expected move shows how far the market is priced to travel . Together they form the complete options-informed map for index futures, and EML is the second half of that pair.
DATA INPUT — READ BEFORE LOADING
This indicator carries no built-in options data feed. Setup is a single paste. Our free browser-based GEX dashboard includes an Expected Move calculator that auto-fills spot and the ATM straddle from delayed CBOE quotes and emits one CSV line — 1,anchor,dailyStraddle,weeklyStraddle,multiplier (example: 1,6350.25,44.30,94.80,0.85). Drop that line into the EM Data field and every value is populated at once; the leading 1 is a format version the script validates, so a malformed or mismatched paste is flagged on the chart instead of silently plotting nonsense.
Prefer to work from your own options chain? The Manual Entry group still accepts an ATM straddle price (call + put at the strike nearest spot) or an annualized implied-volatility figure, and a valid paste simply takes precedence over it. With the paste field empty and both manual inputs at zero, the script runs standalone on its average-range fallback, so it works out of the box. Refresh the paste once per session, before the open.
Symbol Mode: SPX / ES plots pasted values as-is — SPX options are struck at the same levels ES trades. SPY mode divides the pasted anchor and straddles by 10. Scaling is applied to pasted values only; manual entries are always read in chart units.
Technical Architecture: Triple-Source Expected Move Pipeline
Versioned Paste Decoder: One string input carries anchor, daily straddle, weekly straddle and multiplier — validated on version and field count, with every absent slot decoding to zero so it falls through to the manual entries and then to the range fallback. The info table reports whether the live values came from the paste, from manual entry, or from the automatic fallback.
Straddle Conversion Engine: EM(1σ) = ATM straddle × 0.85. A straddle's price is its expected payout; under a normal approximation, roughly 85% of that payout equals the 1σ price range. The multiplier is exposed as an input — set 1.0 to use the raw straddle convention instead. A pasted line carries its own multiplier and takes precedence; when using the paste workflow, adjust the multiplier on the dashboard before copying.
Volatility Mode: EM(daily) = anchor × IV × √(1/252) and EM(weekly) = anchor × IV × √(5/252), the trading-day convention. Useful when you track IV but not option prices.
Automatic Fallback Cascade: Any zeroed input degrades gracefully — daily falls back to the Average Daily Range (default 14 days), weekly to the Average Weekly Range (default 8 weeks), and a missing weekly straddle first derives from the daily straddle × √5. The info table always displays which source is live, so there is never ambiguity about what the bands represent.
Chart-Side Lock Engine: The script contains zero request.security calls. Anchors and bands compute from the chart's own session boundaries and lock at the day/week open — they cannot move intraday, and there is no repaint path by construction.
Range Consumption Meter: Completed daily and weekly ranges feed fixed-length rolling windows; the current period's range is expressed as a percentage of its average ("today has used 78% of its average range") — the continuation/exhaustion filter the EM bands are read with.
Features & Functionality
Daily Expected Move Bands: ±1σ and optional ±2σ steplines around a configurable anchor — prior close (the desk-quoting convention, default), today's open, or the spot price carried in the paste.
Weekly Expected Move Bands: The identical structure anchored at the weekly boundary, off by default for chart cleanliness.
Anchor Lines: Dimmed reference steplines marking the exact price the bands are centred on.
Live Info Table: Effective daily and weekly EM with source labels, ADR/AWR values, day/week range-consumption percentages that highlight when a range is fully spent, and an EM Data row reporting paste / manual / fallback status.
Symbol Mode: SPX / ES one-to-one, or SPY with pasted values auto-scaled ÷10 — a chart label confirms whenever scaling is active.
Alert Suite: Seven conditions — daily ±1σ break, daily ±2σ break (tail move), weekly ±1σ break, and ADR exhausted (day range reaches 100% of average). All fire on confirmed closes; a crossed band cannot move away afterward.
Honest limitations: the expected move is model context, not a boundary — roughly one day in three closes outside the ±1σ band by construction, because that is what 1σ means . Straddle and IV inputs are static: re-enter them when the session rolls or the volatility regime shifts. ADR/AWR use chart-session ranges, which on continuous futures include the overnight session — usually what you want on full-Globex instruments, but know your convention.
Open-source under CC BY-NC-SA 4.0. Educational tool — not financial advice.
Indicator
NATR Chart by LobsterTG - lobsterstein
Индикатор выводит следующий параметр:
NATR (Normalized Average True Range) - Нормализованный средний истинный диапазон
Что показывает: Текущую волатильность инструмента в процентах от его цены. Чем выше значение, тем сильнее рыночные колебания относительно цены.
Как рассчитывается:
- Берётся истинный диапазон (True Range) за каждый бар: `max(high - low, |high - close |, |low - close |)`.
- К нему применяется экспоненциальная скользящая средняя (EMA) с периодом 14.
- Полученное среднее значение делится на текущую цену закрытия и умножается на 100: `(EMA(TR, 14) / close) * 100`.
- Результат показывает, сколько процентов от цены составляет средний диапазон свечей за последние 14 баров.
Формат: Проценты с двумя знаками после запятой (например, «1.25»). Линия отображается белым цветом на отдельной шкале.
Особенности: Индикатор предельно лаконичен – все настройки (период, тип средней) жёстко зафиксированы, чтобы не перегружать график.
Дополнительная информация:
- Индикатор создан как минималистичная версия панели Lobster Board, сфокусированная исключительно на отображении NATR.
- Отсутствуют таблицы, пороговые подсветки и дополнительные параметры (объём, корреляция, максимум) – только чистая линия волатильности.
- Подходит для быстрой оценки текущей волатильности без лишних элементов.
IN ENGLISH
b]The indicator displays the following parameter:
NATR (Normalized Average True Range)
What it shows: The current volatility of the instrument as a percentage of its price. The higher the value, the stronger the market fluctuations relative to the price.
How it is calculated:
The True Range (TR) is taken for each bar: max(high - low, |high - close |, |low - close |).
An exponential moving average (EMA) with a period of 14 is applied to it.
The resulting average value is divided by the current closing price and multiplied by 100: (EMA(TR, 14) / close) * 100.
The result shows what percentage of the price is the average range of candles over the last 14 bars.
Format: Percentages with two decimal places (e.g., "1.25"). The line is displayed in white on a separate scale.
Features: The indicator is extremely concise – all settings (period, average type) are fixed to avoid cluttering the chart.
Additional information:
- The indicator is created as a minimalistic version of the Lobster Board panel, focused solely on displaying NATR.
- There are no tables, threshold highlights, or additional parameters (volume, correlation, maximum) – just a clean volatility line.
- It is suitable for quickly assessing current volatility without unnecessary elements.
Indicator























