Volatility Targeting: Single Asset [BackQuant]Volatility Targeting: Single Asset
An educational example that demonstrates how volatility targeting can scale exposure up or down on one symbol, then applies a simple EMA cross for long or short direction and a higher timeframe style regime filter to gate risk. It builds a synthetic equity curve and compares it to buy and hold and a benchmark.
Important disclaimer
This script is a concept and education example only . It is not a complete trading system and it is not meant for live execution. It does not model many real world constraints, and its equity curve is only a simplified simulation. If you want to trade any idea like this, you need a proper strategy() implementation, realistic execution assumptions, and robust backtesting with out of sample validation.
Single asset vs the full portfolio concept
This indicator is the single asset, long short version of the broader volatility targeted momentum portfolio concept. The original multi asset concept and full portfolio implementation is here:
That portfolio script is about allocating across multiple assets with a portfolio view. This script is intentionally simpler and focuses on one symbol so you can clearly see how volatility targeting behaves, how the scaling interacts with trend direction, and what an equity curve comparison looks like.
What this indicator is trying to demonstrate
Volatility targeting is a risk scaling framework. The core idea is simple:
If realized volatility is low relative to a target, you can scale position size up so the strategy behaves like it has a stable risk budget.
If realized volatility is high relative to a target, you scale down to avoid getting blown around by the market.
Instead of always being 1x long or 1x short, exposure becomes dynamic. This is often used in risk parity style systems, trend following overlays, and volatility controlled products.
This script combines that risk scaling with a simple trend direction model:
Fast and slow EMA cross determines whether the strategy is long or short.
A second, longer EMA cross acts as a regime filter that decides whether the system is ACTIVE or effectively in CASH.
An equity curve is built from the scaled returns so you can visualize how the framework behaves across regimes.
How the logic works step by step
1) Returns and simple momentum
The script uses log returns for the base return stream:
ret = log(price / price )
It also computes a simple momentum value:
mom = price / price - 1
In this version, momentum is mainly informational since the directional signal is the EMA cross. The lookback input is shared with volatility estimation to keep the concept compact.
2) Realized volatility estimation
Realized volatility is estimated as the standard deviation of returns over the lookback window, then annualized:
vol = stdev(ret, lookback) * sqrt(tradingdays)
The Trading Days/Year input controls annualization:
252 is typical for traditional markets.
365 is typical for crypto since it trades daily.
3) Volatility targeting multiplier
Once realized vol is estimated, the script computes a scaling factor that tries to push realized volatility toward the target:
volMult = targetVol / vol
This is then clamped into a reasonable range:
Minimum 0.1 so exposure never goes to zero just because vol spikes.
Maximum 5.0 so exposure is not allowed to lever infinitely during ultra low volatility periods.
This clamp is one of the most important “sanity rails” in any volatility targeted system. Without it, very low volatility regimes can create unrealistic leverage.
4) Scaled return stream
The per bar return used for the equity curve is the raw return multiplied by the volatility multiplier:
sr = ret * volMult
Think of this as the return you would have earned if you scaled exposure to match the volatility budget.
5) Long short direction via EMA cross
Direction is determined by a fast and slow EMA cross on price:
If fast EMA is above slow EMA, direction is long.
If fast EMA is below slow EMA, direction is short.
This produces dir as either +1 or -1. The scaled return stream is then signed by direction:
avgRet = dir * sr
So the strategy return is volatility targeted and directionally flipped depending on trend.
6) Regime filter: ACTIVE vs CASH
A second EMA pair acts as a top level regime filter:
If fast regime EMA is above slow regime EMA, the system is ACTIVE.
If fast regime EMA is below slow regime EMA, the system is considered CASH, meaning it does not compound equity.
This is designed to reduce participation in long bear phases or low quality environments, depending on how you set the regime lengths. By default it is a classic 50 and 200 EMA cross structure.
Important detail, the script applies regime_filter when compounding equity, meaning it uses the prior bar regime state to avoid ambiguous same bar updates.
7) Equity curve construction
The script builds a synthetic equity curve starting from Initial Capital after Start Date . Each bar:
If regime was ACTIVE on the previous bar, equity compounds by (1 + netRet).
If regime was CASH, equity stays flat.
Fees are modeled very simply as a per bar penalty on returns:
netRet = avgRet - (fee_rate * avgRet)
This is not realistic execution modeling, it is just a simple turnover penalty knob to show how friction can reduce compounded performance. Real backtesting should model trade based costs, spreads, funding, and slippage.
Benchmark and buy and hold comparison
The script pulls a benchmark symbol via request.security and builds a buy and hold equity curve starting from the same date and initial capital. The buy and hold curve is based on benchmark price appreciation, not the strategy’s asset price, so you can compare:
Strategy equity on the chart symbol.
Buy and hold equity for the selected benchmark instrument.
By default the benchmark is TVC:SPX, but you can set it to anything, for crypto you might set it to BTC, or a sector index, or a dominance proxy depending on your study.
What it plots
If enabled, the indicator plots:
Strategy Equity as a line, colored by recent direction of equity change, using Positive Equity Color and Negative Equity Color .
Buy and Hold Equity for the chosen benchmark as a line.
Optional labels that tag each curve on the right side of the chart.
This makes it easy to visually see when volatility targeting and regime gating change the shape of the equity curve relative to a simple passive hold.
Metrics table explained
If Show Metrics Table is enabled, a table is built and populated with common performance statistics based on the simulated daily returns of the strategy equity curve after the start date. These include:
Net Profit (%) total return relative to initial capital.
Max DD (%) maximum drawdown computed from equity peaks, stored over time.
Win Rate percent of positive return bars.
Annual Mean Returns (% p/y) mean daily return annualized.
Annual Stdev Returns (% p/y) volatility of daily returns annualized.
Variance of annualized returns.
Sortino Ratio annualized return divided by downside deviation, using negative return stdev.
Sharpe Ratio risk adjusted return using the risk free rate input.
Omega Ratio positive return sum divided by negative return sum.
Gain to Pain total return sum divided by absolute loss sum.
CAGR (% p/y) compounded annual growth rate based on time since start date.
Portfolio Alpha (% p/y) alpha versus benchmark using beta and the benchmark mean.
Portfolio Beta covariance of strategy returns with benchmark returns divided by benchmark variance.
Skewness of Returns actually the script computes a conditional value based on the lower 5 percent tail of returns, so it behaves more like a simple CVaR style tail loss estimate than classic skewness.
Important note, these are calculated from the synthetic equity stream in an indicator context. They are useful for concept exploration, but they are not a substitute for professional backtesting where trade timing, fills, funding, and leverage constraints are accurately represented.
How to interpret the system conceptually
Vol targeting effect
When volatility rises, volMult falls, so the strategy de risks and the equity curve typically becomes smoother. When volatility compresses, volMult rises, so the system takes more exposure and tries to maintain a stable risk budget.
This is why volatility targeting is often used as a “risk equalizer”, it can reduce the “biggest drawdowns happen only because vol expanded” problem, at the cost of potentially under participating in explosive upside if volatility rises during a trend.
Long short directional effect
Because direction is an EMA cross:
In strong trends, the direction stays stable and the scaled return stream compounds in that trend direction.
In choppy ranges, the EMA cross can flip and create whipsaws, which is where fees and regime filtering matter most.
Regime filter effect
The 50 and 200 style filter tries to:
Keep the system active in sustained up regimes.
Reduce exposure during long down regimes or extended weakness.
It will always be late at turning points, by design. It is a slow filter meant to reduce deep participation, not to catch bottoms.
Common applications
This script is mainly for understanding and research, but conceptually, volatility targeting overlays are used for:
Risk budgeting normalize risk so your exposure is not accidentally huge in high vol regimes.
System comparison see how a simple trend model behaves with and without vol scaling.
Parameter exploration test how target volatility, lookback length, and regime lengths change the shape of equity and drawdowns.
Framework building as a reference blueprint before implementing a proper strategy() version with trade based execution logic.
Tuning guidance
Lookback lower values react faster to vol shifts but can create unstable scaling, higher values smooth scaling but react slower to regime changes.
Target volatility higher targets increase exposure and drawdown potential, lower targets reduce exposure and usually lower drawdowns, but can under perform in strong trends.
Signal EMAs tighter EMAs increase trade frequency, wider EMAs reduce churn but react slower.
Regime EMAs slower regime filters reduce false toggles but will miss early trend transitions.
Fees if you crank this up you will see how sensitive higher turnover parameter sets are to friction.
Final note
This is a compact educational demonstration of a volatility targeted, long short single asset framework with a regime gate and a synthetic equity curve. If you want a production ready implementation, the correct next step is to convert this concept into a strategy() script, add realistic execution and cost modeling, test across multiple timeframes and market regimes, and validate out of sample before making any decision based on the results.
[i]price
"Clean Market Structure & Trend Confirmation" Clean Market Structure & Trend Confirmation is a high-probability Market Structure and Trend Confirmation indicator trading system designed specifically for SPY and QQQ.
It combines trend structure, multi-timeframe confirmation, momentum gating, and market-state filtering to deliver clean, disciplined BUY and SELL signals — without noise, chop, or over-trading.
This script is built for traders who want clarity first, execution second.
Open Interest Z-Score [BackQuant]Open Interest Z-Score
A standardized pressure gauge for futures positioning that turns multi venue open interest into a Z score, so you can see how extreme current positioning is relative to its own history and where leverage is stretched, decompressing, or quietly re loading.
What this is
This indicator builds a single synthetic open interest series by aggregating futures OI across major derivatives venues, then standardises that aggregated OI into a rolling Z score. Instead of looking at raw OI or a simple change, you get a normalized signal that says "how many standard deviations away from normal is positioning right now", with optional smoothing, reference bands, and divergence detection against price.
You can render the Z score in several plotting modes:
Line for a clean, classic oscillator.
Colored line that encodes both sign and momentum of OI Z.
Oscillator histogram that makes impulses and compressions obvious.
The script also includes:
Aggregated open interest across Binance, Bybit, OKX, Bitget, Kraken, HTX, and Deribit, using multiple contract suffixes where applicable.
Choice of OI units, either coin based or converted to USD notional.
Standard deviation reference lines and adaptive extreme bands.
A flexible smoothing layer with multiple moving average types.
Automatic detection of regular and hidden divergences between price and OI Z.
Alerts for zero line and ±2 sigma crosses.
Aggregated open interest source
At the core is the same multi venue OI aggregation engine as in the OI RSI tool, adapted from NoveltyTrade's work and extended for this use case. The indicator:
Anchors on the current chart symbol and its base currency.
Loops over a set of exchanges, gated by user toggles:
Binance.
Bybit.
OKX.
Bitget.
Kraken.
HTX.
Deribit.
For each exchange, loops over several contract suffixes such as USDT.P, USD.P, USDC.P, USD.PM to cover the common perp and margin styles.
Requests OI candles for each exchange plus suffix pair into a small custom OI type that carries open, high, low and close of open interest.
Converts each OI stream into a common unit via the sw method:
In COIN mode, OI is normalized relative to the coin.
In USD mode, OI is scaled by price to approximate notional.
Exchange specific scaling factors are applied where needed to match contract multipliers.
Accumulates all valid OI candles into a single combined OI "candle" by summing open, high, low and close across venues.
The result is oiClose , a synthetic close for aggregated OI that represents cross venue positioning. If there is no valid OI data for the symbol after this process, the script throws a clear runtime error so you know the market is unsupported rather than quietly plotting nonsense.
How the Z score is computed
Once the aggregated OI close is available, the indicator computes a rolling Z score over a configurable lookback:
Define subject as the aggregated OI close.
Compute a rolling mean of this subject with EMA over Z Score Lookback Period .
Compute a rolling standard deviation over the same length.
Subtract the mean from the current OI and divide by the standard deviation.
This gives a raw Z score:
oi_z_raw = (subject − mean) ÷ stdDev .
Instead of plotting this raw value directly, the script passes it through a smoothing layer:
You pick a Smoothing Type and Smoothing Period .
Choices include SMA, HMA, EMA, WMA, DEMA, RMA, linear regression, ALMA, TEMA, and T3.
The helper ma function applies the chosen smoother to the raw Z score.
The result is oi_z , a smoothed Z score of aggregated open interest. A separate EMA with EMA Period is then applied on oi_z to create a signal line ma that can be used for crossovers and trend reads.
Plotting modes
The Plotting Type input controls how this Z score is rendered:
1) Line
In line mode:
The smoothed OI Z score is plotted as a single line using Base Line Color .
The EMA overlay is optionally plotted if Show EMA is enabled.
This is the cleanest view when you want to treat OI Z like a standard oscillator, watching for zero line crosses, swings, and divergences.
2) Colored Line
Colored line mode adds conditional color logic to the Z score:
If the Z score is above zero and rising, it is bright green, representing positive and strengthening positioning pressure.
If the Z score is above zero and falling, it shifts to a cooler cyan, representing positive but weakening pressure.
If the Z score is below zero and falling, it is bright red, representing negative and strengthening pressure (growing net de risking or shorting).
If the Z score is below zero and rising, it is dark red, representing negative but recovering pressure.
This mapping makes it easy to see not only whether OI is above or below its historical mean, but also whether that deviation is intensifying or fading.
3) Oscillator
Oscillator mode turns the Z score into a histogram:
The smoothed Z score is plotted as vertical columns around zero.
Column colors use the same conditional palette as colored line mode, based on sign and change direction.
The histogram base is zero, so bars extend up into positive Z and down into negative Z.
Oscillator mode is useful when you care about impulses in positioning, for example sharp jumps into positive Z that coincide with fast builds in leverage, or deep spikes into negative Z that show aggressive flushes.
4) None
If you only want reference lines, extreme bands, divergences, or alerts without the base oscillator, you can set plotting to None and keep the rest of the tooling active.
The EMA overlay respects plotting mode and only appears when a visible Z score line or histogram is present.
Reference lines and standard deviation levels
The Select Reference Lines input offers two styles:
Standard Deviation Levels
Plots small markers at zero.
Draws thin horizontal lines at +1, +2, −1 and −2 Z.
Acts like a classic Z score ladder, zero as mean, ±1 as normal band, ±2 as outer band.
This mode is ideal if you want a textbook statistical framing, using ±1 and ±2 sigma as standard levels for "normal" versus "extended" positioning.
Extreme Bands
Extreme bands build on the same ±1 and ±2 lines, then add:
Upper outer band between +3 and +4 Z.
Lower outer band between −3 and −4 Z.
Dynamic fill colors inside these bands:
If the Z score is positive, the upper band fill turns red with an alpha that scales with the magnitude of |Z|, capped at a chosen max strength. Stronger deviations towards +4 produce more opaque red fills.
If the Z score is negative, the lower band fill turns green with the same adaptive alpha logic, highlighting deep negative deviations.
Opposite side bands remain a faint neutral white when not in use, so they still provide structural context without shouting.
This creates a visual "danger zone" for position crowding. When the Z score enters these outer bands, open interest is many standard deviations away from its mean and you are dealing with rare but highly loaded positioning states.
Z score as a positioning pressure gauge
Because this is a Z score of aggregated open interest, it measures how unusual current positioning is relative to its own recent history, not just whether OI is rising or falling:
Z near zero means total OI is roughly in line with normal conditions for your lookback window.
Positive Z means OI is above its recent mean. The further above zero, the more "crowded" or extended positioning is.
Negative Z means OI is below its recent mean. Deep negatives often mark post flush environments where leverage has been cleared and the market is under positioned.
The smoothing options help control how much noise you want in the signal:
Short Z score lookback and short smoothing will react quickly, suited for short term traders watching intraday positioning shocks.
Longer Z score lookback with smoother MA types (EMA, RMA, T3) give a slower, more structural view of where the crowd sits over days to weeks.
Divergences between price and OI Z
The indicator includes automatic divergence detection on the Z score versus price, using pivot highs and lows:
You configure Pivot Lookback Left and Pivot Lookback Right to control swing sensitivity.
Pivots are detected on the OI Z series.
For each eligible pivot, the script compares OI Z and price at the last two pivots.
It looks for four patterns:
Regular Bullish – price makes a lower low, OI Z makes a higher low. This can indicate selling exhaustion in positioning even as price washes out. These are marked with a line and a label "ℝ" below the oscillator, in the bullish color.
Hidden Bullish – price makes a higher low, OI Z makes a lower low. This suggests continuation potential where price holds up while positioning resets. Marked with "ℍ" in the bullish color.
Regular Bearish – price makes a higher high, OI Z makes a lower high. This is a classic warning sign of trend exhaustion, where price pushes higher while OI Z fails to confirm. Marked with "ℝ" in the bearish color.
Hidden Bearish – price makes a lower high, OI Z makes a higher high. This is often seen in pullbacks within downtrends, where price retraces but positioning stretches again in the direction of the prevailing move. Marked with "ℍ" in the bearish color.
Each divergence type can be toggled globally via Show Detected Divergences . Internally, the script restricts how far back it will connect pivots, so you do not get stray signals linking very old structures to current bars.
Trading applications
Crowding and squeeze risk
Z scores are a natural way to talk about crowding:
High positive Z in aggregated OI means the market is running high leverage compared to its own norm. If price is also extended, the risk of a squeeze or sharp unwind rises.
Deep negative Z means leverage has been cleaned out. While it can be painful to sit through, this environment often sets up cleaner new trends, since there is less one sided positioning to unwind.
The extreme bands at ±3 to ±4 highlight the rare states where crowding is most intense. You can treat these events as regime markers rather than day to day noise.
Trend confirmation and fade selection
Combine Z score with price and trend:
Bull trends with positive and rising Z are supported by fresh leverage, usually more persistent.
Bull trends with flat or falling Z while price keeps grinding up can be more fragile. Divergences and extreme bands can help identify which edges you do not want to fade and which you might.
In downtrends, deep negative Z that stays pinned can mean persistent de risking. Once the Z score starts to mean revert back toward zero, it can mark the early stages of stabilization.
Event and liquidation context
Around major events, you often see:
Rapid spikes in Z as traders rush to position.
Reversal and overshoot as liquidations and forced de risking clear the book.
A move from positive extremes through zero into negative extremes as the market transitions from crowded to under exposed.
The Z score makes that path obvious, especially in oscillator mode, where you see a block of high positive bars before the crash, then a slab of deep negative bars after the flush.
Settings overview
Z Score group
Plotting Type – None, Line, Colored Line, Oscillator.
Z Score Lookback Period – window used for mean and standard deviation on aggregated OI.
Smoothing Type – SMA, HMA, EMA, WMA, DEMA, RMA, linear regression, ALMA, TEMA or T3.
Smoothing Period – length for the selected moving average on the raw Z score.
Moving Average group
Show EMA – toggle EMA overlay on Z score.
EMA Period – EMA length for the signal line.
EMA Color – color of the EMA line.
Thresholds and Reference Lines group
Select Reference Lines – None, Standard Deviation Levels, Extreme Bands.
Standard deviation lines at 0, ±1, ±2 appear in both modes.
Extreme bands add filled zones at ±3 to ±4 with adaptive opacity tied to |Z|.
Extra Plotting and UI
Base Line Color – default color for the simple line mode.
Line Width – thickness of the oscillator line.
Positive Color – positive or bullish condition color.
Negative Color – negative or bearish condition color.
Divergences group
Show Detected Divergences – master toggle for divergence plotting.
Pivot Lookback Left and Pivot Lookback Right – how many bars left and right to define a pivot, controlling divergence sensitivity.
Open Interest Source group
OI Units – COIN or USD.
Exchange toggles for Binance, Bybit, OKX, Bitget, Kraken, HTX, Deribit.
Internally, all enabled exchanges and contract suffixes are aggregated into one synthetic OI series.
Alerts included
The indicator defines alert conditions for several key events:
OI Z Score Positive – Z crosses above zero, aggregated OI moves from below mean to above mean.
OI Z Score Negative – Z crosses below zero, aggregated OI moves from above mean to below mean.
OI Z Score Enters +2σ – Z enters the +2 band and above, marking extended positive positioning.
OI Z Score Enters −2σ – Z enters the −2 band and below, marking extended negative positioning.
Tie these into your strategy to be notified when leverage moves from normal to extended states.
Notes
This indicator does not rely on price based oscillators. It is a statistical lens on cross venue open interest, which makes it a complementary tool rather than a replacement for your existing price or volume signals. Use it to:
Quantify how unusual current futures positioning is compared to recent history.
Identify crowded leverage phases that can fuel squeezes.
Spot structural divergences between price and positioning.
Frame risk and opportunity around events and regime shifts.
It is not a complete trading system. Combine it with your own entries, exits and risk rules to get the most out of what the Z score is telling you about positioning pressure under the hood of the market.
PEG RSI [Auto EPS Growth]The PEG RSI is a hybrid indicator that combines fundamental valuation with technical momentum. It applies the Relative Strength Index (RSI) directly to the Price/Earnings-to-Growth (PEG) Ratio.
Unlike traditional PEG indicators that require manual input for growth rates, this script automatically calculates the Compound Annual Growth Rate (CAGR) of Earnings Per Share (EPS) based on historical data.
Key Features
- Auto-Calculated Growth: Uses historical TTM Earnings Per Share (EPS) to calculate the CAGR over a user-defined period (Default: 4 years).
- Dynamic Valuation: Converts the static PEG ratio into an oscillator (RSI) to identify relative valuation extremes.
- Trend & Momentum: Visualizes the momentum of the PEG ratio relative to its own history.
Educational Case Study
This indicator is designed for educational purposes and research. Instead of relying on fixed overbought or oversold levels, users are encouraged to study the correlation between the PEG RSI and price action independently.
- Observe how the price reacts when the PEG RSI reaches upper or lower extremes.
- Different stocks may respect different RSI zones based on their growth stability.
- Use this tool to analyze how market valuation momentum shifts over time.
Settings:
- Years for CAGR Growth: Timeframe to calculate EPS growth (Default: 4 years).
- RSI Length: Lookback period for the RSI calculation (Default: 14).
Note: This indicator works best on stocks with a consistent history of earnings. It requires financial data to function (will not work on assets without EPS like Crypto or Forex).
Alson Chew PAM EXE and Mother BarIndicators for strategies taught by Alson Chew's Price Action Manipulation (PAM) course
Two functions.
First it identifies EXE bars (Pin, Mark, Icecream bars).
Second it identifies Mother bars and draws an extension line for 6 bars.
Applicable to all time frames and can customise how many signals to show.
To be used in conjunction with trading strategies like
- 20 SMA, 50 SMA, 200 SMA FS formation
- Force Bottom, Force Top FS formation
- UR1 and DR1 using EXE Bar
Dynamic 15-Ticker Multi-Symbol Table 2025 EditionTitle:
Dynamic 15-Ticker Multi-Symbol Table 2025 Edition
Description:
This script provides a multi-ticker table for TradingView charts. It is fully open-source and free to use. The table displays up to 15 tickers, including SPY as the baseline symbol. The script updates in real-time on any timeframe.
Features:
SPY baseline: The first row always shows SPY for reference.
Custom tickers: Add up to 14 additional tickers via the input settings. Rows without tickers remain hidden.
Price and direction: Each ticker row displays the current price and an indicator of direction based on recent price movement.
RSI (14) indicator: Shows the current relative strength index value with a simple directional marker.
Volume formatting: Displays volume values in thousands, millions, or billions automatically. Volume change is indicated with directional markers.
Stable layout: The table uses alternating row colors for readability and maintains consistent row count without collapsing or disappearing rows.
Real-time updates: All displayed values refresh automatically on any chart timeframe.
How to use:
Add the script to your chart.
Enter your chosen tickers in the input settings. SPY will remain as the first ticker automatically.
Tickers not entered will remain hidden. When a ticker is removed, the row will be removed-dynamically.
Observe live prices, RSI values, and volume changes directly on your chart without switching symbols.
Additional notes:
The script is fully open-source; users are encouraged to modify or improve it.
No external links or references are required to understand its function.
This script does not repaint and does not require additional requests to update values.
Open Interest RSI [BackQuant]Open Interest RSI
A multi-venue open interest oscillator that aggregates OI across major derivatives exchanges, converts it to coin or USD terms, and runs an RSI-style engine on that aggregated OI so you can track positioning pressure, crowding, and mean reversion in leverage flows, not just in price.
What this is
This tool is an RSI built on top of aggregated open interest instead of price. It pulls futures OI from several major exchanges, converts it into a unified unit (COIN or USD), sums it into a single synthetic OI candle, then applies RSI and smoothing to that combined series.
You can then render that Open Interest RSI in different visual modes:
Clean line or colored line for classic oscillator-style reads.
Column-style oscillator for impulse and compression views.
Flag mode that fills between OI RSI and its EMA for trend/mean reversion blends. See:
Heatmap mode that paints the panel based on OI RSI extremes, ideal for scanning. See:
On top of that it includes:
Aggregated OI source selection (Binance, Bybit, OKX, Bitget, Kraken, HTX, Deribit).
Choice of OI units (COIN or USD).
Reference lines and OB/OS zones.
Extreme highlighting for either trend or mean reversion.
A vertical OI RSI meter that acts as a quick strength gauge.
Aggregated open interest source
Under the hood, the indicator builds a synthetic open interest candle by:
Looping over a list of supported exchanges: Binance, Bybit, OKX, Bitget, Kraken, HTX, Deribit.
Looping over multiple contract suffixes (such as USDT.P, USD.P, USDC.P, USD.PM) to capture different contract types on each venue.
Requesting OI candles from each venue + contract combination for the same underlying symbol.
Converting each OI stream into a common unit: In COIN mode, everything is normalized into coin-denominated OI. In USD mode, coin OI is multiplied by price to approximate notional OI.
Summing up open, high, low and close of OI across venues into a single aggregated OI candle.
If no valid OI is available for the current symbol across all sources, the script throws a clear runtime error so you know you are on an unsupported market.
This gives you a single, exchange-agnostic open interest curve instead of being tied to one venue. That aggregated OI is then passed into the RSI logic.
How the OI RSI is calculated
The RSI side is straightforward, but it is applied to the aggregated OI close:
Compute a base RSI of aggregated OI using the Calculation Period .
Apply a simple moving average of length Smoothing Period (SMA) to reduce noise in the raw OI RSI.
Optionally apply an EMA on top of the smoothed OI RSI as a moving average signal line.
Key parameters:
Calculation Period – base RSI length for OI.
Smoothing Period (SMA) – extra smoothing on the RSI value.
EMA Period – EMA length on the smoothed OI RSI.
The result is:
oi_rsi – raw RSI of aggregated OI.
oi_rsi_s – SMA-smoothed OI RSI.
ma – EMA of the smoothed OI RSI.
Thresholds and extremes
You control three core thresholds:
Mid Point – central reference level, typically 50.
Extreme Upper Threshold – high-level OI RSI edge (for example 80).
Extreme Lower Threshold – low-level OI RSI edge (for example 20).
These thresholds are used for:
Reference lines or OB/OS zone fills.
Heatmap gradient bounds.
Background highlighting of extremes.
The Extreme Highlighting mode controls how extremes are interpreted:
None – do nothing special in extreme regions.
Mean-Rev – background turns red on high OI RSI and green on low OI RSI, framing extremes as contrarian zones.
Trend – background turns green on high OI RSI and red on low OI RSI, framing extremes as participation zones aligned with the prevailing move.
Reference lines and OB/OS zones
You can choose:
None – clean plotting without guides.
Basic Reference Lines – mid, upper and lower thresholds as simple gray horizontals.
OB/OS Levels – filled zones between:
Upper OB: from the upper threshold to 100, colored with the short/overbought color.
Lower OS: from 0 to the lower threshold, colored with the long/oversold color.
These guides help visually anchor the OI RSI within "normal" versus "extreme" regions.
Plotting modes
The Plotting Type input controls how OI RSI is drawn. All modes share the same underlying OI and RSI logic, but emphasise different aspects of the signal.
1) Line mode
This is the classic oscillator representation:
Plots the smoothed OI RSI as a simple line using RSI Line Color and RSI Line Width .
Optionally plots the EMA overlay on the same panel.
Works well when you want standard RSI-style signals on leverage flows: crosses of the midline, divergences versus price, and so on.
2) Colored Line mode
In this mode:
The OI RSI is plotted as a line, but its color is dynamic.
If the smoothed OI RSI is above the mid point, it uses the Long/OB Color .
If it is below the mid point, it uses the Short/OS Color .
This creates an instant visual regime switch between "bullish positioning pressure" and "bearish positioning pressure", while retaining the feel of a traditional RSI line.
3) Oscillator mode
Oscillator mode renders OI RSI as vertical columns around the mid level:
The smoothed OI RSI is plotted as columns using plot.style_columns .
The histogram base is fixed at 50, so bars extend above and below the mid line.
Bar color is dynamic, using long or short colors depending on which side of the mid point the value sits.
This representation makes impulse and compression in OI flows more obvious. It is especially useful when you want to focus on how quickly OI RSI is expanding or contracting around its neutral level. See:
4) Flag mode
Flag mode turns OI RSI and its EMA into a two-line band with a filled area between them:
The smoothed OI RSI and its EMA are both plotted.
A fill is drawn between them.
The fill color flips between the long color and the short color depending on whether OI RSI is above or below its EMA.
Black outlines are added to both lines to make the band clear against any background.
This creates a "flag" style region where:
Green fills show OI RSI leading its EMA, suggesting positive positioning momentum.
Red fills show OI RSI trailing below its EMA, suggesting negative positioning momentum.
Crossovers of the two lines can be read as shifts in OI momentum regime.
Flag mode is useful if you want a more structural view that combines both the level and slope behaviour of OI RSI. See:
5) Heatmap mode
Heatmap mode recasts OI RSI as a single-row gradient instead of a line:
A single row at level 1 is plotted using column style.
The color is pulled from a gradient between the lower and upper thresholds: Near the lower threshold it approaches the short/oversold color and near the upper threshold it approaches the long/overbought color.
The EMA overlay and reference lines are disabled in this mode to keep the panel clean.
This is a very compact way to track OI RSI state at a glance, especially when stacking it alongside other indicators. See:
OI RSI vertical meter
Beyond the main plot, the script can draw a small "thermometer" table showing the current OI RSI position from 0 to 100:
The meter is a two-column table with a configurable number of rows.
Row colors form an inverted gradient: red at the top (100) and green at the bottom (0).
The script clamps OI RSI between 0 and 100 and maps it to a row index.
An arrow marker "▶" is drawn next to the row corresponding to the current OI RSI value.
0 and 100 labels are printed at the ends of the scale for orientation.
You control:
Show OI RSI Meter – turn the meter on or off.
OI RSI Blocks – number of vertical blocks (granularity).
OI RSI Meter Position – panel anchor (top/bottom, left/center/right).
The meter is particularly helpful if you keep the main plot in a small panel but still want an intuitive strength gauge.
How to read it as a market pressure gauge
Because this is an RSI built on aggregated open interest, its extremes and regimes speak to positioning pressure rather than price alone:
High OI RSI (near or above the upper threshold) indicates that open interest has been increasing aggressively relative to its recent history. This often coincides with crowded leverage and a buildup of directional pressure.
Low OI RSI (near or below the lower threshold) indicates aggressive de-leveraging or closing of positions, often associated with flushes, forced unwinds or post-liquidation clean-ups.
Values around the mid point indicate more balanced positioning flows.
You can combine this with price action:
Price up with rising OI RSI suggests fresh leverage joining the move, a more persistent trend.
Price up with falling OI RSI suggests shorts covering or longs taking profit, more fragile upside.
Price down with rising OI RSI suggests aggressive new shorts or levered selling.
Price down with falling OI RSI suggests de-leveraging and potential exhaustion of the move.
Trading applications
Trend confirmation on leverage flows
Use OI RSI to confirm or question a price trend:
In an uptrend, rising OI RSI with values above the mid point indicates supportive leverage flows.
In an uptrend, repeated failures to lift OI RSI above mid point or persistent weakness suggest less committed participation.
In a downtrend, strong OI RSI on the downside points to aggressive shorting.
Mean reversion in positioning
Use thresholds and the Mean-Rev highlight mode:
When OI RSI spends extended time above the upper threshold, the crowd is extended on one side. That can set up squeeze risk in the opposite direction.
When OI RSI has been pinned low, it suggests heavy de-leveraging. Once price stabilises, a re-risking phase is often not far away.
Background colours in Mean-Rev mode help visually identify these periods.
Regime mapping with plotting modes
Different plotting modes give different perspectives:
Heatmap mode for dashboard-style use where you just need to know "hot", "neutral" or "cold" on OI flows at a glance.
Oscillator mode for short term impulses and compression reads around the mid line. See:
Flag mode for blending level and trend of OI RSI into a single banded visual. See:
Settings overview
RSI group
Plotting Type – None, Line, Colored Line, Oscillator, Flag, Heatmap.
Calculation Period – base RSI length for OI.
Smoothing Period (SMA) – smoothing on RSI.
Moving Average group
Show EMA – toggle EMA overlay (not used in heatmap).
EMA Period – length of EMA on OI RSI.
EMA Color – colour of EMA line.
Thresholds group
Mid Point – central reference.
Extreme Upper Threshold and Extreme Lower Threshold – OB/OS thresholds.
Select Reference Lines – none, basic lines or OB/OS zone fills.
Extreme Highlighting – None, Mean-Rev, Trend.
Extra Plotting and UI
RSI Line Color and RSI Line Width .
Long/OB Color and Short/OS Color .
Show OI RSI Meter , OI RSI Blocks , OI RSI Meter Position .
Open Interest Source
OI Units – COIN or USD.
Exchange toggles: Binance, Bybit, OKX, Bitget, Kraken, HTX, Deribit.
Notes
This is a positioning and pressure tool, not a complete system. It:
Models aggregated futures open interest across multiple centralized exchanges.
Transforms that OI into an RSI-style oscillator for better comparability across regimes.
Offers several visual modes to match different workflows, from detailed analysis to compact dashboards.
Use it to understand how leverage and positioning are evolving behind the price, to gauge when the crowd is stretched, and to decide whether to lean with or against that pressure. Attach it to your existing signals, not in place of them.
Also, please check out @NoveltyTrade for the OI Aggregation logic & pulling the data source!
Here is the original script:
Session, Weekly, Daily LevelsScroll down for hungarian description!
Magyar leíráshoz görgess lejjebb!
Overview
This script provides a unified market structure mapping tool that automatically identifies and visualizes key intraday, daily, and weekly reference levels. It helps traders contextualize price action throughout the trading week by marking true session opens, previous day highs/lows, weekly highs/lows, and weekday opens, all with accurate historical anchoring and correct timezone handling.
What This Script Does
1. Intraday Session Opens (Tokyo, London, New York)
- Detects the exact candle where each session opens.
- Draws horizontal rays with labels.
- Automatically clears lines at the start of each new day.
- Uses a custom local-to-exchange timezone conversion system.
2. Weekly Levels
- Last week high and low (precise bar anchoring, not HTF aggregation)
- Current week open (also Monday open)
- Auto-reset on new week
- Levels are always drawn from the true candle where they formed.
3. Previous Day High & Low
- Continuously tracks intraday highs and lows.
- On a new day, stores yesterday’s values and anchors rays to the exact bars.
- Levels remain visible for the full current day and reset the next day.
4. Weekday Opens (Tue–Fri)
- Captures the exact opening price of Tuesday–Friday.
- Monday open = Week open, so it is not shown separately.
- Auto-reset on new week.
Timezone Logic (Original Feature)
The script converts:
local session times → exchange timezone → chart timestamps
It works correctly regardless of chart timezone or instrument exchange location.
Line Drawing Logic
- Finds the exact bar_index where each level forms.
- Draws rays extending to the right.
- Labels are placed ahead of price.
- Safe updating prevents “bar index too far” errors.
How to Use
- Identify daily/weekly structure.
- Track bias relative to session opens.
- Observe reactions around weekday opens.
- Compare price action to last week's range.
Originality
- Custom timezone conversion engine.
- True historical bar anchoring.
- Fully automated weekly/daily structural resets.
- Independent styling for each level type.
- Not a mashup; all components follow one unified logic.
Limitations
- Does not predict trend or direction.
- Structural tool only.
Summary
A precise and reliable market structure tool that unifies weekly, daily, and intraday reference levels with full timezone automation and true-candle anchoring.
MAGYAR LEÍRÁS
--------------
Áttekintés
Ez az indikátor egy összetett piaci szerkezet-feltérképező eszköz, amely automatikusan megjeleníti a legfontosabb intraday, napi és heti referenciaértékeket. A célja, hogy a kereskedő tisztán lássa a piac aktuális környezetét: hol nyíltak a főbb devizapiaci szekciók, hogyan alakult a tegnapi tartomány, hol volt a múlt heti csúcs/mélypont, és hogyan nyitottak az egyes hétköznapok.
Mit tud a script?
1. Szekciónyitások (Tokyo, London, New York)
- Megkeresi a pontos gyertyát, amely a szekciónyitáskori árat tartalmazza.
- Vízszintes vonalat és címkét rajzol.
- Minden nap elején automatikusan törli a korábbi nap szintjeit.
- Egyedi időzóna-konverziós rendszerrel működik (helyi idő → tőzsdei idő → chart idő).
2. Heti szintek
- Múlt heti maximum és minimum (pontos gyertyapontra horgonyozva)
- Aktuális heti nyitóár (egyben a hétfői nyitó is)
- Új hét kezdetekor automatikusan frissül.
- A múlt heti high/low nem fix időpontra, hanem a valódi gyertyára kerül.
3. Előző napi High és Low
- Folyamatosan követi a napi maximumot és minimumot.
- Napváltáskor elmenti és pontos gyertyáról indítja a ray-t.
- A szintek a teljes nap folyamán megmaradnak, majd a következő nap törlődnek.
4. Hétköznapok nyitóárai (Kedd–Péntek)
- A kedd, szerda, csütörtök és péntek nyitóárát rögzíti és megjeleníti.
- A hétfői nyitó a Week Open, ezért külön nem jelenik meg.
- Heti váltáskor automatikusan törlődnek.
Időzóna-kezelés (egyedi megoldás)
A script a felhasználó helyi idejét átszámítja az instrumentum tőzsdei időzónájára, majd a chartra vetíti.
Ez biztosítja, hogy minden szekciónyitás helyesen jelenik meg, bármely chart vagy instrumentum esetén.
Vonalrajzolási logika
- A szintek a valódi bar_index alapján kerülnek rögzítésre.
- Jobbra nyúló ray-eket rajzol.
- A címkék mindig a jobb oldalon, előre helyezve jelennek meg.
- Biztonságos frissítési rendszer akadályozza meg a hibákat (pl. “bar index too far”).
Használat
- Napi/heti szerkezet meghatározása.
- Bias követése a session openekhez viszonyítva.
- Reakciók figyelése a hétköznapok nyitóárai körül.
- Összevetés a múlt heti tartománnyal.
Eredetiség
- Egyedi időzóna-kezelő motor.
- Igazi gyertyapont-alapú horgonyzás.
- Automatikus napi/heti reset.
- Minden szint külön stílusban konfigurálható.
- Nem mashup; egységes rendszer.
Összegzés
Professzionális, pontos eszköz a piaci szerkezet feltérképezésére, amely egyesíti a heti, napi és intraday szinteket, teljes időzóna-automatizálással és gyertyapontra horgonyzott kijelölésekkel.
(QUANTLABS) Fractal God Mode: 25-Timeframe Scanner The indicator aggregates data into three distinct metric columns:
1. STRUCT (Market Structure) This analyzes price action relative to Fractal Pivots (Highs and Lows) to determine market direction.
HH (Breakout): Price has closed above the previous Pivot High. (Bullish Structure)
LL (Breakdown): Price has closed below the previous Pivot Low. (Bearish Structure)
TRAPPED: Price is trading between the last Pivot High and Low. This indicates a ranging market where trend trades should be avoided.
2. VELOCITY (Thrust) This measures the specific strength of the current candle on that timeframe.
The Math: It calculates the ratio of the body (Close - Open) relative to the total candle range (High - Low).
The Signal: High positive numbers (Green) indicate buyers are closing near highs. High negative numbers (Red) indicate sellers are dominating the range.
3. QUALITY (Efficiency Ratio) This acts as a "Noise Filter." It determines if the trend is moving in a straight line or whipping back and forth.
The Math: It divides the Net Price Movement (Distance from 5 bars ago) by the Total Path Traveled (Sum of the ranges of the last 5 bars).
PRISTINE (Values > 0.6): The market is moving efficiently in one direction.
CHOPPY (Values < 0.4): The market is volatile and non-directional (High Noise).
1. The Matrix (Dashboard) Located in the bottom right, this table gives you an instant read on Short-Term (3m-9m), Medium-Term (10m-45m), and Long-Term (1H-Daily) trends.
2. Coherence Flow At the bottom of the table, the script sums up the structural score of all 25 timeframes.
COHERENT BULL: When the Short, Medium, and Long terms align green.
COHERENT BEAR: When the Short, Medium, and Long terms align red.
3. God Mode (Global S/R) The indicator can plot Support and Resistance levels from higher timeframes onto your current chart. For example, while trading the 5m chart, you can see the 4H and Daily pivot levels plotted automatically as dotted lines, ensuring you never trade blindly into a higher-timeframe wall.
Trend Following: Wait for the "Coherent Bull/Bear" signal at the bottom of the dashboard. This confirms that momentum is aligned from the 3m chart up to the Daily.
Scalping: Focus on the Quality column. Only take trades when the Quality is "CLEAN" or "PRISTINE." Avoid entries when the dashboard warns of "High Noise" (Choppy).
Risk Management: If the dashboard shows "TRAPPED" on the Long Term (1H+), reduce position size or wait for a breakout.
Pivot Lookback: Adjusts the sensitivity of the Fractal Structure (Default: 5).
Show Fractal DNA Matrix: Toggles the dashboard table.
Show ALL Timeframe S/R: Enables "God Mode" to see supports/resistances from all 25 timeframes (Heavy visual processing, use carefully).
PoC Migration Map [BackQuant]PoC Migration Map
A volume structure tool that builds a side volume profile, extracts rolling Points of Control (PoCs), and maps how those PoCs migrate through time so you can see where value is moving, how volume clusters shift, and how that aligns with trend regime.
What this is
This indicator combines a classic volume profile with a segmented PoC trail. It looks back over a configurable window, splits that window into bins by price, and shows you where volume has concentrated. On top of that, it slices the lookback into fixed bar segments, finds the local PoC in each segment, and plots those PoCs as a chain of nodes across the chart.
The result is a "migration map" of value:
A side volume profile that shows how volume is distributed over the recent price range.
A sequence of PoC nodes that show where local value has been accepted over time.
Lines that connect those PoCs to reveal the path of value migration.
Optional trend coloring based on EMA 12 and EMA 21, so each PoC also encodes trend regime.
Used together, this gives you a structural read on where the market has actually traded size, how "value" is moving, and whether that movement is aligned or fighting the current trend.
Core components
Lookback volume profile - a side histogram built from all closes and volumes in the chosen lookback window.
Segmented PoC trail - rolling PoCs computed over fixed bar segments, plotted as nodes in time.
Trend heatmap - optional color mapping of PoC nodes using EMA 12 versus EMA 21.
PoC labels - optional labels on every Nth PoC for easier reading and referencing.
How it works
1) Global lookback and binning
You choose:
Lookback Bars - how far back to collect data.
Number of Bins - how finely to split the price range.
The script:
Finds the highest high and lowest low in the lookback.
Computes the total price range and divides it into equal binCount slices.
Assigns each bar's close and volume into the appropriate price bin.
This creates a discretized volume distribution across the entire lookback.
2) Side volume profile
If "Show Side Profile" is enabled, a right-hand volume profile is drawn:
Each bin becomes a horizontal bar anchored at a configurable "Right Offset" from the current bar.
The horizontal width of each bar is proportional to that bin's volume relative to the maximum volume bin.
Optionally, volume values and percentages are printed inside the profile bars.
Color and transparency are controlled by:
Base Profile Color and its transparency.
A gradient that uses relative volume to modulate opacity between lower volume and higher volume bins.
Profile Width (%) - how wide the maximum bin can extend in bars.
This gives you an at-a-glance view of the volume landscape for the chosen lookback window.
3) Segmenting for PoC migration
To build the PoC trail, the lookback is divided into segments:
Bars per Segment - bars in each local cluster.
Number of Segments - how many segments you want to see back in time.
For each segment:
The script uses the same price bins and accumulates volume only from bars in that segment.
It finds the bin with the highest volume in that segment, which is the local PoC for that segment.
It sets the PoC price to the center of that bin.
It finds the "mid bar" of the segment and places the PoC node at that time on the chart.
This is repeated for each segment from older to newer, so you get a chain of PoCs that shows how local value has migrated over time.
4) Trend regime and color coding
The indicator precomputes:
EMA 12 (Fast).
EMA 21 (Slow).
For each PoC:
It samples EMA 12 and EMA 21 at the mid bar of that segment.
It computes a simple trend score as fast EMA minus slow EMA.
If trend heatmap is enabled, PoC nodes (and the lines between them) are colored by:
Trend Up Color if EMA 12 is above EMA 21.
Trend Down Color if EMA 12 is below EMA 21.
Trend Flat Color if they are roughly equal.
If the trend heatmap is disabled, PoC color is instead based on PoC migration:
If the current PoC is above the previous PoC, use the Up PoC Color.
If the current PoC is below the previous PoC, use the Down PoC Color.
If unchanged, use the Flat PoC Color.
5) Connecting PoCs and labels
Once PoC prices and times are known:
Each PoC is connected to the previous one with a dotted line, using the PoC's color.
Optional labels are placed next to every Nth PoC:
Label text uses a simple "PoC N" scheme.
Label background uses a configurable label background color.
Label border is colored by the PoC's own color for visual consistency.
This turns the PoCs into a visual path that can be read like a "value trajectory" across the chart.
What it plots
When fully enabled, you will see:
A right-sided volume profile for the chosen lookback window, built from volume by price.
Colored horizontal bars representing each price bin's relative volume.
Optional volume text showing each bin's volume and its percentage of the profile maximum.
A series of PoC nodes spaced across the chart at the mid point of each segment.
Dotted lines connecting those PoCs to show the migration path of value.
Optional PoC labels at each Nth node for easier reference.
Color-coding of PoCs and lines either by EMA 12 / 21 trend regime or by up/down PoC drift.
Reading PoC migration and market pressure
Side profile as a pressure map
The side profile shows where trading has been most active:
Thick, opaque bars represent high volume zones and possible high interest or acceptance areas.
Thin, faint bars represent low volume zones, potential rejection or transition areas.
When price trades near a high volume bin, the market is sitting on an area of prior acceptance and size.
When price moves quickly through low volume bins, it often does so with less friction.
This gives you a static map of where the market has been willing to do business within your lookback.
PoC trail as a value migration map
The PoC chain represents "where value has lived" over time:
An upward sloping PoC trail indicates value migrating higher. Buyers have been willing to transact at increasingly higher prices.
A downward sloping trail indicates value migrating lower and sellers pushing the center of mass down.
A flat or oscillating trail indicates balance or rotational behaviour, with no clear directional acceptance.
Taken together, you can interpret:
Side profile as "where the volume mass sits", a static pressure field.
PoC trail as "how that mass has moved", the dynamic path of value.
Trend heatmap as a regime overlay
When PoCs are colored by the EMA 12 / 21 spread:
Green PoCs mark segments where the faster EMA is above the slower EMA, that is, a local uptrend regime.
Red PoCs mark segments where the faster EMA is below the slower EMA, that is, a local downtrend regime.
Gray PoCs mark flat or ambiguous trend segments.
This lets you answer questions like:
"Is value migrating higher while the trend regime is also up?" (trend confirming value).
"Is value migrating higher but most PoCs are red?" (value against the prevailing trend).
"Has value started to roll over just as PoCs flip from green to red?" (early regime transition).
Key settings
General Settings
Lookback Bars - how many bars back to use for both the global volume profile and segment profiles.
Number of Bins - how many price bins to split the high to low range into.
Profile Settings
Show Side Profile - toggle the right-hand volume profile on or off.
Profile Width (%) - how wide the largest volume bar is allowed to be in terms of bars.
Base Profile Color - the starting color for profile bars, with transparency.
Show Volume Values - if enabled, print volume and percent for each non-zero bin.
Profile Text Color - color for volume text inside the profile.
PoC Migration Settings
Show PoC Migration - toggle the PoC trail plotting.
Bars per Segment - the number of bars contained in each segment.
Number of Segments - how many segments to build backwards from the current bar.
Horizontal Spacing (bars) - spacing between PoC nodes when drawn. (Used to separate PoCs horizontally.)
Label Every Nth PoC - draw labels at every Nth PoC (0 or 1 to suppress labels).
Right Offset (bars) - horizontal offset to anchor the side profile on the right.
Up PoC Color - color used when a PoC is higher than the previous one, if trend heatmap is off.
Down PoC Color - color used when a PoC is lower than the previous one, if trend heatmap is off.
Flat PoC Color - color used when the PoC is unchanged, if trend heatmap is off.
PoC Label Background - background color for PoC labels.
Trend Heatmap Settings
Color PoCs By Trend (EMA 12 / 21) - when enabled, overrides simple up/down coloring and uses EMA-based trend colors.
Fast EMA - length for the fast EMA.
Slow EMA - length for the slow EMA.
Trend Up Color - color for PoCs in a bullish EMA regime.
Trend Down Color - color for PoCs in a bearish EMA regime.
Trend Flat Color - color for neutral or flat EMA regimes.
Trading applications
1) Value migration and trend confirmation
Use the PoC path to see if value is following price or lagging it:
In a healthy uptrend, price, PoCs, and trend regime should all lean higher.
In a weakening trend, price may still move up, but PoCs flatten or start drifting lower, suggesting fewer participants are accepting the new highs.
In a downtrend, persistent downward PoC migration confirms that sellers are winning the value battle.
2) Identifying acceptance and rejection zones
Combine the side profile with PoC locations:
High volume bins near clustered PoCs mark strong acceptance zones, good areas to watch for re-tests and decision points.
PoCs that quickly jump across low volume areas can indicate rejection and fast repricing between value zones.
High volume zones with mixed PoC colors may signal balance or prolonged negotiation.
3) Structuring entries and exits
Use the map to refine trade location:
Fade trades against value migration are higher risk unless you see clear signs of exhaustion or regime change.
Pullbacks into prior PoC zones in the direction of the current PoC slope can offer higher quality entries.
Stops placed beyond major accepted zones (clusters of PoCs and high volume bins) are less likely to be hit by random noise.
4) Regime transitions
Watch how PoCs behave as the EMA regime changes:
A flip in EMA 12 versus EMA 21, coupled with a turn in PoC slope, is a strong signal that value is beginning to move with the new trend.
If EMAs flip but PoC migration does not follow, the trend signal may be early or false.
A weakening PoC path (lower highs in PoCs) while trend colors are still green can warn of a late-stage trend.
Best practices
Start with a moderate lookback such as 200 to 300 bars and a moderate bin count such as 20 to 40. Too many bins can make the profile overly granular and sparse.
Align "Bars per Segment" with your trading horizon. For example, 5 to 10 bars for intraday, 10 to 20 bars for swing.
Use the profile and PoC trail as structural context rather than as a direct buy or sell signal. Combine with your existing setups for timing.
Pay attention to clusters of PoCs at similar prices. Those are areas where the market has repeatedly accepted value, and they often matter on future tests.
Notes
This is a structural volume tool, not a complete trading system. It does not manage execution, position sizing or risk management. Use it to understand:
Where the bulk of trading has occurred in your chosen window.
How the center of volume has migrated over time.
Whether that migration is aligned with or fighting the current trend regime.
By turning PoC evolution into a visible path and adding a trend-aware heatmap, the PoC Migration Map makes it easier to see how value has been moving, where the market is likely to feel "heavy" or "light", and how that structure fits into your trading decisions.
SPY → ES 11 Levels (Hybrid RTH/Globex) [Tick Fixed]📌 Description for SPY → ES 11-Level Converter (with Labels)
This script converts important SPY options-based levels into their equivalent ES futures prices and plots them directly on the ES chart.
Because SPY trades at a different price scale than ES, each SPY level is multiplied by a customizable ES/SPY ratio to project accurate ES levels.
It is designed for traders who use SpotGamma, GEXBot, MenthorQ, Vol-trigger levels, or their own gamma/oi/volume models.
🔍 Features
✅ Converts SPY → ES using custom or automatic ratio
Option to manually enter a ratio (recommended for accuracy)
Or automatically compute ES/SPY from live prices
✅ Plots 11 major levels on the ES chart
Each level can be individually turned ON/OFF:
Call Wall
Put Wall
Volume Trigger
Spot Price
+Gamma Level
–Gamma Level
Zero Gamma
Positive OI
Negative OI
Positive Volume
Negative Volume
All levels are drawn as clean horizontal lines using the converted ES value.
Relative Strength Heatmap [BackQuant]Relative Strength Heatmap
A multi-horizon RSI matrix that compresses 20 different lookbacks into a single panel, turning raw momentum into a visual “pressure gauge” for overbought and oversold clustering, trend exhaustion, and breadth of participation across time horizons.
What this is
This indicator builds a strip-style heatmap of 20 RSIs, each with a different length, and stacks them vertically as colored tiles in a single pane. Every tile is colored by its RSI value using your chosen palette, so you can see at a glance:
How many “fast” versus “slow” RSIs are overbought or oversold.
Whether momentum is concentrated in the short lookbacks or spread across the whole curve.
When momentum extremes cluster, signalling strong market pressure or exhaustion.
On top of the tiles, the script plots two simple breadth lines:
A white line that counts how many RSIs are above 70 (overbought cluster).
A black line that counts how many RSIs are below 30 (oversold cluster).
This turns a single symbol’s RSI ladder into a compact “market pressure gauge” that shows not only whether RSI is overbought or oversold, but how many different horizons agree at the same time.
Core idea
A single RSI looks at one length and one timescale. Markets, however, are driven by flows that operate on multiple horizons at once. By computing RSI over a ladder of lengths, you approximate a “term structure” of strength:
Short lengths react to immediate swings and very recent impulses.
Medium lengths reflect swing behaviour and local trends.
Long lengths reflect structural bias and higher timeframe regime.
When many lengths agree, for example 10 or more RSIs all above 70, it suggests broad participation and strong directional pressure. When only a few fast lengths stretch to extremes while longer ones stay neutral, the move is more fragile and more likely to mean-revert.
This script makes that structure visible as a heatmap instead of forcing you to run many separate RSI panes.
How it works
1) Generating RSI lengths
You control three parameters in the calculation settings:
RS Period – the base RSI length used for the shortest strip.
RSI Step – the amount added to each successive RSI length.
RSI Multiplier – a global scaling factor applied after the step.
Each of the 20 RSIs uses:
RSI length = round((base_length + step × index) × multiplier) , where the index goes from 0 to 19.
That means:
RSI 1 uses (len + step × 0) × mult.
RSI 2 uses (len + step × 1) × mult.
…
RSI 20 uses (len + step × 19) × mult.
You can keep the ladder dense (small step and multiplier) or stretch it across much longer horizons.
2) Heatmap layout and grouping
Each RSI is plotted as an “area” strip at a fixed vertical level using histbase to stack them:
RSI 1–5 form Group 1.
RSI 6–10 form Group 2.
RSI 11–15 form Group 3.
RSI 16–20 form Group 4.
Each group has a toggle:
Show only Group 1 and 2 if you care mainly about fast and medium horizons.
Show all groups for a full spectrum from very short to very long.
Hide any group that feels redundant for your workflow.
The actual numeric RSI values are not plotted as lines. Instead, each strip is drawn as a horizontal band whose fill color represents the current RSI regime.
3) Palette-based coloring
Each tile’s color is driven by the RSI value and your chosen palette. The script includes several palettes:
Viridis – smooth green to yellow, good for subtle reading.
Jet – strong blue to red sequence with high contrast.
Plasma – purple through orange to yellow.
Custom Heat – cool blues to neutral grey to hot reds.
Gray – grayscale from white to black for minimalistic layouts.
Cividis, Inferno, Magma, Turbo, Rainbow – additional scientific and rainbow-style maps.
Internally, RSI values are bucketed into ranges (for example, below 10, 10–20, …, 90–100). Each bucket maps to a unique colour for that palette. In all schemes, low RSI values are mapped to the “cold” or darker side and high RSI values to the “hot” or brighter side.
The result is a true momentum heatmap:
Cold or dark tiles show low RSI and oversold or compressed conditions.
Mid tones show neutral or mid-range RSI.
Warm or bright tiles show high RSI and overbought or stretched conditions.
4) Bull and bear breadth counts
All 20 RSI values are collected into an array each bar. Two counters are then calculated:
Bull count – how many RSIs are above 70.
Bear count – how many RSIs are below 30.
These are plotted as:
A white line (“RSI > 70 Count”) for the overbought cluster.
A black line (“RSI < 30 Count”) for the oversold cluster.
If you enable the “Show Bull and Bear Count” option, you get an immediate reading of how many of the 20 horizons are stretched at any moment.
5) Cluster alerts and background tagging
Two alert conditions monitor “strong cluster” regimes:
RSI Heatmap Strong Bull – triggers when at least 10 RSIs are above 70.
RSI Heatmap Strong Bear – triggers when at least 10 RSIs are below 30.
When one of these conditions is true, the indicator can tint the background of the chart using a soft version of the current palette. This visually marks stretches where momentum is extreme across many lengths at once, not just on a single RSI.
What it plots
In one oscillator window, the indicator provides:
Up to 20 horizontal RSI strips, each representing a different RSI length.
Color-coded tiles reflecting the current RSI value for each length.
Group toggles to show or hide each block of five RSIs.
An optional white line that counts how many RSIs are above 70.
An optional black line that counts how many RSIs are below 30.
Optional background highlights when the number of overbought or oversold RSIs passes the strong-cluster threshold.
How it measures breadth and pressure
Single-symbol breadth
Breadth is usually defined across a basket of symbols, such as how many stocks advance versus decline. This indicator uses the same concept across time horizons for a single symbol. The question becomes:
“How many different RSI lengths are stretched in the same direction at once?”
Examples:
If only 2 or 3 of the shortest RSIs are above 70, bull count stays low. The move is fast and local, but not yet broadly supported.
If 12 or more RSIs across short, medium and long lengths are above 70, the bull count spikes. The move has broad momentum and strong upside pressure.
If 10 or more RSIs are below 30, bear count spikes and you are in a broad oversold regime.
This is breadth of momentum within one market.
Market pressure gauge
The combination of heatmap tiles and breadth lines acts as a pressure gauge:
High bull count with warm colors across most strips indicates strong upside pressure and crowded long positioning.
High bear count with cold colors across most strips indicates strong downside pressure and capitulation or forced selling.
Low counts with a mixed heatmap indicate neutral pressure, fragmented flows, or range-bound conditions.
You can treat the strong-cluster alerts as “extreme pressure” signals. When they fire, the market is heavily skewed in one direction across many horizons.
How to read the heatmap
Horizontal patterns (through time)
Look along the time axis and watch how the colors evolve:
Persistent hot tiles across many strips show sustained bullish pressure and trend strength.
Persistent cold tiles across many strips show sustained bearish pressure and weak demand.
Frequent flipping between hot and cold colours indicates a choppy or mean-reverting environment.
Vertical structure (across lengths at one bar)
Focus on a single bar and read the column of tiles from top to bottom:
Short RSIs hot, long RSIs neutral or cool: early trend or short-term fomo. Price has moved fast, longer horizons have not caught up.
Short and long RSIs all hot: mature, entrenched uptrend. Broad participation, high pressure, greater risk of blow-off or late-entry vulnerability.
Short RSIs cold but long RSIs mid to high: pullback in a higher timeframe uptrend. Dip-buy and continuation setups are often found here.
Short RSIs high but long RSIs low: countertrend rallies within a broader downtrend. Good hunting ground for fades and short entries after a bounce.
Bull and bear breadth lines
Use the two lines as simple, numeric breadth indicators:
A rising white line shows more RSIs pushing above 70, so bullish pressure is expanding in breadth.
A rising black line shows more RSIs pushing below 30, so bearish pressure is expanding in breadth.
When both lines are low and flat, few horizons are extreme and the market is in mid-range territory.
Cluster zones
When either count crosses the strong threshold (for example 10 out of 20 RSIs in extreme territory):
A strong bull cluster marks a broadly overbought regime. Trend followers may see this as confirmation. Mean-reversion traders may see it as a late-stage or blow-off context.
A strong bear cluster marks a broadly oversold regime. Downtrend traders see strong pressure, but the risk of sharp short-covering bounces also increases.
Trading applications
Trend confirmation
Use the heatmap and breadth lines as a trend filter:
Prefer long setups when the heatmap shows mostly mid to high RSIs and the bull count is rising.
Avoid fresh shorts when there is a strong bull cluster, unless you are specifically trading exhaustion.
Prefer short setups when the heatmap is mostly low RSIs and the bear count is rising.
Avoid aggressive longs when a strong bear cluster is active, unless you are trading reflexive bounces.
Mean-reversion timing
Treat cluster extremes as exhaustion zones:
Look for reversal patterns, failed breakouts, or order flow shifts when bull count is very high and price starts to stall or diverge.
Look for reflexive bounce potential when bear count is very high and price stops making new lows or shows absorption at the lows.
Use the palette and counts together: hot tiles plus a peaking white line can mark blow-off conditions, cold tiles plus a peaking black line can mark capitulation.
Regime detection and risk toggling
Use the overall shape of the ladder over time:
If upper strips stay warm and lower strips stay neutral or warm for extended periods, the market is in an uptrend regime. You can justify higher risk for long-biased strategies.
If upper strips stay cold and lower strips stay neutral or cold, the market is in a downtrend regime. You can justify higher risk for short-biased strategies or defensive positioning.
If colours and counts flip frequently, you are likely in a range or choppy regime. Consider reducing size or using more tactical, short-term strategies.
Multi-horizon synchronization
You can think of each RSI length as a proxy for a different “speed” of the same market:
When only fast RSIs are stretched, the move is local and less robust.
When fast, medium and slow RSIs align, the move has multi-horizon confirmation.
You can require a minimum bull or bear count before allowing your main strategy to engage.
Spotting hidden shifts
Sometimes price appears flat or drifting, but the heatmap quietly cools or warms:
If price is sideways while many hot tiles fade toward neutral, momentum is decaying under the surface and trend risk is increasing.
If price is sideways while many cold tiles climb back toward neutral, selling pressure is decaying and the tape is repairing itself.
Settings overview
Calculation Settings
RS Period – base RSI length for the shortest strip.
RSI Step – the increment added to each successive RSI length.
RSI Multiplier – scales all generated RSI lengths.
Calculation Source – the input series, such as close, hlc3 or others.
Plotting and Coloring Settings
Heatmap Color Palette – choose between Viridis, Jet, Plasma, Custom Heat, Gray, Cividis, Inferno, Magma, Turbo or Rainbow.
Show Group 1 – toggles RSI 1–5.
Show Group 2 – toggles RSI 6–10.
Show Group 3 – toggles RSI 11–15.
Show Group 4 – toggles RSI 16–20.
Show Bull and Bear Count – enables or disables the two breadth lines.
Alerts
RSI Heatmap Strong Bull – fires when the number of RSIs above 70 reaches or exceeds the configured threshold (default 10).
RSI Heatmap Strong Bear – fires when the number of RSIs below 30 reaches or exceeds the configured threshold (default 10).
Tuning guidance
Fast, tactical configurations
Use a small base RS Period, for example 2 to 5.
Use a small RSI Step, for tight clustering around the fast horizon.
Keep the multiplier near 1.0 to avoid extreme long lengths.
Focus on Group 1 and Group 2 for intraday and short-term trading.
Swing and position configurations
Use a mid-range RS Period, for example 7 to 14.
Use a moderate RSI Step to fan out into slower horizons.
Optionally use a multiplier slightly above 1.0.
Keep all four groups enabled for a full view from fast to slow.
Macro or higher timeframe configurations
Use a larger base RS Period.
Use a larger RSI Step so the top of the ladder reaches very slow lengths.
Focus on Group 3 and Group 4 to see structural momentum.
Treat clusters as regime markers rather than frequent trading signals.
Notes
This indicator is a contextual tool, not a standalone trading system. It does not model execution, spreads, slippage or fundamental drivers. Use it to:
Understand whether momentum is narrow or broad across horizons.
Confirm or filter existing signals from your primary strategy.
Identify environments where the market is crowded into one side.
Distinguish between isolated spikes and truly broad pressure moves.
The Relative Strength Heatmap is designed to answer a simple but powerful question:
“How many versions of RSI agree with what I am seeing on the chart?”
By compressing those answers into a single panel with clear colour coding and breadth lines, it becomes a practical, visual gauge of momentum breadth and market pressure that you can overlay on any trading framework.
ICT Fair Value Gap (FVG) Detector │ Auto-Mitigated │ 2025Accurate ICT / Smart Money Concepts Fair Value Gap (FVG) detector
Features:
• Detects both Bullish (-FVG) and Bearish (+FVG) using strict 3-candle rule
• Boxes automatically extend right until price mitigates them
• Boxes auto-delete when price closes inside the gap (true mitigation)
• No repainting – 100% reliable
• Clean, lightweight, and works on all markets & timeframes
• Fully customizable colors and transparency
How to use:
– Bullish FVG (green) = potential support / buy zone in uptrend
– Bearish FVG (red) = potential resistance / sell zone in downtrend
Exactly matches The Inner Circle Trader (ICT) methodology used by thousands of SMC traders in 2024–2025.
Enjoy and trade safe!
Kernel Channel [BackQuant]Kernel Channel
A non-parametric, kernel-weighted trend channel that adapts to local structure, smooths noise without lagging like moving averages, and highlights volatility compressions, expansions, and directional bias through a flexible choice of kernels, band types, and squeeze logic.
What this is
This indicator builds a full trend channel using kernel regression rather than classical averaging. Instead of a simple moving average or exponential weighting, the midline is computed as a kernel-weighted expectation of past values. This allows it to adapt to local shape, give more weight to nearby bars, and reduce distortion from outliers.
You can think of it as a sliding local smoother where you define both the “window” of influence (Window Length) and the “locality strength” (Bandwidth). The result is a flexible midline with optional upper and lower bands derived from kernel-weighted ATR or kernel-weighted standard deviation, letting you visualize volatility in a structurally consistent way.
Three plotting modes help demonstrate this difference:
When the midline is shown alone, you get a smooth, adaptive baseline that behaves almost like a regression moving average, as shown in this view:
When full channels are enabled, you see how standard deviation reacts to local structure with dynamically widening and tightening bands, a mode illustrated here:
When ATR mode is chosen instead of StdDev, band width reflects breadth of movement rather than variance, creating a volatility-aware envelope like the example here:
Why kernels
Classical moving averages allocate fixed weights. Kernels let the user define weighting shape:
Epanechnikov — emphasizes bars near the current bar, fades fast, stable and smooth.
Triangular — linear decay, simple and responsive.
Laplacian — exponential decay from the current point, sharper reactivity.
Cosine — gentle periodic decay, balanced smoothness for trend filters.
Using these in combination with a bandwidth parameter gives fine control over smoothness vs responsiveness. Smaller bandwidths give sharper local sensitivity, larger bandwidths give smoother curvature.
How it works (core logic)
The indicator computes three building blocks:
1) Kernel-weighted midline
For every bar, a sliding window looks back Window Length bars. Each bar in this window receives a kernel weight depending on:
its index distance from the present
the chosen kernel shape
the bandwidth parameter (locality)
Weights form the denominator, weighted values form the numerator, and the resulting ratio is the kernel regression mean. This midline is the central trend.
2) Kernel-based width
You choose one of two band types:
Kernel ATR — ATR values are kernel-averaged, producing a smooth, volatility-based width that is not dependent on variance. Ideal for directional trend channels and regime separation.
Kernel StdDev — local variance around the midline is computed through kernel weighting. This produces a true statistical envelope that narrows in quiet periods and widens in noisy areas.
Width is scaled using Band Multiplier , controlling how far the envelope extends.
3) Upper and lower channels
Provided midline and width exist, the channel edges are:
Upper = midline + bandMult × width
Lower = midline − bandMult × width
These create smooth structures around price that adapt continuously.
Plotting modes
The indicator supports multiple visual styles depending on what you want to emphasize.
When only the midline is displayed, you get a pure kernel trend: a smooth regression-like curve that reacts to local structure while filtering noise, demonstrated here: This provides a clean read on direction and slope.
With full channels enabled, the behavior of the bands becomes visible. Standard deviation mode creates elastic boundaries that tighten during compressions and widen during turbulence, which you can see in the band-focused demonstration: This helps identify expansion events, volatility clusters, and breakouts.
ATR mode shifts interpretation from statistical variance to raw movement amplitude. This makes channels less sensitive to outliers and more consistent across trend phases, as shown in this ATR variation example: This mode is particularly useful for breakout systems and bar-range regimes.
Regime detection and bar coloring
The slope of the midline defines directional bias:
Up-slope → green
Down-slope → red
Flat → gray
A secondary regime filter compares close to the channel:
Trend Up Strong — close above upper band and midline rising.
Trend Down Strong — close below lower band and midline falling.
Trend Up Weak — close between midline and upper band with rising slope.
Trend Down Weak — close between lower band and midline with falling slope.
Compression mode — squeeze conditions.
Bar coloring is optional and can be toggled for cleaner charts.
Squeeze logic
The indicator includes non-standard squeeze detection based on relative width , defined as:
width / |midline|
This gives a dimensionless measure of how “tight” or “loose” the channel is, normalized for trend level.
A rolling window evaluates the percentile rank of current width relative to past behavior. If the width is in the lowest X% of its last N observations, the script flags a squeeze environment. This highlights compression regions that may precede breakouts or regime shifts.
Deviation highlighting
When using Kernel StdDev mode, you may enable deviation flags that highlight bars where price moves outside the channel:
Above upper band → bullish momentum overextension
Below lower band → bearish momentum overextension
This is turned off in ATR mode because ATR widths do not represent distributional variance.
Alerts included
Kernel Channel Long — midline turns up.
Kernel Channel Short — midline turns down.
Price Crossed Midline — crossover or crossunder of the midline.
Price Above Upper — early momentum expansion.
Price Below Lower — downward volatility expansion.
These help automate regime changes and breakout detection.
How to use it
Trend identification
The midline acts as a bias filter. Rising midline means trend strength upward, falling midline means downward behavior. The channel width contextualizes confidence.
Breakout anticipation
Kernel StdDev compressions highlight areas where price is coiling. Breakouts often follow narrow relative width. ATR mode provides structural expansion cues that are smooth and robust.
Mean reversion
StdDev mode is suitable for fade setups. Moves to outer bands during low volatility often revert to the midline.
Continuation logic
If price breaks above the upper band while midline is rising, the indicator flags strong directional expansion. Same logic for breakdowns on the lower band.
Volatility characterization
Kernel ATR maps raw bar movements and is excellent for identifying regime shifts in markets where variance is unstable.
Tuning guidance
For smoother long-term trend tracking
Larger window (150–300).
Moderate bandwidth (1.0–2.0).
Epanechnikov or Cosine kernel.
ATR mode for stable envelopes.
For swing trading / short-term structure
Window length around 50–100.
Bandwidth 0.6–1.2.
Triangular for speed, Laplacian for sharper reactions.
StdDev bands for precise volatility compression.
For breakout systems
Smaller bandwidth for sharp local detection.
ATR mode for stable envelopes.
Enable squeeze highlighting for identifying setups early.
For mean-reversion systems
Use StdDev bands.
Moderate window length.
Highlight deviations to locate overextended bars.
Settings overview
Kernel Settings
Source
Window Length
Bandwidth
Kernel Type (Epanechnikov, Triangular, Laplacian, Cosine)
Channel Width
Band Type (Kernel ATR or Kernel StdDev)
Band Multiplier
Visuals
Show Bands
Color Bars By Regime
Highlight Squeeze Periods
Highlight Deviation
Lookback and Percentile settings
Colors for uptrend, downtrend, squeeze, flat
Trading applications
Trend filtering — trade only in direction of the midline slope.
Breakout confirmation — expansion outside the bands while slope agrees.
Squeeze timing — compression periods often precede the next directional leg.
Volatility-aware stops — ATR mode makes channel edges suitable for adaptive stop placement.
Structural swing mapping — StdDev bands help locate midline pullbacks vs distributional extremes.
Bias rotation — bar coloring highlights when regime shifts occur.
Notes
The Kernel Channel is not a signal generator by itself, but a structural map. It helps classify trend direction, volatility environment, distribution shape, and compression cycles. Combine it with your entry and exit framework, risk parameters, and higher-timeframe confirmation.
It is designed to behave consistently across markets, to avoid the bluntness of classical averages, and to reveal subtle curvature in price that traditional channels miss. Adjust kernel type, bandwidth, and band source to match the noise profile of your instrument, then use squeeze logic and deviation highlighting to guide timing.
9/15 EMA Scalper 9/15 EMA Scalper — by uzairbaloch
This script is a price-action based scalping system built around the 9 EMA and 15 EMA trend structure.
It identifies short-term reversal points where the market pulls back into the EMAs and confirms direction with a strong candle signal.
The strategy looks for:
• A clear EMA trend (9 above 15 for buys, 9 below 15 for sells)
• Pullback into EMA9/EMA15 with candle bodies touching the fast EMA
• Strong confirmation candle (engulfing / strong momentum / controlled wick)
• Optional slope filter to avoid flat, choppy sessions
• Automatic trade labels showing Entry, SL and TP (based on R:R)
The script is designed for scalping on gold, indices, and high-volatility FX pairs.
It resets trade logic immediately after SL or TP is hit, so it can catch the next valid signal without delay.
This tool is meant as an indicator — not a full strategy — and can be used to visually mark high-probability EMA pullback setups with precise levels.
Author: uzairbaloch
Liquidity ThermometerThis is a universal indicator that assesses market liquidity based on five key market parameters: volume, volatility, candlestick range, body size, and price momentum.
The indicator does not use open interest data and is suitable for all markets, including spot, futures, and Forex.
This indicator normalizes each metric historically and creates a composite index between 0 and 1, where higher values correspond to a stable and calm market environment, and lower values indicate periods of increased risk and potential liquidity stress.
LT generates an integral liquidity index in the range based on five normalized components:
-nVol — normalized volume, reflecting trading density and activity.
-nATR — the volatility component (ATR), inverted, as high volatility is typically associated with declining liquidity.
-nRange — the normalized candlestick range, also inverted to assess the structural narrowness of the price movement.
-nBody — the normalized candlestick body size (|close − open|), inverted to assess the balance of supply and demand.
-nMove — the normalized value of the price impulse movement (|Δclose|), reflecting short-term price spikes.
Each metric is linearly normalized over a sliding window (200 bars) using the formula:
norm(x) = (x − min) / (max − min),
where at max = min, the value is fixed at 0.5 to ensure stability.
The ALT index is calculated as a weighted combination:
ALT = 0.35 nVol + 0.20 (1 − nATR) + 0.20 (1 − nRange) + 0.15 (1 − nBody) + 0.10 (1 − nMove)
The result is further smoothed using EMA(3) to reduce micronoise.
Red Zone (MLI < 0.25) — Risk, Thin Liquidity
When the indicator falls into the red zone, it means the market is extremely volatile:
Characteristics:
Low volume — small trades have a strong impact on the price.
High volatility — candlesticks rise or fall sharply.
Wide candlestick range — the market is "breathing heavily," easily breaking price extremes.
Impulsive movements — small market shocks lead to sharp spikes.
Thin liquidity — few orders in the order book, large orders "eat up" the market.
What this means for a trader:
🔥 High risk of spikes and false breakouts.
⚠ Possible series of liquidations on leverage.
❌ It is not recommended to enter long or short positions without a filter or protection.
✅ Can be used for short scalping strategies if you know the entry point, but very carefully.
Green Zone (MLI > 0.75) — High Liquidity, Safe Zone
When the indicator rises into the green zone, it means the market is stable and balanced:
Characteristics:
High volume — the market is deep, orders are executed without a strong impact on the price.
Low volatility — candlesticks are stable, no sharp spikes.
Narrow candlestick range — price moves calmly.
Weak impulse movements — no sharp surges.
Sufficient liquidity — the market can handle large orders.
What this means for a trader:
✅ Safe zone for opening positions.
🔄 Easier to set stop-loss and take-profit orders.
💡 You can trade both up and down, the risk of sharp movements is minimal.
⚡ Under these conditions, there is a lower risk of spikes and accidental liquidations.
It does not predict price movements or guarantee results. It is an analytical tool intended for additional research into market structure.
Average Price BUY-SELL_Bulent-V2Tracking prices that you have defined and trigger the crossing of them
Normalised Volume Oscillator [BackQuant]Normalised Volume Oscillator
A refined evolution of the Klinger Volume Oscillator, rebuilt for clarity, precision, and adaptability. This tool normalizes volume-driven momentum into a bounded scale so you can easily identify shifts in accumulation and distribution across any asset or timeframe, while keeping readings comparable between markets.
What this indicator does
The Normalised Volume Oscillator quantifies the balance between buying and selling pressure using the Klinger Volume Oscillator (KVO) as its base, then rescales it dynamically into a normalized range between -0.5 and +0.5. This normalization allows traders to interpret relative strength and exhaustion in volume flow, rather than dealing with raw unbounded values that differ across symbols.
It is a momentum-volume hybrid that reveals the strength of trend participation: when buyers dominate, normalized readings rise toward +0.5; when sellers dominate, they fall toward -0.5. The midline (0) acts as an equilibrium between accumulation and distribution.
Core components
Klinger Volume Oscillator: The foundation of this indicator, combining volume with price trend direction to measure long-term money flow relative to short-term movement.
Normalization process: The raw KVO is scaled over a user-defined Normalisation Period , computing `(KVO - lowest) / (highest - lowest) - 0.5`. This centers all readings around zero, allowing overbought/oversold detection independent of asset volatility or volume magnitude.
Signal moving average: The normalized KVO is smoothed with a user-selectable moving average type—SMA, EMA, DEMA, TEMA, HMA, ALMA, and others. This becomes the signal line for confirmation of trend direction or mean-reversion setups.
How it works conceptually
1. The KVO detects when volume supports price movement (bullish) or diverges from it (bearish).
2. The script normalizes the raw KVO so that relative magnitude is consistent—what is “strong buying pressure” looks the same on BTCUSD as it does on AAPL.
3. Overbought and oversold regions are derived statistically, rather than from arbitrary values, based on percentile zones around ±0.4 and ±0.5.
4. The oscillator is optionally combined with a moving average to help identify crossovers, momentum shifts, and divergence confirmation.
How to interpret it
Above 0: Indicates dominant buying pressure and likely continuation of upward momentum.
Below 0: Suggests dominant selling pressure and potential continuation of downward movement.
Crosses of 0: Often mark transitions between accumulation and distribution phases.
+0.4 to +0.5 zone: Overbought region where buying intensity is stretched; watch for deceleration or divergence.
[-0.4 to -0.5 zone: Oversold region indicating panic or exhaustion in selling.
Signal-line crossover: A traditional momentum confirmation method; when the normalized KVO crosses above its moving average, buyers regain control, and vice versa.
Why normalization matters
Typical volume oscillators are asset-specific—what is considered “high” volume for one symbol is not the same for another. By dynamically normalizing KVO values within a rolling lookback, this version transforms raw amplitude into a standardized scale. This means you can:
Compare multiple assets objectively.
Set consistent alert thresholds for overbought/oversold regions.
Avoid misleading interpretations from absolute oscillator values.
Customization and UI
Moving Average Type & Period: Select your preferred smoothing method (SMA, EMA, TEMA, etc.) and adjust its period to tune sensitivity.
Normalisation Period: Defines how many bars the KVO range is measured over; shorter periods adapt faster, longer ones smooth more.
Visual Toggles:
* Show Oscillator : enables or hides the core histogram.
* Show Moving Average : adds a smoothed overlay for signal confirmation.
* Paint Candles : optional color overlay for chart candles based on oscillator direction.
* Show Static Levels : displays ±0.4 and ±0.5 zones for overbought/oversold boundaries.
How to use it
Trend confirmation: Use midline (0) crossovers as confirmation of emerging trend shifts—cross above 0 suggests a new bullish phase, cross below 0 a bearish one.
Reversal spotting: Look for normalized readings reaching ±0.5 and flattening, or diverging against price extremes.
Divergence analysis: When price makes a new high but the normalized oscillator fails to, it signals waning buying conviction (and vice versa for lows).
Multi-timeframe integration: Works best alongside higher timeframe trend filters or moving averages; normalization makes this consistent.
Alerts
Prebuilt alert conditions allow quick automation:
Midline crossovers (0): transition between accumulation and distribution.
Overbought (+0.4) and Oversold (-0.4) triggers for potential exhaustion.
Signal moving-average crosses for confirmation entries.
Tips for use
Combine with price structure—don’t fade every overbought/oversold reading; confirm with break of structure or candle patterns.
Use longer normalization periods for position trading, shorter for intraday analysis.
In choppy markets, treat 0-line oscillations as noise filters, not trade triggers.
Summary
The Normalised Volume Oscillator modernizes the classic Klinger Volume Oscillator by normalizing its readings into a standardized range. This makes it more adaptive across assets and timeframes, improves interpretability, and provides intuitive, data-driven overbought/oversold levels. Whether used standalone or as a confirmation layer, it offers a clearer view of volume dynamics—revealing when markets are truly being accumulated, distributed, or stretched beyond their sustainable extremes.
PE Fair ValueIn short, it’s an automated fair value estimator based on the price-to-earnings model, with full manual control if TradingView’s fundamental data is missing.
Summary:
1. Lets the user choose the EPS source – either automatically from TradingView fundamentals (EPS TTM) or a manual value.
2. Attempts to fetch the stock’s P/E ratio (TTM) automatically; if unavailable, it uses a manual fallback P/E.
3. Calculates:
Actual P/E = current price ÷ EPS
Fair Value = EPS × chosen (auto/manual) P/E
Percentage difference between market price and fair value
4. Plots the fair-value line on the chart for visual comparison.
5. Displays a table in the top-right corner showing:
EPS used
Target P/E
Actual P/E
Fair value
Current price
Difference vs fair value (colored green or red)
6. Creates alerts when the stock is trading above or below the calculated fair value.
7. Also plots the current closing price for reference.
Top Finder & Dip Hunter [BackQuant]Top Finder & Dip Hunter
A practical tool to map where price is statistically most likely to exhaust or mean-revert. It builds objective support for dips and resistance for tops from multiple methodologies, then filters raw touches with volume, momentum, trend, and price-action context to surface higher-quality reversal opportunities.
What this does
Draws a Dip Support line and a Top Resistance line using the method you select, or a blended hybrid.
Evaluates each touch/penetration against Quality Filters and assigns a 0–100 composite score.
Prints clean DIP and TOP signals only when depth/extension and quality pass your thresholds.
Optionally annotates the chart with the computed quality score at signal time.
Why it’s useful
Objectivity: Converts vague “looks extended” into rules, reduces discretion creep.
Signal hygiene: Filters raw touches using trend, volume, momentum, and candle structure to avoid obvious traps.
Adaptable regimes: Switch methods, sensitivity, and lookbacks to match choppy vs trending conditions.
How support and resistance are built
Pick one per side, or use “Hybrid.”
Dynamic: Anchors to the extreme of a lookback window, padded by recent ATR, so buffers expand in volatile periods and contract when calm.
Fibonacci: Uses the 0.618/0.786 retracement pair inside the current swing window to target common reaction zones.
Volatility: Uses a moving-average basis with standard-deviation bands to capture statistically stretched moves.
Volume-Weighted: Centers off VWAP and penalizes deviations using dispersion of price around VWAP, helpful on intraday instruments.
Hybrid: A weighted average of the above to smooth out single-method biases.
When a touch becomes a signal
Depth/extension test:
Dips must penetrate their support by at least Min Dip Depth % .
Tops must extend above resistance by at least Min Top Rise % .
Quality Score gate: The composite must clear Min Quality Score . Components:
Trend alignment: Favor dips in bullish regimes and tops in bearish regimes using EMAs and RSI.
Volume confirmation: Reward expansion or spikes versus a 20-period baseline.
RSI context: Prefer oversold for dips, overbought for tops.
Momentum shift: Look for short-term momentum turning in the expected direction.
Candle structure: Reward hammer/shooting-star style responses at the level.
How to use it
Pick your regime:
Range/chop, small caps, mean-revert intraday → Volatility or Volume Weighted .
Cleaner swings/trends → Dynamic or Fibonacci .
Unsure or mixed conditions → Hybrid .
Set windows: Start with Lookback = 50 for both sides. Increase in higher timeframes or slow assets, decrease for fast scalps.
Tune sensitivity: Raise Dip/Top Sensitivity to widen buffers and reduce noise. Lower to be more aggressive.
Gate with quality: Begin with Min Quality Score = 60 . Push to 70–80 for cleaner swing entries, relax to 50–60 for scalps.
Act on first prints: The script only fires on new qualified events. Use the score label to prioritize A-setups.
Typical workflows
Intraday futures/crypto: Volume-Weighted or Volatility methods for both sides, higher Sensitivity , require Volume Filter and Momentum Filter on. Look for DIP during opening drive exhaustion and TOP near late-session fatigue.
Swing equities/FX: Dynamic or Fibonacci with moderate sensitivity. Keep Trend Filter on to only take dips above the 200-EMA and tops below it.
Countertrend scouts: Lower Min Dip Depth % / Min Top Rise % slightly, but raise Min Quality Score to compensate.
Reading the chart
Lines: “Dip Support” and “Top Resistance” are the current actionable rails, lightly smoothed to reduce flicker.
Signals: “DIP” prints below bars when a qualified dip appears, “TOP” prints above for qualified tops.
Scores: Optional labels show the composite at signal time. Favor higher numbers, especially when aligned with higher-timeframe trend.
Background hints: Light highlights mark raw touches meeting depth/extension, even if they fail quality. Treat these as early warnings.
Tuning tips
If you get too many false DIP signals in downtrends, raise Min Dip Depth % and keep Trend Filter on.
If tops appear late in squeezes, lower Top Sensitivity slightly or switch top side to Fibonacci .
On assets with erratic volume, prefer Volatility or Dynamic methods and down-weight the Volume Filter .
For strict systems, increase Min Quality Score and require both Volume and Momentum filters.
What this is not
It is not a blind reversal signal. It’s a structured context tool. Combine with your risk plan and higher-timeframe map.
It is not a guarantee of mean reversion. In strong trends, expect fewer, higher-score opportunities and respect invalidation quickly.
Suggested presets
Scalp preset: Lookback 30–40, Sensitivity 1.2–1.5, Quality ≥ 55, Volume & Momentum filters ON.
Swing preset: Lookback 75–100, Sensitivity 1.0–1.2, Quality ≥ 70, Trend & Volume filters ON.
Chop preset: Volatility/Volume-Weighted methods, Quality ≥ 60, Momentum filter ON, RSI emphasis.
Input quick reference
Dip/Top Method: Choose the model for each side or “Hybrid” to blend.
Lookback: Swing window the levels are built from.
Sensitivity: Scales volatility padding around levels.
Min Dip Depth % / Min Top Rise %: Minimum breach/extension to qualify.
Quality Filters: Trend, Volume, Momentum toggles, plus Min Quality Score gate.
Visuals: Colors and whether to print score labels.
Best practices
Map higher-timeframe trend first, then act on lower-timeframe DIP/TOP in the trend’s favor.
Use the score as triage. Skip mediocre prints into news or at session open unless score is exceptional.
Pre-define stop placement relative to the level you used. If a DIP fails, exit on loss of structure rather than waiting for the next print.
Bottom line: Top Finder & Dip Hunter codifies where reversals are most defensible and only flags the ones with supportive context. Tune the method and filters to your market, then let the score keep your playbook disciplined.
Machine Learning Moving Average [BackQuant]Machine Learning Moving Average
A powerful tool combining clustering, pseudo-machine learning, and adaptive prediction, enabling traders to understand and react to price behavior across multiple market regimes (Bullish, Neutral, Bearish). This script uses a dynamic clustering approach based on percentile thresholds and calculates an adaptive moving average, ideal for forecasting price movements with enhanced confidence levels.
What is Percentile Clustering?
Percentile clustering is a method that sorts and categorizes data into distinct groups based on its statistical distribution. In this script, the clustering process relies on the percentile values of a composite feature (based on technical indicators like RSI, CCI, ATR, etc.). By identifying key thresholds (lower and upper percentiles), the script assigns each data point (price movement) to a cluster (Bullish, Neutral, or Bearish), based on its proximity to these thresholds.
This approach mimics aspects of machine learning, where we “train” the model on past price behavior to predict future movements. The key difference is that this is not true machine learning; rather, it uses data-driven statistical techniques to "cluster" the market into patterns.
Why Percentile Clustering is Useful
Clustering price data into meaningful patterns (Bullish, Neutral, Bearish) helps traders visualize how price behavior can be grouped over time.
By leveraging past price behavior and technical indicators, percentile clustering adapts dynamically to evolving market conditions.
It helps you understand whether price behavior today aligns with past bullish or bearish trends, improving market context.
Clusters can be used to predict upcoming market conditions by identifying regimes with high confidence, improving entry/exit timing.
What This Script Does
Clustering Based on Percentiles : The script uses historical price data and various technical features to compute a "composite feature" for each bar. This feature is then sorted and clustered based on predefined percentile thresholds (e.g., 10th percentile for lower, 90th percentile for upper).
Cluster-Based Prediction : Once clustered, the script uses a weighted average, cluster momentum, or regime transition model to predict future price behavior over a specified number of bars.
Dynamic Moving Average : The script calculates a machine-learning-inspired moving average (MLMA) based on the current cluster, adjusting its behavior according to the cluster regime (Bullish, Neutral, Bearish).
Adaptive Confidence Levels : Confidence in the predicted return is calculated based on the distance between the current value and the other clusters. The further it is from the next closest cluster, the higher the confidence.
Visual Cluster Mapping : The script visually highlights different clusters on the chart with distinct colors for Bullish, Neutral, and Bearish regimes, and plots the MLMA line.
Prediction Output : It projects the predicted price based on the selected method and shows both predicted price and confidence percentage for each prediction horizon.
Trend Identification : Using the clustering output, the script colors the bars based on the current cluster to reflect whether the market is trending Bullish (green), Bearish (red), or is Neutral (gray).
How Traders Use It
Predicting Price Movements : The script provides traders with an idea of where prices might go based on past market behavior. Traders can use this forecast for short-term and long-term predictions, guiding their trades.
Clustering for Regime Analysis : Traders can identify whether the market is in a Bullish, Neutral, or Bearish regime, using that information to adjust trading strategies.
Adaptive Moving Average for Trend Following : The adaptive moving average can be used as a trend-following indicator, helping traders stay in the market when it’s aligned with the current trend (Bullish or Bearish).
Entry/Exit Strategy : By understanding the current cluster and its associated trend, traders can time entries and exits with higher precision, taking advantage of favorable conditions when the confidence in the predicted price is high.
Confidence for Risk Management : The confidence level associated with the predicted returns allows traders to manage risk better. Higher confidence levels indicate stronger market conditions, which can lead to higher position sizes.
Pseudo Machine Learning Aspect
While the script does not use conventional machine learning models (e.g., neural networks or decision trees), it mimics certain aspects of machine learning in its approach. By using clustering and the dynamic adjustment of a moving average, the model learns from historical data to adjust predictions for future price behavior. The "learning" comes from how the script uses past price data (and technical indicators) to create patterns (clusters) and predict future market movements based on those patterns.
Why This Is Important for Traders
Understanding market regimes helps to adjust trading strategies in a way that adapts to current market conditions.
Forecasting price behavior provides an additional edge, enabling traders to time entries and exits based on predicted price movements.
By leveraging the clustering technique, traders can separate noise from signal, improving the reliability of trading signals.
The combination of clustering and predictive modeling in one tool reduces the complexity for traders, allowing them to focus on actionable insights rather than manual analysis.
How to Interpret the Output
Bullish (Green) Zone : When the price behavior clusters into the Bullish zone, expect upward price movement. The MLMA line will help confirm if the trend remains upward.
Bearish (Red) Zone : When the price behavior clusters into the Bearish zone, expect downward price movement. The MLMA line will assist in tracking any downward trends.
Neutral (Gray) Zone : A neutral market condition signals indecision or range-bound behavior. The MLMA line can help track any potential breakouts or trend reversals.
Predicted Price : The projected price is shown on the chart, based on the cluster's predicted behavior. This provides a useful reference for where the price might move in the near future.
Prediction Confidence : The confidence percentage helps you gauge the reliability of the predicted price. A higher percentage indicates stronger market confidence in the forecasted move.
Tips for Use
Combining with Other Indicators : Use the output of this indicator in combination with your existing strategy (e.g., RSI, MACD, or moving averages) to enhance signal accuracy.
Position Sizing with Confidence : Increase position size when the prediction confidence is high, and decrease size when it’s low, based on the confidence interval.
Regime-Based Strategy : Consider developing a multi-strategy approach where you use this tool for Bullish or Bearish regimes and a separate strategy for Neutral markets.
Optimization : Adjust the lookback period and percentile settings to optimize the clustering algorithm based on your asset’s characteristics.
Conclusion
The Machine Learning Moving Average offers a novel approach to price prediction by leveraging percentile clustering and a dynamically adapting moving average. While not a traditional machine learning model, this tool mimics the adaptive behavior of machine learning by adjusting to evolving market conditions, helping traders predict price movements and identify trends with improved confidence and accuracy.
Multi-Mode Seasonality Map [BackQuant]Multi-Mode Seasonality Map
A fast, visual way to expose repeatable calendar patterns in returns, volatility, volume, and range across multiple granularities (Day of Week, Day of Month, Hour of Day, Week of Month). Built for idea generation, regime context, and execution timing.
What is “seasonality” in markets?
Seasonality refers to statistically repeatable patterns tied to the calendar or clock, rather than to price levels. Examples include specific weekdays tending to be stronger, certain hours showing higher realized volatility, or month-end flow boosting volumes. This tool measures those effects directly on your charted symbol.
Why seasonality matters
It’s orthogonal alpha: timing edges independent of price structure that can complement trend, mean reversion, or flow-based setups.
It frames expectations: when a session typically runs hot or cold, you size and pace risk accordingly.
It improves execution: entering during historically favorable windows, avoiding historically noisy windows.
It clarifies context: separating normal “calendar noise” from true anomaly helps avoid overreacting to routine moves.
How traders use seasonality in practice
Timing entries/exits : If Tuesday morning is historically weak for this asset, a mean-reversion buyer may wait for that drift to complete before entering.
Sizing & stops : If 13:00–15:00 shows elevated volatility, widen stops or reduce size to maintain constant risk.
Session playbooks : Build repeatable routines around the hours/days that consistently drive PnL.
Portfolio rotation : Compare seasonal edges across assets to schedule focus and deploy attention where the calendar favors you.
Why Day-of-Week (DOW) can be especially helpful
Flows cluster by weekday (ETF creations/redemptions, options hedging cadence, futures roll patterns, macro data releases), so DOW often encodes a stable micro-structure signal.
Desk behavior and liquidity provision differ by weekday, impacting realized range and slippage.
DOW is simple to operationalize: easy rules like “fade Monday afternoon chop” or “press Thursday trend extension” can be tested and enforced.
What this indicator does
Multi-mode heatmaps : Switch between Day of Week, Day of Month, Hour of Day, Week of Month .
Metric selection : Analyze Returns , Volatility ((high-low)/open), Volume (vs 20-bar average), or Range (vs 20-bar average).
Confidence intervals : Per cell, compute mean, standard deviation, and a z-based CI at your chosen confidence level.
Sample guards : Enforce a minimum sample size so thin data doesn’t mislead.
Readable map : Color palettes, value labels, sample size, and an optional legend for fast interpretation.
Scoreboard : Optional table highlights best/worst DOW and today’s seasonality with CI and a simple “edge” tag.
How it’s calculated (under the hood)
Per bar, compute the chosen metric (return, vol, volume %, or range %) over your lookback window.
Bucket that metric into the active calendar bin (e.g., Tuesday, the 15th, 10:00 hour, or Week-2 of month).
For each bin, accumulate sum , sum of squares , and count , then at render compute mean , std dev , and confidence interval .
Color scale normalizes to the observed min/max of eligible bins (those meeting the minimum sample size).
How to read the heatmap
Color : Greener/warmer typically implies higher mean value for the chosen metric; cooler implies lower.
Value label : The center number is the bin’s mean (e.g., average % return for Tuesdays).
Confidence bracket : Optional “ ” shows the CI for the mean, helping you gauge stability.
n = sample size : More samples = more reliability. Treat small-n bins with skepticism.
Suggested workflows
Pick the lens : Start with Analysis Type = Returns , Heatmap View = Day of Week , lookback ≈ 252 trading days . Note the best/worst weekdays and their CI width.
Sanity-check volatility : Switch to Volatility to see which bins carry the most realized range. Use that to plan stop width and trade pacing.
Check liquidity proxy : Flip to Volume , identify thin vs thick windows. Execute risk in thicker windows to reduce slippage.
Drill to intraday : Use Hour of Day to reveal opening bursts, lunchtime lulls, and closing ramps. Combine with your main strategy to schedule entries.
Calendar nuance : Inspect Week of Month and Day of Month for end-of-month, options-cycle, or data-release effects.
Codify rules : Translate stable edges into rules like “no fresh risk during bottom-quartile hours” or “scale entries during top-quartile hours.”
Parameter guidance
Analysis Period (Days) : 252 for a one-year view. Shorten (100–150) to emphasize the current regime; lengthen (500+) for long-memory effects.
Heatmap View : Start with DOW for robustness, then refine with Hour-of-Day for your execution window.
Confidence Level : 95% is standard; use 90% if you want wider coverage with fewer false “insufficient data” bins.
Min Sample Size : 10–20 helps filter noise. For Hour-of-Day on higher timeframes, consider lowering if your dataset is small.
Color Scheme : Choose a palette with good mid-tone contrast (e.g., Red-Green or Viridis) for quick thresholding.
Interpreting common patterns
Return-positive but low-vol bins : Favorable drift windows for passive adds or tight-stop trend continuation.
Return-flat but high-vol bins : Opportunity for mean reversion or breakout scalping, but manage risk accordingly.
High-volume bins : Better expected execution quality; schedule size here if slippage matters.
Wide CI : Edge is unstable or sample is thin; treat as exploratory until more data accumulates.
Best practices
Revalidate after regime shifts (new macro cycle, liquidity regime change, major exchange microstructure updates).
Use multiple lenses: DOW to find the day, then Hour-of-Day to refine the entry window.
Combine with your core setup signals; treat seasonality as a filter or weight, not a standalone trigger.
Test across assets/timeframes—edges are instrument-specific and may not transfer 1:1.
Limitations & notes
History-dependent: short histories or sparse intraday data reduce reliability.
Not causal: a hot Tuesday doesn’t guarantee future Tuesday strength; treat as probabilistic bias.
Aggregation bias: changing session hours or symbol migrations can distort older samples.
CI is z-approximate: good for fast triage, not a substitute for full hypothesis testing.
Quick setup
Use Returns + Day of Week + 252d to get a clean yearly map of weekday edge.
Flip to Hour of Day on intraday charts to schedule precise entries/exits.
Keep Show Values and Confidence Intervals on while you calibrate; hide later for a clean visual.
The Multi-Mode Seasonality Map helps you convert the calendar from an afterthought into a quantitative edge, surfacing when an asset tends to move, expand, or stay quiet—so you can plan, size, and execute with intent.
Previous D/W/M HLOCHey traders,
Here's a simple Multi-Timeframe indicator that essentially turns time and price into a box. It'll take the previous high, low, opening price, or closing price from one of the three timeframes of your choice (day, week, or month). For whatever reason I can't get the opening price to function consistently so if you find improvements feel free to let me know, this will help traders who prefer to use opening price over closing price.
Naturally this form of charting is classical and nature and some key figures you could use to study its usage are
- Richard W. Schabacker (1930s)
- Edwards & Magee (1948)
- Peter Brandt
- Stacey Burke (more on the intraday side - typically our preference)
It's usage put plainly:
- Quantifying Accumulation or Distribution
- Revealing Energy Build-Up (Compression)
- Framing Breakouts and False Breakouts
- Structuring Time
- Identifying opportunities to trade a daily, weekly, or monthly range.






















