Harmonic Liquidity Waves [JOAT]Harmonic Liquidity Waves
Overview
Harmonic Liquidity Waves is an open-source oscillator indicator that combines multiple volume-based analysis techniques into a unified liquidity flow framework. It integrates VWAP calculations, Chaikin Money Flow (CMF), Money Flow Index (MFI), and Klinger Volume Oscillator (KVO) with custom harmonic wave calculations to provide a comprehensive view of volume dynamics and money flow.
What This Indicator Does
The indicator calculates and displays:
Liquidity Flow - Volume-weighted price movement accumulated over a lookback period
Harmonic Wave - Multi-depth smoothed oscillator derived from liquidity flow
Chaikin Money Flow (CMF) - Classic accumulation/distribution indicator
Money Flow Index (MFI) - Volume-weighted RSI showing buying/selling pressure
Klinger Volume Oscillator (KVO) - Trend-volume relationship indicator
Wave Interference - Combined constructive/destructive wave patterns
Volume Profile POC - Point of Control from simplified volume distribution
How It Works
The core liquidity flow calculation tracks volume-weighted price changes:
calculateLiquidityFlow(series float vol, series float price, simple int period) =>
float priceChange = ta.change(price)
float volumeFlow = vol * math.sign(priceChange)
// Accumulated over period using buffer array
float avgFlow = flowSum / period
avgFlow
The harmonic oscillator applies multi-depth smoothing:
harmonicOscillator(series float flow, simple int depth, simple int period) =>
float harmonic = 0.0
for i = 1 to depth
float wave = ta.ema(flow, period * i) / i
harmonic += wave
harmonic / depth
CMF measures accumulation/distribution using the Money Flow Multiplier:
float mfm = ((close - low) - (high - close)) / (high - low)
float mfv = mfm * vol
float cmf = ta.sum(mfv, period) / ta.sum(vol, period) * 100
Signal Generation
Liquidity shift signals occur when:
Bullish Shift: Smoothed wave crosses above signal line
Bearish Shift: Smoothed wave crosses below signal line
Strong signals require volume indicator confirmation:
Strong Bull: Bullish shift + CMF > 0 + MFI > 50 + KVO > 0
Strong Bear: Bearish shift + CMF < 0 + MFI < 50 + KVO < 0
Divergence detection compares price pivots with liquidity wave pivots to identify potential reversals.
Dashboard Panel (Bottom-Right)
Wave Strength - Normalized wave magnitude
Volume Pressure - Current volume vs average percentage
Flow Direction - BUYING or SELLING based on wave sign
Histogram - Wave minus signal line value
CMF - Chaikin Money Flow reading
MFI - Money Flow Index value (0-100)
KVO - Klinger oscillator value
Vol Confluence - Combined volume indicator score
Signal - Current actionable status
Visual Elements
Liquidity Wave - Main oscillator line
Wave Signal - Smoothed signal line for crossover detection
Wave Histogram - Difference between wave and signal
Wave Interference - Area plot showing combined wave patterns
CMF/KVO/MFI Lines - Individual volume indicator plots
Divergence Labels - BULL DIV / BEAR DIV markers
Shift Markers - Triangles for basic shifts, labels for strong shifts
Input Parameters
Wave Period (default: 21) - Base period for liquidity calculations
Volume Weight (default: 1.5) - Multiplier for volume emphasis
Harmonic Depth (default: 3) - Number of smoothing layers
Smoothing (default: 3) - Final wave smoothing period
Suggested Use Cases
Identify accumulation/distribution phases using CMF and wave direction
Confirm momentum with MFI overbought/oversold readings
Watch for divergences between price and liquidity flow
Use strong signals when multiple volume indicators align
Timeframe Recommendations
Best on 15m to Daily charts. Volume-based indicators require sufficient trading activity for meaningful readings.
Limitations
Volume data quality varies by exchange and instrument
Divergence detection uses pivot-based lookback and may lag
Volume Profile POC is simplified and not a full profile analysis
Open-Source and Disclaimer
This script is published as open-source under the Mozilla Public License 2.0 for educational purposes. It does not constitute financial advice. Past performance does not guarantee future results. Always use proper risk management.
- Made with passion by officialjackofalltrades
Futures
Dimensional Support ResistanceDimensional Support Resistance
Overview
Dimensional Support Resistance is an open-source overlay indicator that automatically detects and displays clean, non-overlapping support and resistance levels using pivot-based analysis with intelligent filtering. It identifies significant swing highs and lows, filters them by minimum distance to prevent visual clutter, and provides volume-confirmed bounce signals.
What This Indicator Does
The indicator calculates and displays:
Dynamic Pivot Levels - Automatically detected swing highs and lows based on configurable pivot strength
Distance Filtering - Ensures levels are spaced apart by a minimum percentage to prevent overlap
S/R Zones - Visual zones around each level showing the price area of significance
Bounce Detection - Identifies when price reverses at support or resistance levels
Volume Confirmation - Strong signals require above-average volume for confirmation
How It Works
Pivot detection scans for swing highs and lows using a configurable strength parameter. A pivot low requires the low to be lower than all surrounding bars within the strength period.
Signal Generation
The indicator generates bounce signals using TradingView's built-in pivot detection combined with candle reversal confirmation:
Support Bounce: Pivot low forms with bullish close (close > open)
Resistance Bounce: Pivot high forms with bearish close (close < open)
Strong Bounce: Bounce occurs with volume 1.5x above 20-period average
A cooldown period of 15 bars prevents signal spam.
Dashboard Panel
A compact dashboard displays:
Support - Count of active support levels
Resistance - Count of active resistance levels
Dashboard position is configurable (Top Left, Top Right, Bottom Left, Bottom Right).
Visual Elements
Support Lines - Green horizontal lines at support levels
Resistance Lines - Red horizontal lines at resistance levels
S/R Zones - Semi-transparent boxes around levels showing zone width
Price Labels - S: and R: labels showing exact price of nearest levels
BOUNCE Markers - Triangle shapes with text when price bounces at a level
STRONG Markers - Label shapes when bounce occurs with high volume
Input Parameters
Lookback Period (default: 100) - Historical bars to scan for pivots
Pivot Strength (default: 8) - Bars on each side required for valid pivot (higher = fewer but stronger levels)
Max Levels Each Side (default: 2) - Maximum support and resistance levels displayed
Zone Width % (default: 0.15) - Width of zones around each level as percentage of price
Min Distance Between Levels % (default: 1.0) - Minimum spacing between levels to prevent overlap
Show S/R Zones (default: true) - Toggle zone visualization
Show Bounce Signals (default: true) - Toggle signal markers
Support Color (default: #00ff88) - Color for support elements
Resistance Color (default: #ff3366) - Color for resistance elements
Suggested Use Cases
Identify key support and resistance levels for entry and exit planning
Use bounce signals as potential reversal confirmation
Combine with other indicators for confluence-based trading decisions
Monitor strong signals for high-probability setups with volume confirmation
Timeframe Recommendations
Works on all timeframes. Higher timeframes (4H, Daily) provide more significant levels with fewer signals. Lower timeframes show more granular structure but may produce more noise.
Limitations
Pivot detection requires lookback bars, so very recent pivots may not be immediately visible
Bounce signals are based on pivot formation and may lag by the pivot strength period
Levels are recalculated on each bar, so they may shift as new pivots form
Open-Source and Disclaimer
This script is published as open-source under the Mozilla Public License 2.0 for educational purposes. It does not constitute financial advice. Past performance does not guarantee future results. Always use proper risk management and conduct your own analysis before trading.
- Made with passion by officialjackofalltrades
Open Interest Weighted Average Price [Arjo]Open Interest Weighted Average Price , or OIWAP , is a simple visual indicator that shows the average price of an asset based on changes in open interest .
Instead of using trading volume like VWAP, this indicator gives more weight to prices where new futures contracts are being added or removed . This helps highlight the price levels where traders are actively building or closing positions.
The indicator shows:
A main line that represents the average price weighted by open interest changes.
Upper and lower bands (standard deviation bands) that show how far the price moves away from this average.
OIWAP is mainly useful for NSE futures markets , where open interest data is available. It helps traders visually understand where most market participation and positioning are taking place relative to price .
Concepts:
Applies statistical concepts, including weighted averaging and standard deviation, to open interest data
Uses the absolute change in open interest as a weighting factor for each price point
Creates a dynamic average that reflects where significant open interest activity has occurred during a given period
Standard deviation bands are computed from this weighted average to show the statistical spread of prices around the OIWAP line
Resets calculations based on user-selected time periods (daily, weekly, monthly, or session-based)
Allows for fresh analysis at regular intervals
Similar concept to volume-weighted average price (VWAP) indicators, but uses open interest changes as the weighting component
Features:
Weighted Average: Calculates a central line based on contract activity.
Flexible Anchors: Allows users to choose the reset period for the calculation.
Volatility Bands: Displays outer and mid-bands to visualize price stretches.
Data Check: Built-in alerts notify you if Open Interest data is missing for a symbol.
Visual Zones: Color-coded areas help identify price location at a glance.
How To Use
When you add the indicator to your chart, you will see:
A main OIWAP line — the open-interest-weighted price level
Mid-bands around the line (±0.5 standard deviations)
Outer bands farther away (±2.0 standard deviations)
Shaded background zones between these lines
You can:
Change the reset period to see how the average behaves over different time ranges
Adjust the timeframe for open-interest data
Turn mid-bands on or off
Adjust colors and styles to improve readability
Conclusion
The OIWAP indicator serves as an educational tool for visualizing the relationship between price movements and open interest activity in futures markets
Presents a weighted average price line along with statistical deviation bands
Offers a structured framework for chart analysis
Customizable settings allow users to adapt the display to their analytical preferences
Maintains focus on visual interpretation rather than directional predictions
Functions as a supplementary charting overlay that may complement other forms of technical and fundamental analysis
Disclaimer
This indicator is for educational and visual-analysis purposes only. It does not provide trading signals, financial advice, or guaranteed outcomes . You should perform your own research and consult a licensed financial professional when needed. All trading decisions are solely the responsibility of the user.
Fractal Market Geometry [JOAT]
Fractal Market Geometry
Overview
Fractal Market Geometry is an open-source overlay indicator that combines fractal analysis with harmonic pattern detection, Fibonacci retracements and extensions, Elliott Wave concepts, and Wyckoff phase identification. It provides traders with a geometric framework for understanding market structure and identifying potential reversal patterns with multi-factor signal confirmation.
What This Indicator Does
The indicator calculates and displays:
Fractal Detection - Identifies fractal highs and lows using Williams-style pivot analysis with configurable period
Fractal Dimension - Calculates market complexity using range-based dimension estimation
Harmonic Patterns - Detects Gartley, Butterfly, Bat, Crab, Shark, Cypher, and ABCD patterns using Fibonacci ratios
Fibonacci Retracements - Key levels at 38.2%, 50%, and 61.8%
Fibonacci Extensions - Projection level at 161.8%
Elliott Wave Count - Simplified wave counting based on pivot detection (1-5)
Wyckoff Phase - Volume-based phase identification (Accumulation, Markup, Distribution, Neutral)
Golden Spiral Levels - ATR-based support and resistance levels using phi (1.618) ratio
Trend Detection - EMA crossover trend identification (20/50 EMA)
How It Works
Fractal detection uses a configurable period to identify swing points:
detectFractalHigh(simple int period) =>
bool result = true
float centerVal = high
for i = 0 to period - 1
if high >= centerVal or high >= centerVal
result := false
break
Harmonic pattern detection uses Fibonacci ratio analysis between swing points. Each pattern has specific ratio requirements:
Gartley: AB 0.382-0.618, BC 0.382-0.886, CD 1.27-1.618
Butterfly: AB 0.382-0.5, BC 0.382-0.886, CD 1.618-2.24
Bat: AB 0.5-0.618, BC 1.13-1.618, CD 1.618-2.24
Crab: AB 0.382-0.618, BC 0.382-0.886, CD 2.24-3.618
Shark: AB 0.382-0.618, BC 1.13-1.618, CD 1.618-2.24
Cypher: AB 0.382-0.618, BC 1.13-1.414, CD 0.786-0.886
Wyckoff phase detection analyzes volume relative to price movement:
wyckoffPhase(simple int period) =>
float avgVol = ta.sma(volume, period)
float priceChg = ta.change(close, period)
string phase = "NEUTRAL"
if volume > avgVol * 1.5 and math.abs(priceChg) < close * 0.02
phase := "ACCUMULATION"
else if volume > avgVol * 1.5 and math.abs(priceChg) > close * 0.05
phase := "MARKUP"
else if volume < avgVol * 0.7
phase := "DISTRIBUTION"
phase
Signal Generation
Signals use multi-factor confirmation for accuracy:
BUY Signal: Fractal low + Uptrend (EMA20 > EMA50) + RSI 30-55 + Bullish candle + Volume confirmation
SELL Signal: Fractal high + Downtrend (EMA20 < EMA50) + RSI 45-70 + Bearish candle + Volume confirmation
Pattern Detection: Label appears when harmonic pattern completes at current bar
Dashboard Panel (Top-Right)
Dimension - Fractal dimension value (market complexity measure)
Last High - Most recent fractal high price
Last Low - Most recent fractal low price
Pattern - Current harmonic pattern name or NONE
Elliott Wave - Current wave count (Wave 1-5) or OFF
Wyckoff - Current market phase or OFF
Trend - BULLISH, BEARISH, or NEUTRAL based on EMA crossover
Signal - BUY, SELL, or WAIT status
Visual Elements
Fractal Markers - Small triangles at fractal highs (down arrow) and lows (up arrow)
Geometry Lines - Dashed lines connecting the most recent fractal high and low
Fibonacci Levels - Clean horizontal lines at 38.2%, 50%, and 61.8% retracement levels
Fibonacci Extension - Horizontal line at 161.8% extension level
Golden Spiral Levels - Support and resistance lines based on ATR x 1.618
3D Fractal Field - Optional depth layers around swing levels (OFF by default)
Harmonic Pattern Markers - Small diamond shapes when Crab, Shark, or Cypher patterns detected
Pattern Labels - Text label showing pattern name when detected
Signal Labels - BUY/SELL labels on confirmed multi-factor signals
Input Parameters
Fractal Period (default: 5) - Bars on each side for fractal detection
Geometry Depth (default: 3) - Complexity of geometric calculations
Pattern Sensitivity (default: 0.8) - Tolerance for pattern ratio matching
Show Fibonacci Levels (default: true) - Display retracement levels
Show Fibonacci Extensions (default: true) - Display extension level
Elliott Wave Detection (default: true) - Enable wave counting
Wyckoff Analysis (default: true) - Enable phase detection
Golden Spiral Levels (default: true) - Display spiral support/resistance
Show Fractal Points (default: true) - Display fractal markers
Show Geometry Lines (default: true) - Display connecting lines
Show Pattern Labels (default: true) - Display pattern name labels
Show 3D Fractal Field (default: false) - Display depth layers
Show Harmonic Patterns (default: true) - Display pattern markers
Show Buy/Sell Signals (default: true) - Display signal labels
Suggested Use Cases
Identify potential reversal zones using harmonic pattern completion
Use Fibonacci levels for entry, stop-loss, and target planning
Monitor Wyckoff phases for accumulation/distribution awareness
Track Elliott Wave counts for trend structure analysis
Use fractal dimension to gauge market complexity
Wait for multi-factor signal confirmation before entering trades
Timeframe Recommendations
Best on 1H to Daily charts. Lower timeframes produce more fractals but with less significance. Higher timeframes provide stronger levels and more reliable signals.
Limitations
Harmonic pattern detection uses simplified ratio ranges and may not match all textbook definitions
Elliott Wave counting is basic and does not include all wave rules
Wyckoff phase detection is volume-based approximation
Fractal dimension calculation is simplified
Signals require fractal confirmation which has inherent lag equal to the fractal period
Open-Source and Disclaimer
This script is published as open-source under the Mozilla Public License 2.0 for educational purposes. It does not constitute financial advice. Past performance does not guarantee future results. Always use proper risk management.
- Made with passion by officialjackofalltrades
Ocean Master [JOAT]Ocean Master QE - Advanced Oceanic Market Analysis with Quantum Flow Dynamics
Overview
Ocean Master QE is an open-source overlay indicator that combines multiple analytical techniques into a unified market analysis framework. It uses ATR-based dynamic channels, volume-weighted order flow analysis, multi-timeframe correlation (quantum entanglement concept), and harmonic oscillator calculations to provide traders with a comprehensive view of market conditions.
What This Indicator Does
The indicator calculates and displays several key components:
Dynamic Price Channels - ATR-adjusted upper, middle, and lower channels that adapt to current volatility conditions
Order Flow Analysis - Separates buying and selling volume pressure to calculate a directional delta
Smart Money Index - Volume-weighted order flow metric that highlights potential institutional activity
Harmonic Oscillator - Weighted combination of 10 Fibonacci-period EMAs (5, 8, 13, 21, 34, 55, 89, 144, 233, 377) to identify trend direction
Multi-Timeframe Correlation - Measures price correlation across 1H, 4H, and Daily timeframes
Wave Function Analysis - Momentum-based state detection that identifies when price action becomes decisive
How It Works
The core channel calculation uses ATR with a configurable quantum sensitivity factor:
float atr = ta.atr(i_atrLength)
float quantumFactor = 1.0 + (i_quantumSensitivity * 0.1)
float quantumATR = atr * quantumFactor
upperChannel := ta.highest(high, i_length) - (quantumATR * 0.5)
lowerChannel := ta.lowest(low, i_length) + (quantumATR * 0.5)
midChannel := (upperChannel + lowerChannel) * 0.5
Order flow is calculated by separating volume into buy and sell components based on candle direction:
The harmonic oscillator weights shorter EMAs more heavily using inverse weighting (1/1, 1/2, 1/3... 1/10), creating a responsive yet smooth trend indicator.
Signal Generation
Confluence signals require multiple conditions to align:
Bullish: Harmonic oscillator crosses above zero + positive Smart Money Index + positive Order Flow Delta
Bearish: Harmonic oscillator crosses below zero + negative Smart Money Index + negative Order Flow Delta
Dashboard Panel (Top-Right)
Bias - Current market direction based on price vs mid-channel
Entanglement - Multi-timeframe correlation score (0-100%)
Wave State - COLLAPSED (decisive) or SUPERPOSITION (uncertain)
Volume - Current volume relative to 20-period average
Volatility - ATR as percentage of price
Smart Money - Volume-weighted order flow reading
Visual Elements
Ocean Depth Layers - Gradient fills between channel levels representing different price zones
Channel Lines - Upper (surface), middle, and lower (seabed) dynamic levels
Divergence Markers - Triangle shapes when harmonic oscillator crosses zero
Confluence Labels - BULL/BEAR labels when multiple factors align
Suggested Use Cases
Identify trend direction using the harmonic oscillator and channel position
Monitor order flow for potential institutional activity
Use multi-timeframe correlation to confirm trade direction across timeframes
Watch for confluence signals where multiple factors align
Input Parameters
Length (default: 14) - Base period for channel and indicator calculations
ATR Length (default: 14) - Period for ATR calculation
Quantum Depth (default: 3) - Complexity factor for calculations
Quantum Sensitivity (default: 1.5) - Channel width multiplier
Timeframe Recommendations
Works on all timeframes. Higher timeframes (4H, Daily) provide smoother signals; lower timeframes require faster reaction times and may produce more noise.
Limitations
Multi-timeframe requests add processing overhead
Order flow estimation is based on candle direction, not actual order book data
Correlation calculations require sufficient historical data
Open-Source and Disclaimer
This script is published as open-source under the Mozilla Public License 2.0 for educational purposes. It does not constitute financial advice. Past performance does not guarantee future results. Always use proper risk management and conduct your own analysis before trading.
- Made with passion by officialjackofalltrades
CryptoFlux Dynamo [JOAT]CryptoFlux Dynamo: Velocity Scalping Strategy
WHAT THIS STRATEGY IS
CryptoFlux Dynamo is an open-source Pine Script v6 strategy designed for momentum-based scalping on cryptocurrency perpetual futures. It combines multiple technical analysis methods into a unified system that adapts its behavior based on current market volatility conditions.
This script is published open-source so you can read, understand, and modify the complete logic. The description below explains everything the strategy does so that traders who cannot read Pine Script can fully understand how it works before using it.
HOW THIS STRATEGY IS ORIGINAL AND WHY THE INDICATORS ARE COMBINED
This strategy uses well-known indicators (MACD, EMA, RSI, MFI, Bollinger Bands, Keltner Channels, ATR). The originality is not in the individual indicators themselves, but in the specific way they are integrated into a regime-adaptive system. Here is the detailed justification for why these components are combined and how they work together:
The Problem Being Solved:
Standard indicator-based strategies use fixed thresholds. For example, a typical MACD strategy might enter when the histogram crosses above zero. However, in cryptocurrency markets, volatility changes dramatically throughout the day and week. A MACD crossover during a low-volatility consolidation period has very different implications than the same crossover during a high-volatility trending period. Using the same entry thresholds and stop distances in both conditions leads to either:
Too many false signals during consolidation (if thresholds are loose)
Missing valid opportunities during expansion (if thresholds are tight)
Stops that are too tight during volatility spikes (causing premature exits)
Stops that are too wide during compression (giving back profits)
The Solution Approach:
This strategy first classifies the current volatility regime using normalized ATR (ATR as a percentage of price), then dynamically adjusts ALL other parameters based on that classification. This creates a context-aware system rather than a static threshold comparison.
How Each Component Contributes to the System:
ATR-Based Regime Classification (The Foundation)
The strategy calculates ATR over 21 periods, smooths it with a 13-period EMA to reduce noise from wicks, then divides by price to get a normalized percentage. This ATR% is classified into three regimes:
- Compression (ATR% < 0.8%): Market is consolidating, breakouts are more likely but false signals are common
- Expansion (ATR% 0.8% - 1.6%): Normal trending conditions
- Velocity (ATR% > 1.6%): High volatility, larger moves but also larger adverse excursions
This regime classification then controls stop distances, profit targets, trailing stop offsets, and signal strength requirements. The regime acts as a "meta-parameter" that tunes the entire system.
EMA Ribbon (8/21/34) - Trend Structure Detection
The three EMAs establish trend direction and structure. When EMA 8 > EMA 21 > EMA 34, the trend structure is bullish. The slope of the middle EMA (21) is calculated over 8 bars and converted to degrees using arctangent. This slope measurement quantifies trend strength, not just direction.
Why these specific periods? The 8/21/34 sequence follows Fibonacci-like spacing and provides good separation on 5-minute cryptocurrency charts. The fast EMA (8) responds to immediate price action, the mid EMA (21) represents the short-term trend, and the slow EMA (34) acts as a trend filter.
The EMA ribbon works with the regime classification: during compression regimes, the strategy requires stronger ribbon alignment before entry because false breakouts are more common.
MACD (8/21/5) - Momentum Measurement
The MACD uses faster parameters (8/21/5) than the standard (12/26/9) because cryptocurrency markets move faster than traditional markets. The histogram is smoothed with a 5-period EMA to reduce noise.
The key innovation is the adaptive histogram baseline. Instead of using a fixed threshold, the strategy calculates a rolling baseline from the smoothed absolute histogram value, then multiplies by a sensitivity factor (1.15). This means the threshold for "significant momentum" automatically adjusts based on recent momentum levels.
The MACD works with the regime classification: during velocity regimes, the histogram baseline is effectively higher because recent momentum has been stronger, preventing entries on relatively weak momentum.
RSI (21 period) and MFI (21 period) - Independent Momentum Confirmation
RSI measures momentum using price changes only. MFI (Money Flow Index) measures momentum using price AND volume. By requiring both to confirm, the strategy filters out price moves that lack volume support.
The 21-period length is longer than typical (14) to reduce noise on 5-minute charts. The trigger threshold (55 for longs, 45 for shorts) is slightly offset from 50 to require momentum in the trade direction, not just neutral readings.
These indicators work together: a signal requires RSI > 55 AND MFI > 55 for longs. This dual confirmation reduces false signals from price manipulation or low-volume moves.
Bollinger Bands (1.5 mult) and Keltner Channels (1.8 mult) - Squeeze Detection
When Bollinger Bands contract inside Keltner Channels, volatility is compressing and a breakout is likely. This is the "squeeze" condition. When the bands expand back outside the channels, the squeeze "releases."
The strategy uses a 1.5 multiplier for Bollinger Bands (tighter than standard 2.0) and 1.8 for Keltner Channels. These values were chosen to identify meaningful squeezes on 5-minute cryptocurrency charts without triggering too frequently.
The squeeze detection works with the regime classification: squeeze releases during compression regimes receive additional signal strength points because breakouts from consolidation are more significant.
Volume Impulse Detection - Institutional Participation Filter
The strategy calculates a volume baseline (34-period SMA) and standard deviation. A "volume impulse" is detected when current volume exceeds the baseline by 1.15x OR when the volume z-score exceeds 0.5.
This filter ensures entries occur when there is meaningful market participation, not during low-volume periods where price moves are less reliable.
Volume impulse is required for all entries and adds points to the composite signal strength score.
Cycle Oscillator - Trend Alignment Filter
The strategy calculates a 55-period EMA as a cycle basis, then measures price deviation from this basis as a percentage. When price is more than 0.15% above the cycle basis, the cycle is bullish. When more than 0.15% below, the cycle is bearish.
This filter prevents counter-trend entries. Long signals require bullish cycle alignment; short signals require bearish cycle alignment.
BTC Dominance Filter (Optional) - Market Regime Filter
The strategy can optionally use BTC.D (Bitcoin Dominance) as a market regime filter. When BTC dominance is rising (slope > 0.12), the market is in "risk-off" mode and long entries on altcoins are filtered. When dominance is falling (slope < -0.12), short entries are filtered.
This filter is optional because the BTC.D data feed may lag during low-liquidity periods.
How The Components Work Together (The Mashup Justification):
The strategy uses a composite scoring system where each signal pathway contributes points:
Trend Break pathway (30 points): Requires EMA ribbon alignment + positive slope + price breaks above recent structure high
Momentum Surge pathway (30 points): Requires MACD histogram > adaptive baseline + MACD line > signal + RSI > 55 + MFI > 55 + volume impulse
Squeeze Release pathway (25 points): Requires BB inside KC (squeeze) then release + momentum bias + histogram confirmation
Micro Pullback pathway (15 points): Requires shallow retracement to fast EMA within established trend + histogram confirmation + volume impulse
Additional modifiers:
+5 points if volume impulse is present, -5 if absent
+5 points in velocity regime, -2 in compression regime
+5 points if cycle is aligned, -5 if counter-trend
A trade only executes when the composite score reaches the minimum threshold (default 55) AND all filters agree (session, cycle bias, BTC dominance if enabled).
This scoring system is the core innovation: instead of requiring ALL conditions to be true (which would generate very few signals) or ANY condition to be true (which would generate too many false signals), the strategy requires ENOUGH conditions to be true, with different conditions contributing different weights based on their reliability.
HOW THE STRATEGY CALCULATES ENTRIES AND EXITS
Entry Logic:
1. Calculate current volatility regime from ATR%
2. Calculate all indicator values (MACD, EMA, RSI, MFI, squeeze, volume)
3. Evaluate each signal pathway and sum points
4. Check all filters (session, cycle, dominance, kill switch)
5. If composite score >= 55 AND all filters pass, generate entry signal
6. Calculate position size based on risk per trade and regime-adjusted stop distance
7. Execute entry with regime name as comment
Position Sizing Formula:
RiskCapital = Equity * (0.65 / 100)
StopDistance = ATR * StopMultiplier(regime)
RawQuantity = RiskCapital / StopDistance
MaxQuantity = Equity * (12 / 100) / Price
Quantity = min(RawQuantity, MaxQuantity)
Quantity = round(Quantity / 0.001) * 0.001
This ensures each trade risks approximately 0.65% of equity regardless of volatility, while capping total exposure at 12% of equity.
Stop Loss Calculation:
Stop distance is ATR multiplied by a regime-specific multiplier:
Compression regime: 1.05x ATR (tighter stops because moves are smaller)
Expansion regime: 1.55x ATR (standard stops)
Velocity regime: 2.1x ATR (wider stops to avoid premature exits during volatility)
Take Profit Calculation:
Target distance is ATR multiplied by regime-specific multiplier and base risk/reward:
Compression regime: 1.6x ATR * 1.8 base R:R * 0.9 regime bonus = approximately 2.6x ATR
Expansion regime: 2.05x ATR * 1.8 base R:R * 1.0 regime bonus = approximately 3.7x ATR
Velocity regime: 2.8x ATR * 1.8 base R:R * 1.15 regime bonus = approximately 5.8x ATR
Trailing Stop Logic:
When adaptive trailing is enabled, the strategy calculates a trailing offset based on ATR and regime:
Compression regime: 1.1x base offset (looser trailing to avoid noise)
Expansion regime: 1.0x base offset (standard)
Velocity regime: 0.8x base offset (tighter trailing to lock in profits during fast moves)
The trailing stop only activates when it would be tighter than the initial stop.
Momentum Fail-Safe Exits:
The strategy closes positions early if momentum reverses:
Long positions close if MACD histogram turns negative OR EMA ribbon structure breaks (fast EMA crosses below mid EMA)
Short positions close if MACD histogram turns positive OR EMA ribbon structure breaks
This prevents holding through momentum reversals even if stop loss hasn't been hit.
Kill Switch:
If maximum drawdown exceeds 6.5%, the strategy disables new entries until manually reset. This prevents continued trading during adverse conditions.
HOW TO USE THIS STRATEGY
Step 1: Apply to Chart
Use a 5-minute chart of a high-liquidity cryptocurrency perpetual (BTC/USDT, ETH/USDT recommended)
Ensure at least 200 bars of history are loaded for indicator stabilization
Use standard candlestick charts only (not Heikin Ashi, Renko, or other non-standard types)
Step 2: Understand the Visual Elements
EMA Ribbon: Three lines (8/21/34 periods) showing trend structure. Bullish when stacked upward, bearish when stacked downward.
Background Color: Shows current volatility regime
- Indigo/dark blue = Compression (low volatility)
- Purple = Expansion (normal volatility)
- Magenta/pink = Velocity (high volatility)
Bar Colors: Reflect signal strength divergence. Brighter colors indicate stronger directional bias.
Triangle Markers: Entry signals. Up triangles below bars = long entry. Down triangles above bars = short entry.
Dashboard (top-right): Real-time display of regime, ATR%, signal strengths, position status, stops, targets, and risk metrics.
Step 3: Interpret the Dashboard
Regime: Current volatility classification (Compression/Expansion/Velocity)
ATR%: Normalized volatility as percentage of price
Long/Short Strength: Current composite signal scores (0-100)
Cycle Osc: Price deviation from 55-period EMA as percentage
Dominance: BTC.D slope and filter status
Position: Current position direction or "Flat"
Stop/Target: Current stop loss and take profit levels
Kill Switch: Status of drawdown protection
Volume Z: Current volume z-score
Impulse: Whether volume impulse condition is met
Step 4: Adjust Parameters for Your Needs
For more conservative trading: Increase "Minimum Composite Signal Strength" to 65 or higher
For more aggressive trading: Decrease to 50 (but expect more false signals)
For higher timeframes (15m+): Increase "Structure Break Window" to 12-15, increase "RSI Momentum Trigger" to 58
For lower liquidity pairs: Increase "Volume Impulse Multiplier" to 1.3, increase slippage in strategy properties
To disable short selling: Uncheck "Enable Short Structure"
To disable BTC dominance filter: Uncheck "BTC Dominance Confirmation"
STRATEGY PROPERTIES (BACKTEST SETTINGS)
These are the exact settings used in the strategy's Properties dialog box. You must use these same settings when evaluating the backtest results shown in the publication:
Initial Capital: $100,000
Justification: This amount is higher than typical retail accounts. I chose this value to demonstrate percentage-based returns that scale proportionally. The strategy uses percentage-based position sizing (0.65% risk per trade), so a $10,000 account would see the same percentage returns with 10x smaller position sizes. The absolute dollar amounts in the backtest should be interpreted as percentages of capital.
Commission: 0.04% (commission_value = 0.04)
Justification: This reflects typical perpetual futures exchange fees. Major exchanges charge between 0.02% (maker) and 0.075% (taker). The 0.04% value is a reasonable middle estimate. If your exchange charges different fees, adjust this value accordingly. Higher fees will reduce net profitability.
Slippage: 1 tick
Justification: This is conservative for liquid pairs like BTC/USDT on major exchanges during normal conditions. For less liquid altcoins or during high volatility, actual slippage may be higher. If you trade less liquid pairs, increase this value to 2-3 ticks for more realistic results.
Pyramiding: 1
Justification: No position stacking. The strategy holds only one position at a time. This simplifies risk management and prevents overexposure.
calc_on_every_tick: true
Justification: The strategy evaluates on every price update, not just bar close. This is necessary for scalping timeframes where waiting for bar close would miss opportunities. Note that this setting means backtest results may differ slightly from bar-close-only evaluation.
calc_on_order_fills: true
Justification: The strategy recalculates immediately after order fills for faster response to position changes.
RISK PER TRADE JUSTIFICATION
The default risk per trade is 0.65% of equity. This is well within the TradingView guideline that "risking more than 5-10% on a trade is not typically considered viable."
With the 12% maximum exposure cap, even if the strategy takes multiple consecutive losses, the total risk remains manageable. The kill switch at 6.5% drawdown provides additional protection by halting new entries during adverse conditions.
The position sizing formula ensures that stop distance (which varies by regime) is accounted for, so actual risk per trade remains approximately 0.65% regardless of volatility conditions.
SAMPLE SIZE CONSIDERATIONS
For statistically meaningful backtest results, you should select a dataset that generates at least 100 trades. On 5-minute BTC/USDT charts, this typically requires:
2-3 months of data during normal market conditions
1-2 months during high-volatility periods
3-4 months during low-volatility consolidation periods
The strategy's selectivity (requiring 55+ composite score plus all filters) means it generates fewer signals than less filtered approaches. If your backtest shows fewer than 100 trades, extend the date range or reduce the minimum signal strength threshold.
Fewer than 100 trades produces statistically unreliable results. Win rate, profit factor, and other metrics can vary significantly with small sample sizes.
STRATEGY DESIGN COMPROMISES AND LIMITATIONS
Every strategy involves trade-offs. Here are the compromises made in this design and the limitations you should understand:
Selectivity vs. Opportunity Trade-off
The 55-point minimum threshold filters many potential trades. This reduces false signals but also misses valid setups that don't meet all criteria. Lowering the threshold increases trade frequency but decreases win rate. There is no "correct" threshold; it depends on your preference for fewer higher-quality signals vs. more signals with lower individual quality.
Regime Classification Lag
The ATR-based regime detection uses historical data (21 periods + 13-period smoothing). It cannot predict sudden volatility spikes. During flash crashes or black swan events, the strategy may be classified in the wrong regime for several bars before the classification updates. This is an inherent limitation of any lagging indicator.
Indicator Parameter Sensitivity
The default parameters (MACD 8/21/5, EMA 8/21/34, RSI 21, etc.) are tuned for BTC/ETH perpetuals on 5-minute charts during 2024 market conditions. Different assets, timeframes, or market regimes may require different parameters. There is no guarantee that parameters optimized on historical data will perform similarly in the future.
BTC Dominance Filter Limitations
The CRYPTOCAP:BTC.D data feed may lag during low-liquidity periods or weekends. The dominance slope calculation uses a 5-bar SMA, adding additional delay. If you notice the filter behaving unexpectedly, consider disabling it.
Backtest vs. Live Execution Differences
TradingView backtesting does not replicate actual broker execution. Key differences:
Backtests assume perfect fills at calculated prices; real execution involves order book depth, latency, and partial fills
The calc_on_every_tick setting improves backtest realism but still cannot capture sub-bar price action or order book dynamics
Commission and slippage settings are estimates; actual costs vary by exchange, time of day, and market conditions
Funding rates on perpetual futures are not modeled in backtests and can significantly impact profitability over time
Exchange-specific limitations (position limits, liquidation mechanics, order types) are not modeled
Market Condition Dependencies
This strategy is designed for trending and breakout conditions. During extended sideways consolidation with no clear direction, the strategy may generate few signals or experience whipsaws. No strategy performs well in all market conditions.
Cryptocurrency-Specific Risks
Cryptocurrency markets operate 24/7 without session boundaries. This means:
No natural "overnight" risk reduction
Volatility can spike at any time
Liquidity varies significantly by time of day
Exchange outages or issues can occur at any time
WHAT THIS STRATEGY DOES NOT DO
To be straightforward about limitations:
This strategy does not guarantee profits. Past backtest performance does not indicate future results.
This strategy does not predict the future. It reacts to current conditions based on historical patterns.
This strategy does not account for funding rates, which can significantly impact perpetual futures profitability.
This strategy does not model exchange-specific execution issues (partial fills, requotes, outages).
This strategy does not adapt to fundamental news events or black swan scenarios.
This strategy is not optimized for all market conditions. It may underperform during extended consolidation.
IMPORTANT RISK WARNINGS
Past performance does not guarantee future results. The backtest results shown reflect specific historical market conditions and parameter settings. Markets change constantly, and strategies that performed well historically may underperform or lose money in the future. A single backtest run does not constitute proof of future profitability.
Trading involves substantial risk of loss. Cryptocurrency derivatives are highly volatile instruments. You can lose your entire investment. Only trade with capital you can afford to lose completely.
This is not financial advice. This strategy is provided for educational and informational purposes only. It does not constitute investment advice, trading recommendations, or any form of financial guidance. The author is not a licensed financial advisor.
You are responsible for your own decisions. Before using this strategy with real capital:
Thoroughly understand the code and logic by reading the open-source implementation
Forward test with paper trading or very small positions for an extended period
Verify that commission, slippage, and execution assumptions match your actual trading environment
Understand that live results will differ from backtest results
Consider consulting with a qualified financial advisor
No guarantees or warranties. This strategy is provided "as is" without any guarantees of profitability, accuracy, or suitability for any purpose. The author is not responsible for any losses incurred from using this strategy.
OPEN-SOURCE CODE STRUCTURE
The strategy code is organized into these sections for readability:
Configuration Architecture: Input parameters organized into logical groups (Core Controls, Optimization Constants, Regime Intelligence, Signal Pathways, Risk Architecture, Visualization)
Helper Functions: calcQty() for position sizing, clamp01() and normalize() for value normalization, calcMFI() for Money Flow Index calculation
Core Indicator Engine: EMA ribbon, ATR and regime classification, MACD with adaptive baseline, RSI, MFI, volume analytics, cycle oscillator, BTC dominance filter, squeeze detection
Signal Pathway Logic: Trend break, momentum surge, squeeze release, micro pullback pathways with composite scoring
Entry/Exit Orchestration: Signal filtering, position sizing, entry execution, stop/target calculation, trailing stop logic, momentum fail-safe exits
Visualization Layer: EMA plots, regime background, bar coloring, signal labels, dashboard table
You can read and modify any part of the code. Understanding the logic before deployment is strongly recommended.
- Made with passion by officialjackofalltrades
Trend Strength Matrix [JOAT]Trend Strength Matrix — Multi-Timeframe Confluence Analysis System
This indicator addresses a specific analytical challenge: how to efficiently compare multiple technical measurements across different timeframes while accounting for their varying scales and interpretations. Rather than managing separate indicator windows with different scales, this tool normalizes four distinct analytical approaches to a common -1 to +1 scale and presents them in a unified matrix format.
Why This Combination Adds Value
The core problem this indicator solves is analytical fragmentation. Traders often use multiple indicators but struggle with:
1. **Scale Inconsistency**: RSI ranges 0-100, MACD has no fixed range, ADX ranges 0-100 but measures strength not direction
2. **Timeframe Coordination**: Checking multiple timeframes requires switching between charts or cramming multiple indicators
3. **Cognitive Load**: Processing different indicator types simultaneously creates mental overhead
4. **Confluence Assessment**: Determining when multiple approaches agree requires manual comparison
This indicator specifically addresses these issues by creating a standardized analytical framework where different measurement approaches can be directly compared both within and across timeframes.
Originality and Technical Innovation
While the individual components (RSI, MACD, ADX, Moving Average) are standard, the originality lies in:
1. **Unified Normalization System**: Each component is mathematically transformed to a -1 to +1 scale using component-specific normalization that preserves the indicator's core characteristics
2. **Multi-Timeframe Weighting Algorithm**: Higher timeframes receive proportionally more weight (40% current, 25% next, 20% third, 15% fourth) based on the principle that longer timeframes provide more significant context
3. **Real-Time Confluence Scoring**: The composite calculation provides an instant assessment of how much the different analytical approaches agree
4. **Adaptive Visual Encoding**: The heatmap format allows immediate pattern recognition of agreement/disagreement across both indicators and timeframes
How the Components Work Together
Each component measures a different aspect of market behavior, and their combination provides a more complete analytical picture:
**Momentum Component (RSI-based)**: Measures the velocity of price changes by comparing average gains to losses
**Trend Component (MACD-based)**: Measures the relationship between fast and slow moving averages, indicating trend acceleration/deceleration
**Strength Component (ADX-based)**: Measures trend strength regardless of direction, then applies directional bias
**Position Component (MA-based)**: Measures price position relative to a reference average
The mathematical relationship between these components creates a comprehensive view:
- When all four agree (similar colors), it suggests multiple analytical approaches are aligned
- When they disagree (mixed colors), it highlights analytical uncertainty or transition periods
- The composite score quantifies the degree of agreement numerically
Detailed Component Analysis
**1. Momentum Oscillator Component**
This component transforms RSI into a centered oscillator by subtracting 50 and dividing by 50, creating a -1 to +1 range where 0 represents equilibrium between buying and selling pressure.
// Momentum calculation normalized to -1 to +1 scale
float rsi = ta.rsi(close, rsiLength)
float rsiScore = (rsi - 50) / 50
// Result: 0 at equilibrium, +1 at extreme overbought, -1 at extreme oversold
**2. Moving Average Convergence Component**
MACD is normalized by its own volatility (standard deviation) to create a bounded oscillator. This prevents the unbounded nature of MACD from dominating the composite calculation.
// MACD normalized by its historical volatility
= ta.macd(close, macdFast, macdSlow, macdSignal)
float macdStdev = ta.stdev(macdLine, 100)
float macdScore = macdStdev != 0 ? math.max(-1, math.min(1, macdLine / (macdStdev * 2))) : 0
**3. Directional Movement Component**
This combines ADX (strength) with directional movement (+DI vs -DI) to create a directional strength measurement. ADX alone shows strength but not direction; this component adds directional context.
// ADX-based directional strength
= calcADX(adxLength)
float adxStrength = math.min(adx / 50, 1) // Normalize ADX to 0-1
float adxDirection = plusDI > minusDI ? 1 : -1 // Direction bias
float adxScore = adxStrength * adxDirection // Combine strength and direction
**4. Price Position Component**
This measures price deviation from a moving average, weighted by the magnitude of deviation to distinguish between minor and significant displacements.
// Price position relative to moving average
float ma = ta.sma(close, maLength)
float maDirection = close > ma ? 1 : -1
float maDeviation = math.abs(close - ma) / ma * 10 // Percentage deviation scaled
float maScore = math.max(-1, math.min(1, maDirection * math.min(maDeviation, 1)))
Multi-Timeframe Integration Logic
The multi-timeframe system uses a weighted average that gives more influence to higher timeframes:
// Timeframe weighting system
float currentTF = composite * 0.40 // Current timeframe: 40%
float higherTF1 = composite_tf2 * 0.25 // Next higher: 25%
float higherTF2 = composite_tf3 * 0.20 // Third higher: 20%
float higherTF3 = composite_tf4 * 0.15 // Fourth higher: 15%
float multiTFComposite = currentTF + higherTF1 + higherTF2 + higherTF3
This weighting reflects the principle that higher timeframes provide more significant context for market direction, while lower timeframes provide timing precision.
What the Dashboard Shows
The heatmap displays a grid where:
Each row represents a timeframe
Each column shows one component's normalized reading
Colors indicate the value: green shades for positive, red shades for negative, gray for neutral
The rightmost column shows the composite average for that timeframe
Visual Elements
Moving Average Line — A simple moving average plotted on the price chart
Background Tint — Subtle coloring based on the composite score
Shift Labels — Markers when the composite crosses threshold values
Dashboard Table — The main heatmap display
Inputs
Calculation Parameters:
Momentum Length (default: 14)
MACD Fast/Slow/Signal (default: 12/26/9)
Directional Movement Length (default: 14)
Moving Average Length (default: 50)
Timeframe Settings:
Enable/disable multi-timeframe analysis
Select additional timeframes to display
How to Read the Display
Similar colors across a row indicate the components are showing similar readings
Mixed colors indicate the components are showing different readings
The composite percentage shows the average of all four components
Alerts
Composite crossed above/below threshold values
Strong readings (above 50% or below -50%)
Important Limitations and Realistic Expectations
This indicator displays current analytical conditions—it does not predict future price movements
Agreement between components indicates current analytical alignment, not future price direction
All four components are based on historical price data and inherently lag price action
Market conditions can change rapidly, making current readings irrelevant
Different parameter settings will produce different readings and interpretations
No combination of technical indicators can reliably predict future market behavior
Strong readings in one direction do not guarantee continued movement in that direction
The composite score reflects mathematical relationships, not market fundamentals or sentiment
This tool should be used as one input among many in a comprehensive analytical approach
Appropriate Use Cases
This indicator is designed for:
- Analytical organization and efficiency
- Multi-timeframe confluence assessment
- Pattern recognition in indicator relationships
- Educational study of how different analytical approaches relate
- Supplementary analysis alongside other methods
This indicator is NOT designed for:
- Standalone trading signals
- Guaranteed profit generation
- Market timing precision
- Replacement of fundamental analysis
- Automated trading systems
— Made with passion by officialjackofalltrades
Session Volume Analyzer [JOAT]
Session Volume Analyzer — Global Trading Session and Volume Intelligence System
This indicator addresses the analytical challenge of understanding market participation patterns across global trading sessions. It combines precise session detection with comprehensive volume analysis to provide insights into when and how different market participants are active. The tool recognizes that different trading sessions exhibit distinct characteristics in terms of participation, volatility, and volume patterns.
Why This Combination Provides Unique Analytical Value
Traditional session indicators typically only show time boundaries, while volume indicators show raw volume data without session context. This creates analytical gaps:
1. **Session Context Missing**: Volume spikes without session context provide incomplete information
2. **Participation Patterns Hidden**: Different sessions have different participant types (retail, institutional, algorithmic)
3. **Comparative Analysis Lacking**: No easy way to compare volume patterns across sessions
4. **Timing Intelligence Absent**: Understanding WHEN volume occurs is as important as HOW MUCH volume occurs
This indicator's originality lies in creating an integrated session-volume analysis system that:
**Provides Session-Aware Volume Analysis**: Volume data is contextualized within specific trading sessions
**Enables Cross-Session Comparison**: Compare volume patterns between Asian, London, and New York sessions
**Delivers Participation Intelligence**: Understand which sessions are showing above-normal participation
**Offers Real-Time Session Tracking**: Know exactly which session is active and how current volume compares
Technical Innovation and Originality
While session detection and volume analysis exist separately, the innovation lies in:
1. **Integrated Session-Volume Architecture**: Simultaneous tracking of session boundaries and volume statistics creates comprehensive market participation analysis
2. **Multi-Session Volume Comparison System**: Real-time calculation and comparison of volume statistics across different global sessions
3. **Adaptive Volume Threshold Detection**: Automatic identification of above-average volume periods within session context
4. **Comprehensive Visual Integration**: Session backgrounds, volume highlights, and statistical dashboards provide complete market participation picture
How Session Detection and Volume Analysis Work Together
The integration creates a sophisticated market participation analysis system:
**Session Detection Logic**: Uses Pine Script's time functions to identify active sessions
// Session detection based on exchange time
bool inAsian = not na(time(timeframe.period, asianSession))
bool inLondon = not na(time(timeframe.period, londonSession))
bool inNY = not na(time(timeframe.period, nySession))
// Session transition detection
bool asianStart = inAsian and not inAsian
bool londonStart = inLondon and not inLondon
bool nyStart = inNY and not inNY
**Volume Analysis Integration**: Volume statistics are calculated within session context
// Session-specific volume accumulation
if asianStart
asianVol := 0.0
asianBars := 0
if inAsian
asianVol += volume
asianBars += 1
// Real-time session volume analysis
float asianAvgVol = asianBars > 0 ? asianVol / asianBars : 0
**Relative Volume Assessment**: Current volume compared to session-specific averages
float volMA = ta.sma(volume, volLength)
float volRatio = volMA > 0 ? volume / volMA : 1
// Volume classification within session context
bool isHighVol = volRatio >= 1.5 and volRatio < 2.5
bool isVeryHighVol = volRatio >= 2.5
This creates a system where volume analysis is always contextualized within the appropriate trading session, providing more meaningful insights than raw volume data alone.
Comprehensive Session Analysis Framework
**Default Session Definitions** (customizable based on broker timezone):
- **Asian Session**: 1800-0300 (exchange time) - Represents Asian market participation including Tokyo, Hong Kong, Singapore
- **London Session**: 0300-1200 (exchange time) - Represents European market participation
- **New York Session**: 0800-1700 (exchange time) - Represents North American market participation
**Session Overlap Analysis**: The system recognizes and highlights overlap periods:
- **London/New York Overlap**: 0800-1200 - Typically the highest volume period
- **Asian/London Overlap**: 0300-0300 (brief) - Transition period
- **New York/Asian Overlap**: 1700-1800 (brief) - End of NY, start of Asian
**Volume Intelligence Features**:
1. **Session-Specific Volume Accumulation**: Tracks total volume within each session
2. **Cross-Session Volume Comparison**: Compare current session volume to other sessions
3. **Relative Volume Detection**: Identify when current volume exceeds historical averages
4. **Participation Pattern Analysis**: Understand which sessions show consistent high/low participation
Advanced Volume Analysis Methods
**Relative Volume Calculation**:
float volMA = ta.sma(volume, volLength) // Volume moving average
float volRatio = volMA > 0 ? volume / volMA : 1 // Current vs average ratio
// Multi-tier volume classification
bool isNormalVol = volRatio < 1.5
bool isHighVol = volRatio >= 1.5 and volRatio < 2.5
bool isVeryHighVol = volRatio >= 2.5
bool isExtremeVol = volRatio >= 4.0
**Session Volume Tracking**:
// Cumulative session volume with bar counting
if londonStart
londonVol := 0.0
londonBars := 0
if inLondon
londonVol += volume
londonBars += 1
// Average volume per bar calculation
float londonAvgVol = londonBars > 0 ? londonVol / londonBars : 0
**Cross-Session Volume Comparison**:
The system maintains running totals for each session, enabling real-time comparison of participation levels across different global markets.
What the Display Shows
Session Backgrounds — Colored backgrounds indicating which session is active
- Pink: Asian session
- Blue: London session
- Green: New York session
Session Open Lines — Horizontal lines at each session's opening price
Session Markers — Labels (AS, LN, NY) when sessions begin
Volume Highlights — Bar coloring when volume exceeds thresholds
- Orange: High volume (1.5x+ average)
- Red: Very high volume (2.5x+ average)
Dashboard — Current session, cumulative volume, and averages
Color Scheme
Asian — #E91E63 (pink)
London — #2196F3 (blue)
New York — #4CAF50 (green)
High Volume — #FF9800 (orange)
Very High Volume — #F44336 (red)
Inputs
Session Times:
Asian Session window (default: 1800-0300)
London Session window (default: 0300-1200)
New York Session window (default: 0800-1700)
Volume Settings:
Volume MA Length (default: 20)
High Volume threshold (default: 1.5x)
Very High Volume threshold (default: 2.5x)
Visual Settings:
Session colors (customizable)
Show/hide backgrounds, lines, markers
Background transparency
How to Read the Display
Background color shows which session is currently active
Session open lines show where each session started
Orange/red bars indicate above-average volume
Dashboard shows cumulative volume for each session today
Alerts
Session opened (Asian, London, New York)
High volume bar detected
Very high volume bar detected
Important Limitations and Realistic Expectations
Session times are approximate and depend on your broker's server timezone—manual adjustment may be required for accuracy
Volume data quality varies significantly by broker, instrument, and market type
Cryptocurrency and some forex markets trade continuously, making traditional session boundaries less meaningful
High volume indicates participation level only—it does not predict price direction or market outcomes
Session participation patterns can change over time due to market structure evolution, holidays, and economic conditions
This tool displays historical and current market participation data—it cannot predict future volume or price movements
Volume spikes can occur for numerous reasons unrelated to directional price movement (news, algorithmic trading, etc.)
Different instruments exhibit different session sensitivity and volume patterns
Market holidays and special events can significantly alter normal session patterns
Appropriate Use Cases
This indicator is designed for:
- Market participation pattern analysis
- Session-based trading schedule planning
- Volume context and comparison across sessions
- Educational study of global market structure
- Supplementary analysis for session-based strategies
This indicator is NOT designed for:
- Standalone trading signal generation
- Volume-based price direction prediction
- Automated trading system triggers
- Guaranteed session pattern repetition
- Replacement of fundamental or sentiment analysis
Understanding Session Analysis Limitations
Session analysis provides valuable context but has inherent limitations:
- Session patterns can change due to economic conditions, holidays, and market structure evolution
- Volume patterns may not repeat consistently across different market conditions
- Global events can override normal session characteristics
- Different asset classes respond differently to session boundaries
- Technology and algorithmic trading continue to blur traditional session distinctions
— Made with passion by officialjackofalltrades
Pivot Point Zones [JOAT]Pivot Point Zones — Multi-Formula Pivot Levels with ATR Zones
Pivot Point Zones calculates and displays traditional pivot points with five formula options, enhanced with ATR-based zones around each level. This creates more practical trading zones that account for price noise around key levels—because price rarely reacts at exact mathematical levels.
What Makes This Indicator Unique
Unlike basic pivot point indicators, Pivot Point Zones:
Offers five different pivot calculation formulas in one indicator
Creates ATR-based zones around each level for realistic reaction areas
Pulls data from higher timeframes automatically
Displays clean labels with exact price values
Provides a comprehensive dashboard with all levels
What This Indicator Does
Calculates pivot points using Standard, Fibonacci, Camarilla, Woodie, and more formulas
Draws horizontal lines at Pivot, R1-R3, and S1-S3 levels
Creates ATR-based zones around each level for realistic price reaction areas
Displays labels with exact price values
Updates automatically based on higher timeframe closes
Provides fills between zone boundaries for visual clarity
Pivot Formulas Explained
// Standard Pivot - Classic (H+L+C)/3 calculation
pp := (pivotHigh + pivotLow + pivotClose) / 3
r1 := 2 * pp - pivotLow
s1 := 2 * pp - pivotHigh
r2 := pp + pivotRange
s2 := pp - pivotRange
// Fibonacci Pivot - Uses Fib ratios for level spacing
r1 := pp + 0.382 * pivotRange
r2 := pp + 0.618 * pivotRange
r3 := pp + 1.0 * pivotRange
// Camarilla Pivot - Tighter levels for intraday
r1 := pivotClose + pivotRange * 1.1 / 12
r2 := pivotClose + pivotRange * 1.1 / 6
r3 := pivotClose + pivotRange * 1.1 / 4
// Woodie Pivot - Weights current close more heavily
pp := (pivotHigh + pivotLow + 2 * close) / 4
// TD Pivot - Conditional based on open/close relationship
x = pivotClose < pivotOpen ? pivotHigh + 2*pivotLow + pivotClose :
pivotClose > pivotOpen ? 2*pivotHigh + pivotLow + pivotClose :
pivotHigh + pivotLow + 2*pivotClose
pp := x / 4
Formula Characteristics
Standard — Classic pivot calculation. Balanced levels, good for swing trading.
Fibonacci — Uses 0.382, 0.618, and 1.0 ratios. Popular with Fibonacci traders.
Camarilla — Tighter levels derived from range. Excellent for intraday mean-reversion.
Woodie — Weights current close more heavily. More responsive to recent price action.
TD — Conditional calculation based on open/close relationship. Adapts to bar type.
Zone System
Each pivot level includes an ATR-based zone that provides a more realistic area for potential price reactions:
// ATR-based zone width calculation
float atr = ta.atr(atrLength)
float zoneHalf = atr * zoneWidth / 2
// Zone boundaries around each level
zoneUpper = level + zoneHalf
zoneLower = level - zoneHalf
This accounts for market noise and helps avoid false breakout signals at exact level prices.
Visual Features
Pivot Lines — Horizontal lines at each calculated level
Zone Fills — Transparent fills between zone boundaries
Level Labels — Labels showing level name and exact price (e.g., "PP 45123.50")
Color Coding :
- Yellow: Pivot Point (PP)
- Red gradient: Resistance levels (R1, R2, R3) - darker = further from PP
- Green gradient: Support levels (S1, S2, S3) - darker = further from PP
Color Scheme
Pivot Color — Default: #FFEB3B (yellow) — Central pivot point
Resistance Color — Default: #FF5252 (red) — R1, R2, R3 levels
Support Color — Default: #4CAF50 (green) — S1, S2, S3 levels
Zone Transparency — 85-90% transparent fills around levels
Dashboard Information
The on-chart table (bottom-right corner) displays:
Selected pivot type (Standard, Fibonacci, etc.)
R3, R2, R1 resistance levels with exact prices
PP (Pivot Point) highlighted
S1, S2, S3 support levels with exact prices
Inputs Overview
Pivot Settings:
Pivot Type — Formula selection (Standard, Fibonacci, Camarilla, Woodie, TD)
Pivot Timeframe — Higher timeframe for OHLC data (default: D = Daily)
ATR Length — Period for zone width calculation (default: 14)
Zone Width — ATR multiplier for zone size (default: 0.5)
Level Display:
Show Pivot (P) — Toggle central pivot line
Show R1/S1 — Toggle first resistance/support levels
Show R2/S2 — Toggle second resistance/support levels
Show R3/S3 — Toggle third resistance/support levels
Show Zones — Toggle ATR-based zone fills
Show Labels — Toggle price labels at each level
Visual Settings:
Pivot/Resistance/Support Colors — Customizable color scheme
Line Width — Thickness of level lines (default: 2)
Extend Lines Right — Project lines forward on chart
Show Dashboard — Toggle the information table
How to Use It
For Intraday Trading:
Use Daily pivots on intraday charts (15m, 1H)
Pivot point often acts as the day's "fair value" reference
Camarilla levels work well for intraday mean-reversion
R1/S1 are the most commonly tested levels
For Swing Trading:
Use Weekly pivots on daily charts
Standard or Fibonacci formulas work well
R2/S2 and R3/S3 become more relevant
Zone boundaries provide realistic entry/exit areas
For Support/Resistance:
R levels above price act as resistance targets
S levels below price act as support targets
Zone boundaries are more realistic than exact lines
Multiple formula confluence adds significance
Alerts Available
DPZ Cross Above Pivot — Price crosses above central pivot
DPZ Cross Below Pivot — Price crosses below central pivot
DPZ Cross Above R1/R2 — Price breaks resistance levels
DPZ Cross Below S1/S2 — Price breaks support levels
Best Practices
Match pivot timeframe to your trading style (Daily for intraday, Weekly for swing)
Use zones instead of exact levels for more realistic expectations
Camarilla is best for mean-reversion; Standard/Fibonacci for breakouts
Combine with other indicators for confirmation
— Made with passion by officialjackofalltrades
Futures Ultra CVD (Pure )Futures Ultra CVD (Pure)
Futures Ultra CVD (Pure) is a volume-driven Cumulative Volume Delta (CVD) indicator designed to expose real buying and selling pressure behind price movement. Unlike price-only indicators, this script analyzes how volume is distributed within each bar to determine whether aggressive buyers or sellers are in control, then tracks how that pressure evolves over time.
This version is intentionally pure and ungated: it does not rely on external symbols, market filters, session bias, or macro confirmation. All signals are derived strictly from price, volume, and delta behavior of the active chart, making it suitable for futures, equities, crypto, and FX.
Core Concept: How CVD Is Calculated
For each bar, volume is split into buying pressure and selling pressure using the bar’s price position:
Buying volume increases as price closes closer to the high
Selling volume increases as price closes closer to the low
The difference between buying and selling volume forms Delta:
Positive delta = net aggressive buying
Negative delta = net aggressive selling
This delta is then accumulated into Cumulative Volume Delta (CVD) using one of three user-selectable modes:
Total – running cumulative sum of all delta values
Periodic – rolling sum over a fixed lookback period
EMA – smoothed cumulative delta using an exponential average
This flexibility allows traders to choose between raw order-flow tracking or smoother, trend-like behavior depending on timeframe and instrument.
Visual Structure & Histogram Logic
The CVD is displayed as a column histogram, not a line, to emphasize momentum and pressure shifts.
Enhanced coloring provides additional context:
Brighter green/red bars indicate increasing momentum
Muted colors indicate stalling or weakening pressure
Optional footprint-style highlights appear when buy or sell volume overwhelms the opposite side by a user-defined imbalance factor
This allows traders to visually distinguish:
Strength vs weakness
Continuation vs exhaustion
Absorption and aggressive participation
Built-In Order Flow Signals
The script automatically detects and labels key order-flow events:
Strong Delta
Triggered when delta exceeds a user-defined threshold, highlighting unusually aggressive buying or selling.
Delta Surge
Detects sudden expansion in delta compared to the prior bar, often associated with breakout attempts or liquidation events.
Zero-Line Crosses
Marks transitions between net bullish and bearish participation as CVD crosses above or below zero.
CVD Continuation Logic (Trend Confirmation)
Beyond raw delta, the script evaluates CVD structure to identify continuation conditions:
A bullish continuation requires:
Positive and rising CVD
Strong buy delta
Confirmation from at least one of the following:
CVD above its EMA and SMA
Bullish price expansion
Sustained positive delta pressure
Bearish continuation follows the inverse logic.
These continuation signals are designed to confirm participation strength, not predict reversals.
Conflict Detection (Divergence Warning)
The indicator also flags conflict conditions, where:
Strong buying occurs while CVD remains negative
Strong selling occurs while CVD remains positive
These scenarios often precede failed breakouts, absorption zones, or short-term reversals and can be used as cautionary signals.
Alerts & Practical Use
All major events include built-in alerts:
Strong delta
Delta surge
CVD continuations
Zero-line crosses
Buy/sell imbalances
Conflict signals
Alerts can be set to trigger on bar close or intrabar in real time, depending on trader preference.
How Traders Typically Use This Indicator
Confirm breakouts with delta participation
Validate trends using CVD continuation instead of price alone
Identify absorption or exhaustion via conflicts and imbalances
Combine with price structure, VWAP, or market profile tools
This script is not a trading system by itself. It is a decision-support tool designed to reveal what price alone cannot: who is actually in control of the market.
On-Chart Symbols & What They Mean
This script uses a small number of visual symbols to communicate order-flow events clearly and consistently. All symbols are derived directly from the Cumulative Volume Delta calculations described above.
Δ+ (Green Up Arrow)
Strong Buy Delta
Indicates that buying pressure on the current bar exceeded the Strong Delta Threshold
Represents aggressive market buying dominating selling volume
Often appears during breakouts, trend acceleration, or initiative buying
This symbol does not imply direction by itself; it only confirms strong buyer participation.
Δ− (Red Down Arrow)
Strong Sell Delta
Indicates that selling pressure on the current bar exceeded the Strong Delta Threshold
Represents aggressive market selling dominating buying volume
Often appears during breakdowns, liquidation events, or initiative selling
Like Δ+, this symbol measures participation strength, not trade direction.
↑ (Green Label Up)
CVD Bullish Continuation
Appears when all of the following are present:
CVD is positive and increasing
Strong buy delta is detected
At least one confirmation condition is met:
CVD is above its EMA and SMA
Price shows bullish expansion
Consecutive positive delta bars (sustained buying pressure)
This symbol highlights trend continuation supported by volume, not a reversal signal.
↓ (Red Label Down)
CVD Bearish Continuation
Appears when:
CVD is negative and decreasing
Strong sell delta is detected
At least one confirmation condition is met:
CVD is below its EMA and SMA
Price shows bearish expansion
Consecutive negative delta bars (sustained selling pressure)
This indicates bearish continuation with participation confirmation.
Cyan / Orange Histogram Bars
Footprint-Style Volume Imbalance
Cyan bars indicate buy volume exceeds sell volume by the imbalance factor
Orange bars indicate sell volume exceeds buy volume by the imbalance factor
These bars highlight areas where one side is overwhelming the other, often associated with absorption, initiative moves, or failed auctions.
Bright vs Muted Histogram Colors
CVD Momentum State
Bright colors = CVD increasing in the direction of its current bias
Muted colors = CVD losing momentum or stalling
This allows quick visual identification of strengthening vs weakening participation.
Conflict Alerts (No Symbol by Default)
Delta vs CVD Disagreement
These conditions trigger alerts (but no fixed chart icon):
Strong buying while CVD remains negative
Strong selling while CVD remains positive
Conflicts often signal absorption, trap conditions, or short-term exhaustion.
Important Usage Notes
All symbols are informational, not trade entries.
Signals are calculated from price-based volume distribution, not true bid/ask data.
Results depend on the quality of volume data provided by the exchange and TradingView.
Liquidity Maxing [JOAT]Liquidity Maxing - Institutional Liquidity Matrix
Introduction
Liquidity Maxing is an open-source strategy for TradingView built around institutional market structure concepts. It identifies structural shifts, evaluates trades through multi-factor confluence, and implements layered risk controls.
The strategy is designed for swing trading on 4-hour timeframes, focusing on how institutional order flow manifests in price action through structure breaks, inducements, and liquidity sweeps.
Core Functionality
Liquidity Maxing performs three primary functions:
Tracks market structure to identify when control shifts between buyers and sellers
Scores potential trades using an eight-factor confluence system
Manages position sizing and risk exposure dynamically based on volatility and user-defined limits
The goal is selective trading when multiple conditions align, rather than frequent entries.
Market Structure Engine
The structure engine tracks three key events:
Break of Structure (BOS): Price pushes beyond a prior pivot in the direction of trend
Change of Character (CHoCH): Control flips from bullish to bearish or vice versa
Inducement Sweeps (IDM): Market briefly runs stops against trend before moving in the real direction
The structure module continuously updates strong highs and lows, labeling structural shifts visually. IDM markers are optional and disabled by default to maintain chart clarity.
The trade engine requires valid structure alignment before considering entries. No structure, no trade.
Eight-Factor Confluence System
Instead of relying on a single indicator, Liquidity Maxing uses an eight-factor scoring system:
Structure alignment with current trend
RSI within healthy bands (different ranges for up and down trends)
MACD momentum agreement with direction
Volume above adaptive baseline
Price relative to main trend EMA
Session and weekend filter (configurable)
Volatility expansion/contraction via ATR shifts
Higher-timeframe EMA confirmation
Each factor contributes one point to the confluence score. The default minimum confluence threshold is 6 out of 8, but you can adjust this from 1-8 based on your preference for trade frequency versus selectivity.
Only when structure and confluence agree does the strategy proceed to risk evaluation.
Dynamic Risk Management
Risk controls are implemented in multiple layers:
ATR-based stops and targets with configurable risk-to-reward ratio (default 2:1)
Volatility-adjusted position sizing to maintain consistent risk per trade as ranges expand or compress
Daily and weekly risk budgets that halt new entries once thresholds are reached
Correlation cooldown to prevent clustered trades in the same direction
Global circuit breaker with maximum drawdown limit and emergency kill switch
If any guardrail is breached, the strategy will not open new positions. The dashboard clearly displays risk state for transparency.
Market Presets
The strategy includes configuration presets optimized for different market types:
Crypto (BTC/ETH): RSI bands 70/30, volume multiplier 1.2, enhanced ATR scaling
Forex Majors: RSI bands 75/25, volume multiplier 1.5
Indices (SPY/QQQ): RSI bands 70/30, volume multiplier 1.3
Custom: Default values for user customization
For crypto assets, the strategy automatically applies ATR volatility scaling to account for higher volatility characteristics.
Monitoring and Dashboards
The strategy includes optional monitoring layers:
Risk Operations Dashboard (top-right):
Trend state
Confluence score
ATR value
Current position size percentage
Global drawdown
Daily and weekly risk consumption
Correlation guard state
Alert mode status
Performance Console (top-left):
Net profit
Current equity
Win rate percentage
Average trade value
Sharpe-style ratio (rolling 50-bar window)
Profit factor
Open trade count
Optional risk tint on chart background provides visual indication of "safe to trade" versus "halted" state.
All visualization elements can be toggled on/off from the inputs for clean chart viewing or full telemetry during parameter tuning.
Alerts and Automation
The strategy supports alert integration with two formats:
Standard alerts: Human-readable messages for long, short, and risk-halt conditions
Webhook format: JSON-formatted payloads ready for external execution systems (optional)
Alert messages are predictable and unambiguous, suitable for manual review or automated forwarding to execution engines.
Built-in Validation Suite
The strategy includes an optional validation layer that can be enabled from inputs. It checks:
Internal consistency of structure and confluence metrics
Sanity and ordering of risk parameters
Position sizing compliance with user-defined floors and caps
This validation is optional and not required for trading, but provides transparency into system operation during development or troubleshooting.
Strategy Parameters
Market Presets:
Configuration Preset: Choose between Crypto (BTC/ETH), Forex Majors, Indices (SPY/QQQ), or Custom
Market Structure Architecture:
Pivot Length: Default 5 bars
Filter by Inducement (IDM): Default enabled
Visualize Structure: Default enabled
Structure Lookback: Default 50 bars
Risk & Capital Preservation:
Risk:Reward Ratio: Default 2.0
ATR Period: Default 14
ATR Multiplier (Stop): Default 2.0
Max Drawdown Circuit Breaker: Default 10%
Risk per Trade (% Equity): Default 1.5%
Daily Risk Limit: Default 6%
Weekly Risk Limit: Default 12%
Min Position Size (% Equity): Default 0.25%
Max Position Size (% Equity): Default 5%
Correlation Cooldown (bars): Default 3
Emergency Kill Switch: Default disabled
Signal Confluence:
RSI Length: Default 14
Trend EMA: Default 200
HTF Confirmation TF: Default Daily
Allow Weekend Trading: Default enabled
Minimum Confluence Score (0-8): Default 6
Backtesting Considerations
When backtesting this strategy, consider the following:
Commission: Default 0.05% (adjustable in strategy settings)
Initial Capital: Default $100,000 (adjustable)
Position Sizing: Uses percentage of equity (default 2% per trade)
Timeframe: Optimized for 4-hour charts, though can be tested on other timeframes
Results will vary significantly based on:
Market conditions and volatility regimes
Parameter settings, especially confluence threshold
Risk limit configuration
Symbol characteristics (crypto vs forex vs equities)
Past performance does not guarantee future results. Win rate, profit factor, and other metrics should be evaluated in context of drawdown periods, trade frequency, and market conditions.
How to Use This Strategy
This is a framework that requires understanding and parameter tuning, not a one-size-fits-all solution.
Recommended workflow:
Start on 4-hour timeframe with default parameters and appropriate market preset
Run backtests and study performance console metrics: focus on drawdown behavior, win rate, profit factor, and trade frequency
Adjust confluence threshold to match your risk appetite—higher thresholds mean fewer but more selective trades
Set realistic daily and weekly risk budgets appropriate for your account size and risk tolerance
Consider ATR multiplier adjustments based on market volatility characteristics
Only connect alerts or automation after thorough testing and parameter validation
Treat this as a risk framework with an integrated entry engine, not merely an entry signal generator. The risk controls are as important as the trade signals.
Strategy Limitations
Designed for swing trading timeframes; may not perform optimally on very short timeframes
Requires sufficient market structure to identify pivots; may struggle in choppy or low-volatility environments
Crypto markets require different parameter tuning than traditional markets
Risk limits may prevent entries during favorable setups if daily/weekly budgets are exhausted
Correlation cooldown may delay entries that would otherwise be valid
Backtesting results depend on data quality and may not reflect live trading with slippage
Design Philosophy
Many indicators tell you when price crossed a moving average or RSI left oversold. This strategy addresses questions institutional traders ask:
Who is in control of the market right now?
Is this move structurally significant or just noise?
Do I want to add more risk given what I've already done today/week?
If I'm wrong, exactly how painful can this be?
The strategy provides disciplined, repeatable answers to these questions through systematic structure analysis, confluence filtering, and multi-layer risk management.
Technical Implementation
The strategy uses Pine Script v6 with:
Custom types for structure, confluence, and risk state management
Functional programming approach for reusable calculations
State management through persistent variables
Optional visual elements that can be toggled independently
The code is open-source and can be modified to suit individual needs. All important logic is visible in the source code.
Disclaimer
This script is provided for educational and informational purposes only. It is not intended as financial, investment, trading, or any other type of advice or recommendation. Trading involves substantial risk of loss and is not suitable for all investors. Past performance, whether real or indicated by historical tests of strategies, is not indicative of future results.
No representation is being made that any account will or is likely to achieve profits or losses similar to those shown. In fact, there are frequently sharp differences between backtested results and actual results subsequently achieved by any particular trading strategy.
The user should be aware of the risks involved in trading and should trade only with risk capital. The authors and publishers of this script are not responsible for any losses or damages, including without limitation, any loss of profit, which may arise directly or indirectly from use of or reliance on this script.
This strategy uses technical analysis methods and indicators that are not guaranteed to be accurate or profitable. Market conditions change, and strategies that worked in the past may not work in the future. Users should thoroughly test any strategy in a paper trading environment before risking real capital.
Commission and slippage settings in backtests may not accurately reflect live trading conditions. Real trading results will vary based on execution quality, market liquidity, and other factors not captured in backtesting.
The user assumes full responsibility for all trading decisions made using this script. Always consult with a qualified financial advisor before making investment decisions.
Enjoy - officialjackofalltrades
Session Relative VolumeSession Relative Volume is an advanced intraday futures volume indicator that analyzes volume separately for Asia, London, and New York sessions - something standard relative volume tools can’t do.
Instead of aggregating the entire day’s volume, the indicator compares current volume to historical averages for the same session and time of day, allowing you to spot true volume strength and meaningful spikes, especially around session opens.
Background
Relative volume helps traders spot unusual activity: high volume often signals institutional participation and trending days, while low volume suggests weak commitment and possible mean reversion. In futures markets, sessions ( Asia, London, New York ) must be analyzed separately, but TradingView’s Relative Volume in Time aggregates the entire day, masking session-specific behavior - especially during the New York open. Since volume can vary by more than 20× between sessions, standard averages struggle to identify meaningful volume spikes when trader conviction matters most.
Indicator Description
The “Session Relative Volume” indicator solves these problems by calculating historical average volume specific to each session and time of day, and comparing current volume against those benchmarks. It offers four display modes and fully customizable session times
Altogether, it provides traders with a powerful tool for analyzing intraday futures volume, helping to better assess market participation, trader conviction, and overall market conditions - ultimately supporting improved trading decisions.
Parameters
Mode – display mode:
R-VOL: Relative cumulative session-specific volume at time
VOL CUM: Cumulative session volume at time compared to historical average cumulative session-specific volume
VOL AVG: Average session intrabar volume at time compared to historical average session-specific intrabar volume
VOL: Individual bars volume, highlighting (solid color) unusual spikes
Lookback period – number of days used for calculating historical average session volume at time
MA Len – length of the moving average, representing average bar volume within a session based on previous periods (different from historical cumulative volume!). Used only in VOL and VOL AVG modes
MA Thresh – deviation from moving average, used to detect bar volume spikes (bar volume > K × moving average)
Start Time – End Time and Time Zone parameters for each session. The time zone must be set using TradingView’s format (e.g., GMT+1).
Liquidity Levels Pro Tool - thewallranka
Liquidity Levels Pro Tool is a market-structure and liquidity-mapping indicator designed to help discretionary futures and index traders identify statistically relevant price levels where reactions, continuations, or liquidity sweeps are more likely to occur.
This script is a decision-support tool, not a signal generator. It does not issue buy/sell alerts or predict future price movement. Instead, it organizes and scores liquidity information so traders can make their own contextual decisions.
What this indicator does
The script continuously detects and maintains liquidity zones derived from price pivots, then evaluates those zones using multiple structural and contextual factors:
Repeated price interaction (touches)
Freshness (time since last interaction)
Confluence with key reference levels
Reaction behavior after contact
Session relevance (RTH vs overnight)
Market regime (trend vs mean reversion)
Time-of-day effects (open, midday, power hour)
Only the most relevant zones—based on a dynamic scoring system—are displayed to reduce chart clutter and focus attention on levels that have historically mattered.
Core components
1. Liquidity Zones
Zones are built from pivot highs and lows and expanded into areas using a configurable tick-based padding. Nearby zones are merged to avoid redundancy.
Each zone is continuously evaluated and assigned a score (0–100) reflecting its relative importance.
2. Zone Scoring (No Lookahead)
Zone scores are based on:
Number of confirmed interactions
Recency of the last touch
Confluence with prior day/week levels, VWAP, and Opening Range
Reaction quality after touches (speed and follow-through)
Session alignment (zones that “work” in the current session are favored)
Penalties after liquidity sweeps
Zones are not forward-looking and do not rely on future data.
3. Context Engine
The script classifies the current environment using VWAP slope and distance:
Trend (up or down)
Mean reversion
Mixed/transition
Time-of-day context (Open, Midday, Power Hour) is also tracked internally and influences zone scoring.
This context is displayed in the HUD to support situational awareness, not automated decisions.
4. Liquidity Sweeps
Optional sweep detection highlights situations where price trades beyond a zone and closes back inside, indicating potential stop runs or failed breakouts.
Sweeps are rate-limited and applied conservatively to avoid visual noise.
5. Trade Planning Levels (Optional)
When enabled, the script highlights the nearest high-quality liquidity level above and below price based on score thresholds.
These are intended as reference targets, not trade entries or exits.
HUD (Heads-Up Display)
The on-chart HUD summarizes:
Key reference levels (prior day/week, Opening Range)
Nearest strong liquidity above/below price
Market regime and time-of-day context
Distance to levels (ticks or points)
The HUD is fully optional, positionable, and includes resizable modes (Small / Medium / Large) to fit different chart layouts.
How to use this tool
This indicator is best used as part of a discretionary trading process, for example:
Identifying areas where price is more likely to react or pause
Framing trades around higher-quality structure instead of arbitrary levels
Filtering setups based on session and regime context
Managing expectations near known liquidity rather than chasing price
It is intentionally designed not to provide trade signals.
Limitations and important notes
This script does not predict outcomes or guarantee reactions
High-scoring zones can still fail
Liquidity behavior is context-dependent and probabilistic
No performance claims or backtested results are provided
The indicator should not be used in isolation
Past behavior does not imply future results.
Chart and usage notes
The script is intended for standard time-based charts
Recommended for liquid futures and index products
Use a clean chart for clarity when publishing or sharing
No external indicators are required
Final note
Liquidity Levels Pro (Tool) — v6 is designed to organize complex market structure into a clear, readable framework, allowing traders to focus on execution and risk management rather than raw level detection.
This script reflects an analytical approach to intraday liquidity and structure, not an automated trading system.
MorphWave Bands [JOAT]MorphWave Bands - Adaptive Volatility Envelope System
MorphWave Bands create a dynamic price envelope that automatically adjusts its width based on current market conditions. Unlike static Bollinger Bands, this indicator blends ATR and standard deviation with an efficiency ratio to expand during trending conditions and contract during consolidation.
What This Indicator Does
Plots adaptive upper and lower bands around a customizable moving average basis
Automatically adjusts band width using a blend of ATR and standard deviation
Detects volatility squeezes when bands contract to historical lows
Highlights breakouts when price moves beyond the bands
Provides squeeze alerts for anticipating volatility expansion
Adaptive Mechanism
The bands adapt through a multi-step process:
// Blend ATR and Standard Deviation
blendedVol = useAtrBlend ? (atrVal * 0.6 + stdVal * 0.4) : stdVal
// Normalize volatility to its historical range
volNorm = (blendedVol - volLow) / (volHigh - volLow)
// Create adaptive multiplier
adaptMult = baseMult * (0.5 + volNorm * adaptSens)
This creates bands that respond to market regime changes while maintaining stability.
Squeeze Detection
A squeeze is identified when band width drops below a specified percentile of its historical range:
Background highlighting indicates active squeeze conditions
Low percentile readings suggest compressed volatility
Squeeze exits often precede directional moves
Inputs Overview
Band Length — Period for basis calculation (default: 20)
Base Multiplier — Starting band width multiplier (default: 2.0)
MA Type — Choose from SMA, EMA, WMA, VWMA, or HMA
Adaptation Lookback — Historical period for normalization (default: 50)
Adaptation Sensitivity — How much bands respond to volatility changes
Squeeze Threshold — Percentile below which squeeze is detected
Dashboard Information
Current trend direction relative to basis and bands
Band width percentage
Squeeze status (Active or None)
Efficiency ratio
Current adaptive multiplier value
How to Use It
Look for squeeze conditions as potential precursors to breakouts
Use band touches as dynamic support/resistance references
Monitor breakout signals when price closes beyond bands
Combine with momentum indicators for directional confirmation
Alerts
Upper/Lower Breakout — Price exceeds band boundaries
Squeeze Entry/Exit — Volatility compression begins or ends
Basis Crosses — Price crosses the center line
This indicator is provided for educational purposes. It does not constitute financial advice.
— Made with passion by officialjackofalltrades
Vib ORB Range (Free)Vib ORB Range (Free) plots the Opening Range High and Low for the session based on a user-defined start time and duration.
This tool is designed for traders who want a clean, no-noise display of the ORB zone without extra indicators or automation.
Features:
Customizable Opening Range start time
Customizable Opening Range duration
Automatically resets daily
Plots ORB High, ORB Low, and optional ORB Midline
Shaded range zone for improved clarity
Works on all timeframes and markets
How to Use:
Set the ORB start time (default 9:30 New York)
Set the ORB duration (default 15 minutes)
The indicator will draw the ORB zone once the range completes
Use the outlines or shaded zone to visually identify potential breakout areas
This free tool is intended as a simple, reliable ORB visualizer without alerts, filters, or strategy logic.
Robrechtian Long-Medium Breakout Trend SystemRobrechtian Long–Medium-Term Breakout Trend System
A professional, rule-based trend-following strategy designed to capture large, sustained price movements using pure price action and breakouts.
This system follows long-established trend-following philosophy: no prediction, no volatility targeting, and no profit targets. Only disciplined entries, position additions, and exits driven entirely by trend structure.
Core Principles
Breakout-driven entries: Initial positions are taken only when price breaks above/below the 80-day Donchian channel, confirming a long–medium-term trend shift.
Short-term confirmation: Breakouts must also exceed the 20-day channel, reducing false positives.
Trend-direction filter: A 50-day moving average slope filter ensures alignment with the broader trend.
Explosive bar filter: Entries avoid excessively large, single-candle expansions (>2.5× ATR(20)) to prevent chasing exhaustion spikes.
Pyramiding into strength: Additional units are added only when price makes fresh 20-day breakouts in the direction of the trend. No scaling out. No adding on dips.
Exit only on trend violation: Positions are closed exclusively when price breaks the opposite 80-day channel. This preserves unlimited upside while enforcing disciplined exits.
Pure trend philosophy: No volatility targeting, no smoothing, no discretionary overrides, no optimization for short-term performance.
Intended Use
This system is designed primarily for diversified futures portfolios, where diversification across dozens of globally liquid markets creates robustness and stability. However, it may also be used on individual assets for educational and analytical purposes.
The system embraces the core trend-following logic:
Small losses, big winners, and unlimited upside when trends persist.
⚠️ WARNINGS / DISCLAIMERS
⚠️ Warning 1 — This strategy is not optimized for single stocks
The Robrechtian Trend System is designed for multi-asset futures portfolios, not single equities.
Performance on individual tickers may vary greatly due to lack of diversification.
⚠️ Warning 2 — Trend following includes substantial drawdowns
Deep drawdowns are a normal and expected feature of all long-term trend-following systems.
The strategy does not attempt to smooth returns or manage volatility.
If you seek steady, low-volatility equity curves, this system is not suitable.
⚠️ Warning 3 — No volatility targeting or risk smoothing
This system intentionally avoids volatility-based position sizing.
Trades may experience larger fluctuations than systems using risk parity or vol targeting.
⚠️ Warning 4 — Not financial advice
This script is for educational and research purposes only.
Past performance does not guarantee future results.
Use at your own risk.
⚠️ Warning 5 — TradingView backtests have known limitations
TradingView does not simulate:
futures contract roll logic
slippage
real bid/ask spreads
liquidity conditions
limit-up/limit-down behavior
Results may vary from live market execution.
Position Sizing Calculator (Real-Time) - Futures Edition█ SUMMARY
The following indicator is a Position Sizing Calculator based on Average True Range (ATR), originally developed by market technician J. Welles Wilder Jr., intended for real-time trading.
This script utilizes the user's account size, acceptable risk percentage, and a stop-loss distance based on ATR to dynamically calculate the appropriate position size for each trade in real time.
█ BACKGROUND
Developed for use on the Micro E-mini Nasdaq-100 futures (MNQ), this script provides traders with continuously updated dynamic position sizes. It enables traders to instantly determine the exact number of contracts to use when entering a trade while staying within their acceptable risk tolerance.
This real-time position sizing tool helps traders make well-informed decisions when planning trade entries and calculating maximum stop-loss levels, ultimately enhancing risk management.
█ USER INPUTS
Trading Account Size: Total dollar value of the user's trading account.
Acceptable Risk (%): Maximum percentage of the trading account that the user is willing to risk per trade.
ATR Multiplier for Stop-Loss: Multiplier used to determine the distance of the stop-loss from the current price, based on the ATR value.
ATR Length: The length of the lookback period used to calculate the ATR value.
Show Target Risk Row: Toggle to hide/show the Target Risk Row
SL Levels Display: Option to see Both, Long Only, Short Only, or None of the Stop Loss Level Values.
Contract Point Value ($): Point value per contract. Tooltip highlights common values.
Tick Size: Minimum Price Movement (Default set to 0.25)
Minimum Contracts: Override the Minimum Contracts per trade to a user selected value.
(May Exceed User's Target Risk)
Auto Position CalculatorA position sizing tool that automatically detects the instrument you're trading and calculates the correct position size based on your risk parameters.
What It Does
This indicator calculates how many contracts, lots, or shares to trade based on your account size, risk percentage, and stop loss distance. It auto-detects the instrument type and adjusts the point/pip value accordingly.
Supported Instruments
Futures: NQ, MNQ, ES, MES, YM, MYM, RTY, M2K, CL, MCL, GC, MGC
Forex: All major pairs (USD, EUR, GBP, JPY, etc.)
Index CFDs: NAS100, US500, US30, GER40, UK100
Metals: XAU, XAG
Crypto and Stocks: Automatic detection
How to Use
Set your account size and risk % in settings
Click the settings icon and place Entry, Stop Loss, and Take Profit on the chart
The position size and risk calculations appear automatically
Levels auto-reset at your chosen session (Asia, London, or New York open)
Limitations
CFD and forex pip values assume standard lot sizing - your broker may differ
Auto-detection relies on ticker naming conventions, which vary by broker/data feed
Session reset times are based on ET (Eastern Time)
Custom Daily Close Line Ver2Plots a line for the Daily closing price for Futures intraday charts.
Default closing price is 16:15 Eastern time.
Plot Line can be customized for different times based on the market.
Futures Custom Daily Close Line Plots closing price at 4:15pm ET for futures on an intraday chart.
Closing price can be adjusted to any time you want.
WASDE Dates V2WASDE Dates V2 – USDA Release Calendar with Alerts, Countdown & Event Markers
By cot-trader.com
WASDE Dates V2 is a complete and reliable visualization tool for all scheduled WASDE (World Agricultural Supply and Demand Estimates) releases for 2025 and 2026.
The USDA’s WASDE report is one of the most market-moving fundamental catalysts in agricultural futures—affecting Corn (ZC), Wheat (ZW), Soybeans (ZS), Soymeal (ZM), Soybean Oil (ZL), and many related CFD products.
This script gives traders a precise timing layer directly inside their TradingView charts.
🔍 What this script does
WASDE Dates V2 automatically:
Marks each WASDE release day with a vertical line and label.
Shows an automated countdown to the next WASDE release:
In days (>24h)
In hours & minutes (<24h)
Displays an optional table of upcoming WASDE dates for quick reference.
Provides two alert conditions:
WASDE Day Alert – triggers exactly on the event
WASDE 24h Reminder – pre-alert when less than 24 hours remain
Handles both 2025 and 2026 confirmed dates.
Works on any symbol and timeframe.
📌 Why WASDE matters
The WASDE report updates global supply and demand estimates for:
Corn
Soybeans
Wheat
Other major agricultural commodities
Changes in yield, acres, production, imports/exports, and ending stocks can cause immediate and significant volatility.
Many traders combine WASDE awareness with seasonality, COT positioning, volatility filters, or fundamental models.
This script ensures you never miss the timing of these key releases.
⚙️ How the script works
The script stores official USDA WASDE release dates for 2025 and 2026 in two dedicated arrays.
On every bar, it compares the bar’s timestamp with known WASDE timestamps to detect an event day.
When an event occurs:
A red “WASDE” label is plotted above the candle
A dotted vertical line is drawn through the bar
It finds the next upcoming WASDE by scanning forward through both arrays.
A live-updating countdown label is displayed, showing days or hours/minutes until release.
If the event is less than 24 hours away:
A yellow “WASDE soon” warning appears near price
The 24h alert condition becomes active
An optional table lists upcoming events for 2025 & 2026.
This script does not generate trading signals.
It provides a time-based event layer designed to complement any discretionary or algorithmic trading approach.
🧭 How to use
Add the script to your chart.
Enable alerts for:
“WASDE Day Alert”
“WASDE 24h Reminder”
Follow the countdown to prepare for upcoming volatility.
Use together with other agricultural tools such as:
Seasonality indicators
COT (Commitment of Traders) analysis
Trend / VWAP / Volume signals
Pre- and post-WASDE trading strategies
Works on all chart types, all symbols, and all timeframes.
📅 Included WASDE Dates (Confirmed)
2025:
Jan 12, Feb 11, Mar 11, Apr 10, May 12, Jun 12, Jul 11, Aug 12, Sep 12, Oct 9, Nov 10, Dec 9
2026:
Jan 12, Feb 10, Mar 10, Apr 9, May 12, Jun 11, Jul 10, Aug 12, Sep 11, Oct 9, Nov 10, Dec 10
(All dates based on USDA’s official 12:00pm ET schedule.)
💡 What makes this script original
Fully updated 2025 + 2026 calendar
Uses a robust time-comparison method for accurate marking
Unique dual alert system (event + 24h pre-alert)
Clean, readable layout with countdown + upcoming dates table
Tailored specifically for grain & agricultural traders
Built entirely in Pine Script v6 with careful attention to performance
Spot-Futures SpreadSpot-Futures Spread Indicator
A comprehensive indicator that automatically calculates and visualizes the percentage spread between spot and perpetual futures prices across multiple exchanges.
Key Features:
Automatic Exchange Detection - Automatically detects your current exchange and finds the corresponding spot/futures pair
Smart Fallback System - If the counterpart isn't available on your exchange, it automatically searches across 7+ major exchanges (Binance, Bybit, OKX, Gate.io, MEXC, KuCoin, HTX) and uses the first valid match
Multi-Exchange Support - Works with 14 exchanges including Binance, Bybit, OKX, MEXC, BitGet, Gate.io, KuCoin, and more
Clear Exchange Attribution - Shows exactly which exchanges are providing spot and futures data in the statistics table
Configurable Moving Average - Track the average spread with customizable period
Standard Deviation Bands - Identify unusual spread conditions with Bollinger-style bands
Built-in Alerts - Get notified when spread crosses bands or zero (parity)
Statistics Table - Real-time stats showing current spread, MA, std dev, and bands
Manual Override Options - Advanced users can manually specify exchanges and symbols
How It Works:
The indicator calculates the spread as: (Futures Price - Spot Price) / Spot Price × 100
Positive spread = Futures trading at a premium (contango)
Negative spread = Futures trading at a discount (backwardation)
Zero = Parity between spot and futures
Use Cases:
Funding Rate Analysis - Correlates with perpetual funding rates
Arbitrage Opportunities - Identify significant spot-futures divergences
Market Sentiment - Premium/discount indicates bullish/bearish positioning
Cross-Exchange Analysis - Compare spreads when spot and futures are on different exchanges
Smart Features:
Works whether you're viewing a spot or futures chart
Automatically handles exchange-specific perpetual contract naming (.P, PERP, SWAP, etc.)
Color-coded visualization (green for premium, red for discount)
Customizable colors and display options
Background shading based on spread direction
Perfect For:
Crypto traders monitoring funding rates, arbitrage traders, market makers, and anyone interested in spot-futures dynamics across multiple exchanges.
Getting Started:
Simply add the indicator to any spot or perpetual futures chart. It will automatically detect the exchange and find the corresponding pair. The statistics table shows which exchanges are being used for maximum transparency.
Note: The indicator automatically ignores invalid symbols, so you'll never see errors even if a specific pair doesn't exist on a particular exchange.
Kudos to @AlekMel that made the "Spot - Fut Spread v2" indicator that I enhance the Automatic detection feature which was not working in some case.
Qullamagi EMA Breakout Autotrade (Crypto Futures L+S)Title: Qullamagi EMA Breakout – Crypto Autotrade
Overview
A crypto-focused, Qullamagi-style EMA breakout strategy built for autotrading on futures and perpetual swaps.
It combines a 5-MA trend stack (EMA 10/20, SMA 50/100/200), volatility contraction boxes, volume spikes and an optional higher-timeframe 200-MA filter. The script supports both long and short trades, partial take profit, trailing MA exits and percent-of-equity position sizing for automated crypto futures trading.
Key Features (Crypto)
Qullamagi MA Breakout Engine – trades only when price is aligned with a strong EMA/SMA trend and breaks out of a tight consolidation range. Longs use: Close > EMA10 > EMA20 > SMA50 > SMA100 > SMA200. Shorts are the mirror condition with all MAs sloping in the trend direction.
Strict vs Loose Modes – Strict (Daily) is designed for cleaner swing trades on 1H–4H (full MA stack, box+ATR and volume filters, optional HTF filter). Loose (Intraday) focuses on 10/20/50 alignment with relaxed filters for more frequent 15m–30m signals.
Volatility & Volume Filters for Crypto – ATR-based box height limit to detect volatility contraction, wide-candle filter to avoid chasing exhausted breakouts, and a volume spike condition requiring current volume to exceed an SMA of volume.
Higher-Timeframe Trend Filter (Optional) – uses a 200-period SMA on a higher timeframe (default: 1D). Longs only when HTF close is above the HTF 200-SMA, shorts only when it is below, helping avoid trading against dominant crypto trends.
Autotrade-Oriented Trade Management – position size as % of equity, initial stop anchored to a chosen MA (EMA10 / EMA20 / SMA50) with optional buffer, partial take profit at a configurable R-multiple, trailing MA exit for the remainder, and an optional cooldown after a full exit.
Markets & Timeframes
Best suited for BTC, ETH and major altcoin futures/perpetuals (Binance, Bybit, OKX, etc.).
Strict preset: 1H–4H charts for classic Qullamagi-style trend structure and fewer fake breakouts.
Loose preset: 15m–30m charts for higher trade frequency and more active intraday trading.
Always retune ATR length, box length, volume multiplier and position size for each symbol and exchange.
Strategy Logic (Quick Summary)
Long (Strict): MA stack in bullish alignment with all MAs sloping up → tight volatility box (ATR-based) → volume spike above SMA(volume) × multiplier → breakout above box high (close or intrabar) → optional HTF close above 200-SMA.
Short: Mirror logic: bearish MA stack, tight box, volume spike and breakdown below box low with optional HTF downtrend.
Best Practices for Crypto
Backtest on each symbol and timeframe you plan to autotrade, including commissions and slippage.
Start on higher timeframes (1H/4H) to learn the behavior, then move to 15m–30m if you want more signals.
Use the higher-timeframe filter when markets are strongly trending to reduce counter-trend trades.
Keep position-size percentage conservative until you fully understand the drawdowns.
Forward-test / paper trade before connecting to live futures accounts.
Webhook / Autotrade Integration
Designed to work with TradingView webhooks and external crypto trading bots.
Alert messages include structured fields such as: EVENT=ENTRY / SCALE_OUT / EXIT, SIDE=LONG / SHORT, STRATEGY=Qullamagi_MA.
Map each EVENT + SIDE combination to your bot logic (open long/short, partial close, full close, etc.) on your preferred exchange.
Important Notes & Disclaimer
Crypto markets are highly volatile and can change regime quickly. Backtest and forward-test thoroughly before using real capital. Higher timeframes generally produce cleaner MA structures and fewer fake breakouts.
This strategy is for educational and informational purposes only and does not constitute financial advice. Trading leveraged crypto products involves substantial risk of loss. Always do your own research, manage risk carefully, and never trade with money you cannot afford to lose.






















