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.
Indicators and strategies
9/39 EMA Crossover + ADX + RSI Filter (No builtin ADX)
9/39 EMA Crossover + ADX + RSI Filter
This indicator combines classic trend‑following EMAs with momentum and trend‑strength filters to generate high‑quality Buy/Sell signals. It is designed for traders who want cleaner entries, reduced noise, and confirmation‑based signals.
✅ How It Works
1. EMA Trend Logic
• Buy Signal:
9 EMA crosses above 39 EMA
• Sell Signal:
9 EMA crosses below 39 EMA
This captures short‑term momentum shifts within the broader trend.
✅ 2. ADX Trend Strength Filter
To avoid weak or sideways markets, signals only trigger when:
• ADX > 20
This ensures the market has enough directional strength before taking trades.
✅ 3. RSI Momentum Filter
Momentum must align with the direction of the crossover:
• Buy: RSI > 50
• Sell: RSI < 50
This prevents counter‑trend entries and improves signal reliability.
✅ Final Signal Conditions
✅ BUY
• 9 EMA crosses above 39 EMA
• ADX > 20
• RSI > 50
✅ SELL
• 9 EMA crosses below 39 EMA
• ADX > 20
• RSI < 50
✅ Features
• Clean BUY/SELL labels on chart
• ADX calculated manually (compatible with all Pine environments)
• Alerts included for automation
• Works on all timeframes and instruments
✅ Best Use‑Cases
• Trend‑following strategies
• Swing trading
• Intraday momentum confirmation
• Filtering out sideways/noisy markets
MTF Switch Level (Single TF)Multi-timeframe Switch Level (Single TF)
This indicator marks the most recent “switch level” created by breakout / breakdown behaviour on the current timeframe.
How it works
– After a bullish breakout (close above the previous bar’s high), the script sets a bearish switch level at that previous high.
– After a bearish breakdown (close below the previous bar’s low), it sets a bullish switch level at that previous low.
– A single horizontal line extends from the latest switch level.
– The line and “S” label turn bullish when price is above the level and bearish when price is below it.
– Optional alerts fire when price crosses the active switch level.
Use-cases
– Visualise where breakout traders are likely trapped.
– Define a simple “above = bullish / below = bearish” bias line.
– Combine with higher-timeframe analysis or other tools for context.
Inputs
– Enable/disable bullish and bearish switch conditions.
– Line length, colour, style, thickness.
– Label position and offsets.
– Alert conditions for crosses.
Disclaimer
This tool is for charting and educational purposes only and is not financial advice or a signal service. Always do your own research and risk management.
ADR% / ATR / Dynamic LoD–HoD TableThis indicator displays a clean data table showing ADR%, ATR, and a dynamic LoD/HoD distance value based on daily trend conditions.
When price is above the 21-day or 50-day moving average, the indicator shows the distance from the Low of Day.
When price is below BOTH daily moving averages, it automatically switches to showing distance from the High of Day.
The table updates in real-time and gives a fast, volatility-based view of where price sits inside the day’s range.
Features
• ADR% (Average Daily Range Percentage)
• ATR (Average True Range)
• Automatic LoD → HoD switching based on daily trend
• Customizable colors and layout
• Clean, space-efficient table format
• Designed for intraday and volatility-focused traders
VCAI Volume & Liquidity Map LiteVCAI Volume & Liquidity Map Lite visualises recent market participation using a horizontal liquidity/volume histogram plotted beside current price.
It shows where trading activity has clustered, where the chart is thin, and how much of that activity came from buying vs selling pressure.
This Lite edition keeps the tool simple and fast:
Yellow = buy-side volume (aggressive buyers / upward pressure)
Purple = sell-side volume (aggressive sellers / downward pressure)
Thicker sections = higher traded volume at that price
POC line (purple) marks the price with the highest volume concentration
Value Area lines (yellow dashed) mark where ~70% of volume has traded
Bars extend outward to the right of price for a clean, unobstructed chart
Lookback setting controls how many candles the map is built from
Use it to quickly identify:
high-interest price zones
low-liquidity areas where price can move fast
likely reaction levels
where momentum may slow, reverse, or break through
Designed as a lightweight, open-source tool for anyone wanting a clean liquidity/volume map without complex settings.
Part of the VCAI Lite Series.
VCAI Volume LiteVCAI Volume Lite is a clean, modern take on volume analysis designed for traders who want a clearer read on participation without loading multiple indicators.
This Lite edition focuses on the essentials:
real activity vs dead sessions
expansion vs contraction
momentum shifts around breakouts and pullbacks
No hype, no filters, no hidden logic — just a straightforward volume tool rebuilt with the VCAI visual framework.
Use it to quickly spot:
stronger moves backed by genuine participation
weak pushes running on low volume
areas where momentum may stall or accelerate
Part of the VCAI Lite Series.
(5+15+60min+1D)EMA20+Y'SH/L+count简介: 这是一个专为 5分钟图表 (5min Chart) 日内交易者设计的综合辅助工具。它结合了多周期趋势均线、美股核心交易时段的时间周期计数以及关键流动性位置(前一日高低点)的智能突破监测。该脚本针对美股个股及 24/7 交易的 BTC/ETH 进行了优化,强制锁定纽约时间进行运算。
核心功能:
1. 多周期 EMA 监控系统 (MTF EMAs)
5min EMA20 (蓝色):日内短期趋势核心线(默认开启)。
60min EMA20 (绿色):小时级别趋势参考(默认开启)。
15min EMA20 (红色) & 1D EMA20 (橙色):可选开启,用于捕捉更大周期的支撑阻力。
特点:所有均线采用最细线宽,平滑显示,右上角表格实时展示当前价格。
2. 美股时段 Bar Count 计数器
时间锚定:以纽约时间 (New York Time) 09:30 开盘为起点(Bar 0)。
显示规则:仅在 K 线底部显示 偶数 序号 (0, 2, 4, 6 ...),直至第 82 根 K 线停止。
关键时间窗 (Time Pivots):
Bar 18 (约 NY 10:55) 和 Bar 40 (约 NY 12:45) 会被自动高亮。
字体变为 蓝色粗体,且对应 K 线实体变为蓝色,提示潜在的变盘或宏观流动性注入时刻。
3. 智能 PDH/PDL 射线 (Smart Rays)
精确锚点:前一日高点 (PDH) 和低点 (PDL) 的射线不是从开盘画起,而是从昨日形成高低点的具体时间点射出,精确还原价格行为。
自动阻断 (Breakout Logic):一旦当前价格触碰或突破该射线,射线将自动停止延伸,直观展示“阻力/支撑已失效”。
自动清理:每日自动清除旧线,仅保留当天的参考线,保持图表整洁。
4. 视觉优化
每日分割线:自动绘制灰色虚线分隔交易日。
图表限制:脚本仅在 5分钟图表上可见,切换周期自动隐藏,避免干扰大周期分析。
设置说明:
可在设置面板中自由开关各周期 EMA 的显示。
可开关底部的计数数字显示。
English Version (for TradingView Publishing)
Title: 5min Intraday Precision Toolkit: MTF EMAs + NY Session Count + Smart Rays
Introduction: This is a comprehensive auxiliary tool designed specifically for 5-minute chart intraday traders. It combines multi-timeframe trend EMAs, time cycle counting based on the US Session, and smart breakout monitoring for key liquidity levels (Previous Day High/Low). Optimized for US Equities and Crypto (BTC/ETH) using New York Time.
Key Features:
1. Multi-Timeframe EMA System
5min EMA20 (Blue): Core short-term intraday trend (On by default).
60min EMA20 (Green): Hourly trend reference (On by default).
15min EMA20 (Red) & 1D EMA20 (Orange): Optional overlays for higher timeframe support/resistance.
Visuals: All EMAs are rendered with fine lines for a clean look, accompanied by a top-right dashboard table.
2. NY Session Bar Count
Time Anchor: Starts counting from 09:30 New York Time (Bar 0).
Display Logic: Displays only EVEN numbers (0, 2, 4...) at the bottom of the bars, stopping at count 82.
Time Pivots:
Bar 18 (~10:55 NY) and Bar 40 (~12:45 NY) are highlighted.
Labels turn Bold Blue, and the specific candles are colored Blue to indicate potential reversal or liquidity injection times.
3. Smart PDH/PDL Rays
Precise Origin: Rays for Previous Day High (PDH) and Previous Day Low (PDL) originate from the exact timestamp they were created yesterday, not just the daily open.
Breakout Stop Logic: Rays automatically stop extending once price touches or breaks them, clearly indicating that the level has been tested.
Auto-Clean: Automatically removes old rays from previous days to keep the chart clean.
4. Visual Optimization
Daily Separators: Automatic vertical dotted lines marking new days.
Visibility: All elements are hidden on non-5m charts to prevent clutter.
Settings:
Toggle visibility for individual EMAs.
Toggle visibility for the bottom bar counter.
Continuation Model by XausThis report summarizes the historical performance of the Institutional Daily Bias Probability Model on
EURUSD daily data for the 2025 calendar year. The model combines three components: 1.
Continuation bias around the previous day's high/low (PDH/PDL). 2. Reversal bias based on failed
continuation, failed breakouts, and exhaustion. 3. Neutral bias to identify liquidity-building days when no
directional trades should be taken. A fixed 25-pip stop loss (0.0025) is assumed for R-multiple
calculations. Trades are only taken when Neutral score < 50 and either Continuation or Reversal score
is at least 70, with Neutral overriding, then Reversal, then Continuation.
Breakout Scanner (Screener)Breakout Scanner (Screener style — single indicator to drop in Screener tab)
Mirpapa_Lib_UnicornLibrary "Mirpapa_Lib_Unicorn"
유니콘 패턴 라이브러리 (Unicorn Pattern Library)
유니콘 모델 전략 로직, 데이터 구조체 및 상태 관리를 구현합니다.
initUnicornData(_isBull, _createTime, _createBar, _timeframe)
UnicornData 초기화
@description 새로운 UnicornData 객체를 생성하고 초기화합니다.
Parameters:
_isBull (bool) : 방향 (True: 상승, False: 하락)
_createTime (int) : 생성 시간
_createBar (int) : 생성 Bar Index
_timeframe (string) : 시간대
calculateOverlap(_obTop, _obBot, _fvgTop, _fvgBot)
중첩 영역(Overlap Zone) 계산
@description OB와 FVG 사이의 겹치는 영역을 계산합니다.
Parameters:
_obTop (float) : OB 상단
_obBot (float) : OB 하단
_fvgTop (float) : FVG 상단
_fvgBot (float) : FVG 하단
Returns: 겹침 영역 상단, 하단, 겹침 여부
updateUnicornStatus(_data, _currentHigh, _currentLow, _time)
유니콘 상태 업데이트
@description 가격 움직임에 따라 유니콘 패턴의 상태를 업데이트합니다.
active: 진입 대기 (리테스트 대기) -> triggered: 진입 (TP/SL 대기) -> win/loss: 결과 확정
Parameters:
_data (UnicornData) : UnicornData 객체
_currentHigh (float) : 현재 고가
_currentLow (float) : 현재 저가
_time (int) : 현재 시간
Returns: UnicornData 업데이트된 객체
activateUnicorn(_data)
유니콘 활성화 (Active 전환)
@description Pending 상태인 유니콘 데이터를 Active 상태로 전환합니다. (보통 CHoCH 발생 시 호출)
Parameters:
_data (UnicornData) : UnicornData 객체
setTradeLevels(_data, _entry, _stop, _target)
트레이딩 레벨 설정
@description 진입가, 목표가, 손절가를 설정합니다.
Parameters:
_data (UnicornData) : UnicornData 객체
_entry (float) : 진입가
_stop (float) : 손절가
_target (float) : 목표가
UnicornData
유니콘 데이터 (UnicornData)
Fields:
_isBull (series bool) : // 상승/하락 방향 (True: Long, False: Short)
_status (series string) : // "pending", "active", "triggered", "win", "loss", "cancelled"
_createTime (series int) : // 생성 시간
_createBar (series int) : // 생성 bar_index
_obTop (series float) : // OB 상단
_obBot (series float) : // OB 하단
_obTime (series int) : // OB 캔들 시간
_obBox (series box) : // OB 박스 객체
_fvgTop (series float) : // FVG 상단
_fvgBot (series float) : // FVG 하단
_fvgTime (series int) : // FVG 시간
_fvgBox (series box) : // FVG 박스 객체
_zoneTop (series float) : // 겹침 영역 상단 (Unicorn Zone)
_zoneBot (series float) : // 겹침 영역 하단 (Unicorn Zone)
_zoneBox (series box) : // Unicorn Zone 박스 객체
_chochConfirmed (series bool) : // CHoCH 확정 여부
_chochTime (series int) : // CHoCH 발생 시간
_chochPrice (series float) : // CHoCH 돌파 가격
_entryPrice (series float) : // 진입가
_targetPrice (series float) : // 목표가 (다음 유동성 레벨)
_stopPrice (series float) : // 손절가 (Zone 반대편)
_result (series string) : // "none", "win", "loss"
_resultTime (series int) : // 결과 확정 시간
_resultPrice (series float) : // 결과 확정 가격
_profitPips (series float) : // 수익 pips (양수)
_lossPips (series float) : // 손실 pips (음수)
_profitPercent (series float) : // 수익 %
_lossPercent (series float) : // 손실 %
_rrRatio (series float) : // Risk:Reward 비율
_timeframe (series string) : // 시간대 (HTF/MTF/CTF)
_triggerTime (series int) : // 진입 트리거 시간 (리테스트)
_triggerPrice (series float) : // 진입 트리거 가격
_isRetested (series bool) : // 리테스트 여부
_retestCount (series int) : // 리테스트 횟수
_maxDrawdown (series float) : // 최대 손실폭 (진입 후)
_maxProfit (series float) : // 최대 수익폭 (진입 후)
N1E_UTBOATN1E_UTBOAT
ATR trailing stop
Optional Heikin Ashi source
Buy/Sell signals based on a crossover of price vs ATR trailing stop
Strategy long/short entries
Emmanuel Optuma Bar Colors v2This script colours TradingView’s Bar Chart to follow a simple, powerful bar-type logic used in Optuma-style analysis.
It makes the chart easier to read by showing the relationship between:
Up bars
Down bars
Outside bars
Inside bars
🔍 Bar Type Detection
Up Bar
Close > Previous close
→ Indicates upward strength
→ Coloured Green
Down Bar
Close < Previous close
→ Indicates downward pressure
→ Coloured Red
Outside Bar
High > Previous high and Low < Previous low
→ Market expands its range
→ Coloured Blue
Inside Bar
High < Previous high and Low > Previous low
→ Market contracts inside the previous bar
→ Follows previous bar’s colour
🎨 Colour Rules Summary
Bar Type Colour Meaning
Up Bar 🟩 Green Bullish pressure
Down Bar 🟥 Red Bearish pressure
Outside Bar 🔵 Blue Range expansion, bar resets structure
Inside Bar Same as previous bar Market indecision, continuation
🧠 Inside Bar Logic (Very Important)
Inside bars always copy the colour of the previous bar, which means:
If the previous bar was Green → inside bar becomes Green
If the previous bar was Red → inside bar becomes Red
If the previous bar was Blue → inside bar becomes Blue
This keeps the structure visually consistent and easy to read.
📈 Why This Helps Traders
This approach makes it easier to see:
✔ Trend continuation
Inside bars keep the trend colour, making swings clearer.
✔ Trend weakness
Inside bars after outside bars show contraction.
✔ Breakouts
Blue outside bars stand out as moments of range expansion.
✔ Market rhythm
The chart becomes easier to follow for beginners and advanced traders.
🧩 How to Use It
Set chart type to Bars
Add the script
Hide default colours (barcolor replaces them)
This instantly transforms TradingView into a teaching-friendly chart like Optuma.
FOMC Federal Fund Rate Tracker [MHA Finverse]The FOMC Rate Tracker is a comprehensive indicator that visualizes Federal Reserve interest rate decisions and tracks market behavior during FOMC meeting periods. This tool helps traders analyze historical rate changes and anticipate market movements around Federal Open Market Committee announcements.
Key Features:
• Visual FOMC Periods - Automatically highlights each FOMC meeting period with colored boxes spanning from announcement to the next meeting
• Complete Rate Data - Displays actual rates, forecasts, previous rates, and rate differences for every meeting from 2021-2026
• Multiple Color Modes - Choose between cycle colors for visual distinction or rate difference colors (green for hikes, red for cuts, gray for holds)
• Smart Filtering - Filter periods by rate hikes only, cuts only, no change, or surprise moves to focus on specific market conditions
• Performance Metrics - Track average returns during rate hikes, cuts, and holds to identify historical patterns
• Volatility Analysis - Measure and compare price volatility across different FOMC periods
• Statistical Dashboard - View total hikes, cuts, holds, surprises, and longest hold streaks at a glance
• Built-in Alerts - Get notified 1 day before FOMC meetings, on meeting day, or when rates change
How It Works:
The indicator divides your chart into distinct periods between FOMC meetings, with each period showing a labeled box containing the meeting date, actual rate, forecast, previous rate, and rate difference. Future meetings are marked as "UPCOMING" to help you prepare for scheduled announcements.
Use Cases:
- Analyze how markets typically react to rate hikes vs. cuts
- Identify volatility patterns around FOMC announcements
- Backtest strategies based on monetary policy cycles
- Plan trades around upcoming Federal Reserve meetings
- Study the impact of surprise rate decisions on price action
Customization Options:
- Adjustable box transparency and outlines
- Customizable label sizes and colors
- Toggle individual dashboards on/off
- Filter specific types of rate decisions
- Configure alert preferences
This indicator is ideal for traders who incorporate fundamental analysis and monetary policy into their trading decisions. The historical data provides context for understanding market reactions to Federal Reserve actions.
Unmitigated MTF High Low - Cave Diving Plot
IntroductionThe Unmitigated MTF High Low -
Cave Diving Plot is a multi-timeframe (MTF) indicator designed for NQ and ES futures traders who want to identify high-probability entry and exit zones based on unmitigated price levels. The "Cave Diving" visualization helps you navigate between support (floor) and resistance (ceiling) zones, while the integrated Strat analysis provides directional context.
Who Is This For?
Futures traders (NQ, ES) trading during ETH and RTH sessions
Scalpers and day traders looking for precise entry/exit levels
Traders using The Strat methodology for directional analysis
Anyone seeking confluence between price action and key levels
Core Concepts
1. Unmitigated Level:
An unmitigated level is a price high or low that has been created but not yet tested (touched) by price. These levels act as magnets - price often returns to test them.Key Properties:
Resistance (Highs): Price has created a high but hasn't revisited it
Support (Lows): Price has created a low but hasn't revisited it
Mitigation: When price touches a level, it becomes "mitigated" and loses strength
2. The Cave Diving MetaphorThink of trading as cave diving between two zones:
┌─────────────────────────────────┐
│ CEILING (Upper Band) │ ← 1st & 2nd Unmitigated Highs
│ 🟥 Resistance Zone │
├─────────────────────────────────┤
│ │
│ THE TUNNEL │ ← Price navigates here
│ (Trading Channel) │
│ │
├─────────────────────────────────┤
│ 🟢 Support Zone │
│ FLOOR (Lower Band) │ ← 1st & 2nd Unmitigated Lows
└─────────────────────────────────┘
Trading Concept:
Ceiling: Formed by the 1st and 2nd most recent unmitigated highs
Floor: Formed by the 1st and 2nd most recent unmitigated lows
Tunnel: The space between ceiling and floor where price operates
Cave Diving: Navigating between these zones for entries and exits
3. Session-Based Age TrackingLevels are tracked by session age:
Session: 6:00 PM to 5:00 PM NY time (23-hour window)
Age 0: Created in the current session (today)
Age 1: Created 1 session ago (yesterday)
Age 2+: Older levels (more significant)
Why Age Matters:
Older unmitigated levels are typically stronger magnets
Fresh levels (Age 0) may be weaker and easier to break
Age 2+ levels often provide high-probability reversal zones
Indicator Components
Visual Elements
1. Colored Bands (Cave Zones)Upper Band (Pink/Maroon - 95% transparency)
Space between 1st and 2nd unmitigated highs
Acts as resistance zone
Price often hesitates or reverses here
Lower Band (Teal - 95% transparency)
Space between 1st and 2nd unmitigated lows
Acts as support zone
Price often finds buyers here
2. Information Table Located in your chosen corner (default: Bottom Right), the table displays:
5 most recent unmitigated highs (top section)
Tunnel row (middle separator)
5 most recent unmitigated lows (bottom section)
Reading the TableTable Structure
┌────────┬──────────┬────────┬───────┐
│ Level │ $ │ Points │ Age │
├────────┼──────────┼────────┼───────┤
│ ↑↑↑↑↑ │ 21,450.25│ +45.30 │ 3 │ ← 5th High (oldest)
│ ↑↑↑↑ │ 21,425.50│ +32.75 │ 2 │ ← 4th High
│ ↑↑↑ │ 21,410.00│ +25.00 │ 1 │ ← 3rd High
│ ↑↑ │ 21,400.75│ +18.50 │ 1 │ ← 2nd High
│ ↑ │ 21,395.25│ +12.00 │ 0 │ ← 1st High (newest)
├────────┼──────────┼────────┼───────┤
│ Tunnel │ 🟢 │ Δ 85.50│ 2U │ ← Current State
├────────┼──────────┼────────┼───────┤
│ ↓ │ 21,310.00│ -15.25 │ 0 │ ← 1st Low (newest)
│ ↓↓ │ 21,295.50│ -22.75 │ 1 │ ← 2nd Low
│ ↓↓↓ │ 21,280.25│ -30.00 │ 1 │ ← 3rd Low
│ ↓↓↓↓ │ 21,265.75│ -38.50 │ 2 │ ← 4th Low
│ ↓↓↓↓↓ │ 21,250.00│ -45.00 │ 3 │ ← 5th Low (oldest)
└────────┴──────────┴────────┴───────┘Column
Breakdown
Column 1: Level (Arrows)
Green arrows (↑): Resistance levels above current price
Red arrows (↓): Support levels below current price
Arrow count: Indicates recency (1 arrow = newest, 5 arrows = oldest)
Why This Matters:
More arrows = older level = stronger magnet for price
Column 2: $ (Price)
Exact price of the unmitigated level
Use this for limit orders and stop placement
Column 3: Points (Distance)
Positive (+) for highs: Points above current price
Negative (-) for lows: Points below current price
Helps gauge proximity to key levels
Trading Application:
If you're +2.50 points from resistance, a reversal may be imminent
If you're -45.00 points from support, you're far from the floor
Column 4: Age (Sessions)
Number of full 6pm-5pm sessions the level has survived
Age 0: Created today (current session)
Age 1+: Created in previous sessions
Significance Ladder:
Age 0: Weak, may break easily
Age 1-2: Medium strength
Age 3+: Strong, high-probability reaction zone
Tunnel Row (Critical Information)│ Tunnel │ 🟢 │ Δ 85.50│ 2U │
└─┬─┘ └─┬─┘ └──┬──┘ └─┬─┘
│ │ │ │
Label Direction Range Strat
1. Tunnel Label: Identifies the separator row
2. Direction Indicator (🟢/🔴)
🟢 Green Circle: Current 15m bar closed bullish (above previous close)
🔴 Red Circle: Current 15m bar closed bearish (below previous close)
3. Δ (Delta/Range)
Distance in points between 1st High and 1st Low
Shows the tunnel width (trading range)
Example: Δ 85.50 = 85.50 points between ceiling and floor
Trading Use:
Wide tunnel (>100 points): More room to trade, consider range strategies
Narrow tunnel (<50 points): Tight range, expect breakout
4. Strat Pattern
1: Inside bar (consolidation)
2U: 2 Up (bullish directional bar)
2D: 2 Down (bearish directional bar)
3: Outside bar (expansion/volatility)
Color Coding:
Green: 2U (bullish)
Red: 2D (bearish)
Yellow: 3 (expansion)
Gray: 1 (inside/neutral)
Bollinger Bands + VWAP + 4-State MACD BackgroundBollinger Bands + VWAP + 4-State MACD Background
An all-in-one technical analysis indicator combining three proven tools with an intelligent momentum-based background visualization system.
📊 FEATURES
Bollinger Bands
Standard Bollinger Bands implementation with full customization options:
Adjustable period length (default: 20)
Multiple moving average types: SMA, EMA, SMMA (RMA), WMA, VWMA
Configurable standard deviation multiplier (default: 2.0)
Visual fill between bands to highlight volatility zones
Offset capability for forward/backward display
Session VWAP (Volume Weighted Average Price)
Automatically resets at the start of each trading session:
Calculates true volume-weighted average price
Resets daily to provide fresh reference levels
Customizable source input (default: HLC3)
Adjustable line appearance (color and width)
Can be toggled on/off as needed
4-State MACD Background System
This is the unique feature of this indicator. The chart background dynamically changes based on MACD momentum analysis, providing instant visual feedback on trend strength and direction:
🟢 Strong Bullish (Bright Green)
MACD line is above signal line
Histogram is growing (momentum accelerating upward)
Indicates strong upward momentum
🟢 Weak Bullish (Pale Green)
MACD line is above signal line
Histogram is shrinking (momentum decelerating)
Early warning signal that uptrend may be weakening
🔴 Strong Bearish (Bright Red)
MACD line is below signal line
Histogram is falling (momentum accelerating downward)
Indicates strong downward momentum
🔴 Weak Bearish (Pale Red)
MACD line is below signal line
Histogram is rising (momentum decelerating)
Early warning signal that downtrend may be weakening
🎯 HOW TO USE
For Trend Trading:
Strong colored backgrounds indicate confirmed momentum in that direction - consider staying with the trend
Weak colored backgrounds signal potential momentum exhaustion - watch for possible reversals
Use VWAP as a dynamic support/resistance level
Bollinger Band breakouts combined with strong MACD backgrounds can confirm trend strength
Price above VWAP + strong bullish background = bullish bias
Price below VWAP + strong bearish background = bearish bias
For Mean Reversion:
Price touching upper/lower Bollinger Bands with weak MACD background may suggest potential reversal
VWAP acts as a mean reversion anchor during range-bound sessions
Background color shifts from strong to weak often precede price direction changes
Look for price return to VWAP when extended beyond bands with weakening momentum
Signal Confirmation:
Strongest signals occur when multiple indicators align:
BB breakout + MACD strong color + price above/below VWAP
Price rejection at BB bands + MACD color weakening
VWAP support/resistance hold + MACD color change
⚙️ SETTINGS
All components are fully customizable through organized input groups:
Bollinger Bands Group:
Period length
Moving average type (SMA/EMA/SMMA/WMA/VWMA)
Source (close/open/high/low/etc.)
Standard deviation multiplier
Offset
VWAP Group:
Toggle show/hide
Source calculation method
Line color
Line width
MACD Group:
Toggle background on/off
Fast length (default: 12)
Slow length (default: 26)
Signal length (default: 9)
Source
Four separate color settings for each momentum state
All colors include transparency controls
💡 EDUCATIONAL VALUE
This indicator teaches important concepts:
How volatility (Bollinger Bands) relates to price movement
The importance of volume-weighted pricing (VWAP)
Momentum analysis through MACD
How combining multiple timeframes and indicators can provide confluence
The difference between trend strength and trend direction
⚠️ IMPORTANT NOTES
This indicator is for educational and informational purposes only
No indicator is perfect - always use proper risk management
Past performance does not guarantee future results
Combine with your own analysis and risk tolerance
Test thoroughly on historical data before live trading
This is not financial advice - use at your own risk
🔧 TECHNICAL DETAILS
Pine Script Version 6
Overlay indicator (displays on price chart)
All calculations use standard, well-documented formulas
Minimal lag due to efficient coding
Compatible with all timeframes and instruments
No repainting - all signals are confirmed on bar close
📝 CHANGELOG
Version 1.0
Initial release
Bollinger Bands with multiple MA types
Session VWAP with daily reset
4-state MACD background system
Full customization options
Developed for traders who want multiple confirmation signals in a clean, organized format without cluttering their charts with separate indicator panels.
Exhaustion IndicatorThe ScalpSQZ indicator is designed to identify four critical market states using volatility structure, momentum behavior, and exhaustion conditions. It enhances scalping precision by visually marking transitions between consolidation, squeeze conditions, and momentum reversals through color-coded candles.
1. Squeeze Conditions (Orange Candles)
Orange candles highlight volatility compression, detected when Bollinger Bands contract inside the Keltner Channels. This structure signals that market volatility is tightening and a significant expansion move is likely to follow. The squeeze represents a pre-breakout environment and serves as the earliest warning of a potential directional shift.
2. Consolidation Conditions (Yellow Candles)
Yellow candles identify phases of low directional momentum. These conditions occur when RSI remains near neutral values, MACD histogram activity is minimal, and the Rate of Change stays muted. This combination indicates that the market is balanced and non-trending, often preceding a volatility spike or a new trend. Consolidation helps traders avoid low-probability entries during indecisive price action.
3. Momentum Exhaustion — Overbought Fade (White Candles)
White candles signal potential top-side exhaustion. This occurs when RSI enters overbought territory while the MACD histogram begins to weaken compared to the previous bar. This condition does not necessarily call a reversal but warns that bullish momentum is deteriorating and upside continuation may be limited. It is particularly useful for identifying trend fatigue and tightening stop-loss placement.
4. Momentum Exhaustion — Oversold Fade (Purple Candles)
Purple candles identify bottom-side exhaustion and appear when RSI reaches oversold levels, MACD momentum begins improving, and the current close shows buyer defense relative to the previous low. This condition suggests selling pressure is diminishing and a potential reversal or relief bounce may be forming. Purple candles serve as an early indication of bearish trend exhaustion.
Color Priority System
The indicator follows a fixed hierarchy to ensure clarity:
Squeeze (orange) has the highest priority, followed by consolidation (yellow). Exhaustion signals (white for tops, purple for bottoms) apply only when no squeeze or consolidation conditions are active. This structure ensures that the most critical market states are always highlighted first.
Purpose and Application
ScalpSQZ helps traders identify optimal environments for breakouts, anticipate trend exhaustion, and avoid low-quality trades during choppy or low-momentum conditions. It is suitable for scalping, day trading, and swing trading across any asset class or timeframe.
FANBLASTERFANBLASTER
Methodology & Rules (Live Trading Version)
Purpose
Catch the exact moment the market flips from chop into a high-conviction trending move using a clean, stacked Fib EMA ribbon + volatility + volume confirmation.
Core Idea
When the 5-8-13-21-34-55 EMA stack suddenly “fans out” in perfect order with significant separation, a real trend is being born. Most retail traders chase late – FANBLASTER alerts you on the very first bar the fan opens.
What Triggers a “FAN BLAST” Alert
Perfect EMA Alignment
Bullish: 5 > 8 > 13 > 21 > 34 > 55
Bearish: 5 < 8 < 13 < 21 < 34 < 55
(Has to flip from NOT aligned on the previous bar → aligned on this bar)
Significant Separation
Distance between EMA 5 and EMA 55 ≥ 1.3 × ATR(14)
(1.3 is the ES sweet spot – filters fake little wiggles)
Trend Strength Confirmation
ADX(14) ≥ 22
(Ensures the move isn’t just noise; ES trends explode while ADX is still climbing)
Volume Conviction
Current volume > 1.4 × 20-period EMA of volume
(Real moves have real participation)
When ALL FOUR conditions are true on the same bar → you get the green or red circle + phone alert.
How to Trade It (Live Rules)
Alert fires → look at the chart immediately
If price is pulling back to the 8 or 13 EMA in the direction of the fan → enter on touch or close above/below
Initial stop: opposite side of the fan (below the 55 for longs, above the 55 for shorts)
Target: 2–4 R minimum, trail with the 21 or 34 once in profit
No alert = stay flat. This is a “trend birth” sniper, not a scalping tool.
Best Instruments & Timeframes (2025)
ES & NQ futures
2 min, 5 min, 15 min (all work with the exact same settings)
Works on MES/MNQ too (same params)
Bottom Line
FANBLASTER sits silent 90 % of the day and only screams when the market is actually about to run 20–100+ points.
One alert = one high-probability trend. That’s it.
Lock it, load it, and let the phone do the hunting.
Good luck, stay disciplined, and stack those points.
— Your edge is now live.
Smart Scalper V7 [Churn Filter]Indicator uses relative volume by time as well as ADX to highlight if volume is high to prevent trading in chop or being faked out.
Dec 1
Release Notes
How to Read the "Traffic Light" 🚦
You asked: "How do I work out if volume is higher or lower?" Look at the White Horizontal Line running across the indicator.
Height (Quantity):
Above the Line: Volume is High (The crowd is here).
Below the Line: Volume is Low (Everyone is at lunch).
Color (Quality):
🟢 Green: High Volume + Strong Trend. (Best for Entries).
🟡 Yellow: High Volume but NO Trend. This is usually a Reversal or a Trap. (Big fight, no winner yet).
🟠 Orange: Trending, but on Low Volume. The price is drifting. Don't trust it—it can snap back easily.
🔴 Red: Low Volume, No Trend. The "Kill Zone." Do not trade.
FluxPulse Momentum [JOAT]FluxPulse Momentum - Adaptive Multi-Component Oscillator
FluxPulse Momentum is a composite oscillator that blends three distinct momentum components into a single, smoothed signal line. Rather than relying on a single indicator, it synthesizes adaptive RSI, normalized rate of change, and a Kaufman-style efficiency ratio to provide a multi-dimensional view of momentum.
What This Indicator Does
Combines RSI, Rate of Change (ROC), and Efficiency Ratio into one weighted composite
Applies EMA smoothing to reduce noise while preserving responsiveness
Displays overbought/oversold zones with optional background highlighting
Generates buy/sell signals when the oscillator crosses its signal line in favorable zones
Provides a real-time dashboard showing current state, momentum direction, and efficiency
Core Components
Adaptive RSI (50% weight) — Standard RSI calculation normalized around the 50 level
Normalized ROC (30% weight) — Rate of change scaled relative to its recent maximum range
Efficiency Ratio (20% weight) — Measures directional movement efficiency, inspired by Kaufman's adaptive concepts
The final composite is smoothed twice using EMA to create both a fast line and a signal line.
Signal Logic
// Buy signal: crossover in lower half
buySignal = ta.crossover(qmo, qmoSmooth) and qmo < 50
// Sell signal: crossunder in upper half
sellSignal = ta.crossunder(qmo, qmoSmooth) and qmo > 50
Signals are generated only when the oscillator is positioned favorably—buy signals occur below the 50 midline, sell signals occur above it.
Dashboard Information
The on-chart table displays:
Current oscillator value with gradient coloring
Momentum state (Overbought, Oversold, Bullish, Bearish, Neutral)
Momentum direction and acceleration
Efficiency ratio percentage
Active signal status
Inputs Overview
RSI Length — Period for RSI calculation (default: 14)
ROC Length — Period for rate of change (default: 10)
Smoothing Length — EMA smoothing period (default: 3)
Overbought/Oversold Levels — Threshold levels for zone detection
Await Bar Confirmation — Wait for bar close before triggering alerts
How to Use It
Watch for crossovers between the main line and signal line
Use overbought/oversold zones to identify potential reversal areas
Monitor the histogram for momentum acceleration or deceleration
Combine with price action analysis for confirmation
Alerts
Buy Signal — Bullish crossover in the lower zone
Sell Signal — Bearish crossunder in the upper zone
Overbought/Oversold Crosses — Level threshold crossings
This indicator is provided for educational purposes. It does not constitute financial advice. Always conduct your own analysis before making trading decisions.
— Made with passion by officialjackofalltrades
RTH Yesterday & Today Premarket Levels## **RTH Yesterday & Today Premarket Levels**
This indicator plots the most commonly used **institutional reference levels** for intraday trading:
* **Yesterday’s Regular Trading Hours (RTH) High**
* **Yesterday’s Regular Trading Hours (RTH) Low**
* **Yesterday’s Regular Trading Hours (RTH) Close**
* **Today’s Premarket High**
* **Today’s Premarket Low**
All levels are drawn as **straight horizontal lines with labels** and remain fixed throughout the current session.
---
### **How Levels Are Calculated**
**Yesterday’s Levels (RTH only)**
* Computed strictly from **Regular Trading Hours (09:30–16:00 exchange time)**.
* Extended-hours data is **excluded** to avoid distortion.
* Captures true institutional highs, lows, and closing price.
**Today’s Premarket Levels (PM only)**
* Computed strictly from **today’s premarket session (04:00–09:29)**.
* Resets daily and does not include prior days.
* Levels finalize once premarket ends and extend across the regular session.
---
### **Key Features**
* Exactly **5 fixed reference levels**, no historical clutter
* **Non-repainting**: levels do not change once established
* **No zig-zags or plots**; only clean horizontal lines
* Customizable **line colors and thickness**
* Labels clearly identify each level:
* Y High
* Y Low
* Y Close
* PM High
* PM Low
---
### **Best Use Cases**
* Intraday trading (1m, 5m, 15m)
* VWAP and momentum strategies
* Gap-and-go or fade setups
* Support/resistance validation
* Options trading and scalping
These levels often act as **decision points, liquidity magnets, and rejection zones** during the regular session.
---
### **Required Settings**
* Use **intraday timeframes**
* Enable **Extended Hours** in TradingView’s symbol settings
* Designed for **US equities** using exchange time
---
### **Trader Notes**
This script is intentionally minimalist. It shows only the **most relevant prior-day and premarket price references** used by professional traders, avoiding noise from multi-day indicators or derived averages.
Fair Value Gap Signals [Kodexius]Fair Value Gap Signals is an advanced market structure tool that automatically detects and tracks Fair Value Gaps (FVGs), evaluates the quality of each gap, and highlights high value reaction zones with visual metrics and signal markers.
The script is designed for traders who focus on liquidity concepts, order flow and mean reversion. It goes beyond basic FVG plotting by continuously monitoring how price interacts with each gap and by quantifying three key aspects of each zone:
-Entry velocity inside the gap
-Volume absorption during tests
-Structural integrity and depth of penetration
The result is a dynamic, information rich visualization of which gaps are being respected, which are being absorbed, and where potential reversals or continuations are most likely to occur.
All visual elements are configurable, including the maximum number of visible gaps per direction, mitigation method (close or wick) and an ATR based filter to ignore insignificant gaps in low volatility environments.
🔹 Features
🔸 Automated Fair Value Gap Detection
The script detects both bullish and bearish FVGs based on classic three candle logic:
Bullish FVG: current low is strictly above the high from two bars ago
Bearish FVG: current high is strictly below the low from two bars ago
🔸 ATR Based Gap Filter
To avoid clutter and low quality signals, the script can ignore very small gaps using an ATR based filter.
🔸Per Gap State Machine and Lifecycle
Each gap is tracked with an internal status:
Fresh: gap has just formed and has not been tested
Testing: price is currently trading inside the gap
Tested: gap was tested and left, waiting for a potential new test
Rejected: price entered the gap and then rejected away from it
Filled: gap is considered fully mitigated and no longer active
This state machine allows the script to distinguish between simple touches, multiple tests and meaningful reversals, and to trigger different alerts accordingly.
🔸 Visual Ranking of Gaps by Metrics
For each active gap, three additional horizontal rank bars are drawn on top of the gap area:
Rank 1 (Vel): maximum entry velocity inside the gap
Rank 2 (Vol): relative test volume compared to average volume
Rank 3 (Dpt): remaining safety of the gap based on maximum penetration depth
These rank bars extend horizontally from the creation bar, and their length is a visual score between 0 and 1, scaled to the age of the gap. Longer bars represent stronger or more favorable conditions.
🔸Signals and Rejection Markers
When a gap shows signs of rejection (price enters the gap and then closes away from it with sufficient activity), the script can print a signal label at the reaction point. These markers summarize the internal metrics of the gap using a tooltip:
-Velocity percentage
-Volume percentage
-Safety score
-Number of tests
🔸 Flexible Mitigation Logic (Close or Wick)
You can choose how mitigation is defined via the Mitigation Method input:
Close: the gap is considered filled only when the closing price crosses the gap boundary
Wick: a full fill is detected as soon as any wick crosses the gap boundary
🔸 Alert Conditions
-New FVG formed
-Price entering a gap (testing)
-Gap fully filled and invalidated
-Rejection signal generated
🔹Calculations
This section summarizes the main calculations used under the hood. Only the core logic is covered.
1. ATR Filter and Gap Size
The script uses a configurable ATR length to filter out small gaps. First the ATR is computed:
float atrVal = ta.atr(atrLength)
Gap size for both directions is then measured:
float gapSizeBull = low - high
float gapSizeBear = low - high
If useAtrFilter is enabled, gaps smaller than atrVal are ignored. This ties the minimum gap size to the current volatility regime.
2. Fair Value Gap Detection
The basic FVG conditions use a three bar structure:
bool fvgBull = low > high
bool fvgBear = high < low
For bullish gaps the script stores:
-top as low of the current bar
-bottom as high
For bearish gaps:
-top as high of the current bar
-bottom as low
This defines the price range that is considered the imbalance area.
3. Depth and Safety Score
Depth measures how far price has penetrated into the gap since its creation. For each bar, the script computes a currentDepth and updates the maximum depth:
float currentDepth = 0.0
if g.isBullish
if l < g.top
currentDepth := g.top - l
else
if h > g.bottom
currentDepth := h - g.bottom
if currentDepth > g.maxDepth
g.maxDepth := currentDepth
The safety score expresses how much of the gap remains intact:
float depthRatio = g.maxDepth / gapSize
float safetyScore = math.max(0.0, 1.0 - depthRatio)
safetyScore near 1: gap is mostly untouched
safetyScore near 0: gap is mostly or fully filled
4. Velocity Metric
Velocity captures how aggressively price moves inside the gap. It is based on the body to range ratio of each bar that trades within the gap and rewards bars that move in the same direction as the gap:
float barRange = h - l
float bodyRatio = math.abs(close - open) / barRange
float directionBonus = 0.0
if g.isBullish and close > open
directionBonus := 0.2
else if not g.isBullish and close < open
directionBonus := 0.2
float currentVelocity = math.min(bodyRatio + directionBonus, 1.0)
The gap keeps track of the strongest observed value:
if currentVelocity > g.maxVelocity
g.maxVelocity := currentVelocity
This maximum is later used as velScore when building the velocity rank bar.
5. Volume Accumulation and Volume Score
While price is trading inside a gap, the script accumulates the traded volume:
if isInside
g.testVolume += volume
It also keeps track of the number of tests and the volume at the start of the first test:
if g.status == "Fresh"
g.status := "Testing"
g.testCount := 1
g.testStartVolume := volume
An average volume is computed using a 20 period SMA:
float volAvg = ta.sma(volume, 20)
The expected volume is approximated as:
float expectedVol = volAvg * math.max(1, (bar_index - g.index) / 2)
The volume score is then:
float volScore = math.min(g.testVolume / expectedVol, 1.0)
This produces a normalized 0 to 1 metric that shows whether the gap has attracted more or less volume than expected over its lifetime.
6. Rank Bar Scaling
All three scores are projected visually along the time axis as horizontal bars. The script uses the age of the gap in bars as the maximum width:
float maxWidth = math.max(bar_index - g.index, 1)
Then each metric is mapped to a bar length:
int len1 = int(math.max(1, maxWidth * velScore))
g.rankBox1.set_right(g.index + len1)
int len2 = int(math.max(1, maxWidth * volScore))
g.rankBox2.set_right(g.index + len2)
int len3 = int(math.max(1, maxWidth * safetyScore))
g.rankBox3.set_right(g.index + len3)
This creates an intuitive visual representation where stronger metrics produce longer rank bars, making it easy to quickly compare the relative quality of multiple FVGs on the chart.
Linechart + Wicks - by SupersonicFXThis is a simple indicator that shows the highs and lows (wicks) on the linechart.
You can vary the colors.
Nothing more to say.
Hope some of you find it useful.
Intermarket Swing Projection [LuxAlgo]The Intermarket Swing Projection allows traders to plot price movement swings from any user-selected asset directly onto the chart in the form of zigzags and/or horizontal support and resistance levels.
This tool rescale the external asset price on the user chart, enabling traders to make direct comparisons.
It answers the question of how different the price behavior is between two assets, accounting for each asset's volatility.
🔶 USAGE
This tool is based on swing detection of two different assets: the chart and a user-selected asset. It allows traders to compare two assets on an equal footing while accounting for volatility and price behavior.
Traders can customize the detection by selecting a custom ticker, timeframe, the number of swings and length for swing detection. This makes the tool a Swiss army knife for asset comparison.
As we can see in the image below, the Show Last, Pivot Length, and Spread parameters are key to defining the final output of the tool.
"Show Last" defines how many pivots are displayed. "Pivot Length" is used for pivot detection; a larger value will detect larger market structures. "Spread" defines how far apart the horizontal levels will be from their original location in terms of volatility.
🔹 Comparing different assets
This image shows the Nasdaq 100 futures contract compared to four other futures contracts: S&P 500, gold, bitcoin, and euro/U.S. dollar.
Plotting all of these assets in Nasdaq 100 terms makes it easy to compare and analyze price behaviors and identify key levels.
In the top left chart, we have NQ vs. ES. It's no surprise that they are practically an exact match; a large portion of the S&P 500 is technology.
In the top right chart, NQ vs. GC, we see totally different behaviors. We can clearly see the summer consolidation in gold and the resumption of the uptrend, which took gold above 29,200 NQ points, up from 21,200.
In the bottom right chart, we see bitcoin making new highs, way above the Nasdaq in May, July, and October. However, the last high was way below the Nasdaq prices on October 27—the first lower high in a while. Sellers are pushing down.
Finally, the bottom left chart is NQ vs. 6E. We can see large volatility in the uptrend since February, with NQ unable to catch up until now. The last swing low was almost a match, and 6E is in a range.
As we can see, this tool allows us to perform intermarket analysis properly by accounting for each asset's volatility and price behavior. Then, we plot them on the same scale on equal terms, which makes performing this kind of analysis easy.
As we can see in the chart above, the assets are the same as in the previous image, but the timeframe is 1H with different settings.
Note the horizontal levels acting as support and resistance, as well as how NQ prices react to the zones marked with white circles. These levels are derived from custom assets selected by the user.
🔹 Displaying Elements
Zig-zag allows traders to clearly see the path that the selected asset's price took, as well as its turning points.
Horizontal levels are displayed from those turning points to the present and can be used as support or resistance. Traders can adjust the spread parameter in the settings panel to expand or contract those levels' volatility.
There are two color modes for the levels: average and pivots. In the first mode, green is used for levels below the average and red for levels above the average. The second uses green for swing lows and red for swing highs.
The backpaint feature is enabled by default and allows the swings to be displayed in the correct location. With this feature disabled, the swings will be displayed in the current location when a new swing is detected.
🔶 DETAILS
On a more technical note, the rescaling is formed by calculating three main elements from all the swings detected on the custom and chart assets:
The chart asset's average of all swing points
The chart asset's standard deviation of all swing points
The custom asset's z-score for each swing point
Then, the re-scaled swing point is calculated as the average plus the z-score multiplied by the standard deviation. This makes it possible to plot AAPL swings on an NQ chart, for example.
Thanks to re-scaling, we can directly compare the price behavior of two assets with different price ranges and volatility on the same chart.
🔶 SETTINGS
🔹 Trendlines
Ticker: Select the custom ticker.
Timeframe: Select a custom timeframe.
Show Last: Select how many swing points to display.
Pivot Length: Select the size for swing point detection.
Spread: Volatility multiplier for horizontal levels. Larger values mean the levels are farther apart.
Backpaint: Enable or disable the backpaint feature. When enabled, the drawings will be displayed where they were detected. When disabled, the drawings will be displayed at the moment of detection.
🔹 Style
Show ZigZag: Enable or disable the ZigZag display and choose a line style.
Show Levels: Enable or disable the levels display and choose a line style.
Color Mode: Choose between Average Mode, which colors all levels below the average bullish and all levels above bearish, and Pivot Mode, which colors swing highs bearish and swing lows bullish.
Bullish: Select a bullish color.
Bearish: Select a bearish color.
ZigZag: Select the ZigZag color.






















