Sentinel Market Structure [JOAT]
Sentinel Market Structure - Smart Money Structure Analysis
Introduction and Purpose
Sentinel Market Structure is an open-source overlay indicator that identifies swing highs/lows, tracks market structure (HH/HL/LH/LL), detects Break of Structure (BOS) and Change of Character (CHoCH) signals, and marks order blocks. The core problem this indicator solves is that retail traders often miss structural shifts that smart money traders use to identify trend changes.
This indicator addresses that by automatically tracking market structure and alerting traders to key structural breaks that often precede significant moves.
Why These Components Work Together
Each component provides different structural information:
1. Swing Detection - Identifies significant pivot highs and lows. These are the building blocks of market structure.
2. Structure Labels (HH/HL/LH/LL) - Classifies each swing relative to the previous swing. Higher Highs + Higher Lows = uptrend. Lower Highs + Lower Lows = downtrend.
3. Break of Structure (BOS) - Identifies when price breaks a swing level in the direction of the trend. This is a continuation signal.
4. Change of Character (CHoCH) - Identifies when price breaks a swing level against the trend. This is a potential reversal signal.
5. Order Blocks - Marks the last opposing candle before an impulse move. These zones often act as future support/resistance.
How the Detection Works
Swing Detection:
bool swingHighDetected = high == ta.highest(high, swingLength * 2 + 1)
bool swingLowDetected = low == ta.lowest(low, swingLength * 2 + 1)
BOS vs CHoCH Logic:
// BOS: Break in direction of trend (continuation)
bool bullishBOS = close > lastSwingHigh and marketTrend >= 0
// CHoCH: Break against trend (reversal signal)
bool bullishCHOCH = close > lastSwingHigh and marketTrend < 0
Order Block Detection:
bool bullOB = close < open and // Previous candle bearish
close > open and // Current candle bullish
close > high and // Breaking above
(high - low) > ta.atr(14) * 1.5 // Strong impulse
Signal Types
HH (Higher High) - Swing high above previous swing high (bullish structure)
HL (Higher Low) - Swing low above previous swing low (bullish structure)
LH (Lower High) - Swing high below previous swing high (bearish structure)
LL (Lower Low) - Swing low below previous swing low (bearish structure)
BOS↑/BOS↓ - Break of structure in trend direction (continuation)
CHoCH↑/CHoCH↓ - Change of character against trend (potential reversal)
Dashboard Information
Trend - Current market bias (BULLISH/BEARISH/NEUTRAL)
Swing High - Last swing high price with HH/LH label
Swing Low - Last swing low price with HL/LL label
Structure - Current structure state (HH+HL, LH+LL, etc.)
Price - Price position relative to structure
How to Use This Indicator
For Trend Following:
1. Identify trend using structure (HH+HL = uptrend, LH+LL = downtrend)
2. Enter on BOS signals in trend direction
3. Use swing levels for stop placement
For Reversal Trading:
1. Watch for CHoCH signals (break against trend)
2. Confirm with order block formation
3. Enter on retest of order block zone
For Risk Management:
1. Place stops beyond swing highs/lows
2. Use structure lines as trailing stop references
3. Exit when CHoCH signals against your position
Input Parameters
Swing Detection Length (5) - Bars on each side for pivot detection
Show Swing High/Low Points (true) - Toggle swing markers
Show BOS/CHoCH (true) - Toggle structural break signals
Show Structure Lines (true) - Toggle horizontal swing lines
Show Order Blocks (true) - Toggle order block zones
Zone Extension (50) - How far order block boxes extend
Timeframe Recommendations
15m-1H: Good for intraday structure analysis
4H-Daily: Best for swing trading structure
Lower timeframes require smaller swing detection length
Limitations
Swing detection has inherent lag (needs confirmation bars)
Not all BOS/CHoCH signals lead to continuation/reversal
Order block zones are simplified (not full ICT methodology)
Structure analysis is subjective - different traders see different swings
Open-Source and Disclaimer
This script is published as open-source under the Mozilla Public License 2.0 for educational purposes.
This indicator does not constitute financial advice. Market structure analysis does not guarantee trade outcomes. Always use proper risk management.
- Made with passion by officialjackofalltrades
Tradingview
Quantum Candle Scanner [JOAT]
Quantum Candle Scanner - Advanced Multi-Pattern Recognition System
Introduction and Purpose
Quantum Candle Scanner is an open-source overlay indicator that detects multiple candlestick patterns including engulfing patterns, kicker patterns, inside bar setups, momentum candles, and higher-high/lower-low sequences. The core problem this indicator solves is that traders often miss patterns because they're looking for only one type. Different patterns work better in different market conditions.
This indicator addresses that by scanning for five distinct pattern types simultaneously, giving traders a comprehensive view of price action signals.
Why These Five Pattern Types Work Together
Each pattern type identifies different market behavior:
1. Engulfing Patterns - Classic reversal signals where current candle completely engulfs the previous candle. Best for identifying potential turning points.
2. Kicker Patterns - Strong reversal signals with gap confirmation. The current candle opens beyond the previous candle's open with opposite direction. Best for identifying high-momentum reversals.
3. Inside Bar Patterns - Consolidation breakout signals where a candle's range is contained within the previous candle, followed by a breakout. Best for identifying compression before expansion.
4. Momentum Candles - Identifies the largest body candle over a lookback period. Best for spotting institutional activity.
5. HH/HL and LH/LL Sequences - Three-bar structure patterns showing trend continuation. Best for confirming trend direction.
How the Detection Works
Engulfing Pattern:
bool engulfBullBase = open <= math.min(close , open ) and
close >= math.max(close , open ) and
isBullish(0) and
getBodyPct(0) > bodyMinPct
Kicker Pattern:
bool kickerBull = isBearish(1) and isBullish(0) and
open > open and low > low and
getBodyPct(0) > 40 and getBodyPct(1) > 40
Inside Bar:
bool insideBarSetup = low < low and high > high
bool insideBarBull = insideBarSetup and isBullish(0)
HH/HL Sequence:
bool hhhlSeq = high > high and low > low and
high > high and low > low and
close > close
Optional Filters
ATR Filter - Only shows patterns where candle body exceeds ATR (strong candles only)
Body Minimum % - Requires minimum body percentage for engulfing patterns
Close Beyond Prior H/L - Requires engulfing candle to close beyond prior high/low
Dashboard Information
Engulfing - Total engulfing patterns detected
Kicker - Kicker pattern count
Inside Bar - Inside bar breakout count
HH/LL Seq - Structure sequence count
Total - Combined pattern count
How to Use This Indicator
For Reversal Trading:
1. Look for engulfing or kicker patterns at key support/resistance
2. Confirm with HH/HL or LH/LL sequence breaking
3. Enter with stop beyond the pattern
For Breakout Trading:
1. Identify inside bar setups (consolidation)
2. Enter on breakout candle in direction of break
3. Use the inside bar range for stop placement
For Trend Confirmation:
1. Use HH/HL sequences to confirm uptrend structure
2. Use LH/LL sequences to confirm downtrend structure
3. Momentum candles indicate institutional participation
Input Parameters
Detect Engulfing/Kicker/Inside Bar/Momentum/HHLL (all true) - Toggle each pattern type
Min Body % for Engulfing (0) - Minimum body percentage
ATR Filter (false) - Only show strong candles
Engulf Must Close Beyond Prior H/L (true) - Stricter engulfing definition
Compact Mode (false) - Shorter labels for cleaner charts
Timeframe Recommendations
1H-Daily: Best for reliable pattern detection
15m-30m: More patterns but higher noise
Use Compact Mode on lower timeframes
Limitations
Pattern detection is mechanical and does not consider context
Not all patterns lead to successful trades
Kicker patterns are rare but powerful
Inside bar breakouts can fail (false breakouts)
Open-Source and Disclaimer
This script is published as open-source under the Mozilla Public License 2.0 for educational purposes.
This indicator does not constitute financial advice. Pattern detection does not guarantee trade outcomes. Always use proper risk management.
- Made with passion by officialjackofalltrades
RED BULL WINGS [JOAT]RED BULL WINGS - Bullish-Only Institutional Overlay
Introduction and Purpose
RED BULL WINGS is an open-source overlay indicator that combines five distinct bullish detection methods into a single composite scoring system. The core problem this indicator solves is that individual bullish signals (patterns, volume, zones, trendlines) often disagree or fire in isolation. A bullish engulfing pattern means little if volume is weak and price is far from support. Traders need confluence across multiple dimensions to identify high-probability setups.
This indicator addresses that by scoring each bullish component separately, then combining them into a weighted WINGS score (0-100) that reflects overall bullish conviction. When multiple components align, the score rises; when they disagree, the score stays low.
Why These Five Modules Work Together
Each module measures a different aspect of bullish market structure:
1. Module A - Bullish Candlestick Engine - Detects classic reversal patterns (engulfing, marubozu, hammer, 3-bar cluster). These patterns identify WHERE buyers are stepping in.
2. Module B - PVSRA Volume Climax - Measures spread x volume to detect institutional participation. This tells you WHETHER smart money is involved.
3. Module C - Demand Zone Detection - Identifies and tracks order block zones where buyers previously overwhelmed sellers. This shows you WHERE institutional support exists.
4. Module D - Trendline Channel - Builds dynamic support/resistance from pivot points. This reveals the STRUCTURE of the current trend.
5. Module E - Ichimoku Assist - Optional filter using Tenkan/Kijun cross, cloud position, and Chikou confirmation. This provides TREND PERMISSION context.
The combination works because:
Patterns alone can fail without volume confirmation
Volume alone means nothing without price structure context
Zones alone are static without pattern/volume triggers
Trendlines alone miss the micro-level entry timing
When 3+ modules agree, the probability of a valid bullish setup increases significantly
How the Calculations Work
Module A - Pattern Detection:
Bullish Engulfing - Current bullish bar completely engulfs prior bearish bar:
bool engulfingCond = isBullish() and
isBearish() and
open <= close and
close >= open and
bodySize() > bodySize()
Marubozu - Strong body with minimal wicks (body >= 1.8x average, wick ratio < 20%):
float wickRatio = candleRange() > 0 ? (upperWick() + lowerWick()) / candleRange() : 0
bool marubozuCond = isBullish() and
bodySize() >= bodySizeAvg * i_maruMult and
wickRatio < i_wickRatioMax
Hammer - Long lower wick (>= 2.5x body), close in upper third, volume confirmation:
bool hammerWick = lowerWick() >= i_hammerWickMult * bodySize()
bool hammerClose = close >= low + (candleRange() * 0.66)
bool hammerVol = volume >= i_pvsraRisingMult * volAvg
3-Bar Cluster - Three consecutive bullish closes with increasing prices and volume spike:
bool threeBarBullish = isBullish() and isBullish() and isBullish()
bool increasingCloses = close > close and close > close
bool volSpike3Bar = volume >= i_pvsraRisingMult * volAvg or
volume >= i_pvsraRisingMult * volAvg
Module B - PVSRA Volume Analysis:
Uses spread x volume to detect climax conditions:
float spreadVol = candleRange() * volume
float maxSpreadVol = ta.highest(spreadVol, ADJ_PVSRA_LOOKBACK)
bool volClimax = volume >= i_pvsraClimaxMult * volAvg or spreadVol >= maxSpreadVol
bool volRising = volume >= i_pvsraRisingMult * volAvg and volume < i_pvsraClimaxMult * volAvg
Volume only scores when the candle is bullish, preventing false signals on bearish volume spikes.
Module C - Demand Zone Detection:
Identifies zones using a two-candle structure:
// Small bearish candle A followed by larger bullish candle B
bool candleA_bearish = isBearish()
bool candleB_bullish = isBullish()
bool newZoneCond = candleA_bearish and candleB_bullish and
candleB_size >= i_zoneSizeMult * candleA_size
Zones are drawn as rectangles and tracked for retests. Score increases when price is near or inside an active zone, with bonus points for rejection candles.
Module D - Trendline Channel:
Builds dynamic channel from confirmed pivot points:
float ph = ta.pivothigh(high, i_pivotLeft, i_pivotRight)
float pl = ta.pivotlow(low, i_pivotLeft, i_pivotRight)
Pivots are stored and connected to form upper/lower channel lines. The indicator detects breakouts when price closes beyond the channel with volume confirmation.
Module E - Ichimoku Assist:
Standard Ichimoku calculations with bullish scoring:
float tenkan = (ta.highest(high, i_tenkanLen) + ta.lowest(low, i_tenkanLen)) / 2
float kijun = (ta.highest(high, i_kijunLen) + ta.lowest(low, i_kijunLen)) / 2
bool tkCross = ta.crossover(tenkan, kijun)
bool priceAboveCloud = close > cloudTop
bool chikouAbovePrice = chikou > close
Module F - WINGS Composite Score:
All module scores are combined using adjustable weights:
float WINGS_score = 100 * (nW_pattern * S_pattern +
nW_volume * S_vol +
nW_zone * S_zone +
nW_trend * S_trend +
nW_ichi * S_ichi)
Default weights: Pattern 30%, Volume 25%, Zone 20%, Trend 15%, Ichimoku 10%.
Signal Thresholds
WATCH (30-49) - Interesting bullish context forming, not yet actionable
MOMENTUM (50-74) - Strong bullish conditions, multiple modules agreeing
LIFT-OFF (75+) - High-confidence bullish confluence across most modules
WINGS Badge (Dashboard)
The right-side panel displays:
WINGS Score - Current composite score (0-100)
Pattern - Active pattern name and strength, or neutral placeholder
Volume - Normal / Rising / CLIMAX status
Zone - ACTIVE if price is near a demand zone
Trend - Channel position or BREAK status
Ichimoku - OFF / Weak / Bullish / STRONG
Status - Overall signal level (Neutral / WATCH / MOMENTUM / LIFT-OFF)
Input Parameters
Module Toggles:
Enable Bullish Patterns (true) - Toggle pattern detection
Enable PVSRA Volume (true) - Toggle volume analysis
Enable Order Blocks (true) - Toggle demand zone detection
Enable Trendlines (true) - Toggle pivot channel
Enable Ichimoku Assist (false) - Toggle Ichimoku filter (off by default for performance)
Enable Visual Effects (false) - Toggle labels, trails, and visual elements
LIVE MODE (false) - Enable intrabar signals (WARNING: signals may repaint)
Pattern Engine:
Pattern Lookback (5) - Bars for body size averaging
Marubozu Body Multiplier (1.8) - Minimum body size vs average
Hammer Wick Multiplier (2.5) - Minimum lower wick vs body
Max Wick Ratio (0.2) - Maximum wick percentage for marubozu
Volume / PVSRA:
PVSRA Lookback (10) - Period for volume averaging
Climax Multiplier (2.0) - Volume threshold for climax detection
Rising Volume Multiplier (1.5) - Volume threshold for rising detection
Order Blocks:
Zone Size Multiplier (2.0) - Minimum bullish candle size vs bearish
Zone Extend Bars (200) - How far zones project forward
Max Zones (12) - Maximum active zones displayed
Remove Zone on Close Below (true) - Delete broken zones
Trendlines:
Pivot Left/Right Bars (3/3) - Pivot detection sensitivity
Min Slope % (0.25) - Minimum trendline angle
Max Trendlines (5) - Maximum pivot points stored
Trendline Projection Bars (60) - Forward projection distance
Ichimoku:
Tenkan Length (9) - Conversion line period
Kijun Length (26) - Base line period
Senkou B Length (52) - Leading span B period
Displacement (26) - Cloud displacement
WINGS Score:
Weight: Pattern (0.30) - Pattern contribution to score
Weight: Volume (0.25) - Volume contribution to score
Weight: Zone (0.20) - Zone contribution to score
Weight: Trend (0.15) - Trendline contribution to score
Weight: Ichimoku (0.10) - Ichimoku contribution to score
Lift-Off Threshold (75) - Score required for LIFT-OFF signal
Momentum Watch Threshold (50) - Score required for MOMENTUM signal
Visuals:
Signal Cooldown (8) - Minimum bars between labels
Show WINGS Score Badge (true) - Toggle dashboard
Show Wing Combos (true) - Show DOUBLE/MEGA WINGS streaks
Red Background Wash (true) - Tint chart background
Show Lift-Off Trails (false) - Toggle golden trail visuals
How to Use This Indicator
For Bullish Entry Identification:
1. Monitor the WINGS badge for score changes
2. Wait for MOMENTUM (50+) or LIFT-OFF (75+) signals
3. Check which modules are contributing (Pattern + Volume + Zone = stronger)
4. Use demand zones and trendlines as structural reference for entries
For Confluence Confirmation:
1. Use alongside your existing analysis
2. LIFT-OFF signals indicate multiple bullish factors aligning
3. Low scores (< 30) suggest weak bullish context even if one factor looks good
For Zone-Based Trading:
1. Watch for price approaching active demand zones
2. Look for pattern + volume confirmation at zone retests
3. Zone score increases with successful retests
For Trendline Analysis:
1. Monitor the pivot-based channel for trend structure
2. Breakouts with volume confirmation trigger TREND BREAK alerts
3. Price inside channel with bullish patterns = trend continuation setup
1M and lower timeframes:
Alerts Available
LIFT-OFF - High-confidence bullish confluence
MOMENTUM - Strong bullish conditions
Zone Retest - Bullish rejection from demand zone
Trendline Break - Breakout with volume confirmation
Individual patterns (Engulfing, Marubozu, Hammer, 3-Bar Cluster)
Volume Climax - Institutional volume spike
DOUBLE WINGS / MEGA WINGS - Consecutive lift-off signals
Repainting Behavior
By default, the indicator uses confirmed bars only (barstate.isconfirmed), meaning signals appear after the bar closes and do not repaint. However:
LIVE MODE - When enabled, signals can appear intrabar but may disappear if conditions change before bar close. A warning label displays when LIVE MODE is active.
Trendlines - Pivot detection requires lookback bars, so the most recent trendline segments may adjust as new pivots confirm. This is inherent to pivot-based analysis.
Demand Zones - Zones are created on confirmed bars and do not repaint, but they can be removed if price closes below the zone bottom (configurable).
Live Mode with 'Enable Visual Effect' turned off in settings:
Limitations
This is a bullish-only indicator. It does not detect bearish setups or provide short signals.
The WINGS score is a confluence measure, not a prediction. High scores indicate favorable conditions, not guaranteed outcomes.
Pattern detection uses simplified logic. Not all candlestick nuances are captured.
Volume analysis requires reliable volume data. Results may vary on instruments with inconsistent volume reporting.
Ichimoku calculations add processing overhead. Disable if not needed.
Demand zones are based on a specific two-candle structure. Other valid zones may not be detected.
Trendlines use linear regression between pivots. Curved or complex channels are not supported.
Timeframe Recommendations
15m-1H: More frequent signals, useful for intraday analysis. Higher noise.
4H-Daily: Best balance of signal quality and frequency for swing trading.
Weekly: Fewer but more significant signals for position trading.
Adjust lookback periods and thresholds based on your timeframe. Shorter timeframes may benefit from shorter lookbacks.
Open-Source and Disclaimer
This script is published as open-source under the Mozilla Public License 2.0 for educational purposes. The source code is fully visible and can be studied to understand how each module works.
This indicator does not constitute financial advice. The WINGS score and signals do not guarantee profitable trades. Past performance does not guarantee future results. Always use proper risk management, position sizing, and stop-losses. Test thoroughly on your preferred instruments and timeframes before using in live trading.
- Made with passion by officialjackofalltrades
Zenith MACD Evolution [JOAT]
Zenith MACD Evolution - Volatility-Normalized Momentum Oscillator
Introduction and Purpose
Zenith MACD Evolution is an open-source oscillator indicator that takes the classic MACD and normalizes it by ATR (Average True Range) to create consistent overbought/oversold levels across different market conditions. The core problem this indicator solves is that traditional MACD values are incomparable across different volatility regimes. A MACD reading of 50 might be extreme in a quiet market but normal in a volatile one.
This indicator addresses that by dividing MACD by ATR and scaling to a consistent range, allowing traders to use fixed overbought/oversold levels that work across all market conditions.
Why ATR Normalization Works
Traditional MACD problems:
- Values vary wildly based on price and volatility
- No consistent overbought/oversold levels
- Hard to compare across different instruments
- Extreme readings in one period may be normal in another
ATR-normalized MACD (Zenith) solves these:
- Values scaled to consistent range
- Fixed overbought/oversold levels work across all conditions
- Comparable across different instruments
- Extreme readings are truly extreme regardless of volatility
How the Normalization Works
// Classic MACD
= ta.macd(close, fastLength, slowLength, signalLength)
// ATR for normalization
float atrValue = ta.atr(atrNormLength)
// Volatility-Normalized MACD
float zenithMACD = atrValue != 0 ? (histLine / atrValue) * 100 : 0
float zenithSignal = ta.ema(zenithMACD, signalLength)
The result is a MACD that typically ranges from -200 to +200, with consistent levels:
- Above +150 = Overbought
- Below -150 = Oversold
- Above +200 = Extreme overbought
- Below -200 = Extreme oversold
Signal Types
Zero Cross Up/Down - Zenith crosses zero line (trend change)
Overbought/Oversold Entry - Zenith enters extreme zones
Overbought/Oversold Exit - Zenith leaves extreme zones (potential reversal)
Momentum Shift - Histogram direction changes (early warning)
Divergence - Price makes new high/low but Zenith does not
Histogram Coloring
The histogram uses four colors to show momentum state:
- Strong Bull (Teal) - Positive and rising
- Weak Bull (Light Teal) - Positive but falling
- Strong Bear (Red) - Negative and falling
- Weak Bear (Light Red) - Negative but rising
This helps identify momentum shifts before crossovers occur.
Dashboard Information
Zenith - Current normalized MACD value with signal line
Zone - Current zone (EXTREME OB/OVERBOUGHT/NORMAL/OVERSOLD/EXTREME OS)
Momentum - Direction (RISING/FALLING/FLAT)
Histogram - Current histogram value
ATR Norm - Current ATR value used for normalization
Classic - Traditional MACD value for reference
How to Use This Indicator
For Mean-Reversion:
1. Wait for Zenith to reach extreme zones (+200/-200)
2. Look for momentum shift (histogram color change)
3. Enter counter-trend when exiting extreme zone
For Trend Following:
1. Enter long on zero cross up
2. Enter short on zero cross down
3. Use histogram color to gauge momentum strength
For Divergence Trading:
1. Watch for DIV labels (price vs Zenith divergence)
2. Bullish divergence at support = potential long
3. Bearish divergence at resistance = potential short
Input Parameters
Fast/Slow/Signal Length (12/26/9) - Standard MACD parameters
ATR Normalization Period (26) - Period for ATR calculation
Overbought/Oversold Zone (150/-150) - Zone thresholds
Extreme Level (200) - Extreme threshold
Show Classic MACD Lines (false) - Toggle traditional lines
Show Divergence Detection (true) - Toggle divergence signals
Divergence Lookback (14) - Bars to scan for divergence
Timeframe Recommendations
All timeframes work due to normalization
Higher timeframes provide smoother signals
Normalization makes cross-timeframe comparison meaningful
Limitations
ATR normalization adds slight lag
Divergence detection is simplified
Extreme zones can persist in strong trends
Works best when combined with price action analysis
Open-Source and Disclaimer
This script is published as open-source under the Mozilla Public License 2.0 for educational purposes.
This indicator does not constitute financial advice. Momentum analysis does not guarantee profitable trades. Always use proper risk management.
- Made with passion by officialjackofalltrades
Vortex Trend Matrix [JOAT]Vortex Trend Matrix - Multi-Factor Trend Confluence System
Introduction and Purpose
Vortex Trend Matrix is an open-source overlay indicator that combines Ichimoku-style equilibrium analysis with the Vortex Indicator to create a comprehensive trend confluence system. The core problem this indicator solves is that single trend indicators often give conflicting signals. Price might be above a moving average but momentum might be weakening.
This indicator addresses that by combining five different trend factors into a single composite score, making it easy to identify when multiple factors align for high-probability trend trades.
Why These Components Work Together
Each component measures trend from a different perspective:
1. Cloud Position - Price above/below the equilibrium cloud indicates overall trend bias. The cloud acts as dynamic support/resistance.
2. TK Relationship - Conversion line vs Base line (like Tenkan/Kijun in Ichimoku). Conversion above Base = bullish momentum.
3. Lagging Span - Current price compared to price N bars ago. Confirms whether current move has follow-through.
4. Vortex Indicator - VI+ vs VI- measures directional movement strength. Provides momentum confirmation.
5. Base Direction - Whether the base line is rising or falling. Indicates medium-term trend direction.
How the Trend Score Works
float trendScore = 0.0
// Cloud position (+2/-2)
trendScore += aboveCloud ? 2.0 : belowCloud ? -2.0 : 0.0
// TK relationship (+1/-1)
trendScore += conversionLine > baseLine ? 1.0 : conversionLine < baseLine ? -1.0 : 0.0
// Lagging span (+1/-1)
trendScore += laggingBull ? 1.0 : laggingBear ? -1.0 : 0.0
// Vortex (+1.5/-1.5)
trendScore += vortexBull ? 1.5 : vortexBear ? -1.5 : 0.0
// Base direction (+0.5/-0.5)
trendScore += baseDirection * 0.5
Score ranges from approximately -6 to +6:
- +4 or higher = STRONG BULL
- +2 to +4 = BULL
- -2 to +2 = NEUTRAL
- -4 to -2 = BEAR
- -4 or lower = STRONG BEAR
Signal Types
TK Cross Up/Down - Conversion line crosses Base line (momentum shift)
Base Direction Change - Base line changes direction (medium-term shift)
Strong Bull/Bear Trend - Score reaches +4/-4 (high confluence)
Dashboard Information
Trend - Overall status with composite score
Cloud - Price position (ABOVE/BELOW/INSIDE)
TK Cross - Conversion vs Base relationship
Lagging - Lagging span bias
Vortex - VI+/VI- relationship
VI+/VI- - Individual vortex values
How to Use This Indicator
For Trend Following:
1. Enter long when trend score reaches +4 or higher (STRONG BULL)
2. Enter short when trend score reaches -4 or lower (STRONG BEAR)
3. Use cloud as dynamic support/resistance for entries
For Momentum Timing:
1. Watch for TK Cross signals for entry timing
2. Base direction changes indicate medium-term shifts
3. Vortex confirmation adds conviction
For Risk Management:
1. Exit when trend score drops to neutral
2. Use cloud edges as stop-loss references
3. Reduce position when score weakens
Input Parameters
Conversion Period (9) - Fast equilibrium line
Base Period (26) - Slow equilibrium line
Lead Span Period (52) - Cloud projection period
Displacement (26) - Cloud and lagging span offset
Vortex Period (14) - Period for vortex calculation
VI+ Strength (1.10) - Threshold for strong bullish vortex
VI- Strength (0.90) - Threshold for strong bearish vortex
Timeframe Recommendations
4H-Daily: Best for equilibrium-based analysis
1H: Good for intraday trend following
Lower timeframes may require adjusted periods
Limitations
Equilibrium calculations have inherent lag
Cloud displacement means signals are delayed
Works best in trending markets
May whipsaw in ranging conditions
Open-Source and Disclaimer
This script is published as open-source under the Mozilla Public License 2.0 for educational purposes.
This indicator does not constitute financial advice. Trend analysis does not guarantee profitable trades. Always use proper risk management.
- Made with passion by officialjackofalltrades
Pulse Volume Commitment [JOAT]
Pulse Volume Commitment - Three-Dimensional Momentum Analysis
Introduction and Purpose
Pulse Volume Commitment is an open-source oscillator indicator that analyzes price action through three distinct dimensions: Quantity (candle count), Quality (body structure), and Commitment (volume-weighted quality). The core problem this indicator solves is that simple bullish/bearish candle counts miss important context. A market can have more green candles but still be weak if those candles have small bodies and low volume.
This indicator addresses that by requiring all three dimensions to align before generating strong signals, filtering out weak moves that lack conviction.
Why These Three Dimensions Work Together
Each dimension measures a different aspect of market conviction:
1. Quantity - Counts bullish vs bearish candles over the lookback period. Tells you WHO is winning the candle count battle.
2. Quality - Scores candles by body size relative to total range. Full-bodied candles (small wicks) indicate stronger conviction than doji-like candles. Tells you HOW decisively price is moving.
3. Commitment - Weights quality scores by volume. High-quality candles on high volume indicate institutional participation. Tells you WHETHER smart money is involved.
When all three align (e.g., more bullish candles + bullish quality + bullish commitment), the signal is significantly more reliable.
How the Calculations Work
Quantity Analysis:
int greenCount = 0
int redCount = 0
for i = 0 to lookbackPeriod - 1
if close > open
greenCount += 1
if close < open
redCount += 1
bool quantityBull = greenCount > redCount
Quality Analysis (body-to-range scoring):
for i = 0 to lookbackPeriod - 1
float candleBody = close - open // Signed (positive = bull)
float candleRange = high - low
float bodyQuality = candleRange > 0 ? (candleBody / candleRange * 100) * candleRange : 0.0
sumBodyQuality += bodyQuality
bool qualityBull = sumBodyQuality > 0
Signal Types
FULL BULL - All three dimensions bullish (Quantity + Quality + Commitment)
FULL BEAR - All three dimensions bearish
LEAN BULL/BEAR - 2 of 3 dimensions agree
MIXED - No clear consensus
STRONG BUY/SELL - Full confluence + ADX confirms trending market
ADX Integration
The indicator includes ADX (Average Directional Index) to filter signals:
- ADX >= 20 = TRENDING market (signals more reliable)
- ADX < 20 = RANGING market (signals may whipsaw)
Strong signals only trigger when full confluence occurs in a trending environment.
Dashboard Information
Quantity - BULL/BEAR/FLAT with green/red candle ratio
Quality - Directional bias based on body quality scoring
Commit - Volume-weighted commitment reading
ADX - Trend strength (TRENDING/RANGING)
Signal - Confluence status (FULL BULL/FULL BEAR/LEAN/MIXED)
Action - STRONG BUY/STRONG SELL/WAIT
How to Use This Indicator
For High-Conviction Entries:
1. Wait for FULL BULL or FULL BEAR confluence
2. Confirm ADX shows TRENDING
3. Enter when Action shows STRONG BUY or STRONG SELL
For Filtering Weak Setups:
1. Avoid entries when signal shows MIXED
2. Be cautious when ADX shows RANGING
3. Require at least 2 of 3 dimensions to agree
For Divergence Analysis:
1. Watch for Quantity bullish but Commitment bearish (distribution)
2. Watch for Quantity bearish but Commitment bullish (accumulation)
Input Parameters
Lookback Period (9) - Bars to analyze for all three dimensions
ADX Smoothing (14) - Period for ADX calculation
ADX DI Length (14) - Period for directional indicators
Timeframe Recommendations
15m-1H: Good for intraday momentum analysis
4H-Daily: Best for swing trading confluence
Lookback period may need adjustment for different timeframes
Limitations
Lookback period affects signal responsiveness vs reliability tradeoff
Volume data quality varies by exchange
ADX filter may cause missed entries in early trends
Works best on liquid instruments with consistent volume
Open-Source and Disclaimer
This script is published as open-source under the Mozilla Public License 2.0 for educational purposes.
This indicator does not constitute financial advice. Confluence signals do not guarantee profitable trades. Always use proper risk management.
- Made with passion by officialjackofalltrades
Prism Band Dynamics [JOAT]Prism Band Dynamics - Bollinger-Style Bands with Force Detection
Introduction and Purpose
Prism Band Dynamics is an open-source overlay indicator that creates dynamic Bollinger-style bands with an innovative "force detection" system. The core problem this indicator solves is that standard Bollinger Bands show volatility but don't indicate directional momentum. When all three band components (upper, lower, basis) move in the same direction, it indicates strong directional force that standard bands don't highlight.
This indicator addresses that by detecting when all band components align directionally, providing a clear signal of market force.
Why Force Detection Matters
Standard Bollinger Bands expand and contract based on volatility, but they don't tell you about directional momentum. Force detection adds this dimension:
1. Bullish Force - Upper band, lower band, AND basis all moving up together. This indicates strong upward momentum where even the lower support level is rising.
2. Bearish Force - Upper band, lower band, AND basis all moving down together. This indicates strong downward momentum where even the upper resistance level is falling.
3. Neutral - Mixed movement indicates consolidation or uncertainty.
How Force Detection Works
bool upperUp = upper > upper
bool lowerUp = lower > lower
bool basisUp = basis > basis
int forceFull = if upperUp and lowerUp and basisUp
1 // Bullish force
else if upperDn and lowerDn and basisDn
-1 // Bearish force
else
0 // Neutral
Additional Features
Squeeze Detection - Identifies when band width contracts below threshold, often preceding large moves
Gradient Fills - Color intensity reflects force strength
Direction Change Arrows - Visual markers when force direction shifts
Dashboard Information
Force - Current force status (BULLISH/BEARISH/NEUTRAL)
Position - Price location within bands (Upper/Mid/Lower Zone)
Band Width - Current width percentage with expansion/contraction label
Volatility - Squeeze status (SQUEEZE/NORMAL)
Force Count - Bars since last force change
How to Use This Indicator
For Trend Following:
1. Enter long when force turns BULLISH
2. Enter short when force turns BEARISH
3. Exit or reduce when force turns NEUTRAL
For Squeeze Breakouts:
1. Watch for SQUEEZE status in dashboard
2. Prepare for breakout in either direction
3. Enter when force confirms direction after squeeze
For Mean Reversion:
1. Only trade mean-reversion when force is NEUTRAL
2. Avoid fading moves when force is active
3. Use band touches as entry points during neutral force
Input Parameters
Length (20) - Period for basis and standard deviation
Multiplier (2.0) - Standard deviation multiplier for bands
MA Type (SMA) - Basis calculation method
Squeeze Threshold (0.5) - Band width percentage for squeeze detection
Timeframe Recommendations
4H-Daily: Cleanest force signals
1H: Good balance of signals and reliability
15m: More signals but more noise
Limitations
Force detection can lag during rapid reversals
Squeeze breakouts can fail (false breakouts)
Works best in markets with clear trending/ranging phases
Open-Source and Disclaimer
This script is published as open-source under the Mozilla Public License 2.0 for educational purposes.
This indicator does not constitute financial advice. Force detection does not guarantee trend continuation. Always use proper risk management.
- Made with passion by officialjackofalltrades
Nexus Momentum Flow [JOAT]
Nexus Momentum Flow - ADX-Based Trend Strength Analysis
Introduction and Purpose
Nexus Momentum Flow is an open-source oscillator indicator that combines the ADX (Average Directional Index) with directional movement indicators (+DI/-DI) to create a comprehensive trend strength and direction analysis tool. The core problem this indicator solves is that ADX alone tells you trend strength but not direction, while +DI/-DI alone tells you direction but not strength. Traders need both pieces of information together.
This indicator addresses that by combining ADX strength classification with directional bias into a single confluence score, making it easy to identify when strong trends exist and which direction they favor.
Why These Components Work Together
1. ADX (Average Directional Index) - Measures trend strength regardless of direction. Values above 25 indicate trending; below 20 indicate ranging.
2. +DI (Positive Directional Indicator) - Measures upward price movement strength.
3. -DI (Negative Directional Indicator) - Measures downward price movement strength.
4. Confluence Score - Combines ADX strength with DI bias to create a single actionable metric.
The combination works because:
ADX filters out ranging markets where DI crossovers produce whipsaws
DI relationship provides direction when ADX confirms trend
Confluence score simplifies the analysis into one number
How the Calculation Works
float directionBias = diPlus - diMinus
float confluenceScore = (adx / 100) * directionBias
The confluence score is positive when +DI > -DI (bullish) and negative when -DI > +DI (bearish), with magnitude scaled by ADX strength.
Trend State Classification
EXTREME - ADX > 50 (very strong trend)
STRONG - ADX 35-50 (strong trend)
TRENDING - ADX 25-35 (moderate trend)
RANGING - ADX < 25 (no clear trend)
Dashboard Information
Status - Current trend state (EXTREME/STRONG/TRENDING/RANGING)
Direction - BULLISH or BEARISH based on DI relationship
ADX - Current ADX value
DI Bias - Difference between +DI and -DI
Confluence - Combined score with directional context
How to Use This Indicator
For Trend Following:
1. Wait for ADX to show TRENDING or higher
2. Check direction matches your trade bias
3. Enter on pullbacks when confluence remains positive/negative
4. Exit when ADX drops to RANGING
For Avoiding Whipsaws:
1. Do not trade DI crossovers when ADX shows RANGING
2. Only trust directional signals when ADX confirms trend
3. Use RANGING periods for mean-reversion strategies instead
For Trend Exhaustion:
1. Watch for EXTREME ADX readings
2. Extreme trends often precede reversals
3. Consider taking profits when ADX reaches extreme levels
Input Parameters
ADX Length (14) - Period for ADX calculation
DI Length (14) - Period for directional indicators
ADX Smoothing (14) - Smoothing period for ADX
Trend Threshold (25) - ADX level for trend confirmation
Strong Threshold (35) - ADX level for strong trend
Extreme Threshold (50) - ADX level for extreme trend
Timeframe Recommendations
Daily/4H: Best for swing trading trend analysis
1H: Good for intraday trend following
15m: More signals but requires faster reaction
Limitations
ADX is a lagging indicator - trends are confirmed after they start
DI crossovers can whipsaw even with ADX filter
Works best in markets that trend clearly
May miss early trend entries due to confirmation requirement
Open-Source and Disclaimer
This script is published as open-source under the Mozilla Public License 2.0 for educational purposes.
This indicator does not constitute financial advice. Trend analysis does not guarantee profitable trades. Always use proper risk management.
- Made with passion by officialjackofalltrades
Fractal Wave Hunter [JOAT]
Fractal Wave Hunter - Multi-Method Fractal Detection System
Introduction and Purpose
Fractal Wave Hunter is an open-source overlay indicator that identifies key reversal patterns using multiple fractal detection methods. The core problem this indicator solves is that different fractal methods catch different types of reversals. Williams' classic 5-bar fractal is reliable but slow; Hougaard's 4-bar method is faster but noisier. Using only one method means missing valid signals that the other would catch.
This indicator addresses that by combining both methods plus HOLP/LOHP detection, giving traders a comprehensive view of potential reversal points.
Why These Methods Work Together
Each fractal method has different characteristics:
1. 4-Bar Fractal (Hougaard Method) - Faster detection, identifies momentum shifts when close exceeds recent highs/lows. Best for catching early reversals.
2. Classic 5-Bar Fractal (Williams) - Traditional pivot detection requiring the middle bar to be the highest/lowest of 5 bars. Best for identifying significant swing points.
3. HOLP/LOHP - High of Low Period and Low of High Period signals identify when price makes a new extreme within a defined lookback. Best for trend exhaustion detection.
By combining these methods, traders can:
Use 4-bar fractals for early entry signals
Use 5-bar fractals for confirmation and stop placement
Use HOLP/LOHP for trend exhaustion warnings
How the Detection Works
4-Bar Fractal (Hougaard):
bool fractal4BuyBase = close > high and close > high
bool fractal4SellBase = close < low and close < low
Classic 5-Bar Fractal:
bool fractalHigh = high > high and high > high and high > high and high > high
bool fractalLow = low < low and low < low and low < low and low < low
Signal Types
4B (4-Bar Buy) - Close exceeds high and high - early bullish signal
4S (4-Bar Sell) - Close below low and low - early bearish signal
FH (Fractal High) - Classic 5-bar swing high - confirmed resistance
FL (Fractal Low) - Classic 5-bar swing low - confirmed support
HOLP - High of low period - potential bullish exhaustion
LOHP - Low of high period - potential bearish exhaustion
Dashboard Information
4-Bar Fractal - Count of bullish/bearish 4-bar fractals
Classic Fractal - Count of 5-bar fractal highs/lows
HOLP/LOHP - Reversal signal counts
Total Signals - Combined pattern count
How to Use This Indicator
For Counter-Trend Entries:
1. Wait for 4-bar fractal signal at key support/resistance
2. Confirm with 5-bar fractal forming nearby
3. Enter with stop beyond the fractal point
For Stop Placement:
1. Use 5-bar fractal highs/lows as stop-loss references
2. These represent confirmed swing points that should hold if trend continues
For Trend Analysis:
1. Track swing structure using fractal highs and lows
2. Higher fractal lows = uptrend structure
3. Lower fractal highs = downtrend structure
Input Parameters
Show 4-Bar Fractals (true) - Toggle Hougaard method signals
Show Classic Fractals (true) - Toggle Williams method signals
Show HOLP/LOHP (true) - Toggle exhaustion signals
ATR Filter (false) - Only show signals during volatile conditions
Swing Lines (true) - Connect significant swing points
Timeframe Recommendations
1H-Daily: Best for reliable fractal detection
15m-30m: More signals but higher noise
Weekly: Fewer but more significant fractals
Limitations
5-bar fractals have inherent 2-bar lag (need confirmation)
4-bar fractals can produce false signals in choppy markets
HOLP/LOHP signals work best at trend extremes
Not all fractals lead to significant reversals
Open-Source and Disclaimer
This script is published as open-source under the Mozilla Public License 2.0 for educational purposes.
This indicator does not constitute financial advice. Fractal detection does not guarantee reversals. Always use proper risk management.
- Made with passion by officialjackofalltrades
Eclipse Multi-Oscillator [JOAT]Eclipse Multi-Oscillator - Unified Momentum Confluence System
Introduction and Purpose
Eclipse Multi-Oscillator is an open-source indicator that combines four classic oscillators (RSI, Stochastic, CCI, and Williams %R) into a single unified view with confluence detection. The core problem this indicator solves is oscillator disagreement: traders often see RSI oversold while Stochastic is neutral, or CCI overbought while Williams %R is mid-range. This creates confusion about the true momentum state.
This indicator addresses that by displaying all four oscillators together and counting how many agree on overbought or oversold conditions, providing a clear confluence score that cuts through the noise.
Why These Four Oscillators Work Together
Each oscillator measures momentum differently, and their combination provides a more complete picture:
1. RSI (Relative Strength Index) - Measures the magnitude of recent price changes. Best at identifying momentum exhaustion.
2. Stochastic - Compares closing price to the high-low range. Best at identifying where price is within its recent range.
3. CCI (Commodity Channel Index) - Measures price deviation from statistical mean. Best at identifying unusual price movements.
4. Williams %R - Similar to Stochastic but inverted. Provides confirmation of Stochastic readings.
When 3 or more of these oscillators agree on overbought or oversold, the signal is significantly more reliable than any single oscillator alone.
How Confluence Scoring Works
The indicator counts how many oscillators are in extreme territory:
int obCount = 0
if rsi > rsiOB
obCount += 1
if stochK > stochOB
obCount += 1
if cci > cciOB
obCount += 1
if willRScaled > stochOB
obCount += 1
bool strongOverbought = obCount >= 3
bool strongOversold = osCount >= 3
The confluence score ranges from -4 (all oversold) to +4 (all overbought), with 0 being neutral.
Signal Types
Strong Oversold - 3+ oscillators below oversold threshold (potential bounce)
Strong Overbought - 3+ oscillators above overbought threshold (potential pullback)
OB/OS Exit - RSI leaving extreme zone with Stochastic confirmation (potential reversal)
Divergence - Price makes new high/low while RSI does not (potential reversal warning)
Dashboard Information
RSI/Stoch K/CCI/Will %R - Current values with zone status (OB/OS/MID)
Confluence - Overall bias (STRONG OS, STRONG OB, Lean Bull/Bear, Neutral)
OB Count - How many oscillators are overbought (0-4)
OS Count - How many oscillators are oversold (0-4)
How to Use This Indicator
For Reversal Trading:
1. Wait for Strong Oversold (3+ oscillators agree)
2. Look for bullish candlestick pattern or support level
3. Enter long with stop below recent low
4. Take profit when confluence returns to neutral or overbought
For Trend Confirmation:
1. Check confluence direction matches your trade bias
2. Avoid longs when confluence is strongly overbought
3. Avoid shorts when confluence is strongly oversold
For Divergence Trading:
1. Watch for "D" labels indicating RSI divergence
2. Bullish divergence at support = potential long
3. Bearish divergence at resistance = potential short
Input Parameters
RSI Length (14) - Period for RSI calculation
Stochastic K/D Length (14/3) - Periods for Stochastic
CCI Length (20) - Period for CCI
Williams %R Length (14) - Period for Williams %R
OB/OS Thresholds - Customizable levels for each oscillator
Timeframe Recommendations
15m-1H: Good for intraday momentum analysis
4H-Daily: Best for swing trading confluence
Very short timeframes may produce noisy signals
Limitations
All oscillators can remain in extreme territory during strong trends
Confluence does not predict direction, only identifies extremes
Divergence detection is simplified and may miss some patterns
Works best in ranging or moderately trending markets
Open-Source and Disclaimer
This script is published as open-source under the Mozilla Public License 2.0 for educational purposes. The source code is fully visible and can be studied.
This indicator does not constitute financial advice. Oscillator confluence does not guarantee reversals. Past performance does not guarantee future results. Always use proper risk management.
- Made with passion by officialjackofalltrades
Aurora Volatility Bands [JOAT]Aurora Volatility Bands - Dynamic ATR-Based Envelope System
Introduction and Purpose
Aurora Volatility Bands is an open-source overlay indicator that creates multi-layered volatility envelopes around price using ATR (Average True Range) calculations. The core problem this indicator solves is that static bands (like fixed percentage envelopes) fail to adapt to changing market conditions. During high volatility, static bands are too tight; during low volatility, they're too wide.
This indicator addresses that by using ATR-based dynamic bands that automatically expand during volatile periods and contract during quiet periods, providing contextually appropriate support/resistance levels at all times.
Why These Components Work Together
The indicator combines three analytical approaches:
1. Triple-Layer Band System - Inner (1x ATR), Outer (2x ATR), and Extreme (3x ATR) bands provide graduated levels of significance
2. Volatility State Detection - Compares current ATR to historical average to classify market regime
3. Multiple MA Types - Allows customization of the center line calculation method
These components complement each other:
The triple-layer system gives traders multiple reference points - inner bands for normal moves, outer for significant moves, extreme for rare events
Volatility state detection tells you WHEN bands are expanding or contracting, helping anticipate breakouts or mean-reversion
MA type selection lets you match the indicator to your trading style (faster EMA vs smoother SMA)
How the Calculation Works
The bands are calculated using ATR multiplied by configurable factors:
float atr = ta.atr(atrPeriod)
float innerUpper = centerMA + (atr * innerMult)
float outerUpper = centerMA + (atr * outerMult)
float extremeUpper = centerMA + (atr * extremeMult)
Volatility state is determined by comparing current ATR percentage to its historical average:
float atrPercent = (atr / close) * 100
float avgAtrPercent = ta.sma(atrPercent, volatilityLookback)
float volatilityRatio = atrPercent / avgAtrPercent
bool isExpanding = volatilityRatio > 1.2 // 20%+ above average
bool isContracting = volatilityRatio < 0.8 // 20%+ below average
Signal Types
Band Touch - Price reaches inner, outer, or extreme bands
Mean Reversion - Price returns to center after touching outer/extreme bands
Breakout - Sustained move beyond outer bands during volatility expansion
Dashboard Information
Volatility - Current state (EXPANDING/CONTRACTING/NORMAL)
Vol Ratio - Current volatility vs average (e.g., 1.5x = 50% above average)
ATR - Current ATR value
ATR % - ATR as percentage of price
Zone - Current price position (EXTREME HIGH/UPPER ZONE/CENTER ZONE/etc.)
Position - Price position as percentage within band structure
Width - Total band width as percentage of price
Using SMA in settings:
How to Use This Indicator
For Mean-Reversion Trading:
1. Wait for price to touch outer or extreme bands
2. Check that volatility state is NORMAL or CONTRACTING (not expanding)
3. Look for reversal candlestick patterns at the band
4. Enter toward center MA with stop beyond the band
For Breakout Trading:
1. Wait for volatility state to show EXPANDING
2. Look for price closing beyond outer bands
3. Enter in direction of breakout
4. Use the band as trailing stop reference
For Volatility Analysis:
1. Monitor volatility ratio for regime changes
2. CONTRACTING often precedes large moves (squeeze)
3. EXPANDING confirms trend strength
Using VWMA and Mean Reversion Signal/MR:
Input Parameters
ATR Period (14) - Period for ATR calculation
Inner/Outer/Extreme Multipliers (1.0/2.0/3.0) - Band distance from center
MA Type (EMA) - Center line calculation method
MA Period (20) - Period for center line
Volatility Comparison Period (20) - Lookback for volatility state
Timeframe Recommendations
15m-1H: Good for intraday mean-reversion
4H-Daily: Best for swing trading and breakout identification
Weekly: Useful for position trading and major level identification
Limitations
ATR-based bands lag during sudden volatility spikes
Mean-reversion signals can fail in strong trends
Breakout signals may whipsaw in ranging markets
Works best on liquid instruments with consistent volatility patterns
Open-Source and Disclaimer
This script is published as open-source under the Mozilla Public License 2.0 for educational purposes. The source code is fully visible and can be studied to understand how each component works.
This indicator does not constitute financial advice. Band touches do not guarantee reversals. Past performance does not guarantee future results. Always use proper risk management, position sizing, and stop-losses.
- Made with passion by officialjackofalltrades
Entropy Balance Oscillator [JOAT]
Entropy Balance Oscillator - Chaos Theory Edition
Overview
Entropy Balance Oscillator is an open-source oscillator indicator that applies chaos theory concepts to market analysis. It calculates market entropy (disorder/randomness), balance (price position within range), and various chaos metrics to identify whether the market is in an ordered, chaotic, or balanced state. This helps traders understand market regime and adjust their strategies accordingly.
What This Indicator Does
The indicator calculates and displays:
Entropy - Measures market disorder using return distribution analysis
Balance - Price position within the high-low range, normalized to -1 to +1
Lyapunov Exponent - Estimates sensitivity to initial conditions (chaos indicator)
Hurst Exponent - Measures long-term memory in price series (trend persistence)
Strange Attractor - Simulated attractor points for visualization
Bifurcation Detection - Identifies potential regime change points
Chaos Index - Combined entropy and volatility score
Market Phase - Classification as CHAOS, ORDER, or BALANCED
How It Works
Entropy is calculated using return distribution:
calculateEntropy(series float price, simple int period) =>
// Calculate returns and their absolute values
// Sum absolute returns for normalization
// Apply Shannon entropy formula: -sum(p * log(p))
float entropy = 0.0
for i = 0 to array.size(returns) - 1
float prob = math.abs(array.get(returns, i)) / sumAbs
if prob > 0
entropy -= prob * math.log(prob)
entropy
Balance measures price position within range:
calculateBalance(series float high, series float low, series float close, simple int period) =>
float range = high - low
float position = (close - low) / (range > 0 ? range : 1)
float balance = ta.ema(position, period)
(balance - 0.5) * 2 // Normalize to -1 to +1
Lyapunov Exponent estimates chaos sensitivity:
lyapunovExponent(series float price, simple int period) =>
float sumLog = 0.0
for i = 1 to period
float ratio = price > 0 ? math.abs(price / price ) : 1.0
if ratio > 0
sumLog += math.log(ratio)
lyapunov := sumLog / period
Hurst Exponent measures trend persistence:
H > 0.5: Trending/persistent behavior
H = 0.5: Random walk
H < 0.5: Mean-reverting behavior
Signal Generation
Phase changes and extreme conditions generate signals:
Chaos Phase: Normalized entropy exceeds chaos threshold (default 0.7)
Order Phase: Normalized entropy falls below order threshold (default 0.3)
Extreme Chaos: Entropy exceeds 1.5x chaos threshold
Extreme Order: Entropy falls below 0.5x order threshold
Bifurcation: Variance exceeds 2x average variance
Dashboard Panel (Top-Right)
Market Phase - Current phase (CHAOS/ORDER/BALANCED)
Entropy Level - Normalized entropy value
Balance - Current balance reading (-1 to +1)
Chaos Index - Combined chaos score percentage
Volatility - Current price volatility
Lyapunov Exp - Lyapunov exponent value
Hurst Exponent - Hurst exponent value
Chaos Score - Overall chaos assessment
Status - Current market status
Visual Elements
Entropy Line - Main oscillator showing normalized entropy
Entropy EMA - Smoothed entropy for trend reference
Balance Area - Filled area showing balance direction
Chaos/Order Thresholds - Horizontal dashed lines
Lyapunov Line - Step line showing Lyapunov exponent
Strange Attractor - Circle plots showing attractor points
Phase Space - Line showing phase space reconstruction
Phase Background - Background color based on current phase
Extreme Markers - X-cross for extreme chaos, diamond for extreme order
Bifurcation Markers - Circles at potential regime changes
Input Parameters
Entropy Period (default: 20) - Period for entropy calculation
Balance Period (default: 14) - Period for balance calculation
Chaos Threshold (default: 0.7) - Threshold for chaos phase
Order Threshold (default: 0.3) - Threshold for order phase
Lyapunov Exponent (default: true) - Enable Lyapunov calculation
Hurst Exponent (default: true) - Enable Hurst calculation
Strange Attractor (default: true) - Enable attractor visualization
Bifurcation Detection (default: true) - Enable bifurcation detection
Suggested Use Cases
Identify market regime for strategy selection (trend-following vs mean-reversion)
Watch for phase changes as potential trading environment shifts
Use Hurst exponent to assess trend persistence
Monitor chaos index for volatility regime awareness
Avoid trading during extreme chaos phases
Timeframe Recommendations
Best on 1H to Daily charts. Chaos metrics require sufficient data for meaningful calculations.
Limitations
Chaos theory concepts are applied as analogies, not rigorous mathematical implementations
Lyapunov and Hurst calculations are simplified approximations
Strange attractor visualization is conceptual
Bifurcation detection uses variance as proxy
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
Velocity Divergence Radar [JOAT]
Velocity Divergence Radar - Momentum Physics Edition
Overview
Velocity Divergence Radar is an open-source oscillator indicator that applies physics concepts to market analysis. It calculates price velocity (rate of change), acceleration (rate of velocity change), and jerk (rate of acceleration change) to provide a multi-dimensional view of momentum. The indicator also includes divergence detection and force vector analysis.
What This Indicator Does
The indicator calculates and displays:
Velocity - Rate of price change over a configurable period, smoothed with EMA
Acceleration - Rate of velocity change, showing momentum shifts
Jerk (3rd Derivative) - Rate of acceleration change, indicating momentum stability
Force Vectors - Volume-weighted acceleration representing market force
Kinetic Energy - Calculated as 0.5 * mass (volume ratio) * velocity squared
Momentum Conservation - Tracks momentum relative to historical average
Divergence Detection - Identifies when price and velocity diverge at pivots
How It Works
Velocity is calculated as smoothed rate of change:
calculateVelocity(series float price, simple int period) =>
float roc = ta.roc(price, period)
float velocity = ta.ema(roc, period / 2)
velocity
Acceleration is the change in velocity:
calculateAcceleration(series float velocity, simple int period) =>
float accel = ta.change(velocity, period)
float smoothAccel = ta.ema(accel, period / 2)
smoothAccel
Jerk is the change in acceleration:
calculateJerk(series float acceleration, simple int period) =>
float jerk = ta.change(acceleration, period)
float smoothJerk = ta.ema(jerk, period / 2)
smoothJerk
Force is calculated using F = m * a (mass approximated by volume ratio):
calculateForceVector(series float mass, series float acceleration) =>
float force = mass * acceleration
float forceDirection = math.sign(force)
float forceMagnitude = math.abs(force)
Signal Generation
Signals are generated based on velocity behavior:
Bullish Divergence: Price makes lower low while velocity makes higher low
Bearish Divergence: Price makes higher high while velocity makes lower high
Velocity Cross: Velocity crosses above/below zero line
Extreme Velocity: Velocity exceeds 1.5x the upper/lower zone threshold
Jerk Extreme: Jerk exceeds 2x standard deviation
Force Extreme: Force magnitude exceeds 2x average
Dashboard Panel (Top-Right)
Velocity - Current velocity value
Acceleration - Current acceleration value
Momentum Strength - Combined velocity and acceleration strength
Radar Score - Composite score based on velocity and acceleration
Direction - STRONG UP/SLOWING UP/STRONG DOWN/SLOWING DOWN/FLAT
Jerk - Current jerk value
Force Vector - Current force magnitude
Kinetic Energy - Current kinetic energy value
Physics Score - Overall physics-based momentum score
Signal - Current actionable status
Visual Elements
Velocity Line - Main oscillator line with color based on direction
Velocity EMA - Smoothed velocity for trend reference
Acceleration Histogram - Bar chart showing acceleration direction
Jerk Area - Filled area showing jerk magnitude
Vector Magnitude - Line showing combined vector strength
Radar Scan - Oscillating pattern for visual effect
Zone Lines - Upper and lower threshold lines
Divergence Labels - BULL DIV / BEAR DIV markers
Extreme Markers - Triangles at velocity extremes
Input Parameters
Velocity Period (default: 14) - Period for velocity calculation
Acceleration Period (default: 7) - Period for acceleration calculation
Divergence Lookback (default: 10) - Bars to scan for divergence
Radar Sensitivity (default: 1.0) - Zone threshold multiplier
Jerk Analysis (default: true) - Enable 3rd derivative calculation
Force Vectors (default: true) - Enable force analysis
Kinetic Energy (default: true) - Enable energy calculation
Momentum Conservation (default: true) - Enable momentum tracking
Suggested Use Cases
Identify momentum direction using velocity sign and magnitude
Watch for divergences as potential reversal warnings
Use acceleration to detect momentum shifts before price confirms
Monitor jerk for momentum stability assessment
Combine force and kinetic energy for conviction analysis
Timeframe Recommendations
Works on all timeframes. Higher timeframes provide smoother readings; lower timeframes show more granular momentum changes.
Limitations
Physics analogies are conceptual and not literal market physics
Divergence detection uses pivot-based lookback and may lag
Force calculation uses volume ratio as mass proxy
Kinetic energy is a derived metric, not actual energy
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
Quantum Flow [JOAT]Quantum Flow Nexus - Advanced Multi-Dimensional Flow Analysis
Overview
Quantum Flow Nexus is an open-source overlay indicator that combines custom EMA-based flow calculations with order flow analysis, multi-timeframe correlation, and liquidity zone detection. It provides traders with a structured framework for analyzing market momentum and identifying potential entry points based on multiple confirming factors.
What This Indicator Does
The indicator calculates several analytical components:
Quantum Flow Oscillator - A custom oscillator built from multiple EMA layers at different depths
Flow Momentum - Rate of change of the flow oscillator
Order Flow Delta - Buy vs sell volume pressure estimation
Smart Money Index - Volume-weighted directional bias metric
Multi-Timeframe Entanglement - Price correlation across 15m and 60m timeframes
Liquidity Zones - Historical swing high/low levels with volume significance
Wave Function State - Momentum-based decisiveness detection
How It Works
The core quantum oscillator uses a custom EMA calculation with depth layering:
quantumOscillator(series float src, simple int len, simple int depth) =>
float osc = 0.0
for i = 1 to depth
int fastLen = len / i
int slowLen = len * i
float emaFast = quantumEMA(src, fastLen)
float emaSlow = quantumEMA(src, slowLen)
osc += (emaFast - emaSlow) / depth
osc
This creates a multi-layered view of momentum by comparing EMAs at progressively different speeds.
Signal Generation
Basic signals occur when:
Bullish: Flow crosses above lower band + positive momentum + positive order flow delta
Bearish: Flow crosses below upper band + negative momentum + negative order flow delta
Strong signals require additional confirmation:
Smart Money Index above/below threshold (50/-50)
Entanglement score above 50%
Wave function in collapsed state (decisive momentum)
Confluence Score Calculation
The indicator combines multiple factors into a single confluence percentage:
float confluenceScore = (flowStrength * 20 + entanglementScore * 0.3 + math.abs(orderFlowDelta) * 0.5) / 3
Dashboard Panel (Top-Right)
Flow Strength - Distance from center line normalized by standard deviation
Momentum - Current rate of change of flow
Trend - BULLISH/BEARISH/NEUTRAL based on flow vs EMA
Confluence Score - Combined factor percentage
Order Flow Delta - Buy/sell pressure percentage
Entanglement - Multi-timeframe correlation score
Wave State - COLLAPSED or SUPERPOSITION
Signal - Current actionable status
Visual Elements
Flow Lines - Center flow line with upper/lower bands
Quantum Zones - Filled areas between bands showing bullish/bearish zones
3D Quantum Field - Five oscillating layers creating depth visualization
Order Flow Blocks - Boxes highlighting significant order flow imbalances
Liquidity Heatmap - Dashed lines at significant historical levels
Signal Markers - Triangles for basic signals, labels for strong signals
Input Parameters
Flow Period (default: 21) - Base period for flow calculations
Quantum Depth (default: 3) - Number of EMA layers
Sensitivity (default: 1.5) - Band width multiplier
Liquidity Max Levels (default: 8) - Maximum liquidity zones displayed
Liquidity Min Strength Ratio (default: 0.10) - Minimum volume significance
Suggested Use Cases
Identify momentum direction using flow oscillator position
Confirm entries with order flow and smart money readings
Use liquidity zones as potential support/resistance areas
Wait for strong signals with multiple factor confirmation
Timeframe Recommendations
Effective on 15m to Daily charts. Lower timeframes may produce more signals with higher noise levels.
Limitations
Order flow is estimated from candle structure, not actual order book data
Multi-timeframe requests add processing time
Liquidity zones are based on historical pivots and may not reflect current market structure
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
Volatility Squeeze Pro [JOAT]
Volatility Squeeze Pro — Advanced Volatility Compression Analysis System
This indicator addresses a specific analytical challenge in volatility analysis: how to identify periods when different volatility measurements show compression relationships that may indicate potential energy buildup in the market. It combines two distinct volatility calculation methods—standard deviation-based bands and ATR-based channels—with a momentum oscillator to provide comprehensive volatility state analysis.
Why This Combination Provides Unique Analytical Value
Traditional volatility indicators typically focus on single measurements, but markets exhibit different types of volatility that require different analytical approaches:
1. **Closing Price Volatility** (Standard Deviation): Measures how much closing prices deviate from their average
2. **Trading Range Volatility** (ATR): Measures the actual high-to-low trading ranges
3. **Directional Momentum**: Measures where price sits within its recent range
The problem with using these individually:
- Standard deviation alone doesn't account for intraday volatility
- ATR alone doesn't consider closing price clustering
- Momentum alone doesn't provide volatility context
- No single measurement captures the complete volatility picture
This indicator's originality lies in creating a comprehensive volatility analysis system that:
**Identifies Volatility Compression**: When closing price volatility contracts inside trading range volatility, it suggests potential energy buildup
**Provides Momentum Context**: Shows directional bias during compression periods
**Offers Multi-Dimensional Analysis**: Combines three different analytical approaches into one coherent system
**Delivers Real-Time Assessment**: Continuously monitors the relationship between different volatility types
Technical Innovation and Originality
While individual components (Bollinger Bands, Keltner Channels, Linear Regression) are standard, the innovation lies in:
1. **Volatility Relationship Detection**: The mathematical comparison between standard deviation bands and ATR channels creates a unique compression identification system
2. **Integrated Momentum Analysis**: Linear regression-based momentum calculation provides directional context specifically during volatility compression periods
3. **Multi-State Visualization**: The indicator provides clear visual encoding of different volatility states (compressed vs. normal) with momentum direction
4. **Adaptive Threshold System**: The squeeze detection automatically adapts to different instruments and timeframes without manual calibration
How the Components Work Together Analytically
The three components create a comprehensive volatility analysis framework:
**Standard Deviation Component**: Measures closing price dispersion around the mean
float bbBasis = ta.sma(close, bbLength)
float bbDev = bbMult * ta.stdev(close, bbLength)
float bbUpper = bbBasis + bbDev
float bbLower = bbBasis - bbDev
**ATR Channel Component**: Measures actual trading range volatility
float kcBasis = ta.ema(close, kcLength)
float kcRange = ta.atr(atrLength)
float kcUpper = kcBasis + kcRange * kcMult
float kcLower = kcBasis - kcRange * kcMult
**Squeeze Detection Logic**: Identifies when closing price volatility compresses within trading range volatility
bool squeezeOn = bbLower > kcLower and bbUpper < kcUpper
// This condition indicates closing prices are clustering more tightly
// than the typical trading range would suggest
**Momentum Context Component**: Provides directional bias during compression
float highestHigh = ta.highest(high, momLength)
float lowestLow = ta.lowest(low, momLength)
float momentum = ta.linreg(close - math.avg(highestHigh, lowestLow), momLength, 0)
float momSmooth = ta.sma(momentum, smoothLength)
The analytical relationship creates a system where:
- Squeeze detection identifies WHEN volatility compression occurs
- Momentum analysis shows WHERE price is positioned during compression
- Combined analysis provides both timing and directional context
How the Volatility Comparison Works
The indicator compares two volatility measurements:
Standard Deviation Bands
These measure how much closing prices deviate from their average. When prices cluster tightly around the average, the bands contract.
// Standard deviation bands calculation
float bbBasis = ta.sma(close, bbLength)
float bbDev = bbMult * ta.stdev(close, bbLength)
float bbUpper = bbBasis + bbDev
float bbLower = bbBasis - bbDev
ATR-Based Channels
These measure volatility using Average True Range—the typical distance between high and low prices. They respond to the actual trading range rather than closing price dispersion.
// ATR-based channels calculation
float kcBasis = ta.ema(close, kcLength)
float kcRange = ta.atr(atrLength)
float kcUpper = kcBasis + kcRange * kcMult
float kcLower = kcBasis - kcRange * kcMult
The Squeeze Condition
A "squeeze" is detected when the standard deviation bands are completely contained within the ATR channels:
// Squeeze detection
bool squeezeOn = bbLower > kcLower and bbUpper < kcUpper
This condition indicates that closing price volatility has compressed relative to the overall trading range.
The Momentum Component
The momentum oscillator measures where price sits relative to its recent high-low range, using linear regression for smoothing:
// Momentum calculation
float highestHigh = ta.highest(high, momLength)
float lowestLow = ta.lowest(low, momLength)
float momentum = ta.linreg(close - math.avg(highestHigh, lowestLow), momLength, 0)
float momSmooth = ta.sma(momentum, smoothLength)
Positive values indicate price is above the midpoint of its recent range; negative values indicate below.
Why Display Both Together
The squeeze detection shows WHEN volatility is compressed. The momentum reading shows the current directional bias of price within that compression. Together, they provide two pieces of information:
1. Is volatility currently compressed? (squeeze status)
2. Where is price leaning within the current range? (momentum)
These are observations about current conditions, not predictions about future movement.
Visual Elements
Momentum Histogram — Bars showing momentum value
- Green shades: Positive momentum (price above range midpoint)
- Red shades: Negative momentum (price below range midpoint)
- Brighter colors: Momentum increasing
- Faded colors: Momentum decreasing
Squeeze Dots — Circles on the zero line
- Red: Squeeze condition active
- Green: No squeeze condition
Release Markers — Triangle markers when squeeze condition ends
Dashboard — Current readings and status
Color Scheme
Squeeze Active — #FF5252 (red)
No Squeeze — #4CAF50 (green)
Momentum Positive — #00E676 / #81C784 (green shades)
Momentum Negative — #FF5252 / #E57373 (red shades)
Inputs
Standard Deviation Bands:
Length (default: 20)
Multiplier (default: 2.0)
ATR Channels:
Length (default: 20)
Multiplier (default: 1.5)
ATR Period (default: 10)
Momentum:
Length (default: 12)
Smoothing (default: 3)
How to Read the Display
Red dots indicate the squeeze condition is present
Green dots indicate normal volatility relationship
Histogram direction shows current momentum bias
Histogram color brightness shows whether momentum is increasing or decreasing
Alerts
Squeeze condition started
Squeeze condition ended
Squeeze ended with positive momentum
Squeeze ended with negative momentum
Extended squeeze (8+ bars)
Important Limitations and Realistic Expectations
Volatility compression detection is a mathematical relationship between calculations—it does not predict future price movements
Many compression periods do not result in significant price expansion or directional moves
Momentum direction during compression does not reliably indicate future breakout direction
This indicator analyzes current and historical volatility conditions only—it cannot predict future volatility
False signals are common—not every squeeze leads to tradeable price movement
Different parameter settings will produce different compression detection sensitivity
Market conditions, news events, and fundamental factors often override technical volatility patterns
No volatility indicator can predict the timing, direction, or magnitude of future price movements
This tool should be used as one component of comprehensive market analysis
Appropriate Use Cases
This indicator is designed for:
- Volatility state analysis and monitoring
- Educational study of volatility relationships
- Multi-dimensional volatility assessment
- Supplementary analysis alongside other technical tools
- Understanding market compression/expansion cycles
This indicator is NOT designed for:
- Standalone trading signal generation
- Guaranteed breakout prediction
- Automated trading system triggers
- Market timing precision
- Replacement of fundamental analysis
Understanding Volatility Analysis Limitations
Volatility analysis, while useful for understanding market conditions, has inherent limitations:
- Past volatility patterns do not guarantee future patterns
- Compression periods can extend much longer than expected
- Expansion periods may be brief and insufficient for trading
- External factors (news, fundamentals) often override technical patterns
- Different markets and timeframes exhibit different volatility characteristics
— Made with passion by officialjackofalltrades
Smart Money Fluid [JOAT]
Smart Money Fluid — Accumulation and Distribution Flow Analysis
Smart Money Fluid tracks institutional-style accumulation and distribution patterns using a sophisticated combination of Money Flow Index, Chaikin Money Flow, and VWAP-relative price analysis. It aims to reveal whether larger participants may be accumulating (buying) or distributing (selling)—information that can precede significant price moves.
What Makes This Indicator Unique
Unlike single money flow indicators, Smart Money Fluid:
Combines three different money flow methodologies into one composite signal
Detects divergences between price and money flow automatically
Identifies high-volume conditions that add conviction to signals
Provides both the composite signal and individual component values
Features a momentum histogram showing flow acceleration
What This Indicator Does
Combines multiple money flow indicators into a composite signal (0-100 scale)
Identifies accumulation zones (potential institutional buying) and distribution zones (potential selling)
Detects divergences between price and money flow
Highlights high-volume conditions for stronger signals
Tracks momentum direction within the flow
Provides comprehensive dashboard with all component values
Composite Calculation Explained
The Smart Money Flow composite combines three proven money flow methodologies:
// Component 1: Money Flow Index (MFI) - 40% weight
// Measures buying/selling pressure using price and volume
float mfi = 100 - (100 / (1 + mfRatio))
// Component 2: Chaikin Money Flow (CMF) - 30% weight
// Measures accumulation/distribution based on close position within range
float cmf = sum(mfVolume, length) / sum(volume, length) * 100
// Component 3: VWAP Price Strength - 30% weight
// Measures price position relative to volume-weighted average price
float priceVsVWAP = (close - vwap) / vwap * 100
// Final Composite (scaled to 0-100)
float rawSMF = (mfi * 0.4 + (cmf + 50) * 0.3 + (50 + priceVsVWAP * 5) * 0.3)
float smf = ta.ema(rawSMF, smoothLength)
State Classification
Accumulating (Green Zone) — SMF above accumulation threshold (default: 60). Suggests institutional buying may be occurring.
Distributing (Red Zone) — SMF below distribution threshold (default: 40). Suggests institutional selling may be occurring.
Neutral (Gray Zone) — SMF between thresholds. No clear accumulation or distribution detected.
Divergence Detection
The indicator automatically detects divergences using pivot analysis:
Bullish Divergence — Price makes a lower low while SMF makes a higher low. This suggests selling pressure is weakening despite lower prices—potential reversal signal.
Bearish Divergence — Price makes a higher high while SMF makes a lower high. This suggests buying pressure is weakening despite higher prices—potential reversal signal.
Divergences are marked with "DIV" labels on the chart.
Visual Features
SMF Line with Glow — Main composite line with gradient coloring and glow effect
Signal Line — Slower EMA of SMF for crossover signals
Flow Momentum Histogram — Shows the difference between SMF and signal line with four-color coding:
- Bright green: Positive and accelerating
- Faded green: Positive but decelerating
- Bright red: Negative and accelerating
- Faded red: Negative but decelerating
Zone Backgrounds — Green tint in accumulation zone, red tint in distribution zone
Reference Lines — Dashed lines at accumulation/distribution thresholds, dotted line at 50
Strong Signal Markers — Triangles appear when accumulation/distribution occurs with high volume
Divergence Labels — "DIV" markers when divergences are detected
Color Scheme
Accumulation Color — Default: #00E676 (bright green)
Distribution Color — Default: #FF5252 (red)
Neutral Color — Default: #9E9E9E (gray)
Gradient Coloring — SMF line transitions smoothly between colors based on value
Dashboard Information
The on-chart table (top-right corner) displays:
Current SMF value with state coloring
State classification (ACCUMULATING, DISTRIBUTING, or NEUTRAL)
Flow momentum direction (Up/Down with magnitude)
MFI component value
CMF component value with directional coloring
Volume status (High or Normal)
Active divergence detection (Bullish, Bearish, or None)
Inputs Overview
Calculation Settings:
Money Flow Length — Period for flow calculations (default: 14, range: 5-50)
Smoothing Length — EMA smoothing period (default: 5, range: 1-20)
Divergence Lookback — Bars for pivot detection in divergence analysis (default: 5, range: 2-20)
Sensitivity:
Accumulation Threshold — Level above which accumulation is detected (default: 60, range: 50-90)
Distribution Threshold — Level below which distribution is detected (default: 40, range: 10-50)
High Volume Multiplier — Multiple of average volume for "high volume" classification (default: 1.5x, range: 1.0-3.0)
Visual Settings:
Accumulation/Distribution/Neutral Colors — Customizable color scheme
Show Flow Histogram — Toggle momentum histogram
Show Divergences — Toggle divergence detection and labels
Show Dashboard — Toggle the information table
Show Zone Background — Toggle colored backgrounds in accumulation/distribution zones
Alerts:
Await Bar Confirmation — Wait for bar close before triggering (recommended)
How to Use It
For Trend Confirmation:
Accumulation during uptrends confirms buying pressure
Distribution during downtrends confirms selling pressure
Divergence between price trend and SMF warns of potential reversal
For Reversal Detection:
Bullish divergence at price lows suggests potential bottom
Bearish divergence at price highs suggests potential top
Strong signals (triangles) with high volume add conviction
For Entry Timing:
Enter longs when SMF crosses into accumulation zone
Enter shorts when SMF crosses into distribution zone
Wait for high volume confirmation for stronger signals
Use divergences as early warning for position management
Alerts Available
SMF Accumulation Started — SMF entered accumulation zone
SMF Distribution Started — SMF entered distribution zone
SMF Strong Accumulation — Accumulation with high volume
SMF Strong Distribution — Distribution with high volume
SMF Bullish Divergence — Bullish divergence detected
SMF Bearish Divergence — Bearish divergence detected
Best Practices
High volume during accumulation/distribution adds significant conviction
Divergences are early warnings—don't trade them alone
Use in conjunction with price action and support/resistance
Works best on liquid markets with reliable volume data
This indicator is provided for educational purposes. It does not constitute financial advice. Past performance does not guarantee future results. Always conduct your own analysis and use proper risk management before making trading decisions.
— Made with passion by officialjackofalltrades
Iridescent Liquidity Prism [JOAT]Iridescent Liquidity Prism | Peer Momentum HUD
A multi-layered order-flow indicator that combines microstructure analysis, smart-money footprint detection, and intermarket momentum signals. The script uses dynamic color-shifting themes to visualize liquidity patterns, structure, and peer momentum data directly on the chart.
There is so much to choose from inside the settings, if you think it's a mess on the chart it's because you have to personally customize it based on your needs...
Core Functionality
The indicator calculates and displays several analytical layers simultaneously:
Order-Flow Imbalance (OFI): Calculates buy vs. sell volume pressure using volume-weighted price distribution within each bar. Uses an EMA filter (default: 55 periods) to smooth the signal. Values are normalized using standard deviation to identify significant imbalances.
Smart Money Footprints: Detects accumulation and distribution zones by comparing volume rate of change (ROC) against price ROC. When volume ROC exceeds a threshold (default: 65%) and price ROC is positive, accumulation is detected. When volume ROC is high but price ROC is negative, distribution is detected.
Fractal Structure Mapping: Identifies pivot highs and lows using a fractal detection algorithm (default: 5-bar period). Maintains a rolling window of recent structure points (default: 4 levels) and draws connecting lines to show trend structure.
Fair Value Gap (FVG) Detection: Automatically detects price gaps where three consecutive candles create an imbalance. Bullish FVGs occur when the current low exceeds the high two bars ago. Bearish FVGs occur when the current high is below the low two bars ago. Gaps persist for a configurable duration (default: 320 bars) and fade when price fills the gap.
Liquidity Void Detection: Identifies candles where the high-low range exceeds an ATR threshold (default: 1.7x ATR) while volume is below average (default: 65% of 20-bar average). These conditions suggest areas where liquidity may be thin.
Price/Volume Divergence: Uses linear regression to detect when price trend direction disagrees with volume trend direction. A divergence alert appears when price is trending up while volume is trending down, or vice versa.
Peer Momentum Heatmap (PMH): Calculates composite momentum scores for up to 6 symbols across 4 timeframes. Each score combines RSI (default: 14 periods) and StochRSI (default: 14 periods, 3-bar smooth) to create a momentum composite between -1 and +1. The highest absolute momentum score across all combinations is displayed in the HUD.
Custom settings using Fractal Pivots, Skeleton Structure, Pulse Liquidity Voids, Bottom Colorful HeatMaps, and Iridescent Field.
---
Visual Components
Spectrum Aura Glow: ATR-weighted bands (default: 0.25x ATR) that expand and contract around price action, indicating volatility conditions. The thickness adapts to market volatility.
Chromatic Flow Trail: A blended line combining EMA and WMA of price (default: 8-period EMA blended with WMA at 65% ratio). The trail uses gradient colors that shift based on a phase oscillator, creating an iridescent effect.
Volume Heat Projection: Creates horizontal volume profile bands at price levels (default: 14 levels). Scans recent bars (default: 150 bars) to calculate volume concentration. Each level is colored based on its volume density relative to the maximum volume level.
Structure Skeleton: Dashed lines connecting fractal pivot points. Uses two layers: a primary line (2-3px width) and an optional glow overlay (4-5px width) for enhanced visibility.
Fractal Markers: Diamond shapes placed at pivot high and low points. Color-coded: primary color for highs, secondary color for lows.
Iridescent Color Themes: Five color themes available: Iridescent (default), Pearlescent, Prismatic, ColorShift, and Metallic. Colors shift dynamically using a phase oscillator that cycles through the color spectrum based on bar index and a speed multiplier (default: 0.35).
---
HUD Console Metrics
The right-side HUD displays seven key metrics:
Flow: Shows OFI status: ▲ FLOW BUY when normalized OFI exceeds imbalance threshold (default: 2.2), ▼ FLOW SELL when below -2.2, or ◆ FLOW BAL when balanced.
Struct: Structure trend bias: ▲ STRUCT BULL when microtrend > 2, ▼ STRUCT BEAR when < -2, or ◆ STRUCT RANGE when neutral.
Smart$: Institutional activity: ◈ ACCUM when smart money index = 1, ◈ DISTRIB when = -1, or ○ IDLE when inactive.
Liquid: Liquidity state: ⚡ VOID when a liquidity void is detected, or ● NORMAL otherwise.
Diverg: Divergence status: ⚠ ALERT when price/volume divergence detected, or ✓ CLEAR when aligned.
PMH: Peer Momentum Heatmap status: Shows dominant timeframe and momentum score. Displays 🪩 for bull surge (above 0.55 threshold) or 🧨 for bear surge (below -0.55).
FVG: Fair Value Gap status: Shows active gap count or CLEAR when no gaps exist. Displays GAP LONG when bullish gap detected, GAP SHORT when bearish gap detected.
Pearlscent Color with Volume Heatmap.
Parameters and Settings
Microstructure Engine:
Analysis Depth: 20-250 bars (default: 55) - Controls OFI smoothing period
Liquidity Threshold ATR: 1.0-4.0 (default: 1.7) - Multiplier for void detection
Imbalance Ratio: 1.5-6.0 (default: 2.2) - Standard deviations for OFI significance
Smart Money Layer:
Smart Money Window: 10-150 bars (default: 24) - Period for ROC calculations
Accumulation Threshold: 40-95% (default: 65%) - Volume ROC threshold
Structural Mapping:
Fractal Pivot Period: 3-15 bars (default: 5) - Period for pivot detection
Structure Memory: 2-8 levels (default: 4) - Number of structure points to track
Volume Heat Projection:
Heat Map Lookback: 60-400 bars (default: 150) - Bars to analyze for volume profile
Heat Map Levels: 5-30 levels (default: 14) - Number of price level bands
Heat Map Opacity: 40-100% (default: 92%) - Transparency of heat map boxes
Heat Map Width Limit: 6-80 bars (default: 26) - Maximum width of heat map boxes
Heat Map Visibility Threshold: 0.0-0.5 (default: 0.08) - Minimum density to display
Iridescent Enhancements:
Visual Theme: Iridescent, Pearlescent, Prismatic, ColorShift, or Metallic
Color Shift Speed: 0.05-1.00 (default: 0.35) - Speed of color phase oscillation
Aura Thickness (ATR): 0.05-1.0 (default: 0.25) - Multiplier for aura band width
Chromatic Trail Length: 2-50 bars (default: 8) - Period for trail calculation
Trail Blend Ratio: 0.1-0.95 (default: 0.65) - EMA/WMA blend percentage
FVG Persistence: 50-600 bars (default: 320) - Bars to keep FVG boxes active
Max Active FVG Boxes: 10-200 (default: 40) - Maximum boxes on chart
FVG Base Opacity: 20-95% (default: 80%) - Transparency of FVG boxes
Peer Momentum Heatmap:
Peer Symbols: Comma-separated list of up to 6 symbols (e.g., "BTCUSD,ETHUSD")
Peer Timeframes: Comma-separated list of up to 4 timeframes (default: "60,240,D")
PMH RSI Length: 5-50 periods (default: 14)
PMH StochRSI Length: 5-50 periods (default: 14)
PMH StochRSI Smooth: 1-10 periods (default: 3)
Super Momentum Threshold: 0.2-0.95 (default: 0.55) - Threshold for surge detection
Clarity & Readability:
Liquidity Void Opacity: 5-90% (default: 30%)
Smart Money Footprint Opacity: 5-90% (default: 35%)
HUD Background Opacity: 40-95% (default: 70%)
Iridescent Field:
Field Opacity: 20-100% (default: 86%) - Background color intensity
Field Smooth Length: 10-200 bars (default: 34) - Smoothing for background gradient
---
Alerts
The indicator provides seven alert conditions:
Liquidity Void Detected - Triggers when void conditions are met
Strong Order Flow - Triggers when normalized OFI exceeds imbalance ratio
Smart Money Activity - Triggers when accumulation or distribution detected
Price/Volume Divergence - Triggers when divergence conditions occur
Structure Shift - Triggers when structure polarity changes significantly
PMH Bull Surge - Triggers when PMH exceeds positive threshold (if enabled)
PMH Bear Surge - Triggers when PMH exceeds negative threshold (if enabled)
Bull/Bear Prismatic FVG - Triggers when new FVG is detected (if FVG display enabled)
---
Usage Considerations
Performance may vary on lower timeframes due to the volume heat map calculations scanning multiple bars. Consider reducing heat map lookback or levels if experiencing slowdowns.
The PMH feature requires data requests to other symbols/timeframes, which may impact performance. Limit the number of peer symbols and timeframes for optimal performance.
FVG boxes automatically expire after the persistence period to prevent chart clutter. The maximum box limit (default: 40) prevents excessive memory usage.
Color themes affect all visual elements. Choose a theme that provides good contrast with your chart background.
The indicator is designed for overlay display. All visual elements are positioned relative to price action.
Structure lines are drawn dynamically as new pivots form. On fast-moving markets, structure may update frequently.
Volume calculations assume typical volume data availability. Symbols without volume may show incomplete data for volume-dependent features.
---
Technical Notes
Built on Pine Script v6 with dynamic request capability for PMH functionality.
Uses exponential moving averages (EMA) and weighted moving averages (WMA) for trail calculations to balance responsiveness and smoothness.
Volume profile calculation uses price level buckets. Higher levels provide finer granularity but require more computation.
Iridescent color engine uses a phase oscillator with sine wave calculations for smooth color transitions.
Box management includes automatic cleanup of expired boxes to maintain performance.
All visual elements use color gradients and transparency for smooth blending with price action.
---
Customization Examples
Intraday Scalping Setup:
Analysis Depth: 30 bars
Heat Map Lookback: 100 bars
FVG Persistence: 150 bars
PMH Window: 15 bars
Fast color shift speed: 0.5+
Macro Structure Tracking:
Analysis Depth: 100+ bars
Heat Map Lookback: 300+ bars
FVG Persistence: 500+ bars
Structure Memory: 6-8 levels
Slower color shift speed: 0.2
---
Limitations
Volume heat map calculations may be computationally intensive on lower timeframes with high lookback values.
PMH requires valid symbol names and accessible timeframes. Invalid symbols or timeframes will return no data.
FVG detection requires at least 3 bars of history. Early bars may not show FVG boxes.
Structure lines connect points but do not predict future structure. They reflect historical pivot relationships.
Color themes are aesthetic choices and do not affect calculation logic.
The indicator does not provide trading signals. All visual elements are analytical tools that require interpretation in context of market conditions.
Open Source
This indicator is open source and available for modification and distribution. The code is published with Pine Script v6 compliance. Users are free to customize parameters, modify calculations, and adapt the visual elements to their trading needs.
For questions, suggestions, or anything please talk to me in private messages or comments below!
Would love to help!
- officialjackofalltrades
SNP420/TRCS_MASTERMicro Body Candle Highlighter is a visual tool for TradingView that continuously scans the active timeframe and highlights all candles with an extremely small body.
For every bar (including the currently forming one), the indicator compares the absolute distance between Open and Close to a user-defined threshold in ticks (default: 1 tick, based on syminfo.mintick).
If the candle’s body size is less than or equal to this threshold, the indicator draws a red frame around the candle – either around the body only or the full high-to-low range, depending on user settings.
Optionally, the indicator can also trigger alerts whenever such a “micro body” candle is detected, allowing traders to react immediately to potential indecision, pauses, or micro-reversals in price action.
author: SNP_420
project: FNXS
ps: Piece and love
Friday & Monday HighlighterFriday & Monday Institutional Range Marker — Know Where Big Firms Set the Trap!
🧠 Description
This indicator automatically highlights Friday and Monday sessions on your chart — days when institutional players and algorithmic firms (like Citadel, Jane Street, or Tower Research) quietly shape the upcoming week’s price structure.
🔍 Why Friday & Monday matter
Friday : Large institutions often book profits or hedge into the weekend. Their final-hour moves reveal the next week’s bias.
Monday : Big players rebuild positions, absorbing liquidity left behind by retail traders.
Together, these two days define the range traps and breakout zones that often control price action until midweek.
> In short, the Friday–Monday high and low often act as invisible walls — guiding scalpers, option sellers, and swing traders alike.
🧩 What this tool does
✅ Highlights Friday (red) and Monday (green) sessions
✅ Adds optional day labels above bars
✅ Works across all timeframes (best on 15min to 1hr charts)
✅ Helps you visually identify where institutions likely built their positions
Use it to quickly spot:
* Range boundaries that trap traders
* Gap zones likely to get filled
* High–low sweeps before reversals
⚙️ Recommended Use
1. Mark Friday’s high–low → Watch for liquidity sweeps on Monday.
2. When Monday holds above Friday’s high , breakout continuation is likely.
3. When Monday fails below Friday’s low , expect a reversal or trap.
4. Combine this with OI shifts, IV crush, and FII–DII flow data for confirmation.
⚠️ Disclaimer
This indicator is for **educational and analytical purposes only**.
It does **not constitute financial advice** or a trading signal.
Markets are dynamic — always perform your own research before trading or investing.
SMA Vertical OffsetThis Indicator allow you to adjust the SMA offset vertically instead of horizontally






















