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
Pinescript
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
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
Quantum Reversal Detector [JOAT]
Quantum Reversal Detector - Multi-Factor Reversal Probability Analysis
Introduction and Purpose
Quantum Reversal Detector is an open-source overlay indicator that combines multiple reversal detection methods into a unified probability-based framework. The core problem this indicator addresses is the unreliability of single-factor reversal signals. A price touching support means nothing without momentum confirmation; an RSI oversold reading means nothing without price structure context.
This indicator solves that by requiring multiple independent factors to align before generating reversal signals, then expressing the result as a probability score rather than a binary signal.
Why These Components Work Together
The indicator combines five analytical approaches, each addressing a different aspect of reversal detection:
1. RSI Extremes - Identifies momentum exhaustion (overbought/oversold)
2. MACD Crossovers - Confirms momentum direction change
3. Support/Resistance Proximity - Ensures price is at a significant level
4. Multi-Depth Momentum - Analyzes momentum across multiple timeframes
5. Statistical Probability - Quantifies reversal likelihood using Bayesian updating
These components are not randomly combined. Each filter catches reversals that others miss:
RSI catches momentum exhaustion but misses structural reversals
MACD catches momentum shifts but lags price action
S/R proximity catches structural levels but ignores momentum
Multi-depth momentum catches divergences across timeframes
Probability scoring combines all factors into actionable confidence levels
How the Detection System Works
Step 1: Pattern Detection
The indicator first identifies potential reversal conditions:
// Check if price is at support/resistance
float lowestLow = ta.lowest(low, period)
float highestHigh = ta.highest(high, period)
bool atSupport = low <= lowestLow * 1.002
bool atResistance = high >= highestHigh * 0.998
// Check RSI conditions
float rsi = ta.rsi(close, 14)
bool oversold = rsi < 30
bool overbought = rsi > 70
// Check MACD crossover
float macd = ta.ema(close, 12) - ta.ema(close, 26)
float signal = ta.ema(macd, 9)
bool macdBullish = ta.crossover(macd, signal)
bool macdBearish = ta.crossunder(macd, signal)
// Combine for reversal detection
if atSupport and oversold and macdBullish
bullishReversal := true
Step 2: Multi-Depth Momentum Analysis
The indicator calculates momentum across multiple periods to detect divergences:
calculateQuantumMomentum(series float price, simple int period, simple int depth) =>
float totalMomentum = 0.0
for i = 0 to depth - 1
int currentPeriod = period * (i + 1)
float momentum = ta.roc(price, currentPeriod)
totalMomentum += momentum
totalMomentum / depth
This creates a composite momentum reading that smooths out noise while preserving genuine momentum shifts.
Step 3: Bayesian Probability Calculation
The indicator uses Bayesian updating to calculate reversal probability:
bayesianProbability(series float priorProb, series float likelihood, series float evidence) =>
float posterior = evidence > 0 ? (likelihood * priorProb) / evidence : priorProb
math.min(math.max(posterior, 0.0), 1.0)
The prior probability starts at 50% and updates based on:
RSI extreme readings increase likelihood
MACD crossovers increase likelihood
S/R proximity increases likelihood
Momentum divergence increases likelihood
Step 4: Confidence Intervals
Using Monte Carlo simulation concepts, the indicator estimates price distribution:
monteCarloSimulation(series float price, series float volatility, simple int iterations) =>
float sumPrice = 0.0
float sumSqDiff = 0.0
for i = 0 to iterations - 1
float randomFactor = (i % 10 - 5) / 10.0
float simulatedPrice = price + volatility * randomFactor
sumPrice += simulatedPrice
float avgPrice = sumPrice / iterations
// Calculate standard deviation for confidence intervals
This provides 95% and 99% confidence bands around the current price.
Signal Classification
Signals are classified by confirmation level:
Confirmed Reversal : Pattern detected for N consecutive bars (default 3)
High Probability : Confirmed + Bayesian probability > 70%
Ultra High Probability : High probability + PDF above average
Dashboard Information
The dashboard displays:
Bayesian Probability - Updated reversal probability (0-100%)
Quantum Momentum - Multi-depth momentum average
RSI - Current RSI value with overbought/oversold status
Volatility - Current ATR as percentage of price
Reversal Signal - BULLISH, BEARISH, or NONE
Divergence - Momentum divergence detection
MACD - Current MACD histogram value
S/R Zone - AT SUPPORT, AT RESISTANCE, or NEUTRAL
95% Confidence - Price range with 95% probability
Bull/Bear Targets - ATR-based reversal targets
Visual Elements
Quantum Bands - ATR-based upper and lower channels
Probability Field - Circle layers showing probability distribution
Confidence Bands - 95% and 99% confidence interval circles
Reversal Labels - REV markers at confirmed reversals
High Probability Markers - Star diamonds at high probability setups
Reversal Zones - Boxes around confirmed reversal areas
Divergence Markers - Triangles at momentum divergences
How to Use This Indicator
For Reversal Trading:
1. Wait for Bayesian Probability to exceed 70%
2. Confirm price is at S/R zone (dashboard shows AT SUPPORT or AT RESISTANCE)
3. Check that RSI is in extreme territory (oversold for longs, overbought for shorts)
4. Enter when REV label appears with high probability marker
For Risk Management:
1. Use the 95% confidence band as a stop-loss reference
2. Use Bull/Bear Targets for take-profit levels
3. Higher probability readings warrant larger position sizes
For Filtering False Signals:
1. Increase Confirmation Bars to require more consecutive signals
2. Only trade when probability exceeds 70%
3. Require divergence confirmation for highest conviction
Input Parameters
Reversal Period (21) - Lookback for S/R and momentum calculations
Quantum Depth (5) - Number of momentum layers for multi-depth analysis
Confirmation Bars (3) - Consecutive bars required for confirmation
Detection Sensitivity (1.2) - Band width and target multiplier
Bayesian Probability (true) - Enable probability calculation
Monte Carlo Simulation (true) - Enable confidence interval calculation
Normal Distribution (true) - Enable PDF calculation
Confidence Intervals (true) - Enable confidence bands
Timeframe Recommendations
1H-4H: Best for swing trading reversals
Daily: Fewer but more significant reversal signals
15m-30m: More signals, requires higher probability threshold
Limitations
Statistical concepts are simplified implementations for Pine Script
Monte Carlo uses deterministic pseudo-random factors, not true randomness
Bayesian probability uses simplified prior/likelihood model
Reversal detection does not guarantee actual reversals will occur
Confirmation bars add lag to signal generation
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. Reversal detection is probabilistic, not predictive. The probability scores represent statistical likelihood based on historical patterns, not guaranteed outcomes. Past performance does not guarantee future results. Always use proper risk management, position sizing, and stop-losses.
- 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
Volume-Weighted Price Z-Score [QuantAlgo]🟢 Overview
The Volume-Weighted Price Z-Score indicator quantifies price deviations from volume-weighted equilibrium using statistical standardization. It combines volume-weighted moving average analysis with logarithmic deviation measurement and volatility normalization to identify when prices have moved to statistically extreme levels relative to their volume-weighted baseline, helping traders and investors spot potential mean reversion opportunities across multiple timeframes and asset classes.
🟢 How It Works
The indicator's core methodology lies in its volume-weighted statistical approach, where price displacement is measured through normalized deviations from volume-weighted price levels:
volumeWeightedAverage = ta.vwma(priceSource, lookbackPeriod)
logDeviation = math.log(priceSource / volumeWeightedAverage)
volatilityMeasure = ta.stdev(logDeviation, lookbackPeriod)
The script uses logarithmic transformation to capture proportional price changes rather than absolute differences, ensuring equal treatment of percentage moves regardless of price level:
rawZScore = logDeviation / volatilityMeasure
zScore = ta.ema(rawZScore, smoothingPeriod)
First, it establishes the volume-weighted baseline which gives greater weight to price levels where significant trading occurred, creating a more representative equilibrium point than simple moving averages.
Then, the logarithmic deviation measurement converts the price-to-average ratio into a normalized scale:
logDeviation = math.log(priceSource / volumeWeightedAverage)
Next, statistical normalization is achieved by dividing the deviation by its own historical volatility, creating a standardized z-score that measures how many standard deviations the current price sits from the volume-weighted mean.
Finally, EMA smoothing filters noise while preserving the signal's responsiveness to genuine market extremes:
rawZScore = logDeviation / volatilityMeasure
zScore = ta.ema(rawZScore, smoothingPeriod)
This creates a volume-anchored statistical oscillator that combines price-volume relationship analysis with volatility-adjusted normalization, providing traders with probabilistic insights into market extremes and mean reversion potential based on standard deviation thresholds.
🟢 Signal Interpretation
▶ Positive Values (Above Zero): Price trading above volume-weighted average indicating potential overvaluation relative to volume-weighted equilibrium = Caution on longs, potential mean reversion downward = Short/sell opportunities
▶ Negative Values (Below Zero): Price trading below volume-weighted average indicating potential undervaluation relative to volume-weighted equilibrium = Caution on shorts, potential mean reversion upward = Long/buy opportunities
▶ Zero Line Crosses: Mean reversion transitions where price crosses back through volume-weighted equilibrium, indicating shift from overvalued to undervalued (or vice versa) territory
▶ Extreme Positive Zone (Above +2.5σ default): Statistically rare overvaluation representing 98.8%+ confidence level deviation, indicating extremely stretched bullish conditions with high mean reversion probability = Strong correction warning/short signal
▶ Extreme Negative Zone (Below -2.5σ default): Statistically rare undervaluation representing 98.8%+ confidence level deviation, indicating extremely stretched bearish conditions with high mean reversion probability = Strong buying opportunity signal
▶ ±1σ Reference Levels: Moderate deviation zones (±1 standard deviation) marking common price fluctuation boundaries where approximately 68% of price action occurs under normal distribution
▶ ±2σ Reference Levels: Significant deviation zones (±2 standard deviations) marking unusual price extremes where approximately 95% of price action should be contained under normal conditions
🟢 Features
▶ Preconfigured Presets: Three optimized parameter sets accommodate different analytical approaches, instruments and timeframes. "Default" provides balanced statistical measurement suitable for swing trading and daily/4-hour analysis, offering deviation detection with moderate responsiveness to price dislocations. "Fast Response" delivers heightened sensitivity optimized for intraday trading and scalping on 15-minute to 1-hour charts, using shorter statistical windows and minimal smoothing to capture rapid mean reversion opportunities as they develop. "Smooth Trend" offers conservative extreme identification ideal for position trading on daily to weekly charts, employing extended statistical periods and heavy noise filtering to isolate only the most significant market extremes.
▶ Built-in Alerts: Seven alert conditions enable comprehensive automated monitoring of statistical extremes and mean reversion events. Extreme Overbought triggers when z-score crosses above the extreme threshold (default +2.5σ) signaling rare overvaluation, Extreme Oversold activates when z-score crosses below the negative extreme threshold (default -2.5σ) signaling rare undervaluation. Exit Extreme Overbought and Exit Extreme Oversold alert when prices begin reverting from these statistical extremes back toward the mean. Bullish Mean Reversion notifies when z-score crosses above zero indicating shift to overvalued territory, while Bearish Mean Reversion triggers on crosses below zero indicating shift to undervalued territory. Any Extreme Level provides a combined alert for any extreme threshold breach regardless of direction. These notifications allow you to capitalize on statistically significant price dislocations without continuous chart monitoring.
▶ Color Customization: Six visual themes (Classic, Aqua, Cosmic, Ember, Neon, plus Custom) accommodate different chart backgrounds and visual preferences, ensuring optimal contrast for identifying positive versus negative deviations across trading environments. The adjustable fill transparency control (0-100%) allows fine-tuning of the gradient area prominence between the z-score line and zero baseline, with higher opacity values creating subtle background context while lower values produce bold deviation emphasis. Optional bar coloring extends the z-score gradient directly to the indicator pane bars, providing immediate visual reinforcement of current deviation magnitude and direction without requiring reference to the plotted line itself.
*Note: This indicator requires volume data to function correctly, as it calculates deviations from a volume-weighted price average. Tickers with no volume data or extremely limited volume will not produce meaningful results, i.e., the indicator may display flat lines, erratic values, or fail to calculate properly. Using this indicator on assets without volume data (certain forex pairs, synthetic indices, or instruments with unreported/unavailable volume) will produce unreliable or no results at all. Additionally, ensure your chart has sufficient historical data to cover the selected lookback period, e.g., using a 100-bar lookback on a chart with only 50 bars of history will yield incomplete or inaccurate calculations. Always verify your chosen ticker has consistent, accurate volume information and adequate price history before applying this indicator.
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
Quality-Controlled Trend Strategy v2 (Expectancy Focused)This script focuses on quality control rather than curve-fitting.
No repainting, no intrabar tricks, no fake equity curves.
It uses confirmed-bar entries, ATR-based risk, and clean trend logic so backtests reflect what could actually be traded live.
If you publish scripts, this is the minimum structure worth sharing.
Why this script exists
TradingView’s public scripts are flooded with:
repainting indicators
no stop-loss logic
curve-fit entries that collapse live
strategies that look good only in hindsight
This script is intentionally boring but honest.
No repainting.
No intrabar tricks.
No fake equity curves
The goal is quality control, not hype.
What this strategy enforces
✔ Confirmed bars only
✔ Single source of truth for indicators
✔ Fixed risk structure
✔ No signal repainting
✔ Clean exits with unique IDs
✔ Works on any liquid market
Trading Logic (simple & auditable)
Trend filter
EMA 50 vs EMA 200
Entry
Pullback to EMA 50
RSI confirms momentum (not oversold/overbought)
Risk
ATR-based stop
Fixed R:R
One position at a time
This is the minimum bar for a strategy to be considered publish-worthy.
Why this helps TradingView quality
Most low-value scripts fail because they:
hide repainting logic
skip exits entirely
use inconsistent calculations
rely on hindsight candles
This strategy forces discipline:
every signal is confirmed
every trade has defined risk
behavior is repeatable across symbols & timeframes
If more scripts followed this baseline, TradingView’s public library would be far more usable.
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
Dimensional Support ResistanceDimensional Support Resistance
Overview
Dimensional Support Resistance is an open-source overlay indicator that automatically detects and displays clean, non-overlapping support and resistance levels using pivot-based analysis with intelligent filtering. It identifies significant swing highs and lows, filters them by minimum distance to prevent visual clutter, and provides volume-confirmed bounce signals.
What This Indicator Does
The indicator calculates and displays:
Dynamic Pivot Levels - Automatically detected swing highs and lows based on configurable pivot strength
Distance Filtering - Ensures levels are spaced apart by a minimum percentage to prevent overlap
S/R Zones - Visual zones around each level showing the price area of significance
Bounce Detection - Identifies when price reverses at support or resistance levels
Volume Confirmation - Strong signals require above-average volume for confirmation
How It Works
Pivot detection scans for swing highs and lows using a configurable strength parameter. A pivot low requires the low to be lower than all surrounding bars within the strength period.
Signal Generation
The indicator generates bounce signals using TradingView's built-in pivot detection combined with candle reversal confirmation:
Support Bounce: Pivot low forms with bullish close (close > open)
Resistance Bounce: Pivot high forms with bearish close (close < open)
Strong Bounce: Bounce occurs with volume 1.5x above 20-period average
A cooldown period of 15 bars prevents signal spam.
Dashboard Panel
A compact dashboard displays:
Support - Count of active support levels
Resistance - Count of active resistance levels
Dashboard position is configurable (Top Left, Top Right, Bottom Left, Bottom Right).
Visual Elements
Support Lines - Green horizontal lines at support levels
Resistance Lines - Red horizontal lines at resistance levels
S/R Zones - Semi-transparent boxes around levels showing zone width
Price Labels - S: and R: labels showing exact price of nearest levels
BOUNCE Markers - Triangle shapes with text when price bounces at a level
STRONG Markers - Label shapes when bounce occurs with high volume
Input Parameters
Lookback Period (default: 100) - Historical bars to scan for pivots
Pivot Strength (default: 8) - Bars on each side required for valid pivot (higher = fewer but stronger levels)
Max Levels Each Side (default: 2) - Maximum support and resistance levels displayed
Zone Width % (default: 0.15) - Width of zones around each level as percentage of price
Min Distance Between Levels % (default: 1.0) - Minimum spacing between levels to prevent overlap
Show S/R Zones (default: true) - Toggle zone visualization
Show Bounce Signals (default: true) - Toggle signal markers
Support Color (default: #00ff88) - Color for support elements
Resistance Color (default: #ff3366) - Color for resistance elements
Suggested Use Cases
Identify key support and resistance levels for entry and exit planning
Use bounce signals as potential reversal confirmation
Combine with other indicators for confluence-based trading decisions
Monitor strong signals for high-probability setups with volume confirmation
Timeframe Recommendations
Works on all timeframes. Higher timeframes (4H, Daily) provide more significant levels with fewer signals. Lower timeframes show more granular structure but may produce more noise.
Limitations
Pivot detection requires lookback bars, so very recent pivots may not be immediately visible
Bounce signals are based on pivot formation and may lag by the pivot strength period
Levels are recalculated on each bar, so they may shift as new pivots form
Open-Source and Disclaimer
This script is published as open-source under the Mozilla Public License 2.0 for educational purposes. It does not constitute financial advice. Past performance does not guarantee future results. Always use proper risk management and conduct your own analysis before trading.
- Made with passion by officialjackofalltrades
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
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
Pivot Point Zones [JOAT]Pivot Point Zones — Multi-Formula Pivot Levels with ATR Zones
Pivot Point Zones calculates and displays traditional pivot points with five formula options, enhanced with ATR-based zones around each level. This creates more practical trading zones that account for price noise around key levels—because price rarely reacts at exact mathematical levels.
What Makes This Indicator Unique
Unlike basic pivot point indicators, Pivot Point Zones:
Offers five different pivot calculation formulas in one indicator
Creates ATR-based zones around each level for realistic reaction areas
Pulls data from higher timeframes automatically
Displays clean labels with exact price values
Provides a comprehensive dashboard with all levels
What This Indicator Does
Calculates pivot points using Standard, Fibonacci, Camarilla, Woodie, and more formulas
Draws horizontal lines at Pivot, R1-R3, and S1-S3 levels
Creates ATR-based zones around each level for realistic price reaction areas
Displays labels with exact price values
Updates automatically based on higher timeframe closes
Provides fills between zone boundaries for visual clarity
Pivot Formulas Explained
// Standard Pivot - Classic (H+L+C)/3 calculation
pp := (pivotHigh + pivotLow + pivotClose) / 3
r1 := 2 * pp - pivotLow
s1 := 2 * pp - pivotHigh
r2 := pp + pivotRange
s2 := pp - pivotRange
// Fibonacci Pivot - Uses Fib ratios for level spacing
r1 := pp + 0.382 * pivotRange
r2 := pp + 0.618 * pivotRange
r3 := pp + 1.0 * pivotRange
// Camarilla Pivot - Tighter levels for intraday
r1 := pivotClose + pivotRange * 1.1 / 12
r2 := pivotClose + pivotRange * 1.1 / 6
r3 := pivotClose + pivotRange * 1.1 / 4
// Woodie Pivot - Weights current close more heavily
pp := (pivotHigh + pivotLow + 2 * close) / 4
// TD Pivot - Conditional based on open/close relationship
x = pivotClose < pivotOpen ? pivotHigh + 2*pivotLow + pivotClose :
pivotClose > pivotOpen ? 2*pivotHigh + pivotLow + pivotClose :
pivotHigh + pivotLow + 2*pivotClose
pp := x / 4
Formula Characteristics
Standard — Classic pivot calculation. Balanced levels, good for swing trading.
Fibonacci — Uses 0.382, 0.618, and 1.0 ratios. Popular with Fibonacci traders.
Camarilla — Tighter levels derived from range. Excellent for intraday mean-reversion.
Woodie — Weights current close more heavily. More responsive to recent price action.
TD — Conditional calculation based on open/close relationship. Adapts to bar type.
Zone System
Each pivot level includes an ATR-based zone that provides a more realistic area for potential price reactions:
// ATR-based zone width calculation
float atr = ta.atr(atrLength)
float zoneHalf = atr * zoneWidth / 2
// Zone boundaries around each level
zoneUpper = level + zoneHalf
zoneLower = level - zoneHalf
This accounts for market noise and helps avoid false breakout signals at exact level prices.
Visual Features
Pivot Lines — Horizontal lines at each calculated level
Zone Fills — Transparent fills between zone boundaries
Level Labels — Labels showing level name and exact price (e.g., "PP 45123.50")
Color Coding :
- Yellow: Pivot Point (PP)
- Red gradient: Resistance levels (R1, R2, R3) - darker = further from PP
- Green gradient: Support levels (S1, S2, S3) - darker = further from PP
Color Scheme
Pivot Color — Default: #FFEB3B (yellow) — Central pivot point
Resistance Color — Default: #FF5252 (red) — R1, R2, R3 levels
Support Color — Default: #4CAF50 (green) — S1, S2, S3 levels
Zone Transparency — 85-90% transparent fills around levels
Dashboard Information
The on-chart table (bottom-right corner) displays:
Selected pivot type (Standard, Fibonacci, etc.)
R3, R2, R1 resistance levels with exact prices
PP (Pivot Point) highlighted
S1, S2, S3 support levels with exact prices
Inputs Overview
Pivot Settings:
Pivot Type — Formula selection (Standard, Fibonacci, Camarilla, Woodie, TD)
Pivot Timeframe — Higher timeframe for OHLC data (default: D = Daily)
ATR Length — Period for zone width calculation (default: 14)
Zone Width — ATR multiplier for zone size (default: 0.5)
Level Display:
Show Pivot (P) — Toggle central pivot line
Show R1/S1 — Toggle first resistance/support levels
Show R2/S2 — Toggle second resistance/support levels
Show R3/S3 — Toggle third resistance/support levels
Show Zones — Toggle ATR-based zone fills
Show Labels — Toggle price labels at each level
Visual Settings:
Pivot/Resistance/Support Colors — Customizable color scheme
Line Width — Thickness of level lines (default: 2)
Extend Lines Right — Project lines forward on chart
Show Dashboard — Toggle the information table
How to Use It
For Intraday Trading:
Use Daily pivots on intraday charts (15m, 1H)
Pivot point often acts as the day's "fair value" reference
Camarilla levels work well for intraday mean-reversion
R1/S1 are the most commonly tested levels
For Swing Trading:
Use Weekly pivots on daily charts
Standard or Fibonacci formulas work well
R2/S2 and R3/S3 become more relevant
Zone boundaries provide realistic entry/exit areas
For Support/Resistance:
R levels above price act as resistance targets
S levels below price act as support targets
Zone boundaries are more realistic than exact lines
Multiple formula confluence adds significance
Alerts Available
DPZ Cross Above Pivot — Price crosses above central pivot
DPZ Cross Below Pivot — Price crosses below central pivot
DPZ Cross Above R1/R2 — Price breaks resistance levels
DPZ Cross Below S1/S2 — Price breaks support levels
Best Practices
Match pivot timeframe to your trading style (Daily for intraday, Weekly for swing)
Use zones instead of exact levels for more realistic expectations
Camarilla is best for mean-reversion; Standard/Fibonacci for breakouts
Combine with other indicators for confirmation
— Made with passion by officialjackofalltrades
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
Account GuardianAccount Guardian: Dynamic Risk/Reward Overlay
Introduction
Account Guardian is an open-source indicator for TradingView designed to help traders evaluate trade setups before entering positions. It automatically calculates Risk-to-Reward ratios based on market structure, displays visual Stop Loss and Take Profit zones, and provides real-time position sizing recommendations.
The indicator addresses a fundamental question every trader should ask before entering a trade: "Does this setup make mathematical sense?" Account Guardian answers this question visually and numerically, helping traders avoid impulsive entries with poor risk profiles.
Core Functionality
Account Guardian performs four primary functions:
Detects swing highs and swing lows to identify logical stop loss placement levels
Calculates Risk-to-Reward ratios for both long and short setups in real-time
Displays visual SL/TP zones on the chart for immediate trade planning
Computes position sizing based on your account size and risk tolerance
The goal is to provide traders with instant feedback on whether a potential trade meets their minimum risk/reward criteria before committing capital.
How It Works
Swing Detection
The indicator uses pivot point detection to identify recent swing highs and swing lows on the chart. These swing points serve as logical areas for stop loss placement:
For Long Trades: The most recent swing low becomes the stop loss level. Price breaking below this level would invalidate the bullish thesis.
For Short Trades: The most recent swing high becomes the stop loss level. Price breaking above this level would invalidate the bearish thesis.
The swing detection lookback period is configurable, allowing you to adjust sensitivity based on your trading timeframe and style.
It automatically adjusts the tp and sl when it is applied to your chart so it is always moving up and down!
Risk/Reward Calculation
Once swing levels are identified, the indicator calculates:
Entry Price: Current close price (where you would enter)
Stop Loss: Recent swing low (for longs) or swing high (for shorts)
Risk: Distance from entry to stop loss
Take Profit: Entry plus (Risk × Target Multiplier)
R:R Ratio: Reward divided by Risk
The R:R ratio is then evaluated against your configured thresholds to determine if the setup is valid, marginal, or poor.
Visual Elements
SL/TP Zones
When enabled, the indicator draws colored boxes on the chart showing:
Red Zone: Stop Loss area - the region between your entry and stop loss
Green/Gold/Red Zone: Take Profit area - colored based on R:R quality
The color coding provides instant visual feedback:
Green: R:R meets or exceeds your "Good R:R" threshold (default 3:1)
Gold: R:R meets minimum threshold but below "Good" (between 2:1 and 3:1)
Red: R:R below minimum threshold - setup should be avoided
Swing Point Markers
Small circles mark detected swing points on the chart:
Green circles: Swing lows (potential support / long SL levels)
Red circles: Swing highs (potential resistance / short SL levels)
Dashboard Panel
The dashboard in the top-right corner displays comprehensive trade planning information:
R:R Row: Current Risk-to-Reward ratio for long and short setups
Status Row: VALID, OK, BAD, or N/A based on R:R thresholds
Stop Loss Row: Exact price level for stop loss placement
Take Profit Row: Exact price level for take profit placement
Pos Size Row: Recommended position size based on your risk parameters
Risk $ Row: Dollar amount at risk per trade
Position Sizing Logic
The indicator calculates position size using the formula:
Position Size = Risk Amount / Risk per Unit
Where:
Risk Amount = Account Size × (Risk Percentage / 100)
Risk per Unit = Entry Price - Stop Loss Price
For example, with a $10,000 account risking 1% per trade ($100), if your entry is at 100 and stop loss at 98 (risk of 2 per unit), your position size would be 50 units.
Input Parameters
Swing Detection:
Swing Lookback: Number of bars to look back for pivot detection (default: 10). Higher values find more significant swing points but may be slower to update.
Target Multiplier: Multiplier applied to risk to calculate take profit distance (default: 2). A value of 2 means TP is 2× the distance of SL from entry.
Risk/Reward Thresholds:
Minimum R:R: Minimum acceptable Risk-to-Reward ratio (default: 2.0). Setups below this show as "BAD" in red.
Good R:R: Threshold for excellent setups (default: 3.0). Setups at or above this show as "VALID" in green.
Account Settings:
Account Size ($): Your trading account size in dollars (default: 10,000). Used for position sizing calculations.
Risk Per Trade (%): Percentage of account to risk per trade (default: 1.0%). Professional traders typically risk 0.5-2% per trade.
Display:
Show SL/TP Zones: Toggle visibility of the colored zone boxes on chart (default: enabled)
Show Dashboard: Toggle visibility of the information panel (default: enabled)
Analyze Direction: Choose to analyze Long only, Short only, or Both directions (default: Both)
How to Use This Indicator
Basic Workflow:
Add the indicator to your chart
Configure your account size and risk percentage in the settings
Set your minimum and good R:R thresholds based on your trading rules
Look at the dashboard to see current R:R for potential long and short entries
Only consider trades where the status shows "VALID" or at minimum "OK"
Use the displayed SL and TP levels for your order placement
Use the position size recommendation to determine lot/contract size
Interpreting the Dashboard:
VALID (Green): Excellent setup - R:R meets your "Good" threshold. This is the ideal scenario for taking a trade.
OK (Gold): Acceptable setup - R:R meets minimum but isn't optimal. Consider taking if other confluence factors align.
BAD (Red): Poor setup - R:R below minimum threshold. Avoid this trade or wait for better entry.
N/A (Gray): Cannot calculate - usually means no valid swing point detected yet.
Best Practices:
Use this indicator as a filter, not a signal generator. It tells you IF a trade makes sense, not WHEN to enter.
Combine with your existing entry strategy - use Account Guardian to validate setups from other analysis.
Adjust the swing lookback based on your timeframe. Lower timeframes may need smaller lookback values.
Be honest with your account size input - accurate position sizing requires accurate inputs.
Consider the target multiplier carefully. Higher multipliers mean larger potential reward but lower probability of hitting TP.
Alerts
The indicator includes four alert conditions:
Good Long Setup: Triggers when long R:R reaches or exceeds your "Good R:R" threshold
Good Short Setup: Triggers when short R:R reaches or exceeds your "Good R:R" threshold
Bad Long Setup: Triggers when long R:R falls below your minimum threshold
Bad Short Setup: Triggers when short R:R falls below your minimum threshold
These alerts can help you monitor multiple charts and get notified when favorable setups appear.
Technical Implementation
The indicator is built using Pine Script v6 and includes:
Pivot-based swing detection using ta.pivothigh() and ta.pivotlow()
Dynamic box drawing for visual SL/TP zones
Table-based dashboard for clean information display
Color-coded visual feedback system
Persistent variable tracking for swing levels
Code Structure:
// Swing Detection
float swingHi = ta.pivothigh(high, swingLen, swingLen)
float swingLo = ta.pivotlow(low, swingLen, swingLen)
// R:R Calculation for Long
float longSL = recentSwingLo
float longRisk = entry - longSL
float longTP = entry + (longRisk * targetMult)
float longRR = (longTP - entry) / longRisk
// Position Sizing
float riskAmount = accountSize * (riskPct / 100)
float posSize = riskAmount / longRisk
Limitations
The indicator uses historical swing points which may not always represent optimal SL placement for your specific strategy
Position sizing assumes you can trade fractional units - adjust accordingly for instruments with minimum lot sizes
R:R calculations assume linear price movement and don't account for gaps or slippage
The indicator doesn't predict price direction - it only evaluates the mathematical viability of a setup
Swing detection has inherent lag due to the lookback period required for pivot confirmation
Recommended Settings by Trading Style
Scalping (1-5 minute charts):
Swing Lookback: 5-8
Target Multiplier: 1-2
Minimum R:R: 1.5
Good R:R: 2.0
Day Trading (15-60 minute charts):
Swing Lookback: 8-12
Target Multiplier: 2
Minimum R:R: 2.0
Good R:R: 3.0
Swing Trading (4H-Daily charts):
Swing Lookback: 10-20
Target Multiplier: 2-3
Minimum R:R: 2.5
Good R:R: 4.0
Why Risk/Reward Matters
Many traders focus solely on win rate, but profitability depends on the combination of win rate AND risk/reward ratio. Consider these scenarios:
50% win rate with 1:1 R:R = Breakeven (before costs)
50% win rate with 2:1 R:R = Profitable
40% win rate with 3:1 R:R = Profitable
60% win rate with 1:2 R:R = Losing money
Account Guardian helps ensure you only take trades where the math works in your favor, even if you're wrong more often than you're right.
Disclaimer
This indicator is provided for educational and informational purposes only. It is not intended as financial, investment, trading, or any other type of advice or recommendation.
Trading involves substantial risk of loss and is not suitable for all investors. The calculations provided by this indicator are based on historical price data and mathematical formulas that may not accurately predict future price movements.
Position sizing recommendations are estimates based on user inputs and should be verified before placing actual trades. Always consider factors such as leverage, margin requirements, and broker-specific rules when determining actual position sizes.
The Risk-to-Reward ratios displayed are theoretical calculations based on swing point detection. Actual trade outcomes will vary based on market conditions, execution quality, and other factors not captured by this indicator.
Past performance does not guarantee future results. Users should thoroughly test any trading approach in a demo environment before risking real capital. The authors and publishers of this indicator are not responsible for any losses or damages arising from its use.
Always consult with a qualified financial advisor before making investment decisions.
XAU Seasonality + Setup Quality + Month Strength | WarRoomXYZXAU Seasonality Engine is a technical analysis indicator developed for the study of recurring, calendar-based behavior on XAUUSD (Gold).
The tool blends month-of-year seasonality statistics with higher-timeframe context and a setup-quality gate to help users observe when market conditions historically lean strong, weak, or neutral — and how strict trade selection should be during each regime.
Indicator Concept
An indicator for XAUUSD that combines:
1. Seasonality Regime (Month-of-Year Bias)
► Classifies the current month as Strong / Weak / Neutral based on either:
• Preset months (user-defined)
or
• Auto mode (computed from historical monthly performance)
► Strong months suggest a bullish tailwind (not a signal).
► Weak months suggest headwind / caution and require stricter setup quality.
2. Monthly Performance Engine (Under the Hood)
► Uses the symbol’s monthly timeframe data to compute, per calendar month:
• Average monthly return (%)
• Win rate (%) — how often that month closes positive
• Month Strength Score (0–100) — a blended score derived from performance data
► The score is designed to provide a relative strength snapshot of seasonality by month.
3. Month Strength Histogram
► Plots a histogram (0–100) of the current month’s strength score.
• Higher bars = historically stronger month tendency
• Lower bars = historically weaker month tendency
► Optional horizontal reference lines mark “strong” and “weak” zones to make regimes obvious at a glance.
4. Setup Quality Meter (Confluence Filter)
► The indicator calculates a Setup Quality Score (0–100) using market structure and momentum components, such as:
• EMA trend alignment
• Momentum confirmation (EMA fast vs slow)
• Structure break confirmation (BOS)
• Liquidity sweep behavior
• Candle confirmation logic
► This score is intended as a trade-selectivity filter , not a trade executor.
5. Adaptive Rules for Weak Months (Strict Mode)
► When the indicator detects a weak seasonal regime, conditions automatically tighten:
• The A+ threshold increases (adaptive thresholding)
• Optional rule: Weak months require BOS + Sweep + FVG simultaneously before any A+ condition is considered valid
This forces the user into “higher-quality-only” behavior during historically weaker seasonal periods.
🔹1 Visual Components Included
• Seasonality regime label (Strong / Weak / Neutral)
• Optional background shading based on regime
• Month Strength Score histogram (0–100)
• Current month stats: Avg return + win rate
• Setup Quality Meter value (0–100)
• Adaptive A+ threshold display
• Weak-month confluence gate status (BOS / Sweep / FVG pass/fail)
• Optional alerts when strict criteria are met
➣What Means in the XAU Indicator
🔹 Definition (in THIS indicator)
Win Rate = the percentage of historical months that closed positive for the same calendar month.
It is NOT:
trade win rate ❌
signal accuracy ❌
It is a s tatistical seasonality metric .
How It’s Calculated
For each calendar month (January, February, etc.), the indicator:
1.Looks at historical monthly candles (Monthly timeframe).
2. Counts how many times that month:
•Closed higher than it opened (or higher than previous month close).
3. Divides:
Number of positive months
÷
Total number of observed months
× 100
Example: September
If over the last 20 years:
September closed green 14 times
September closed red 6 times
Then:
Win Rate = (14 / 20) × 100 = 70%
That’s what you see as in the dashboard.
What the Win Rate Is Used For
1️⃣ Part of the Month Strength Score
The indicator blends:
•Average Monthly Return (%) → measures magnitude
•Win Rate (%) → measures consistency
Combined into:
Month Strength Score (0–100)
This avoids a common trap:
•A month with 1 huge rally but many losses ≠ reliable
•A month with steady positive closes = higher quality environment
What Win Rate Tells You
High Win Rate (e.g. 65–75%)
•Gold more often closes higher in this month
•Continuation is statistically more likely
•Pullbacks are more likely to resolve in trend direction
Low Win Rate (e.g. 35–45%)
•Gold more often fails to close higher
•More chop, deeper retracements, false breakouts
•Continuation trades statistically struggle
What It Does NOT Tell You
🚫 It does NOT mean:
•“You will win 70% of your trades”
•“Every setup in this month works”
•“Direction is guaranteed”
Seasonality is context, not prediction.
Why This Is Powerful When Combined With Your System
On its own, win rate is just data.
But in your indicator, it’s used to:
•🔒 Raise the A+ threshold in weak months
•🧠 Force BOS + Sweep + FVG confluence
•❌ Block marginal setups automatically
So instead of guessing:
-“Why is gold so choppy this month?”
You know:
-“This month historically underperforms SO I must be stricter.”
➣What Means in the XAU Seasonality Indicator
🔹 Definition (in THIS indicator)
Avg Monthly Return = the average percentage gain or loss of XAUUSD for a specific calendar month, calculated across many years.
It measures magnitude , not frequency.
It is NOT:
•trade profit ❌
•expected return for the next month ❌
•guaranteed performance ❌
It is a historical seasonality tendency.
How It’s Calculated
For each calendar month (January, February, etc.), the indicator:
1.Takes every historical occurrence of that month.
2.Calculates the percentage change of the monthly candle:
(Monthly Close − Previous Monthly Close)
÷ Previous Monthly Close × 100
3. Adds all those percentage changes together.
4. Divides by the total number of observations.
Example: September
Assume over 20 years:
+2.4%, +1.1%, −0.6%, +3.0%, +1.8%, ...
If the sum of all September returns = +28% across 20 years:
Avg Monthly Return = +1.40%
That’s the number displayed in the indicator.
What Avg Monthly Return Is Used For
1️⃣ Measuring Strength of Movement
•Win Rate → “How often does it close green?”
•Avg Monthly Return → “How big are the moves when it works?”
Both are needed.
A month can:
•Win often but move very little
•Move a lot but only occasionally
The indicator combines both to avoid misleading conclusions.
How to Interpret Avg Monthly Return
Positive Avg Return (e.g. +0.8% to +2.0%)
•Gold tends to expand during this month
•Continuation phases are more likely
•Pullbacks are often absorbed
Near-Zero Avg Return (e.g. −0.2% to +0.2%)
•Market is statistically balanced
•Expect chop, rotations, false breaks
•Continuation is less reliable
Negative Avg Return (e.g. −0.5% or worse)
•Downward pressure or heavy mean reversion
•Rallies often fade
•Risk of aggressive stop hunts
What Avg Monthly Return Does NOT Mean
🚫 It does NOT mean:
•“Price will move +1.4% this month”
•“You should buy because the number is positive”
•“This is a guaranteed edge”
It describes historical behavior, not future certainty.
Why Avg Monthly Return Matters More Than People Think
Two months can have the same win rate but behave very differently:
Example:
Month Win Rate Avg Return Reality
Month A 65% +0.2% Small, choppy wins
Month B 55% +1.6% Fewer wins, but strong expansions
Your indicator would rank Month B as stronger, which is correct for continuation-based strategies.
How It Feeds the Month Strength Score
The indicator blends:
•60% Avg Monthly Return (normalized)
•40% Win Rate
This means:
•Big moves matter more than small consistency
•But consistency still matters enough to prevent distortion
Result:
Month Strength Score (0–100)
Which is then used to:
•tighten or relax A+ thresholds
•activate weak-month strict rules
•control trade frequency
🔹2. Intended Use
The indicator is designed as a discretionary analysis tool to support study of:
• seasonal bias and calendar tendencies
• relative strength/weakness across months
• how strict trade selection should be across different regimes
• confluence behavior when seasonal conditions are unfavorable
The tool does not generate forecasts, does not guarantee outcomes, and should not be relied upon as a stand-alone decision mechanism.
🔹3.How to Use XAU Seasonality Engine
Recommended charts: XAUUSD, intraday (5m–15m) with a HTF context (1H–4H).
1. Identify the Seasonal Regime
• Strong month → you can allow more continuation bias (still require structure).
• Neutral month → trade normally, standard criteria.
• Weak month → tighten selection, demand clean A+ conditions only.
2. Read the Month Strength Histogram
• If the score is high (e.g., 70+), the month has historically shown stronger tendency.
• If the score is low (e.g., 40 and below), expect slower conditions, deeper pullbacks, or more chop — and reduce marginal trades.
3. Use the Setup Quality Meter as the Gate
► In normal/strong months:
• A+ threshold is moderate (e.g., 70)
► In weak months:
• A+ threshold is higher (e.g., 80+)
• Optional strict mode: must also pass BOS + Sweep + FVG alignment
4. Example Trade Logic (Framework, Not Signals)
► Bullish framework in a Strong Month:
• Seasonal regime = Strong (tailwind)
• Structure supports bullish continuation (trend alignment)
• Sweep occurs into demand / liquidity grab
• Setup Quality reaches A+ threshold
• Entry: confirmation candle or retrace to key level
• SL: beyond sweep low / invalidation
• TP: nearest liquidity / prior highs / HTF level
► Weak Month rule-set (Strict Mode):
• Seasonal regime = Weak (headwind)
• Only consider trades if:
✅ BOS confirms direction
✅ Sweep occurs and rejects cleanly
✅ FVG exists recently (or is mitigated if you choose that model)
✅ Setup Quality exceeds the elevated adaptive threshold
If any one is missing → no trade
This is not meant to “predict” gold — it’s meant to enforce discipline when seasonality historically underperforms.
🔹4.Limitations and User Responsibility
► The indicator does not represent financial advice or imply performance expectations.
► Seasonality is statistical tendency, not certainty — macro conditions can override it.
► Results vary by broker feed, timeframe, and settings.
► Users should test thoroughly in simulation before applying to live markets.
► All trading decisions, risk management, and execution remain solely the responsibility of the user.
🔹5. Alerts
Optional alerts can notify when:
• a new month begins and the seasonal regime changes
• A+ criteria are met
• weak-month strict conditions pass (BOS + Sweep + FVG)
Alerts are informational only and do not constitute actionable recommendations.
Disclaimer
This script is provided for informational and educational purposes only . It does not provide financial, investment, or trading advice, and it does not guarantee profits or future performance. All decisions made based on this script are solely the responsibility of the user.
This script does not execute trades, manage risk, or replace the need for trader discretion. Market behavior can change quickly, and past behavior detected by the script does not ensure similar future outcomes.
Users should test the script on demo or simulation environments before applying it to live markets and must maintain full responsibility for their own risk management, position sizing, and trade execution.
Trading involves risk, and losses can exceed deposits. By using this script, you acknowledge that you understand and accept all associated risks.
Multi-Fractal Trading Plan [Gemini] v22Multi-Fractal Trading Plan
The Multi-Fractal Trading Plan is a quantitative market structure engine designed to filter noise and generate actionable daily strategies. Unlike standard auto-trendline indicators that clutter charts with irrelevant data, this system utilizes Fractal Geometry to categorize market liquidity into three institutional layers: Minor (Intraday), Medium (Swing), and Major (Institutional).
This tool functions as a Strategic Advisor, not just a drawing tool. It calculates the delta between price and structural pivots in real-time, alerting you when price enters high-probability "Hot Zones" and generating a live trading plan on your dashboard.
Core Features
1. Three-Tier Fractal Engine The algorithm tracks 15 distinct fractal lengths simultaneously, aggregating them into a clean hierarchy:
Minor Structure (Thin Lines): Captures high-frequency volatility for scalping.
Medium Structure (Medium Lines): Identifies significant swing points and intermediate targets.
Major Structure (Thick Lines): Maps the "Institutional" defense lines where trend reversals and major breakouts occur.
2. The Strategic Dashboard A dynamic data panel in the bottom-right eliminates analysis paralysis:
Floor & Ceiling Targets: Displays the precise price levels of the nearest Support and Resistance.
AI Logic Output: The script analyzes market conditions to generate a specific command, such as "WATCH FOR BREAKOUT", "Near Lows (Look Long?)", or "WAIT (No Setup)".
3. "Hot Zone" Detection Never miss a critical test of structure.
Dynamic Alerting: When price trades within 1% (adjustable) of a Major Trend Line, the indicator’s labels turn Bright Yellow and flash a warning (e.g., "⚠️ WATCH: MAJOR RES").
Focus: This visual cue highlights the exact moment execution is required, reducing screen fatigue.
4. The Quant Web & Markers
Pivot Validation: Deep blue fractal markers (▲/▼) identify the exact candles responsible for the structure.
Inter-Timeframe Web: Faint dotted lines connect Minor pivots directly to Major pivots, visualizing the "hidden" elasticity between short-term noise and long-term trend anchors.
5. Enterprise Stability Engine Engineered to solve the "Vertical Line" and "1970 Epoch" glitches common in Pine Script trend indicators. This engine is optimized for Futures (NQ/ES), Forex, and Crypto, ensuring stability across all timeframes (including gaps on ETH/RTH charts).
Operational Guide
Consult the Dashboard: Before executing, check the "Strategy" output. If it says "WAIT", the market is in chop. If it says "WATCH FOR BOUNCE", prepare your entry criteria.
Monitor Hot Zones: A Yellow Label indicates price is testing a major liquidity level. This is your signal to watch for a rejection wick or a high-volume breakout.
Utilize the Web: Use the faint web lines to find "confluence" where a short-term pullback aligns with a long-term trend line.
Configuration
Show History: Toggles "Ghost Lines" (Blue) to display historical structure and broken trends.
Fractal Points: Toggles the geometric pivot markers.
Hot Zone %: Adjusts the sensitivity of the Yellow Warning system (Default: 1%).
Max Line Length: A noise filter that removes stale or "spiderweb" lines that are no longer statistically relevant.
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
Liquidity Maxing [JOAT]Liquidity Maxing - Institutional Liquidity Matrix
Introduction
Liquidity Maxing is an open-source strategy for TradingView built around institutional market structure concepts. It identifies structural shifts, evaluates trades through multi-factor confluence, and implements layered risk controls.
The strategy is designed for swing trading on 4-hour timeframes, focusing on how institutional order flow manifests in price action through structure breaks, inducements, and liquidity sweeps.
Core Functionality
Liquidity Maxing performs three primary functions:
Tracks market structure to identify when control shifts between buyers and sellers
Scores potential trades using an eight-factor confluence system
Manages position sizing and risk exposure dynamically based on volatility and user-defined limits
The goal is selective trading when multiple conditions align, rather than frequent entries.
Market Structure Engine
The structure engine tracks three key events:
Break of Structure (BOS): Price pushes beyond a prior pivot in the direction of trend
Change of Character (CHoCH): Control flips from bullish to bearish or vice versa
Inducement Sweeps (IDM): Market briefly runs stops against trend before moving in the real direction
The structure module continuously updates strong highs and lows, labeling structural shifts visually. IDM markers are optional and disabled by default to maintain chart clarity.
The trade engine requires valid structure alignment before considering entries. No structure, no trade.
Eight-Factor Confluence System
Instead of relying on a single indicator, Liquidity Maxing uses an eight-factor scoring system:
Structure alignment with current trend
RSI within healthy bands (different ranges for up and down trends)
MACD momentum agreement with direction
Volume above adaptive baseline
Price relative to main trend EMA
Session and weekend filter (configurable)
Volatility expansion/contraction via ATR shifts
Higher-timeframe EMA confirmation
Each factor contributes one point to the confluence score. The default minimum confluence threshold is 6 out of 8, but you can adjust this from 1-8 based on your preference for trade frequency versus selectivity.
Only when structure and confluence agree does the strategy proceed to risk evaluation.
Dynamic Risk Management
Risk controls are implemented in multiple layers:
ATR-based stops and targets with configurable risk-to-reward ratio (default 2:1)
Volatility-adjusted position sizing to maintain consistent risk per trade as ranges expand or compress
Daily and weekly risk budgets that halt new entries once thresholds are reached
Correlation cooldown to prevent clustered trades in the same direction
Global circuit breaker with maximum drawdown limit and emergency kill switch
If any guardrail is breached, the strategy will not open new positions. The dashboard clearly displays risk state for transparency.
Market Presets
The strategy includes configuration presets optimized for different market types:
Crypto (BTC/ETH): RSI bands 70/30, volume multiplier 1.2, enhanced ATR scaling
Forex Majors: RSI bands 75/25, volume multiplier 1.5
Indices (SPY/QQQ): RSI bands 70/30, volume multiplier 1.3
Custom: Default values for user customization
For crypto assets, the strategy automatically applies ATR volatility scaling to account for higher volatility characteristics.
Monitoring and Dashboards
The strategy includes optional monitoring layers:
Risk Operations Dashboard (top-right):
Trend state
Confluence score
ATR value
Current position size percentage
Global drawdown
Daily and weekly risk consumption
Correlation guard state
Alert mode status
Performance Console (top-left):
Net profit
Current equity
Win rate percentage
Average trade value
Sharpe-style ratio (rolling 50-bar window)
Profit factor
Open trade count
Optional risk tint on chart background provides visual indication of "safe to trade" versus "halted" state.
All visualization elements can be toggled on/off from the inputs for clean chart viewing or full telemetry during parameter tuning.
Alerts and Automation
The strategy supports alert integration with two formats:
Standard alerts: Human-readable messages for long, short, and risk-halt conditions
Webhook format: JSON-formatted payloads ready for external execution systems (optional)
Alert messages are predictable and unambiguous, suitable for manual review or automated forwarding to execution engines.
Built-in Validation Suite
The strategy includes an optional validation layer that can be enabled from inputs. It checks:
Internal consistency of structure and confluence metrics
Sanity and ordering of risk parameters
Position sizing compliance with user-defined floors and caps
This validation is optional and not required for trading, but provides transparency into system operation during development or troubleshooting.
Strategy Parameters
Market Presets:
Configuration Preset: Choose between Crypto (BTC/ETH), Forex Majors, Indices (SPY/QQQ), or Custom
Market Structure Architecture:
Pivot Length: Default 5 bars
Filter by Inducement (IDM): Default enabled
Visualize Structure: Default enabled
Structure Lookback: Default 50 bars
Risk & Capital Preservation:
Risk:Reward Ratio: Default 2.0
ATR Period: Default 14
ATR Multiplier (Stop): Default 2.0
Max Drawdown Circuit Breaker: Default 10%
Risk per Trade (% Equity): Default 1.5%
Daily Risk Limit: Default 6%
Weekly Risk Limit: Default 12%
Min Position Size (% Equity): Default 0.25%
Max Position Size (% Equity): Default 5%
Correlation Cooldown (bars): Default 3
Emergency Kill Switch: Default disabled
Signal Confluence:
RSI Length: Default 14
Trend EMA: Default 200
HTF Confirmation TF: Default Daily
Allow Weekend Trading: Default enabled
Minimum Confluence Score (0-8): Default 6
Backtesting Considerations
When backtesting this strategy, consider the following:
Commission: Default 0.05% (adjustable in strategy settings)
Initial Capital: Default $100,000 (adjustable)
Position Sizing: Uses percentage of equity (default 2% per trade)
Timeframe: Optimized for 4-hour charts, though can be tested on other timeframes
Results will vary significantly based on:
Market conditions and volatility regimes
Parameter settings, especially confluence threshold
Risk limit configuration
Symbol characteristics (crypto vs forex vs equities)
Past performance does not guarantee future results. Win rate, profit factor, and other metrics should be evaluated in context of drawdown periods, trade frequency, and market conditions.
How to Use This Strategy
This is a framework that requires understanding and parameter tuning, not a one-size-fits-all solution.
Recommended workflow:
Start on 4-hour timeframe with default parameters and appropriate market preset
Run backtests and study performance console metrics: focus on drawdown behavior, win rate, profit factor, and trade frequency
Adjust confluence threshold to match your risk appetite—higher thresholds mean fewer but more selective trades
Set realistic daily and weekly risk budgets appropriate for your account size and risk tolerance
Consider ATR multiplier adjustments based on market volatility characteristics
Only connect alerts or automation after thorough testing and parameter validation
Treat this as a risk framework with an integrated entry engine, not merely an entry signal generator. The risk controls are as important as the trade signals.
Strategy Limitations
Designed for swing trading timeframes; may not perform optimally on very short timeframes
Requires sufficient market structure to identify pivots; may struggle in choppy or low-volatility environments
Crypto markets require different parameter tuning than traditional markets
Risk limits may prevent entries during favorable setups if daily/weekly budgets are exhausted
Correlation cooldown may delay entries that would otherwise be valid
Backtesting results depend on data quality and may not reflect live trading with slippage
Design Philosophy
Many indicators tell you when price crossed a moving average or RSI left oversold. This strategy addresses questions institutional traders ask:
Who is in control of the market right now?
Is this move structurally significant or just noise?
Do I want to add more risk given what I've already done today/week?
If I'm wrong, exactly how painful can this be?
The strategy provides disciplined, repeatable answers to these questions through systematic structure analysis, confluence filtering, and multi-layer risk management.
Technical Implementation
The strategy uses Pine Script v6 with:
Custom types for structure, confluence, and risk state management
Functional programming approach for reusable calculations
State management through persistent variables
Optional visual elements that can be toggled independently
The code is open-source and can be modified to suit individual needs. All important logic is visible in the source code.
Disclaimer
This script is provided for educational and informational purposes only. It is not intended as financial, investment, trading, or any other type of advice or recommendation. Trading involves substantial risk of loss and is not suitable for all investors. Past performance, whether real or indicated by historical tests of strategies, is not indicative of future results.
No representation is being made that any account will or is likely to achieve profits or losses similar to those shown. In fact, there are frequently sharp differences between backtested results and actual results subsequently achieved by any particular trading strategy.
The user should be aware of the risks involved in trading and should trade only with risk capital. The authors and publishers of this script are not responsible for any losses or damages, including without limitation, any loss of profit, which may arise directly or indirectly from use of or reliance on this script.
This strategy uses technical analysis methods and indicators that are not guaranteed to be accurate or profitable. Market conditions change, and strategies that worked in the past may not work in the future. Users should thoroughly test any strategy in a paper trading environment before risking real capital.
Commission and slippage settings in backtests may not accurately reflect live trading conditions. Real trading results will vary based on execution quality, market liquidity, and other factors not captured in backtesting.
The user assumes full responsibility for all trading decisions made using this script. Always consult with a qualified financial advisor before making investment decisions.
Enjoy - officialjackofalltrades
V3 Valentini Pro Scalper [Dashboard]Gemini 3.0 pro's take on Fabio Valentini's world #1 strategy scalp 12/19/2025






















