Viprasol Elite Advanced Pattern Scanner# 🚀 Viprasol Elite Advanced Pattern Scanner
## Overview
The **Viprasol Elite Advanced Pattern Scanner** is a sophisticated technical analysis tool designed to identify high-probability double bottom (DISCOUNT) and double top (PREMIUM) patterns with unprecedented accuracy. Unlike basic pattern detectors, this elite scanner employs an AI-powered quality scoring system to filter out false signals and highlight only the most reliable trading opportunities.
## 🎯 Key Features
### Advanced Pattern Detection
- **DISCOUNT Patterns** (Double Bottoms): Identifies bullish reversal zones where price may bounce
- **PREMIUM Patterns** (Double Tops): Detects bearish reversal zones where price may decline
- Multi-point validation system (5-point structure)
- Symmetry analysis with customizable tolerance
### 🤖 AI Quality Scoring System
Each pattern receives a quality score (0-100) based on:
- **Symmetry Analysis** (32% weight): How closely the two bottoms/tops match
- **Trend Context** (22% weight): Strength of the preceding trend using ADX
- **Volume Profile** (22% weight): Volume confirmation at key points
- **Pattern Depth** (16% weight): Significance of the pattern's price range
- **Structure Quality** (16% weight): Overall pattern formation quality
Quality Grades:
- ⭐ **ELITE** (88-100): Highest probability setups
- ✨ **VERY STRONG** (77-87): Strong trade opportunities
- ✓ **STRONG** (67-76): Valid patterns with good potential
- ○ **VALID** (65-66): Acceptable patterns meeting minimum criteria
### 🎯 Intelligent Target System
Three target modes per pattern direction:
- **Conservative**: 0.618 Fibonacci extension (safer, closer targets)
- **Balanced**: 1.0 extension (moderate risk/reward)
- **Aggressive**: 1.618 extension (higher risk/reward)
Targets automatically adjust based on pattern quality score.
### 🔧 Advanced Filtering Options
- **Volatility Filter (ATR)**: Excludes patterns during extreme volatility
- **Momentum Filter (ADX)**: Ensures sufficient trend strength
- **Liquidity Filter (Volume)**: Confirms adequate trading volume
### 📊 Pattern Lifecycle Management
- Real-time neckline tracking with extension multiplier
- Pattern invalidation after extended wait period
- Breakout/breakdown confirmation
- Reversal detection (pattern failure scenarios)
- Target achievement tracking
### 🌈 Premium Visual System
- Color-coded quality levels
- Cyber-themed color scheme (Neon Green/Hot Pink/Purple/Cyan)
- Transparent fills for pattern zones
- Dynamic labels with pattern information
- Elite dashboard showing live pattern stats
## 📈 How To Use
### Basic Setup
1. Add indicator to your chart
2. Enable desired patterns (DISCOUNT and/or PREMIUM)
3. Adjust quality threshold (default: 65) - higher = fewer but better signals
4. Set your preferred target mode
### Trading DISCOUNT Patterns (Bullish)
1. Wait for pattern detection (labeled points 1-4)
2. Check quality score on dashboard
3. Entry on breakout above neckline (point 5)
4. Stop loss below the lowest bottom
5. Target shown automatically based on your mode
6. ⚠️ Watch for pattern failure (break below bottoms = SHORT signal)
### Trading PREMIUM Patterns (Bearish)
1. Wait for pattern detection (labeled points 1-4)
2. Check quality score on dashboard
3. Entry on breakdown below neckline (point 5)
4. Stop loss above the highest top
5. Target shown automatically based on your mode
6. ⚠️ Watch for pattern failure (break above tops = LONG signal)
## ⚙️ Input Settings Guide
### 🔍 Detection Engine
- **Left/Right Pivots**: Higher = fewer but cleaner patterns (default: 6/4)
- **Min Pattern Width**: Minimum bars between bottoms/tops (default: 12)
- **Symmetry Tolerance**: Max % difference allowed between levels (default: 1.8%)
- **Extension Multiplier**: How long to wait for breakout (default: 2.2x pattern width)
### ⭐ Quality AI
- **Min Quality Score**: Only show patterns above this score (default: 65)
- **Weight Distribution**: Customize what matters most (symmetry/trend/volume/depth/structure)
### 🔧 Filters
- **Volatility Filter**: Avoid choppy markets (recommended: ON)
- **Momentum Filter**: Ensure trend strength (recommended: ON)
- **Liquidity Filter**: Volume confirmation (recommended: ON)
### 💎 Target System
- Choose target aggression for each pattern type and direction
- Higher quality patterns get adjusted targets automatically
## 🎨 Visual Customization
- Adjust colors for DISCOUNT/PREMIUM patterns
- Set quality-based color coding
- Customize label sizes
- Toggle dashboard visibility and position
- Show/hide historical patterns
## 🚨 Alert System
Set up TradingView alerts for:
- 🚀 **LONG Signals**: DISCOUNT breakout, PREMIUM failure
- 📉 **SHORT Signals**: PREMIUM breakdown, DISCOUNT failure
- ✅ **Target Achievement**: When price hits your target
## 💡 Pro Tips
1. **Higher Timeframes = Better Signals**: Patterns on 4H, Daily, Weekly are more reliable
2. **Quality Over Quantity**: Focus on ELITE and VERY STRONG grades
3. **Combine with Trend**: DISCOUNT in uptrend, PREMIUM in downtrend = best results
4. **Watch Pattern Failures**: Failed patterns often provide strong counter-trend signals
5. **Adjust for Your Style**: Intraday traders use Conservative, swing traders use Aggressive
## 🔒 Pattern Invalidation
Patterns become invalid if:
- No breakout/breakdown within extension period
- Support/resistance levels are broken prematurely
- Pattern shown in faded colors = no longer active
## ⚠️ Risk Disclaimer
This indicator is a tool for technical analysis and does not guarantee profitable trades. Always:
- Use proper risk management
- Combine with other analysis methods
- Never risk more than you can afford to lose
- Past performance does not indicate future results
Cerca negli script per "Pattern recognition"
MusaCandlePatternsLibrary "MusaCandlePatterns"
Patterns is a Japanese candlestick pattern recognition Library for developers. Functions here within detect viable setups in a variety of popular patterns. Please note some patterns are without filters such as comparisons to average candle sizing, or trend detection to allow the author more freedom.
doji(dojiSize, dojiWickSize)
Detects "Doji" candle patterns
Parameters:
dojiSize (float) : (float) The relationship of body to candle size (ie. body is 5% of total candle size). Default is 5.0 (5%)
dojiWickSize (float) : (float) Maximum wick size comparative to the opposite wick. (eg. 2 = bottom wick must be less than or equal to 2x the top wick). Default is 2
Returns: (series bool) True when pattern detected
dLab(showLabel, labelColor, textColor)
Produces "Doji" identifier label
Parameters:
showLabel (bool) : (series bool) Shows label when input is true. Default is false
labelColor (color) : (series color) Color of the label border and arrow
textColor (color) : (series color) Text color
Returns: (label) A label visible at the chart level intended for the title pattern
bullEngulf(maxRejectWick, mustEngulfWick)
Detects "Bullish Engulfing" candle patterns
Parameters:
maxRejectWick (float) : (float) Maximum rejection wick size.
The maximum wick size as a percentge of body size allowable for a top wick on the resolution candle of the pattern. 0.0 disables the filter.
eg. 50 allows a top wick half the size of the body. Default is 0% (Disables wick detection).
mustEngulfWick (bool) : (bool) input to only detect setups that close above the high prior effectively engulfing the candle in its entirety. Default is false
Returns: (series bool) True when pattern detected
bewLab(showLabel, labelColor, textColor)
Produces "Bullish Engulfing" identifier label
Parameters:
showLabel (bool) : (series bool) Shows label when input is true. Default is false
labelColor (color) : (series color) Color of the label border and arrow
textColor (color) : (series color) Text color
Returns: (label) A label visible at the chart level intended for the title pattern
bearEngulf(maxRejectWick, mustEngulfWick)
Detects "Bearish Engulfing" candle patterns
Parameters:
maxRejectWick (float) : (float) Maximum rejection wick size.
The maximum wick size as a percentge of body size allowable for a bottom wick on the resolution candle of the pattern. 0.0 disables the filter.
eg. 50 allows a botom wick half the size of the body. Default is 0% (Disables wick detection).
mustEngulfWick (bool) : (bool) Input to only detect setups that close below the low prior effectively engulfing the candle in its entirety. Default is false
Returns: (series bool) True when pattern detected
bebLab(showLabel, labelColor, textColor)
Produces "Bearish Engulfing" identifier label
Parameters:
showLabel (bool) : (series bool) Shows label when input is true. Default is false
labelColor (color) : (series color) Color of the label border and arrow
textColor (color) : (series color) Text color
Returns: (label) A label visible at the chart level intended for the title pattern
hammer(ratio, shadowPercent)
Detects "Hammer" candle patterns
Parameters:
ratio (float) : (float) The relationship of body to candle size (ie. body is 33% of total candle size). Default is 33%.
shadowPercent (float) : (float) The maximum allowable top wick size as a percentage of body size. Default is 5%.
Returns: (series bool) True when pattern detected
hLab(showLabel, labelColor, textColor)
Produces "Hammer" identifier label
Parameters:
showLabel (bool) : (series bool) Shows label when input is true. Default is false
labelColor (color) : (series color) Color of the label border and arrow
textColor (color) : (series color) Text color
Returns: (label) A label visible at the chart level intended for the title pattern
star(ratio, shadowPercent)
Detects "Star" candle patterns
Parameters:
ratio (float) : (float) The relationship of body to candle size (ie. body is 33% of total candle size). Default is 33%.
shadowPercent (float) : (float) The maximum allowable bottom wick size as a percentage of body size. Default is 5%.
Returns: (series bool) True when pattern detected
ssLab(showLabel, labelColor, textColor)
Produces "Star" identifier label
Parameters:
showLabel (bool) : (series bool) Shows label when input is true. Default is false
labelColor (color) : (series color) Color of the label border and arrow
textColor (color) : (series color) Text color
Returns: (label) A label visible at the chart level intended for the title pattern
dragonflyDoji()
Detects "Dragonfly Doji" candle patterns
Returns: (series bool) True when pattern detected
ddLab(showLabel, labelColor, textColor)
Produces "Dragonfly Doji" identifier label
Parameters:
showLabel (bool) : (series bool) Shows label when input is true. Default is false
labelColor (color) : (series color) Color of the label border and arrow
textColor (color)
Returns: (label) A label visible at the chart level intended for the title pattern
gravestoneDoji()
Detects "Gravestone Doji" candle patterns
Returns: (series bool) True when pattern detected
gdLab(showLabel, labelColor, textColor)
Produces "Gravestone Doji" identifier label
Parameters:
showLabel (bool) : (series bool) Shows label when input is true. Default is false
labelColor (color) : (series color) Color of the label border and arrow
textColor (color) : (series color) Text color
Returns: (label) A label visible at the chart level intended for the title pattern
tweezerBottom(closeUpperHalf)
Detects "Tweezer Bottom" candle patterns
Parameters:
closeUpperHalf (bool) : (bool) input to only detect setups that close above the mid-point of the candle prior increasing its bullish tendancy. Default is false
Returns: (series bool) True when pattern detected
tbLab(showLabel, labelColor, textColor)
Produces "Tweezer Bottom" identifier label
Parameters:
showLabel (bool) : (series bool) Shows label when input is true. Default is false
labelColor (color) : (series color) Color of the label border and arrow
textColor (color) : (series color) Text color
Returns: (label) A label visible at the chart level intended for the title pattern
tweezerTop(closeLowerHalf)
Detects "TweezerTop" candle patterns
Parameters:
closeLowerHalf (bool) : (bool) input to only detect setups that close below the mid-point of the candle prior increasing its bearish tendancy. Default is false
Returns: (series bool) True when pattern detected
ttLab(showLabel, labelColor, textColor)
Produces "TweezerTop" identifier label
Parameters:
showLabel (bool) : (series bool) Shows label when input is true. Default is false
labelColor (color) : (series color) Color of the label border and arrow
textColor (color) : (series color) Text color
Returns: (label) A label visible at the chart level intended for the title pattern
spinningTopBull(wickSize)
Detects "Bullish Spinning Top" candle patterns
Parameters:
wickSize (float) : (float) input to adjust detection of the size of the top wick/ bottom wick as a percent of total candle size. Default is 34%, which ensures the wicks are both larger than the body.
Returns: (series bool) True when pattern detected
stwLab(showLabel, labelColor, textColor)
Produces "Bullish Spinning Top" identifier label
Parameters:
showLabel (bool) : (series bool) Shows label when input is true. Default is false
labelColor (color) : (series color) Color of the label border and arrow
textColor (color) : (series color) Text color
Returns: (label) A label visible at the chart level intended for the title pattern
spinningTopBear(wickSize)
Detects "Bearish Spinning Top" candle patterns
Parameters:
wickSize (float) : (float) input to adjust detection of the size of the top wick/ bottom wick as a percent of total candle size. Default is 34%, which ensures the wicks are both larger than the body.
Returns: (series bool) True when pattern detected
stbLab(showLabel, labelColor, textColor)
Produces "Bearish Spinning Top" identifier label
Parameters:
showLabel (bool) : (series bool) Shows label when input is true. Default is false
labelColor (color) : (series color) Color of the label border and arrow
textColor (color) : (series color) Text color
Returns: (label) A label visible at the chart level intended for the title pattern
spinningTop(wickSize)
Detects "Spinning Top" candle patterns
Parameters:
wickSize (float) : (float) input to adjust detection of the size of the top wick/ bottom wick as a percent of total candle size. Default is 34%, which ensures the wicks are both larger than the body.
Returns: (series bool) True when pattern detected
stLab(showLabel, labelColor, textColor)
Produces "Spinning Top" identifier label
Parameters:
showLabel (bool) : (series bool) Shows label when input is true. Default is false
labelColor (color) : (series color) Color of the label border and arrow
textColor (color) : (series color) Text color
Returns: (label) A label visible at the chart level intended for the title pattern
morningStar()
Detects "Bullish Morning Star" candle patterns
Returns: (series bool) True when pattern detected
msLab(showLabel, labelColor, textColor)
Produces "Bullish Morning Star" identifier label
Parameters:
showLabel (bool) : (series bool) Shows label when input is true. Default is false
labelColor (color) : (series color) Color of the label border and arrow
textColor (color) : (series color) Text color
Returns: (label) A label visible at the chart level intended for the title pattern
eveningStar()
Detects "Bearish Evening Star" candle patterns
Returns: (series bool) True when pattern detected
esLab(showLabel, labelColor, textColor)
Produces "Bearish Evening Star" identifier label
Parameters:
showLabel (bool) : (series bool) Shows label when input is true. Default is false
labelColor (color) : (series color) Color of the label border and arrow
textColor (color) : (series color) Text color
Returns: (label) A label visible at the chart level intended for the title pattern
haramiBull()
Detects "Bullish Harami" candle patterns
Returns: (series bool) True when pattern detected
hwLab(showLabel, labelColor, textColor)
Produces "Bullish Harami" identifier label
Parameters:
showLabel (bool) : (series bool) Shows label when input is true. Default is false
labelColor (color) : (series color) Color of the label border and arrow
textColor (color) : (series color) Text color
Returns: (label) A label visible at the chart level intended for the title pattern
haramiBear()
Detects "Bearish Harami" candle patterns
Returns: (series bool) True when pattern detected
hbLab(showLabel, labelColor, textColor)
Produces "Bearish Harami" identifier label
Parameters:
showLabel (bool) : (series bool) Shows label when input is true. Default is false
labelColor (color) : (series color) Color of the label border and arrow
textColor (color) : (series color) Text color
Returns: (label) A label visible at the chart level intended for the title pattern
haramiBullCross()
Detects "Bullish Harami Cross" candle patterns
Returns: (series bool) True when pattern detected
hcwLab(showLabel, labelColor, textColor)
Produces "Bullish Harami Cross" identifier label
Parameters:
showLabel (bool) : (series bool) Shows label when input is true. Default is false
labelColor (color) : (series color) Color of the label border and arrow
textColor (color) : (series color) Text color
Returns: (label) A label visible at the chart level intended for the title pattern
haramiBearCross()
Detects "Bearish Harami Cross" candle patterns
Returns: (series bool) True when pattern detected
hcbLab(showLabel, labelColor, textColor)
Produces "Bearish Harami Cross" identifier label
Parameters:
showLabel (bool) : (series bool) Shows label when input is true. Default is false
labelColor (color) : (series color) Color of the label border and arrow
textColor (color)
Returns: (label) A label visible at the chart level intended for the title pattern
marubullzu()
Detects "Bullish Marubozu" candle patterns
Returns: (series bool) True when pattern detected
mwLab(showLabel, labelColor, textColor)
Produces "Bullish Marubozu" identifier label
Parameters:
showLabel (bool) : (series bool) Shows label when input is true. Default is false
labelColor (color) : (series color) Color of the label border and arrow
textColor (color) : (series color) Text color
Returns: (label) A label visible at the chart level intended for the title pattern
marubearzu()
Detects "Bearish Marubozu" candle patterns
Returns: (series bool) True when pattern detected
mbLab(showLabel, labelColor, textColor)
Produces "Bearish Marubozu" identifier label
Parameters:
showLabel (bool) : (series bool) Shows label when input is true. Default is false
labelColor (color) : (series color) Color of the label border and arrow
textColor (color) : (series color) Text color
Returns: (label) A label visible at the chart level intended for the title pattern
abandonedBull()
Detects "Bullish Abandoned Baby" candle patterns
Returns: (series bool) True when pattern detected
abwLab(showLabel, labelColor, textColor)
Produces "Bullish Abandoned Baby" identifier label
Parameters:
showLabel (bool) : (series bool) Shows label when input is true. Default is false
labelColor (color) : (series color) Color of the label border and arrow
textColor (color) : (series color) Text color
Returns: (label) A label visible at the chart level intended for the title pattern
abandonedBear()
Detects "Bearish Abandoned Baby" candle patterns
Returns: (series bool) True when pattern detected
abbLab(showLabel, labelColor, textColor)
Produces "Bearish Abandoned Baby" identifier label
Parameters:
showLabel (bool) : (series bool) Shows label when input is true. Default is false
labelColor (color) : (series color) Color of the label border and arrow
textColor (color) : (series color) Text color
Returns: (label) A label visible at the chart level intended for the title pattern
piercing()
Detects "Piercing" candle patterns
Returns: (series bool) True when pattern detected
pLab(showLabel, labelColor, textColor)
Produces "Piercing" identifier label
Parameters:
showLabel (bool) : (series bool) Shows label when input is true. Default is false
labelColor (color) : (series color) Color of the label border and arrow
textColor (color) : (series color) Text color
Returns: (label) A label visible at the chart level intended for the title pattern
darkCloudCover()
Detects "Dark Cloud Cover" candle patterns
Returns: (series bool) True when pattern detected
dccLab(showLabel, labelColor, textColor)
Produces "Dark Cloud Cover" identifier label
Parameters:
showLabel (bool) : (series bool) Shows label when input is true. Default is false
labelColor (color) : (series color) Color of the label border and arrow
textColor (color) : (series color) Text color
Returns: (label) A label visible at the chart level intended for the title pattern
tasukiBull()
Detects "Upside Tasuki Gap" candle patterns
Returns: (series bool) True when pattern detected
utgLab(showLabel, labelColor, textColor)
Produces "Upside Tasuki Gap" identifier label
Parameters:
showLabel (bool) : (series bool) Shows label when input is true. Default is false
labelColor (color) : (series color) Color of the label border and arrow
textColor (color) : (series color) Text color
Returns: (label) A label visible at the chart level intended for the title pattern
tasukiBear()
Detects "Downside Tasuki Gap" candle patterns
Returns: (series bool) True when pattern detected
dtgLab(showLabel, labelColor, textColor)
Produces "Downside Tasuki Gap" identifier label
Parameters:
showLabel (bool) : (series bool) Shows label when input is true. Default is false
labelColor (color) : (series color) Color of the label border and arrow
textColor (color) : (series color) Text color
Returns: (label) A label visible at the chart level intended for the title pattern
risingThree()
Detects "Rising Three Methods" candle patterns
Returns: (series bool) True when pattern detected
rtmLab(showLabel, labelColor, textColor)
Produces "Rising Three Methods" identifier label
Parameters:
showLabel (bool) : (series bool) Shows label when input is true. Default is false
labelColor (color) : (series color) Color of the label border and arrow
textColor (color) : (series color) Text color
Returns: (label) A label visible at the chart level intended for the title pattern
fallingThree()
Detects "Falling Three Methods" candle patterns
Returns: (series bool) True when pattern detected
ftmLab(showLabel, labelColor, textColor)
Produces "Falling Three Methods" identifier label
Parameters:
showLabel (bool) : (series bool) Shows label when input is true. Default is false
labelColor (color) : (series color) Color of the label border and arrow
textColor (color) : (series color) Text color
Returns: (label) A label visible at the chart level intended for the title pattern
risingWindow()
Detects "Rising Window" candle patterns
Returns: (series bool) True when pattern detected
rwLab(showLabel, labelColor, textColor)
Produces "Rising Window" identifier label
Parameters:
showLabel (bool) : (series bool) Shows label when input is true. Default is false
labelColor (color) : (series color) Color of the label border and arrow
textColor (color) : (series color) Text color
Returns: (label) A label visible at the chart level intended for the title pattern
fallingWindow()
Detects "Falling Window" candle patterns
Returns: (series bool) True when pattern detected
fwLab(showLabel, labelColor, textColor)
Produces "Falling Window" identifier label
Parameters:
showLabel (bool) : (series bool) Shows label when input is true. Default is false
labelColor (color) : (series color) Color of the label border and arrow
textColor (color) : (series color) Text color
Returns: (label) A label visible at the chart level intended for the title pattern
kickingBull()
Detects "Bullish Kicking" candle patterns
Returns: (series bool) True when pattern detected
kwLab(showLabel, labelColor, textColor)
Produces "Bullish Kicking" identifier label
Parameters:
showLabel (bool) : (series bool) Shows label when input is true. Default is false
labelColor (color) : (series color) Color of the label border and arrow
textColor (color) : (series color) Text color
Returns: (label) A label visible at the chart level intended for the title pattern
kickingBear()
Detects "Bearish Kicking" candle patterns
Returns: (series bool) True when pattern detected
kbLab(showLabel, labelColor, textColor)
Produces "Bearish Kicking" identifier label
Parameters:
showLabel (bool) : (series bool) Shows label when input is true. Default is false
labelColor (color) : (series color) Color of the label border and arrow
textColor (color) : (series color) Text color
Returns: (label) A label visible at the chart level intended for the title pattern
lls(ratio)
Detects "Long Lower Shadow" candle patterns
Parameters:
ratio (float) : (float) A relationship of the lower wick to the overall candle size expressed as a percent. Default is 75%
Returns: (series bool) True when pattern detected
llsLab(showLabel, labelColor, textColor)
Produces "Long Lower Shadow" identifier label
Parameters:
showLabel (bool) : (series bool) Shows label when input is true. Default is false
labelColor (color) : (series color) Color of the label border and arrow
textColor (color) : (series color) Text color
Returns: (label) A label visible at the chart level intended for the title pattern
lus(ratio)
Detects "Long Upper Shadow" candle patterns
Parameters:
ratio (float) : (float) A relationship of the upper wick to the overall candle size expressed as a percent. Default is 75%
Returns: (series bool) True when pattern detected
lusLab(showLabel, labelColor, textColor)
Produces "Long Upper Shadow" identifier label
Parameters:
showLabel (bool) : (series bool) Shows label when input is true. Default is false
labelColor (color) : (series color) Color of the label border and arrow
textColor (color) : (series color) Text color
Returns: (label) A label visible at the chart level intended for the title pattern
bullNeck()
Detects "Bullish On Neck" candle patterns
Returns: (series bool) True when pattern detected
nwLab(showLabel, labelColor, textColor)
Produces "Bullish On Neck" identifier label
Parameters:
showLabel (bool) : (series bool) Shows label when input is true. Default is false
labelColor (color) : (series color) Color of the label border and arrow
textColor (color) : (series color) Text color
Returns: (label) A label visible at the chart level intended for the title pattern
bearNeck()
Detects "Bearish On Neck" candle patterns
Returns: (series bool) True when pattern detected
nbLab(showLabel, labelColor, textColor)
Produces "Bearish On Neck" identifier label
Parameters:
showLabel (bool) : (series bool) Shows label when input is true. Default is false
labelColor (color) : (series color) Color of the label border and arrow
textColor (color) : (series color) Text color
Returns: (label) A label visible at the chart level intended for the title pattern
soldiers(wickSize)
Detects "Three White Soldiers" candle patterns
Parameters:
wickSize (float) : (float) Maximum allowable top wick size throughout pattern expressed as a percent of total candle height. Default is 5%
Returns: (series bool) True when pattern detected
wsLab(showLabel, labelColor, textColor)
Produces "Three White Soldiers" identifier label
Parameters:
showLabel (bool) : (series bool) Shows label when input is true. Default is false
labelColor (color) : (series color) Color of the label border and arrow
textColor (color) : (series color) Text color
Returns: (label) A label visible at the chart level intended for the title pattern
crows(wickSize)
Detects "Three Black Crows" candle patterns
Parameters:
wickSize (float) : (float) Maximum allowable bottom wick size throughout pattern expressed as a percent of total candle height. Default is 5%
Returns: (series bool) True when pattern detected
bcLab(showLabel, labelColor, textColor)
Produces "Three Black Crows" identifier label
Parameters:
showLabel (bool) : (series bool) Shows label when input is true. Default is false
labelColor (color) : (series color) Color of the label border and arrow
textColor (color) : (series color) Text color
Returns: (label) A label visible at the chart level intended for the title pattern
triStarBull()
Detects "Bullish Tri-Star" candle patterns
Returns: (series bool) True when pattern detected
tswLab(showLabel, labelColor, textColor)
Produces "Bullish Tri-Star" identifier label
Parameters:
showLabel (bool) : (series bool) Shows label when input is true. Default is false
labelColor (color) : (series color) Color of the label border and arrow
textColor (color) : (series color) Text color
Returns: (label) A label visible at the chart level intended for the title pattern
triStarBear()
Detects "Bearish Tri-Star" candle patterns
Returns: (series bool) True when pattern detected
tsbLab(showLabel, labelColor, textColor)
Produces "Bearish Tri-Star" identifier label
Parameters:
showLabel (bool) : (series bool) Shows label when input is true. Default is false
labelColor (color) : (series color) Color of the label border and arrow
textColor (color) : (series color) Text color
Returns: (label) A label visible at the chart level intended for the title pattern
insideBar()
Detects "Inside Bar" candle patterns
Returns: (series bool) True when pattern detected
insLab(showLabel, labelColor, textColor)
Produces "Inside Bar" identifier label
Parameters:
showLabel (bool) : (series bool) Shows label when input is true. Default is false
labelColor (color) : (series color) Color of the label border and arrow
textColor (color) : (series color) Text color
Returns: (label) A label visible at the chart level intended for the title pattern
doubleInside()
Detects "Double Inside Bar" candle patterns
Returns: (series bool) True when pattern detected
dinLab(showLabel, labelColor, textColor)
Produces "Double Inside Bar" identifier label
Parameters:
showLabel (bool) : (series bool) Shows label when input is true. Default is false
labelColor (color) : (series color) Color of the label border and arrow
textColor (color) : (series color) Text color
Returns: (label) A label visible at the chart level intended for the title pattern
wrap(cond, barsBack, borderColor, bgColor)
Produces a box wrapping the highs and lows over the look back.
Parameters:
cond (bool) : (series bool) Condition under which to draw the box.
barsBack (int) : (series int) the number of bars back to begin drawing the box.
borderColor (color) : (series color) Color of the four borders. Optional. The default is `color.gray` with a 45% transparency.
bgColor (color)
Returns: (box) A box whom's top and bottom are above and below the highest and lowest points over the lookback
topWick()
Returns the top wick size of the current candle
Returns: (series float) A value equivelent to the distance from the top of the candle body to its high
bottomWick()
Returns the bottom wick size of the current candle
Returns: (series float) A value equivelent to the distance from the bottom of the candle body to its low
body()
Returns the body size of the current candle
Returns: (series float) A value equivelent to the distance between the top and the bottom of the candle body
highestBody()
Returns the highest body of the current candle
Returns: (series float) A value equivelent to the highest body, whether it is the open or the close
lowestBody()
Returns the lowest body of the current candle
Returns: (series float) A value equivelent to the highest body, whether it is the open or the close
barRange()
Returns the height of the current candle
Returns: (series float) A value equivelent to the distance between the high and the low of the candle
bodyPct()
Returns the body size as a percent
Returns: (series float) A value equivelent to the percentage of body size to the overall candle size
midBody()
Returns the price of the mid-point of the candle body
Returns: (series float) A value equivelent to the center point of the distance bewteen the body low and the body high
bodyupGap()
Returns true if there is a gap up between the real body of the current candle in relation to the candle prior
Returns: (series bool) True if there is a gap up and no overlap in the real bodies of the current candle and the preceding candle
bodydwnGap()
Returns true if there is a gap down between the real body of the current candle in relation to the candle prior
Returns: (series bool) True if there is a gap down and no overlap in the real bodies of the current candle and the preceding candle
gapUp()
Returns true if there is a gap down between the real body of the current candle in relation to the candle prior
Returns: (series bool) True if there is a gap down and no overlap in the real bodies of the current candle and the preceding candle
gapDwn()
Returns true if there is a gap down between the real body of the current candle in relation to the candle prior
Returns: (series bool) True if there is a gap down and no overlap in the real bodies of the current candle and the preceding candle
dojiBody()
Returns true if the candle body is a doji
Returns: (series bool) True if the candle body is a doji. Defined by a body that is 5% of total candle size
Elliott Wave + SMC Fusion # Elliott Wave + SMC Fusion
## TITLE:
Elliott Wave + Smart Money Concepts Fusion
---
## SHORT DESCRIPTION:
Automated Elliott Wave pattern detection with Smart Money Concepts confirmation, EWO oscillator integration, and confluence scoring system.
---
## FULL DESCRIPTION:
### 📊 OVERVIEW
This indicator combines three powerful trading methodologies into a unified system:
- **Elliott Wave Theory** - Automated detection of Wave 1-2 impulse patterns
- **Smart Money Concepts (SMC)** - Order Blocks and Fair Value Gaps for institutional confirmation
- **Elliott Wave Oscillator (EWO)** - Momentum-based signal validation
The core concept is to identify high-probability Wave 3 entries by detecting completed Wave 1-2 structures and validating them with SMC and momentum indicators.
---
### 🔧 HOW IT WORKS
**1. Pattern Detection (ZigZag Method)**
- Uses pivot high/low detection to identify swing points
- Validates Wave 2 retracement using Fibonacci ratios (default: 38.2% - 88.6%)
- Requires minimum wave size to filter noise
- Applies confirmation bars to avoid premature signals
**2. Wave Projections**
- Wave 3 target: Fibonacci extension of Wave 1 (default: 1.618)
- Wave 4 retracement: Percentage of Wave 3 (default: 38.2%)
- Wave 5 projection: Extension of Wave 1 from Wave 4
**3. Smart Money Validation**
- **Order Blocks**: Identifies last opposing candle before breakout (institutional footprint)
- **Fair Value Gaps**: Detects price imbalances for potential support/resistance
**4. EWO Confirmation**
- Calculates momentum: (EMA5 / EMA34 - 1) × 100
- Signal line crossovers confirm trend direction
- Strong signals occur at extremes (< -13 or > 13 threshold)
**5. Confluence Scoring (0-100%)**
Points awarded for:
- Fibonacci quality of Wave 2 retracement (10-30 pts)
- Order Block presence (15 pts)
- Fair Value Gap presence (10 pts)
- Volume confirmation (10-15 pts)
- Trend alignment with EMA50 (10 pts)
- EWO confirmation (10-20 pts)
---
### 🎯 UNIQUE FEATURES
**Pattern Locking System**
- Once a valid pattern is detected, it locks until:
- Pattern invalidates (price breaks Wave 0)
- Pattern completes (Wave 5 reached)
- Auto-timeout (configurable bars)
- Prevents rapid signal flipping and false alerts
**Signal Stability Controls**
- Adjustable cooldown between signals (default: 20 bars)
- Minimum bar distance between wave points
- Direction change requirement option
- Confirmation bars after Wave 2 formation
**Visual Wave Tracking**
- Solid lines for impulse waves (0→1, 2→3, 4→5)
- Dashed lines for corrective waves (1→2, 3→4)
- Numbered labels on each wave point
- Real-time projection lines to targets
**Comprehensive Dashboard**
- Current wave status and lock state
- Pattern grade (A+ to D based on confluence)
- Projected vs actual wave levels (✓ when completed)
- SMC confirmation status
- Risk/Reward ratio calculation
- EWO trend direction
---
### 📈 TRADING APPLICATION
**Entry Strategy**
- Wait for Wave 1-2 pattern detection (diamond signal)
- Check confluence score (>65% = higher probability)
- Verify EWO alignment with pattern direction
- Enter after 30% retracement of Wave 2 (customizable)
**Risk Management**
- Stop Loss: Below Wave 0 (with buffer)
- Take Profit 1: Wave 3 projection
- Take Profit 2: Wave 5 projection
- R:R displayed in dashboard
**Invalidation Rules**
- Price breaks below Wave 0 (bullish) or above (bearish)
- Wave 2 level violated before Wave 3 forms
- Pattern timeout exceeded
---
### ⚙️ KEY SETTINGS
**Elliott Wave**
- ZigZag Length: Pivot detection sensitivity
- Fib Tolerance: Acceptable retracement range
- Min Wave Size: Filter small movements
**Signal Stability**
- Signal Cooldown: Minimum bars between signals
- Lock Pattern Until Invalid: Prevent signal changes
- Confirmation Bars: Wait after Wave 2
**Wave Projection**
- Wave 3/4/5 Fibonacci extensions
- Projection display distance
**EWO Settings**
- Fast/Slow EMA lengths
- Signal smoothing
- Strength threshold
**SMC Settings**
- Order Block lookback period
- FVG minimum size percentage
---
### 🔔 ALERTS
- New bullish/bearish pattern detected
- High confluence setup (>75%)
- Pattern invalidation
- Wave completion
---
### ⚠️ IMPORTANT NOTES
- This indicator identifies **potential** Elliott Wave patterns based on mathematical rules
- Elliott Wave analysis is subjective - patterns may be interpreted differently
- Always combine with other analysis methods and proper risk management
- Past pattern performance does not guarantee future results
- Pattern locking prevents repainting but delays new pattern detection
- Best used on higher timeframes (1H+) for cleaner wave structures
---
### 📚 METHODOLOGY REFERENCES
**Elliott Wave Theory**
- Wave 2 typically retraces 38.2% - 88.6% of Wave 1
- Wave 3 is often the strongest, extending 161.8% of Wave 1
- Wave 4 usually retraces 38.2% of Wave 3
- Wave 5 completes the impulse structure
**Smart Money Concepts**
- Order Blocks represent institutional supply/demand zones
- FVGs indicate price inefficiencies that may act as magnets
**Elliott Wave Oscillator**
- Developed to identify wave momentum
- Crossovers signal potential wave transitions
- Extreme readings often coincide with wave completions
---
### 🎨 VISUAL ELEMENTS
- **Green**: Bullish patterns and projections
- **Red**: Bearish patterns and projections
- **Orange**: Wave projection levels
- **Purple**: Order Block zones
- **Yellow**: Fair Value Gaps
- **Blue**: Entry levels
- **Diamond shapes**: New pattern signals
- **Triangle shapes**: EWO crossover signals
---
### 💡 TIPS FOR BEST RESULTS
1. Use on liquid markets with clear trend behavior
2. Higher timeframes produce more reliable patterns
3. Look for confluence scores above 65%
4. Verify EWO alignment before entry
5. Consider market context (overall trend, key levels)
6. Adjust ZigZag length based on your trading style
7. Increase cooldown period for longer-term signals
---
**Indicator Type**: Overlay
**Markets**: All (Crypto, Forex, Stocks, Commodities)
**Timeframes**: All (1H+ recommended)
**Style**: Pattern Recognition + Momentum + Price Action
N Bar Reversal Detector [LuxAlgo]The N Bar Reversal Detector is designed to detect and highlight N-bar reversal patterns in user charts, where N represents the length of the candle sequence used to detect the patterns. The script incorporates various trend indicators to filter out detected signals and offers a range of customizable settings to fit different trading strategies.
🔶 USAGE
The N-bar reversal pattern extends the popular 3-bar reversal pattern. While the 3-bar reversal pattern involves identifying a sequence of three bars signaling a potential trend reversal, the N-bar reversal pattern builds on this concept by incorporating additional bars based on user settings. This provides a more comprehensive indication of potential trend reversals. The script automates the identification of these patterns and generates clear, visually distinct signals to highlight potential trend changes.
When a reversal chart pattern is confirmed and aligns with the price action, the pattern's boundaries are extended to create levels. The upper boundary serves as resistance, while the lower boundary acts as support.
The script allows users to filter patterns based on the trend direction identified by various trend indicators. Users can choose to view patterns that align with the detected trend or those that are contrary to it.
🔶 DETAILS
🔹 The N-bar Reversal Pattern
The N-bar reversal pattern is a technical analysis tool designed to signal potential trend reversals in the market. It consists of N consecutive bars, with the first N-1 bars used to identify the prevailing trend and the Nth bar confirming the reversal. Here’s a detailed look at the pattern:
Bullish Reversal : In a bullish reversal setup, the first bar is the highest among the first N-1 bars, indicating a prevailing downtrend. Most of the remaining bars in this sequence should be bearish (closing lower than where they opened), reinforcing the existing downward momentum. The Nth (most recent) bar confirms a bullish reversal if its high price is higher than the high of the first bar in the sequence (standard pattern). For a stronger signal, the closing price of the Nth bar should also be higher than the high of the first bar.
Bearish Reversal : In a bearish reversal setup, the first bar is the lowest among the first N-1 bars, indicating a prevailing uptrend. Most of the remaining bars in this sequence should be bullish (closing higher than where they opened), reinforcing the existing upward momentum. The Nth bar confirms a bearish reversal if its low price is lower than the low of the first bar in the sequence (standard pattern). For a stronger signal, the closing price of the Nth bar should also be lower than the low of the first bar.
🔹 Min Percentage of Required Candles
This parameter specifies the minimum percentage of candles that must be bullish (for a bearish reversal) or bearish (for a bullish reversal) among the first N-1 candles in a pattern. For higher values of N, it becomes more challenging for all of the first N-1 candles to be consistently bullish or bearish. By setting a percentage value, P, users can adjust the requirement so that only a minimum of P percent of the first N-1 candles need to meet the bullish or bearish condition. This allows for greater flexibility in pattern recognition, accommodating variations in market conditions.
🔶 SETTINGS
Pattern Type: Users can choose the type of the N-bar reversal patterns to detect: Normal, Enhanced, or All. "Normal" detects patterns that do not necessarily surpass the high/low of the first bar. "Enhanced" detects patterns where the last bar surpasses the high/low of the first bar. "All" detects both Normal and Enhanced patterns.
Reversal Pattern Sequence Length: Specifies the number of candles (N) in the sequence used to identify a reversal pattern.
Min Percentage of Required Candles: Sets the minimum percentage of the first N-1 candles that must be bullish (for a bearish reversal) or bearish (for a bullish reversal) to qualify as a valid reversal pattern.
Derived Support and Resistance: Toggles the visibility of the support and resistance levels/zones.
🔹 Trend Filtering
Filtering: Allows users to filter patterns based on the trend indicators: Moving Average Cloud, Supertrend, and Donchian Channels. The "Aligned" option only detects patterns that align with the trend and conversely, the "Opposite" option detects patterns that go against the trend.
🔹 Trend Indicator Settings
Moving Average Cloud: Allows traders to choose the type of moving averages (SMA, EMA, HMA, etc.) and set the lengths for fast and slow moving averages.
Supertrend: Options to set the ATR length and factor for Supertrend.
Donchian Channels: Option to set the length for the channel calculation.
🔶 RELATED SCRIPTS
Reversal-Candlestick-Structure.
Reversal-Signals.
Flags and Pennants [Trendoscope®]🎲 An extension to Chart Patterns based on Trend Line Pairs - Flags and Pennants
After exploring Algorithmic Identification and Classification of Chart Patterns and developing Auto Chart Patterns Indicator , we now delve into extensions of these patterns, focusing on Flag and Pennant Chart Patterns. These patterns evolve from basic trend line pair-based structures, often influenced by preceding market impulses.
🎲 Identification rules for the Extension Patterns
🎯 Identify the existence of Base Chart Patterns
Before identifying the flag and pennant patterns, we first need to identify the existence of following base trend line pair based converging or parallel patterns.
Ascending Channel
Descending Channel
Rising Wedge (Contracting)
Falling Wedge (Contracting)
Converging Triangle
Descending Triangle (Contracting)
Ascending Triangle (Contracting)
🎯 Identifying Extension Patterns.
The key to pinpointing these patterns lies in spotting a strong impulsive wave – akin to a flagpole – preceding a base pattern. This setup suggests potential for an extension pattern:
A Bullish Flag emerges from a positive impulse followed by a descending channel or a falling wedge
A Bearish Flag appears after a negative impulse leading to an ascending channel or a rising wedge.
A Bullish Pennant is indicated by a positive thrust preceding a converging triangle or ascending triangle.
A Bearish Pennant follows a negative impulse and a converging or descending triangle.
🎲 Pattern Classifications and Characteristics
🎯 Bullish Flag Pattern
Characteristics of Bullish Flag Pattern are as follows
Starts with a positive impulse wave
Immediately followed by either a short descending channel or a falling wedge
Here is an example of Bullish Flag Pattern
🎯 Bearish Flag Pattern
Characteristics of Bearish Flag Pattern are as follows
Starts with a negative impulse wave
Immediately followed by either a short ascending channel or a rising wedge
Here is an example of Bearish Flag Pattern
🎯 Bullish Pennant Pattern
Characteristics of Bullish Pennant Pattern are as follows
Starts with a positive impulse wave
Immediately followed by either a converging triangle or ascending triangle pattern.
Here is an example of Bullish Pennant Pattern
🎯 Bearish Pennant Pattern
Characteristics of Bearish Pennant Pattern are as follows
Starts with a negative impulse wave
Immediately followed by either a converging triangle or a descending converging triangle pattern.
Here is an example of Bearish Pennant Pattern
🎲 Trading Extension Patterns
In a strong market trend, it's common to see temporary periods of consolidation, forming patterns that either converge or range, often counter to the ongoing trend direction. Such pauses may lay the groundwork for the continuation of the trend post-breakout. The assumption that the trend will resume shapes the underlying bias of Flag and Pennant patterns
It's important, however, not to base decisions solely on past trends. Conducting personal back testing is crucial to ascertain the most effective entry and exit strategies for these patterns. Remember, the behavior of these patterns can vary significantly with the volatility of the asset and the specific timeframe being analyzed.
Approach the interpretation of these patterns with prudence, considering that market dynamics are subject to a wide array of influencing factors that might deviate from expected outcomes. For investors and traders, it's essential to engage in thorough back testing, establishing entry points, stop-loss orders, and target goals that align with your individual trading style and risk appetite. This step is key to assessing the viability of these patterns in line with your personal trading strategies and goals.
It's fairly common to witness a breakout followed by a swift price reversal after these patterns have formed. Additionally, there's room for innovation in trading by going against the bias if the breakout occurs in the opposite direction, specially when the trend before the formation of the pattern is in against the pattern bias.
🎲 Cheat Sheet
🎲 Indicator Settings
Custom Source : Enables users to set custom OHLC - this means, the indicator can also be applied on oscillators and other indicators having OHLC values.
Zigzag Settings : Allows users to enable different zigzag base and set length and depth for each zigzag.
Scanning Settings : Pattern scanning settings set some parameters that define the pattern recognition process.
Display Settings : Determine the display of indicators including colors, lines, labels etc.
Backtest Settings : Allows users to set a predetermined back test bars so that the indicator will not time out while trying to run for all available bars.
Auto Chart Patterns [Trendoscope®]🎲 Introducing our most comprehensive automatic chart pattern recognition indicator.
Last week, we published an idea on how to algorithmically identify and classify chart patterns.
This indicator is nothing but the initial implementation of the idea. Whatever we explained in that publication that users can do manually to identify and classify the pattern, this indicator will do it for them.
🎲 Process of identifying the patterns.
The bulk of the logic is implemented as part of the library - chartpatterns . The indicator is a shell that captures the user inputs and makes use of the library to deliver the outcome.
🎯 Here is the list of steps executed to identify the patterns on the chart.
Derive multi level recursive zigzag for multiple base zigzag length and depth combinations.
For each zigzag and level, check the last 5 pivots or 6 pivots (based on the input setting) for possibility of valid trend line pairs.
If there is a valid trend line pair, then there is pattern.
🎯 Rules for identifying the valid trend line pairs
There should be at least two trend lines that does not intersect between the starting and ending pivots.
The upper trend line should touch all the pivot highs of the last 5 or 6 pivots considered for scanning the patterns
The lower trend line should touch all the pivot lows of the last 5 or 6 pivots considered for scanning the patterns.
None of the candles from starting pivot to ending pivot should fall outside the trend lines (above upper trend line and below lower trend line)
The existence of a valid trend line pair signifies the existence of pattern. What type of pattern it is, to identify that we need to go through the classification rules.
🎲 Process of classification of the patterns.
We need to gather the following information before we classify the pattern.
Direction of upper trend line - rising, falling or flat
Direction of lower trend line - rising, falling or flat
Characteristics of trend line pair - converging, expanding, parallel
🎯 Broader Classifications
Broader classification would include the following types.
🚩 Classification Based on Geometrical Shapes
This includes
Wedges - both trend lines are moving in the same direction. But, the trend lines are either converging or diverging and not parallel to each other.
Triangles - trend lines are moving in different directions. Naturally, they are either converging or diverging.
Channels - Both trend lines are moving in the same direction, and they are parallel to each other within the limits of error.
🚩 Classification Based on Pattern Direction
This includes
Ascending/Rising Patterns - No trend line is moving in the downward direction and at least one trend line is moving upwards
Descending/Falling Patterns - No trend line is moving in the upward direction, and at least one trend line is moving downwards.
Flat - Both Trend Lines are Flat
Bi-Directional - Both trend lines are moving in opposite direction and none of them is flat.
🚩 Classification Based on Formation Dynamics
This includes
Converging Patterns - Trend Lines are converging towards each other
Diverging Patterns - Trend Lines are diverging from each other
Parallel Patterns - Trend Lines are parallel to each others
🎯 Individual Pattern Types
Now we have broader classifications. Let's go through in detail to find out fine-grained classification of each individual patterns.
🚩 Ascending/Uptrend Channel
This pattern belongs to the broader classifications - Ascending Patterns, Parallel Patterns and Channels. The rules for the Ascending/Uptrend Channel pattern are as below
Both trend lines are rising
Trend lines are parallel to each other
🚩 Descending/Downtrend Channel
This pattern belongs to the broader classifications - Descending Patterns, Parallel Patterns and Channels. The rules for the Descending/Downtrend Channel pattern are as below
Both trend lines are falling
Trend lines are parallel to each other
🚩 Ranging Channel
This pattern belongs to the broader classifications - Flat Patterns, Parallel Patterns and Channels. The rules for the Ranging Channel pattern are as below
Both trend lines are flat
Trend lines are parallel to each other
🚩 Rising Wedge - Expanding
This pattern belongs to the broader classifications - Rising Patterns, Diverging Patterns and Wedges. The rules for the Expanding Rising Wedge pattern are as below
Both trend lines are rising
Trend Lines are diverging.
🚩 Rising Wedge - Contracting
This pattern belongs to the broader classifications - Rising Patterns, Converging Patterns and Wedges. The rules for the Contracting Rising Wedge pattern are as below
Both trend lines are rising
Trend Lines are converging.
🚩 Falling Wedge - Expanding
This pattern belongs to the broader classifications - Falling Patterns, Diverging Patterns and Wedges. The rules for the Expanding Falling Wedge pattern are as below
Both trend lines are falling
Trend Lines are diverging.
🚩 Falling Wedge - Contracting
This pattern belongs to the broader classifications - Falling Patterns, Converging Patterns and Wedges. The rules for the Converging Falling Wedge are as below
Both trend lines are falling
Trend Lines are converging.
🚩 Rising/Ascending Triangle - Expanding
This pattern belongs to the broader classifications - Rising Patterns, Diverging Patterns and Triangles. The rules for the Expanding Ascending Triangle pattern are as below
The upper trend line is rising
The lower trend line is flat
Naturally, the trend lines are diverging from each other
🚩 Rising/Ascending Triangle - Contracting
This pattern belongs to the broader classifications - Rising Patterns, Converging Patterns and Triangles. The rules for the Contracting Ascending Triangle pattern are as below
The upper trend line is flat
The lower trend line is rising
Naturally, the trend lines are converging.
🚩 Falling/Descending Triangle - Expanding
This pattern belongs to the broader classifications - Falling Patterns, Diverging Patterns and Triangles. The rules for the Expanding Descending Triangle pattern are as below
The upper trend line is flat
The lower trend line is falling
Naturally, the trend lines are diverging from each other
🚩 Falling/Descending Triangle - Contracting
This pattern belongs to the broader classifications - Falling Patterns, Converging Patterns and Triangles. The rules for the Contracting Descending Triangle pattern are as below
The upper trend line is falling
The lower trend line is flat
Naturally, the trend lines are converging.
🚩 Converging Triangle
This pattern belongs to the broader classifications - Bi-Directional Patterns, Converging Patterns and Triangles. The rules for the Converging Triangle pattern are as below
The upper trend line is falling
The lower trend line is rising
Naturally, the trend lines are converging.
🚩 Diverging Triangle
This pattern belongs to the broader classifications - Bi-Directional Patterns, Diverging Patterns and Triangles. The rules for the Diverging Triangle pattern are as below
The upper trend line is rising
The lower trend line is falling
Naturally, the trend lines are diverging from each other.
🎲 Indicator Settings - Auto Chart Patterns
🎯 Zigzag Settings
Zigzag settings allow users to select the number of zigzag combinations to be used for pattern scanning, and also allows users to set zigzag length and depth combinations.
🎯 Scanning Settings
Number of Pivots - This can be either 5 or 6. Represents the number of pivots used for identification of patterns.
Error Threshold - Error threshold used for initial trend line validation.
Flat Threshold - Flat angle threshold is used to identify the slope and direction of trend lines.
Last Pivot Direction - Filters patterns based on the last pivot direction. The values can be up, down, both, or custom. When custom is selected, then the individual pattern specific last pivot direction setting is used instead of the generic one.
Verify Bar Ratio - Provides option to ignore extreme patterns where the ratios of zigzag lines are not proportionate to each other.
Avoid Overlap - When selected, the patterns that overlap with existing patterns will be ignored while scanning. Meaning, if the new pattern starting point falls between the start and end of an existing pattern, it will be ignored.
🎯 Group Classification Filters
Allows users to enable disable patterns based on group classifications.
🚩 Geometric Shapes Based Classifications
Wedges - Rising Wedge Expanding, Falling Wedge Expanding, Rising Wedge Contracting, Falling Wedge Contracting.
Channels - Ascending Channel, Descending Channel, Ranging Channel
Triangles - Converging Triangle, Diverging Triangle, Ascending Triangle Expanding, Descending Triangle Expanding, Ascending Triangle Contrcting and Descending Triangle Contracting
🚩 Direction Based Classifications
Rising - Rising Wedge Contracting, Rising Wedge Expanding, Ascending Triangle Contracting, Ascending Triangle Expanding and Ascending Channel
Falling - Falling Wedge Contracting, Falling Wedge Expanding, Descending Triangle Contracting, Descending Triangle Expanding and Descending Channel
Flat/Bi-directional - Ranging Channel, Converging Triangle, Diverging Triangle
🚩 Formation Dynamics Based Classifications
Expanding - Rising Wedge Expanding, Falling Wedge Expanding, Ascending Triangle Expanding, Descending Triangle Expanding, Diverging Triangle
Contracting - Rising Wedge Contracting, Falling Wedge Contracting, Ascending Triangle Contracting, Descending Triangle Contracting, Converging Triangle
Parallel - Ascending Channel, Descending Channgel and Ranging Channel
🎯 Individual Pattern Filters
These settings allow users to enable/disable individual patterns and also set last pivot direction filter individually for each pattern. Individual Last Pivot direction filters are only considered if the main "Last Pivot Direction" filter is set to "custom"
🎯 Display Settings
These are the settings that determine the indicator display. The details are provided in the tooltips and are self explanatory.
🎯 Alerts
A basic alert message is enabled upon detection of new pattern on the chart.
BjCandlePatternsLibrary "BjCandlePatterns"
Patterns is a Japanese candlestick pattern recognition Library for developers. Functions here within detect viable setups in a variety of popular patterns. Please note some patterns are without filters such as comparisons to average candle sizing, or trend detection to allow the author more freedom.
doji(dojiSize, dojiWickSize) Detects "Doji" candle patterns
Parameters:
dojiSize : (float) The relationship of body to candle size (ie. body is 5% of total candle size). Default is 5.0 (5%)
dojiWickSize : (float) Maximum wick size comparative to the opposite wick. (eg. 2 = bottom wick must be less than or equal to 2x the top wick). Default is 2
Returns: (series bool) True when pattern detected
dLab(showLabel, labelColor, textColor) Produces "Doji" identifier label
Parameters:
showLabel : (bool) Shows label when input is true. Default is false
labelColor : (series color) Color of the label border and arrow
textColor : (series color) Text color
Returns: (series label) A label visible at the chart level intended for the title pattern
bullEngulf(maxRejectWick, mustEngulfWick) Detects "Bullish Engulfing" candle patterns
Parameters:
maxRejectWick : (float) Maximum rejection wick size.
The maximum wick size as a percentge of body size allowable for a top wick on the resolution candle of the pattern. 0.0 disables the filter.
eg. 50 allows a top wick half the size of the body. Default is 0% (Disables wick detection).
mustEngulfWick : (bool) input to only detect setups that close above the high prior effectively engulfing the candle in its entirety. Default is false
Returns: (series bool) True when pattern detected
bewLab(showLabel, labelColor, textColor) Produces "Bullish Engulfing" identifier label
Parameters:
showLabel : (bool) Shows label when input is true. Default is false
labelColor : (series color) Color of the label border and arrow
textColor : (series color) Text color
Returns: (series label) A label visible at the chart level intended for the title pattern
bearEngulf(maxRejectWick, mustEngulfWick) Detects "Bearish Engulfing" candle patterns
Parameters:
maxRejectWick : (float) Maximum rejection wick size.
The maximum wick size as a percentge of body size allowable for a bottom wick on the resolution candle of the pattern. 0.0 disables the filter.
eg. 50 allows a botom wick half the size of the body. Default is 0% (Disables wick detection).
mustEngulfWick : (bool) Input to only detect setups that close below the low prior effectively engulfing the candle in its entirety. Default is false
Returns: (series bool) True when pattern detected
bebLab(showLabel, labelColor, textColor) Produces "Bearish Engulfing" identifier label
Parameters:
showLabel : (bool) Shows label when input is true. Default is false
labelColor : (series color) Color of the label border and arrow
textColor : (series color) Text color
Returns: (series label) A label visible at the chart level intended for the title pattern
hammer(ratio, shadowPercent) Detects "Hammer" candle patterns
Parameters:
ratio : (float) The relationship of body to candle size (ie. body is 33% of total candle size). Default is 33%.
shadowPercent : (float) The maximum allowable top wick size as a percentage of body size. Default is 5%.
Returns: (series bool) True when pattern detected
hLab(showLabel, labelColor, textColor) Produces "Hammer" identifier label
Parameters:
showLabel : (bool) Shows label when input is true. Default is false
labelColor : (series color) Color of the label border and arrow
textColor : (series color) Text color
Returns: (series label) A label visible at the chart level intended for the title pattern
star(ratio, shadowPercent) Detects "Star" candle patterns
Parameters:
ratio : (float) The relationship of body to candle size (ie. body is 33% of total candle size). Default is 33%.
shadowPercent : (float) The maximum allowable bottom wick size as a percentage of body size. Default is 5%.
Returns: (series bool) True when pattern detected
ssLab(showLabel, labelColor, textColor) Produces "Star" identifier label
Parameters:
showLabel : (bool) Shows label when input is true. Default is false
labelColor : (series color) Color of the label border and arrow
textColor : (series color) Text color
Returns: (series label) A label visible at the chart level intended for the title pattern
dragonflyDoji() Detects "Dragonfly Doji" candle patterns
Returns: (series bool) True when pattern detected
ddLab(showLabel, labelColor) Produces "Dragonfly Doji" identifier label
Parameters:
showLabel : (bool) Shows label when input is true. Default is false
labelColor : (series color) Color of the label border and arrow
Returns: (series label) A label visible at the chart level intended for the title pattern
gravestoneDoji() Detects "Gravestone Doji" candle patterns
Returns: (series bool) True when pattern detected
gdLab(showLabel, labelColor, textColor) Produces "Gravestone Doji" identifier label
Parameters:
showLabel : (bool) Shows label when input is true. Default is false
labelColor : (series color) Color of the label border and arrow
textColor : (series color) Text color
Returns: (series label) A label visible at the chart level intended for the title pattern
tweezerBottom(closeUpperHalf) Detects "Tweezer Bottom" candle patterns
Parameters:
closeUpperHalf : (bool) input to only detect setups that close above the mid-point of the candle prior increasing its bullish tendancy. Default is false
Returns: (series bool) True when pattern detected
tbLab(showLabel, labelColor, textColor) Produces "Tweezer Bottom" identifier label
Parameters:
showLabel : (bool) Shows label when input is true. Default is false
labelColor : (series color) Color of the label border and arrow
textColor : (series color) Text color
Returns: (series label) A label visible at the chart level intended for the title pattern
tweezerTop(closeLowerHalf) Detects "TweezerTop" candle patterns
Parameters:
closeLowerHalf : (bool) input to only detect setups that close below the mid-point of the candle prior increasing its bearish tendancy. Default is false
Returns: (series bool) True when pattern detected
ttLab(showLabel, labelColor, textColor) Produces "TweezerTop" identifier label
Parameters:
showLabel : (bool) Shows label when input is true. Default is false
labelColor : (series color) Color of the label border and arrow
textColor : (series color) Text color
Returns: (series label) A label visible at the chart level intended for the title pattern
spinningTopBull(wickSize) Detects "Bullish Spinning Top" candle patterns
Parameters:
wickSize : (float) input to adjust detection of the size of the top wick/ bottom wick as a percent of total candle size. Default is 34%, which ensures the wicks are both larger than the body.
Returns: (series bool) True when pattern detected
stwLab(showLabel, labelColor, textColor) Produces "Bullish Spinning Top" identifier label
Parameters:
showLabel : (bool) Shows label when input is true. Default is false
labelColor : (series color) Color of the label border and arrow
textColor : (series color) Text color
Returns: (series label) A label visible at the chart level intended for the title pattern
spinningTopBear(wickSize) Detects "Bearish Spinning Top" candle patterns
Parameters:
wickSize : (float) input to adjust detection of the size of the top wick/ bottom wick as a percent of total candle size. Default is 34%, which ensures the wicks are both larger than the body.
Returns: (series bool) True when pattern detected
stbLab(showLabel, labelColor, textColor) Produces "Bearish Spinning Top" identifier label
Parameters:
showLabel : (bool) Shows label when input is true. Default is false
labelColor : (series color) Color of the label border and arrow
textColor : (series color) Text color
Returns: (series label) A label visible at the chart level intended for the title pattern
spinningTop(wickSize) Detects "Spinning Top" candle patterns
Parameters:
wickSize : (float) input to adjust detection of the size of the top wick/ bottom wick as a percent of total candle size. Default is 34%, which ensures the wicks are both larger than the body.
Returns: (series bool) True when pattern detected
stLab(showLabel, labelColor, textColor) Produces "Spinning Top" identifier label
Parameters:
showLabel : (bool) Shows label when input is true. Default is false
labelColor : (series color) Color of the label border and arrow
textColor : (series color) Text color
Returns: (series label) A label visible at the chart level intended for the title pattern
morningStar() Detects "Bullish Morning Star" candle patterns
Returns: (series bool) True when pattern detected
msLab(showLabel, labelColor, textColor) Produces "Bullish Morning Star" identifier label
Parameters:
showLabel : (bool) Shows label when input is true. Default is false
labelColor : (series color) Color of the label border and arrow
textColor : (series color) Text color
Returns: (series label) A label visible at the chart level intended for the title pattern
eveningStar() Detects "Bearish Evening Star" candle patterns
Returns: (series bool) True when pattern detected
esLab(showLabel, labelColor, textColor) Produces "Bearish Evening Star" identifier label
Parameters:
showLabel : (bool) Shows label when input is true. Default is false
labelColor : (series color) Color of the label border and arrow
textColor : (series color) Text color
Returns: (series label) A label visible at the chart level intended for the title pattern
haramiBull() Detects "Bullish Harami" candle patterns
Returns: (series bool) True when pattern detected
hwLab(showLabel, labelColor, textColor) Produces "Bullish Harami" identifier label
Parameters:
showLabel : (bool) Shows label when input is true. Default is false
labelColor : (series color) Color of the label border and arrow
textColor : (series color) Text color
Returns: (series label) A label visible at the chart level intended for the title pattern
haramiBear() Detects "Bearish Harami" candle patterns
Returns: (series bool) True when pattern detected
hbLab(showLabel, labelColor, textColor) Produces "Bearish Harami" identifier label
Parameters:
showLabel : (bool) Shows label when input is true. Default is false
labelColor : (series color) Color of the label border and arrow
textColor : (series color) Text color
Returns: (series label) A label visible at the chart level intended for the title pattern
haramiBullCross() Detects "Bullish Harami Cross" candle patterns
Returns: (series bool) True when pattern detected
hcwLab(showLabel, labelColor, textColor) Produces "Bullish Harami Cross" identifier label
Parameters:
showLabel : (bool) Shows label when input is true. Default is false
labelColor : (series color) Color of the label border and arrow
textColor : (series color) Text color
Returns: (series label) A label visible at the chart level intended for the title pattern
haramiBearCross() Detects "Bearish Harami Cross" candle patterns
Returns: (series bool) True when pattern detected
hcbLab(showLabel, labelColor) Produces "Bearish Harami Cross" identifier label
Parameters:
showLabel : (bool) Shows label when input is true. Default is false
labelColor : (series color) Color of the label border and arrow
Returns: (series label) A label visible at the chart level intended for the title pattern
marubullzu() Detects "Bullish Marubozu" candle patterns
Returns: (series bool) True when pattern detected
mwLab(showLabel, labelColor, textColor) Produces "Bullish Marubozu" identifier label
Parameters:
showLabel : (bool) Shows label when input is true. Default is false
labelColor : (series color) Color of the label border and arrow
textColor : (series color) Text color
Returns: (series label) A label visible at the chart level intended for the title pattern
marubearzu() Detects "Bearish Marubozu" candle patterns
Returns: (series bool) True when pattern detected
mbLab(showLabel, labelColor, textColor) Produces "Bearish Marubozu" identifier label
Parameters:
showLabel : (bool) Shows label when input is true. Default is false
labelColor : (series color) Color of the label border and arrow
textColor : (series color) Text color
Returns: (series label) A label visible at the chart level intended for the title pattern
abandonedBull() Detects "Bullish Abandoned Baby" candle patterns
Returns: (series bool) True when pattern detected
abwLab(showLabel, labelColor, textColor) Produces "Bullish Abandoned Baby" identifier label
Parameters:
showLabel : (bool) Shows label when input is true. Default is false
labelColor : (series color) Color of the label border and arrow
textColor : (series color) Text color
Returns: (series label) A label visible at the chart level intended for the title pattern
abandonedBear() Detects "Bearish Abandoned Baby" candle patterns
Returns: (series bool) True when pattern detected
abbLab(showLabel, labelColor, textColor) Produces "Bearish Abandoned Baby" identifier label
Parameters:
showLabel : (bool) Shows label when input is true. Default is false
labelColor : (series color) Color of the label border and arrow
textColor : (series color) Text color
Returns: (series label) A label visible at the chart level intended for the title pattern
piercing() Detects "Piercing" candle patterns
Returns: (series bool) True when pattern detected
pLab(showLabel, labelColor, textColor) Produces "Piercing" identifier label
Parameters:
showLabel : (bool) Shows label when input is true. Default is false
labelColor : (series color) Color of the label border and arrow
textColor : (series color) Text color
Returns: (series label) A label visible at the chart level intended for the title pattern
darkCloudCover() Detects "Dark Cloud Cover" candle patterns
Returns: (series bool) True when pattern detected
dccLab(showLabel, labelColor, textColor) Produces "Dark Cloud Cover" identifier label
Parameters:
showLabel : (bool) Shows label when input is true. Default is false
labelColor : (series color) Color of the label border and arrow
textColor : (series color) Text color
Returns: (series label) A label visible at the chart level intended for the title pattern
tasukiBull() Detects "Upside Tasuki Gap" candle patterns
Returns: (series bool) True when pattern detected
utgLab(showLabel, labelColor, textColor) Produces "Upside Tasuki Gap" identifier label
Parameters:
showLabel : (bool) Shows label when input is true. Default is false
labelColor : (series color) Color of the label border and arrow
textColor : (series color) Text color
Returns: (series label) A label visible at the chart level intended for the title pattern
tasukiBear() Detects "Downside Tasuki Gap" candle patterns
Returns: (series bool) True when pattern detected
dtgLab(showLabel, labelColor, textColor) Produces "Downside Tasuki Gap" identifier label
Parameters:
showLabel : (bool) Shows label when input is true. Default is false
labelColor : (series color) Color of the label border and arrow
textColor : (series color) Text color
Returns: (series label) A label visible at the chart level intended for the title pattern
risingThree() Detects "Rising Three Methods" candle patterns
Returns: (series bool) True when pattern detected
rtmLab(showLabel, labelColor, textColor) Produces "Rising Three Methods" identifier label
Parameters:
showLabel : (bool) Shows label when input is true. Default is false
labelColor : (series color) Color of the label border and arrow
textColor : (series color) Text color
Returns: (series label) A label visible at the chart level intended for the title pattern
fallingThree() Detects "Falling Three Methods" candle patterns
Returns: (series bool) True when pattern detected
ftmLab(showLabel, labelColor, textColor) Produces "Falling Three Methods" identifier label
Parameters:
showLabel : (bool) Shows label when input is true. Default is false
labelColor : (series color) Color of the label border and arrow
textColor : (series color) Text color
Returns: (series label) A label visible at the chart level intended for the title pattern
risingWindow() Detects "Rising Window" candle patterns
Returns: (series bool) True when pattern detected
rwLab(showLabel, labelColor, textColor) Produces "Rising Window" identifier label
Parameters:
showLabel : (bool) Shows label when input is true. Default is false
labelColor : (series color) Color of the label border and arrow
textColor : (series color) Text color
Returns: (series label) A label visible at the chart level intended for the title pattern
fallingWindow() Detects "Falling Window" candle patterns
Returns: (series bool) True when pattern detected
fwLab(showLabel, labelColor, textColor) Produces "Falling Window" identifier label
Parameters:
showLabel : (bool) Shows label when input is true. Default is false
labelColor : (series color) Color of the label border and arrow
textColor : (series color) Text color
Returns: (series label) A label visible at the chart level intended for the title pattern
kickingBull() Detects "Bullish Kicking" candle patterns
Returns: (series bool) True when pattern detected
kwLab(showLabel, labelColor, textColor) Produces "Bullish Kicking" identifier label
Parameters:
showLabel : (bool) Shows label when input is true. Default is false
labelColor : (series color) Color of the label border and arrow
textColor : (series color) Text color
Returns: (series label) A label visible at the chart level intended for the title pattern
kickingBear() Detects "Bearish Kicking" candle patterns
Returns: (series bool) True when pattern detected
kbLab(showLabel, labelColor, textColor) Produces "Bearish Kicking" identifier label
Parameters:
showLabel : (bool) Shows label when input is true. Default is false
labelColor : (series color) Color of the label border and arrow
textColor : (series color) Text color
Returns: (series label) A label visible at the chart level intended for the title pattern
lls(ratio) Detects "Long Lower Shadow" candle patterns
Parameters:
ratio : (float) A relationship of the lower wick to the overall candle size expressed as a percent. Default is 75%
Returns: (series bool) True when pattern detected
llsLab(showLabel, labelColor, textColor) Produces "Long Lower Shadow" identifier label
Parameters:
showLabel : (bool) Shows label when input is true. Default is false
labelColor : (series color) Color of the label border and arrow
textColor : (series color) Text color
Returns: (series label) A label visible at the chart level intended for the title pattern
lus(ratio) Detects "Long Upper Shadow" candle patterns
Parameters:
ratio : (float) A relationship of the upper wick to the overall candle size expressed as a percent. Default is 75%
Returns: (series bool) True when pattern detected
lusLab(showLabel, labelColor, textColor) Produces "Long Upper Shadow" identifier label
Parameters:
showLabel : (bool) Shows label when input is true. Default is false
labelColor : (series color) Color of the label border and arrow
textColor : (series color) Text color
Returns: (series label) A label visible at the chart level intended for the title pattern
bullNeck() Detects "Bullish On Neck" candle patterns
Returns: (series bool) True when pattern detected
nwLab(showLabel, labelColor, textColor) Produces "Bullish On Neck" identifier label
Parameters:
showLabel : (bool) Shows label when input is true. Default is false
labelColor : (series color) Color of the label border and arrow
textColor : (series color) Text color
Returns: (series label) A label visible at the chart level intended for the title pattern
bearNeck() Detects "Bearish On Neck" candle patterns
Returns: (series bool) True when pattern detected
nbLab(showLabel, labelColor, textColor) Produces "Bearish On Neck" identifier label
Parameters:
showLabel : (bool) Shows label when input is true. Default is false
labelColor : (series color) Color of the label border and arrow
textColor : (series color) Text color
Returns: (series label) A label visible at the chart level intended for the title pattern
soldiers(wickSize) Detects "Three White Soldiers" candle patterns
Parameters:
wickSize : (float) Maximum allowable top wick size throughout pattern expressed as a percent of total candle height. Default is 5%
Returns: (series bool) True when pattern detected
wsLab(showLabel, labelColor, textColor) Produces "Three White Soldiers" identifier label
Parameters:
showLabel : (bool) Shows label when input is true. Default is false
labelColor : (series color) Color of the label border and arrow
textColor : (series color) Text color
Returns: (series label) A label visible at the chart level intended for the title pattern
crows(wickSize) Detects "Three Black Crows" candle patterns
Parameters:
wickSize : (float) Maximum allowable bottom wick size throughout pattern expressed as a percent of total candle height. Default is 5%
Returns: (series bool) True when pattern detected
bcLab(showLabel, labelColor, textColor) Produces "Three Black Crows" identifier label
Parameters:
showLabel : (bool) Shows label when input is true. Default is false
labelColor : (series color) Color of the label border and arrow
textColor : (series color) Text color
Returns: (series label) A label visible at the chart level intended for the title pattern
triStarBull() Detects "Bullish Tri-Star" candle patterns
Returns: (series bool) True when pattern detected
tswLab(showLabel, labelColor, textColor) Produces "Bullish Tri-Star" identifier label
Parameters:
showLabel : (bool) Shows label when input is true. Default is false
labelColor : (series color) Color of the label border and arrow
textColor : (series color) Text color
Returns: (series label) A label visible at the chart level intended for the title pattern
triStarBear() Detects "Bearish Tri-Star" candle patterns
Returns: (series bool) True when pattern detected
tsbLab(showLabel, labelColor, textColor) Produces "Bearish Tri-Star" identifier label
Parameters:
showLabel : (bool) Shows label when input is true. Default is false
labelColor : (series color) Color of the label border and arrow
textColor : (series color) Text color
Returns: (series label) A label visible at the chart level intended for the title pattern
wrap(cond, barsBack, borderColor, bgcolor) Produces a box wrapping the highs and lows over the look back.
Parameters:
cond : (series bool) Condition under which to draw the box.
barsBack : (series int) the number of bars back to begin drawing the box.
borderColor : (series color) Color of the four borders. Optional. The default is color.gray.
bgcolor : (series color) Background color of the box. Optional. The default is color.gray.
Returns: (series box) A box who's top and bottom are above and below the highest and lowest points over the lookback
topWick() returns the top wick size of the current candle
Returns: (series float) A value equivelent to the distance from the top of the candle body to its high
bottomWick() returns the bottom wick size of the current candle
Returns: (series float) A value equivelent to the distance from the bottom of the candle body to its low
body() returns the body size of the current candle
Returns: (series float) A value equivelent to the distance between the top and the bottom of the candle body
highestBody() returns the highest body of the current candle
Returns: (series float) A value equivelent to the highest body, whether it is the open or the close
lowestBody() returns the lowest body of the current candle
Returns: (series float) A value equivelent to the highest body, whether it is the open or the close
barRange() returns the height of the current candle
Returns: (series float) A value equivelent to the distance between the high and the low of the candle
bodyPct() returns the body size as a percent
Returns: (series float) A value equivelent to the percentage of body size to the overall candle size
midBody() returns the price of the mid-point of the candle body
Returns: (series float) A value equivelent to the center point of the distance bewteen the body low and the body high
bodyupGap() returns true if there is a gap up between the real body of the current candle in relation to the candle prior
Returns: (series bool) true if there is a gap up and no overlap in the real bodies of the current candle and the preceding candle
bodydwnGap() returns true if there is a gap down between the real body of the current candle in relation to the candle prior
Returns: (series bool) true if there is a gap down and no overlap in the real bodies of the current candle and the preceding candle
gapUp() returns true if there is a gap down between the real body of the current candle in relation to the candle prior
Returns: (series bool) true if there is a gap down and no overlap in the real bodies of the current candle and the preceding candle
gapDwn() returns true if there is a gap down between the real body of the current candle in relation to the candle prior
Returns: (series bool) true if there is a gap down and no overlap in the real bodies of the current candle and the preceding candle
dojiBody() returns true if the candle body is a doji
Returns: (series bool) true if the candle body is a doji. Defined by a body that is 5% of total candle size
[RS]Fractal Pattern Recognition V0EXPERIMENTAL: reads the rates for the last top/bottom in a zigzag fractal series, outputs XAB, XAD, ABC, and BCD rates, im interested in earing what your opinion is as im a total noob in harmonics :p.
use with Fractals V5 for visual confirmation ;).
Harmonic Patterns [kingthies]Harmonic Patterns
This indicator scans price swings for classic X-A-B-C-D harmonic patterns and plots the structure plus a PRZ (Potential Reversal Zone) to help you frame areas where reactions are statistically more likely. It supports both bullish and bearish setups and can trigger alerts when a new D pivot confirms a pattern.
What it does
Builds a pivot-based swing map (ZigZag-style) using a configurable Pivot Length .
Evaluates the most recent 5 swing points (X, A, B, C, D) against harmonic ratio rules with a user-defined tolerance .
Detects: Gartley, Bat, Butterfly, Crab, Deep Crab, Cypher, Shark (loose) .
Draws the pattern legs (X-A-B-C-D), labels the detection with ratio readouts, and projects a PRZ using 3 target levels (derived from XA/BC logic per pattern).
Offers two rendering modes:
Best only : picks the closest match (lowest score) to reduce clutter.
Show all : plots every valid match (uses filled PRZ boxes to keep object usage under control).
PRZ (Potential Reversal Zone)
PRZ is built from three target levels and expanded into a zone.
Optional padding uses ATR (ATR multiplier) to widen/narrow the zone for volatility.
Display modes: Off, Box, Lines, Both .
Zones can be extended forward by a configurable number of bars to keep the area visible as price develops.
How to use
Start with Confirm only when D pivot forms enabled (recommended) to reduce false positives while patterns are still forming.
Adjust Pivot Length based on timeframe:
Lower values = more swings, more signals, more noise.
Higher values = cleaner structures, fewer signals.
Use Ratio Tolerance to control strictness:
Lower tolerance = fewer, higher-confidence matches.
Higher tolerance = more matches, potentially lower quality.
Treat harmonics as context , not a standalone entry system:
Look for confluence (HTF levels, structure, volume, momentum/RSI divergence, etc.).
Use your own confirmation and risk plan (invalidations beyond PRZ / beyond D).
Settings overview
Swings (Pivot ZigZag)
Pivot Length: pivot sensitivity.
Use Wicks: uses High/Low; if off, uses Close.
Max Stored Swings: limits stored pivots for performance/object control.
Harmonic Detection
Ratio Tolerance (%): allowed deviation around ideal ratios.
Confirm only when D pivot forms: reduces repaint-like behavior.
When multiple match: Best only vs Show all.
Pattern Filters enable/disable each pattern type.
PRZ
PRZ Display: Off / Box / Lines / Both.
PRZ Padding (ATR multiplier): volatility-adjusted zone padding.
PRZ Extend (bars): how far to project the zone.
Visuals
Draw Legs: draws X-A-B-C-D.
Show Pattern Label: prints pattern name, direction, ratios, and score.
Label Offset: shift label forward if you want more space.
Alerts
“Bullish/Bearish Harmonic (Any)” triggers on any detected pattern.
Per-pattern alerts are included for each supported pattern type.
Notes
This indicator is educational and intended to assist with pattern recognition and confluence mapping.
Harmonic patterns do not guarantee reversals—always manage risk and confirm with your own process.
Seasonality Table - [JTCAPITAL]Seasonality Table - is a modified way to use monthly return aggregation across multiple assets to identify seasonal trends in cryptocurrencies and indices.
The indicator works by calculating in the following steps:
Asset Selection
The user defines a list of assets to include in the seasonality table. By default, the script allows up to 32 assets, including popular cryptocurrencies like BTC, ETH, BNB, XRP, and others. Each asset is identified by its symbol (e.g., "CRYPTO:BTCUSD").
Monthly Return Calculation
For each asset, the script requests monthly price data using request.security. Specifically, it retrieves the monthly open, close, and month number. The monthly return is calculated as:
Return = (Close - Open) / Open
This step provides a normalized measure of performance for each asset per month.
Data Aggregation
The script stores two key arrays for each asset and month combination:
sumReturns: The cumulative sum of monthly returns
countReturns: The number of months with valid data
This allows averaging returns later while handling months with missing data gracefully.
Table Construction
Rows representing months (January–December)
Columns representing each asset
An additional column showing the average return for all assets per month
A final row showing the yearly average return for each asset
Filling the Table
The table cells are filled as follows:
Monthly returns are averaged for each asset and displayed as a percentage.
Positive returns are colored green, negative returns red.
Missing data is displayed as a gray “—” placeholder.
Each row’s values are normalized for the color gradient to show relative performance.
Averages Computation
The script calculates two types of averages:
Monthly Average Across Assets : Sum of all asset returns for a month divided by the number of valid data points.
Yearly Average Per Asset : Sum of all monthly returns for an asset divided by the number of months with valid data.
These averages are displayed in the last column and last row respectively, with gradient coloring for visual comparison.
Buy and Sell Conditions
This indicator does not generate explicit buy or sell signals. Instead, it provides a visual heatmap of historical seasonality, allowing traders to:
Identify months where an asset historically outperforms (bullish bias)
Identify months with weak historical performance (bearish caution)
Compare seasonal patterns across multiple assets for portfolio allocation
Filters can be applied by adjusting the asset list, changing the color mapping, or focusing on specific months to highlight seasonal anomalies.
Features and Parameters
Number of assets: Set how many assets are included in the table (1–32).
Assets: Input symbols for the assets you want to analyze.
Low % Color: Defines the color for the lowest monthly returns in the gradient.
High % Color: Defines the color for the highest monthly returns in the gradient.
Cleaned asset names for concise display.
Gradient-based visualization for easier pattern recognition.
Monthly and yearly averages for comparative analysis.
Specifications
Monthly Return Calculation
Uses the formula (Close - Open) / Open for each asset per month. This standardizes performance across different price scales and ensures comparability between assets.
Arrays for Storage
sumReturns: Float array storing cumulative monthly returns.
countReturns: Integer array storing the number of valid data points per month.
These arrays allow efficient aggregation and average calculations without overwriting previous values.
Data Retrieval via Security Calls
Requests monthly OHLC data for each asset using request.security.
Ensures calculations reflect the correct timeframe and allow for historical comparison.
Color and Text Assignment
Green text for positive returns, red for negative returns.
Gray cells indicate missing data.
Gradient background shows relative magnitude within the month.
Seasonality Analysis
The table visually encodes which months historically produce stronger returns.
Useful for portfolio rotation, risk management, and identifying cyclical trends.
Scalability
Supports up to 32 assets.
Dynamically adapts to the number of assets and data availability.
Gradient scales automatically per row for consistent comparison.
NQ Hourly Retracements - 12y Stats with LevelsHour Stats with Levels - TradingView Indicator Description
IMPORTANT: NQ FUTURES ONLY
This indicator is specifically designed for and calibrated to NQ (Nasdaq-100 E-mini) futures only. The statistical data is derived exclusively from 13 years of NQ price action (2013-2025). Do not use this indicator on any other asset, ticker, or market as the statistics will not be applicable and may lead to incorrect trading decisions.
Overview
"Hour Stats with Levels" is a statistical analysis indicator that provides real-time probability-based insights into hourly price behavior patterns. The indicator combines historical pattern recognition with live price action to help traders anticipate potential sweep and reversal scenarios within each trading hour.
Originality and Core Concept
This indicator is based on a comprehensive statistical analysis of 12y years of 1-minute NQ futures data, examining a specific price pattern: when an hourly candle opens inside the previous hour's range. Unlike generic support/resistance indicators, this tool provides hour-specific, context-aware probabilities based on 30,000+ historical occurrences of this pattern.
The originality lies in three key areas:
Pattern-Specific Statistics: Rather than applying generic technical analysis, the indicator only activates when the current hour opens within the previous hour's range, providing relevant statistics for this exact scenario.
Context-Aware Probabilities: Statistics are differentiated based on whether the current hour opened above or below the previous hour's open, recognizing that bullish and bearish opening contexts produce different behavioral patterns.
Comprehensive Retracement Tracking: The indicator tracks four independent retracement levels after a sweep occurs, showing the probability of price returning to: the swept level itself (90+% probability), the 50% level, the current hour's open, and the opposite extreme.
How It Works
The Core Pattern
The indicator monitors a specific price structure:
Setup Condition: The current hourly candle opens inside (between) the previous hour's high and low
Sweep Event: Price then breaks above the previous high (high sweep) or below the previous low (low sweep)
Retracement Analysis: After a sweep, the indicator tracks whether price retraces to key levels
Statistical Foundation
The underlying analysis processed 1-minute bar data from 2013-2025, identifying every instance where an hourly candle opened inside the previous hour's range. For each occurrence, the system tracked:
Whether the high, low, or both were swept during that hour
The distance of the sweep measured as a percentage of the previous hour's range
Whether price retraced to four key levels: the swept level, the 50% point, the current open, and the opposite extreme
These measurements were aggregated for all 24 hours of the trading day, with separate statistics for bullish contexts (opening above previous open) and bearish contexts (opening below previous open), creating 48 unique statistical profiles.
Sweep Distance Percentiles
The "reversal levels" are drawn based on historical sweep distance distributions:
25th Percentile: 75% of historical sweeps were larger than this distance. This represents a conservative reversal zone where smaller, contained sweeps typically reverse.
Median (50th Percentile): The midpoint of all historical sweep distances. Half of all sweeps reversed before reaching this level, half extended beyond it.
75th Percentile: Only 25% of sweeps extended beyond this distance. This represents an extended sweep zone where price has historically shown exhaustion.
For example, if the previous hour's range was 20 points and the median high sweep distance is 40% of range, the median reversal level would be placed 8 points above the previous high.
How to Use the Indicator
Sweeps were calculated using 1m data - as such, it's recommended to use the indicator on a 1min chart
Visual Components
Hour Delimiter (Gray Vertical Line)
Marks the start of each new hour
Helps identify when new statistics become active
Sweep Markers
Green "H" label: High sweep has occurred this hour
Red "L" label: Low sweep has occurred this hour
Markers appear on the exact bar where the sweep happened
Target Levels (Blue Lines)
Prev Open: Previous hour's opening price
Prev High: Previous hour's highest price (sweep target)
Prev Low: Previous hour's lowest price (sweep target)
Prev 50%: Midpoint of previous hour's range
Current Open: Current hour's opening price (key retracement target)
Reversal Levels (Purple Dashed Lines)
Positioned beyond the previous high/low based on historical sweep percentiles
Three levels above previous high (for high sweeps)
Three levels below previous low (for low sweeps)
These represent statistically-derived zones where sweeps typically exhaust
The Statistics Table
The table dynamically updates each hour and displays different statistics based on whether the current hour opened above or below the previous hour's open.
Status Row
Shows current state: waiting for sweep, or which sweep(s) have occurred
If waiting, indicates which sweep is more probable based on historical data
SWEEP PROBABILITIES Section
High Sweep: Historical probability (%) that price will sweep the previous high this hour
Low Sweep: Historical probability (%) that price will sweep the previous low this hour
Both Sweeps: Historical probability (%) that price will sweep both levels this hour
These probabilities are derived from counting how many times each pattern occurred in similar historical contexts. For example, "High Sweep: 73.18%" means that in 73.18% of historical occurrences where the hour opened in this same context (same hour of day, same position relative to previous open), price swept the previous high before the hour closed.
AFTER HIGH SWEEP → Section
These statistics activate only after a high sweep has occurred. They show the probability of price retracing to various levels:
→ Prev High: Probability that price returns to (or below) the level it just swept. This is typically 90%+ because sweeps often act as "false breakouts" or liquidity grabs before reversal.
→ 50% Level: Probability that price retraces at least halfway back into the previous hour's range. This represents a moderate retracement.
→ Current Open: Probability that price retraces all the way back to where the current hour opened. This indicates a complete reversal of the sweep move.
→ Prev Low: Probability that price retraces entirely through the previous range to touch the opposite extreme. This represents a full reversal pattern.
AFTER LOW SWEEP → Section
Mirror of the above, but for low sweeps:
→ Prev Low: Retracement to the swept low level (90%+ probability)
→ 50% Level: Retracement to middle of range
→ Current Open: Full retracement to current hour's open
→ Prev High: Complete reversal to opposite extreme
Important Note on Retracement Statistics: These percentages are tracked independently. A 90% probability of returning to the swept level doesn't mean there's only a 10% chance of deeper retracement. Price can (and often does) retrace through multiple levels sequentially. The percentages show how many times price reached at least that level, not where it stopped.
Trading Applications
Anticipating Sweeps
When an hour opens inside the previous range, check the probabilities. If "High Sweep: 70%" and "Low Sweep: 30%", you know there's a 70% historical likelihood of an upside sweep occurring this hour. This doesn't guarantee it will happen, but provides statistical context for potential setups.
Reversal Trading
The most reliable pattern in the data is the 90%+ retracement probability to swept levels. When a sweep occurs, traders can anticipate a retracement back to at least the swept level in the vast majority of cases. The reversal level percentiles help identify where sweeps may exhaust.
Position Management
The retracement probabilities help manage existing positions. For example, if you're long and a high sweep occurs, you know there's a 90%+ chance of at least some retracement to the swept level, which might inform profit-taking or stop-loss decisions.
Confluence with Current Open
The "Current Open" retracement statistics (typically 60-70%) highlight the magnetic quality of the hour's opening price. After a sweep, price frequently returns to test this level.
Customization Options
The indicator offers extensive visual customization:
Toggle on/off: hour delimiters, sweep markers, target levels, reversal levels, statistics table
Customize colors, line widths, and styles for all visual elements
Adjust label sizes and table position
Show/hide individual target levels and reversal percentiles
Limitations and Considerations
Pattern-Specific: The indicator only provides statistics when the current hour opens inside the previous hour's range. If the hour opens outside this range (gaps up or down), the statistics are not applicable.
Historical Probabilities: The percentages represent historical frequencies, not predictions. A 70% probability means it happened 70% of the time historically, not that it will definitely happen 7 out of 10 times going forward.
NQ-Specific Calibration: All statistics are derived from NQ futures data. Market behavior, volatility, and patterns differ across assets.
Hour-Specific Behavior: Different hours show dramatically different statistics. For example, the 9 AM EST hour (market open) shows much higher sweep probabilities (80%+) than the 5 PM EST hour (30-50%) due to differing liquidity and volatility conditions.
No Guarantee of Execution: While a 90% retracement probability is high, it means 10% of the time, price did NOT retrace. Always use proper risk management.
Technical Notes
The indicator uses hourly timeframe data via request.security() to determine previous hour values
Sweep detection occurs in real-time on the chart's timeframe
Statistics are hardcoded from the comprehensive backtested analysis (not calculated on-the-fly)
The indicator stores static values at the start of each hour to ensure consistency as the hour progresses
All percentage values are rounded to one decimal place for clarity
This indicator provides a statistically-grounded framework for understanding hourly price behavior in NQ futures. By combining real-time pattern detection with comprehensive historical analysis, it offers traders probabilistic insights to inform decision-making process within the specific context of each trading hour.
Vdubus Divergence Wave Pattern Generator V1The Vdubus Divergence Wave Theory
10 years in the making & now finally thanks to AI I have attempted to put my Trading strategy & logic into a visual representation of how I analyse and project market using Core price action & MacD. Enjoy :)
A Proprietary Structural & Momentum Confluence SystemPart 1: The Strategic Concept1. The Core Philosophy: "Geometry + Physics"Traditional technical analysis often fails because traders confuse location with timing.Geometry (Price Patterns): Tells us WHERE the market is likely to reverse (e.g., at a resistance level or harmonic D-point).Physics (Momentum): Tells us WHEN the energy driving the trend has actually shifted. The Vdubus Theory posits that a trade should never be taken based on Geometry alone. A valid signal requires a specific, fractal decay in momentum—a "Handshake" between price structure and energy exhaustion.2. The 3-Wave Momentum Filter (The Engine)Most traders look for simple divergence (2 points). The Vdubus Theory demands a 3-Wave Structure to confirm the true state of the market.A. The Standard Reversal (Exhaustion)This is the "Safe" entry, catching the slow death of a trend.Wave 1 $\rightarrow$ 2 (The Warning): Price pushes higher, but momentum is lower (Standard Divergence). This signals that the trend is tapping the brakes.Wave 2 $\rightarrow$ 3 (The Confirmation): Price pushes to a final extreme (often a stop-hunt), but momentum is flat or lower than Wave 2 ("No Divergence").The Logic: This confirms that the buyers have expended all remaining energy. The engine is dead.
B. The Climax Reversal (The Trap)This is the "Aggressive" entry, catching V-shape reversals.Wave 1 $\rightarrow$ 2 (The Bait): Price pushes higher, and momentum is Stronger/Higher (No Divergence). This sucks in retail traders who believe the trend is accelerating.Wave 2 $\rightarrow$ 3 (The Snap): Price pushes again, but momentum suddenly collapses (Divergence).The Logic: A "Strong to Weak" shift. The market traps traders with a show of strength before hitting a "concrete wall" of limit orders.C. The Predator (The Trend Continuation)The Logic: Trends rarely move in straight lines. The "Predator" looks for Hidden Divergence during a pullback.The Signal: Price makes a Higher Low (Trend Structure Intact), but Momentum makes a Lower Low (Oversold Trap). This signals the end of the correction and the resumption of the main trend.3. The "Clean Path" PrincipleA trade is only valid if there is no opposing force. If you are looking to Sell (Bearish Reversal), the opposing Bullish momentum must be weak or neutral. If the "Enemy" is strong, the trade is skipped.
Part 2: The Indicator Breakdown
Tool Name: Vdubus Divergence Wave Pattern Generator V1
This script automates your analysis by combining ZigZag Pattern Recognition (Geometry) with your Custom MACD Logic (Physics).
1. The "Golden" Settings
The physics engine is tuned to your specific discovery:
Fast Length: 8
Slow Length: 21
Signal Length: 5
Lookback: 3 (Sensitive enough to catch the exact pivot points).
2. Signal Generation Logic
The indicator scans for four distinct setups. Here is the exact logic code translated into English:
Signal 1: Standard Reversal (Green/Red Pattern)
Geometry: The ZigZag algorithm identifies a 5-point structure (X-A-B-C-D), such as a Gartley, Bat, or Butterfly.
Physics Check:
Finds the last 3 momentum peaks matching the price highs.
Rule: Momentum Peak 2 must be < Peak 1 (Divergence).
Rule: Momentum Peak 3 must be <= Peak 2 (Confirmation/No Div).
Output: Draws the colored pattern and labels it (e.g., "Bearish Gartley (Exhaustion)").
Signal 2: Climax Reversal (Orange Pattern)
Geometry: Identifies the same 5-point structures.
Physics Check:
Rule: Momentum Peak 2 is >= Peak 1 (Strength/No Div).
Rule: Momentum Peak 3 is < Peak 2 (Sudden Failure/Div).
Output: Draws the pattern in Orange labeled "⚠️ CLIMAX REVERSAL". This is your "Trap" detector.
Signal 3: Rounded Top/Bottom (Navy/Maroon Label)
Geometry: Price is compressing or rounding over.
Physics Check:
Scans for 4 consecutive waves of momentum decay.
Rule: Peak 1 > Peak 2 > Peak 3 > Peak 4.
Output: Places a label indicating a "Multi-Wave Decay," identifying turns that don't have sharp pivots.
Signal 4: The Predator (Purple Pattern)
Geometry: Identifies a trend pullback (Higher Low for Buys).
Physics Check:
Rule: Momentum makes a Lower Low while Price makes a Higher Low (Hidden Divergence).
Output: Draws a Purple pattern labeled "🦖 PREDATOR" to signal trend continuation.
3. The Confluence Dashboard
Located in the corner of the screen, this provides a final "Safety Check."
Logic: It compares the absolute value (strength) of the most recent Bearish Momentum Peak vs. the most recent Bullish Momentum Low.
Output:
Green (Bulls Strong): Buying pressure is dominant. Safe to Buy, Dangerous to Sell.
Red (Bears Strong): Selling pressure is dominant. Safe to Sell, Dangerous to Buy.
Grey (Neutral): Forces are balanced.
Summary of Potential
This system solves the "Trader's Dilemma" of entering too early or too late. By waiting for the 3rd Wave, you effectively filter out the market noise and only commit capital when the opposing side has structurally and physically collapsed. It transforms trading from a guessing game into a disciplined execution of identifying Geometric Exhaustion.
Logic 1 / PREVIOUS DIVERGENCE PROJECTS future TREND BREAKS / Reversals *Not in script*
Logic 2 / Wave 1 to 2 = Divergence / Wave 2 to 3 = NO divergence = Signal
Reverse logic: Wave 1 to 2 = NO Divergence / Wave 2 to 3 = Divergence = Signal
Weekday Close vs Open — Last N (per weekday)# Weekday Close vs Open - Last N Occurrences
This indicator distills every weekday's historical open-to-close behavior into a compact table so you can see how "typical" the current session is before the day even closes. It runs independently of your chart timeframe by pulling daily OHLCV data under the hood, tracking the last **N** completed occurrences for each weekday, and refreshing only when a daily bar closes. On daily charts you can also shade every past bar that matches today's weekday (excluding the in-progress session) to reinforce the pattern visually while the table remains non-repainting.
## What It Shows
- **Win/Loss/Tie counts** - how many of the last `N` occurrences closed above the open (wins), below (losses), or inside the tie threshold you define as "flat".
- **Win % heatmap** - the win column is color-coded (deep green > deep red) so you immediately recognize strong or weak weekdays.
- **Advanced metrics (optional)** - average daily volume plus the average percentage excursion above/below the open (`AvgUp%`, `AvgDn%`) for that weekday.
- **Totals row** - aggregates every weekday into one row to estimate overall hit rate and average stats across the entire data set.
- **Weekday shading (optional)** - on daily charts you can tint every bar that matches today's weekday (all Mondays, all Fridays, etc.) for instant pattern recognition.
## How It Works
1. The script requests daily OHLCV data (non-repainting) regardless of the chart timeframe.
2. When a new daily bar confirms, it packs that day's data into one of seven arrays (one per weekday). Each day contributes five floats (O/H/L/C/V) so trimming and statistics stay in lockstep.
3. A helper function (`f_dayMetrics`) scans daily history to compute average volume, average excursion above/below the open, and win/loss/tie counts for the requested weekday.
4. The table populates on the last bar of the chart session, respecting your advanced/totals toggles and keeping text at `size.normal`.
## Reading the Table
- **Win/Loss/Tie columns**: raw counts taken from your chosen `N`.
- **Win %***: excludes ties from the denominator so it reflects only decisive closes.
- **AvgUp% / AvgDn%**: typical intraday extension (high vs open, open vs low) in percent.
- **Avg Vol**: arithmetic mean of daily volume for that weekday.
- **TOTAL row**: provides a global win rate plus volume/up/down averages weighted by how many samples each weekday contributed.
## Practical Uses
- Spot weekdays that historically trend higher or lower before entering a trade.
- Compare current price action against the typical intraday range (`AvgUp%` vs today's move).
- Filter mean-reversion vs breakout setups based on the most reliable weekday patterns.
- Quickly gauge whether today is behaving "in character" by referencing the highlighted row or the optional whole-chart weekday shading.
> **Tip:** Use smaller `N` values (e.g., 10-20) for adaptive, recent behavior and larger values (50+) to capture longer-term seasonality. Tighten the tie threshold if you want almost every candle to register as win/loss, or widen it to focus only on meaningful moves.
[AS] MACD-v & Hist [Alex Spiroglou | S.M.A.R.T. TRADER SYSTEMS] MACD-v & MACD-v Histogram
=======================================
Volatility Normalised Momentum 📈
Twice Awarded Indicator 🏆
=======================================
=======================================
✅ 1. INTRODUCTION TO THE MACD-v ✅
=======================================
I created the MACD-v in 2015,
as a way to deal with the limitations
of well known indicators like the Stochastic, RSI, MACD.
I decided to publicly share a very small part of my research
in the form of a research paper I wrote in 2022,
titled "MACD-v: Volatility Normalised Momentum".
That paper was awarded twice:
1. The "Charles H. Dow" Award (2022),
for outstanding research in Technical Analysis,
by the Chartered Market Technicians Association (CMTA)
2. The "Founders" Award (2022),
for advances in Active Investment Management,
by the National Association of Active Investment Managers (NAAIM)
=======================================
===================================================
❌ 2. WHY CREATE THE MACD-v ?
THE LIMITATIONS OF CONVENTIONAL MOMENTUM INDICATORS
====================================================
Technical Analysis indicators focused on momentum,
come in two general categories,
each with its own set of limitations:
(i) Range Bound Oscillators (RSI, Stochastics, etc)
These usually have a scaling of 0-100,
and thus have the advantage of having normalised readings,
that are comparable across time and securities.
However they have the following limitations (among others):
1. Skewing effect of steep trends
2. Indicator values do not adjust with and reflect true momentum
(indicator values are capped to 100)
(ii) Unbound Oscillators (MACD, RoC, etc)
These are boundless indicators,
and can expand with the market,
without being limited by a 0-100 scaling,
and thus have the advantage of really measuring momentum.
They have the main following limitations (among others):
1. Subjectivity of overbought / oversold levels
2. Not comparable across time
3. Not comparable across securities
=======================================
=======================================
💡 3. THE SOLUTION TO SOLVE THESE LIMITATIONS
=======================================
In order to deal with these limitations,
I decided to create an indicator,
that would be the "Best of two worlds".
A unique & hybrid indicator,
that would have objective normalised readings
(similar to Range Bound Oscillators - RSI)
but would also be able to have no upper/lower boundaries
(similar to Unbound Oscillators - MACD).
This would be achieved by "normalising" a boundless oscillator (MACD)
=======================================
==================================================
⛔ 4. DEEP DIVE INTO THE 5 LIMITATIONS OF THE MACD
==================================================
A Bloomberg study found that the MACD
is the most popular indicator after the RSI,
but the MACD has 5 BIG limitations.
Limitation 1: MACD values are not comparable across Time
The raw MACD values shift
as the underlying security's absolute value changes across time,
making historical comparisons obsolete
e.g S&P 500 maximum MACD was 1.56 in 1957-1971,
but reached 86.31 in 2019-2021 - not indicating 55x stronger momentum,
but simply different price levels.
Limitation 2: MACD values are not comparable across Assets
Traditional MACD cannot compare momentum between different assets.
S&P 500 MACD of 65 versus EUR/USD MACD of -0.5
reflects absolute price differences, not momentum differences
Limitation 3: MACD values cannot be Systematically Classified
Due to limitations #1 & #2, it is not possible to create
a momentum level classification scale
where one can define "fast", "slow", "overbought", "oversold" momentum
making systematic analysis impossible
Limitation 4: MACD Signal Line gives false crossovers in low-momentum ranges
In range-bound, low momentum environments,
most of the MACD signal line crossovers are false (noise)
Since there is no objective momentum classification system (limitation #3),
it is not possible to filter these signals out,
by avoiding them when momentum is low
Limitation 5: MACD Signal Line gives late crossovers in high momentum regimes.
Signal lag in strong trends not good at timing the turning point
— In high-momentum moves, MACD crossovers may come late.
Since there is no objective momentum classification system (limitation #3),
it is not possible to filter these signals out,
by avoiding them when momentum is high
===================================================================
===================================================================
🏆 5. MACD-v : THE SOLUTION TO THE LIMITATIONS OF THE MACD , RSI, etc
====================================================================
MACD-v is a volatility normalised momentum indicator.
It remedies these 5 limitations of the classic MACD,
while creating a tool with unique properties.
Formula: × 100
MACD-V enhances the classic MACD by normalizing for volatility,
transforming price-dependent readings into standardized momentum values.
This resolves key limitations of traditional MACD and adds significant analytical power.
Core Advantages of MACD-V
Advantage 1: Time-Based Stability
MACD-V values are consistent and comparable over time.
A reading of 100 has the same meaning today as it did in the past
(unlike traditional MACD which is influenced by changes in price and volatility over time)
Advantage 2: Cross-Market Comparability
MACD-V provides universal scaling.
Readings (e.g., ±50) apply consistently across all asset classes—stocks,
bonds, commodities, or currencies,
allowing traders to compare momentum across markets reliably.
Advantage 3: Objective Momentum Classification
MACD-V includes a defined 5-range momentum lifecycle
with standardized thresholds (e.g., -150 to +150).
This offers an objective framework for analyzing market conditions
and supports integration with broader models.
Advantage 4: False Signal Reduction in Low-Momentum Regimes
MACD-V introduces a "neutral zone" (typically -50 to +50)
to filter out these low-probability signals.
Advantage 5: Improved Signal Timing in High-Momentum Regimes
MACD-V identifies extremely strong trends,
allowing for more precise entry and exit points.
Advantage 6: Trend-Adaptive Scaling
Unlike bounded oscillators like RSI or Stochastic,
MACD-V dynamically expands with trend strength,
providing clearer momentum insights without artificial limits.
Advantage 7: Enhanced Divergence Detection
MACD-V offers more reliable divergence signals
by avoiding distortion at extreme levels,
a common flaw in bounded indicators (RSI, etc)
====================================================================
=======================================
⚒️ 5. HOW TO USE THE MACD-v: 7 CORE PATTERNS
HOW TO USE THE MACD-v Histogram: 2 CORE PATTERNS
=======================================
>>>>>> BASIC USE (RANGE RULES) <<<<<<
The MACD-v has 7 Core Patterns (Ranges) :
1. Risk Range (Overbought)
Condition: MACD-V > Signal Line and MACD-V > +150
Interpretation: Extremely strong bullish momentum—potential exhaustion or reversal zone.
2. Retracing
Condition: MACD-V < Signal Line and MACD-V > -50
Interpretation: Mild pullback within a bullish trend.
3. Rundown
Condition: MACD-V < Signal Line and -50 > MACD-V > -150
Interpretation: Momentum is weakening—bearish pressure building.
4. Risk Range (Oversold)
Condition: MACD-V < Signal Line and MACD-V < -150
Interpretation: Extreme bearish momentum—potential for reversal or capitulation.
5. Rebounding
Condition: MACD-V > Signal Line and MACD-V > -150
Interpretation: Bullish recovery from oversold or weak conditions.
6. Rallying
Condition: MACD-V > Signal Line and MACD-V > +50
Interpretation: Strengthening bullish trend—momentum accelerating.
7. Ranging (Neutral Zone)
Condition: MACD-V remains between -50 and +50 for 20+ bars
Interpretation: Sideways market—low conviction and momentum.
The MACD-v Histogram has 2 Core Patterns (Ranges) :
1. Risk (Overbought)
Condition: Histogram > +40
Interpretation: Short-term bullish momentum is stretched—possible overextension or reversal risk.
2. Risk (Oversold)
Condition: Histogram < -40
Interpretation: Short-term bearish momentum is stretched—potential for rebound or reversal.
=======================================
=======================================
📈 6. ADVANCED PATTERNS WITH MACD-v
=======================================
Thanks to its volatility normalization,
the MACD-V framework enables the development
of a wide range of advanced pattern recognition setups,
trading signals, and strategic models.
These patterns go beyond basic crossovers,
offering deeper insight into momentum structure,
regime shifts, and high-probability trade setups.
These are not part of this script
=======================================
===========================================================
⚙️ 7. FUNCTIONALITY - HOW TO ADD THE INDICATORS TO YOUR CHART
===========================================================
The script allows you to see :
1. MACD-v
The indicator with the ranges (150,50,0,-50,-150)
and colour coded according to its 7 basic patterns
2. MACD-v Histogram
The indicator The indicator with the ranges (40,0,-40)
and colour coded according to its 2 basic ranges / patterns
3. MACD-v Heatmap
You can see the MACD-v in a Multiple Timeframe basis,
using a colour-coded Heatmap
Note that lowest timeframe in the heatmap must be the one on the chart
i.e. if you see the daily chart, then the Heatmap will be Daily, Weekly, Monthly
4. MACD-v Dashboard
You can see the MACD-v for 7 markets,
in a multiple timeframe basis
=======================================
=======================================
🤝 CONTRIBUTIONS 🤝
=======================================
I would like to thank the following people:
1. Mike Christensen for coding the indicator
@TradersPostInc, @Mik3Christ3ns3n,
2. @Indicator-Jones For allowing me to use his Scanner
3. @Daveatt For allowing me to use his heatmap
=======================================
=======================================
⚠️ LEGAL - Usage and Attribution Notice ⚠️
=======================================
Use of this Script is permitted
for personal or non-commercial purposes,
including implementation by coders and TradingView users.
However, any form of paid redistribution,
resale, or commercial exploitation is strictly prohibited.
Proper attribution to the original author is expected and appreciated,
in order to acknowledge the source
and maintain the integrity of the original work.
Failure to comply with these terms,
or to take corrective action within 48 hours of notification,
will result in a formal report to TradingView’s moderation team,
and will actively pursue account suspension and removal of the infringing script(s).
Continued violations may result in further legal action, as deemed necessary.
=======================================
=======================================
⚠️ DISCLAIMER ⚠️
=======================================
This indicator is For Educational Purposes Only (F.E.P.O.).
I am just Teaching by Example (T.B.E.)
It does not constitute investment advice.
There are no guarantees in trading - except one.
You will have losses in trading.
I can guarantee you that with 100% certainty.
The author is not responsible for any financial losses
or trading decisions made based on this indicator. 🙏
Always perform your own analysis and use proper risk management. 🛡️
=======================================
Price Action Brooks ProPrice Action Brooks Pro (PABP) - Professional Trading Indicator
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📊 OVERVIEW
Price Action Brooks Pro (PABP) is a professional-grade TradingView indicator developed based on Al Brooks' Price Action trading methodology. It integrates decades of Al Brooks' trading experience and price action analysis techniques into a comprehensive technical analysis tool, helping traders accurately interpret market structure and identify trading opportunities.
• Applicable Markets: Stocks, Futures, Forex, Cryptocurrencies
• Timeframes: 1-minute to Daily (5-minute chart recommended)
• Theoretical Foundation: Al Brooks Price Action Trading Method
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🎯 CORE FEATURES
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
1️⃣ INTELLIGENT GAP DETECTION SYSTEM
Automatically identifies and marks three critical types of gaps in the market.
TRADITIONAL GAP
• Detects complete price gaps between bars
• Upward gap: Current bar's low > Previous bar's high
• Downward gap: Current bar's high < Previous bar's low
• Hollow border design - doesn't obscure price action
• Color coding: Upward gaps (light green), Downward gaps (light pink)
• Adjustable border: 1-5 pixel width options
TAIL GAP
• Detects price gaps between bar wicks/shadows
• Analyzes across 3 bars for precision
• Identifies hidden market structure
BODY GAP
• Focuses only on gaps between bar bodies (open/close)
• Filters out wick noise
• Disabled by default, enable as needed
Trading Significance:
• Gaps signal strong momentum
• Gap fills provide trading opportunities
• Consecutive gaps indicate trend continuation
✓ Independent alert system for all gap types
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
2️⃣ RTH BAR COUNT (Trading Session Counter)
Intelligent counting system designed for US stock intraday trading.
FEATURES
• RTH Only Display: Regular Trading Hours (09:30-15:00 EST)
• 5-Minute Chart Optimized: Displays every 3 bars (15-minute intervals)
• Daily Auto-Reset: Counting starts from 1 each trading day
SMART COLOR CODING
• 🔴 Red (Bars 18 & 48): Critical turning moments (1.5h & 4h)
• 🔵 Sky Blue (Multiples of 12): Hourly markers (12, 24, 36...)
• 🟢 Light Green (Bar 6): Half-hour marker (30 minutes)
• ⚫ Gray (Others): Regular 15-minute interval markers
Al Brooks Time Theory:
• Bar 18 (90 min): First 90 minutes determine daily trend
• Bar 48 (4 hours): Important afternoon turning point
• Hourly markers: Track institutional trading rhythm
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
3️⃣ FOUR-LINE EMA SYSTEM
Professional-grade configurable moving average system.
DEFAULT CONFIGURATION
• EMA 20: Short-term trend (Al Brooks' most important MA)
• EMA 50: Medium-short term reference
• EMA 100: Medium-long term confirmation
• EMA 200: Long-term trend and bull/bear dividing line
FLEXIBLE CUSTOMIZATION
Each EMA can be independently configured:
• On/Off toggle
• Data source selection (close/high/low/open, etc.)
• Custom period length
• Offset adjustment
• Color and transparency
COLOR SCHEME
• EMA 20: Dark brown, opaque (most important)
• EMA 50/100/200: Blue-purple gradient, 70% transparent
TRADING APPLICATIONS
• Bullish Alignment: Price > 20 > 50 > 100 > 200
• Bearish Alignment: 200 > 100 > 50 > 20 > Price
• EMA Confluence: All within <1% = major move precursor
Al Brooks Quote:
"The EMA 20 is the most important moving average. Almost all trading decisions should reference it."
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
4️⃣ PREVIOUS VALUES (Key Prior Price Levels)
Automatically marks important price levels that often act as support/resistance.
THREE INDEPENDENT CONFIGURATIONS
Each group configurable for:
• Timeframe (1D/60min/15min, etc.)
• Price source (close/high/low/open/CurrentOpen, etc.)
• Line style and color
• Display duration (Today/TimeFrame/All)
SMART OPEN PRICE LABELS ⭐
• Auto-displays "Open" label when CurrentOpen selected
• Label color matches line color
• Customizable label size
TYPICAL SETUP
• 1st Line: Previous close (Support/Resistance)
• 2nd Line: Previous high (Breakout target)
• 3rd Line: Previous low (Support level)
Al Brooks Magnet Price Theory:
• Previous open: Price frequently tests opening price
• Previous high/low: Strongest support/resistance
• Breakout confirmation: Breaking prior levels = trend continuation
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
5️⃣ INSIDE & OUTSIDE BAR PATTERN RECOGNITION
Automatically detects core candlestick patterns from Al Brooks' theory.
ii PATTERN (Consecutive Inside Bars)
• Current bar contained within previous bar
• Two or more consecutive
• Labels: ii, iii, iiii (auto-accumulates)
• High-probability breakout setup
• Stop loss: Outside both bars
Trading Significance:
"Inside bars are one of the most reliable breakout setups, especially three or more consecutive inside bars." - Al Brooks
OO PATTERN (Consecutive Outside Bars)
• Current bar engulfs previous bar
• Two or more consecutive
• Labels: oo, ooo (auto-accumulates)
• Indicates indecision or volatility increase
ioi PATTERN (Inside-Outside-Inside)
• Three-bar combination: Inside → Outside → Inside
• Auto-detected and labeled
• Tug-of-war pattern
• Breakout direction often very strong
SMART LABEL SYSTEM
• Auto-accumulation counting
• Dynamic label updates
• Customizable size and color
• Positioned above bars
✓ Independent alerts for all patterns
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
💡 USE CASES
INTRADAY TRADING
✓ Bar Count (timing rhythm)
✓ Traditional Gap (strong signals)
✓ EMA 20 + 50 (quick trend)
✓ ii/ioi Patterns (breakout points)
SWING TRADING
✓ Previous Values (key levels)
✓ EMA 20 + 50 + 100 (trend analysis)
✓ Gaps (trend confirmation)
✓ iii Patterns (entry timing)
TREND FOLLOWING
✓ All four EMAs (alignment analysis)
✓ Gaps (continuation signals)
✓ Previous Values (targets)
BREAKOUT TRADING
✓ iii Pattern (high-reliability setup)
✓ Previous Values (targets)
✓ EMA 20 (trend direction)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🎨 DESIGN FEATURES
PROFESSIONAL COLOR SCHEME
• Gaps: Hollow borders + light colors
• Bar Count: Smart multi-color coding
• EMAs: Gradient colors + transparency hierarchy
• Previous Values: Customizable + smart labels
CLEAR VISUAL HIERARCHY
• Important elements: Opaque (EMA 20, bar count)
• Reference elements: Semi-transparent (other EMAs, gaps)
• Hollow design: Doesn't obscure price action
USER-FRIENDLY INTERFACE
• Clear functional grouping
• Inline layout saves space
• All colors and sizes customizable
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📚 AL BROOKS THEORY CORE
READING PRICE ACTION
"Don't try to predict the market, read what the market is telling you."
PABP converts core concepts into visual tools:
• Trend Assessment: EMA system
• Time Rhythm: Bar Count
• Market Structure: Gap analysis
• Trade Setups: Inside/Outside Bars
• Support/Resistance: Previous Values
PROBABILITY THINKING
• ii pattern: Medium probability
• iii pattern: High probability
• iii + EMA 20 support: Very high probability
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
⚙️ TECHNICAL SPECIFICATIONS
• Pine Script Version: v6
• Maximum Objects: 500 lines, 500 labels, 500 boxes
• Alert Functions: 8 independent alerts
• Supported Timeframes: All (5-min recommended for Bar Count)
• Compatibility: All TradingView plans, Mobile & Desktop
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🚀 RECOMMENDED INITIAL SETTINGS
GAPS
• Traditional Gap: ✓
• Tail Gap: ✓
• Border Width: 2
BAR COUNT
• Use Bar Count: ✓
• Label Size: Normal
EMA
• EMA 20: ✓
• EMA 50: ✓
• EMA 100: ✓
• EMA 200: ✓
PREVIOUS VALUES
• 1st: close (Previous close)
• 2nd: high (Previous high)
• 3rd: low (Previous low)
INSIDE & OUTSIDE BAR
• All patterns: ✓
• Label Size: Large
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🌟 WHY CHOOSE PABP?
✅ Solid Theoretical Foundation
Based on Al Brooks' decades of trading experience
✅ Complete Professional Features
Systematizes complex price action analysis
✅ Highly Customizable
Every feature adjustable to personal style
✅ Excellent Performance
Optimized code ensures smooth experience
✅ Continuous Updates
Constantly improving based on feedback
✅ Suitable for All Levels
Benefits beginners to professionals
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📖 RECOMMENDED LEARNING
Al Brooks Books:
• "Trading Price Action Trends"
• "Trading Price Action Trading Ranges"
• "Trading Price Action Reversals"
Learning Path:
1. Understand basic candlestick patterns
2. Learn EMA applications
3. Master market structure analysis
4. Develop trading system
5. Continuous practice and optimization
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
⚠️ RISK DISCLOSURE
IMPORTANT NOTICE:
• For educational and informational purposes only
• Does not constitute investment advice
• Past performance doesn't guarantee future results
• Trading involves risk and may result in capital loss
• Trade according to your risk tolerance
• Test thoroughly in demo account first
RESPONSIBLE TRADING:
• Always use stop losses
• Control position sizes reasonably
• Don't overtrade
• Continuous learning and improvement
• Keep trading journal
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📜 COPYRIGHT
Price Action Brooks Pro (PABP)
Author: © JimmC98
License: Mozilla Public License 2.0
Pine Script Version: v6
Acknowledgments:
Thanks to Dr. Al Brooks for his contributions to price action trading. This indicator is developed based on his theories.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Experience professional-grade price action analysis now!
"The best traders read price action, not indicators. But when indicators help you read price action better, use them." - Al Brooks
Historical Matrix Analyzer [PhenLabs]📊Historical Matrix Analyzer
Version: PineScriptv6
📌Description
The Historical Matrix Analyzer is an advanced probabilistic trading tool that transforms technical analysis into a data-driven decision support system. By creating a comprehensive 56-cell matrix that tracks every combination of RSI states and multi-indicator conditions, this indicator reveals which market patterns have historically led to profitable outcomes and which have not.
At its core, the indicator continuously monitors seven distinct RSI states (ranging from Extreme Oversold to Extreme Overbought) and eight unique indicator combinations (MACD direction, volume levels, and price momentum). For each of these 56 possible market states, the system calculates average forward returns, win rates, and occurrence counts based on your configurable lookback period. The result is a color-coded probability matrix that shows you exactly where you stand in the historical performance landscape.
The standout feature is the Current State Panel, which provides instant clarity on your active market conditions. This panel displays signal strength classifications (from Strong Bullish to Strong Bearish), the average return percentage for similar past occurrences, an estimated win rate using Bayesian smoothing to prevent small-sample distortions, and a confidence level indicator that warns you when insufficient data exists for reliable conclusions.
🚀Points of Innovation
Multi-dimensional state classification combining 7 RSI levels with 8 indicator combinations for 56 unique trackable market conditions
Bayesian win rate estimation with adjustable smoothing strength to provide stable probability estimates even with limited historical samples
Real-time active cell highlighting with “NOW” marker that visually connects current market conditions to their historical performance data
Configurable color intensity sensitivity allowing traders to adjust heat-map responsiveness from conservative to aggressive visual feedback
Dual-panel display system separating the comprehensive statistics matrix from an easy-to-read current state summary panel
Intelligent confidence scoring that automatically warns traders when occurrence counts fall below reliable thresholds
🔧Core Components
RSI State Classification: Segments RSI readings into 7 distinct zones (Extreme Oversold <20, Oversold 20-30, Weak 30-40, Neutral 40-60, Strong 60-70, Overbought 70-80, Extreme Overbought >80) to capture momentum extremes and transitions
Multi-Indicator Condition Tracking: Simultaneously monitors MACD crossover status (bullish/bearish), volume relative to moving average (high/low), and price direction (rising/falling) creating 8 binary-encoded combinations
Historical Data Storage Arrays: Maintains rolling lookback windows storing RSI states, indicator states, prices, and bar indices for precise forward-return calculations
Forward Performance Calculator: Measures price changes over configurable forward bar periods (1-20 bars) from each historical state, accumulating total returns and win counts per matrix cell
Bayesian Smoothing Engine: Applies statistical prior assumptions (default 50% win rate) weighted by user-defined strength parameter to stabilize estimated win rates when sample sizes are small
Dynamic Color Mapping System: Converts average returns into color-coded heat map with intensity adjusted by sensitivity parameter and transparency modified by confidence levels
🔥Key Features
56-Cell Probability Matrix: Comprehensive grid displaying every possible combination of RSI state and indicator condition, with each cell showing average return percentage, estimated win rate, and occurrence count for complete statistical visibility
Current State Info Panel: Dedicated display showing your exact position in the matrix with signal strength emoji indicators, numerical statistics, and color-coded confidence warnings for immediate situational awareness
Customizable Lookback Period: Adjustable historical window from 50 to 500 bars allowing traders to focus on recent market behavior or capture longer-term pattern stability across different market cycles
Configurable Forward Performance Window: Select target holding periods from 1 to 20 bars ahead to align probability calculations with your trading timeframe, whether day trading or swing trading
Visual Heat Mapping: Color-coded cells transition from red (bearish historical performance) through gray (neutral) to green (bullish performance) with intensity reflecting statistical significance and occurrence frequency
Intelligent Data Filtering: Minimum occurrence threshold (1-10) removes unreliable patterns with insufficient historical samples, displaying gray warning colors for low-confidence cells
Flexible Layout Options: Independent positioning of statistics matrix and info panel to any screen corner, accommodating different chart layouts and personal preferences
Tooltip Details: Hover over any matrix cell to see full RSI label, complete indicator status description, precise average return, estimated win rate, and total occurrence count
🎨Visualization
Statistics Matrix Table: A 9-column by 8-row grid with RSI states labeling vertical axis and indicator combinations on horizontal axis, using compact abbreviations (XOverS, OverB, MACD↑, Vol↓, P↑) for space efficiency
Active Cell Indicator: The current market state cell displays “⦿ NOW ⦿” in yellow text with enhanced color saturation to immediately draw attention to relevant historical performance
Signal Strength Visualization: Info panel uses emoji indicators (🔥 Strong Bullish, ✅ Bullish, ↗️ Weak Bullish, ➖ Neutral, ↘️ Weak Bearish, ⛔ Bearish, ❄️ Strong Bearish, ⚠️ Insufficient Data) for rapid interpretation
Histogram Plot: Below the price chart, a green/red histogram displays the current cell’s average return percentage, providing a time-series view of how historical performance changes as market conditions evolve
Color Intensity Scaling: Cell background transparency and saturation dynamically adjust based on both the magnitude of average returns and the occurrence count, ensuring visual emphasis on reliable patterns
Confidence Level Display: Info panel bottom row shows “High Confidence” (green), “Medium Confidence” (orange), or “Low Confidence” (red) based on occurrence counts relative to minimum threshold multipliers
📖Usage Guidelines
RSI Period
Default: 14
Range: 1 to unlimited
Description: Controls the lookback period for RSI momentum calculation. Standard 14-period provides widely-recognized overbought/oversold levels. Decrease for faster, more sensitive RSI reactions suitable for scalping. Increase (21, 28) for smoother, longer-term momentum assessment in swing trading. Changes affect how quickly the indicator moves between the 7 RSI state classifications.
MACD Fast Length
Default: 12
Range: 1 to unlimited
Description: Sets the faster exponential moving average for MACD calculation. Standard 12-period setting works well for daily charts and captures short-term momentum shifts. Decreasing creates more responsive MACD crossovers but increases false signals. Increasing smooths out noise but delays signal generation, affecting the bullish/bearish indicator state classification.
MACD Slow Length
Default: 26
Range: 1 to unlimited
Description: Defines the slower exponential moving average for MACD calculation. Traditional 26-period setting balances trend identification with responsiveness. Must be greater than Fast Length. Wider spread between fast and slow increases MACD sensitivity to trend changes, impacting the frequency of indicator state transitions in the matrix.
MACD Signal Length
Default: 9
Range: 1 to unlimited
Description: Smoothing period for the MACD signal line that triggers bullish/bearish state changes. Standard 9-period provides reliable crossover signals. Shorter values create more frequent state changes and earlier signals but with more whipsaws. Longer values produce more confirmed, stable signals but with increased lag in detecting momentum shifts.
Volume MA Period
Default: 20
Range: 1 to unlimited
Description: Lookback period for volume moving average used to classify volume as “high” or “low” in indicator state combinations. 20-period default captures typical monthly trading patterns. Shorter periods (10-15) make volume classification more reactive to recent spikes. Longer periods (30-50) require more sustained volume changes to trigger state classification shifts.
Statistics Lookback Period
Default: 200
Range: 50 to 500
Description: Number of historical bars used to calculate matrix statistics. 200 bars provides substantial data for reliable patterns while remaining responsive to regime changes. Lower values (50-100) emphasize recent market behavior and adapt quickly but may produce volatile statistics. Higher values (300-500) capture long-term patterns with stable statistics but slower adaptation to changing market dynamics.
Forward Performance Bars
Default: 5
Range: 1 to 20
Description: Number of bars ahead used to calculate forward returns from each historical state occurrence. 5-bar default suits intraday to short-term swing trading (5 hours on hourly charts, 1 week on daily charts). Lower values (1-3) target short-term momentum trades. Higher values (10-20) align with position trading and longer-term pattern exploitation.
Color Intensity Sensitivity
Default: 2.0
Range: 0.5 to 5.0, step 0.5
Description: Amplifies or dampens the color intensity response to average return magnitudes in the matrix heat map. 2.0 default provides balanced visual emphasis. Lower values (0.5-1.0) create subtle coloring requiring larger returns for full saturation, useful for volatile instruments. Higher values (3.0-5.0) produce vivid colors from smaller returns, highlighting subtle edges in range-bound markets.
Minimum Occurrences for Coloring
Default: 3
Range: 1 to 10
Description: Required minimum sample size before applying color-coded performance to matrix cells. Cells with fewer occurrences display gray “insufficient data” warning. 3-occurrence default filters out rare patterns. Lower threshold (1-2) shows more data but includes unreliable single-event statistics. Higher thresholds (5-10) ensure only well-established patterns receive visual emphasis.
Table Position
Default: top_right
Options: top_left, top_right, bottom_left, bottom_right
Description: Screen location for the 56-cell statistics matrix table. Position to avoid overlapping critical price action or other indicators on your chart. Consider chart orientation and candlestick density when selecting optimal placement.
Show Current State Panel
Default: true
Options: true, false
Description: Toggle visibility of the dedicated current state information panel. When enabled, displays signal strength, RSI value, indicator status, average return, estimated win rate, and confidence level for active market conditions. Disable to declutter charts when only the matrix table is needed.
Info Panel Position
Default: bottom_left
Options: top_left, top_right, bottom_left, bottom_right
Description: Screen location for the current state information panel (when enabled). Position independently from statistics matrix to optimize chart real estate. Typically placed opposite the matrix table for balanced visual layout.
Win Rate Smoothing Strength
Default: 5
Range: 1 to 20
Description: Controls Bayesian prior weighting for estimated win rate calculations. Acts as virtual sample size assuming 50% win rate baseline. Default 5 provides moderate smoothing preventing extreme win rate estimates from small samples. Lower values (1-3) reduce smoothing effect, allowing win rates to reflect raw data more directly. Higher values (10-20) increase conservatism, pulling win rate estimates toward 50% until substantial evidence accumulates.
✅Best Use Cases
Pattern-based discretionary trading where you want historical confirmation before entering setups that “look good” based on current technical alignment
Swing trading with holding periods matching your forward performance bar setting, using high-confidence bullish cells as entry filters
Risk assessment and position sizing, allocating larger size to trades originating from cells with strong positive average returns and high estimated win rates
Market regime identification by observing which RSI states and indicator combinations are currently producing the most reliable historical patterns
Backtesting validation by comparing your manual strategy signals against the historical performance of the corresponding matrix cells
Educational tool for developing intuition about which technical condition combinations have actually worked versus those that feel right but lack historical evidence
⚠️Limitations
Historical patterns do not guarantee future performance, especially during unprecedented market events or regime changes not represented in the lookback period
Small sample sizes (low occurrence counts) produce unreliable statistics despite Bayesian smoothing, requiring caution when acting on low-confidence cells
Matrix statistics lag behind rapidly changing market conditions, as the lookback period must accumulate new state occurrences before updating performance data
Forward return calculations use fixed bar periods that may not align with actual trade exit timing, support/resistance levels, or volatility-adjusted profit targets
💡What Makes This Unique
Multi-Dimensional State Space: Unlike single-indicator tools, simultaneously tracks 56 distinct market condition combinations providing granular pattern resolution unavailable in traditional technical analysis
Bayesian Statistical Rigor: Implements proper probabilistic smoothing to prevent overconfidence from limited data, a critical feature missing from most pattern recognition tools
Real-Time Contextual Feedback: The “NOW” marker and dedicated info panel instantly connect current market conditions to their historical performance profile, eliminating guesswork
Transparent Occurrence Counts: Displays sample sizes directly in each cell, allowing traders to judge statistical reliability themselves rather than hiding data quality issues
Fully Customizable Analysis Window: Complete control over lookback depth and forward return horizons lets traders align the tool precisely with their trading timeframe and strategy requirements
🔬How It Works
1. State Classification and Encoding
Each bar’s RSI value is evaluated and assigned to one of 7 discrete states based on threshold levels (0: <20, 1: 20-30, 2: 30-40, 3: 40-60, 4: 60-70, 5: 70-80, 6: >80)
Simultaneously, three binary conditions are evaluated: MACD line position relative to signal line, current volume relative to its moving average, and current close relative to previous close
These three binary conditions are combined into a single indicator state integer (0-7) using binary encoding, creating 8 possible indicator combinations
The RSI state and indicator state are stored together, defining one of 56 possible market condition cells in the matrix
2. Historical Data Accumulation
As each bar completes, the current state classification, closing price, and bar index are stored in rolling arrays maintained at the size specified by the lookback period
When the arrays reach capacity, the oldest data point is removed and the newest added, creating a sliding historical window
This continuous process builds a comprehensive database of past market conditions and their subsequent price movements
3. Forward Return Calculation and Statistics Update
On each bar, the indicator looks back through the stored historical data to find bars where sufficient forward bars exist to measure outcomes
For each historical occurrence, the price change from that bar to the bar N periods ahead (where N is the forward performance bars setting) is calculated as a percentage return
This percentage return is added to the cumulative return total for the specific matrix cell corresponding to that historical bar’s state classification
Occurrence counts are incremented, and wins are tallied for positive returns, building comprehensive statistics for each of the 56 cells
The Bayesian smoothing formula combines these raw statistics with prior assumptions (neutral 50% win rate) weighted by the smoothing strength parameter to produce estimated win rates that remain stable even with small samples
💡Note:
The Historical Matrix Analyzer is designed as a decision support tool, not a standalone trading system. Best results come from using it to validate discretionary trade ideas or filter systematic strategy signals. Always combine matrix insights with proper risk management, position sizing rules, and awareness of broader market context. The estimated win rate feature uses Bayesian statistics specifically to prevent false confidence from limited data, but no amount of smoothing can create reliable predictions from fundamentally insufficient sample sizes. Focus on high-confidence cells (green-colored confidence indicators) with occurrence counts well above your minimum threshold for the most actionable insights.
W Pattern Finder📊 W Pattern Finder
English:
This indicator automatically detects W-Patterns (Double Bottoms) following the HLHL structure and marks the last four crucial points on the chart.
Additionally, it draws the neckline, a Take Profit (TP) and a Stop Loss (SL) – including a Risk/Reward ratio.
✨ Features
* Automatic detection of W-Patterns (Double Bottoms)
* Draws the neckline and the last 4 key points
* Calculates and displays TP and SL levels (with adjustable RR ratio)
* Auto-Clear: All objects are removed once TP or SL is reached
* Fully customizable colors & widths for pattern, TP and SL lines
* Tolerance filter for lows to improve clean pattern recognition
* Visual marking of the W-pattern directly in the chart
⚙️ Settings
* Pivot Length → controls sensitivity of pattern detection
* Line color & width for the pattern
* Individual colors and widths for TP and SL lines
* Risk/Reward Ratio (RR) freely adjustable
* Tolerance (%) for deviation of lows
📈 Use Case
This indicator is especially useful for chart technicians & pattern traders who trade W-formations (Double Bottoms).
With the automatic calculation of TP & SL, it becomes instantly clear whether a trade is worth taking.
⚠️ Disclaimer:
This indicator is not financial advice. It is intended for educational and analytical purposes only.
Use it in trading at your own risk
Grand Master's Candlestick Dominance (ATR Enhanced)### Grand Master's Candlestick Dominance (ATR Enhanced)
**Overview**
Unleash the ancient wisdom of Japanese candlestick charting with a modern twist! This comprehensive Pine Script v5 strategy and indicator scans for over 75 classic and advanced candlestick patterns (bullish, bearish, and neutral), assigning dynamic strength scores (1-10) to each for precise signal filtering. Enhanced with Average True Range (ATR) for volatility-aware body size validation, it dominates the markets by combining timeless pattern recognition with robust confirmation layers. Whether used as a backtestable strategy or visual indicator, it empowers traders to spot high-probability reversals, continuations, and indecision setups with surgical accuracy.
Inspired by Steve Nison's *Japanese Candlestick Charting Techniques*, this tool elevates pattern analysis beyond basics—think Hammers, Engulfing patterns, Morning Stars, and rare gems like Abandoned Baby or Concealing Baby Swallow—all consolidated into intelligent arrays for real-time averaging and prioritization.
**Key Features**
- **Extensive Pattern Library**:
- **Bullish (25+ patterns)**: Hammer (8.0), Bullish Engulfing (10.0), Morning Star (7.0), Three White Soldiers (9.0), Dragonfly Doji (8.0), and more (e.g., Rising Three, Unique Three River Bottom).
- **Bearish (25+ patterns)**: Hanging Man (8.0), Bearish Engulfing (10.0), Evening Star (7.0), Three Black Crows (9.0), Gravestone Doji (8.0), and exotics like Upside Gap Two Crows or Stalled Pattern.
- **Neutral/Indecision (34+ patterns)**: Doji variants (Long-Legged, Four Price), Spinning Tops, Harami Crosses, and multi-bar setups like Upside Tasuki Gap or Advancing Block.
Each pattern includes duration tracking (1-5 bars) and ATR-adjusted body/shadow criteria for relevance in volatile conditions.
- **Smart Confirmation Filters** (All Toggleable):
- **Trend Alignment**: 20-period SMA (customizable) ensures entries align with the prevailing trend; optional higher timeframe (e.g., Daily) MA crossover for multi-timeframe confluence.
- **Support/Resistance (S/R)**: Pivot-based levels with 0.01% tolerance to confirm bounces or breaks.
- **Volume Surge**: 20-period volume MA with 1.5x spike multiplier to validate momentum.
- **ATR Body Sizing**: Filters small bodies (<0.3x ATR) and long bodies (>0.8x ATR) for context-aware pattern reliability.
- **Follow-Through**: Ensures post-pattern confirmation via bullish/bearish closes or closes beyond prior bars.
Minimum average strength (default 7.0) and individual pattern thresholds (5.0) prevent weak signals.
- **Entry & Exit Logic**:
- **Long Entry**: Bullish average strength ≥7.0 (outweighing bearish), uptrend, volume spike, near support, follow-through, and HTF alignment.
- **Short Entry**: Mirror for bearish dominance in downtrends near resistance.
- **Exits**: Bearish/neutral shift, or fixed TP (5%) / SL (2%)—pyramiding disabled, 10% equity sizing.
- Backtest range: Jan 1, 2020 – Dec 31, 2025 (editable). Initial capital: $10,000.
- **Interactive Dashboard** (Top-Right Panel):
Real-time insights including:
- Market phase (e.g., "Bullish Phase (Avg Str: 8.2)"), active pattern (e.g., "BULLISH: Bullish Engulfing (Str: 10.0, Bars: 2)"), and trend status.
- Strength breakdowns (Bull/Bear/Neutral counts & averages).
- Filter status (e.g., "Volume: ✔ Spike", "ATR: Enabled (L:0.8, S:0.3)").
- Backtest stats: Total trades, win rate, streak, and last entry/exit details (price & timestamp).
Toggle mode: Strategy (live trades) or Indicator (signals only).
- **Advanced Alerts** (15+ Toggleable Types):
Set up via TradingView's "Any alert() function call" for bar-close triggers:
- Entry/Exit signals with strength & pattern details.
- Strong patterns (≥2 bullish/bearish), neutral indecision, volume spikes.
- S/R breakouts, HTF reversals, high-confidence singles (≥8.0 strength).
- Conflicting signals, MA crossovers, ATR volatility bursts, multi-bar completions.
Example: "STRONG BULLISH PATTERN detected! Strength: 9.5 | Top Pattern: Three White Soldiers | Trend: Up".
**Customization & Usage Tips**
- **Inputs Groups**: Strategy toggles, confirmations, exits, backtest dates, and 15+ alert switches—all intuitively grouped.
- **Optimization**: Tune min strengths for aggressive (lower) or conservative (higher) trading; enable/disable filters to suit your style (e.g., disable S/R for scalping).
- **Best For**: Forex, stocks, crypto on 1H–Daily charts. Test on historical data to refine TP/SL.
- **Limitations**: No external data installs; relies on built-in TA functions. Patterns are probabilistic—combine with your risk management.
Master the candles like a grandmaster. Deploy on TradingView, backtest relentlessly, and let dominance begin! Questions? Drop a comment.
*Version: 1.0 | Updated: September 2025 | Credits: Built on Pine Script v5 with nods to Nison's timeless techniques.*
Outside the Bollinger Bands Alerting Indicator Overview
The Outside the Bollinger Bands Alerting Indicator is a comprehensive technical analysis tool that combines multiple proven
indicators into a single, powerful system designed to identify high-probability reversal patterns at Bollinger Band extremes. This
indicator goes beyond simple band touches to detect sophisticated pattern formations that often signal strong directional moves.
Key Features & Capabilities
🎯 Advanced Pattern Recognition
Bollinger Band Breakout Patterns
- Detects "pierce-and-reject" formations where price breaks through a Bollinger Band but immediately reverses back inside
- Identifies failed breakouts that often lead to strong moves in the opposite direction
- Combines multiple confirmation signals: engulfing candle patterns, MACD momentum, and ATR volatility filters
- Visual alerts with symbols positioned below (bullish) or above (bearish) candles
Tweezer Top & Bottom Patterns
- Identifies consecutive candles with nearly identical highs (tweezer tops) or lows (tweezer bottoms)
- Requires at least one candle to breach the respective Bollinger Band
- Confirms reversal with directional close requirements
- Customizable tolerance settings for pattern sensitivity
- Visual alerts with ❙❙ symbols for easy identification
📊 Multi-Indicator Integration
Bollinger Bands Indicator
- Dual-band configuration with outer (2.0 std dev) and inner (1.5 std dev) bands that can be adjusted to suit your own parameters
- Configurable MA types: SMA, EMA, SMMA (RMA), WMA, VWMA
- Customizable length, source, and offset parameters
- Color-coded band fills for visual clarity
Moving Average Suite
- EMA 9, 21, 50, and 200 (individually toggleable)
- Special "SMA 3 High" for help visualizing and detecting Bollinger Band break-outs
- Dynamic color coding based on price relationship
Optional Ichimoku Cloud overlay
- Complete Ichimoku implementation with customizable periods
- Dynamic cloud coloring based on trend direction
- Toggleable overlay that doesn't interfere with other indicators
🚨 Comprehensive Alert System
Real-Time JSON Alerts
- Sends structured data on every confirmed bar close
- Includes all indicator values: BB levels, EMAs, MACD, RSI
- Contains signal states and crossover conditions
- Perfect for automated trading systems and webhooks
{"timestamp":1753118700000,"symbol":"ETHUSD","timeframe":"5","price":3773.3,"bollinger_bands":{"upper":3826.95,"basis":3788.32,"lower":3749.68},"emas":{"ema_9":3780.45,"ema_21":3788.92,"ema_50":3800.79,"ema_200":3787.74,"sma_3_high":3789.45},"macd":{"macd":-10.1932,"signal":-11.3266,"histogram":1.1334},"rsi":{"rsi":40.5,"rsi_ma":39.32,"level":"neutral"}}
Specific Alert Conditions
- MACD histogram state changes (rising to falling, falling to rising)
- RSI overbought/oversold crossovers
- All pattern detections (BB Bounce, Tweezer patterns)
- Bollinger Band breakout alerts
🎨 Visual Elements
Pattern Identification
- ♻ symbols for Bollinger Band breakout patterns (green for bullish, red for bearish)
- ❙❙ symbols for tweezer patterns (green below for bottoms, red above for tops)
- Color-coded band fills for trend visualization
Chart Overlay Options
- All moving averages with distinct colors
- Bollinger Bands with inner and outer boundaries
- Optional Ichimoku cloud with trend-based coloring
Trading Applications
Reversal Trading
- Identify high-probability reversal points at extreme price levels
- Use failed breakout patterns for entry signals
- Combine multiple timeframes for enhanced accuracy
Trend Analysis
- Monitor moving average relationships for trend direction
- Use Ichimoku cloud for trend strength assessment
- Track momentum with MACD and RSI integration
Risk Management
- ATR-based volatility filtering reduces false signals
- Multiple confirmation requirements improve signal quality
- Real-time alerts enable prompt decision making
Suggested Use
- Use on multiple timeframes for confluence
- Combine with support/resistance levels for enhanced accuracy
- Set up alerts for hands-free monitoring
- Customize settings based on market volatility and trading style
- Consider volume confirmation for stronger signals
3-1-3 PatternThis Pine Script indicator analyzes and visualizes a specific candlestick pattern called the "3-1-3 Pattern" across multiple timeframes. Here's what it does:
Core Functionality
Pattern Detection: The script looks for a 7-bar candlestick pattern:
Bearish 3-1-3: 3 red candles + 1 green candle + 3 red candles
Bullish 3-1-3: 3 green candles + 1 red candle + 3 green candles
Visual Output
When a 3-1-3 pattern is detected, the script:
Creates a colored box around the middle bar (bar 3) of the pattern
Adds a small label showing the pattern type ("Bear 1H" or "Bull 4H", etc.)
Extends the box forward until the price breaks above the pattern's high or below its low
Pattern Management
The script actively manages the patterns by:
Tracking active patterns for each timeframe separately
Removing expired patterns when price breaks the pattern's high/low levels
Extending boxes to the current time to keep them visible
Practical Use
This indicator helps traders:
Spot reversal patterns across multiple timeframes simultaneously
See confluence when patterns align on different timeframes
Track pattern validity (boxes disappear when invalidated by price action)
Essentially, it's a multi-timeframe pattern recognition tool that automatically identifies and tracks these specific 7-bar reversal patterns on your chart.
IU Inside/Harami candlestick patternDESCRIPTION
The IU Inside/Harami Candlestick Pattern indicator is designed to detect bullish and bearish inside bar formations, also known as Harami patterns. This tool gives users flexibility by allowing pattern detection based on candle wicks, bodies, or a combination of both. It highlights detected patterns using colored boxes and optional text labels on the chart, helping traders quickly identify areas of consolidation and potential reversals.
USER INPUTS :
Pattern Recognition Based on =
Choose between "Wicks", "Body", or "Both" to determine how the inside candle pattern is identified.
Show Box =
Toggle the appearance of colored boxes that highlight the pattern zone.
Show Text =
Toggle on-screen labels for "Bullish Inside" or "Bearish Inside" when patterns are detected.
INDICATOR LOGIC :
Bullish Inside Bar (Harami) is detected when:
* The current candle's high is lower and low is higher than the previous candle (wick-based),
* or the current candle’s open and close are inside the previous candle’s body (body-based),
* and the current candle is bullish while the previous is bearish.
Bearish Inside Bar (Harami) is detected when:
* The current candle's high is lower and low is higher than the previous candle (wick-based),
* or the current candle’s open and close are inside the previous candle’s body (body-based),
* and the current candle is bearish while the previous is bullish.
The user can choose wick-based, body-based, or both logics for pattern confirmation.
Boxes are drawn between the highs and lows of the pattern, and alert messages are generated upon confirmation.
Optional labels show the pattern name for quick visual identification.
WHY IT IS UNIQUE :
Offers three different logic modes: wick-based, body-based, or combined.
Highlights patterns visually with customizable boxes and labels.
Includes built-in alerts for immediate notifications.
Uses clean and transparent plotting without repainting.
HOW USER CAN BENEFIT FROM IT :
Receive real-time alerts when Inside/Harami patterns are formed.
Use the boxes and text labels to spot price compression zones and breakout potential.
Combine it with other tools like trendlines or support/resistance for enhanced accuracy.
Suitable for scalpers, swing traders, and price action traders looking to trade inside bar breakouts or reversals.
DISCLAIMER :
This indicator is not financial advice, it's for educational purposes only highlighting the power of coding( pine script) in TradingView, I am not a SEBI-registered advisor. Trading and investing involve risk, and you should consult with a qualified financial advisor before making any trading decisions. I do not guarantee profits or take responsibility for any losses you may incur.
Dkoderweb repainting issue fix indicator# Harmonic Pattern Trading Indicator for TradingView
This indicator, called "Dkoderweb repainting issue fix indicator," is designed to identify and trade harmonic chart patterns in financial markets. It uses Fibonacci relationships between price points to detect various patterns like Bat, Butterfly, Gartley, Crab, Shark, and others.
## Key Features:
- **Pattern Recognition**: Automatically identifies over a dozen harmonic patterns including standard and anti-patterns
- **Customizable Settings**: Options to use Heikin Ashi candles and alternate timeframes
- **Fibonacci Levels**: Configurable display of key Fibonacci retracement levels
- **Entry and Exit Signals**: Clear buy/sell signals with visual triangles above/below bars
- **Trade Management**: Automatic take-profit and stop-loss levels based on Fibonacci relationships
- **Visual Aids**: Color-coded backgrounds to highlight active trade zones
- **Alert System**: Customizable alert messages for trade entries and exits
## How It Works:
The indicator uses a zigzag function to identify significant price pivots, then analyzes the relationships between these pivots to detect specific harmonic patterns. When a valid pattern forms and price reaches the entry zone (defined by a Fibonacci level), the indicator generates a trade signal.
Each pattern has specific Fibonacci ratio requirements between its points, and the indicator continuously scans for these relationships. Trade management is handled automatically with predefined take-profit and stop-loss levels.
This version specifically addresses repainting issues that are common in pattern-detection indicators, making it more reliable for both backtesting and live trading.






















