JPX Stop High/Low Limits by Koji- Japanese Description :
日本株における値幅制限のスクリプト by Koji
X : Koji26650263 Youtube : www.youtube.com
【背景】
①日本株におけるストップ安・ストップ高の値幅制限について
価格によって値幅が変動するために、フル板で見れる場合はよいですが
トレード時に覚えたり計算する必要があります
②またチャートを分析する際に、過去のストップ安の日や連続ストップしているのか
など、チャートを拡大しないとわかりづらい
【本スクリプトのメリット】
①チャート上に視覚的に表示することで瞬間的に認知できることとし
ストップを狙っているか、などを板を見ないでチャートで判断できます
②過去のストップの位置をわかりやすく表示でき、過去の値動きを瞬間的に認知できます
【おすすめ】
チャートはローソク足や出来高など、極力シンプルにすべきなために
当スクリプトを導入はした上で、普段は表示オフ(目のマークをオフ)にしておくと
必要な時にすぐに見れるがチャートは普段見やすい、という使い方がおすすめです
- English Description :
Japanese Stock Price Limits (Stop High/Low) Indicator by Koji
X: Koji26650263 YouTube: www.youtube.com
【Background】
1. About Daily Price Limits (Stop High/Stop Low) in Japanese Stocks The daily price limit range for Japanese stocks varies depending on the stock price itself. Unless you have access to "Full Board" (Level 2) data, you often need to memorize these ranges or calculate them manually during trading, which can be cumbersome.
2. Analyzing Historical Volatility When analyzing charts, it can be difficult to identify past "Stop Low" or "Stop High" days—or to see if a stock hit consecutive stops—without zooming in significantly on the chart.
【Benefits of this Script】
1. Instant Visual Recognition By displaying price limits directly on the chart, you can instantly recognize the day's upper and lower limits. This allows you to judge whether the price is aiming for a "Stop High" or "Stop Low" without needing to check the order book (board).
2. Historical Context Past stop levels are clearly marked, allowing you to instantly grasp historical price movements and volatility at a glance.
【Recommended Usage】
To keep your chart analysis effective, it is best to keep the screen simple (displaying primarily candlesticks and volume).
My recommendation: Add this script to your chart, but keep the visibility toggled OFF (click the "eye" icon to hide it) during normal use. Toggle it ON only when you specifically need to check price limits. This ensures your chart remains clean and easy to read for daily analysis.
[i]price
Adjustable Price Line Size with Countdown Timer (Larger)Adjustable Size and Color for the Price Line and Timer so I Can See it Better From Across the Room...
Adjustments include: Price Line Width Size and Color (Small, Normal, Large, Huge)
Adjustment for: Solid Line, Dashed or Dotted Line
Countdown Timer: ON/OFF
I Can Now See The Price and Price Line From Across the Room!!
WYCKOFF_SHARED_LIBLibrary "WYCKOFF_SHARED_LIB"
EPS()
nz0(x)
Parameters:
x (float)
safe_div(num, den)
Parameters:
num (float)
den (float)
safe_div_eps(num, den)
Parameters:
num (float)
den (float)
safe_ratio(a, b)
Parameters:
a (float)
b (float)
clamp(x, lo, hi)
Parameters:
x (float)
lo (float)
hi (float)
wave_dir(startPx, endPx)
Parameters:
startPx (float)
endPx (float)
wave_amp(startPx, endPx)
Parameters:
startPx (float)
endPx (float)
wave_amp_atr(amp, atr)
Parameters:
amp (float)
atr (float)
wave_speed(ampATR, lenBars)
Parameters:
ampATR (float)
lenBars (int)
wave_eff(amp, path)
Parameters:
amp (float)
path (float)
build_wave_metrics(dir, lenBars, startPx, endPx, ampATR, speed, eff, volRel, epr)
Parameters:
dir (int)
lenBars (int)
startPx (float)
endPx (float)
ampATR (float)
speed (float)
eff (float)
volRel (float)
epr (float)
compare_waves(w0, w1)
Parameters:
w0 (WaveMetrics)
w1 (WaveMetrics)
strengthening_same_dir(c)
Parameters:
c (WaveCompare)
weakening_same_dir(c)
Parameters:
c (WaveCompare)
evr_by_waves(volSum0, ampATR0, volSum1, ampATR1)
Parameters:
volSum0 (float)
ampATR0 (float)
volSum1 (float)
ampATR1 (float)
WaveMetrics
Fields:
dir (series int)
lenBars (series int)
startPx (series float)
endPx (series float)
amp (series float)
ampATR (series float)
speed (series float)
eff (series float)
volRel (series float)
effortPerResult (series float)
WaveCompare
Fields:
amp_ratio (series float)
speed_ratio (series float)
eff_ratio (series float)
volRel_ratio (series float)
epr_ratio (series float)
EVR
Fields:
state (series int)
Sweep + FVG (Session + Alerts)Sweep + FVG
This indicator marks liquidity sweeps and the fair value gaps (FVGs) that form after them.
A buy-side sweep happens when price wicks above a recent high and closes back below.
A sell-side sweep happens when price wicks below a recent low and closes back above.
After a sweep, the script looks for a 3-candle fair value gap and draws it on the chart.
Features
Optional session filter (ex: NY or London)
FVG boxes do not extend forever
Choose what happens when an FVG is filled:
keep it
fade it
delete it
Alerts for sweeps and FVGs
How to use
Use this as a confluence tool, not a buy/sell signal.
Best used with market structure, higher-timeframe bias, and proper risk management.
Works well on intraday timeframes for forex, indices, and crypto.
Rolling Volume Structure: HVN & SentimentTitle:
Rolling Volume Structure: HVN & Sentiment
Description:
This indicator visualizes the distribution of volume over price levels for a user-defined rolling period. It is designed to identify structural market nodes (HVN/LVN) and correlate them with Pivot Points to filter out market noise.
NOTE: This script utilizes a mathematical array binning algorithm to calculate the profile efficiently on the chart timeframe, avoiding the runtime timeouts often associated with standard iterative volume profiles.
How it works (Technical Methodology)
Binning Algorithm: The script calculates the price range (Highest High - Lowest Low) of the lookback period and divides it into a fixed number of vertical bins defined by the Resolution input.
Volume Allocation: It iterates through historical bars once. The volume of each bar is assigned to the corresponding price bin based on the bar's closing price.
Sentiment Approximation: Since tick-level Bid/Ask data is not available for historical bars in standard Pine Script strategies, this indicator estimates directional volume based on candle polarity:
If Close > Open: Volume is categorized as "Up Volume" (Buying Sentiment).
If Close < Open: Volume is categorized as "Down Volume" (Selling Sentiment).
Disclaimer: This is a standard approximation for structural analysis and does not represent true tick-data delta.
Why this Combination? (Originality & Synergy)
This script addresses the problem of validating structural levels. Traders often use Pivots and Volume Profiles separately. This script combines them programmatically to provide context:
Pivot Confluence: A Pivot Point is only plotted if it aligns with significant volume structure.
HVN Validation: A pivot occurring within a High Volume Node (HVN) suggests a high-liquidity reversal zone, whereas a pivot in a Low Volume Node (LVN) may indicate a liquidity void or a "weak" high/low.
The Dashboard summarizes these metrics (Position relative to Value Area, Net Sentiment, and Trend), removing the need for multiple separate indicators.
Educational Use for Beginners
If you are new to Volume Profile, think of the market structure in these simple terms:
Value Area (VA): This is the "Fair Price" zone where 70% of trading happened. If price is inside here, the market is balanced. If price breaks out, it may be starting a trend.
HVN (High Volume Nodes - Colored Boxes): Think of these as "Traffic Jams". Price often slows down, bounces, or gets stuck here because there are many orders. They act as Support or Resistance.
LVN (Low Volume Nodes - Gray Strips): Think of these as "Empty Highways". Because there is little volume here, price tends to move through these zones very quickly to get to the next HVN.
Features
HVN (High Volume Nodes): Colored boxes highlighting areas of high accumulation.
LVN (Low Volume Nodes): Gray strips highlighting gaps or acceleration zones.
Value Area (VA): Displays the VAH, VAL, and PoC (Point of Control).
Volume-Filtered Pivots: Plots pivots only when supported by the profile structure.
Sentiment Coloring: The profile bins are colored based on the net bullish/bearish candle volume.
Settings
Rolling Period: The lookback window size (default 150 bars).
Resolution: Precision of the profile bins (higher = more detail, lower = smoother).
HVN Thresholds: Percentage of PoC volume required to identify a node.
Global Text Size: Adjusts labels and dashboard for 4K or standard screens.
Credits: The core binning logic is adapted from generic open-source array management concepts for custom volume profiles.
ICT CISD+FVG+OBThis script is a high-performance ICT suite designed for traders who want a professional, "noise-free" chart. It identifies core institutional patterns—Order Blocks, Fair Value Gaps, and Changes in State of Delivery (CISD)—across multiple timeframes.
The script features a proprietary Proximity Cleanup Engine that automatically deletes old or broken levels, keeping your workspace focused only on price action that is currently tradeable. It strictly follows directional delivery rules for CISD and includes a 50-candle "freshness" limit to ensure you never have to manually clear old data from your past bars.
Core Features
Intelligent CISD: Only triggers Bullish CISD on green candles and Bearish CISD on red candles.
Proximity Filter: Automatically wipes away any levels that are "miles away" from the current price.
Clean Workspace: Removes broken session highs/lows and mitigated zones instantly.
Full Customization: Toggle visibility and colors for every component via the settings menu.
Broadening Formation Structure Review ToolThis script provides an educational, checklist-based framework for studying Broadening Formations together with basic Strat-style reversal behavior and higher-timeframe direction. It is designed to show multiple structural conditions in one place so users can observe how they interact. It does not execute trades, generate signals, or provide financial advice.
What makes this script original is the integration of four components into a single logical framework:
• dynamic tracking of Broadening Formation high/low levels
• proximity evaluation relative to those levels
• classification of simple bar reversal behavior
• higher-timeframe open–close continuity checks
Instead of using these concepts as separate tools, the script combines them into a single checklist so users can see when multiple conditions occur at the same time.
Broadening Formation levels may be user-defined or automatically derived using:
• unlimited dynamic expansion
• range-limited dynamic expansion
• swing-pivot detection
• manual input mode
Users may also optionally lock levels once a structure is identified.
Proximity to BF levels can be measured in several ways, including percentage, ticks, points, dollars, ATR multiples, or expected-move multiples. The script can also detect when price takes out BF highs or lows.
The script classifies basic Strat-style price behavior, including:
• two-up / two-down moves
• outside bars
• failed 2U/2D reversals
• 2D→2U and 2U→2D reversals
A selectable higher timeframe (such as 60, 240, D, W, or M) is used to evaluate direction by comparing the higher-timeframe open and close.
The on-chart table summarizes:
• current BF High and BF Low levels
• proximity status relative to those levels
• whether BF highs or lows have been taken out
• reversal classification results
• higher-timeframe direction
• theoretical risk distance and 2R/3R projections
Optional alerts can notify when three-condition or four-condition checklist alignment occurs, based only on the logical rules visible in the script. Optional chart lines for BF levels may also be displayed.
Transparency and behavior notes
• swing pivots repaint until confirmed
• higher-timeframe direction is only final at bar close
• dynamically derived BF levels may update as price forms new extremes
This script is intended purely for market-structure study and education. It does not guarantee performance, predict outcomes, or recommend trades.
First Opening Price of the YearOverview
This indicator identifies and plots the opening price of the first trading session of the calendar year. The "Yearly Open" is a significant psychological level for traders and institutions, often serving as a major pivot point for the entire year's trend.
How it Works
The script utilizes Pine Script v5's persistent variables to track the year change.
Detection: It compares the current bar's year (year) with the previous bar's year (year ).
Storage: When a discrepancy is found (indicating a new year has started), the script captures the open price of that specific bar.
Persistence: Using the var keyword, this price is stored in memory and carried forward for every subsequent bar of the year without being recalculated.
Visualization: The price is plotted as a series of blue crosses (style_cross) to clearly mark the level on the chart.
Chart Analysis & Examples
The following examples demonstrate how this simple level dictates market structure across different assets:
Historical Pivot Points (S&P 500):
This chart demonstrates how the Yearly Open acts as a critical pivot. Notice in 2022 how price struggled around the open before dropping, while in 2023 and 2024, the yearly open provided a solid base for the subsequent rallies.
Trend Confirmation (Bitcoin):
In strong trending markets, the Yearly Open serves as a trailing support. As seen in this Bitcoin example, price maintaining its position above the blue line confirms a sustained bullish bias for the year, acting as a "floor" for the trend.
Market Structure & Bias (Gold):
This example highlights the "Line in the Sand" concept. The indicator clearly marks the starting point of the year, allowing traders to instantly gauge if the asset is net positive or negative year-to-date. It filters out the noise and focuses on the macro direction.
How to Use
Traders can use this indicator to determine the higher-timeframe bias:
Bullish Bias: When the current price is trading above the blue crosses, the market is considered to be positive relative to the start of the year.
Bearish Bias: When the current price is trading below the blue crosses, the market is negative relative to the start of the year.
Settings
This script is "plug and play" and requires no manual input adjustments. It automatically detects the timeframe and year changes based on the chart data provided.
Disclaimer
This tool is for informational purposes only and DOES NOT constitute financial advice. Always manage your risk appropriately.
Adaptive Trend Envelope [BackQuant]Adaptive Trend Envelope
Overview
Adaptive Trend Envelope is a volatility-aware trend-following overlay designed to stay responsive in fast markets while remaining stable during slower conditions. It builds a dynamic trend spine from two exponential moving averages and surrounds it with an adaptive envelope whose width expands and contracts based on realized return volatility. The result is a clean, self-adjusting trend structure that reacts to market conditions instead of relying on fixed parameters.
This indicator is built to answer three core questions directly on the chart:
Is the market trending or neutral?
If trending, in which direction is the dominant pressure?
Where is the dynamic trend boundary that price should respect?
Core trend spine
At the heart of the indicator is a blended trend spine:
A fast EMA captures short-term responsiveness.
A slow EMA captures structural direction.
A volatility-based blend weight dynamically shifts influence between the two.
When short-term volatility is low relative to long-term volatility, the fast EMA has more influence, keeping the trend responsive. When volatility rises, the blend shifts toward the slow EMA, reducing noise and preventing overreaction. This blended output is then smoothed again to form the final trend spine, which acts as the structural backbone of the system.
Volatility-adaptive envelope
The envelope surrounding the trend spine is not based on ATR or fixed percentages. Instead, it is derived from:
Log returns of price.
An exponentially weighted variance estimate.
A configurable multiplier that scales envelope width.
This creates bands that automatically widen during volatile expansions and tighten during compression. The envelope therefore reflects the true statistical behavior of price rather than an arbitrary distance.
Inner hysteresis band
Inside the main envelope, an inner band is constructed using a hysteresis fraction. This inner zone is used to stabilize regime transitions:
It prevents rapid flipping between bullish and bearish states.
It allows trends to persist unless price meaningfully invalidates them.
It reduces whipsaws in sideways conditions.
Trend regime logic
The indicator operates with three regime states:
Bullish
Bearish
Neutral
Regime changes are confirmed using a configurable number of bars outside the adaptive envelope:
A bullish regime is confirmed when price closes above the upper envelope for the required number of bars.
A bearish regime is confirmed when price closes below the lower envelope for the required number of bars.
A trend exits back to neutral when price reverts through the trend spine.
This structure ensures that trends are confirmed by sustained pressure rather than single-bar spikes.
Active trend line
Once a regime is active, the indicator plots a single dominant trend line:
In a bullish regime, the lower envelope becomes the active trend support.
In a bearish regime, the upper envelope becomes the active trend resistance.
In neutral conditions, price itself is used as a placeholder.
This creates a simple, actionable visual reference for trend-following decisions.
Directional energy visualization
The indicator uses layered fills to visualize directional pressure:
Bullish energy fills appear when price holds above the active trend line.
Bearish energy fills appear when price holds below the active trend line.
Opacity gradients communicate strength and persistence rather than binary states.
A subtle “rim” effect is added using ATR-based offsets to give depth and reinforce the active side of the trend without cluttering the chart.
Signals and trend starts
Discrete signals are generated only when a new trend regime begins:
Buy signals appear at the first confirmed transition into a bullish regime.
Sell signals appear at the first confirmed transition into a bearish regime.
Signals are intentionally sparse. They are designed to mark regime shifts, not every pullback or continuation, making them suitable for higher-quality trend entries rather than frequent trading.
Candle coloring
Optional candle coloring reinforces regime context:
Bullish regimes tint candles toward the bullish color.
Bearish regimes tint candles toward the bearish color.
Neutral states remain visually muted.
This allows the chart to communicate trend state even when the envelope itself is partially hidden or de-emphasized.
Alerts
Built-in alerts are provided for key trend events:
Bull trend start.
Bear trend start.
Transition from trend to neutral.
Price crossing the trend spine.
These alerts support hands-off trend monitoring across multiple instruments and timeframes.
How to use it for trend following
Trend identification
Only trade in the direction of the active regime.
Ignore counter-trend signals during confirmed trends.
Entry alignment
Use the first regime signal as a structural entry.
Use pullbacks toward the active trend line as continuation opportunities.
Trend management
As long as price respects the active envelope boundary, the trend remains valid.
A move back through the spine signals loss of trend structure.
Market filtering
Periods where the indicator remains neutral highlight non-trending environments.
This helps avoid forcing trades during chop or compression.
Adaptive Trend Envelope is designed to behave like a living trend structure. Instead of forcing price into static rules, it adapts to volatility, confirms direction through sustained pressure, and presents trend information in a clean, readable form that supports disciplined trend-following workflows.
Adaptive Strength Overlay (MTF) [BackQuant]Adaptive Strength Overlay (MTF)
A multi-timeframe RSI strength visualizer that projects oscillator “pressure” directly onto price using adaptive gradient fills between percent bands. Built to make strength, exhaustion, and regime context readable at a glance, without needing to stare at a separate oscillator panel.
Mean-Reversion mode example
What this indicator does
This indicator converts RSI strength into a chart overlay that reacts to momentum and extremes, then visualizes it as colored “pressure zones” around price.
Instead of plotting RSI in a sub-window, it:
Builds 1 to 3 symmetric percent bands above and below price.
Computes RSI strength on up to 3 different timeframes (MTF).
Smooths RSI with your selected moving average type.
Maps RSI values into discrete transparency “buckets”.
Fills between the bands with a gradient whose opacity reflects strength or exhaustion.
Displays a compact RSI table for all enabled timeframes.
Provides alert conditions for extremes and midline shifts on each timeframe.
The result is an overlay that looks like a dynamic envelope. When strength rises, the envelope “lights up” in the direction of the move. When strength becomes stretched, the outer zones become visually prominent.
Core idea: “Strength as an overlay”
RSI is normally interpreted in a separate oscillator panel. That makes context-switching slow:
You check price action.
You look down at RSI.
You mentally translate RSI into risk or trend bias.
This script removes that translation step by projecting strength directly onto the price area, using band fills as a visual language:
More visible fill = stronger strength or more extreme condition (depending on mode).
Less visible fill = weak strength or neutral state.
Two operating modes
1) Trend mode
Trend mode emphasizes strength aligned with direction:
When RSI is strong on the upside, upper bands become more visible.
When RSI is strong on the downside, lower bands become more visible.
Neutral RSI fades, so the chart de-clutters during chop.
Use Trend mode when:
You want a clean trend-following overlay.
You want to quickly see which timeframe(s) are powering the move.
You want to filter entries to moments when strength confirms direction.
2) Mean-Reversion mode
Mean-Reversion mode flips the emphasis to highlight exhaustion against the move :
Upper extremes become a “potential exhaustion” cue.
Lower extremes become a “potential exhaustion” cue.
The overlay is tuned to make stretched conditions obvious.
This is not an automatic “short overbought / long oversold” system. It is a visualization mode that makes “extended” conditions stand out faster, especially when multiple timeframes align.
How the bands work (Percent Bands)
The indicator constructs up to three symmetric envelopes around price:
Band 1: percent1 scaled by scale
Band 2: percent2 scaled by scale (optional)
Band 3: percent3 scaled by scale (optional)
The percent bands are simple deviations from the selected price source:
Upper = price * (1 + (percent * scaling)/100)
Lower = price * (1 - (percent * scaling)/100)
Why this matters:
It anchors “strength visualization” to meaningful price distance.
It makes the overlay comparable across assets because it’s percent-based.
It gives you a consistent spatial frame for reading momentum versus extension.
Multi-timeframe engine (MTF)
The script runs the same strength calculation on up to three timeframes:
Timeframe 1 uses the chart timeframe by default (empty string input).
Timeframe 2 is optional and defaults to Daily.
Timeframe 3 is optional and defaults to Weekly.
Each timeframe has:
Its own RSI period (len, len2, len3).
Its own smoothing length (slen, slen2, slen3).
The same smoothing type selection (EMA, HMA, etc).
This creates a layered view:
TF1 often reflects tactical pressure (entries/exits).
TF2 reflects structural pressure (swing context).
TF3 reflects macro bias (regime context).
When multiple timeframes agree, the fills stack and the overlay becomes visually louder. When they disagree, the overlay looks mixed or muted, which is exactly the point.
Smoothing options (why so many)
Raw RSI can be noisy. This script lets you smooth RSI with multiple MA types, which changes how “responsive” the overlay feels:
EMA/RMA smooth without lagging as hard as SMA.
HMA responds faster but can be twitchy.
LINREG can feel more “structural”.
ALMA and T3/TEMA provide heavier smoothing profiles with different lag characteristics.
This isn’t cosmetic. Your smoothing choice affects:
How early the overlay “lights up” in Trend mode.
How long extremes remain highlighted in Mean-Reversion mode.
How often fills flicker in chop.
Strength mapping (the transparency buckets)
Instead of mapping RSI to a continuous color scale, the script uses a discrete transparency ladder. That creates a clean, readable visual that avoids constant flickering.
The logic assigns two transparency values per timeframe:
Upper-side transparency responds to lower RSI zones (weak upside strength).
Lower-side transparency responds to higher RSI zones (strong upside strength).
Then the script uses those transparencies differently depending on mode:
Trend mode shows “strength aligned with direction”.
Mean-Reversion mode swaps the emphasis so “extremes” stand out as potential stretch.
You can think of it as:
Trend mode highlights continuation strength.
Mean-Reversion mode highlights potential exhaustion.
Fill stacking (how the overlay is built)
The overlay uses layered fills:
Fill from price to Band 1
Fill from Band 1 to Band 2 (if enabled)
Fill from Band 2 to Band 3 (if enabled)
Upper side uses the negative color (typically red) and lower side uses the positive color (typically green), because upper bands represent “above price” space and lower bands represent “below price” space. The intensity is controlled by the computed transparency per timeframe and selected mode.
Important behavior:
Disabling Band 2 or Band 3 can change how the stacked fills look, because you are removing fill segments.
If you want a clean look, run only Band 1.
If you want a “regime heat” look, run Bands 1–3 with higher scaling.
Table (MTF RSI dashboard)
A compact table prints RSI values for each configured timeframe:
Row labels show TF.
Values show the smoothed RSI output that drives the overlay.
Use it for quick confirmation:
If overlay looks strong but table RSI is neutral, your band settings might be too tight.
If TF3 RSI is extreme while TF1 is neutral, you are likely in a macro stretched regime with local consolidation.
Alerts (built-in)
Alerts are provided for each timeframe separately, covering:
Entering upper extreme (cross above 70)
Exiting upper extreme (cross below 70)
Entering lower extreme (cross below 30)
Exiting lower extreme (cross above 30)
Bullish midline cross (cross above 50)
Bearish midline cross (cross below 50)
This enables workflows like:
Notify when TF2 enters extreme, then wait for TF1 mean-reversion confirmation.
Notify when TF3 crosses midline, then only take TF1 trend setups in that direction.
How to use it (practical reads)
Trend mode reads
Strong continuation: TF1 and TF2 fills become clearly visible on the same side.
Healthy pullback: TF1 fades but TF2 stays visible, suggesting underlying structure remains strong.
Chop warning: fills alternate or remain mostly invisible, indicating neutral strength.
Mean-Reversion mode reads
Exhaustion zones: outer fills become prominent near the extremes, signaling stretched conditions.
Compression after extreme: fill fades while price stabilizes, suggesting “cooling off” rather than immediate reversal.
Multi-TF stretch: TF2 and TF3 extremes together often mark higher significance zones.
Recommended setup presets
Preset A: Clean trend overlay
Mode: Trend
Bands: only Band 1
Scale: 1–2
Smoothing: EMA, moderate slen (6–10)
TF2: Daily on intraday charts
Preset B: Regime and exhaustion mapper
Mode: Mean-Reversion
Bands: Bands 1–3
Scale: 2–4
Smoothing: T3 or RMA, slightly higher slen
TF2: Daily, TF3: Weekly
Limitations
This is a strength visualization tool, not a full entry/exit system.
Percent bands are not volatility-adjusted, they are distance frames. In very high vol conditions, you may need higher band percentages or higher scaling.
MTF values update on their own timeframe closes, so higher timeframes will step rather than update every bar.
Contract Size OverviewNever second-guess your position size again. This indicator displays your pre-configured contract or lot sizes for all your frequently traded instruments, so you always know exactly how much to trade the moment you open a chart.
🎯 Why Use This?
Switching between ES futures, crypto pairs, and forex? Each instrument likely has a different position size based on your risk management. Instead of calculating or remembering sizes every time, configure them once and let the indicator do the work.
✨ Key Features
Configure up to 10 symbols with custom position sizes
Full support for fractional sizes (0.1 BTC, 0.25 ETH, etc.)
Automatic symbol detection — works with continuous contracts (ES1!, NQH2025, etc.)
Two display modes: current symbol only or full watchlist
Optional large on-chart label for instant visibility
Fully customizable colors and positioning
📖 How To Use
Add the indicator to your chart
Open settings and enter your traded symbols (ES, NQ, BTCUSDT, etc.)
Set your default position size for each
Switch between charts — your size appears automatically
⚙️ Display Options
Single Mode : Shows only the current chart's position size — clean and minimal
List Mode : Displays all configured symbols with the current one highlighted
Large Label : Optional prominent display directly on the price chart
💡 Perfect For
Futures traders managing multiple contracts (ES, NQ, CL, GC)
Crypto traders with fractional position sizes
Anyone who trades multiple instruments with different risk allocations
Traders who want to eliminate sizing mistakes when switching markets
⚠️ Note
This is an informational overlay only. It does not execute trades or connect to any broker.
Opening Path Selector (EMA200 Context Tool)📝 Description
Opening Path Selector is a context-based indicator designed to help traders quickly identify which asset may offer the cleanest directional path at the market open.
This tool does not generate entry or exit signals.
Its purpose is to reduce decision fatigue during the first minutes of the session by ranking a small set of high-liquidity assets based on higher-timeframe EMA200 structure.
🔍 What this indicator evaluates
The dashboard compares a predefined group of major symbols and ranks them according to:
• Proximity to the nearest EMA200
• Relative position versus higher-timeframe EMA200 levels
• Directional context inferred from EMA structure
The result is a priority-based list that highlights which asset may present:
• Less immediate EMA resistance
• Clearer directional context
• Lower probability of early-session chop
📊 How to read the dashboard
• Priority – Ranking based on opening context
• Symbol – Evaluated instrument
• Nearest EMA200 – Distance and side relative to price
• Possible Path – Direction with less immediate EMA resistance
• Bias – Strength of the higher-timeframe context
Colored markers are used to provide fast visual identification of the highest-priority assets.
⚠️ Important notes
• This is a context and selection tool, NOT a trading system
• No buy/sell signals, alerts, TP, or SL logic are included
• Designed to be used alongside your own execution methodology
🔧 Compatibility
Due to Pine Script multi-symbol and multi-timeframe constraints, this public version is intentionally limited to a small set of symbols.
TradingView Pro / Premium or higher is recommended for consistent performance.
🔗 Complementary tools
This indicator can be complemented with Multi-Tool VWAP + EMAs (Multi-Timeframe) + Key Levels , which provides detailed visibility of multiple EMA levels, VWAP structure, and higher-timeframe reference zones directly on the chart.
While Opening Path Selector helps decide which asset to focus on at the open, the complementary tool can assist with in-chart context and confirmation once an asset has been selected.
Both tools are designed to serve different stages of the decision process and can be used independently.
Options Gamma Flip Zones [BackQuant]Options Gamma Flip Zones
A market-structure style “gamma flip” mapper that builds adaptive strike-like zones, scores how price interacts with them, then promotes the strongest candidates into confirmed flip zones. Designed to highlight pinning, failed breaks, and rotational behavior without needing live options chain data.
What this indicator does
This script identifies price levels that behave like “strike magnets” during conditions that resemble options pinning, then draws dynamic zones around those levels.
Instead of assuming every round number matters, it:
Creates a strike ladder (auto or manual step).
Applies a regime filter that looks for “pin-friendly” market conditions.
Tracks and scores repeated interactions with the level.
Upgrades a zone from candidate to confirmed when enough evidence accumulates.
Invalidates zones when price achieves sustained acceptance away from them.
The output is a set of shaded boxes (zones) centered on strike-like levels, with text readouts that show the current state of each zone.
Key concept: “Gamma proxy”
A true gamma flip requires options positioning data. This indicator does not use options chain gamma.
Instead, it uses a proxy approach:
When markets have elevated volatility relative to their recent baseline AND trend strength is weak, price often behaves “sticky” around key levels.
In those conditions, repeated touches and failed escapes around a level behave similarly to pinning around strikes.
So this tool is best read as:
“Where would a strike-like magnet likely exist right now, based on price behavior and regime conditions?”
How zones are created
Zones only start forming when the script detects a pin-friendly regime.
1) Strike Ladder (level selection)
Auto Strike Step selects a step size based on current price magnitude (bigger price, bigger step).
Manual Strike Step lets you force a fixed increment.
The current “active level” is the nearest rounded level to price.
Major Level Every optionally marks major ladder levels (multiples of step).
2) Band construction (zone thickness)
Each zone is a symmetric band around the level, using one of two modes:
ATR mode scales thickness with volatility.
Percent mode scales thickness as a fraction of price.
This matters because “pin behavior” is not a single tick. It’s a region where price repeatedly probes and rejects.
Regime filter (when the script is allowed to believe in pinning)
A zone is only eligible to form and strengthen when Pin Regime is active. Pin Regime is a conjunction of:
1) IV proxy (ATR z-score)
Uses ATR as a volatility proxy.
Converts ATR% into a z-score relative to a long lookback.
IV Proxy Threshold controls how elevated volatility must be before the script considers pinning likely.
2) Weak trend requirement
The script also requires price action to be non-trending:
EMA spread must be small (fast vs slow EMA not diverging strongly).
ADX must be below a ceiling, confirming weak directional trend strength.
Interpretation:
High “IV proxy” + weak trend is where pin-like behavior is most common.
If trend is strong, zones are less meaningful because price is more likely to accept away from levels.
Flip confirmation logic (what upgrades a zone)
A zone is not “confirmed” just because price is near it once. The script builds conviction via evidence accumulation.
Evidence types:
Touches : price comes close to the level within tolerance.
Failed escapes : price pushes outside the band but closes back inside (rejection).
Acceptance run : consecutive closes outside the band, suggesting price is accepting away from the zone.
Protections:
Touch Cooldown prevents counting the same micro-chop as multiple touches.
Acceptance Bars defines what “real acceptance” means, so the zone does not get invalidated by one noisy bar.
A zone becomes confirmed when:
Touches meet the “evidence” requirement.
Failed escapes meet the “rejection” requirement.
The regime filter still says the market is pin-friendly.
That is important, it avoids promoting levels that only worked briefly in a trending tape.
Zone scoring and lifecycle
Each zone maintains a score that evolves over time. Think of score as “how much this level has recently behaved like a magnet.”
Score dynamics:
Decay per bar : score fades over time if price stops respecting the zone.
+ per touch : repeated proximity increases score.
+ per failed escape : rejections add stronger reinforcement.
- per acceptance bar : sustained trading outside reduces score.
Min score to draw : prevents clutter from weak, low-confidence zones.
Invalidation:
If the score becomes very weak AND price achieves sustained acceptance away from the zone, the zone is deleted.
This keeps the chart clean and ensures zones represent current market behavior, not ancient levels.
How to read the plot on chart
1) Zone fill and border
Each zone is drawn as a box extended to the right.
Fill opacity adapts to zone strength, strong zones are visually more prominent.
Border color encodes the current directional context and special events.
2) Bullish vs bearish coloring
A zone is colored bullish when price is currently trading above the zone’s mid-level.
A zone is colored bearish when price is currently trading below it.
This is not a trade signal by itself, it is a state cue for “which side is in control around the level.”
3) Failed escape highlighting
If price attempts to break above the band and fails, the border temporarily highlights as a failed up escape.
If price attempts to break below the band and fails, the border temporarily highlights as a failed down escape.
These are the moments where pin behavior is most visible:
Break attempt.
Immediate rejection.
Return to the band.
4) Midline (optional)
The zone midline is the strike-like level itself.
It is dotted to distinguish it from price structure lines.
5) Optional strike ladder overlay
When enabled, the script draws major and minor ladder lines near current price.
Major levels are thicker and less transparent.
This is a visualization aid for “where the algorithm is rounding,” not a prediction tool.
On-chart text readout (what the box text means)
Each box prints a compact state summary, designed for fast scanning:
Γ CANDIDATE means the zone is being tracked but not yet validated.
Γ FLIP (PROXY) means the zone has met confirmation requirements.
BULL/BEAR indicates which side price is on relative to the mid-level.
L prints the level value.
T is touch count, repeated proximity events.
F is fail count, rejected escape attempts.
IVz is the volatility proxy z-score at the moment.
ADX is the trend strength context.
Practical use cases
1) Pinning and range trading context
Confirmed zones often act like gravity wells in sideways or rotational regimes.
When price repeatedly fails to escape, fading outer edges can be reasonable context for mean reversion workflows.
2) Breakout validation
If price achieves acceptance outside the band for multiple bars, that is stronger breakout context than a single wick.
Zones that invalidate cleanly can mark transitions from pinning to directional move.
3) Time your “do nothing” periods
When Pin Regime is active and a zone is confirmed, the tape often becomes sticky and inefficient for trend chasing.
This helps avoid taking trend entries into a pin environment.
Alerts
Standalone alertconditions are included:
Zone Confirmed : a candidate becomes confirmed.
Zone Touch : price touches an active zone within tolerance.
Zone Invalidated : the zone loses relevance and is removed.
Tuning guidelines
Sensitivity vs quality
Lower Touches Needed and Failed Escapes Needed creates more zones faster, but with lower quality.
Higher values create fewer zones, but the ones that remain are more behaviorally “proven.”
Band width
ATR mode adapts to volatility and is typically safer across assets.
Percent mode is consistent visually but can feel too tight in high vol or too wide in low vol if not tuned.
Regime thresholds
If you want fewer zones, raise IV proxy threshold and tighten weak-trend filters.
If you want more zones, lower IV proxy threshold and loosen weak-trend filters.
Limitations
This is a proxy model, not live options gamma.
In strong trends, pinning assumptions can break, the regime filter is there to reduce that risk, but not eliminate it.
Auto strike step is designed for typical market ranges, manual step is recommended for niche tick sizes or custom markets.
Disclaimer
Educational and informational only, not financial advice.
Not a complete trading system.
Always validate settings per asset and timeframe.
Market Acceptance Envelope [Interakktive]The Market Acceptance Envelope (MAE) is a diagnostic tool that shows where price statistically belongs — not where it might go. Unlike traditional bands that expand with volatility, MAE expands with acceptance: regions where price rotates comfortably, efficiency drops, and the market agrees on fair value.
This is the anti-Bollinger thesis: bands should represent where price IS accepted, not where it MIGHT reach based on standard deviation.
█ USAGE
The filled corridor represents the current acceptance zone — where price has demonstrated rotational behavior with low directional efficiency. When price is inside the corridor, it's "home." When outside, it's exploring territory the market hasn't yet accepted.
For discretionary traders, MAE provides instant context: "Is price where it belongs, or is it extended?"
For systematic traders, the exported values (confidence, asymmetry, position) can inform position sizing and filter logic.
█ ACCEPTANCE CENTROID
Unlike traditional bands centered on a moving average, MAE uses an Acceptance Centroid — a time-weighted price level where acceptance behavior concentrates. The centroid is calculated by weighting price by:
• Inverse efficiency (low efficiency = high acceptance)
• Volatility stability (stable vol = higher weight)
• Dwell factor (time spent near level)
This means the centroid drifts toward where price actually rotates, not simply where it averages.
█ ASYMMETRIC BOUNDARIES
MAE calculates upper and lower boundaries independently. Markets rarely treat up and down equally — during uptrends, the upper boundary may be wider (more accepted upside exploration), while the lower boundary stays tight (quick rejection of dips).
This asymmetry is visible on the chart and exported as a metric (-1 to +1).
█ CONFIDENCE-BASED VISIBILITY
The corridor's opacity reflects acceptance confidence:
• High confidence → clearly visible corridor (price is in accepted rotation)
• Low confidence → faded corridor (trending/directional market, acceptance not established)
When the corridor fades, it's telling you: "Acceptance hasn't been earned here yet."
█ WHAT THIS INDICATOR IS
• A diagnostic acceptance envelope showing where price statistically belongs
• Asymmetric by design — upper and lower calculated independently
• Confidence-weighted visibility — fades when acceptance is not earned
• Non-repainting — uses closed-bar data only
█ WHAT THIS INDICATOR IS NOT
• NOT Bollinger Bands (no standard deviation around a mean)
• NOT Keltner Channels (no ATR-scaled envelope)
• NOT a signal generator — no touches = signals philosophy
• NO arrows, NO entries/exits, NO buy/sell recommendations
█ HOW IT WORKS
MAE uses an acceptance-weighted calculation approach:
1. ACCEPTANCE WEIGHT
Each bar receives a weight based on:
• Efficiency: (1 - efficiency) — low efficiency = rotational = high acceptance
• Volatility Stability: stable vol environment = higher weight
• Dwell Factor: price staying near central tendency = higher weight
2. ACCEPTANCE CENTROID
Weighted average of price using acceptance weights:
centroid = Σ(price × weight) / Σ(weight)
Smoothed adaptively — faster during drift, slower when stable.
3. ASYMMETRIC BOUNDARIES
Upper and lower distances calculated separately:
• rngUp = acceptance-weighted average of (price - centroid) when price > centroid
• rngDn = acceptance-weighted average of (centroid - price) when price < centroid
4. CONFIDENCE SCORE
Composite of average acceptance weight, volatility stability, and centroid stability.
Maps to corridor opacity: high confidence = visible, low confidence = faded.
█ SETTINGS
Market Acceptance Envelope — Core
• Acceptance Lookback (20): Bars to evaluate for acceptance conditions. Higher = smoother, slower response.
• Preset (Swing): Scalper = tight/fast, Swing = balanced, Position = wide/stable.
• Envelope Sensitivity (1.0): Width multiplier. Higher = wider corridor.
Market Acceptance Envelope — Visuals
• Show Corridor (true): Display the acceptance corridor.
• Show Centroid (false): Display the acceptance centroid line.
Market Acceptance Envelope — Data Window
• Show Data Window Values (false): Export MAE metrics for external use.
█ EXPORTED VALUES
When Data Window is enabled:
• mae_upper: Upper boundary value
• mae_lower: Lower boundary value
• mae_centroid: Acceptance centroid value
• mae_width: Corridor width (upper - lower)
• mae_asymmetry: Asymmetry ratio (-1 to +1, negative = lower wider)
• mae_confidence: Acceptance confidence (0-100)
• mae_position: Price position (-1 = below, 0 = inside, +1 = above)
█ SUITABLE MARKETS
Works on all markets: Stocks, Futures, Forex, Crypto, Indices.
Works on all timeframes. Higher timeframes show more stable acceptance zones.
█ DISCLAIMER
This indicator is for educational and informational purposes only. It does not constitute financial advice. Past performance does not guarantee future results. Always conduct your own analysis and use proper risk management. This is a diagnostic tool — it provides context, not signals.
Kalman Hull Kijun [BackQuant]Kalman Hull Kijun
A trend baseline that merges three ideas into one clean overlay, Kalman filtering for noise control, Hull-style responsiveness, and a Kijun-like Donchian midline for structure and bias.
Context and lineage
This indicator sits in the same family as two related scripts:
Kalman Price Filter
This is the foundational building block. It introduces the Kalman filter concept, a state-estimation algorithm designed to infer an underlying “true” signal from noisy measurements, originally used in aerospace guidance and later adopted across robotics, economics, and markets.
Kalman Hull Supertrend
This is the original script made, which people loved. So it inspired me to create this one.
Kalman Hull Kijun uses the same core philosophy as the Supertrend variant, but instead of building a Supertrend band system, it produces a single structural baseline that behaves like a Kijun-style reference line.
What this indicator is trying to solve
Most trend baselines sit on a bad trade-off curve:
If you smooth hard, the line reacts late and misses turns.
If you react fast, the line whipsaws and tracks noise.
Kalman Hull Kijun is designed to land closer to the middle:
Cleaner than typical fast moving averages in chop.
More responsive than slow averages in directional phases.
More “structure aware” than pure averages because the baseline is range-derived (Kijun-like) after filtering.
Core idea in plain language
The plotted line is a Kijun-like baseline, but it is not built from raw candles directly.
High level flow:
Start with a chosen price stream (source input).
Reduce measurement noise using Kalman-style state estimation.
Add Hull-style responsiveness so the filtered stream stays usable for trend work.
Build a Kijun-like baseline by taking a Donchian midpoint of that filtered stream over the base period.
So the output is a single baseline that is intended to be:
Less jittery than a simple fast MA.
Less laggy than a slow MA.
More “range anchored” than standard smoothing lines.
How to read it
1) Trend and bias (the primary use)
Price above the baseline, bullish bias.
Price below the baseline, bearish bias.
Clean flips across the baseline are regime changes, especially when followed by a hold or retest.
2) Retests and dynamic structure
Treat the baseline like dynamic S/R rather than a signal generator:
In uptrends, pullbacks that respect the baseline can act as continuation context.
In downtrends, reclaim failures around the baseline can act as continuation context.
Repeated back-and-forth around the line usually means compression or chop, not clean trend.
3) Extension vs compression (using the fill)
The fill is meant to communicate “distance” and “pressure” visually:
Large separation between price and baseline suggests expansion.
Price compressing into the baseline suggests rebalancing and decision points.
Inputs and what they change
Kijun Base Period
Controls the structural memory of the baseline.
Higher values track broader swings and reduce flips.
Lower values track tighter swings and react faster.
Kalman Price Source
Defines what data the filter is estimating.
Close is usually the cleanest default.
HL2 often “feels” smoother as an average price.
High/Low sources can become more reactive and less stable depending on the market.
Measurement Noise
Think of this as the main smoothness knob:
Higher values generally produce a calmer filtered stream.
Lower values generally produce a faster, more reactive stream.
Process Noise
Think of this as adaptability:
Higher values adapt faster to changing conditions but can get twitchy.
Lower values adapt slower but stay stable.
Plotting and UI (what you see on chart)
1) Adaptive line coloring
Baseline turns bullish color when price is above it.
Baseline turns bearish color when price is below it.
This makes the state readable without extra panels.
2) Gradient “energy” fill
Bull fill appears between price and baseline when above.
Bear fill appears between price and baseline when below.
The goal is clarity on separation and control, not decoration.
3) Rim effect
A subtle band around price that only appears on the active side.
Helps highlight directional control without hiding candles.
4) Candle painting (optional)
Candles can be colored to match the current bias.
Useful for scanning many charts quickly.
Disable if you prefer raw candles.
Alerts
Long state alert when price is above the baseline.
Short state alert when price is below the baseline.
Best used as a bias or regime notification, not a standalone entry trigger.
Where it fits in a workflow
This is a context layer, it pairs well with:
Market structure tools, BOS/MSB, OBs, FVGs.
Momentum triggers that need a regime filter.
Mean reversion tools that need “do not fade trends” context.
Limitations
No baseline eliminates chop whipsaws, tuning only manages the trade-off.
Settings should not be copy pasted across assets without checking behavior.
This does not forecast, it estimates and smooths state, then expresses it as a structural baseline.
Disclaimer
Educational and informational only, not financial advice.
Not a complete trading system.
If you use it in any trading workflow, do proper backtesting, forward testing, and risk management before any live execution.
Simple ATR Volatility Context v1.0This indicator provides a simple visual view of market volatility using ATR expressed as a percentage of price. It is designed to help identify when a market transitions from low-activity (compression) to higher-activity (expansion).
What it does
Calculates ATR as a percentage of price
Highlights the chart when volatility exceeds a user-defined threshold
Helps distinguish between quiet markets and trade-worthy conditions
How to use it
Green background indicates elevated volatility
Neutral / muted background indicates low volatility
Use alongside your own trend, structure, or entry tools
What this is not
Not a buy or sell signal
Not predictive
No performance claims
This tool is intended for market context and awareness, not standalone trading decisions.
UIA TrendCompass V1.0UIA TrendCompass v1.0 is a market structure interpretation tool designed to visualize trend states in real time.
The script identifies four structural states based on price behavior and trend continuity:
• T — Trend Start
• E — Trend Extension
• H — Structural High / Low
• X — Trend Exit / Reversal
This indicator is intended for market structure analysis and educational purposes only.
It does NOT provide trading signals, buy/sell recommendations, or investment advice.
All labels are generated based on historical price data and do not predict future market movements.
Users should combine this tool with their own analysis and risk management framework.
This script is provided "as is" with no guarantee of accuracy or performance.
Market Efficiency Ratio [Interakktive]The Market Efficiency Ratio decomposes price movement into two components: net progress vs wasted movement. This tool exposes the underlying math that most traders never see, helping you understand when price is moving efficiently versus chopping sideways.
Unlike simple trend indicators, this shows you WHY price movement matters — not just whether it's up or down, but how much of that movement was useful directional progress versus noisy oscillation.
█ WHAT IT DOES
• Calculates Efficiency Ratio (0–1 or 0–100) measuring directional progress
• Exposes Net Displacement (how far price actually moved)
• Exposes Path Length (total distance price traveled)
• Calculates Chop Cost (wasted movement)
• Visual zones for high/mid/low efficiency states
█ WHAT IT DOES NOT DO
• NO signals, NO entries/exits, NO buy/sell
• NO performance claims
• NO predictions — purely diagnostic
• This is a tool for understanding price behavior
█ HOW IT WORKS
The efficiency ratio answers one question: "Of all the movement price made, how much was useful progress?"
🔹 THE MATH
Over a lookback period of N bars:
Net Displacement = |Close - Close |
Path Length = Σ |Close - Close | for all bars
Efficiency Ratio = Net Displacement / Path Length
🔹 INTERPRETATION
• Efficiency = 1.0 (100%): Price moved in a straight line — every tick was progress
• Efficiency = 0.5 (50%): Half the movement was wasted in back-and-forth chop
• Efficiency = 0.0 (0%): Price ended exactly where it started — all movement was noise
🔹 CHOP COST
This is the "wasted movement" — how much price traveled without making progress:
Chop Cost = Path Length - Net Displacement
Chop % = Chop Cost / Path Length
High chop cost means lots of effort for little result — a warning sign for trend traders.
█ VISUAL GUIDE
Three efficiency zones:
• GREEN (≥70): High efficiency — strong directional movement
• YELLOW (30-70): Mixed efficiency — some progress, some chop
• RED (<30): Low efficiency — mostly noise, little progress
█ INPUTS
Lookback Length (default: 14)
Number of bars to calculate efficiency over. Higher values produce smoother readings but respond slower to changes.
Smoothing Length (default: 5)
EMA smoothing applied to the output. Reduces noise in the efficiency reading.
Apply Smoothing (default: true)
Toggle EMA smoothing on/off.
Scale Mode (default: 0–100)
Display as percentage (0-100) or decimal ratio (0-1).
Show Reference Bands (default: true)
Display the high/low efficiency threshold lines.
Low/High Efficiency Level (default: 30/70)
Thresholds for classifying efficiency zones.
Overlay Effect (default: None)
• None: No overlay
• Background Tint: Subtle chart background color in high/low zones
• Bar Highlight: Color bars during low efficiency periods
Show Data Window Values (default: true)
Export all raw values (Net Displacement, Path Length, Efficiency, Chop Cost, Chop %) to the data window for analysis.
█ USE CASES
This indicator helps traders understand:
• Why some trends are "clean" and others are "messy"
• When price is consolidating vs trending (without using volume)
• The relationship between movement and progress
• Why high-chop environments are difficult to trade
This is the foundational concept behind more advanced regime detection systems.
█ SUITABLE MARKETS
Works on: Stocks, Futures, Forex, Crypto
Timeframes: All timeframes
Note: This is a price-only indicator — no volume required
█ DISCLAIMER
This indicator is for informational and educational purposes only. It does not constitute financial advice. It does not generate trading signals. Past performance does not guarantee future results. Always conduct your own analysis.
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.
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.






















