Divergence Confirmation System [JOAT]Divergence Confirmation System
Introduction
The Divergence Confirmation System (DCS) is an advanced open-source multi-oscillator divergence detection indicator that combines RSI, MFI, Stochastic, MACD, CCI, and Stochastic RSI analysis to identify high-probability divergence setups through systematic pivot comparison and multi-oscillator confirmation. This indicator reveals when price action diverges from underlying momentum across six independent oscillators, providing traders with early warning signals of potential trend reversals or continuations through rigorous confirmation requirements.
Unlike basic divergence indicators that rely on a single oscillator, DCS employs a sophisticated 6-oscillator confirmation system that detects both regular divergences (trend reversal signals) and hidden divergences (trend continuation signals) across multiple momentum indicators. The indicator requires minimum oscillator confirmation (default 2/6) to filter false signals and provides divergence strength scoring based on oscillator count, volume confirmation, and price momentum.
Why This Indicator Exists
This indicator addresses the challenge of identifying reliable divergence signals in noisy market conditions. Single-oscillator divergences often produce false signals, but when multiple independent oscillators confirm the same divergence pattern, probability of successful reversal increases significantly. DCS systematically reveals:
6-Oscillator Analysis: RSI, MFI, Stochastic, MACD, CCI, Stochastic RSI for comprehensive momentum assessment
Regular Divergence Detection: Price makes new high/low but oscillators don't confirm (reversal signal)
Hidden Divergence Detection: Price makes higher low/lower high but oscillators show opposite (continuation signal)
Multi-Oscillator Confirmation: Requires 2+ oscillators to agree before generating signal
Divergence Strength Scoring: 0-100% score based on oscillator count, volume, and momentum
Multi-Timeframe Divergence: Confirms divergences on higher timeframe for added conviction
Divergence Clustering: Detects multiple divergences in short period indicating strong reversal potential
Each component provides unique intelligence. Multiple oscillators reduce false signals, regular divergences show reversals, hidden divergences show continuations, strength scoring quantifies quality, MTF confirmation adds conviction, and clustering shows intensity.
Core Components Explained
1. Multi-Oscillator Divergence Detection System
DCS calculates six independent oscillators and detects divergences on each:
// RSI
float rsi = ta.rsi(close, rsi_period)
float rsi_high = ta.pivothigh(rsi, pivot_left, pivot_right)
float rsi_low = ta.pivotlow(rsi, pivot_left, pivot_right)
// MFI (Money Flow Index - volume-weighted RSI)
float mfi = ta.mfi(hlc3, mfi_period)
// Stochastic
float stoch_k = ta.stoch(close, high, low, stoch_period)
// MACD Histogram
= ta.macd(close, macd_fast, macd_slow, macd_signal)
// CCI (Commodity Channel Index)
float cci = ta.cci(close, 20)
// Stochastic RSI
float rsi_for_stoch = ta.rsi(close, rsi_period)
float stoch_rsi_k = ta.stoch(rsi_for_stoch, rsi_for_stoch, rsi_for_stoch, stoch_period)
Each oscillator provides independent momentum perspective. RSI shows price momentum, MFI adds volume weighting, Stochastic shows position in range, MACD shows trend momentum, CCI shows deviation from mean, and Stochastic RSI shows RSI momentum.
2. Regular Divergence Detection (Reversal Signals)
Regular bullish divergence occurs when price makes lower low but oscillator makes higher low:
f_detect_bull_regular_div(float osc_val, float osc_pivot) =>
bool detected = false
if not na(osc_pivot) and not na(price_low) and array.size(price_lows) >= 2
float curr_price = array.get(price_lows, last_idx)
float prev_price = array.get(price_lows, prev_idx)
// Price makes lower low, oscillator makes higher low
if curr_price < prev_price and osc_pivot > osc_pivot
if (bar_index - prev_bar) <= max_pivot_distance
detected := true
detected
Regular bearish divergence occurs when price makes higher high but oscillator makes lower high. These signal potential trend reversals.
3. Hidden Divergence Detection (Continuation Signals)
Hidden bullish divergence occurs when price makes higher low but oscillator makes lower low:
f_detect_bull_hidden_div(float osc_val, float osc_pivot) =>
bool detected = false
if detect_hidden and not na(osc_pivot) and not na(price_low)
float curr_price = array.get(price_lows, last_idx)
float prev_price = array.get(price_lows, prev_idx)
// Price makes higher low, oscillator makes lower low
if curr_price > prev_price and osc_pivot < osc_pivot
if (bar_index - prev_bar) <= max_pivot_distance
detected := true
detected
Hidden bearish divergence occurs when price makes lower high but oscillator makes higher high. These signal trend continuation after pullback.
4. Multi-Oscillator Confirmation Aggregation
DCS counts how many oscillators confirm each divergence type:
int bull_reg_count = (rsi_bull_reg ? 1 : 0) + (mfi_bull_reg ? 1 : 0) +
(stoch_bull_reg ? 1 : 0) + (macd_bull_reg ? 1 : 0) +
(cci_bull_reg ? 1 : 0) + (srsi_bull_reg ? 1 : 0)
bool confirmed_bull_regular = bull_reg_count >= min_oscillators
// Optional volume confirmation
float vol_avg = ta.sma(volume, 20)
bool vol_confirm = volume > vol_avg * 1.2
bool final_bull_regular = confirmed_bull_regular and
(not require_volume_confirm or vol_confirm)
Minimum oscillator requirement (default 2/6) filters false signals. Volume confirmation adds additional filter.
5. Divergence Strength Scoring System
Strength score (0-100%) calculated from multiple factors:
f_divergence_strength(int osc_count, bool vol_confirm_param, float price_momentum) =>
float score = 0.0
// Oscillator count (0-50 points)
score += osc_count * 8.33 // 6 oscillators max = 50 points
// Volume confirmation (0-25 points)
score += vol_confirm_param ? 25 : 0
// Price momentum (0-25 points)
float momentum_score = math.min(math.abs(price_momentum) * 5, 25)
score += momentum_score
math.min(score, 100)
Strength classification:
- 75-100%: Very Strong (highest probability)
- 60-74%: Strong (high probability)
- 40-59%: Moderate (medium probability)
- 0-39%: Weak (low probability)
6. Multi-Timeframe Divergence Confirmation
DCS checks for divergences on higher timeframe (default 15m):
f_get_htf_divergence(string tf) =>
= request.security(syminfo.tickerid, tf,
)
float htf_rsi_high = ta.pivothigh(htf_rsi, pivot_left, pivot_right)
float htf_rsi_low = ta.pivotlow(htf_rsi, pivot_left, pivot_right)
bool htf_bull = f_detect_bull_regular_div(htf_rsi, htf_rsi_low)
bool htf_bear = f_detect_bear_regular_div(htf_rsi, htf_rsi_high)
bool mtf_bull_confirmed = final_bull_regular and htf_bull_div
bool mtf_bear_confirmed = final_bear_regular and htf_bear_div
MTF confirmation significantly increases signal reliability.
7. Divergence Clustering Detection
Clustering identifies multiple divergences in short period:
var array div_bars = array.new_int(0)
if final_bull_regular or final_bear_regular
array.push(div_bars, bar_index)
// Count divergences in last 50 bars
int recent_div_count = 0
for i = 0 to array.size(div_bars) - 1
int div_bar = array.get(div_bars, i)
if bar_index - div_bar <= 50
recent_div_count += 1
bool in_div_cluster = recent_div_count >= 3
string cluster_intensity = recent_div_count >= 5 ? "High" :
recent_div_count >= 3 ? "Moderate" : "Low"
Clusters indicate strong reversal pressure building.
Visual Elements
Primary Oscillator Display: User-selectable (RSI/MFI/Stochastic/MACD) with gradient shadow effect
Reference Lines: 70 (overbought), 50 (midline), 30 (oversold)
Oscillator Histogram: Gradient-colored bars showing oscillator deviation from 50
Background Zones: Cyan for bullish divergence, red for bearish divergence
Divergence Labels: "BULL DIV" or "BEAR DIV" with oscillator count (e.g., "4/6")
Hidden Divergence Markers: Small "H" circles for hidden divergences
Elite Signals: Large labels for 4+ oscillator confirmation with strength >75%
MTF Confirmation: Triangle markers when higher timeframe confirms
Multi-Oscillator Confirmation: Labels showing oscillator count (e.g., "3/6 CONF")
Institutional Flow: "INST BUY/SELL" labels when delta confirms divergence
Input Parameters
Oscillator Settings:
RSI Period: RSI calculation period (default: 14)
MFI Period: MFI calculation period (default: 14)
Stochastic Period: Stochastic calculation period (default: 14)
MACD Fast: MACD fast EMA (default: 12)
MACD Slow: MACD slow EMA (default: 26)
MACD Signal: MACD signal line (default: 9)
Divergence Detection:
Pivot Left Bars: Bars to left of pivot (default: 5)
Pivot Right Bars: Bars to right of pivot (default: 2)
Detect Hidden Divergences: Toggle hidden divergence detection (default: true)
Max Pivot Distance: Maximum bars between pivots (default: 60)
Confirmation Rules:
Minimum Oscillator Confirmation: Required oscillators (default: 2/6)
Require Volume Confirmation: Toggle volume filter (default: false)
Visualization:
Show Divergence Lines: Toggle divergence line drawing (default: true)
Show Labels: Toggle divergence labels (default: true)
Primary Display: Select oscillator to display (RSI/MFI/Stochastic/MACD)
How to Use This Indicator
Step 1: Monitor Primary Oscillator
Watch selected oscillator (default RSI) for overbought/oversold conditions.
Step 2: Wait for Divergence Labels
"BULL DIV" or "BEAR DIV" labels appear when 2+ oscillators confirm divergence.
Step 3: Check Oscillator Count
Higher count = higher probability. 4/6 or better is ideal.
Step 4: Assess Divergence Strength
Tooltip shows strength percentage. >75% is very strong, >60% is strong.
Step 5: Confirm with MTF
Triangle markers indicate higher timeframe confirmation - highest probability setups.
Step 6: Watch for Elite Signals
Large "BULL DIV" or "BEAR DIV" labels with 4+ oscillators and >75% strength are highest conviction.
Best Practices
Focus on divergences with 3+ oscillator confirmation for best results
Regular divergences work best at price extremes (support/resistance)
Hidden divergences confirm trend continuation - trade with trend
MTF confirmation adds significant edge - wait when possible
Divergence clustering indicates strong reversal pressure
Volume confirmation reduces false signals but adds lag
Elite signals (4+ oscillators, >75% strength) have highest win rate
Use cooldown system (15 bars minimum) to avoid overtrading
Combine with price action - divergence shows momentum, price shows structure
Indicator Limitations
Divergence detection requires clear pivot formation - lags by pivot_right bars
Multiple oscillators can produce conflicting signals during choppy markets
Hidden divergences are less reliable than regular divergences
Strength scoring is probabilistic, not deterministic
MTF confirmation adds lag but increases reliability
Clustering detection has fixed lookback - may miss longer-term patterns
Volume confirmation may not work well on illiquid instruments
Extreme market conditions can invalidate divergence signals
Technical Implementation
Built with Pine Script v6 using:
6-oscillator system (RSI, MFI, Stochastic, MACD, CCI, Stochastic RSI)
Pivot-based divergence detection with array tracking
Regular and hidden divergence algorithms
Multi-oscillator confirmation aggregation
Divergence strength scoring (oscillator count + volume + momentum)
Multi-timeframe security requests for HTF confirmation
Divergence clustering detection (50-bar lookback)
Signal cooldown system (15 bars minimum)
Gradient visualization with dynamic coloring
Institutional flow integration (CVD delta analysis)
Elite signal filtering (4+ oscillators, >75% strength)
The code is fully open-source and can be modified to suit individual trading styles.
Originality Statement
This indicator is original in its comprehensive multi-oscillator divergence confirmation approach. While individual oscillator divergences are established concepts, this indicator is justified because:
It combines 6 independent oscillators (RSI, MFI, Stochastic, MACD, CCI, Stochastic RSI) for robust confirmation
The multi-oscillator confirmation system (2-6 required) significantly reduces false signals
Divergence strength scoring quantifies setup quality through multi-factor analysis
Multi-timeframe divergence confirmation adds conviction layer
Divergence clustering detection identifies high-probability reversal zones
Integration of institutional flow (CVD delta) with divergence analysis is unique
Elite signal filtering (4+ oscillators, >75% strength) isolates highest probability setups
Signal cooldown system prevents overtrading while maintaining signal quality
Each component contributes unique information: multiple oscillators reduce false signals, regular divergences show reversals, hidden divergences show continuations, strength scoring quantifies quality, MTF confirmation adds conviction, clustering shows intensity, and institutional flow confirms with volume. The indicator's value lies in presenting these complementary perspectives simultaneously with rigorous confirmation requirements.
Disclaimer
This indicator is provided for educational and informational purposes only. It is not financial advice. Divergence signals do not guarantee reversals. Trading involves substantial risk of loss. Past performance does not guarantee future results. Always use proper risk management and never risk more than you can afford to lose.
-Made with passion by officialjackofalltrades
Chỉ báo






















