OPEN-SOURCE SCRIPT
Photon Price Action Scanner [JOAT]

Photon Price Action Scanner [JOAT] - 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:
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:
Pine Script®
Step 2: Strength Calculation
Each detected pattern receives a strength score combining volume and body size:
Pine Script®
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:
Pine Script®
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:
Pine Script®
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:
Pine Script®
Step 6: Signal Classification
Signals are classified based on how many filters they pass:

Detected Patterns
Classic Reversal Patterns:
Advanced Patterns (Optional):
Dashboard Information
The dashboard displays real-time analysis:
Visual Elements
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
Timeframe Recommendations
Limitations
- Made with passion by officialjackofalltrades
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[1] < open[1] and close > open and
open <= close[1] and close >= open[1] and
close - open > open[1] - close[1]
pattern
// Example: Three White Soldiers requires three consecutive bullish candles
// with each opening within the previous body and closing higher
isThreeWhiteSoldiers() =>
bool pattern = close[2] > open[2] and close[1] > open[1] and close > open and
close[2] < close[1] and close[1] < close and
open[1] > open[2] and open[1] < close[2] and
open > open[1] and open < close[1]
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
نص برمجي مفتوح المصدر
بروح TradingView الحقيقية، قام مبتكر هذا النص البرمجي بجعله مفتوح المصدر، بحيث يمكن للمتداولين مراجعة وظائفه والتحقق منها. شكرا للمؤلف! بينما يمكنك استخدامه مجانًا، تذكر أن إعادة نشر الكود يخضع لقواعد الموقع الخاصة بنا.
#1 Full Stack AI Trading Community — jackofalltrades.vip | 2026: The Era of AI Trading Mastery📈 AI Automation • AI Trading Bots • Indicators • Strategies • Limitless Potential • Institutional Grade Products • t.me/jackofalltradesvip
إخلاء المسؤولية
لا يُقصد بالمعلومات والمنشورات أن تكون، أو تشكل، أي نصيحة مالية أو استثمارية أو تجارية أو أنواع أخرى من النصائح أو التوصيات المقدمة أو المعتمدة من TradingView. اقرأ المزيد في شروط الاستخدام.
نص برمجي مفتوح المصدر
بروح TradingView الحقيقية، قام مبتكر هذا النص البرمجي بجعله مفتوح المصدر، بحيث يمكن للمتداولين مراجعة وظائفه والتحقق منها. شكرا للمؤلف! بينما يمكنك استخدامه مجانًا، تذكر أن إعادة نشر الكود يخضع لقواعد الموقع الخاصة بنا.
#1 Full Stack AI Trading Community — jackofalltrades.vip | 2026: The Era of AI Trading Mastery📈 AI Automation • AI Trading Bots • Indicators • Strategies • Limitless Potential • Institutional Grade Products • t.me/jackofalltradesvip
إخلاء المسؤولية
لا يُقصد بالمعلومات والمنشورات أن تكون، أو تشكل، أي نصيحة مالية أو استثمارية أو تجارية أو أنواع أخرى من النصائح أو التوصيات المقدمة أو المعتمدة من TradingView. اقرأ المزيد في شروط الاستخدام.