RSI Fibonacci Flow [JOAT]RSI Fibonacci Flow - Advanced Fibonacci Retracement with RSI Confluence
Introduction
RSI Fibonacci Flow is an open-source overlay indicator that combines automatic Fibonacci retracement levels with RSI momentum analysis to identify high-probability trading zones. The indicator automatically detects swing highs and lows, draws Fibonacci levels, and generates confluence signals when RSI conditions align with key Fibonacci zones.
This indicator is designed for traders who use Fibonacci retracements but want additional confirmation from momentum analysis before entering trades.
Originality and Purpose
This indicator is NOT a simple mashup of RSI and Fibonacci tools. It is an original implementation that creates a synergistic relationship between two complementary analysis methods:
Why Combine RSI with Fibonacci? Fibonacci retracements identify WHERE price might reverse, but they don't tell you WHEN. RSI provides the timing component by showing momentum exhaustion. When price reaches the Golden Zone (50%-61.8%) AND RSI shows oversold conditions, the probability of a successful bounce increases significantly.
Original Confluence Scoring System: The indicator calculates a 0-5 confluence score that weights multiple factors: Golden Zone presence (+2), entry zone presence (+1), RSI extreme alignment (+1), RSI divergence (+1), and strong RSI momentum (+1). This scoring system is original to this indicator.
Automatic Pivot Detection: Unlike manual Fibonacci tools, this indicator automatically detects swing highs and lows using a configurable pivot algorithm, then draws Fibonacci levels accordingly. The pivot detection uses a center-bar comparison method that checks if a bar's high/low is the highest/lowest within the specified depth on both sides.
Dynamic Trend Awareness: The indicator determines trend direction based on pivot sequence (last pivot was high or low) and adjusts Fibonacci orientation accordingly. In uptrends, 0% is at swing low; in downtrends, 0% is at swing high.
Each component serves a specific purpose:
Fibonacci levels identify potential reversal zones based on natural price ratios
RSI provides momentum context to filter out low-probability setups
Confluence scoring quantifies setup quality for position sizing decisions
Automatic pivot detection removes subjectivity from level placement
Core Concept: RSI-Fibonacci Confluence
The most powerful trading setups occur when multiple factors align. RSI Fibonacci Flow identifies these moments by:
Automatically detecting price pivots and drawing Fibonacci levels
Tracking which Fibonacci zone the current price occupies
Monitoring RSI for overbought/oversold conditions
Generating signals when RSI extremes coincide with key Fibonacci levels
Scoring confluence strength on a 0-5 scale
When price reaches the Golden Zone (50%-61.8%) while RSI shows oversold conditions in an uptrend, the probability of a bounce increases significantly.
Fibonacci Levels Explained
The indicator draws nine Fibonacci levels based on the most recent swing:
0% (Swing Low/High): The starting point of the move
23.6%: Shallow retracement - often seen in strong trends
38.2%: First significant support/resistance level
50%: Psychological midpoint of the move
61.8% (Golden Ratio): The most important Fibonacci level
78.6%: Deep retracement - last defense before trend failure
100% (Swing High/Low): The end point of the move
127.2% (TP1): First extension target for take profit
161.8% (TP2): Second extension target for take profit
The Golden Zone
The area between 50% and 61.8% is highlighted as the "Golden Zone" because:
It represents the optimal retracement depth for trend continuation
Institutional traders often place orders in this zone
It offers favorable risk-to-reward ratios
Price frequently bounces from this area in healthy trends
When price enters the Golden Zone, the indicator highlights it with a semi-transparent box and optional background coloring.
Pivot Detection System
The indicator uses a configurable pivot detection algorithm:
pivotDetect(float src, int len, bool isHigh) =>
int halfLen = len / 2
float centerVal = nz(src , src)
bool isPivot = true
for i = 0 to len - 1
if isHigh
if nz(src , src) > centerVal
isPivot := false
break
else
if nz(src , src) < centerVal
isPivot := false
break
isPivot ? centerVal : float(na)
This identifies swing highs and lows by checking if a bar's high/low is the highest/lowest within the specified depth on both sides.
Visual Components
1. Fibonacci Lines
Horizontal lines at each Fibonacci level:
Solid lines for major levels (0%, 50%, 61.8%, 100%)
Dashed lines for secondary levels (23.6%, 38.2%, 78.6%)
Dotted lines for extension levels (127.2%, 161.8%)
Color-coded for easy identification
Configurable line width
2. Fibonacci Labels
Price labels at each level showing:
Fibonacci percentage
Actual price at that level
Golden Zone label highlighted
TP1 and TP2 labels for targets
3. Golden Zone Box
A semi-transparent box highlighting the 50%-61.8% zone:
Gold colored border and fill
Extends from swing start to current bar (or beyond if extended)
Provides clear visual of the optimal entry zone
4. ZigZag Lines
Connecting lines between detected pivots:
Cyan for moves from low to high
Orange for moves from high to low
Helps visualize market structure
Configurable line width
5. Pivot Markers
Small labels at detected swing points:
"HH" (Higher High) at swing highs
"LL" (Lower Low) at swing lows
Helps track market structure
6. Entry Signals
BUY and SELL labels when confluence conditions are met:
BUY: RSI oversold + price in entry zone + uptrend + positive momentum
SELL: RSI overbought + price in entry zone + downtrend + negative momentum
Labels include "RSI+FIB" to indicate confluence
Confluence Scoring System
The indicator calculates a confluence score from 0 to 5:
+2 points: Price is in the Golden Zone (50%-61.8%)
+1 point: Price is in the entry zone (38.2%-61.8%)
+1 point: RSI is oversold in uptrend OR overbought in downtrend
+1 point: RSI divergence detected (bullish or bearish)
+1 point: Strong RSI momentum (change > 2 points)
Confluence ratings:
STRONG (4-5): Multiple factors align - high probability setup
MODERATE (2-3): Some factors align - proceed with caution
WEAK (0-1): Few factors align - wait for better setup
Dashboard Panel
The 10-row dashboard provides comprehensive analysis:
RSI Value: Current RSI reading (large text)
RSI State: OVERBOUGHT, OVERSOLD, BULLISH, BEARISH, or NEUTRAL
Fib Trend: UPTREND or DOWNTREND based on last pivot sequence
Price Zone: Current Fibonacci zone (e.g., "GOLDEN ZONE", "38.2% - 50%")
Price: Current close price (large text)
Confluence: Score rating with numeric value (e.g., "STRONG (4/5)")
Nearest Fib: Closest key Fibonacci level with price
TP1 (127.2%): First take profit target price
TP2 (161.8%): Second take profit target price
Input Parameters
Pivot Detection:
Pivot Depth: Bars to look back for swing detection (default: 10)
Min Deviation %: Minimum price move to confirm pivot (default: 1.0)
RSI Settings:
RSI Length: Period for RSI calculation (default: 14)
Source: Price source (default: close)
Overbought: Upper threshold (default: 70)
Oversold: Lower threshold (default: 30)
Fibonacci Display:
Show Fib Lines: Toggle Fibonacci lines (default: enabled)
Show Fib Labels: Toggle price labels (default: enabled)
Show Golden Zone Box: Toggle zone highlight (default: enabled)
Line Width: Thickness of Fibonacci lines (default: 2)
Extend Fib Lines: Extend lines into future (default: enabled)
ZigZag:
Show ZigZag: Toggle connecting lines (default: enabled)
ZigZag Width: Line thickness (default: 2)
Signals:
Show Entry Signals: Toggle BUY/SELL labels (default: enabled)
Show TP Levels: Toggle take profit in dashboard (default: enabled)
Show RSI-Fib Confluence: Toggle confluence analysis (default: enabled)
Dashboard:
Show Dashboard: Toggle information panel (default: enabled)
Position: Choose corner placement
Colors:
Bullish: Color for bullish elements (default: cyan)
Bearish: Color for bearish elements (default: orange)
Neutral: Color for neutral elements (default: gray)
Golden Zone: Color for Golden Zone highlight (default: gold)
How to Use RSI Fibonacci Flow
Identifying Entry Zones:
Wait for price to retrace to the 38.2%-61.8% zone
Check if RSI is approaching oversold (for longs) or overbought (for shorts)
Look for STRONG confluence rating in the dashboard
Enter when BUY or SELL signal appears
Setting Take Profit Targets:
TP1 at 127.2% extension for conservative target
TP2 at 161.8% extension for aggressive target
Consider scaling out at each level
Using the Price Zone:
"BELOW 23.6%" - Price hasn't retraced much; wait for deeper pullback
"23.6% - 38.2%" - Shallow retracement; strong trend continuation possible
"38.2% - 50%" - Good entry zone for trend trades
"GOLDEN ZONE" - Optimal entry zone; highest probability
"61.8% - 78.6%" - Deep retracement; trend may be weakening
"78.6% - 100%" - Very deep; trend reversal possible
"ABOVE/BELOW 100%" - Trend has likely reversed
Confluence Trading Strategy:
Only take trades with confluence score of 3 or higher
STRONG confluence (4-5) warrants larger position size
MODERATE confluence (2-3) warrants smaller position size
WEAK confluence (0-1) - wait for better setup
Alert Conditions
Ten alert conditions are available:
RSI-Fib BUY Signal: Strong bullish confluence detected
RSI-Fib SELL Signal: Strong bearish confluence detected
Price in Golden Zone: Price enters 50%-61.8% zone
New Pivot High: Swing high detected
New Pivot Low: Swing low detected
RSI Overbought: RSI crosses above overbought threshold
RSI Oversold: RSI crosses below oversold threshold
Bullish Divergence: Potential bullish RSI divergence
Bearish Divergence: Potential bearish RSI divergence
Strong Confluence: Confluence score reaches 4 or higher
Understanding Trend Direction
The indicator determines trend based on pivot sequence:
UPTREND: Last pivot was a low after a high (expecting move up)
DOWNTREND: Last pivot was a high after a low (expecting move down)
Fibonacci levels are drawn accordingly:
In uptrend: 0% at swing low, 100% at swing high
In downtrend: 0% at swing high, 100% at swing low
Bar Coloring
When confluence features are enabled:
Cyan bars on strong bullish signals
Orange bars on strong bearish signals
Gold-tinted bars when price is in Golden Zone
Best Practices
Use on 1H timeframe or higher for more reliable pivots
Adjust Pivot Depth based on timeframe (higher for longer timeframes)
Wait for price to enter Golden Zone before considering entries
Confirm RSI is in favorable territory before trading
Use extension levels (127.2%, 161.8%) for realistic profit targets
Combine with support/resistance and candlestick patterns
Higher confluence scores indicate higher probability setups
Limitations
Pivot detection has inherent lag (must wait for confirmation)
Fibonacci levels are subjective - different swings produce different levels
Works best in trending markets with clear swings
RSI can remain overbought/oversold in strong trends
Not all Golden Zone entries will be successful
The source code is open and available for review and modification.
Disclaimer
This indicator is provided for educational and informational purposes only. It is not financial advice. Trading involves substantial risk of loss. Past performance does not guarantee future results. Fibonacci levels are not guaranteed support/resistance - they are probability zones based on historical price behavior. Always conduct your own analysis and use proper risk management.
- Made with passion by officialjackofalltrades :D
Trendingideas
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
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
Photon Price Action Scanner [JOAT]Photon Price Action Scanner - Multi-Pattern Recognition with Adaptive Filtering
Introduction and Purpose
Photon Price Action Scanner is an open-source overlay indicator that automates the detection of 15+ candlestick patterns while filtering them through multiple confirmation layers. The core problem this indicator solves is pattern noise: raw candlestick pattern detection produces too many signals, most of which fail because they lack context. This indicator addresses that by combining pattern recognition with trend alignment, volume-weighted strength scoring, velocity confirmation, and an adaptive neural bias filter.
The combination of these components is not arbitrary. Each filter addresses a specific weakness in standalone pattern detection:
Trend alignment ensures patterns appear in favorable market structure
Volume-weighted strength filters out weak patterns with low conviction
Velocity confirmation identifies momentum behind the pattern
Neural bias filter adapts to recent price behavior to avoid counter-trend signals
What Makes This Indicator Original
While candlestick pattern scanners exist, this indicator's originality comes from:
1. Multi-Layer Filtering System - Patterns must pass through trend, strength, velocity, and neural bias filters before generating signals. This dramatically reduces false positives compared to simple pattern detection.
2. Adaptive Neural Bias Filter - A custom momentum-adjusted EMA that learns from recent price action using a configurable learning rate. This is not a standard moving average but an adaptive filter that accelerates during trends and smooths during consolidation.
3. Pattern Strength Scoring - Each pattern receives a strength score based on volume ratio and body size, allowing traders to focus on high-conviction setups rather than every pattern occurrence.
4. Smart Cooldown System - Prevents signal overlap by enforcing minimum bar spacing between pattern labels, keeping charts clean even when "Show All Patterns" is enabled.
How the Components Work Together
Step 1: Pattern Detection
The indicator scans for 15 candlestick patterns using precise mathematical definitions:
// Example: Bullish Engulfing requires the current bullish candle to completely
// engulf the previous bearish candle with a larger body
isBullishEngulfing() =>
bool pattern = close < open and close > open and
open <= close and close >= open and
close - open > open - close
pattern
// Example: Three White Soldiers requires three consecutive bullish candles
// with each opening within the previous body and closing higher
isThreeWhiteSoldiers() =>
bool pattern = close > open and close > open and close > open and
close < close and close < close and
open > open and open < close and
open > open and open < close
pattern
Step 2: Strength Calculation
Each detected pattern receives a strength score combining volume and body size:
float volRatio = avgVolume > 0 ? volume / avgVolume : 1.0
float bodySize = math.abs(close - open) / close
float baseStrength = (volRatio + bodySize * 100) / 2
This ensures patterns with above-average volume and large bodies score higher than weak patterns on low volume.
Step 3: Trend Alignment
Patterns are checked against the trend direction using an EMA:
float trendEMA = ta.ema(close, i_trendPeriod)
int trendDir = close > trendEMA ? 1 : close < trendEMA ? -1 : 0
Bullish patterns in uptrends and bearish patterns in downtrends receive priority.
Step 4: Neural Bias Filter
The adaptive filter uses a momentum-adjusted EMA that responds to price changes:
neuralEMA(series float src, simple int period, simple float lr) =>
var float neuralValue = na
var float momentum = 0.0
if na(neuralValue)
neuralValue := src
float error = src - neuralValue
float adjustment = error * lr
momentum := momentum * 0.9 + adjustment * 0.1
neuralValue := neuralValue + adjustment + momentum
neuralValue
The learning rate (lr) controls how quickly the filter adapts. Higher values make it more responsive; lower values make it smoother.
Step 5: Velocity Confirmation
Price velocity (rate of change) must exceed the average velocity for strong signals:
float velocity = ta.roc(close, i_trendPeriod)
float avgVelocity = ta.sma(velocity, i_trendPeriod)
bool velocityBull = velocity > avgVelocity * 1.5
Step 6: Signal Classification
Signals are classified based on how many filters they pass:
Strong Pattern : Pattern + strength threshold + trend alignment + neural bias + velocity
Ultra Pattern : Strong pattern + gap in same direction + velocity confirmation
Watch Pattern : Pattern detected but not all filters passed
Detected Patterns
Classic Reversal Patterns:
Bullish/Bearish Engulfing - Complete body engulfment with larger body
Hammer - Long lower wick (2x body), small upper wick, bullish context
Shooting Star - Long upper wick (2x body), small lower wick, bearish context
Morning Star - Three-bar bullish reversal with small middle body
Evening Star - Three-bar bearish reversal with small middle body
Piercing Line - Bullish candle closing above midpoint of previous bearish candle
Dark Cloud Cover - Bearish candle closing below midpoint of previous bullish candle
Bullish/Bearish Harami - Small body contained within previous larger body
Doji - Body less than 10% of total range (indecision)
Advanced Patterns (Optional):
Three White Soldiers - Three consecutive bullish candles with rising closes
Three Black Crows - Three consecutive bearish candles with falling closes
Tweezer Top - Equal highs with reversal candle structure
Tweezer Bottom - Equal lows with reversal candle structure
Island Reversal - Gap isolation creating reversal structure
Dashboard Information
The dashboard displays real-time analysis:
Pattern - Current detected pattern name or "SCANNING..."
Bull/Bear Strength - Volume-weighted strength scores
Trend - UPTREND, DOWNTREND, or SIDEWAYS based on EMA
RSI - 14-period RSI for momentum context
Momentum - 10-period momentum reading
Volatility - ATR as percentage of price
Neural Bias - BULLISH, BEARISH, or NEUTRAL from adaptive filter
Action - ULTRA BUY/SELL, BUY/SELL, WATCH BUY/SELL, or WAIT
Visual Elements
Pattern Labels - Abbreviated codes (BE=Engulfing, H=Hammer, MS=Morning Star, etc.)
Neural Bias Line - Adaptive trend line showing filter direction
Gap Boxes - Cyan boxes highlighting price gaps
Action Zones - Dashed boxes around strong pattern areas
Velocity Markers - Small circles when velocity confirms direction
Ultra Signals - Large labels for highest conviction setups
How to Use This Indicator
For Reversal Trading:
1. Wait for a pattern to appear at a key support/resistance level
2. Check that the Action shows "BUY" or "SELL" (not just "WATCH")
3. Confirm the Neural Bias aligns with your trade direction
4. Use the strength score to gauge conviction (higher is better)
For Trend Continuation:
1. Identify the trend using the Trend row in the dashboard
2. Look for patterns that align with the trend (bullish patterns in uptrends)
3. Ultra signals indicate the strongest continuation setups
For Filtering Noise:
1. Keep "Show All Patterns" disabled to see only filtered signals
2. Increase "Pattern Strength Filter" to see fewer, higher-quality patterns
3. Enable "Velocity Confirmation" to require momentum behind patterns
Input Parameters
Scan Sensitivity (1.0) - Overall detection sensitivity multiplier
Pattern Strength Filter (3) - Minimum strength score for strong signals
Trend Period (20) - EMA period for trend determination
Show All Patterns (false) - Display all patterns regardless of filters
Advanced Patterns (true) - Enable soldiers/crows/tweezer detection
Gap Analysis (true) - Enable gap detection and boxes
Velocity Confirmation (true) - Require velocity for strong signals
Neural Bias Filter (true) - Enable adaptive trend filter
Neural Period (50) - Lookback for neural bias calculation
Neural Learning Rate (0.12) - Adaptation speed (0.01-0.5)
Timeframe Recommendations
1H-4H: Best balance of signal frequency and reliability
Daily: Fewer but more significant patterns
15m-30m: More signals, requires tighter filtering (increase strength threshold)
Limitations
Pattern detection is mechanical and does not consider fundamental context
Neural bias filter may lag during rapid trend reversals
Gap detection requires clean price data without after-hours gaps
Strength scoring favors high-volume patterns, which may miss valid low-volume setups
- Made with passion by officialjackofalltrades
Cosmic Volume Analyzer [JOAT]
Cosmic Volume Analyzer - Astrophysics Edition
Overview
Cosmic Volume Analyzer is an open-source oscillator indicator that applies astrophysics-inspired concepts to volume analysis. It classifies volume into buy/sell categories, calculates volume flow, detects accumulation/distribution phases, identifies climax volume events, and uses gravitational and stellar mass analogies to visualize volume dynamics.
What This Indicator Does
The indicator calculates and displays:
Volume Classification - Categorizes each bar as CLIMAX_BUY, CLIMAX_SELL, HIGH_BUY, HIGH_SELL, NORMAL_BUY, or NORMAL_SELL
Volume Flow - Percentage showing buy vs sell pressure over a lookback period
Buy/Sell Volume - Separated volume based on candle direction
Accumulation/Distribution - Phase detection using Money Flow Multiplier
Volume Oscillator - Fast vs slow volume EMA comparison
Gravitational Pull - Volume-weighted price attraction metric
Stellar Mass Index - Volume ratio combined with price momentum
Black Hole Detection - Identifies extremely low volume periods (liquidity voids)
Supernova Events - Detects extreme volume with extreme price movement
Orbital Cycles - Sine-wave based cyclical visualization
How It Works
Volume classification uses volume ratio and candle direction:
classifyVolume(series float vol, series float close, series float open) =>
float avgVol = ta.sma(vol, 20)
float volRatio = avgVol > 0 ? vol / avgVol : 1.0
if volRatio > 1.5
if close > open
classification := "CLIMAX_BUY"
else
classification := "CLIMAX_SELL"
else if volRatio > 1.2
// HIGH_BUY or HIGH_SELL
else
// NORMAL_BUY or NORMAL_SELL
Volume flow separates buy and sell volume over a period:
calculateVolumeFlow(series float vol, series float close, simple int period) =>
float currentBuyVol = close > open ? vol : 0.0
float currentSellVol = close < open ? vol : 0.0
// Accumulate in buffers
float flow = (buyVolume - sellVolume) / totalVol * 100
Accumulation/Distribution uses the Money Flow Multiplier:
float mfm = ((close - low) - (high - close)) / (high - low)
float mfv = mfm * vol
float adLine = ta.cum(mfv)
if adLine > adEMA and ta.rising(adLine, 3)
phase := "ACCUMULATION"
else if adLine < adEMA and ta.falling(adLine, 3)
phase := "DISTRIBUTION"
Gravitational pull uses volume-weighted price distance:
gravitationalPull(series float vol, series float price, simple int period) =>
float massCenter = ta.vwma(price, period)
float distance = math.abs(price - massCenter)
float mass = vol / ta.sma(vol, period)
float gravity = distance > 0 ? mass / (distance * distance) : 0.0
Signal Generation
Signals are generated based on volume conditions:
Buy Climax: Volume exceeds 2 standard deviations above average on bullish candle
Sell Climax: Volume exceeds 2 standard deviations above average on bearish candle
Strong Buy Flow: Volume flow exceeds positive threshold (default 45%)
Strong Sell Flow: Volume flow exceeds negative threshold (default -45%)
Supernova: Volume 3x average AND price change 3x average
Black Hole: Volume 2 standard deviations below average
Dashboard Panel (Top-Right)
Volume Class - Current volume classification
Volume Flow - Buy/sell flow percentage
Buy Volume - Accumulated buy volume
Sell Volume - Accumulated sell volume
A/D Phase - ACCUMULATION/DISTRIBUTION/NEUTRAL
Volume Strength - Normalized volume strength
Gravity Pull - Current gravitational metric
Stellar Mass - Current stellar mass index
Cosmic Field - Combined cosmic field strength
Black Hole - Detection status and void strength
Signal - Current actionable status
Visual Elements
Volume Ratio Columns - Colored bars showing normalized volume
Volume Flow Line - Main oscillator showing flow direction
Flow EMA - Smoothed flow for trend reference
Volume Oscillator - Area plot showing fast/slow comparison
Gravity Field - Area plot showing gravitational pull
Orbital Cycle - Circle plots showing cyclical pattern
Stellar Mass Line - Line showing mass index
Climax Markers - Fire emoji for buy climax, snowflake for sell climax
Supernova Markers - Diamond shapes for extreme events
Black Hole Markers - X-cross for liquidity voids
A/D Phase Background - Subtle background color based on phase
Input Parameters
Volume Period (default: 20) - Period for volume calculations
Distribution Levels (default: 5) - Granularity of distribution analysis
Flow Threshold (default: 1.5) - Multiplier for flow significance
Accumulation Period (default: 14) - Period for A/D calculation
Gravitational Analysis (default: true) - Enable gravity metrics
Black Hole Detection (default: true) - Enable void detection
Stellar Mass Calculation (default: true) - Enable mass index
Orbital Cycles (default: true) - Enable cyclical visualization
Supernova Detection (default: true) - Enable extreme event detection
Suggested Use Cases
Identify accumulation phases for potential long entries
Watch for distribution phases as potential exit signals
Use climax volume as potential exhaustion indicators
Monitor volume flow for directional bias
Avoid trading during black hole (low liquidity) periods
Watch for supernova events as potential trend acceleration
Timeframe Recommendations
Best on 15m to Daily charts. Volume analysis requires sufficient trading activity for meaningful readings.
Limitations
Volume data quality varies by exchange and instrument
Buy/sell separation is based on candle direction, not actual order flow
Astrophysics concepts are analogies, not literal physics
A/D phase detection may lag during rapid transitions
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
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
Fractal Market Geometry [JOAT]
Fractal Market Geometry
Overview
Fractal Market Geometry is an open-source overlay indicator that combines fractal analysis with harmonic pattern detection, Fibonacci retracements and extensions, Elliott Wave concepts, and Wyckoff phase identification. It provides traders with a geometric framework for understanding market structure and identifying potential reversal patterns with multi-factor signal confirmation.
What This Indicator Does
The indicator calculates and displays:
Fractal Detection - Identifies fractal highs and lows using Williams-style pivot analysis with configurable period
Fractal Dimension - Calculates market complexity using range-based dimension estimation
Harmonic Patterns - Detects Gartley, Butterfly, Bat, Crab, Shark, Cypher, and ABCD patterns using Fibonacci ratios
Fibonacci Retracements - Key levels at 38.2%, 50%, and 61.8%
Fibonacci Extensions - Projection level at 161.8%
Elliott Wave Count - Simplified wave counting based on pivot detection (1-5)
Wyckoff Phase - Volume-based phase identification (Accumulation, Markup, Distribution, Neutral)
Golden Spiral Levels - ATR-based support and resistance levels using phi (1.618) ratio
Trend Detection - EMA crossover trend identification (20/50 EMA)
How It Works
Fractal detection uses a configurable period to identify swing points:
detectFractalHigh(simple int period) =>
bool result = true
float centerVal = high
for i = 0 to period - 1
if high >= centerVal or high >= centerVal
result := false
break
Harmonic pattern detection uses Fibonacci ratio analysis between swing points. Each pattern has specific ratio requirements:
Gartley: AB 0.382-0.618, BC 0.382-0.886, CD 1.27-1.618
Butterfly: AB 0.382-0.5, BC 0.382-0.886, CD 1.618-2.24
Bat: AB 0.5-0.618, BC 1.13-1.618, CD 1.618-2.24
Crab: AB 0.382-0.618, BC 0.382-0.886, CD 2.24-3.618
Shark: AB 0.382-0.618, BC 1.13-1.618, CD 1.618-2.24
Cypher: AB 0.382-0.618, BC 1.13-1.414, CD 0.786-0.886
Wyckoff phase detection analyzes volume relative to price movement:
wyckoffPhase(simple int period) =>
float avgVol = ta.sma(volume, period)
float priceChg = ta.change(close, period)
string phase = "NEUTRAL"
if volume > avgVol * 1.5 and math.abs(priceChg) < close * 0.02
phase := "ACCUMULATION"
else if volume > avgVol * 1.5 and math.abs(priceChg) > close * 0.05
phase := "MARKUP"
else if volume < avgVol * 0.7
phase := "DISTRIBUTION"
phase
Signal Generation
Signals use multi-factor confirmation for accuracy:
BUY Signal: Fractal low + Uptrend (EMA20 > EMA50) + RSI 30-55 + Bullish candle + Volume confirmation
SELL Signal: Fractal high + Downtrend (EMA20 < EMA50) + RSI 45-70 + Bearish candle + Volume confirmation
Pattern Detection: Label appears when harmonic pattern completes at current bar
Dashboard Panel (Top-Right)
Dimension - Fractal dimension value (market complexity measure)
Last High - Most recent fractal high price
Last Low - Most recent fractal low price
Pattern - Current harmonic pattern name or NONE
Elliott Wave - Current wave count (Wave 1-5) or OFF
Wyckoff - Current market phase or OFF
Trend - BULLISH, BEARISH, or NEUTRAL based on EMA crossover
Signal - BUY, SELL, or WAIT status
Visual Elements
Fractal Markers - Small triangles at fractal highs (down arrow) and lows (up arrow)
Geometry Lines - Dashed lines connecting the most recent fractal high and low
Fibonacci Levels - Clean horizontal lines at 38.2%, 50%, and 61.8% retracement levels
Fibonacci Extension - Horizontal line at 161.8% extension level
Golden Spiral Levels - Support and resistance lines based on ATR x 1.618
3D Fractal Field - Optional depth layers around swing levels (OFF by default)
Harmonic Pattern Markers - Small diamond shapes when Crab, Shark, or Cypher patterns detected
Pattern Labels - Text label showing pattern name when detected
Signal Labels - BUY/SELL labels on confirmed multi-factor signals
Input Parameters
Fractal Period (default: 5) - Bars on each side for fractal detection
Geometry Depth (default: 3) - Complexity of geometric calculations
Pattern Sensitivity (default: 0.8) - Tolerance for pattern ratio matching
Show Fibonacci Levels (default: true) - Display retracement levels
Show Fibonacci Extensions (default: true) - Display extension level
Elliott Wave Detection (default: true) - Enable wave counting
Wyckoff Analysis (default: true) - Enable phase detection
Golden Spiral Levels (default: true) - Display spiral support/resistance
Show Fractal Points (default: true) - Display fractal markers
Show Geometry Lines (default: true) - Display connecting lines
Show Pattern Labels (default: true) - Display pattern name labels
Show 3D Fractal Field (default: false) - Display depth layers
Show Harmonic Patterns (default: true) - Display pattern markers
Show Buy/Sell Signals (default: true) - Display signal labels
Suggested Use Cases
Identify potential reversal zones using harmonic pattern completion
Use Fibonacci levels for entry, stop-loss, and target planning
Monitor Wyckoff phases for accumulation/distribution awareness
Track Elliott Wave counts for trend structure analysis
Use fractal dimension to gauge market complexity
Wait for multi-factor signal confirmation before entering trades
Timeframe Recommendations
Best on 1H to Daily charts. Lower timeframes produce more fractals but with less significance. Higher timeframes provide stronger levels and more reliable signals.
Limitations
Harmonic pattern detection uses simplified ratio ranges and may not match all textbook definitions
Elliott Wave counting is basic and does not include all wave rules
Wyckoff phase detection is volume-based approximation
Fractal dimension calculation is simplified
Signals require fractal confirmation which has inherent lag equal to the fractal period
Open-Source and Disclaimer
This script is published as open-source under the Mozilla Public License 2.0 for educational purposes. It does not constitute financial advice. Past performance does not guarantee future results. Always use proper risk management.
- Made with passion by officialjackofalltrades
Session Volume Analyzer [JOAT]
Session Volume Analyzer — Global Trading Session and Volume Intelligence System
This indicator addresses the analytical challenge of understanding market participation patterns across global trading sessions. It combines precise session detection with comprehensive volume analysis to provide insights into when and how different market participants are active. The tool recognizes that different trading sessions exhibit distinct characteristics in terms of participation, volatility, and volume patterns.
Why This Combination Provides Unique Analytical Value
Traditional session indicators typically only show time boundaries, while volume indicators show raw volume data without session context. This creates analytical gaps:
1. **Session Context Missing**: Volume spikes without session context provide incomplete information
2. **Participation Patterns Hidden**: Different sessions have different participant types (retail, institutional, algorithmic)
3. **Comparative Analysis Lacking**: No easy way to compare volume patterns across sessions
4. **Timing Intelligence Absent**: Understanding WHEN volume occurs is as important as HOW MUCH volume occurs
This indicator's originality lies in creating an integrated session-volume analysis system that:
**Provides Session-Aware Volume Analysis**: Volume data is contextualized within specific trading sessions
**Enables Cross-Session Comparison**: Compare volume patterns between Asian, London, and New York sessions
**Delivers Participation Intelligence**: Understand which sessions are showing above-normal participation
**Offers Real-Time Session Tracking**: Know exactly which session is active and how current volume compares
Technical Innovation and Originality
While session detection and volume analysis exist separately, the innovation lies in:
1. **Integrated Session-Volume Architecture**: Simultaneous tracking of session boundaries and volume statistics creates comprehensive market participation analysis
2. **Multi-Session Volume Comparison System**: Real-time calculation and comparison of volume statistics across different global sessions
3. **Adaptive Volume Threshold Detection**: Automatic identification of above-average volume periods within session context
4. **Comprehensive Visual Integration**: Session backgrounds, volume highlights, and statistical dashboards provide complete market participation picture
How Session Detection and Volume Analysis Work Together
The integration creates a sophisticated market participation analysis system:
**Session Detection Logic**: Uses Pine Script's time functions to identify active sessions
// Session detection based on exchange time
bool inAsian = not na(time(timeframe.period, asianSession))
bool inLondon = not na(time(timeframe.period, londonSession))
bool inNY = not na(time(timeframe.period, nySession))
// Session transition detection
bool asianStart = inAsian and not inAsian
bool londonStart = inLondon and not inLondon
bool nyStart = inNY and not inNY
**Volume Analysis Integration**: Volume statistics are calculated within session context
// Session-specific volume accumulation
if asianStart
asianVol := 0.0
asianBars := 0
if inAsian
asianVol += volume
asianBars += 1
// Real-time session volume analysis
float asianAvgVol = asianBars > 0 ? asianVol / asianBars : 0
**Relative Volume Assessment**: Current volume compared to session-specific averages
float volMA = ta.sma(volume, volLength)
float volRatio = volMA > 0 ? volume / volMA : 1
// Volume classification within session context
bool isHighVol = volRatio >= 1.5 and volRatio < 2.5
bool isVeryHighVol = volRatio >= 2.5
This creates a system where volume analysis is always contextualized within the appropriate trading session, providing more meaningful insights than raw volume data alone.
Comprehensive Session Analysis Framework
**Default Session Definitions** (customizable based on broker timezone):
- **Asian Session**: 1800-0300 (exchange time) - Represents Asian market participation including Tokyo, Hong Kong, Singapore
- **London Session**: 0300-1200 (exchange time) - Represents European market participation
- **New York Session**: 0800-1700 (exchange time) - Represents North American market participation
**Session Overlap Analysis**: The system recognizes and highlights overlap periods:
- **London/New York Overlap**: 0800-1200 - Typically the highest volume period
- **Asian/London Overlap**: 0300-0300 (brief) - Transition period
- **New York/Asian Overlap**: 1700-1800 (brief) - End of NY, start of Asian
**Volume Intelligence Features**:
1. **Session-Specific Volume Accumulation**: Tracks total volume within each session
2. **Cross-Session Volume Comparison**: Compare current session volume to other sessions
3. **Relative Volume Detection**: Identify when current volume exceeds historical averages
4. **Participation Pattern Analysis**: Understand which sessions show consistent high/low participation
Advanced Volume Analysis Methods
**Relative Volume Calculation**:
float volMA = ta.sma(volume, volLength) // Volume moving average
float volRatio = volMA > 0 ? volume / volMA : 1 // Current vs average ratio
// Multi-tier volume classification
bool isNormalVol = volRatio < 1.5
bool isHighVol = volRatio >= 1.5 and volRatio < 2.5
bool isVeryHighVol = volRatio >= 2.5
bool isExtremeVol = volRatio >= 4.0
**Session Volume Tracking**:
// Cumulative session volume with bar counting
if londonStart
londonVol := 0.0
londonBars := 0
if inLondon
londonVol += volume
londonBars += 1
// Average volume per bar calculation
float londonAvgVol = londonBars > 0 ? londonVol / londonBars : 0
**Cross-Session Volume Comparison**:
The system maintains running totals for each session, enabling real-time comparison of participation levels across different global markets.
What the Display Shows
Session Backgrounds — Colored backgrounds indicating which session is active
- Pink: Asian session
- Blue: London session
- Green: New York session
Session Open Lines — Horizontal lines at each session's opening price
Session Markers — Labels (AS, LN, NY) when sessions begin
Volume Highlights — Bar coloring when volume exceeds thresholds
- Orange: High volume (1.5x+ average)
- Red: Very high volume (2.5x+ average)
Dashboard — Current session, cumulative volume, and averages
Color Scheme
Asian — #E91E63 (pink)
London — #2196F3 (blue)
New York — #4CAF50 (green)
High Volume — #FF9800 (orange)
Very High Volume — #F44336 (red)
Inputs
Session Times:
Asian Session window (default: 1800-0300)
London Session window (default: 0300-1200)
New York Session window (default: 0800-1700)
Volume Settings:
Volume MA Length (default: 20)
High Volume threshold (default: 1.5x)
Very High Volume threshold (default: 2.5x)
Visual Settings:
Session colors (customizable)
Show/hide backgrounds, lines, markers
Background transparency
How to Read the Display
Background color shows which session is currently active
Session open lines show where each session started
Orange/red bars indicate above-average volume
Dashboard shows cumulative volume for each session today
Alerts
Session opened (Asian, London, New York)
High volume bar detected
Very high volume bar detected
Important Limitations and Realistic Expectations
Session times are approximate and depend on your broker's server timezone—manual adjustment may be required for accuracy
Volume data quality varies significantly by broker, instrument, and market type
Cryptocurrency and some forex markets trade continuously, making traditional session boundaries less meaningful
High volume indicates participation level only—it does not predict price direction or market outcomes
Session participation patterns can change over time due to market structure evolution, holidays, and economic conditions
This tool displays historical and current market participation data—it cannot predict future volume or price movements
Volume spikes can occur for numerous reasons unrelated to directional price movement (news, algorithmic trading, etc.)
Different instruments exhibit different session sensitivity and volume patterns
Market holidays and special events can significantly alter normal session patterns
Appropriate Use Cases
This indicator is designed for:
- Market participation pattern analysis
- Session-based trading schedule planning
- Volume context and comparison across sessions
- Educational study of global market structure
- Supplementary analysis for session-based strategies
This indicator is NOT designed for:
- Standalone trading signal generation
- Volume-based price direction prediction
- Automated trading system triggers
- Guaranteed session pattern repetition
- Replacement of fundamental or sentiment analysis
Understanding Session Analysis Limitations
Session analysis provides valuable context but has inherent limitations:
- Session patterns can change due to economic conditions, holidays, and market structure evolution
- Volume patterns may not repeat consistently across different market conditions
- Global events can override normal session characteristics
- Different asset classes respond differently to session boundaries
- Technology and algorithmic trading continue to blur traditional session distinctions
— Made with passion by officialjackofalltrades
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
Parsifal.Swing.TrendScoreThe Parsifal.Swing.TrendScore indicator is a module within the Parsifal Swing Suite, which includes a set of swing indicators such as:
• Parsifal Swing TrendScore
• Parsifal Swing Composite
• Parsifal Swing RSI
• Parsifal Swing Flow
Each module serves as an indicator facilitating judgment of the current swing state in the underlying market.
________________________________________
Background
Market movements typically follow a time-varying trend channel within which prices oscillate. These oscillations—or swings—within the trend are inherently tradable.
They can be approached:
• One-sidedly, aligning with the trend (generally safer), or
• Two-sidedly, aiming to profit from mean reversions as well.
Note: Mean reversions in strong trends often manifest as sideways consolidations, making one-sided trades more stable.
________________________________________
The Parsifal Swing Suite
The modules aim to provide additional insights into the swing state within a trend and offer various trigger points to assist with entry decisions.
All modules in the suite act as weak oscillators, meaning they fluctuate within a range but are not bounded like true oscillators (e.g., RSI, which is constrained between 0% and 100%).
________________________________________
The Parsifal.Swing.TrendScore – Specifics
The Parsifal.Swing.TrendScore module combines short-term trend data with information about the current swing state, derived from raw price data and classical technical indicators. It provides an indication of how well the short-term trend aligns with the prevailing swing, based on recent market behavior.
________________________________________
How Swing.TrendScore Works
The Swing.TrendScore calculates a swing score by collecting data within a bin (i.e., a single candle or time bucket) that signals an upside or downside swing. These signals are then aggregated together with insights from classical swing indicators.
Additionally, it calculates a short-term trend score using core technical signals, including:
• The Z-score of the price's distance from various EMAs
• The slope of EMAs
• Other trend-strength signals from additional technical indicators
These two components—the swing score and the trend score—are then combined to form the Swing.TrendScore indicator, which evaluates the short-term trend in context with swing behavior.
________________________________________
How to Interpret Swing.TrendScore
The trend component enhances Swing.TrendScore’s ability to provide stronger signals when the short-term trend and swing state align.
It can also override the swing score; for example, even if a mean reversion appears to be forming, a dominant short-term trend may still control the market behavior.
This makes Swing.TrendScore particularly valuable for:
• Short-term trend-following strategies
• Medium-term swing trading
Unlike typical swing indicators, Swing.TrendScore is designed to respond more to medium-term swings rather than short-lived fluctuations.
________________________________________
Behavior and Chart Representation
The Swing.TrendScore indicator fluctuates within a range, as most of its components are range-bound (though Z-score components may technically extend beyond).
• Historically high or low values may suggest overbought or oversold conditions
• The chart displays:
o A fast curve (orange)
o A slow curve (white)
o A shaded background representing the market state
• Extreme values followed by curve reversals may signal a developing mean reversion
________________________________________
TrendScore Background Value
The Background Value reflects the combined state of the short-term trend and swing:
• > 0 (shaded green) → Bullish mode: swing and short-term trend both upward
• < 0 (shaded red) → Bearish mode: swing and short-term trend both downward
• The absolute value represents the confidence level in the market mode
Notably, the Background Value can remain positive during short downswings if the short-term trend remains bullish—and vice versa.
________________________________________
How to Use the Parsifal.Swing.TrendScore
Several change points can act as entry triggers or aids:
• Fast Trigger: change in slope of the fast signal curve
• Trigger: fast line crosses slow line or the slope of the slow signal changes
• Slow Trigger: change in sign of the Background Value
Examples of these trigger points are illustrated in the accompanying chart.
Additionally, market highs and lows aligning with the swing indicator values may serve as pivot points in the evolving price process.
________________________________________
As always, this indicator should be used in conjunction with other tools and market context in live trading.
While it provides valuable insight and potential entry points, it does not predict future price action.
Instead, it reflects recent tendencies and should be used judiciously.
________________________________________
Extensions
The aggregation of information—whether derived from bins or technical indicators—is currently performed via simple averaging. However, this can be modified using alternative weighting schemes, based on:
• Historical performance
• Relevance of the data
• Specific market conditions
Smoothing periods used in calculations are also modifiable. In general, the EMAs applied for smoothing can be extended to reflect expectations based on relevance-weighted probability measures.
Since EMAs inherently give more weight to recent data, this allows for adaptive smoothing.
Additionally, EMAs may be further extended to incorporate negative weights, akin to wavelet transform techniques.














