US Market Long Horizon Momentum Summary in one paragraph
US Market Long Horizon Momentum is a trend following strategy for US index ETFs and futures built around a single eighteen month time series momentum measure. It helps you stay long during persistent bull regimes and step aside or flip short when long term momentum turns negative.
Scope and intent
• Markets. Large cap US equity indices, liquid US index ETFs, index futures
• Timeframes. 4h/ Daily charts
• Default demo used in the publication. SPY on 4h timeframe chart
• Purpose. Provide a minimal long bias index timing model that can reduce deep drawdowns and capture major cycles without parameter mining
• Limits. This is a strategy. Orders are simulated on standard candles only
Originality and usefulness
• Unique concept or fusion. One unscaled multiple month log return of an external benchmark symbol drives all entries and exits, with optional volatility targeting as a single risk control switch.
• Failure mode addressed. Fully passive buy and hold ignores the sign of long horizon momentum and can sit through multi year drawdowns. This script offers a way to step down risk in prolonged negative momentum without chasing short term noise.
• Testability. All parameters are visible in Inputs and the momentum series is plotted so users can verify every regime change in the Tester and on price history.
• Portable yardstick. The log return over a fixed window is a unit that can be applied to any liquid symbol with daily data.
Method overview in plain language
The method looks at how far the benchmark symbol has moved in log return terms over an eighteen month window in our example. If that long horizon return is positive the strategy allows a long stance on the traded symbol. If it is negative and shorts are enabled the strategy can flip short, otherwise it goes flat. There is an optional realised volatility estimate on the traded symbol that can scale position size toward a target annual volatility, but in the default configuration the model uses unit leverage and only the sign of momentum matters.
Base measures
Return basis. The core yardstick is the natural log of close divided by the close eighteen months ago on the benchmark symbol. Daily log returns of the traded symbol feed the realised volatility estimate when volatility targeting is enabled.
Components
• Component one Momentum eighteen months. Log of benchmark close divided by its close mom_lookback bars ago. Its sign defines the trend regime. No extra smoothing is applied beyond the long window itself.
• Component two Realised volatility optional. Standard deviation of daily log returns on the traded symbol over sixty three days. Annualised by the square root of 252. Used only when volatility targeting is enabled.
• Optional component Volatility targeting. Converts target annual volatility and realised volatility into a leverage factor clipped by a maximum leverage setting.
Fusion rule
The model uses a simple gate. First compute the sign of eighteen month log momentum on the benchmark symbol. Optionally compute leverage from volatility. The sign decides whether the strategy wants to be long, short, or flat. Leverage only rescales position size when enabled and does not change direction.
Signal rule
• Long suggestion. When eighteen month log momentum on the benchmark symbol is greater than zero, the strategy wants to be long.
• Short suggestion. When that log momentum is less than zero and shorts are allowed, the strategy wants to be short. If shorts are disabled it stays flat instead.
• Wait state. When the log momentum is exactly zero or history is not long enough the strategy stays flat.
• In position. In practice the strategy sits IN LONG while the sign stays positive and flips to IN SHORT or flat only when the sign changes.
Inputs with guidance
Setup
• Momentum Lookback (months). Controls the horizon of the log return on the benchmark symbol. Typical range 6 to 24 months. Raising it makes the model slower and more selective. Lowering it makes it more reactive and sensitive to medium term noise.
• Symbol. External symbol used for the momentum calculation, SPY by default. Changing it lets you time other indices or run signals from a benchmark while trading a correlated instrument.
Logic
• Allow Shorts. When true the strategy will open short positions during negative momentum regimes. When false it will stay flat whenever momentum is negative. Practical setting is tied to whether you use a margin account or an ETF that supports shorting.
Internal risk parameters (not exposed as inputs in this version) are:
• Target Vol (annual). Target annual volatility for volatility targeting, default 0.2.
• Vol Lookback (days). Window for realised volatility, default 63 trading days.
• Max Leverage. Cap on leverage when volatility targeting is enabled, default 2.
Usage recipes
Swing continuation
• Signal timeframe. Use the daily chart.
• Benchmark symbol. Leave at SPY for US equity index exposure.
• Momentum lookback. Eighteen months as a default, with twelve months as an alternative preset for a faster swing bias.
Properties visible in this publication
• Initial capital. 100000
• Base currency. USD
• Default order size method. 5% of the total capital in this example
• Pyramiding. 0
• Commission. 0.03 percent
• Slippage. 3 ticks
• Process orders on close. On
• Bar magnifier. Off
• Recalculate after order is filled. Off
• Calc on every tick. Off
• All request.security calls use lookahead = barmerge.lookahead_off
Realism and responsible publication
The strategy is for education and research only. It does not claim any guaranteed edge or future performance. All results in Strategy Tester are hypothetical and depend on the data vendor, costs, and slippage assumptions. Intrabar motion is not modeled inside daily bars so extreme moves and gaps can lead to fills that differ from live trading. The logic is built for standard candles and should not be used on synthetic chart types for execution decisions.
Performance is sensitive to regime structure in the US equity market, which may change over time. The strategy does not protect against single day crash risk inside bars and does not model gap risk explicitly. Past behavior of SPY and the momentum effect does not guarantee future persistence.
Honest limitations and failure modes
• Long sideways regimes with small net change over eighteen months can lead to whipsaw around the zero line.
• Very sharp V shaped reversals after deep declines will often be missed because the model waits for momentum to turn positive again.
• The sample size in a full SPY history is small because regime changes are infrequent, so any test must be interpreted as indicative rather than statistically precise.
• The model is highly dependent on the chosen lookback. Users should test nearby values and validate that behavior is qualitatively stable.
Legal
Education and research only. Not investment advice. You are responsible for your own decisions. Always test on historical data and in simulation with realistic costs before any live use.
스크립트에서 "如何用wind搜索股票的发行价和份数"에 대해 찾기
FluxPulse Beacon## FluxPulse Beacon
FluxPulse Beacon applies a microstructure lens to every bar, combining directional thrust, realized volatility, and multi-timeframe liquidity checks to decide whether the tape is being pushed by real sponsorship or just noise. The oscillator's color-coded columns and adaptive burst thresholds transform complex flow dynamics into a single actionable flux score for futures and equities traders.
HOW IT WORKS
Momentum Extraction – Price differentials over a configurable pulse distance are smoothed using exponential moving averages to isolate directional thrust without reacting to single prints.
Volatility + Liquidity Normalization – The momentum stream is divided by realized volatility and multiplied by both local and higher-timeframe EMA volume ratios, ensuring pulses only appear when volatility and liquidity align.
Adaptive Thresholding – A volatility-derived standard deviation of flux is blended with the base threshold so bursts scale automatically between low-volatility and high-volatility market conditions.
Divergence Engine – Linear regression slopes compare price vs. flux to tag bullish/bearish divergences, highlighting stealth accumulation or distribution zones.
HOW TO USE IT
Continuation Entries : Go with the trend when histogram bars stay above the adaptive threshold, the signal line confirms, and trend bias agrees—this is where liquidity-backed follow-through lives.
Fade Plays : Watch for divergence alerts and shrinking compression values; when flux prints below zero yet price grinds higher, hidden selling pressure often precedes rollovers.
Session Filter : Compression percentage in the diagnostics table instantly tells you whether to trade thin overnight sessions—low compression means stand down.
VISUAL FEATURES
Dynamic background heat maps flux magnitude, while threshold lines provide a quick read on whether a pulse is statistically significant.
Diagnostics table displays live flux, signal, adaptive threshold, and compression for quick reference.
Alert-first workflow: The surface is intentionally clean—bursts and divergences are delivered via alerts instead of on-chart clutter.
PARAMETERS
Trend EMA Length (default: 34): Defines the macro bias anchor; increase for higher-timeframe confirmation.
Pulse Distance (default: 8): Controls how sensitive momentum extraction becomes.
Volatility Window (default: 21): Sample window for realized volatility normalization.
Liquidity Window (default: 55): Volume smoothing window that proxies liquidity expansion.
Liquidity Reference TF (default: 60): Select a higher timeframe to cross-check whether current volume matches institutional flows.
Adaptive Threshold (default: enabled): Disable for fixed thresholds on slower markets; enable for high-volatility assets.
Base Burst Threshold (default: 1.25): Minimum flux magnitude that qualifies as an actionable pulse.
ALERTS
The indicator includes four alert conditions:
Bull Burst: Detects upside liquidity pulses
Bear Burst: Detects downside liquidity pulses
Bull Divergence: Flags bullish delta divergence
Bear Divergence: Flags bearish delta divergence
LIMITATIONS
This indicator is designed for liquid futures and equity markets. Performance may degrade in low-volume or highly illiquid instruments. The adaptive threshold system works best on timeframes where sufficient volatility history exists (typically 15-minute charts and above). Divergence signals are probabilistic and should be confirmed with price action.
INSERT_CHART_SNAPSHOT_URL_HERE
---
## RangeLattice Mapper
RangeLattice Mapper constructs a higher-timeframe scaffolding on any intraday chart, locking in structural highs/lows, mid/quarter grids, VWAP confluence, and live acceptance/break analytics. It provides a non-repainting overlay that turns range management into a disciplined process.
HOW IT WORKS
Structure Harvesting – Using request.security() , the script samples highs/lows from a user-selected timeframe (default 240 minutes) over a configurable lookback to establish the dominant range.
Grid Construction – Midpoint and quarter levels are derived mathematically, mirroring how institutional traders map distribution/accumulation zones.
Acceptance Detection – Consecutive closes inside the range flip an acceptance flag and darken the cloud, signaling balanced auction conditions.
Break Confirmation – Multi-bar closes outside the structure raise break labels and alerts, filtering the countless fake-outs that plague breakout traders.
VWAP Fan Overlay – Session VWAP plus ATR-based bands provide a live measure of flow centering relative to the lattice.
HOW TO USE IT
Range Plays : Fade taps of the outer rails only when acceptance is active and VWAP sits inside the grid—this is where mean-reversion works best.
Breakout Plays : Wait for confirmed break labels before entering expansion trades; the dashboard's Width/ATR metric tells you if the expansion has enough fuel.
Market Prep : Carry the same lattice from pre-market into regular trading hours by keeping the structure timeframe fixed; alerts keep you notified even when managing multiple tickers.
VISUAL FEATURES
Range Tap and Mid Pivot markers provide a tape-reading breadcrumb trail for journaling.
Cloud fill opacity tightens when acceptance persists, visually signaling balance compressions ready to break.
Dashboard displays absolute width, ATR-normalized width, and current state (Balanced vs Transitional) so you can glance across charts quickly.
Acceptance Flag toggle: Keep the repeated acceptance squares hidden until you need to audit balance.
PARAMETERS
Structure Timeframe (default: 240): Choose the timeframe whose ranges matter most (4H for indices, Daily for stocks).
Structure Lookback (default: 60): Bars sampled on the structure timeframe.
Acceptance Bars (default: 8): How many consecutive bars inside the range confirm balance.
Break Confirmation Bars (default: 3): Bars required outside the range to validate a breakout.
ATR Reference (default: 14): ATR period for width normalization.
Show Midpoint Grid (default: enabled): Display the midpoint and quarter levels.
Show Adaptive VWAP Fan (default: enabled): Toggle the VWAP channel for assets where volume distribution matters most.
Show Acceptance Flags (default: disabled): Turn the acceptance markers on/off for maximum visual control.
Show Range Dashboard (default: enabled): Disable if screen space is limited, re-enable during prep sessions.
ALERTS
The indicator includes five alert conditions:
Range High Tap: Price interacted with the RangeLattice high
Range Low Tap: Price interacted with the RangeLattice low
Range Mid Tap: Price interacted with the RangeLattice mid
Range Break Up: Confirmed upside breakout
Range Break Down: Confirmed downside breakout
LIMITATIONS
This indicator works best on liquid instruments with clear structural levels. On very low timeframes (1-minute and below), the structure may update too frequently to be useful. The acceptance/break confirmation system requires patience—faster traders may find the multi-bar confirmation too slow for scalping. The VWAP fan is session-based and resets daily, which may not suit all trading styles.
---
DeltaBurst Locator ## DeltaBurst Locator
DeltaBurst Locator is a sponsorship detector that divides OBV impulse by price thrust, normalizes the ratio, and cross-checks it against a higher timeframe confirmation stream. The oscillator turns the abstract "is this move real?" question into a precise number, exposing accumulation, distribution, and exhaustion across futures and stocks.
HOW IT WORKS
OBV Impulse vs. Price Change – Smoothed deltas of On-Balance Volume and price are ratioed, then normalized using a hyperbolic tangent function to prevent single prints from dominating.
Signal vs. Confirmation – A short EMA produces the execution signal while a higher-timeframe request.security() feed validates whether broader flows agree.
Spectrum Classification – Expansion/compression metrics grade whether current aggression is intense or fading, while ±0.65 bands define exhaust/vacuum zones.
Slope Divergences – Linear regression slopes on both price and the ratio expose bullish/bearish sponsorship mismatches before candles reverse.
HOW TO USE IT
Breakout Validation : Only chase breakouts when both local and higher-timeframe ratios are on the same side of zero; mixed signals suggest liquidity is fading.
Absorption Trades : When the histogram spikes beyond ±0.65 but the EMA lags, expect absorption; combine with price structure for pinpoint reversals.
News/Event Monitoring : During earnings or macro releases, watch for ratio collapses with price still rising—this flags forced moves driven by hedging rather than real demand.
VISUAL FEATURES
Color logic: Positive sponsorship fills teal, negative fills crimson against the zero line, making intent obvious at a glance.
Optional markers: Burst triangles and divergence dots can be enabled when you need explicit annotations or left off for a minimalist panel.
Compression heatmap: Background shading communicates whether the market is coiling (high compression) or erupting (low compression).
Dashboard: Displays the live ratio, higher-timeframe ratio, and agreement state to speed up scanning across tickers.
PARAMETERS
Fast Pulse Length (default: 5): Controls the smoothing window for price change detection.
Slow Equilibrium Length (default: 34): Window for expansion/compression calculation.
OBV Smooth (default: 8): Smoothing period for OBV impulse calculation.
Ratio Ceiling (default: 3.0): Controls how aggressively values saturate; raise for high-volatility tickers.
Signal EMA (default: 4): EMA period for the signal line.
Confirmation Timeframe (default: 240): Pick a higher anchor (e.g., 4H) to validate intraday moves.
Divergence Window (default: 21): Window for slope-based divergence detection.
Show Burst Markers (default: disabled): Toggle burst triangles on demand.
Show Divergence Markers (default: disabled): Toggle divergence dots on demand.
Show Delta Dashboard (default: enabled): Hide when screen space is limited; leave on for desk broadcasts.
ALERTS
The indicator includes four alert conditions:
DeltaBurst Bull: Spotted a bullish liquidity burst
DeltaBurst Bear: Spotted a bearish liquidity burst
DeltaBurst Bull Div: Detected bullish sponsorship divergence
DeltaBurst Bear Div: Detected bearish sponsorship divergence
Hope you enjoy!
FVG + Bollinger + Toggles + Swing H&L (Taken/Close modes)This indicator combines multiple advanced market-structure tools into one unified system.
It detects A–C Fair Value Gaps (FVG) and plots them as dynamic boxes projected a fixed number of bars forward.
Each bullish or bearish FVG updates in real time and “closes” once price breaks through the opposite boundary.
The indicator also includes Bollinger Bands based on EMA-50 with adjustable deviation settings for volatility context.
Swing Highs and Swing Lows are identified using pivot logic and are drawn as dynamic lines that change color once taken out.
You can choose whether swings end on a close break or on any touch/violation of the level.
All visual elements—FVGs, Bollinger Bands, and Swing Lines—can be individually toggled on or off from the settings panel.
A time-window session box is included, allowing you to highlight a custom intraday window based on your selected timezone.
The session box automatically tracks the high and low of the window and locks the final range once the window closes.
Overall, the tool is designed for traders who want a structured, multi-layered view of liquidity, volatility, and intraday timing.
MusaCandlePatternsLibrary "MusaCandlePatterns"
Patterns is a Japanese candlestick pattern recognition Library for developers. Functions here within detect viable setups in a variety of popular patterns. Please note some patterns are without filters such as comparisons to average candle sizing, or trend detection to allow the author more freedom.
doji(dojiSize, dojiWickSize)
Detects "Doji" candle patterns
Parameters:
dojiSize (float) : (float) The relationship of body to candle size (ie. body is 5% of total candle size). Default is 5.0 (5%)
dojiWickSize (float) : (float) Maximum wick size comparative to the opposite wick. (eg. 2 = bottom wick must be less than or equal to 2x the top wick). Default is 2
Returns: (series bool) True when pattern detected
dLab(showLabel, labelColor, textColor)
Produces "Doji" identifier label
Parameters:
showLabel (bool) : (series bool) Shows label when input is true. Default is false
labelColor (color) : (series color) Color of the label border and arrow
textColor (color) : (series color) Text color
Returns: (label) A label visible at the chart level intended for the title pattern
bullEngulf(maxRejectWick, mustEngulfWick)
Detects "Bullish Engulfing" candle patterns
Parameters:
maxRejectWick (float) : (float) Maximum rejection wick size.
The maximum wick size as a percentge of body size allowable for a top wick on the resolution candle of the pattern. 0.0 disables the filter.
eg. 50 allows a top wick half the size of the body. Default is 0% (Disables wick detection).
mustEngulfWick (bool) : (bool) input to only detect setups that close above the high prior effectively engulfing the candle in its entirety. Default is false
Returns: (series bool) True when pattern detected
bewLab(showLabel, labelColor, textColor)
Produces "Bullish Engulfing" identifier label
Parameters:
showLabel (bool) : (series bool) Shows label when input is true. Default is false
labelColor (color) : (series color) Color of the label border and arrow
textColor (color) : (series color) Text color
Returns: (label) A label visible at the chart level intended for the title pattern
bearEngulf(maxRejectWick, mustEngulfWick)
Detects "Bearish Engulfing" candle patterns
Parameters:
maxRejectWick (float) : (float) Maximum rejection wick size.
The maximum wick size as a percentge of body size allowable for a bottom wick on the resolution candle of the pattern. 0.0 disables the filter.
eg. 50 allows a botom wick half the size of the body. Default is 0% (Disables wick detection).
mustEngulfWick (bool) : (bool) Input to only detect setups that close below the low prior effectively engulfing the candle in its entirety. Default is false
Returns: (series bool) True when pattern detected
bebLab(showLabel, labelColor, textColor)
Produces "Bearish Engulfing" identifier label
Parameters:
showLabel (bool) : (series bool) Shows label when input is true. Default is false
labelColor (color) : (series color) Color of the label border and arrow
textColor (color) : (series color) Text color
Returns: (label) A label visible at the chart level intended for the title pattern
hammer(ratio, shadowPercent)
Detects "Hammer" candle patterns
Parameters:
ratio (float) : (float) The relationship of body to candle size (ie. body is 33% of total candle size). Default is 33%.
shadowPercent (float) : (float) The maximum allowable top wick size as a percentage of body size. Default is 5%.
Returns: (series bool) True when pattern detected
hLab(showLabel, labelColor, textColor)
Produces "Hammer" identifier label
Parameters:
showLabel (bool) : (series bool) Shows label when input is true. Default is false
labelColor (color) : (series color) Color of the label border and arrow
textColor (color) : (series color) Text color
Returns: (label) A label visible at the chart level intended for the title pattern
star(ratio, shadowPercent)
Detects "Star" candle patterns
Parameters:
ratio (float) : (float) The relationship of body to candle size (ie. body is 33% of total candle size). Default is 33%.
shadowPercent (float) : (float) The maximum allowable bottom wick size as a percentage of body size. Default is 5%.
Returns: (series bool) True when pattern detected
ssLab(showLabel, labelColor, textColor)
Produces "Star" identifier label
Parameters:
showLabel (bool) : (series bool) Shows label when input is true. Default is false
labelColor (color) : (series color) Color of the label border and arrow
textColor (color) : (series color) Text color
Returns: (label) A label visible at the chart level intended for the title pattern
dragonflyDoji()
Detects "Dragonfly Doji" candle patterns
Returns: (series bool) True when pattern detected
ddLab(showLabel, labelColor, textColor)
Produces "Dragonfly Doji" identifier label
Parameters:
showLabel (bool) : (series bool) Shows label when input is true. Default is false
labelColor (color) : (series color) Color of the label border and arrow
textColor (color)
Returns: (label) A label visible at the chart level intended for the title pattern
gravestoneDoji()
Detects "Gravestone Doji" candle patterns
Returns: (series bool) True when pattern detected
gdLab(showLabel, labelColor, textColor)
Produces "Gravestone Doji" identifier label
Parameters:
showLabel (bool) : (series bool) Shows label when input is true. Default is false
labelColor (color) : (series color) Color of the label border and arrow
textColor (color) : (series color) Text color
Returns: (label) A label visible at the chart level intended for the title pattern
tweezerBottom(closeUpperHalf)
Detects "Tweezer Bottom" candle patterns
Parameters:
closeUpperHalf (bool) : (bool) input to only detect setups that close above the mid-point of the candle prior increasing its bullish tendancy. Default is false
Returns: (series bool) True when pattern detected
tbLab(showLabel, labelColor, textColor)
Produces "Tweezer Bottom" identifier label
Parameters:
showLabel (bool) : (series bool) Shows label when input is true. Default is false
labelColor (color) : (series color) Color of the label border and arrow
textColor (color) : (series color) Text color
Returns: (label) A label visible at the chart level intended for the title pattern
tweezerTop(closeLowerHalf)
Detects "TweezerTop" candle patterns
Parameters:
closeLowerHalf (bool) : (bool) input to only detect setups that close below the mid-point of the candle prior increasing its bearish tendancy. Default is false
Returns: (series bool) True when pattern detected
ttLab(showLabel, labelColor, textColor)
Produces "TweezerTop" identifier label
Parameters:
showLabel (bool) : (series bool) Shows label when input is true. Default is false
labelColor (color) : (series color) Color of the label border and arrow
textColor (color) : (series color) Text color
Returns: (label) A label visible at the chart level intended for the title pattern
spinningTopBull(wickSize)
Detects "Bullish Spinning Top" candle patterns
Parameters:
wickSize (float) : (float) input to adjust detection of the size of the top wick/ bottom wick as a percent of total candle size. Default is 34%, which ensures the wicks are both larger than the body.
Returns: (series bool) True when pattern detected
stwLab(showLabel, labelColor, textColor)
Produces "Bullish Spinning Top" identifier label
Parameters:
showLabel (bool) : (series bool) Shows label when input is true. Default is false
labelColor (color) : (series color) Color of the label border and arrow
textColor (color) : (series color) Text color
Returns: (label) A label visible at the chart level intended for the title pattern
spinningTopBear(wickSize)
Detects "Bearish Spinning Top" candle patterns
Parameters:
wickSize (float) : (float) input to adjust detection of the size of the top wick/ bottom wick as a percent of total candle size. Default is 34%, which ensures the wicks are both larger than the body.
Returns: (series bool) True when pattern detected
stbLab(showLabel, labelColor, textColor)
Produces "Bearish Spinning Top" identifier label
Parameters:
showLabel (bool) : (series bool) Shows label when input is true. Default is false
labelColor (color) : (series color) Color of the label border and arrow
textColor (color) : (series color) Text color
Returns: (label) A label visible at the chart level intended for the title pattern
spinningTop(wickSize)
Detects "Spinning Top" candle patterns
Parameters:
wickSize (float) : (float) input to adjust detection of the size of the top wick/ bottom wick as a percent of total candle size. Default is 34%, which ensures the wicks are both larger than the body.
Returns: (series bool) True when pattern detected
stLab(showLabel, labelColor, textColor)
Produces "Spinning Top" identifier label
Parameters:
showLabel (bool) : (series bool) Shows label when input is true. Default is false
labelColor (color) : (series color) Color of the label border and arrow
textColor (color) : (series color) Text color
Returns: (label) A label visible at the chart level intended for the title pattern
morningStar()
Detects "Bullish Morning Star" candle patterns
Returns: (series bool) True when pattern detected
msLab(showLabel, labelColor, textColor)
Produces "Bullish Morning Star" identifier label
Parameters:
showLabel (bool) : (series bool) Shows label when input is true. Default is false
labelColor (color) : (series color) Color of the label border and arrow
textColor (color) : (series color) Text color
Returns: (label) A label visible at the chart level intended for the title pattern
eveningStar()
Detects "Bearish Evening Star" candle patterns
Returns: (series bool) True when pattern detected
esLab(showLabel, labelColor, textColor)
Produces "Bearish Evening Star" identifier label
Parameters:
showLabel (bool) : (series bool) Shows label when input is true. Default is false
labelColor (color) : (series color) Color of the label border and arrow
textColor (color) : (series color) Text color
Returns: (label) A label visible at the chart level intended for the title pattern
haramiBull()
Detects "Bullish Harami" candle patterns
Returns: (series bool) True when pattern detected
hwLab(showLabel, labelColor, textColor)
Produces "Bullish Harami" identifier label
Parameters:
showLabel (bool) : (series bool) Shows label when input is true. Default is false
labelColor (color) : (series color) Color of the label border and arrow
textColor (color) : (series color) Text color
Returns: (label) A label visible at the chart level intended for the title pattern
haramiBear()
Detects "Bearish Harami" candle patterns
Returns: (series bool) True when pattern detected
hbLab(showLabel, labelColor, textColor)
Produces "Bearish Harami" identifier label
Parameters:
showLabel (bool) : (series bool) Shows label when input is true. Default is false
labelColor (color) : (series color) Color of the label border and arrow
textColor (color) : (series color) Text color
Returns: (label) A label visible at the chart level intended for the title pattern
haramiBullCross()
Detects "Bullish Harami Cross" candle patterns
Returns: (series bool) True when pattern detected
hcwLab(showLabel, labelColor, textColor)
Produces "Bullish Harami Cross" identifier label
Parameters:
showLabel (bool) : (series bool) Shows label when input is true. Default is false
labelColor (color) : (series color) Color of the label border and arrow
textColor (color) : (series color) Text color
Returns: (label) A label visible at the chart level intended for the title pattern
haramiBearCross()
Detects "Bearish Harami Cross" candle patterns
Returns: (series bool) True when pattern detected
hcbLab(showLabel, labelColor, textColor)
Produces "Bearish Harami Cross" identifier label
Parameters:
showLabel (bool) : (series bool) Shows label when input is true. Default is false
labelColor (color) : (series color) Color of the label border and arrow
textColor (color)
Returns: (label) A label visible at the chart level intended for the title pattern
marubullzu()
Detects "Bullish Marubozu" candle patterns
Returns: (series bool) True when pattern detected
mwLab(showLabel, labelColor, textColor)
Produces "Bullish Marubozu" identifier label
Parameters:
showLabel (bool) : (series bool) Shows label when input is true. Default is false
labelColor (color) : (series color) Color of the label border and arrow
textColor (color) : (series color) Text color
Returns: (label) A label visible at the chart level intended for the title pattern
marubearzu()
Detects "Bearish Marubozu" candle patterns
Returns: (series bool) True when pattern detected
mbLab(showLabel, labelColor, textColor)
Produces "Bearish Marubozu" identifier label
Parameters:
showLabel (bool) : (series bool) Shows label when input is true. Default is false
labelColor (color) : (series color) Color of the label border and arrow
textColor (color) : (series color) Text color
Returns: (label) A label visible at the chart level intended for the title pattern
abandonedBull()
Detects "Bullish Abandoned Baby" candle patterns
Returns: (series bool) True when pattern detected
abwLab(showLabel, labelColor, textColor)
Produces "Bullish Abandoned Baby" identifier label
Parameters:
showLabel (bool) : (series bool) Shows label when input is true. Default is false
labelColor (color) : (series color) Color of the label border and arrow
textColor (color) : (series color) Text color
Returns: (label) A label visible at the chart level intended for the title pattern
abandonedBear()
Detects "Bearish Abandoned Baby" candle patterns
Returns: (series bool) True when pattern detected
abbLab(showLabel, labelColor, textColor)
Produces "Bearish Abandoned Baby" identifier label
Parameters:
showLabel (bool) : (series bool) Shows label when input is true. Default is false
labelColor (color) : (series color) Color of the label border and arrow
textColor (color) : (series color) Text color
Returns: (label) A label visible at the chart level intended for the title pattern
piercing()
Detects "Piercing" candle patterns
Returns: (series bool) True when pattern detected
pLab(showLabel, labelColor, textColor)
Produces "Piercing" identifier label
Parameters:
showLabel (bool) : (series bool) Shows label when input is true. Default is false
labelColor (color) : (series color) Color of the label border and arrow
textColor (color) : (series color) Text color
Returns: (label) A label visible at the chart level intended for the title pattern
darkCloudCover()
Detects "Dark Cloud Cover" candle patterns
Returns: (series bool) True when pattern detected
dccLab(showLabel, labelColor, textColor)
Produces "Dark Cloud Cover" identifier label
Parameters:
showLabel (bool) : (series bool) Shows label when input is true. Default is false
labelColor (color) : (series color) Color of the label border and arrow
textColor (color) : (series color) Text color
Returns: (label) A label visible at the chart level intended for the title pattern
tasukiBull()
Detects "Upside Tasuki Gap" candle patterns
Returns: (series bool) True when pattern detected
utgLab(showLabel, labelColor, textColor)
Produces "Upside Tasuki Gap" identifier label
Parameters:
showLabel (bool) : (series bool) Shows label when input is true. Default is false
labelColor (color) : (series color) Color of the label border and arrow
textColor (color) : (series color) Text color
Returns: (label) A label visible at the chart level intended for the title pattern
tasukiBear()
Detects "Downside Tasuki Gap" candle patterns
Returns: (series bool) True when pattern detected
dtgLab(showLabel, labelColor, textColor)
Produces "Downside Tasuki Gap" identifier label
Parameters:
showLabel (bool) : (series bool) Shows label when input is true. Default is false
labelColor (color) : (series color) Color of the label border and arrow
textColor (color) : (series color) Text color
Returns: (label) A label visible at the chart level intended for the title pattern
risingThree()
Detects "Rising Three Methods" candle patterns
Returns: (series bool) True when pattern detected
rtmLab(showLabel, labelColor, textColor)
Produces "Rising Three Methods" identifier label
Parameters:
showLabel (bool) : (series bool) Shows label when input is true. Default is false
labelColor (color) : (series color) Color of the label border and arrow
textColor (color) : (series color) Text color
Returns: (label) A label visible at the chart level intended for the title pattern
fallingThree()
Detects "Falling Three Methods" candle patterns
Returns: (series bool) True when pattern detected
ftmLab(showLabel, labelColor, textColor)
Produces "Falling Three Methods" identifier label
Parameters:
showLabel (bool) : (series bool) Shows label when input is true. Default is false
labelColor (color) : (series color) Color of the label border and arrow
textColor (color) : (series color) Text color
Returns: (label) A label visible at the chart level intended for the title pattern
risingWindow()
Detects "Rising Window" candle patterns
Returns: (series bool) True when pattern detected
rwLab(showLabel, labelColor, textColor)
Produces "Rising Window" identifier label
Parameters:
showLabel (bool) : (series bool) Shows label when input is true. Default is false
labelColor (color) : (series color) Color of the label border and arrow
textColor (color) : (series color) Text color
Returns: (label) A label visible at the chart level intended for the title pattern
fallingWindow()
Detects "Falling Window" candle patterns
Returns: (series bool) True when pattern detected
fwLab(showLabel, labelColor, textColor)
Produces "Falling Window" identifier label
Parameters:
showLabel (bool) : (series bool) Shows label when input is true. Default is false
labelColor (color) : (series color) Color of the label border and arrow
textColor (color) : (series color) Text color
Returns: (label) A label visible at the chart level intended for the title pattern
kickingBull()
Detects "Bullish Kicking" candle patterns
Returns: (series bool) True when pattern detected
kwLab(showLabel, labelColor, textColor)
Produces "Bullish Kicking" identifier label
Parameters:
showLabel (bool) : (series bool) Shows label when input is true. Default is false
labelColor (color) : (series color) Color of the label border and arrow
textColor (color) : (series color) Text color
Returns: (label) A label visible at the chart level intended for the title pattern
kickingBear()
Detects "Bearish Kicking" candle patterns
Returns: (series bool) True when pattern detected
kbLab(showLabel, labelColor, textColor)
Produces "Bearish Kicking" identifier label
Parameters:
showLabel (bool) : (series bool) Shows label when input is true. Default is false
labelColor (color) : (series color) Color of the label border and arrow
textColor (color) : (series color) Text color
Returns: (label) A label visible at the chart level intended for the title pattern
lls(ratio)
Detects "Long Lower Shadow" candle patterns
Parameters:
ratio (float) : (float) A relationship of the lower wick to the overall candle size expressed as a percent. Default is 75%
Returns: (series bool) True when pattern detected
llsLab(showLabel, labelColor, textColor)
Produces "Long Lower Shadow" identifier label
Parameters:
showLabel (bool) : (series bool) Shows label when input is true. Default is false
labelColor (color) : (series color) Color of the label border and arrow
textColor (color) : (series color) Text color
Returns: (label) A label visible at the chart level intended for the title pattern
lus(ratio)
Detects "Long Upper Shadow" candle patterns
Parameters:
ratio (float) : (float) A relationship of the upper wick to the overall candle size expressed as a percent. Default is 75%
Returns: (series bool) True when pattern detected
lusLab(showLabel, labelColor, textColor)
Produces "Long Upper Shadow" identifier label
Parameters:
showLabel (bool) : (series bool) Shows label when input is true. Default is false
labelColor (color) : (series color) Color of the label border and arrow
textColor (color) : (series color) Text color
Returns: (label) A label visible at the chart level intended for the title pattern
bullNeck()
Detects "Bullish On Neck" candle patterns
Returns: (series bool) True when pattern detected
nwLab(showLabel, labelColor, textColor)
Produces "Bullish On Neck" identifier label
Parameters:
showLabel (bool) : (series bool) Shows label when input is true. Default is false
labelColor (color) : (series color) Color of the label border and arrow
textColor (color) : (series color) Text color
Returns: (label) A label visible at the chart level intended for the title pattern
bearNeck()
Detects "Bearish On Neck" candle patterns
Returns: (series bool) True when pattern detected
nbLab(showLabel, labelColor, textColor)
Produces "Bearish On Neck" identifier label
Parameters:
showLabel (bool) : (series bool) Shows label when input is true. Default is false
labelColor (color) : (series color) Color of the label border and arrow
textColor (color) : (series color) Text color
Returns: (label) A label visible at the chart level intended for the title pattern
soldiers(wickSize)
Detects "Three White Soldiers" candle patterns
Parameters:
wickSize (float) : (float) Maximum allowable top wick size throughout pattern expressed as a percent of total candle height. Default is 5%
Returns: (series bool) True when pattern detected
wsLab(showLabel, labelColor, textColor)
Produces "Three White Soldiers" identifier label
Parameters:
showLabel (bool) : (series bool) Shows label when input is true. Default is false
labelColor (color) : (series color) Color of the label border and arrow
textColor (color) : (series color) Text color
Returns: (label) A label visible at the chart level intended for the title pattern
crows(wickSize)
Detects "Three Black Crows" candle patterns
Parameters:
wickSize (float) : (float) Maximum allowable bottom wick size throughout pattern expressed as a percent of total candle height. Default is 5%
Returns: (series bool) True when pattern detected
bcLab(showLabel, labelColor, textColor)
Produces "Three Black Crows" identifier label
Parameters:
showLabel (bool) : (series bool) Shows label when input is true. Default is false
labelColor (color) : (series color) Color of the label border and arrow
textColor (color) : (series color) Text color
Returns: (label) A label visible at the chart level intended for the title pattern
triStarBull()
Detects "Bullish Tri-Star" candle patterns
Returns: (series bool) True when pattern detected
tswLab(showLabel, labelColor, textColor)
Produces "Bullish Tri-Star" identifier label
Parameters:
showLabel (bool) : (series bool) Shows label when input is true. Default is false
labelColor (color) : (series color) Color of the label border and arrow
textColor (color) : (series color) Text color
Returns: (label) A label visible at the chart level intended for the title pattern
triStarBear()
Detects "Bearish Tri-Star" candle patterns
Returns: (series bool) True when pattern detected
tsbLab(showLabel, labelColor, textColor)
Produces "Bearish Tri-Star" identifier label
Parameters:
showLabel (bool) : (series bool) Shows label when input is true. Default is false
labelColor (color) : (series color) Color of the label border and arrow
textColor (color) : (series color) Text color
Returns: (label) A label visible at the chart level intended for the title pattern
insideBar()
Detects "Inside Bar" candle patterns
Returns: (series bool) True when pattern detected
insLab(showLabel, labelColor, textColor)
Produces "Inside Bar" identifier label
Parameters:
showLabel (bool) : (series bool) Shows label when input is true. Default is false
labelColor (color) : (series color) Color of the label border and arrow
textColor (color) : (series color) Text color
Returns: (label) A label visible at the chart level intended for the title pattern
doubleInside()
Detects "Double Inside Bar" candle patterns
Returns: (series bool) True when pattern detected
dinLab(showLabel, labelColor, textColor)
Produces "Double Inside Bar" identifier label
Parameters:
showLabel (bool) : (series bool) Shows label when input is true. Default is false
labelColor (color) : (series color) Color of the label border and arrow
textColor (color) : (series color) Text color
Returns: (label) A label visible at the chart level intended for the title pattern
wrap(cond, barsBack, borderColor, bgColor)
Produces a box wrapping the highs and lows over the look back.
Parameters:
cond (bool) : (series bool) Condition under which to draw the box.
barsBack (int) : (series int) the number of bars back to begin drawing the box.
borderColor (color) : (series color) Color of the four borders. Optional. The default is `color.gray` with a 45% transparency.
bgColor (color)
Returns: (box) A box whom's top and bottom are above and below the highest and lowest points over the lookback
topWick()
Returns the top wick size of the current candle
Returns: (series float) A value equivelent to the distance from the top of the candle body to its high
bottomWick()
Returns the bottom wick size of the current candle
Returns: (series float) A value equivelent to the distance from the bottom of the candle body to its low
body()
Returns the body size of the current candle
Returns: (series float) A value equivelent to the distance between the top and the bottom of the candle body
highestBody()
Returns the highest body of the current candle
Returns: (series float) A value equivelent to the highest body, whether it is the open or the close
lowestBody()
Returns the lowest body of the current candle
Returns: (series float) A value equivelent to the highest body, whether it is the open or the close
barRange()
Returns the height of the current candle
Returns: (series float) A value equivelent to the distance between the high and the low of the candle
bodyPct()
Returns the body size as a percent
Returns: (series float) A value equivelent to the percentage of body size to the overall candle size
midBody()
Returns the price of the mid-point of the candle body
Returns: (series float) A value equivelent to the center point of the distance bewteen the body low and the body high
bodyupGap()
Returns true if there is a gap up between the real body of the current candle in relation to the candle prior
Returns: (series bool) True if there is a gap up and no overlap in the real bodies of the current candle and the preceding candle
bodydwnGap()
Returns true if there is a gap down between the real body of the current candle in relation to the candle prior
Returns: (series bool) True if there is a gap down and no overlap in the real bodies of the current candle and the preceding candle
gapUp()
Returns true if there is a gap down between the real body of the current candle in relation to the candle prior
Returns: (series bool) True if there is a gap down and no overlap in the real bodies of the current candle and the preceding candle
gapDwn()
Returns true if there is a gap down between the real body of the current candle in relation to the candle prior
Returns: (series bool) True if there is a gap down and no overlap in the real bodies of the current candle and the preceding candle
dojiBody()
Returns true if the candle body is a doji
Returns: (series bool) True if the candle body is a doji. Defined by a body that is 5% of total candle size
cc AJ TIME WITH TIME EXTENSIONcc AJ TIME WITH TIME EXTENSION – Flexible Session & Time-Based Highlighter (v6)
A fully customizable Pine Script® indicator that lets you highlight specific times of day using three different calculation methods and draw extended background rectangles (session boxes) forward in time.
Features:
• Up to 6 independent time rules
• Three selectable detection methods for each rule (you can combine them):
– Direct minute match (e.g. when the current minute = your target)
– Addition method (hour + minute = target value)
– Subtraction method (minute − hour = target value)
• Each rule can independently color candles (barcolor) and/or draw a price-level rectangle
• Rectangles automatically extend right for a user-defined duration (hours + minutes)
• Individual control over fill color, opacity, border color, and border thickness
• Works on any timeframe and any symbol
• Uses UTC+2 as reference timezone (common for many European/London-based sessions – change in code if needed)
Perfect for marking custom session windows, recurring intraday time windows, or any personal time-based confluences you trade.
No external data, no repainting, no hidden calculations – completely transparent and compliant with TradingView House Rules.
Educational / personal use only • Not financial advice
OTT Volatility [RunRox]📊 OTT Volatility is an indicator developed by the RunRox team to pinpoint the most optimal time to trade across different markets.
OTT stands for Optimal Trade Time Volatility and is designed primarily for markets without a fixed trading session, such as cryptocurrencies that trade 24/7. At the same time, it works equally well on any other market.
🔶 The concept is straightforward. The indicator takes a specified number of historical periods (Samples) and statistically evaluates which hours of the day or which days show the highest volatility for the selected asset.
As a result, it highlights time windows with elevated volatility where traders can focus on searching for trade setups and building positions.
🔶 As the core volatility metric, the indicator uses ATR (Average True Range) to measure intraday volatility. Then it calculates the average ATR value over the last N Samples, creating a statistically stable estimate of typical volatility for the selected asset.
🔶 Statistically, during these highlighted periods the market shows higher-than-average volatility.
This means that in these time windows price is more likely to be subject to stronger moves and potential manipulation, making them attractive for active trade execution and position management.
⚠️ However, historical behavior does not guarantee future results.
These periods should be treated only as zones where volatility has a higher probability of being above normal, not as a promise of movement.
As shown in the screenshot above, the indicator also projects potential future volatility based on historical data. This helps you better plan your trading hours and align your activity with periods where volatility is statistically expected to be higher or lower.
🔶 Current Volatility – as shown in the screenshot above, you can also monitor the real-time volatility of the market without any statistical averaging.
On top of that, you can overlay the current volatility on top of the statistical volatility levels, which makes it easy to see whether the market is now trading in a high- or low-volatility regime relative to its usual behavior.
4 display modes – you can choose any visualization style that fits your trading workflow:
Absolute – displays the raw volatility values.
Relative – shows volatility relative to its typical levels.
Average Centered – centers volatility around its average value.
Trim Low Value – filters out low-volatility noise and highlights only more significant moves.
This indicator helps you define the most effective trading hours on any market by relying on historical volatility statistics.
Use it to quickly see when your market tends to be more active and to structure your trading sessions around those periods.
✅ We hope this tool becomes a useful part of your trading toolkit and helps you improve the quality of your decisions and timing.
ICT Macro Slot Algo Event📊 Overview
A powerful multi-timeframe trading indicator that combines Institutional Macro Session Tracking identify optimal trading windows throughout the day. This tool helps traders align with institutional flow patterns and algorithmic activity across major sessions.
🎯 Key Features
1. Macro Algo Event Sessions
Tracks 6 key institutional time windows during NY Session:
NY Sweep (08:50-09:10) - Opening balance flows
Silver Bullet #1 (09:50-10:10) - First major macro move
Silver Bullet #2 (10:50-11:10) - Second chance/retest opportunity
Lunch Macro (11:50-12:10) - Mid-day repositioning
Post-Lunch Rebalance (13:10-13:40) - Post-lunch adjustments
NY Closing Macros (15:15-15:45) - End-of-day flows
ICT Macro Slot Algo Event📊 Overview
A powerful multi-timeframe trading indicator that combines Institutional Macro Session Tracking to identify optimal trading windows throughout the day. This tool helps traders align with institutional flow patterns and algorithmic activity across major sessions.
🎯 Key Features
1. Macro Algo Event Sessions
Tracks 6 key institutional time windows during NY Session:
NY Sweep (08:50-09:10) - Opening balance flows
Silver Bullet #1 (09:50-10:10) - First major macro move
Silver Bullet #2 (10:50-11:10) - Second chance/retest opportunity
Lunch Macro (11:50-12:10) - Mid-day repositioning
Post-Lunch Rebalance (13:10-13:40) - Post-lunch adjustments
NY Closing Macros (15:15-15:45) - End-of-day flows
Liquidity Void Zone Detector [PhenLabs]📊 Liquidity Void Zone Detector
Version: PineScript™v6
📌 Description
The Liquidity Void Zone Detector is a sophisticated technical indicator designed to identify and visualize areas where price moved with abnormally low volume or rapid momentum, creating "voids" in market liquidity. These zones represent areas where insufficient trading activity occurred during price movement, often acting as magnets for future price action as the market seeks to fill these gaps.
Built on PineScript v6, this indicator employs a dual-detection methodology that analyzes both volume depletion patterns and price movement intensity relative to ATR. The revolutionary 3D visualization system uses three-layer polyline rendering with adaptive transparency and vertical offsets, creating genuine depth perception where low liquidity zones visually recede and high liquidity zones protrude forward. This makes critical market structure immediately apparent without cluttering your chart.
🚀 Points of Innovation
Dual detection algorithm combining volume threshold analysis and ATR-normalized price movement sensitivity for comprehensive void identification
Three-layer 3D visualization system with progressive transparency gradients (85%, 78%, 70%) and calculated vertical offsets for authentic depth perception
Intelligent state machine logic that tracks consecutive void bars and only renders zones meeting minimum qualification requirements
Dynamic strength scoring system (0-100 scale) that combines inverted volume ratios with movement intensity for accurate void characterization
Adaptive ATR-based spacing calculation that automatically adjusts 3D layering depth to match instrument volatility
Efficient memory management system supporting up to 100 simultaneous void visualizations with automatic array-based cleanup
🔧 Core Components
Volume Analysis Engine: Calculates rolling volume averages and compares current bar volume against dynamic thresholds to detect abnormally thin trading conditions
Price Movement Analyzer: Normalizes bar range against ATR to identify rapid price movements that indicate liquidity exhaustion regardless of instrument or timeframe
Void Tracking State Machine: Maintains persistent tracking of void start bars, price boundaries, consecutive bar counts, and cumulative strength across multiple bars
3D Polyline Renderer: Generates three-layer rectangular polylines with precise timestamp-to-bar index conversion and progressive offset calculations
Strength Calculation System: Combines volume component (inverted ratio capped at 100) with movement component (ATR intensity × 30) for comprehensive void scoring
🔥 Key Features
Automatic Void Detection: Continuously scans price action for low volume conditions or rapid movements, triggering void tracking when thresholds are exceeded
Real-Time Visualization: Creates 3D rectangular zones spanning from void initiation to termination, with color-coded depth indicating liquidity type
Adjustable Sensitivity: Configure volume threshold multiplier (0.1-2.0x), price movement sensitivity (0.5-5.0x), and minimum qualifying bars (1-10) for customized detection
Dual Color Coding: Separate visual treatment for low liquidity voids (receding red) and high liquidity zones (protruding green) based on 50-point strength threshold
Optional Compact Labels: Toggle LV (Low Volume) or HV (High Volume) circular labels at void centers for quick identification without visual clutter
Lookback Period Control: Adjust analysis window from 5 to 100 bars to match your trading timeframe and market volatility characteristics
Memory-Efficient Design: Automatically manages polyline and label arrays, deleting oldest elements when user-defined maximum is reached
Data Window Integration: Plots void detection binary, current strength score, and average volume for detailed analysis in TradingView's data window
🎨 Visualization
Three-Layer Depth System: Each void is rendered as three stacked polylines with progressive transparency (85%, 78%, 70%) and calculated vertical offsets creating authentic 3D appearance
Directional Depth Perception: Low liquidity zones recede with back layer most transparent; high liquidity zones protrude with front layer most transparent for instant visual differentiation
Adaptive Offset Spacing: Vertical separation between layers calculated as ATR(14) × 0.001, ensuring consistent 3D effect across different instruments and volatility regimes
Color Customization: Fully configurable base colors for both low liquidity zones (default: red with 80 transparency) and high liquidity zones (default: green with 80 transparency)
Minimal Chart Clutter: Closed polylines with matching line and fill colors create clean rectangular zones without unnecessary borders or visual noise
Background Highlight: Subtle yellow background (96% transparency) marks bars where void conditions are actively detected in real-time
Compact Labeling: Optional tiny circular labels with 60% transparent backgrounds positioned at void center points for quick reference
📖 Usage Guidelines
Detection Settings
Lookback Period: Default: 10 | Range: 5-100 | Number of bars analyzed for volume averaging and void detection. Lower values increase sensitivity to recent changes; higher values smooth detection across longer timeframes. Adjust based on your trading timeframe: short-term traders use 5-15, swing traders use 20-50, position traders use 50-100.
Volume Threshold: Default: 1.0 | Range: 0.1-2.0 (step 0.1) | Multiplier applied to average volume. Bars with volume below (average × threshold) trigger void conditions. Lower values detect only extreme volume depletion; higher values capture more moderate low-volume situations. Start with 1.0 and decrease to 0.5-0.7 for stricter detection.
Price Movement Sensitivity: Default: 1.5 | Range: 0.5-5.0 (step 0.1) | Multiplier for ATR-normalized price movement detection. Values above this threshold indicate rapid price changes suggesting liquidity voids. Increase to 2.0-3.0 for volatile instruments; decrease to 0.8-1.2 for ranging or low-volatility conditions.
Minimum Void Bars: Default: 10 | Range: 1-10 | Minimum consecutive bars exhibiting void conditions required before visualization is created. Filters out brief anomalies and ensures only sustained voids are displayed. Use 1-3 for scalping, 5-10 for intraday trading, 10+ for swing trading to match your time horizon.
Visual Settings
Low Liquidity Color: Default: Red (80% transparent) | Base color for zones where volume depletion or rapid movement indicates thin liquidity. These zones recede visually (back layer most transparent). Choose colors that contrast with your chart theme for optimal visibility.
High Liquidity Color: Default: Green (80% transparent) | Base color for zones with relatively higher liquidity compared to void threshold. These zones protrude visually (front layer most transparent). Ensure clear differentiation from low liquidity color.
Show Void Labels: Default: True | Toggle display of compact LV/HV labels at void centers. Disable for cleaner charts when trading; enable for analysis and review to quickly identify void types across your chart.
Max Visible Voids: Default: 50 | Range: 10-100 | Maximum number of void visualizations kept on chart. Each void uses 3 polylines, so setting of 50 maintains 150 total polylines. Higher values preserve more history but may impact performance on lower-end systems.
✅ Best Use Cases
Gap Fill Trading: Identify unfilled liquidity voids that price frequently returns to, providing high-probability retest and reversal opportunities when price approaches these zones
Breakout Validation: Distinguish genuine breakouts through established liquidity from false breaks into void zones that lack sustainable volume support
Support/Resistance Confluence: Layer void detection over key horizontal levels to validate structural integrity—levels within high liquidity zones are stronger than those in voids
Trend Continuation: Monitor for new void formation in trend direction as potential continuation zones where price may accelerate due to reduced resistance
Range Trading: Identify void zones within consolidation ranges that price tends to traverse quickly, helping to avoid getting caught in rapid moves through thin areas
Entry Timing: Wait for price to reach void boundaries rather than entering mid-void, as voids tend to be traversed quickly with limited profit-taking opportunities
⚠️ Limitations
Historical Pattern Indicator: Identifies past liquidity voids but cannot predict whether price will return to fill them or when filling might occur
No Volume on Forex: Indicator uses tick volume for forex pairs, which approximates but doesn't represent true trading volume, potentially affecting detection accuracy
Lagging Confirmation: Requires minimum consecutive bars (default 10) before void is visualized, meaning detection occurs after void formation begins
Trending Market Behavior: Strong trends driven by fundamental catalysts may create voids that remain unfilled for extended periods or permanently
Timeframe Dependency: Detection sensitivity varies significantly across timeframes; settings optimized for one timeframe may not perform well on others
No Directional Bias: Indicator identifies liquidity characteristics but provides no predictive signal for price direction after void detection
Performance Considerations: Higher max visible void settings combined with small minimum void bars can generate numerous visualizations impacting chart rendering speed
💡 What Makes This Unique
Industry-First 3D Visualization: Unlike flat volume or liquidity indicators, the three-layer rendering with directional depth perception provides instant visual hierarchy of liquidity quality
Dual-Mode Detection: Combines both volume-based and movement-based detection methodologies, capturing voids that single-approach indicators miss
Intelligent Qualification System: State machine logic prevents premature visualization by requiring sustained void conditions, reducing false signals and chart clutter
ATR-Normalized Analysis: All detection thresholds adapt to instrument volatility, ensuring consistent performance across stocks, forex, crypto, and futures without constant recalibration
Transparency-Based Depth: Uses progressive transparency gradients rather than colors or patterns to create depth, maintaining visual clarity while conveying information hierarchy
Comprehensive Strength Metrics: 0-100 void strength calculation considers both the degree of volume depletion and the magnitude of price movement for nuanced zone characterization
🔬 How It Works
Phase 1: Real-Time Detection
On each bar close, the indicator calculates average volume over the lookback period and compares current bar volume against the volume threshold multiplier
Simultaneously measures current bar's high-low range and normalizes it against ATR, comparing the result to price movement sensitivity parameter
If either volume falls below threshold OR movement exceeds sensitivity threshold, the bar is flagged as exhibiting void characteristics
Phase 2: Void Tracking & Qualification
When void conditions first appear, state machine initializes tracking variables: start bar index, initial top/bottom prices, consecutive bar counter, and cumulative strength accumulator
Each subsequent bar with void conditions extends the tracking, updating price boundaries to envelope all bars and accumulating strength scores
When void conditions cease, system checks if consecutive bar count meets minimum threshold; if yes, proceeds to visualization; if no, discards the tracking and resets
Phase 3: 3D Visualization Construction
Calculates average void strength by dividing cumulative strength by number of bars, then determines if void is low liquidity (>50 strength) or high liquidity (≤50 strength)
Generates three polyline layers spanning from start bar to end bar and from top price to bottom price, each with calculated vertical offset based on ATR
Applies progressive transparency (85%, 78%, 70%) with layer ordering creating recession effect for low liquidity zones and protrusion effect for high liquidity zones
Creates optional center label and pushes all visual elements into arrays for memory management
Phase 4: Memory Management & Display
Continuously monitors polyline array size (each void creates 3 polylines); when total exceeds max visible voids × 3, deletes oldest polylines via array.shift()
Similarly manages label array, removing oldest labels when count exceeds maximum to prevent memory accumulation over extended chart history
Plots diagnostic data to TradingView’s data window (void detection binary, current strength, average volume) for detailed analysis without cluttering main chart
💡 Note:
This indicator is designed to enhance your market structure analysis by revealing liquidity characteristics that aren’t visible through standard price and volume displays. For best results, combine void detection with your existing support/resistance analysis, trend identification, and risk management framework. Liquidity voids are descriptive of past market behavior and should inform positioning decisions rather than serve as standalone entry/exit signals. Experiment with detection parameters across different timeframes to find settings that align with your trading style and instrument characteristics.
nOI + Funding + CVD • strategynOI + Funding + CVD Strategy
Overview
This strategy is designed for cryptocurrency trading on platforms like TradingView, focusing on perpetual futures markets. It combines three key indicators—Normalized Open Interest (nOI), Funding Rate, and Cumulative Volume Delta (CVD)—to generate buy and sell signals for long and short positions. The strategy aims to capitalize on market imbalances, such as overextended open interest, funding rate extremes, and volume deltas, which often signal potential reversals or continuations in trending markets.
The script supports pyramiding (up to 10 positions), uses percentage-based position sizing (default 10% of equity per trade), and allows customization of trade directions (longs and shorts can be enabled/disabled independently). It includes multiple signal systems for entries, various exit mechanisms (including stop-loss, take-profit, time-based exits, and conditional closes based on indicators), a Martingale add-on system for averaging positions during drawdowns, and handling of opposite signals (ignore, close, or reverse).
This strategy is not financial advice; backtest thoroughly and use at your own risk. It requires data sources for Open Interest (OI) and Funding Rates, which are fetched via TradingView's security functions (e.g., from Binance for funding premiums).
Key Indicators
1. Normalized Open Interest (nOI)
Group: Open Interest
Purpose: Measures the relative level of open interest over a lookback window to identify overbought (high OI) or oversold (low OI) conditions, which can indicate potential exhaustion in trends.
Calculation:
Fetches OI data (close) from the symbol's standard ticker (e.g., "{symbol}_OI").
Normalizes OI within a user-defined window (default: 500 bars) using min-max scaling: (OI - min_OI) / (max_OI - min_OI) * 100.
Upper threshold (default: 70%): Signals potential short opportunities when crossed from above.
Lower threshold (default: 30%): Signals potential long opportunities when crossed from below.
Visualization: Plotted as a line (teal above upper, red below lower, gray in between). Horizontal lines at upper, mid (50%), lower, and a separator at 102%.
Notes: Handles non-crypto symbols by adjusting timeframe to daily if intraday. Errors if no OI data available.
2. Funding Rate
Group: Funding Rate
Purpose: Tracks the average funding rate (premium index) to detect market sentiment extremes. Positive funding suggests bull bias (longs pay shorts), negative suggests bear bias.
Calculation:
Fetches premium index data from Binance (e.g., "binance:{base}usdt_premium").
Supports lower timeframe aggregation (default: enabled, using 1-min TF) for smoother data.
Averages open and close premiums, clamps values, and scales/shifts for plotting (base: 150, scale: 1000x).
Upper threshold (default: 1.0%): Overheat for shorts.
Lower threshold (default: 1.0%): Overcool for longs.
Ultra level (default: 1.8%): Extreme for additional short signals.
Smoothing: Uses inverse weighted moving average (IWMA) or lower-TF aggregation to reduce noise.
Visualization: Shifted plot (green positive, red negative) with filled areas. Horizontal lines for overheat, overcool, base (0%), and ultra.
Notes: Custom ticker option for non-standard symbols.
3. Cumulative Volume Delta (CVD)
Group: CVD (Cumulative Volume Delta)
Purpose: Measures net buying/selling pressure via volume delta, normalized to identify divergences or confirmations with price.
Calculation:
Delta: +volume if close > open, -volume if close < open.
Cumulative: Rolling cumsum over a window (default: 500 bars), smoothed with EMA (default: 20).
Normalized: Scaled by absolute max in window (-1 to 1 range).
Scaled/shifted for plotting (base: 300 or 0 if anchored, scale: 120x).
Upper threshold (default: 1.0%): Over for shorts.
Lower threshold (default: 1.0%): Under for longs.
Visualization: Shifted plot (aqua positive, purple negative) with filled areas. Horizontal lines for over, under, and separator (default: 252).
Filter Options (for Signal A):
Enable filter (default: false).
Require sign match (Long ≥0, Short ≤0).
Require extreme zones.
Require momentum (rising/falling over N bars, default: 3).
Signal Logics for Entries
Entries are triggered by buy/sell signals from multiple systems (A, B, C, D), filtered by direction toggles and entry conditions.
Signal System A: OI + Funding (with optional CVD filter)
Enabled: Default true.
Sell (Short): nOI > upper threshold, falling over N bars (default: 3), delta ≥ threshold (default: 3%), funding > overheat, and CVD filter OK.
Buy (Long): nOI < lower threshold, rising over N bars (default: 3), delta ≥ threshold (default: 3%), funding < overcool, and CVD filter OK.
Signal System B: Short - Funding Crossunder + Filters
Enabled: Default true.
Sell (Short): Funding crosses under overheat level, optional: CVD > over, nOI < upper.
Signal System C: Short - Ultra Funding
Enabled: Default false.
Sell (Short): Funding crosses ultra level (up or down, both default true).
Signal System D: Long - Funding Crossover + Filters
Enabled: Default true.
Buy (Long): Funding crosses over overcool level, optional: CVD < under, nOI > lower.
Combined: Sell if A/B/C active; Buy if A/D active.
Entry Filters
Cooldown: Optional pause between entries (default: false, 3 bars).
Max Entries: Limit pyramiding (default: true, 6 max).
Entries only if both filters pass and direction allowed.
Opposite Signal Handling
Mode: Ignore (default), Reverse (close and enter opposite), or Close (exit only).
Processed before regular entries.
Position Management
Martingale (3 Steps):
Enabled per step (default: all true).
Triggers add-ons at loss levels (defaults: 5%, 8%, 11%) by adding % to position (default: 100% each).
Resets on position close.
Break Even:
Enabled (default: true).
Activates at profit threshold (default: 5%), sets SL better by offset (default: 0.1%).
Exit Systems
Multiple exits checked in sequence.
Exit 1: SL/TP
Enabled: Separate for long/short (default: true).
SL: % from avg price (defaults: 1% long/short).
TP: % from avg price (defaults: 2% long/short).
Exit 2: Funding
Enabled: Separate for long (up) / short (down) (default: true).
Long Exit: Funding > upper exit threshold (default: 0.8%).
Short Exit: Funding < lower exit threshold (default: 0.8%).
Exit 3: nOI
Enabled: Separate for long (up) / short (down) (default: true).
Long Exit: nOI > upper exit (default: 85%).
Short Exit: nOI < lower exit (default: 15%).
Exit 4: Global SL
Enabled: Default true.
Exit: If position loss ≥ % (default: 7%).
Exit 5: Break Even (integrated in position block)
Exit 6: Time Limit
Enabled: Separate for long/short (default: true).
Exit: After N bars in trade (defaults: 30 each).
Timer updates on add-ons if enabled (default: true).
Visual Elements
Buy/Sell Labels: Small labels ("BUY"/"SELL") on bars with signals, limited to last 30.
All indicators plotted on a separate pane (overlay=false).
Usage Notes
Backtesting: Adjust parameters based on asset/timeframe. Test on historical data.
Data Requirements: Works best on crypto perps with OI and funding data.
Risk Management: Incorporates SL/TP and global SL; monitor drawdowns with Martingale.
Customization: All thresholds, enables, and scales are inputs for fine-tuning.
Version: Pine Script v6.
For questions or improvements, contact the author. Happy trading!
Adaptive CE-VWAP Breakout Framework [KedArc Quant]Description
A structured framework that unites three complementary systems into one charting engine:
Chandelier Exit (CE) – ATR-based trailing logic that defines trend direction, stop placement, and risk/reward overlays.
Swing-Anchored VWAP (SWAV) – a dynamically anchored VWAP that re-starts from each confirmed swing and adapts its smoothness to volatility.
Pivot S/R with Volume Breaks – confirmed horizontal levels with alerts when broken on expanding volume.
This script builds a single workflow for bias → trigger → managementwithout mixing unrelated indicators. Each module is internally linked rather than layered cosmetically, making it a true analytical framework—not.
Acknowledgment
Special thanks to Dynamic Swing Anchored VWAP by Zeiierman, whose swing-anchoring concept inspired a part of the SWAV module’s implementation and adaptation logic.
Support and Resistance Levels with Breaks by LuxAlgo for S/R breakout logic.
How this helps traders
Trend clarity – CE color-codes direction and provides evolving stops.
Context value – SWAV traces adaptive mean paths so traders see where price is heavy or light.
Action filter – Pivot+volume logic highlights true structural breaks, filtering false moves.
Discipline tool – Optional R:R boxes visualize risk and target zones to enforce planning.
Entry / Exit guidelines (for study purposes only)
Bias Use CE direction: green = long bias red = short bias
Entry
1. Breakout method– Trade in CE direction when a pivot level breaks on valid volume.
2. VWAP confirmation– Prefer breaks occurring around the nearest SWAV path (fair-value cross or re-test).
Exit
Stop = CE line / recent swing HL / ATR × (multiplier)
Target = R-multiple × risk (default 2 R)
Optional live update keeps SL/TP aligned with current CE state.
Core formula concepts
ATR Stop: Stop = High/Low – ATR × multiplier
VWAP calc: Σ(price × vol) / Σ(vol) anchored at swing pivot, adapted by APT (Adaptive Price Tracking) ratio ∝ ATR volatility.
Volume oscillator: 100 × (EMA₅ – EMA₁₀)/EMA₁₀; valid break when threshold %.
Input configuration (high-level)
Master Controls
Show CE / SWAV modules Theme & Fill opacity
CE Section
ATR period & multiplier Use Close for extremums
Show buy/sell labels Await bar confirmation
Risk-Reward overlay: R-multiple, Stop basis (CE/Swing/ATR×), Live update toggle
SWAV Section
Swing period Adaptive Price Tracking length Volatility bias (ATR-based adaptation) Line width
Pivot & Volume Breaks
Left/Right bar windows Volume threshold % Show Break labels and alerts
Best timeframes
Intraday: 5 m – 30 m for breakout confirmation
Swing: 1 h – 4 h for trend context
Settings scale with instrument volatility—adjust ATR period and volume threshold to match liquidity.
Glossary
ATR: Average True Range (volatility metric)
CE: Chandelier Exit (trailing stop/trend filter)
SWAV: Swing-Anchored VWAP (anchored mean price path)
Pivot H/L: Confirmed local extrema using left/right bar windows
R-multiple: Profit target as a multiple of initial risk
FAQ
Q: Does it repaint? A: No—pivots wait for confirmation and VWAP updates forward-only.
Q: Can modules be disabled? A: Yes—each section has its own toggle.
Q: Can it trade automatically? A: This is an indicator/study, not an auto-strategy.
Q: Is this financial advice? A: No—educational use only.
Disclaimer
This script is for educational and analytical purposes only.
It is not financial advice. Trading involves risk of loss. Past performance does not guarantee future results. Always apply sound risk management.
DTC Killzones ICT🕐 DTC Killzones ICT — Visualize Market Sessions Like a Pro
The DTC Killzones ICT indicator is a clean and intuitive tool designed for traders who want to analyze and visualize institutional trading sessions directly on their charts.
Inspired by ICT’s Killzone concept , this script makes it easy to identify overlapping market sessions — such as London, New York, and Asian — and track how price behaves within each zone.
💡 What It Does
This indicator automatically highlights key market sessions (Killzones) on your chart with fully customizable colors, labels, and transparency.
Each zone dynamically updates to reflect real-time highs and lows, helping you identify:
Session ranges and liquidity zones
Volatility windows and breakout areas
Institutional footprints across sessions
Whether you trade Forex, Indices, or Crypto , this script gives you visual clarity on when and where smart money is likely to move.
⚙️ Main Features
✅ Up to four customizable sessions (New York, London, Asian, and London Close)
✅ Adjustable timeframes and timezone options — sync with your exchange or custom UTC offset
✅ Dynamic high/low range tracking for each session
✅ Toggle range outlines, session labels , and transparency levels
✅ Optional daily dividers and session transition markers
✅ Works on any timeframe and any symbol
🧠 How Traders Use It
ICT-based traders can easily mark Killzones to align with setups like FVGs, liquidity grabs, or Silver Bullet entries.
Intraday traders can visualize session volatility and overlap periods for potential entries.
Swing traders can identify daily structure shifts by tracking range-to-range behavior.
🛠️ Customization
You can fully rename, recolor, or disable each session block.
Adjust the range transparency for visual comfort, and toggle session or daily dividers to fit your workflow.
Everything is designed to be clean, light, and modular — no clutter, no confusion.
⚡ Recommended Settings
For ICT-style analysis:
London Session: 02:00–05:00
New York Session: 07:00–10:00
Asian Session: 19:30–24:00
London Close Session: 10:00–12:00
These time windows are fully editable to suit your timezone or strategy.
🧩 Compatibility
Works seamlessly with TradingView’s built-in timezone tools
Compatible with all instruments and timeframes
Designed to overlay directly on your price chart
🏁 Final Notes
The DTC Killzones ICT indicator focuses purely on market session visualization — no alerts, entries, or trading signals.
It’s designed to complement your existing strategies and enhance clarity when analyzing market behavior across global sessions.
📈 Built for traders who value precision, structure, and timing.
Dominus US Indici - Core4 (ES,NQ,YM,RTY) - EditabileOne-liner
“Dominus US Indici ranks ES, NQ, YM, RTY at the NY open using a blended Score (return from window start + VWAP delta) to highlight the strongest long/short and give clean BUY/SELL signals.”
Short paragraph
“Dominus US Indici analyzes the four core US indices (ES, NQ, YM, RTY) from the New York open. It builds a single Score by combining momentum from the window start with distance from VWAP, ranks the indices, and flags only the top, high-quality opportunity. Optional ‘Alpha vs S1’ (beta-neutral), macro gate (DXY & US10Y), editable symbols/timezone, and a freeze snapshot keep decisions consistent.”
Bullets
Core4: ES, NQ, YM, RTY (editable).
Score = Return from start + VWAP delta (weighted).
Live table + ranking; threshold → BUY/SELL signals.
Optional Alpha vs S1 and macro filter (DXY, US10Y).
Custom window/timezone + freeze at window end.
If you want, I can add a tighter IG caption + hashtags in your Dominus style.
Nqaba Goldminer StrategyThis indicator plots the New York session key timing levels used in institutional intraday models.
It automatically marks the 03:00 AM, 10:00 AM, and 2:00 PM (14:00) New York times each day:
Vertical lines show exactly when those time windows open — allowing traders to identify major global liquidity shifts between London, New York, and U.S. session overlaps.
Horizontal lines mark the opening price of the 5-minute candle that begins at each of those key times, providing precision reference levels for potential reversals, continuation setups, and intraday bias shifts.
Users can customize each line’s color, style (solid/dashed/dotted), width, and horizontal-line length.
A history toggle lets you display all past occurrences or just today’s key levels for a cleaner chart.
These reference levels form the foundation for strategies such as:
London Breakout to New York Reversal models
Opening Range / Session Open bias confirmation
Institutional volume transfer windows (London → NY → Asia)
The tool provides a simple visual structure for traders to frame intraday decision-making around recurring institutional time events.
Pivot Regime Anchored VWAP [CHE] Pivot Regime Anchored VWAP — Detects body-based pivot regimes to classify swing highs and lows, anchoring volume-weighted average price lines directly at higher highs and lower lows for adaptive reference levels.
Summary
This indicator identifies shifts between top and bottom regimes through breakouts in candle body highs and lows, labeling swing points as higher highs, lower highs, lower lows, or higher lows. It then draws anchored volume-weighted average price lines starting from the most recent higher high and lower low, providing dynamic support and resistance that evolve with volume flow. These anchored lines differ from standard volume-weighted averages by resetting only at confirmed swing extremes, reducing noise in ranging markets while highlighting momentum shifts in trends.
Motivation: Why this design?
Traders often struggle with static reference lines that fail to adapt to changing market structures, leading to false breaks in volatile conditions or missed continuations in trends. By anchoring volume-weighted average price calculations to body pivot regimes—specifically at higher highs for resistance and lower lows for support—this design creates reference levels tied directly to price structure extremes. This approach addresses the problem of generic moving averages lagging behind swing confirmations, offering a more context-aware tool for intraday or swing trading.
What’s different vs. standard approaches?
- Baseline reference: Traditional volume-weighted average price indicators compute a running total from session start or fixed periods, often ignoring price structure.
- Architecture differences:
- Regime detection via body breakout logic switches between high and low focus dynamically.
- Anchoring limited to confirmed higher highs and lower lows, with historical recalculation for accurate line drawing.
- Polyline rendering rebuilds only on the last bar to manage performance.
- Practical effect: Charts show fewer, more meaningful lines that start at swing points, making it easier to spot confluences with structure breaks rather than cluttered overlays from continuous calculations.
How it works (technical)
The indicator first calculates the maximum and minimum of each candle's open and close to define body highs and lows. It then scans a lookback window for the highest body high and lowest body low. A top regime triggers when the body high from the lookback period exceeds the window's highest, and a bottom regime when the body low falls below the window's lowest. These regime shifts confirm pivots only when crossing from one state to the other.
For top pivots, it compares the new body high against the previous swing high: if greater, it marks a higher high and anchors a new line; otherwise, a lower high. The same logic applies inversely for bottom pivots. Anchored lines use cumulative price-volume products and volumes from the anchor bar onward, subtracting prior cumulatives to isolate the segment. On pivot confirmation, it loops backward from the current bar to the anchor, computing and storing points for the line. New points append as bars advance, ensuring the line reflects ongoing volume weighting.
Initialization uses persistent variables to track the last swing values and anchor bars, starting with neutral states. Data flows from regime detection to pivot classification, then to anchoring and point accumulation, with lines rendered globally on the final bar.
Parameter Guide
Pivot Length — Controls the lookback window for detecting body breakouts, influencing pivot frequency and sensitivity to recent action. Shorter values catch more pivots in choppy conditions; longer smooths for major swings. Default: 30 (bars). Trade-offs/Tips: Min 1; for intraday, try 10–20 to reduce lag but watch for noise; on daily, 50+ for stability.
Show Pivot Labels — Toggles display of text markers at swing points, aiding quick identification of higher highs, lower highs, lower lows, or higher lows. Default: true. Trade-offs/Tips: Disable in multi-indicator setups to declutter; useful for backtesting structure.
HH Color — Sets the line and label color for higher high anchored lines, distinguishing resistance levels. Default: Red (solid). Trade-offs/Tips: Choose contrasting hues for dark/light themes; pair with opacity for fills if added later.
LL Color — Sets the line and label color for lower low anchored lines, distinguishing support levels. Default: Lime (solid). Trade-offs/Tips: As above; green shades work well for bullish contexts without overpowering candles.
Reading & Interpretation
Higher high labels and red lines indicate potential resistance zones where volume weighting begins at a new swing top, suggesting sellers may defend prior highs. Lower low labels and lime lines mark support from a fresh swing bottom, with the line's slope reflecting buyer commitment via volume. Lower highs or higher lows appear as labels without new anchors, signaling possible range-bound action. Line proximity to price shows overextension; crosses may hint at regime shifts, but confirm with volume spikes.
Practical Workflows & Combinations
- Trend following: Enter longs above a rising lower low anchored line after higher low confirmation; filter with rising higher highs for uptrends. Use line breaks as trailing stops.
- Exits/Stops: In downtrends, exit shorts below a higher high line; set aggressive stops above it for scalps, conservative below for swings. Pair with momentum oscillators for divergence.
- Multi-asset/Multi-TF: Defaults suit forex/stocks on 1H–4H; on crypto 15M, shorten length to 15. Scale colors for dark themes; combine with higher timeframe anchors for confluence.
Behavior, Constraints & Performance
Closed-bar logic ensures pivots confirm after the lookback period, with no repainting on historical bars—live bars may adjust until regime shift. No higher timeframe calls, so minimal repaint risk beyond standard delays. Resources include a 2000-bar history limit, label/polyline caps at 200/50, and loops for historical point filling (up to current bar count from anchor, typically under 500 iterations). Known limits: In extreme gaps or low-volume periods, anchors may skew; lines absent until first pivots.
Sensible Defaults & Quick Tuning
Start with the 30-bar length for balanced pivot detection across most assets. For too-frequent pivots in ranges, increase to 50 for fewer signals. If lines lag in trends, reduce to 20 and enable labels for visual cues. In low-volatility assets, widen color contrasts; test on 100-bar history to verify stability.
What this indicator is—and isn’t
This is a structure-aware visualization layer for anchoring volume-weighted references at swing extremes, enhancing manual analysis of regimes and levels. It is not a standalone signal generator or predictive model—always integrate with broader context like order flow or news. Use alongside risk management and position sizing, not as isolated buy/sell triggers.
Many thanks to LuxAlgo for the original script "McDonald's Pattern ". The implementation for body pivots instead of wicks uses a = max(open, close), b = min(open, close) and then highest(a, length) / lowest(b, length). This filters noise from the wicks and detects breakouts over/under bodies. Unusual and targeted, super innovative.
Disclaimer
The content provided, including all code and materials, is strictly for educational and informational purposes only. It is not intended as, and should not be interpreted as, financial advice, a recommendation to buy or sell any financial instrument, or an offer of any financial product or service. All strategies, tools, and examples discussed are provided for illustrative purposes to demonstrate coding techniques and the functionality of Pine Script within a trading context.
Any results from strategies or tools provided are hypothetical, and past performance is not indicative of future results. Trading and investing involve high risk, including the potential loss of principal, and may not be suitable for all individuals. Before making any trading decisions, please consult with a qualified financial professional to understand the risks involved.
By using this script, you acknowledge and agree that any trading decisions are made solely at your discretion and risk.
Do not use this indicator on Heikin-Ashi, Renko, Kagi, Point-and-Figure, or Range charts, as these chart types can produce unrealistic results for signal markers and alerts.
Best regards and happy trading
Chervolino
Tristan's Devil Mark (Short / Long, with W%R)The Devil’s Mark indicator is a visual tool designed to help traders identify potential short and long opportunities based on candle structure and market momentum. It combines price action analysis with the Williams %R (W%R) oscillator to highlight candles with high potential for reversal or continuation.
Can be used on any timeline, from scalping day trades to swing trades on daily and higher timelines. Know that the higher the timeline the less likely the indicator will show. (Asia and London sessions tend to show many indicators. I find this more useful for NY session.)
How the script works
Candle Structure Conditions
Short (Sell) Wedge: Plotted above green candles that have no bottom wick, indicating that inside that candle there was strong upward momentum without downside hesitation .
Long (Buy) Wedge: Plotted below red candles that have no top wick, indicating that inside that candle there was strong downward momentum without upside hesitation .
These candles are visually emphasized as wedges to mark potential turning points.
Williams %R Filter
The indicator uses Williams %R to measure overbought and oversold conditions:
Proximity to 0 (nearZeroThresh): Determines how close W%R must be to 0 (overbought) to trigger a Sell Wedge. This acts as a “Sell sensitivity” filter.
Proximity to -100 (nearHundredThresh): Determines how close W%R must be to -100 (oversold) to trigger a Buy Wedge. This acts as a “Buy sensitivity” filter.
When the candle meets both the candle structure and the W%R condition, the wedge is plotted in purple (“Within W%R Range”).
When the "ignore W%R filter" toggle is on, all eligible candles are plotted regardless of W%R. Wedges that normally would not meet W%R criteria are plotted in light purple (“Outside W%R Range”) to distinguish them. #YOLO (🚫 I recommend leaving "Ignore W%R Filter" OFF)
Settings Explained
Williams %R Length: The number of bars used to calculate the W%R oscillator. Shorter lengths make it more sensitive; longer lengths smooth the readings.
Proximity to 0 / 100: Controls how “strict” the indicator is in requiring overbought or oversold W%R conditions to trigger. Lower values mean closer to extreme zones, higher values are more permissive.
Ignore W%R Toggle: Option to show Devil’s Marks on every eligible candle regardless of W%R. Useful for visualizing purely price-action-based signals.
What the trader sees
Purple wedges: Candles meeting both candle structure and W%R conditions.
Light purple wedges: Candles meeting candle structure but ignored W%R (when toggle is on). #YOLO (🚫 I recommend leaving "Ignore W%R Filter" OFF)
Short opportunities are wedges above bars (green candles with no bottom wick).
Long opportunities are wedges below bars (red candles with no top wick).
Trading Insight
The Devil’s Mark is a momentum and reversal alert tool:
Look for purple downward-pointing wedges when W%R is near overbought. This is a potential shorting opportunity. Buying at the close of that candle may improve your short trades.
Look for purple upward-pointing wedges when W%R is near oversold. This is a potential
long opportunity. Buying at the close of that candle may improve your long trades.
Light purple wedges show the same price-action cues without W%R confirmation—useful for aggressive traders who want every potential setup. #YOLO #YMMV #noFullPort
Settings / Security
The “Output values” checkbox appears for each plotted series (like a plot or plotshape) and controls whether the series will also be exposed numerically in the Data Window or used by other indicators/scripts.
Here’s what it means in practice:
1. Checked (true)
The series values (like candle high, low, or any computed value) are exported to the Data Window and can be read by other scripts using request.security() or ta functions.
Example: You can see the exact numerical value of each plotted point in the Data Window when you hover over the chart.
Useful if you want to backtest or reference these plotted values programmatically.
2. Unchecked (false)
The series is plotted visually only.
The numeric values are hidden from the Data Window and cannot be accessed by other scripts.
Makes the chart cleaner if you don’t need the numeric outputs.
Time Line Indicator - by LMTime Line Indicator – by LM
Description:
The Time Line Indicator is a simple, clean, and customizable tool designed to visualize specific time periods within each hour directly in a dedicated indicator pane. It allows traders to mark important intraday minute ranges across multiple past hours, providing a clear visual reference for time-based analysis. This indicator is perfect for identifying recurring hourly windows, session patterns, or custom time-based events in your charts.
Unlike traditional overlays, this indicator does not interfere with price candles and draws its lines in a separate pane at the bottom of your chart for clarity.
Key Features:
Custom Hourly Lines:
Draw horizontal lines for a specific minute range within each hour, e.g., from the 45th minute to the 15th minute of the next hour.
Multi-Hour Support:
Choose how many past hours to display. The indicator will replicate the line for each selected hourly period, following the same minute logic.
Automatic Start/End Logic:
If your chosen start minute is in the previous hour, the line correctly begins at that time.
The end minute can cross into the next hour when applicable.
If the selected end minute does not yet exist in the current chart data, the line will extend to the latest available bar.
Dedicated Indicator Pane:
Lines appear in a fixed, non-intrusive y-axis within the indicator pane (overlay=false), keeping your price chart clean.
Customizable Appearance:
Line Color: Choose any color to match your chart theme.
Line Thickness: Adjust the width of the lines for better visibility.
Inputs:
Input Name Type Default Description
Line Color Color Orange The color of the horizontal lines.
Line Thickness Integer 2 The thickness of each line (1–5).
Start Minute Integer 5 The minute within the hour where the line begins (0–59).
End Minute Integer 25 The minute within the hour where the line ends (0–59).
Hours Back Integer 3 Number of past hours to display lines for.
Use Cases:
Intraday Analysis: Quickly visualize recurring minute ranges across multiple hours.
Session Tracking: Mark critical time windows for trading sessions or market events.
Pattern Recognition: Easily identify time-based patterns or setups without cluttering the price chart.
How It Works:
The indicator calculates the nearest bars corresponding to your start and end minutes.
It draws horizontal lines at a fixed y-axis value within the indicator pane.
Lines are drawn for each selected past hour, replicating the chosen minute span.
All logic respects the actual chart data; lines never extend into the future beyond the most recent bar.
Notes:
Overlay is set to false, so lines appear in a dedicated pane below the price chart.
The indicator is fully compatible with any timeframe. Lines adjust automatically to match the chart’s bar spacing.
You can change the number of hours displayed at any time without affecting existing lines.
If you want, I can also draft a shorter “TradingView Store / Public Library description” version under 500 characters for the “Short Description” field — concise and punchy for users scrolling through indicators.
Mayer Mutiple | QRMayer Multiple | QR — Publication Description
What it does
Mayer Multiple | QR is a cycle/valuation style oscillator that measures how far price sits above or below its longer-term average and normalizes that distance by current volatility. It helps you spot overheated extensions and deep discounts relative to trend, with adaptive bands that expand/contract as conditions change.
How it works (principle)
The script compares price to a long lookback moving average (default uses a 200-period average of ohlc4) and turns that gap into an oscillator.
It then computes a rolling standard deviation of that oscillator to build dynamic upper/lower bands (±1σ, ±2σ, ±3σ).
When the oscillator rises above the upper bands, the move is statistically stretched (potential distribution/risk). When it falls below the lower bands, it’s statistically depressed (potential accumulation/opportunity).
A small baseline band around zero (scaled from volatility) provides a quick trend-bias read without crowding the view.
Why this matters: Classic “Mayer Multiple” tools use a fixed threshold over a single moving average. This version is volatility-aware: its bands adapt to the market’s current dispersion, reducing false signals in quiet regimes and avoiding constant “overheat” flags in high-vol regimes.
What you see on the chart
White oscillator line: volatility-normalized deviation from the long-term average.
Adaptive bands:
Upper 1/2/3σ (shaded blue tones) = progressively more extended.
Lower 1/2/3σ (shaded green tones) = progressively more discounted.
Baseline ribbon: subtle band around zero for quick bias.
Background highlights: optional flashes when the oscillator exceeds the ±3σ extremes.
All visuals are generated by this script alone; no other indicator is required to understand usage.
How to use it
Context: Use on higher timeframes to gauge where price sits versus its long-term “fair value corridor.”
Signal reading:
Above +1σ/+2σ/+3σ: extension → consider de-risking, trailing stops, or waiting for mean reversion.
Below −1σ/−2σ/−3σ: discount → consider scaling in, watching for trend resumption cues.
Confluence: Treat it as a condition, not a trigger. Pair with structure (higher highs/lows), breadth, or momentum for entries/exits.
Regime awareness: As volatility rises, bands widen; prioritize trend context over single print extremes.
Inputs you can tune
Color mode: preset palettes for lines/fills/backgrounds.
Dynamic Threshold Length: lookback for the volatility (σ) calculation driving the adaptive bands.
Source: price input used for the long-term reference.
Band toggles: show/hide ±1σ / ±2σ / ±3σ envelopes to reduce clutter.
Originality & value
Adaptive, volatility-aware implementation of a Mayer-style concept: rather than one fixed threshold, it scales to current regime, keeping readings comparable across cycles.
Clear, clean presentation (oscillator + bands + optional background) designed for publication with a clean chart so the script’s output is immediately identifiable.
Offers actionable context (stretch/discount zones) while leaving trade execution to the user’s process.
Limitations & good practices
Best used for context and risk framing, not stand-alone entries.
Adaptive bands depend on the lookback you choose; very short windows can overfit, very long windows can lag.
Extremes can persist in strong trends—don’t fade momentum blindly.
Disclaimer
This tool is for research and education only and not investment advice. Markets involve risk. Past performance does not predict or guarantee future results. Use prudent risk management and test settings on your instruments/timeframes.
Algo Trading Signals - Buy/Sell System# 📊 Algo Trading Signals - Dynamic Buy/Sell System
## 🎯 Overview
**Algo Trading Signals** is a sophisticated intraday trading indicator designed for algorithmic traders and active day traders. This system generates precise buy and sell signals based on a dynamic box breakout strategy with intelligent position management, add-on entries, and automatic target adjustment.
The indicator creates a reference price box during a specified time window (default: 9:15 AM - 9:45 AM IST) and generates high-probability signals when price breaks out of this range with confirmation.
---
## ✨ Key Features
### 📍 **Smart Signal Generation**
- **Primary Entry Signals**: Clear buy/sell signals on confirmed breakouts above/below the reference box
- **Confirmation Bars**: Reduces false signals by requiring multiple bar confirmation before entry
- **Cooldown System**: Prevents overtrading with configurable cooldown periods between trades
- **Add-On Positions**: Automatically identifies optimal pullback entries for scaling into positions
### 📦 **Dynamic Reference Box**
- Creates a high/low range during your chosen time window
- Automatically updates after each successful trade
- Visual box display with color-coded boundaries (red=resistance, green=support)
- Mid-level reference line for market structure analysis
### 🎯 **Intelligent Position Management**
- **Automatic Target Calculation**: Sets profit targets based on average move distance
- **Add-On System**: Up to 3 additional entries on optimal pullbacks
- **Position Tracking**: Monitors active trades and remaining add-on capacity
- **Auto Box Shift**: Adjusts reference box after target hits for continued trading
### 📊 **Visual Clarity**
- **Color-Coded Labels**:
- 🟢 Green for BUY signals
- 🔴 Red for SELL signals
- 🔵 Blue for ADD-ON buys
- 🟠 Orange for ADD-ON sells
- ✓ Yellow for Target hits
- **TP Level Lines**: Dotted lines showing current profit targets
- **Hover Tooltips**: Detailed information on entry prices, targets, and add-on numbers
### 📈 **Real-Time Statistics**
Live performance dashboard showing:
- Total buy and sell signals generated
- Number of add-on positions taken
- Take profit hits achieved
- Current trade status (LONG/SHORT/None)
- Cooldown timer status
### 🔔 **Comprehensive Alerts**
Built-in alert conditions for:
- Primary buy entry signals
- Primary sell entry signals
- Add-on buy positions
- Add-on sell positions
- Buy take profit hits
- Sell take profit hits
---
## 🛠️ Configuration Options
### **Time Settings**
- **Box Start Hour/Minute**: Define when to begin tracking the reference range
- **Box End Hour/Minute**: Define when to lock the reference box
- **Default**: 9:15 AM - 9:45 AM (IST) - Perfect for Indian market opening range
### **Trade Settings**
- **Target Points (TP)**: Average move distance for profit targets (default: 40 points)
- **Breakout Confirmation Bars**: Number of bars to confirm breakout (default: 2)
- **Cooldown After Trade**: Bars to wait after closing position (default: 3)
- **Add-On Distance Points**: Minimum pullback for add-on entry (default: 40 points)
- **Max Add-On Positions**: Maximum additional positions allowed (default: 3)
### **Display Options**
- Toggle buy/sell signal labels
- Show/hide trading box visualization
- Show/hide TP level lines
- Show/hide statistics table
---
## 💡 How It Works
### **Phase 1: Box Formation (9:15 AM - 9:45 AM)**
The indicator tracks the high and low prices during your specified time window to create a reference box representing the opening range.
### **Phase 2: Breakout Detection**
After the box is locked, the system monitors for:
- **Bullish Breakout**: Price closes above box high for confirmation bars
- **Bearish Breakout**: Price closes below box low for confirmation bars
### **Phase 3: Signal Generation**
When confirmation requirements are met:
- Entry signal is generated with clear visual label
- Target price is calculated (Entry ± Target Points)
- Position tracking activates
- Cooldown timer starts
### **Phase 4: Position Management**
During active trade:
- **Add-On Logic**: If price pulls back by specified distance but stays within favorable range, additional entry signal fires
- **Target Monitoring**: Continuously checks if price reaches TP level
- **Box Adjustment**: After TP hit, box automatically shifts to new range for next opportunity
### **Phase 5: Trade Exit & Reset**
On target hit:
- Position closes with TP marker
- Statistics update
- Box repositions for next setup
- Cooldown activates
- System ready for next signal
---
## 📌 Best Use Cases
### **Ideal For:**
- ✅ Intraday breakout trading strategies
- ✅ Algorithmic trading systems (via alerts/webhooks)
- ✅ Opening range breakout (ORB) strategies
- ✅ Index futures (Nifty, Bank Nifty, Sensex)
- ✅ High-liquidity stocks with clear ranges
- ✅ Automated trading bots
- ✅ Scalping and day trading
### **Markets:**
- Indian Stock Market (NSE/BSE)
- Futures & Options
- Forex pairs
- Cryptocurrency (adjust timing for 24/7 markets)
- Global indices
---
## ⚙️ Integration with Algo Trading
This indicator is **algo-ready** and can be integrated with automated trading systems:
1. **TradingView Alerts**: Set up alert conditions for each signal type
2. **Webhook Integration**: Connect alerts to trading platforms via webhooks
3. **API Automation**: Use with brokers supporting TradingView integration (Zerodha, Upstox, Interactive Brokers, etc.)
4. **Signal Data Access**: All signals are plotted for external data retrieval
---
## 📖 Quick Start Guide
1. **Add Indicator**: Apply to your chart (works best on 1-5 minute timeframes)
2. **Configure Time Window**: Set your desired box formation period
3. **Adjust Parameters**: Tune confirmation bars, targets, and add-on settings to your trading style
4. **Set Alerts**: Create alert conditions for automated notifications
5. **Backtest**: Review historical signals to validate strategy performance
6. **Go Live**: Enable alerts and start receiving real-time trading signals
---
## ⚠️ Risk Disclaimer
This indicator is a **tool for analysis** and does not guarantee profits. Trading involves substantial risk of loss. Always:
- Use proper position sizing
- Implement stop losses (not included in this indicator)
- Test thoroughly before live trading
- Understand market conditions
- Never risk more than you can afford to lose
- Consider your risk tolerance and trading experience
**Past performance does not indicate future results.**
## 🔄 Version History
**v1.0** - Initial Release
- Dynamic box formation system
- Confirmed breakout signals
- Add-on position management
- Visual signal labels and statistics
- Comprehensive alert system
- Auto-adjusting target boxes
---
## 📞 Support & Feedback
If you find this indicator helpful:
- ⭐ Please leave a like/favorite
- 💬 Share your feedback in comments
- 📊 Share your results and improvements
- 🤝 Suggest features for future updates
---
## 🏷️ Tags
`breakout` `daytrading` `signals` `algo` `automated` `intraday` `ORB` `opening-range` `buy-sell` `scalping` `futures` `nifty` `banknifty` `algorithmic` `box-strategy`
*Remember: The best indicator is combined with proper risk management and trading discipline.* Use it at your own rist, not as financial advie
Time Range by exp3rtsTime Window highlights a custom time range directly on your chart, helping you focus on specific market sessions or trading hours.
Key Features:
Highlights a custom time range with a shaded background
Fully adjustable start and end time (hour & minute)
Supports multiple time zones (e.g., GMT, UTC, Europe/Berlin)
Optional market color shading inside the window (bull/bear neutral tone)
Use Cases:
Mark London Open, New York Session, or any session overlap
Focus on high-probability trading hours
Visualize your backtesting timeframe or algo activity window
Track premarket or after-hours activity for futures or indices
Customization:
Set the beginning and end time in your local or exchange time zone
Choose your timezone string (e.g., "GMT", "Etc/UTC", "America/New_York")
Automatically colors candles in the time window for easy visibility
Flux Power Dashboard (Updated and Renamed)Flux Power Dashboard is a compact market-state heads-up display for TradingView. It blends trend, momentum, and volume-flow into a single on-chart panel with color-coded cues and minimal lag. You get:
Clean visual trend via fast/slow MA with slope/debounce filters
MACD state and most recent cross (with “freshness” tint)
OBV confirmation and gating to reduce noise
Session awareness (Asia/London/New York + pre-sessions + overlap)
Optional HTF Regime row and regime gate to align signals to higher-timeframe bias
Context from VIX/VXN (volatility regime)
A single Flux Score (0–100) as a top-level read
It is deliberately “dashboard-first”: fast to read, consistent between symbols/timeframes, and designed to limit overtrading in chop.
What it can do (capabilities)
Signal gating: You can require multiple pillars to agree (Trend, MACD, OBV) before a “strong” bias is shown.
Debounced trend: Uses slope + confirmation bars to avoid flip-flopping.
Session presets: Auto-adjust the minimum confirmation bars by session (e.g., NY vs London vs Asia) to better match liquidity/volatility.
MACD presets: Quick switch between Scalp / Classic / Slow or roll your own custom speeds.
OBV confirmation: Volume flow must agree for trend/entries to “count” (optional).
HTF Regime awareness: Shows the higher-timeframe backdrop and (optionally) gates signals so you don’t fight the dominant trend.
Volatility context: VIX/VXN auto-colored cells based on your thresholds.
Top-center Session Title: Broadcasts the active session (or Overlap) with a matched background color.
Customizable UI: Column fonts, params font, transparency, dashboard corner, marker styles, colors, widths—tune it to your chart.
Practical use: Start with Flux Score + Summary for a snapshot, confirm with Trend & MACD, check OBV agreement (implicit in signal strength), glance at Regime to avoid counter-trend trades, and use Session + VIX/VXN for timing and risk context.
How it avoids common pitfalls
Repaint-aware: “Confirm on Close” can be enabled to read prior bar states, reducing intrabar noise.
Auto MA sanity: If fast ≥ slow length, it auto-swaps under the hood to keep calculations valid.
Debounce & confirm: Trend flips only after X bars satisfy conditions, cutting false flips in chop.
Freshness tint: New Cross/Signal rows tint slightly brighter for a few bars, so you can spot recency at a glance.
Every line of the dashboard (what it shows, how it’s colored)
Flux Score
What: Composite 0–100 built from three pillars: Trend (40%), MACD (30%), OBV (30%).
Read: ≥70 Bullish, ≤30 Bearish, else Neutral.
Use: Quick “state of play” gauge—stronger alignment pushes the score toward extremes.
Regime (optional row)
What: Higher-timeframe (your Regime TF) backdrop using the same MA pair with HTF slope/ATR buffer.
Values: Bull / Bear / Range.
Gate (optional): If Regime Gate is ON, Trend/Signals only go directional when HTF agrees.
Summary
What: One-line narrative combining the three pillars: MACD (up/down/flat), OBV (up/down/flat), Trend (up/down/flat).
Use: Human-readable cross-check; should rhyme with Flux Score.
Trend
What: Debounced MA relationship on the current chart.
Strict: needs fast > slow and slow rising (mirror for down) + slope debounce + confirmation bars.
Lenient: allows fast > slow or slow rising (mirror for down) with the same debounce/confirm.
Color: Green = UP, Red = DOWN, Gray = FLAT.
Use: Your structural bias on the trading timeframe.
MACD
What: Current MACD line vs signal, using your selected preset (or custom).
Values: Bull (line above), Bear (below), Flat (equal/indeterminate).
Color: Green/Red/Gray.
Cross
What: Most recent MACD cross and how many bars ago it occurred (e.g., “MACD XUP | 3 bars”).
Freshness: If the cross happened within Fresh Signal Tint bars, the cell brightens slightly.
Use: Timing helper for inflection points.
Signal
What: Latest directional shift (from short-bias to long-bias or vice versa) and age in bars.
Strength:
Strong = Trend + MACD + OBV all align
Weak = partial alignment (e.g., Trend + MACD, or Trend + OBV)
Color: Green for long bias, Red for short bias; fresh signals tint brighter.
Use: Action cue—treat Strong as higher quality; Weak as situational.
MA
What: Your slow MA type and length, plus slope direction (“up”/“down”).
Use: Context even when Trend is FLAT; slope often turns before full trend flips.
Session
What: Current market session by Eastern Time: New York / London / Asia, Pre- windows, Overlap, or Off-hours.
Logic: If ≥2 main sessions are active, shows Overlap (and grays the top title background).
Use: Timing and expectations for liquidity/volatility; also drives session-based confirmation presets if enabled.
VIX
What: Real-time CBOE:VIX on your chosen TF.
Auto-color (if on):
Calm (< Calm) → Green
Watch (< Watch) → Yellow
Elevated (< Elevated) → Orange
Very High (≥ Elevated) → Red
Use: Equity market–wide risk mood; higher = bigger moves, lower = quieter.
VXN
What: CBOE:VXN (Nasdaq volatility index) on your chosen TF.
Auto-color thresholds like VIX.
Use: Tech-heavy risk mood; helpful for growth/QQQ/NDX names.
Footer (params row, bottom-right)
What: Key live settings so you always know the context:
P= Trend Confirmation Bars
O= OBV Confirmation Bars
Strict/Lenient (trend mode)
MACD preset (or “Custom”)
swap if MA lengths were auto-swapped for validity
Regime gate if enabled
Candles for clarity
Use: Quick integrity check when comparing charts/screenshots or changing presets.
Recommended workflow
Start at Flux Score & Summary → snapshot of alignment.
Check Trend (color) and MACD (Bull/Bear).
Look at Signal (Strong vs Weak, and age).
Glance at Regime (and use gate if you’re trend-following).
Use Session + VIX/VXN to adjust expectations (breakout vs mean-revert, risk sizing, patience).
Keep Confirm on Close ON when you want stability; turn it OFF for faster (but noisier) reads.
Notes & limitations
Not advice: This is an informational tool; always combine with your own risk rules.
Repaint vs responsiveness: With “Confirm on Close” OFF you’ll see faster state changes but may get more churn intrabar.
Presets matter: Scalp MACD reacts fastest; Slow reduces whipsaw. Choose for your timeframe.
Session windows depend on the strings you set; adjust if your broker’s feed or DST handling needs tweaks.
Commodity Channel Index DualThe CCI Dual is a custom TradingView indicator built in Pine Script v5, designed to help traders identify potential buy and sell signals using two Commodity Channel Index (CCI) oscillators. It combines a shorter-period CCI (default: 14) for quick momentum detection with a longer-period CCI (default: 50) for confirmation, focusing on mean-reversion opportunities in overbought or oversold conditions.
This setup is particularly suited for volatile markets like cryptocurrencies on higher timeframes (e.g., 3-day charts), where it highlights reversals by requiring both CCIs to cross out of extreme zones within a short window (default: 3 bars).
The indicator plots the CCIs, customizable bands (inner: 100, OB/OS: 175, outer: 200), dynamic fills for visual emphasis, background highlights for signals, and alert conditions for notifications.
How It Works
The indicator calculates two CCIs based on user-defined lengths and source (default: close price):
CCI Calculation: CCI measures price deviation from its average, using the formula: CCI = (Typical Price - Simple Moving Average) / (0.015 * Mean Deviation). The short CCI reacts faster to price changes, while the long CCI provides smoother, trend-aware confirmation.
Overbought/Oversold Levels: Customizable thresholds define extremes (Overbought at +175, Oversold at -175 by default). Bands are plotted at inner (±100), mid (±175 dashed), and outer (±200) levels, with gray fills for the outer zones.
Dynamic Fills: The longer CCI is used to shade areas beyond OB/OS levels in red (overbought) or green (oversold) for quick visual cues.
Signals:
Buy Signal: Triggers when both CCIs cross above the Oversold level (-175) within the signal window (3 bars). This suggests a potential upward reversal from an oversold state.
Sell Signal: Triggers when both cross below the Overbought level (+175) within the window, indicating a possible downward reversal.
Visuals and Alerts: Buy signals highlight the background green, sells red. Separate alertconditions allow setting TradingView alerts for buys or sells independently.
Customization: Adjust lengths, levels, and window via inputs to fit your timeframe or asset—e.g., higher OB/OS for crypto volatility.
This logic reduces noise by requiring dual confirmation, but like all oscillators, it can produce false signals in strong trends where prices stay extended.
To mitigate false signals (e.g., in trending markets), layer the CCI Dual with MACD (default: 12,26,9) and RSI (default: 14) for multi-indicator confirmation:
With MACD: Only take CCI buys if the MACD line is above the signal line (or histogram positive), confirming bullish momentum. For sells, require MACD bearish crossover. This filters counter-trend signals by aligning with trend strength—e.g., ignore CCI sells if MACD shows upward momentum.
With RSI: Confirm CCI oversold buys only if RSI is below 30 and rising (or shows bullish divergence). For overbought sells, RSI above 70 and falling. This adds overextension validation, reducing whipsaws in crypto trends.
I made this customizable for you to find what works best for your asset you are trading. I trade the 6 hour and 3 day timeframe mainly on major cryptocurrency pairs. I hope you enjoy this script and it serves you well.






















