Chop and explodeThe purpose of this script is to decipher chop zones from runs/movement/explosion
The chop is RSI movement between 40 and 60
tight chop is RSI movement between 45 and 55. There should be an explosion after RSI breaks through 60 (long) or 40 (short). Tight chop bars are colored black, a series of black bars is tight consolidation and should explode imminently. The longer the chop the longer the explosion will go for. tighter the better.
Loose chop (whip saw/yellow bars) will range between 40 and 60.
the move begins with blue bars for long and purple bars for short.
Couple it with your trading system to help stay out of chop and enter when there is movement. Use with "Simple Trender."
Best of luck in all you do. Get money.
Recherche dans les scripts pour "信达股份40周年"
Edge of MomentumThe script was designed for the purpose of catching the rocket portion of a move (the edge of momentum).
Long
--When RSI closes over 60, take long order 1 tick above that bar. The closed bar above RSI 60 will be colored "green" or whatever color the user chooses. (RSI > 60)
--On a long position, exit will be a closed bar below the ema (low, 10) . The closed bar below the ema will be colored "yellow." (Price < ema)
--Note: On a long position there is no need to exit when a closed bar is colored "purple." RSI is just below 60 but above 40. Pullback or chop
Short
--When RSI closes below 40, take a short order 1 tick below that bar. The closed bar below RSI 40 will be colored "red." RSI<40)
--On a short position, exit will be a closed bar above the ema (low, 10). The closed bar above the ema will be colored "purple." (Price > ema)
--Note: On a short position there is no need to exit when a closed bar is colored "yellow."
Note: You may see a series of purple and yellow bars, that is simply chop. I define chop as RSI moving between 60 and 40.
Trade should only be taken above green colored candle(long) and below red colored candle (short). No position should be taken off yellow or purple candle (chop)
Again this is designed to catch the momentum part of a move, and to help reduce some entries during chop. It is a simple systems that beginning traders can use and profit from.
Note: I don't no shit about coding scripts I just learn from reading others.
Enjoy. If you decide to use please drop me a line...suggestions/comments, etc.
Best of luck in all you do.
Money Flow Index + AlertsThis study is based on the work of TV user Beasley Savage ( ) and all credit goes to them.
Changes I've made:
1. Added a visual symbol of an overbought/oversold threshold cross in the form of a red/green circle, respectively. Sometimes it can be hard to see when a cross actually occurs, and if your scaling isn't set up properly you can get misleading visuals. This way removes all doubt. Bear in mind they aren't meant as trading signals, so DO NOT use them as such. Research the MFI if you're unsure, but I use them as an early warning and that particular market/stock is added to my watchlist.
2. Added 60/40 lines as the MFI respects these incredibly well in trends. E.g. in a solid uptrend the MFI won't go below 40, and vice versa. Use the idea of support and resistance levels on the indicator and it'll be a great help. I've coloured the zones. Strong uptrends should stay above 60, strong downtrends should stay below 40. The zone in between 40-60 I've called the transition zone. MFI often stays here in consolidation periods, and in the last leg of a cycle/trend the MFI will often drop into this zone after being above 60 or below 40. This is a great sign that you should get out and start looking to reverse your position. Hopefully it helps to spot divergences as well.
3. Added alerts based on an overbought/oversold cross. Also added an alert for when either condition is triggered, so hopefully that's useful for those struggling with low alert limits. Feel free to change the overbought/oversold levels, the alerts + crossover visual are set to adapt.
Like any indicator, don't use this one alone. It works best paired with indicators/techniques that contradict it. You'll often see a OB/OS cross, and price will continue on it's way for many weeks more. But MFI is a great tool for identifying upcoming trend changes.
Any queries please comment or PM me.
Cheers,
RJR
Average Directional Index with DI SpreadThis indicator converts conventional triple lined ADX, DI+ and DI- into two lines. First line is the
original ADX line and second line is obtained by subtracting DI- from DI+ which named DI Spread(DIS)
If ADX is greater than 20 there is a trend and if greater than 40 there is a strong trend but ADX does not tell
the trend direction
To determine trend direction, DIS can be used with ADX; Sımply; If DIS is greater than 0, it is an uptrend and If DIS
is less than 0, it is a downtrend.
To sum up;
If ADX is greater than 20 and especially greater than 40 with positive DIS value, this implies an uptrend.
If ADX is greater than 20 and especially greater than 40 with negative DIS value, this implies a downtrend.
*Because of coloration and reference levels used, this indicator is really simple and efficient to analyze trend direction.
90009If( MDI(14)>40 AND ADX(14)>40 AND PDI(14)<15 AND RSI(14)<30,1,0)
;If( MDI(14)<15 AND ADX(14)<15 AND PDI(14)>40 AND RSI(14)>70,-1,0)
CM_ADX+DMI ModMashed together Chris Moody's ADX thing with his DMI thing.
So you can see trend strength + direction
green-ish = uptrend-ish//red-ish = downtrend-ish
Colors can be adjusted though.
below 10 = gray, not much going on
10 - 20 = light green/light red, could be the beginning o something
20 - 40 = bright green / bright red, something is going on
above 40 = dark green, dark red, exhaustion (default is 40, can be adjusted to whatever)
Indicators: Volume Zone Indicator & Price Zone IndicatorVolume Zone Indicator (VZO) and Price Zone Indicator (PZO) are by Waleed Aly Khalil.
Volume Zone Indicator (VZO)
------------------------------------------------------------
VZO is a leading volume oscillator that evaluates volume in relation to the direction of the net price change on each bar.
A value of 40 or above shows bullish accumulation. Low values (< 40) are bearish. Near zero or between +/- 20, the market is either in consolidation or near a break out. When VZO is near +/- 60, an end to the bull/bear run should be expected soon. If that run has been opposite to the long term price trend direction, then a reversal often will occur.
Traditional way of looking at this also works:
* +/- 40 levels are overbought / oversold
* +/- 60 levels are extreme overbought / oversold
More info:
drive.google.com
Price Zone Indicator (PZO)
------------------------------------------------------------
PZO is interpreted the same way as VZO (same formula with "close" substituted for "volume").
Chart Markings
------------------------------------------------------------
In the chart above,
* The red circles indicate a run-end (or reversal) zones (VZO +/- 60).
* Blue rectangle shows the consolidation zone (VZO betwen +/- 20)
I have been trying out VZO only for a week now, but I think this has lot of potential. Give it a try, let me know what you think.
Fed Rate ProbabilityFed Rate Probability – Simple & Clean v2.0
Real-time composite score (0–100) for the next Fed move: Rate Cut, Hike or Hold
Overview
A clean, all-in-one indicator that combines the most reliable market signals into two easy-to-read lines:
• Red line → Probability of RATE CUT
• Blue line → Probability of RATE HIKE
• Hold score = 100 – max(cut, hike)
The dominant signal (CUT / HOLD / HIKE) is highlighted in the information table.
Key Features
Automatic daily data from FRED (DFF, 3M/1M/2Y/10Y yields)
Smart fallback to TradingView native symbols (US01MY, US03MY, US02Y, US10Y) when FRED is unavailable
Manual CME FedWatch probability override (perfect for weekends/holidays)
Historical Fed rate cut/hike markers with background shading and labels
Colored probability zones + customizable threshold lines
Threshold-crossing labels and full alert suite
Special alert on 2Y-10Y yield curve un-inversion (strong historical precursor to rate cuts)
Detailed summary table with current spreads, scores and dominant signal
Fully customizable: enable/disable each component, adjust weights indirectly via toggles, change smoothing, thresholds, colors, etc.
Score Composition (0–100 points)
T-bills vs Fed Funds spread – max 50 pts (with persistence & 1M confirmation bonus)
2-Year Treasury vs Fed Funds spread – max 30 pts (or direct CME probability input)
2Y-10Y yield curve behavior – max 20 pts (inversion depth + large bonus on steepening after un-inversion)
Interpretation
0–40 → Low probability
40–60 → Moderate
60–75 → High
75–100 → Very High / Almost certain
Why this indicator?
Instead of checking FRED, CME FedWatch, yield curves and T-bill spreads separately, get everything in one pane with a clear, smoothed composite score and instant alerts when the market starts pricing a Fed move aggressively.
Disclaimer
This is a decision-support tool based on historical relationships and current market pricing. It is not financial advice and past performance is no guarantee of future results.
Enjoy and trade safe! 🚀
VV Moving Average Convergence Divergence # VMACDv3 - Volume-Weighted MACD with A/D Divergence Detection
## Overview
**VMACDv3** (Volume-Weighted Moving Average Convergence Divergence Version 3) is a momentum indicator that applies volume-weighting to traditional MACD calculations on price, while using the Accumulation/Distribution (A/D) line for divergence detection. This hybrid approach combines volume-weighted price momentum with volume distribution analysis for comprehensive market insight.
## Key Features
- **Volume-Weighted Price MACD**: Traditional MACD calculation on price but weighted by volume for earlier signals
- **A/D Divergence Detection**: Identifies when A/D trend diverges from MACD momentum
- **Volume Strength Filtering**: Distinguishes high-volume confirmations from low-volume noise
- **Color-Coded Histogram**: 4-color system showing momentum direction and volume strength
- **Real-Time Alerts**: Background colors and alert conditions for bullish/bearish divergences
## Difference from ACCDv3
| Aspect | VMACDv3 | ACCDv3 |
|--------|---------|---------|
| **MACD Input** | **Price (Close)** | **A/D Line** |
| **Volume Weighting** | Applied to price | Applied to A/D line |
| **Primary Signal** | Volume-weighted price momentum | Volume distribution momentum |
| **Use Case** | Price momentum with volume confirmation | Volume flow and accumulation/distribution |
| **Sensitivity** | More responsive to price changes | More responsive to volume patterns |
| **Best For** | Trend following, breakouts | Volume analysis, smart money tracking |
**Key Insight**: VMACDv3 shows *where price is going* with volume weight, while ACCDv3 shows *where volume is accumulating/distributing*.
## Components
### 1. Volume-Weighted MACD on Price
Unlike standard MACD that uses simple price EMAs, VMACDv3 weights each price by its corresponding volume:
```
Fast Line = EMA(Price × Volume, 12) / EMA(Volume, 12)
Slow Line = EMA(Price × Volume, 26) / EMA(Volume, 26)
MACD = Fast Line - Slow Line
```
**Benefits of Volume Weighting**:
- High-volume price movements have greater impact
- Filters out low-volume noise and false moves
- Provides earlier trend change signals
- Better reflects institutional activity
### 2. Accumulation/Distribution (A/D) Line
Used for divergence detection, measuring buying/selling pressure:
```
A/D = Σ ((2 × Close - Low - High) / (High - Low)) × Volume
```
- **Rising A/D**: Accumulation (buying pressure)
- **Falling A/D**: Distribution (selling pressure)
- **Doji Handling**: When High = Low, contribution is zero
### 3. Signal Lines
- **MACD Line** (Blue, #2962FF): The fast-slow difference showing momentum
- **Signal Line** (Orange, #FF6D00): EMA or SMA smoothing of MACD
- **Zero Line**: Reference for bullish (above) vs bearish (below) bias
### 4. Histogram Color System
The histogram uses 4 distinct colors based on **direction** and **volume strength**:
| Condition | Color | Meaning |
|-----------|-------|---------|
| Rising + High Volume | **Dark Green** (#1B5E20) | Strong bullish momentum with volume confirmation |
| Rising + Low Volume | **Light Teal** (#26A69A) | Bullish momentum but weak volume (less reliable) |
| Falling + High Volume | **Dark Red** (#B71C1C) | Strong bearish momentum with volume confirmation |
| Falling + Low Volume | **Light Pink** (#FFCDD2) | Bearish momentum but weak volume (less reliable) |
Additional shading:
- **Light Cyan** (#B2DFDB): Positive but not rising (momentum stalling)
- **Bright Red** (#FF5252): Negative and accelerating down
### 5. Divergence Detection
VMACDv3 compares A/D trend against volume-weighted price MACD:
#### Bullish Divergence (Green Background)
- **Condition**: A/D is trending up BUT MACD is negative and trending down
- **Interpretation**: Volume is accumulating while price momentum appears weak
- **Signal**: Smart money accumulation, potential bullish reversal
- **Action**: Look for long entries, especially at support levels
#### Bearish Divergence (Red Background)
- **Condition**: A/D is trending down BUT MACD is positive and trending up
- **Interpretation**: Volume is distributing while price momentum appears strong
- **Signal**: Smart money distribution, potential bearish reversal
- **Action**: Consider exits, avoid new longs, watch for breakdown
## Parameters
| Parameter | Default | Range | Description |
|-----------|---------|-------|-------------|
| **Source** | Close | OHLC/HLC3/etc | Price source for MACD calculation |
| **Fast Length** | 12 | 1-50 | Period for fast EMA (shorter = more sensitive) |
| **Slow Length** | 26 | 1-100 | Period for slow EMA (longer = smoother) |
| **Signal Smoothing** | 9 | 1-50 | Period for signal line (MACD smoothing) |
| **Signal Line MA Type** | EMA | SMA/EMA | Moving average type for signal calculation |
| **Volume MA Length** | 20 | 5-100 | Period for volume average (strength filter) |
## Usage Guide
### Reading the Indicator
1. **MACD Lines (Blue & Orange)**
- **Blue Line (MACD)**: Volume-weighted price momentum
- **Orange Line (Signal)**: Smoothed trend of MACD
- **Crossovers**: Blue crosses above orange = bullish, below = bearish
- **Distance**: Wider gap = stronger momentum
- **Zero Line Position**: Above = bullish bias, below = bearish bias
2. **Histogram Colors**
- **Dark Green (#1B5E20)**: Strong bullish move with high volume - **most reliable buy signal**
- **Light Teal (#26A69A)**: Bullish but low volume - wait for confirmation
- **Dark Red (#B71C1C)**: Strong bearish move with high volume - **most reliable sell signal**
- **Light Pink (#FFCDD2)**: Bearish but low volume - may be temporary dip
3. **Background Divergence Alerts**
- **Green Background**: A/D accumulating while price weak - potential bottom
- **Red Background**: A/D distributing while price strong - potential top
- Most powerful at key support/resistance levels
### Trading Strategies
#### Strategy 1: Volume-Confirmed Trend Following
1. Wait for MACD to cross above zero line
2. Look for **dark green** histogram bars (high volume confirmation)
3. Enter long on second consecutive dark green bar
4. Hold while histogram remains green
5. Exit when histogram turns light green or red appears
6. Set stop below recent swing low
**Example**:
```
Price: 26,400 → 26,450 (rising)
MACD: -50 → +20 (crosses zero)
Histogram: Light teal → Dark green → Dark green
Volume: 50k → 75k → 90k (increasing)
```
#### Strategy 2: Divergence Reversal Trading
1. Identify divergence background (green = bullish, red = bearish)
2. Confirm with price structure (support/resistance, chart patterns)
3. Wait for MACD to cross signal line in divergence direction
4. Enter on first **dark colored** histogram bar after divergence
5. Set stop beyond divergence area
6. Target previous swing high/low
**Example - Bullish Divergence**:
```
Price: Making lower lows (26,350 → 26,300 → 26,250)
A/D: Rising (accumulation)
MACD: Below zero but starting to curve up
Background: Green shading appears
Entry: MACD crosses signal line + dark green bar
Stop: Below 26,230
Target: 26,450 (previous high)
```
#### Strategy 3: Momentum Scalping
1. Trade only in direction of MACD zero line (above = long, below = short)
2. Enter on dark colored bars only
3. Exit on first light colored bar or opposite color
4. Quick in and out (1-5 minute holds)
5. Tight stops (0.2-0.5% depending on instrument)
#### Strategy 4: Histogram Pattern Trading
**V-Bottom Reversal (Bullish)**:
- Red histogram bars start rising (becoming less negative)
- Forms "V" shape at the bottom
- Transitions to light red → light teal → **dark green**
- Entry: First dark green bar
- Signal: Momentum reversal with volume
**Λ-Top Reversal (Bearish)**:
- Green histogram bars start falling (becoming less positive)
- Forms inverted "V" at the top
- Transitions to light green → light pink → **dark red**
- Entry: First dark red bar
- Signal: Momentum exhaustion with volume
### Multi-Timeframe Analysis
**Recommended Approach**:
1. **Higher Timeframe (15m/1h)**: Identify overall trend direction
2. **Trading Timeframe (5m)**: Time entries using VMACDv3 signals
3. **Lower Timeframe (1m)**: Fine-tune entry prices
**Example Setup**:
```
15-minute: MACD above zero (bullish bias)
5-minute: Dark green histogram appears after pullback
1-minute: Enter on break of recent high with volume
```
### Volume Strength Interpretation
The volume filter compares current volume to 20-period average:
- **Volume > Average**: Dark colors (green/red) - high confidence signals
- **Volume < Average**: Light colors (teal/pink) - lower confidence signals
**Trading Rules**:
- ✓ **Aggressive**: Take all dark colored signals
- ✓ **Conservative**: Only take dark colors that follow 2+ light colors of same type
- ✗ **Avoid**: Trading light colored signals during high volatility
- ✗ **Avoid**: Ignoring volume context during news events
## Technical Details
### Volume-Weighted Calculation
```pine
// Volume-weighted fast EMA
fast_ma = ta.ema(src * volume, fast_length) / ta.ema(volume, fast_length)
// Volume-weighted slow EMA
slow_ma = ta.ema(src * volume, slow_length) / ta.ema(volume, slow_length)
// MACD is the difference
macd = fast_ma - slow_ma
// Signal line smoothing
signal = ta.ema(macd, signal_length) // or ta.sma() if SMA selected
// Histogram
hist = macd - signal
```
### Divergence Detection Logic
```pine
// A/D trending up if above its 5-period SMA
ad_trend = ad > ta.sma(ad, 5)
// MACD trending up if above zero
macd_trend = macd > 0
// Divergence when trends oppose each other
divergence = ad_trend != macd_trend
// Specific conditions for alerts
bullish_divergence = ad_trend and not macd_trend and macd < 0
bearish_divergence = not ad_trend and macd_trend and macd > 0
```
### Histogram Coloring Logic
```pine
hist_color = (hist >= 0
? (hist < hist
? (vol_strength ? #1B5E20 : #26A69A) // Rising: dark/light green
: #B2DFDB) // Positive but falling: cyan
: (hist < hist
? (vol_strength ? #B71C1C : #FFCDD2) // Rising (less negative): dark/light red
: #FF5252)) // Falling more: bright red
```
## Alerts
Built-in alert conditions for divergence detection:
### Bullish Divergence Alert
- **Trigger**: A/D trending up, MACD negative and trending down
- **Message**: "Bullish Divergence: A/D trending up but MACD trending down"
- **Use Case**: Potential reversal or continuation after pullback
- **Action**: Look for long entry setups
### Bearish Divergence Alert
- **Trigger**: A/D trending down, MACD positive and trending up
- **Message**: "Bearish Divergence: A/D trending down but MACD trending up"
- **Use Case**: Potential top or trend reversal
- **Action**: Consider exits or short entries
### Setting Up Alerts
1. Click "Create Alert" in TradingView
2. Condition: Select "VMACDv3"
3. Choose alert type: "Bullish Divergence" or "Bearish Divergence"
4. Configure: Email, SMS, webhook, or popup
5. Set frequency: "Once Per Bar Close" recommended
## Comparison Tables
### VMACDv3 vs Standard MACD
| Feature | Standard MACD | VMACDv3 |
|---------|---------------|---------|
| **Price Weighting** | Equal weight all bars | Volume-weighted |
| **Sensitivity** | Fixed | Adaptive to volume |
| **False Signals** | More during low volume | Fewer (volume filter) |
| **Divergence** | Price vs MACD | A/D vs MACD |
| **Volume Analysis** | None | Built-in |
| **Color System** | 2 colors | 4+ colors |
| **Best For** | Simple trend following | Volume-confirmed trading |
### VMACDv3 vs ACCDv3
| Aspect | VMACDv3 | ACCDv3 |
|--------|---------|--------|
| **Focus** | Price momentum | Volume distribution |
| **Reactivity** | Faster to price moves | Faster to volume shifts |
| **Best Markets** | Trending, breakouts | Accumulation/distribution phases |
| **Signal Type** | Where price + volume going | Where smart money positioning |
| **Divergence Meaning** | Volume vs price disagreement | A/D vs momentum disagreement |
| **Use Together?** | ✓ Yes, complementary | ✓ Yes, different perspectives |
## Example Trading Scenarios
### Scenario 1: Strong Bullish Breakout
```
Time: 9:30 AM (market open)
Price: Breaks above 26,400 resistance
MACD: Crosses above zero line
Histogram: Dark green bars (#1B5E20)
Volume: 2x average (150k vs 75k avg)
A/D: Rising (no divergence)
Action: Enter long at 26,405
Stop: 26,380 (below breakout)
Target 1: 26,450 (risk:reward 1:2)
Target 2: 26,500 (risk:reward 1:4)
Result: High probability setup with volume confirmation
```
### Scenario 2: False Breakout (Avoided)
```
Time: 2:30 PM (slow period)
Price: Breaks above 26,400 resistance
MACD: Slightly positive
Histogram: Light teal bars (#26A69A)
Volume: 0.5x average (40k vs 75k avg)
A/D: Flat/declining
Action: Avoid trade
Reason: Low volume, no conviction, potential false breakout
Outcome: Price reverses back below 26,400 within 10 minutes
Saved: Avoided losing trade due to volume filter
```
### Scenario 3: Bullish Divergence Bottom
```
Time: 11:00 AM
Price: Making lower lows (26,350 → 26,300 → 26,280)
MACD: Below zero but curving upward
Histogram: Red bars getting shorter (V-bottom forming)
Background: Green shading (divergence alert)
A/D: Rising despite price falling
Volume: Increasing on down bars
Setup:
1. Divergence appears at 26,280 (green background)
2. Wait for MACD to cross signal line
3. First dark green bar appears at 26,290
4. Enter long: 26,295 (next bar open)
5. Stop: 26,265 (below divergence low)
6. Target: 26,350 (previous swing high)
Result: +55 points (30 point risk, 1.8:1 reward)
Key: Divergence + volume confirmation = high probability reversal
```
### Scenario 4: Bearish Divergence Top
```
Time: 1:45 PM
Price: Making higher highs (26,500 → 26,520 → 26,540)
MACD: Positive but flattening
Histogram: Green bars getting shorter (Λ-top forming)
Background: Red shading (bearish divergence)
A/D: Declining despite rising price
Volume: Decreasing on up bars
Setup:
1. Bearish divergence at 26,540 (red background)
2. MACD crosses below signal line
3. First dark red bar appears at 26,535
4. Enter short: 26,530
5. Stop: 26,555 (above divergence high)
6. Target: 26,475 (support level)
Result: +55 points (25 point risk, 2.2:1 reward)
Key: Distribution while price rising = smart money exiting
```
### Scenario 5: V-Bottom Reversal
```
Downtrend in progress
MACD: Deep below zero (-150)
Histogram: Series of dark red bars
Pattern Development:
Bar 1: Dark red, hist = -80, falling
Bar 2: Dark red, hist = -95, falling
Bar 3: Dark red, hist = -100, falling (extreme)
Bar 4: Light pink, hist = -98, rising!
Bar 5: Light pink, hist = -90, rising
Bar 6: Light teal, hist = -75, rising (crosses to positive momentum)
Bar 7: Dark green, hist = -55, rising + volume
Action: Enter long on Bar 7
Reason: V-bottom confirmed with volume
Stop: Below Bar 3 low
Target: Zero line on histogram (mean reversion)
```
## Best Practices
### Entry Rules
✓ **Wait for dark colors**: High-volume confirmation is key
✓ **Confirm divergences**: Use with price support/resistance
✓ **Trade with zero line**: Long above, short below for best odds
✓ **Multiple timeframes**: Align 1m, 5m, 15m signals
✓ **Watch for patterns**: V-bottoms and Λ-tops are reliable
### Exit Rules
✓ **Partial profits**: Take 50% at first target
✓ **Trail stops**: Use histogram color changes
✓ **Respect signals**: Exit on opposite dark color
✓ **Time stops**: Close positions before major news
✓ **End of day**: Square up before close
### Avoid
✗ **Don't chase light colors**: Low volume = low confidence
✗ **Don't ignore divergence**: Early warning system
✗ **Don't overtrade**: Wait for clear setups
✗ **Don't fight the trend**: Zero line dictates bias
✗ **Don't skip stops**: Always use risk management
## Risk Management
### Position Sizing
- **Dark green/red signals**: 1-2% account risk
- **Light signals**: 0.5% account risk or skip
- **Divergence plays**: 1% account risk (higher uncertainty)
- **Multiple confirmations**: Up to 2% account risk
### Stop Loss Placement
- **Trend trades**: Below/above recent swing (20-30 points typical)
- **Breakout trades**: Below/above breakout level (15-25 points)
- **Divergence trades**: Beyond divergence extreme (25-40 points)
- **Scalp trades**: Tight stops at 10-15 points
### Profit Targets
- **Minimum**: 1.5:1 reward to risk ratio
- **Scalps**: 15-25 points (quick in/out)
- **Swing**: 50-100 points (hold through pullbacks)
- **Runners**: Trail with histogram color changes
## Timeframe Recommendations
| Timeframe | Trading Style | Typical Hold | Advantages | Challenges |
|-----------|---------------|--------------|------------|------------|
| **1-minute** | Scalping | 1-5 minutes | Fast profits, many setups | Noisy, high false signals |
| **5-minute** | Intraday | 15-60 minutes | Balance of speed/clarity | Still requires quick decisions |
| **15-minute** | Swing | 1-4 hours | Clearer trends, less noise | Fewer opportunities |
| **1-hour** | Position | 4-24 hours | Strong signals, less monitoring | Wider stops required |
**Recommendation**: Start with 5-minute for best balance of signal quality and opportunity frequency.
## Combining with Other Indicators
### VMACDv3 + ACCDv3
- **Use**: Confirm volume flow with price momentum
- **Signal**: Both showing dark green = highest conviction long
- **Divergence**: VMACDv3 bullish + ACCDv3 bearish = examine price action
### VMACDv3 + RSI
- **Use**: Overbought/oversold with momentum confirmation
- **Signal**: RSI < 30 + dark green VMACD = strong reversal
- **Caution**: RSI > 70 + light green VMACD = potential false breakout
### VMACDv3 + Elder Impulse
- **Use**: Bar coloring + histogram confirmation
- **Signal**: Green Elder bars + dark green VMACD = aligned momentum
- **Exit**: Blue Elder bars + light colors = momentum stalling
## Limitations
- **Requires volume data**: Will not work on instruments without volume feed
- **Lagging indicator**: MACD inherently follows price (2-3 bar delay)
- **Consolidation noise**: Generates false signals in tight ranges
- **Gap handling**: Large gaps can distort volume-weighted values
- **Not standalone**: Should combine with price action and support/resistance
## Troubleshooting
**Problem**: Too many light colored signals
**Solution**: Increase Volume MA Length to 30-40 for stricter filtering
**Problem**: Missing entries due to waiting for dark colors
**Solution**: Lower Volume MA Length to 10-15 for more signals (accept lower quality)
**Problem**: Divergences not appearing
**Solution**: Verify volume data available; check if A/D line is calculating
**Problem**: Histogram colors not changing
**Solution**: Ensure real-time data feed; refresh indicator
## Version History
- **v3**: Removed traditional MACD, using volume-weighted MACD on price with A/D divergence
- **v2**: Added A/D divergence detection, volume strength filtering, enhanced histogram colors
- **v1**: Basic volume-weighted MACD on price
## Related Indicators
**Companion Tools**:
- **ACCDv3**: Volume-weighted MACD on A/D line (distribution focus)
- **RSIv2**: RSI with A/D divergence detection
- **DMI**: Directional Movement Index with A/D divergence
- **Elder Impulse**: Bar coloring system using volume-weighted MACD
**Use Together**: VMACDv3 (momentum) + ACCDv3 (distribution) + Elder Impulse (bar colors) = complete volume-based trading system
---
*This indicator is for educational purposes. Past performance does not guarantee future results. Always practice proper risk management and never risk more than you can afford to lose.*
6-9 session & levels6-9 Session & Levels - Customizable Range Analysis Indicator
Description:
This indicator provides comprehensive session-based range analysis designed for intraday traders. It calculates and displays key levels based on a customizable session period (default 6:00-9:00 AM ET).
Core Features:
Session Tracking
Monitors user-defined session times with timezone support
Displays session open, high, and low levels
Highlights session range with optional box visualization
Shows previous day RTH (Regular Trading Hours: 9:30 AM - 4:00 PM) levels
Range Levels
25%, 50%, and 75% range levels within the session
Range deviations at 0.5x, 1.0x, and 2.0x multiples
Fibonacci extension levels (customizable, default 1.33x and 1.66x)
Optional fill zones between Fibonacci levels
Time Zone Highlighting
Marks the 9:40-9:50 AM period as a potential reversal zone
Vertical lines with shading to identify key time windows
Statistical Analysis
Calculates mean and median extension levels based on historical sessions
Displays statistics table showing current range, average range, range difference, and z-score
Customizable sample size (1-100 sessions) for statistical calculations
Option to anchor extensions from either session open or high/low points
Input Settings Explained:
Session Settings
Levels Session Time: Define your session window in HHMM-HHMM format (default: 0600-0900)
Time Zone: Choose from UTC, America/New_York, America/Chicago, America/Los_Angeles, Europe/London, or Asia/Tokyo
Anchor Settings
Show Session Anchor: Toggle the session anchor line (marks session open price at 6:00 AM)
Anchor Style/Color/Width: Customize appearance (Solid/Dashed/Dotted, color, 1-4 width)
Show Anchor Label: Display price label for the anchor
Session Open Line: Similar options for the session open reference line
Range Box Settings
Show Range Box: Display a shaded rectangle highlighting the session high-to-low range
Range Box Color: Set the box background color and transparency
Range Levels (25%/50%/75%)
Show Range Levels: Toggle all three intermediate levels on/off
Individual Level Styling: Each level (25%, 50%, 75%) has its own color, style, and width settings
Show Range Level Labels: Display price labels for each level
Range Deviations
Show Range Deviations: Toggle deviation levels on/off
0.5x/1.0x/2.0x Settings: Each deviation multiplier can be customized with its own color, line style (Solid/Dashed/Dotted), and width
Show Range Deviation Labels: Display labels showing the deviation price levels
Previous Day RTH Levels
Show Previous RTH Levels: Display yesterday's regular trading hours high and low
RTH High/Low Styling: Separate color, style, and width settings for each level
Show Previous RTH Labels: Toggle price labels for RTH levels
Time Zones
Show 9:40-9:50 AM Zone: Highlight this specific time period with vertical lines and shading
Zone Color: Set the background fill color for the time zone
Zone Label Color/Text: Customize the label appearance and text
Fibonacci Extension Settings
Show Fibonacci Extensions: Toggle Fib levels on/off
Fib Extension Color/Style/Width: Customize line appearance
Show Fib Extension Labels: Display price labels
Fib Ext Level 1/2: Set custom multipliers (default 1.33 and 1.66, range 0-5 in 0.1 increments)
Show Fibonacci Fills: Display shaded zones between Fib levels
Fib Fill Color: Customize the fill color and transparency
Session High/Low Settings
Show Session High/Low Lines: Display the actual session extremes
Style/Color/Width: Customize line appearance
Show Labels: Toggle price labels for high/low levels
Extension Stats Settings
Show Statistical Levels on Chart: Display mean and median extension levels based on historical data
Extension Anchor Point: Choose whether to anchor from "Open" or "High/Low" of the session
Number of Sessions for Statistics: Set sample size (1-100, default 60) for calculating averages
Mean/Median High Extension: Separate styling for each statistical level (color, style, width)
Mean/Median Low Extension: Separate styling for downside statistical levels
Tables
Show Statistics Table: Display a summary table with current range, average range, difference, z-score, and sample size
Table Position: Choose from 9 positions (Bottom/Middle/Top + Center/Left/Right)
Table Text Size: Select from Auto, Tiny, Small, Normal, Large, or Huge
Display Settings
Projection Offset: Number of bars to extend lines forward (default 24)
Label Size: Choose from Tiny, Small, Normal, or Large
Price Decimal Precision: Set decimal places for price labels (0-6)
How It Works:
The indicator tracks the specified session period and calculates the session's open, high, low, and range. At the end of the session (9:00 AM by default), it projects all configured levels forward for the trading day. The statistical features analyze the last N sessions (you choose the number) to calculate typical extension behavior from either the session open or the session high/low points.
The z-score calculation helps identify whether the current session's range is normal, expanded, or contracted compared to recent history, allowing traders to adjust expectations for the rest of the day.
Use Case:
This indicator helps traders identify key support and resistance levels based on early session price action, understand current range context relative to historical averages, and spot potential reversal zones during specific time periods.
Note: This indicator is for informational purposes only and does not constitute investment advice. Always perform your own analysis before making trading decisions.
Stock Relative Strength Rotation Graph🔄 Visualizing Market Rotation & Momentum (Stock RSRG)
This tool visualizes the sector rotation of your watchlist on a single graph. Instead of checking 40 different charts, you can see the entire market cycle in one view. It plots Relative Strength (Trend) vs. Momentum (Velocity) to identify which assets are leading the market and which are lagging.
📜 Credits & Disclaimer
Original Code: Adapted from the open-source " Relative Strength Scatter Plot " by LuxAlgo.
Trademark: This tool is inspired by Relative Rotation Graphs®. Relative Rotation Graphs® is a registered trademark of JOOS Holdings B.V. This script is neither endorsed, nor sponsored, nor affiliated with them.
📊 How It Works (The Math)
The script calculates two metrics for every symbol against a benchmark (Default: SPX):
X-Axis (RS-Ratio): Is the trend stronger than the benchmark? (>100 = Yes)
Y-Axis (RS-Momentum): Is the trend accelerating? (>100 = Yes)
🧩 The 4 Market Quadrants
🟩 Leading (Top-Right): Strong Trend + Accelerating. (Best for holding).
🟦 Improving (Top-Left): Weak Trend + Accelerating. (Best for entries).
⬜ Weakening (Bottom-Right): Strong Trend + Decelerating. (Watch for exits).
🟥 Lagging (Bottom-Left): Weak Trend + Decelerating. (Avoid).
✨ Significant Improvements
This open-source version adds unique features not found in standard rotation scripts:
📝 Quick-Input Engine: Paste up to 40 symbols as a single comma-separated list (e.g., NVDA, AMD, TSLA). No more individual input boxes.
🎯 Quadrant Filtering: You can now hide specific quadrants (like "Lagging") to clear the noise and focus only on actionable setups.
🐛 Trajectory Trails: Visualizes the historical path of the rotation so you can see the direction of momentum.
🛠️ How to Use
Paste Watchlist: Go to settings and paste your symbols (e.g., US Sectors: XLK, XLF, XLE...).
Find Entries: Look for tails moving from Improving ➔ Leading.
Find Exits: Be cautious when tails move from Leading ➔ Weakening.
Zoom: Use the "Scatter Plot Resolution" setting to zoom in or out if dots are bunched up.
SPX Breadth – Stocks Above 200-day SMA//@version=6
indicator("SPX Breadth – Stocks Above 200-day SMA",
overlay = false,
max_lines_count = 500,
max_labels_count = 500)
//–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
// Inputs
group_source = "Source"
breadthSymbol = input.symbol("SPXA200R", "Breadth symbol", group = group_source)
breadthTf = input.timeframe("", "Timeframe (blank = chart)", group = group_source)
group_params = "Parameters"
totalStocks = input.int(500, "Total stocks in index", minval = 1, group = group_params)
smoothingLen = input.int(10, "SMA length", minval = 1, group = group_params)
//–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
// Breadth series (symbol assumed to be percent 0–100)
string tf = breadthTf == "" ? timeframe.period : breadthTf
float rawPct = request.security(breadthSymbol, tf, close) // 0–100 %
float breadthN = rawPct / 100.0 * totalStocks // convert to count
float breadthSma = ta.sma(breadthN, smoothingLen)
//–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
// Regime levels (0–20 %, 20–40 %, 40–60 %, 60–80 %, 80–100 %)
float lvl0 = 0.0
float lvl20 = totalStocks * 0.20
float lvl40 = totalStocks * 0.40
float lvl60 = totalStocks * 0.60
float lvl80 = totalStocks * 0.80
float lvl100 = totalStocks * 1.0
p0 = plot(lvl0, "0%", color = color.new(color.black, 100))
p20 = plot(lvl20, "20%", color = color.new(color.red, 0))
p40 = plot(lvl40, "40%", color = color.new(color.orange, 0))
p60 = plot(lvl60, "60%", color = color.new(color.yellow, 0))
p80 = plot(lvl80, "80%", color = color.new(color.green, 0))
p100 = plot(lvl100, "100%", color = color.new(color.green, 100))
// Colored zones
fill(p0, p20, color = color.new(color.maroon, 80)) // very oversold
fill(p20, p40, color = color.new(color.red, 80)) // oversold
fill(p40, p60, color = color.new(color.gold, 80)) // neutral
fill(p60, p80, color = color.new(color.green, 80)) // bullish
fill(p80, p100, color = color.new(color.teal, 80)) // very strong
//–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
// Plots
plot(breadthN, "Stocks above 200-day", color = color.orange, linewidth = 2)
plot(breadthSma, "Breadth SMA", color = color.white, linewidth = 2)
// Optional label showing live value
var label infoLabel = na
if barstate.islast
label.delete(infoLabel)
string txt = "Breadth: " +
str.tostring(breadthN, format.mintick) + " / " +
str.tostring(totalStocks) + " (" +
str.tostring(rawPct, format.mintick) + "%)"
infoLabel := label.new(bar_index, breadthN, txt,
style = label.style_label_left,
color = color.new(color.white, 20),
textcolor = color.black)
Hybrid -WinCAlgo/// 🇬🇧
Hybrid - WinCAlgo is a weighted composite oscillator designed to provide a more robust and reliable signal than the standard Relative Strength Index (RSI). It integrates four different momentum and volume metrics—RSI, Money Flow Index (MFI), Scaled CCI, and VWAP-RSI—into a single 0-100 oscillator.
This powerful tool aims to filter market noise and enhance the detection of trend reversals by confirming momentum with trading volume and volume-weighted average price action.
⚪ What is this Indicator?
The Hybrid Oscillator combines:
* RSI (40% Weight): Measures fundamental price momentum.
* VWAP-RSI (40% Weight): Measures the momentum of the Volume Weighted Average Price (VWAP), providing strong volume confirmation for trend strength.
* MFI (10% Weight): Measures money flow volume, confirming momentum with liquidity.
* Scaled CCI (10% Weight): Tracks market extremes and potential trend shifts, scaled to fit the 0-100 range.
⚪ Key Features
* Composite Strength: Blends four different market factors for a multi-dimensional view of momentum.
* Volume Integration: High weights on VWAP-RSI and MFI ensure that momentum signals are backed by trading volume.
* Advanced Divergence: The robust formula significantly enhances the detection of Bullish and Bearish Divergences, often providing an earlier signal than traditional oscillators.
* Customizable: Adjustable Lookback Length (N) and Individual Component Weights allow users to fine-tune the oscillator for specific assets or timeframes.
* Visual Clarity: Uses 40/60 bands for earlier Overbought/Oversold indications, with a gradient-styled background for intuitive visual interpretation.
⚪ Usage
Use Hybrid – WinCAlgo as your primary momentum confirmation tool:
* Divergence Signals: Trust the indicator when it fails to confirm new price highs/lows; this signals imminent trend exhaustion and reversal.
* Accumulation/Distribution: Look for the oscillator to rise/fall while the price is ranging at a bottom/top; this confirms hidden buying or selling (accumulation).
* Overbought/Oversold: Use the 60 band as the trigger for potential selling/shorting signals, and the 40 band for potential buying/longing signals.
* Noise Filter: Combine with a higher timeframe chart (e.g., 4H or Daily) to filter out gürültü (noise) and focus only on significant momentum shifts.
---
Echo Chamber [theUltimator5]The Echo Chamber - When history repeats, maybe you should listen.
Ever had that eerie feeling you've seen this exact price action before? The Echo Chamber doesn't just give you déjà vu—it mathematically proves it, scales it, and projects what happened next.
📖 WHAT IT DOES
The Echo Chamber is an advanced pattern recognition tool that scans your chart's history to find segments that closely match your current price action. But here's where it gets interesting: it doesn't just find similar patterns - It expands and contracts the time window to create a uniquely scaled fractal. Patterns don't always follow the same timeframe, but they do follow similar patterns.
Using a custom correlation analysis algorithm combined with flexible time-scaling, this indicator:
Finds historical price segments that mirror your current market structure
Scales and overlays them perfectly onto your current chart
Projects forward what happened AFTER that historical match
Gives you a visual "echo" from the past with a glimpse into potential futures
══════════════════════════════
HOW TO USE IT
This indicator starts off in manual mode, which means that YOU, the user, can select the point in time that you want to project from. Simply click on a point in time to set the starting value.
Once you select your point in time, the indicator will automatically plot the chosen historical chart pattern and correlation over the current chart and project the price forwards based on how the chart looked in the past. If you want to change the point in time, you can update it from the settings, or drag the point on the chart over to a new position.
You can manually select any point in time, and the chart will quickly update with the new pattern. A correlation will be shown in a table alongside the date/timestamp of the selected point in time.
You can switch to auto mode, which will automatically search out the best-fit pattern over a defined lookback range and plot the past/future projection for you without having to manually select a point in time at all. It simply finds the best fit for you.
You can change the scale factor by adjusting multiplication and division variables to find time-scaled fractal patterns.
══════════════════════════════
🎯 KEY FEATURES
Two Operating Modes:
🔧 MANUAL MODE - Select any historical point and see how it correlates with current price action in real-time. Perfect for:
• Analyzing specific past events (crashes, rallies, consolidations)
• Testing historical patterns against current conditions
• Educational analysis of market structure repetition
🤖 AUTO MODE - It automatically scans through your lookback period to find the single best-correlated historical match. Ideal for:
• Quick pattern discovery
• Systematic trading approach
• Unbiased pattern recognition
Time Warp Technology:
The time warp feature expands and compresses the correlation window to provide a custom fractal so you can analyze windows of time that don't necessarily match the current chart.
💡 *Example: Multiplier=3, Divisor=2 gives you a 1.5x time stretch—perfect for finding patterns that played out 50% slower than current price action.*
Drawing Modes:
Scale Only : Pure vertical scaling—matches price range while maintaining temporal alignment at bar 0
Rotate & Scale : Advanced geometric transformation that anchors both the start AND end points, creating a rotated fit that matches your current segment's slope and range
Visual Components:
🟠 Orange Overlay : The historical match, perfectly scaled to your current price action
🟣 Purple Projection : What happened NEXT after that historical pattern (dotted line into the future)
📦 Highlight Boxes : Shows you exactly where in history these patterns came from
📊 Live Correlation Table : Real-time correlation coefficient with color-coded strength indicator
══════════════════════════════
⚙️ PARAMETERS EXPLAINED
Correlation Window Length (20) : How many bars to match. Smaller = more precise matches but noisier. Larger = broader patterns but fewer matches.
Note: if this value is too high in auto mode, the script may time out from computational overload.
Multiplication Factor : Historical time multiplier. 2 = sample every 2nd bar from history. Higher values find slower historical patterns.
Division Factor : Historical time divisor applied after multiplication. Final sample rate = (Length × Factor) ÷ Divisor, rounded down.
Lookback Range : How far back to search for patterns. More history = better chance of finding matches but slower performance.
Note: if this value is too high in auto mode, the script may time out from computational overload.
Future Projection Length : How many bars forward to project from the historical match. Your crystal ball's focal length.
══════════════════════════════
💼 TRADING APPLICATIONS
Trend Continuation/Reversal :
If the purple projection continues the current trend, that's your historical confirmation. If it reverses, you've found a potential turning point that's happened before under similar conditions.
Support/Resistance Validation :
Does the projection respect your S/R levels? History suggests those levels matter. Does it break through? You've found historical precedent for a breakout.
Time-Based Exits :
The projection shows not just WHERE price might go, but WHEN. Use it to anticipate timing of moves.
Multi-Timeframe Analysis :
Use time compression to overlay higher timeframe patterns onto lower timeframes. See daily patterns on hourly charts, weekly on daily, etc.
Pattern Education :
In Manual Mode, study how specific historical events correlate with current conditions. Build your pattern recognition library.
══════════════════════════════
📊 CORRELATION TABLE
The table shows your correlation coefficient as a percentage:
80-100%: Extremely strong correlation—history is practically repeating
60-80%: Strong correlation—significant similarity
40-60%: Moderate correlation—some structural similarity
20-40%: Weak correlation—limited similarity
0-20%: Very weak correlation—essentially random match
-20-40%: Weak inverse correlation
-40-60%: Moderate inverse correlation
-60-80%: Strong inverse correlation
-80-100%: Extremely strong inverse correlation—history is practically inverting
**Important**: The correlation measures SHAPE similarity, not price level. An 85% correlation means the price movements follow a very similar pattern, regardless of whether prices are higher or lower.
══════════════════════════════
⚠️ IMPORTANT DISCLAIMERS
- Past performance does NOT guarantee future results (but it sure is interesting to study)
- High correlation doesn't mean causation—markets are complex adaptive systems
- Use this as ONE tool in your analytical toolkit, not a standalone trading system
- The projection is what HAPPENED after a similar pattern in the past, not a prediction
- Always use proper risk management regardless of what the Echo Chamber suggests
══════════════════════════════
🎓 PRO TIPS
1. Start with Auto Mode to find high-correlation matches, then switch to Manual Mode to study why that period was similar
2. Experiment with time warping on different timeframes—a 2x factor on a daily chart lets you see weekly patterns
3. Watch for correlation decay —if correlation drops sharply after the match, current conditions are diverging from history
4. Combine with volume —check if volume patterns also match
5. Use "Rotate & Scale" mode when the current trend angle differs from the historical match
6. Increase lookback range to 500-1000+ on daily/weekly charts for finding rare historical parallels
══════════════════════════════
🔧 TECHNICAL NOTES
- Uses Pearson correlation coefficient for pattern matching
- Implements range-based scaling to normalize different price levels
- Rotation mode uses linear interpolation for geometric transformation
- All calculations are performed on close prices
- Boxes highlight actual historical bar ranges (high/low)
- Maximum of 500 lines and 500 boxes for performance optimization
Volatility Regime NavigatorA guide to understanding VIX, VVIX, VIX9D, VVIX/VIX, and the Composite Risk Score
1. Purpose of the Indicator
This dashboard summarizes short-term market volatility conditions using four core volatility metrics.
It produces:
• Individual readings
• A combined Regime classification
• A Composite Risk Score (0–100)
• A simplified Risk Bucket (Bullish → Stress)
Use this to evaluate market fragility, drift potential, tail-risk, and overall risk-on/off conditions.
This is especially useful for intraday ES/NQ trading, expected-move context, and understanding when breakouts or fades have edge.
2. The Four Core Volatility Inputs
(1) VIX — Baseline Equity Volatility
• < 16: Complacent (easy drift-up, but watch for fragility)
• 16–22: Healthy, normal volatility → ideal trading conditions
• > 22: Stress rising
• > 26: Tail-risk / risk-off environment
(2) VIX9D — Short-Term Event Vol
Measures 9-day implied volatility. Reacts to immediate news/events.
• < 14: Strongly bullish (drift regime)
• 14–17: Bullish to neutral
• 17–20: Event risk building
• > 20: Short-term stress / caution
(3) VVIX — Volatility of VIX (fragility index)
Tracks volatility of volatility.
• < 100: “Bullish, Bullish” — very low fragility
• 100–120: Normal
• 120–140: Fragile
• > 140: Stress, hedging pressure
(4) VVIX/VIX Ratio — Microstructure Risk-On/Risk-Off
One of the most sensitive indicators of market confidence.
• 5.0–6.5: Strongest “normal/bullish” zone
• < 5.0: Bottom-stalking / fear regime
• > 6.5: Complacency → vulnerable to reversals
• > 7.5: Fragile / top-risk
3. Composite Risk Score (0–100)
The dashboard converts all four inputs into a single score.
Score Interpretation
• 80–100 → Bullish - Drift regime. Shallow pullbacks. Upside favored.
• 60–79 → Normal - Healthy tape. Balanced two-way trading.
• 40–59 → Fragile - Choppy, failed breakouts, thinner liquidity.
• 20–39 → Risk-Off - Downside tails active. Favor fades and defensive behavior.
• < 20 → Stress - Crisis or event-driven tape. Avoid longs.
Score updates every bar.
4. Regime Label
Independent of the composite score, the script provides a Regime classification based on combinations of VIX + VVIX/VIX:
• Bullish+ → Buying is easy, tape lifts passively
• Normal → Cleanest and most tradable conditions
• Complacent → Top-risk; be careful chasing upside
• Mixed → Signals conflict; chop potential
• Bottom Stalk → High VIX, low VVIX/VIX (capitulation signatures)
A trailing “+” or “*” indicates additional bullish or caution overlays from VIX9D/VVIX.
5. How to Use the Dashboard in Trading
When Bullish (Score ≥ 80):
• Expect drift-up behavior
• Downside limited unless catalyst hits
• Structure favors breakouts and trend continuation
• Mean reversion trades have lower expectancy
When Normal (Score 60–79):
• The “playbook regime”
• Breakouts and mean reversion both valid
• Best overall trading environment
When Fragile (Score 40–59):
• Expect chop
• Breakouts fail
• Take quicker profits
• Avoid overleveraged directional bets
When Risk-Off (20–39):
• Favor fades of strength
• Downside tails activate
• Trend-following short setups gain edge
• Respect volatility bands
When Stress (<20):
• Avoid long exposure
• Do not chase dips
• Expect violent, news-sensitive behavior
• Position sizing becomes critical
6. Quick Summary
• VIX = weather
• VIX9D = short-term storm radar
• VVIX = foundation stability
• VVIX/VIX = confidence vs fragility
• Composite Score = overall regime health
• Risk Bucket = simple “what do I do?” label
This dashboard gives traders a high-confidence, low-noise view of equity volatility conditions in real time.
Bollinger Bands Delta Matrix Analytics [BDMA] Bollinger Bands Delta Matrix Analytics (BDMA) v7.0
Deep Kinetic Engine – 5x8 Volatility & Delta Decision Matrix
1. Introduction & Concept
Bollinger Bands Delta Matrix Analytics (BDMA) v7.0 is an analytical framework that merges:
- Spatial analysis via Bollinger Bands (%B location),
- with a 4-factor Deep Kinetic Engine based on:
• Total Volume
• Buy Volume
• Sell Volume
• Delta (Buy – Sell) Z-Scores
and converts them into an expanded 5×8 decision matrix that continuously tracks where price is trading and how the underlying orderflow is behaving.
BDMA is not a trading system or strategy. It does not generate entry/exit signals.
Instead, it provides a structured contextual map of volatility, volume, and delta so traders can:
- identify climactic extensions vs. fakeouts,
- distinguish strong initiative moves vs. passive absorption,
- and detect squeezes, traps, and liquidity voids with a unified visual dashboard.
2. Spatial Engine – Bollinger S-States (S1–S5)
The spatial dimension of BDMA comes from classic Bollinger Bands.
Price location is expressed as Percent B (%B) and mapped into 5 spatial states (S-States):
S1 – Hyper Extension (Above Upper Band)
Price has pushed beyond the upper Bollinger Band.
Often associated with parabolic or blow-off behavior, late-stage momentum, and elevated reversal risk.
S2 – Resistance Test (Upper Zone)
Price trades in the upper Bollinger region but remains inside the bands.
Represents a sustained test of resistance, typically within an established or emerging uptrend.
S3 – Neutral Zone (Middle)
Price hovers around the mid-band.
This is the mean reversion gravity field where the market often consolidates or transitions between regimes.
S4 – Support Test (Lower Zone)
Price trades in the lower Bollinger region but inside the bands.
Represents a sustained test of support within range or downtrend structures.
S5 – Hyper Drop (Below Lower Band)
Price extends below the lower Bollinger Band.
Often aligned with panic, forced liquidations, or capitulation-type behavior, with increased snap-back risk.
These 5 S-States define the vertical axis (rows) of the BDMA matrix.
3. Deep Kinetic Engine – 4-Factor Z-Score & D-States (D1–D8)
The Deep Kinetic Engine transforms raw volume and delta into standardized Z-Scores to measure how abnormal current activity is relative to its recent history.
For each bar:
- Raw Buy Volume is estimated from the candle’s position within its range
- Raw Sell Volume is complementary to buy volume
- Raw Delta = Buy Volume – Sell Volume
- Total Volume = Buy Volume + Sell Volume
These 4 series are then normalized using a unified Z-Score lookback to produce:
1. Z_Vol_Total – overall activity and liquidity intensity
2. Z_Vol_Buy – aggression from buyers (attack)
3. Z_Vol_Sell – aggression from sellers (defense or attack)
4. Z_Delta – net victory of one side over the other
Thresholds for Extreme, Significant, and Neutral Z-Score levels are fully configurable, allowing you to tune the sensitivity of the kinetic states.
Using Z_Vol_Total and Z_Delta (plus threshold logic), BDMA assigns one of 8 Deep Kinetic states (D-States):
D1 – Climax Buy
Extreme Total Volume + Extreme Positive Delta → Buying climax or blow-off behavior.
D2 – Strong Buy
High Volume + High Positive Delta → Confirmed bullish initiative activity.
D3 – Weak Buy / Fakeout
Low Volume + High Positive Delta → Bullish delta without commitment, low-liquidity breakout risk.
D4 – Absorption / Conflict
High Volume + Neutral Delta → Aggressive two-way trade, strong absorption, war zone behavior.
D5 – Neutral
Low Volume + Neutral Delta → Low-energy environment with low conviction.
D6 – Weak Sell / Fakeout
Low Volume + High Negative Delta → Bearish delta without commitment, low-liquidity breakdown risk.
D7 – Strong Sell
High Volume + High Negative Delta → Confirmed bearish initiative activity.
D8 – Capitulation
Extreme Volume + Extreme Negative Delta → Panic selling or capitulation regime.
These 8 D-States define the horizontal axis (columns) of the BDMA matrix.
4. The 5×8 BDMA Decision Matrix
The core of BDMA is a 5×8 matrix where:
- Rows (1–5) = Spatial S-States (S1…S5)
- Columns (1–8) = Kinetic D-States (D1…D8)
Each of the 40 possible combinations (SxDy) is pre-computed and mapped to:
- a Status or Regime Title (for example: Climax Breakout, Bear Trap Spring, Capitulation Breakdown),
- a Bias (Climactic Bull, Neutral, Strong Bear, Conflict or Reversal Risk, and similar labels),
- and a Strategic Signal or Consideration (for example: High reversal risk, Wait for confirmation, Low probability zone – avoid).
Internally, BDMA resolves all 40 regimes so the current state can be displayed on the dashboard without performance overhead.
5. Key Regime Families (How to Read the Matrix)
5.1. Breakouts and Breakdowns
Climax Breakout (Top-side)
Spatial S1 with Kinetic D1 or D2
Bias: Explosive or Extreme Bull
Signal:
- Strong or climactic upside extension with abnormal bullish orderflow.
- Trend continuation is possible, but reversal risk is extremely high after blow-off phases.
Low-Conviction Breakout (Fakeout Risk)
S1 with D3 (Weak Buy, low liquidity)
Bias: Weak Bull – Caution
Signal:
- Breakout not supported by volume.
- Elevated risk of failed auction or bull trap.
Capitulation Breakdown (Bottom-side)
Spatial S5 with Kinetic D8
Bias: Climactic Bear (panic)
Signal:
- Capitulation-type selling or forced liquidations.
- Trend can still proceed, but snap-back or violent short-covering risk is high.
Initiative Breakdown vs. Weak Breakdown
- Strong, high-volume breakdown typically corresponds to D7 (Strong Sell).
- Low-volume breakdown often corresponds to D6 (Weak Sell or Fakeout) with potential for failure.
5.2. Absorption, Traps and Springs
Absorption at Resistance (Top-side conflict)
S1 or S2 with D4 (Absorption or Conflict)
Bias: Conflict – Extreme Tension
Signal:
- Heavy two-way trade near resistance.
- Potential distribution or reversal if sellers begin to dominate.
Bull Trap or Failed Auction
Typically S1 with D6 (Weak Sell breakdown behavior after a top-side attempt)
Indicates a breakout attempt that fails and reverses, often after poor liquidity structure.
Absorption at Support and Bear Trap (Spring)
S4 or S5 with D4 or D3
Bias: Conflict or Weak Bear – Reversal Risk
Signal:
- Aggressive buying into lows (spring or shakeout behavior).
- Potential bear trap if price reclaims lost territory.
5.3. Trend Phases
Strong Uptrend Phases
Typically seen when S2–S3 combine with strong bullish kinetic behavior.
Bias: Strong or Extreme Bull
Signal:
- Pullbacks into S3 or S4 with supportive kinetic states often act as trend continuation zones.
Strong Downtrend Phases
Typically seen when S3–S4 combine with strong bearish kinetic behavior.
Bias: Strong or Extreme Bear
Signal:
- Rallies into resistance with strong bearish kinetic backing may act as continuation sell zones.
5.4. Neutral, Exhaustion and Squeeze
Exhaustion or Liquidity Void
S1 or S5 with D5 (Neutral kinetics)
Bias: Neutral or Exhaustion
Signal:
- Spatial extremes without kinetic confirmation.
- Often marks the end of a move, with poor follow-through.
Choppy, Low-Activity Range
S3 with D5
Bias: Neutral
Signal:
- Low volume, low conviction market.
- Typically a low-probability environment where standing aside can be logical.
Squeeze or High-Tension Zone
S3 with D4 or tightly clustered kinetic values
Bias: Conflict or High Tension
Signal:
- Hidden battle inside a volatility contraction.
- Often precedes large directionally-biased moves.
6. Dashboard Layout & Reading Guide
When Show Dashboard is enabled, BDMA displays:
1. Title and Status Line
Name of the current regime (for example: Climax Breakout, Bear Trap Spring, Mean Reversion).
2. Bias Line
Plain-language summary of directional context such as Climactic Bull, Strong Bear, Neutral, or Conflict and Reversal Risk.
3. Signal or Strategic Notes
Concise guidance focused on risk and context, not entries. For example:
- High reversal risk – aggressive traders only
- Wait for confirmation (break or rejection)
- Low probability zone – avoid taking new positions
4. Kinetic Profile (4-Factor Z-Score)
Shows the current Z-Scores for Total Volume (Activity), Buy Volume (Attack), Sell Volume (Defense), and Delta (Net Result).
5. Matrix Heatmap (5×8)
Visual representation of S-State vs. D-State with color coding:
- Bullish clusters in a green spectrum
- Bearish clusters in a red spectrum
- Conflict or exhaustion zones in yellow, amber, or neutral tones
The dashboard can be repositioned (top right, middle right, or bottom right) and its size can be adjusted (Tiny, Small, Normal, or Large) to fit different layouts.
7. Inputs & Customization
7.1. Core Parameters (Bollinger and Z-Score)
- Bollinger Length and Standard Deviation define the spatial engine.
- Z-Score Lookback (All Factors) defines how many bars are used to normalize volume and delta.
7.2. Deep Kinetic Thresholds
- Extreme Threshold defines what is considered climactic (D1 or D8).
- Significant Threshold distinguishes strong initiative vs. weak or fakeout behavior.
- Neutral Threshold is the band within which delta is treated as neutral.
These thresholds allow you to tune the sensitivity of the kinetic classification to fit different timeframes or instruments.
7.3. Calculation Method (Volume Delta)
Geometry (Approx)
- Fast, non-repainting approach based on candle geometry.
- Suitable for most users and real-time decision-making.
Intrabar (Precise)
- Uses lower-timeframe data for more precise volume delta estimation.
- Intrabar mode can repaint and requires compatible data and plan support on the platform.
- Best used for post-analysis or research, not blind automation.
7.4. Visuals and Interface
- Toggle Bollinger Bands visibility on or off.
- Switch between Dark and Light color themes.
- Configure dashboard visibility, matrix heatmap display, position, and size.
8. Multi-Language Semantic Engine (Asia and Middle East Focus)
BDMA v7.0 includes a fully integrated multi-language layer, targeting a wide geographic user base.
Supported Languages:
English, Türkçe, Русский, 简体中文, हिन्दी, العربية, فارسی, עברית
All dashboard labels, regime titles, bias descriptions, and signal texts are dynamically translated via an internal dictionary, while semantic meaning is kept consistent across languages.
This makes BDMA suitable for multi-language communities, study groups, and educational content across different regions.
However, due to the heavy computational load of the Deep Kinetic Engine and TradingView’s strict Pine Script execution limits, it was not possible to expand support to additional languages. Adding more translation layers would significantly increase memory usage and exceed runtime constraints. For this reason, the current language set represents the maximum optimized configuration achievable without compromising performance or stability.
9. Practical Usage Notes
BDMA is most powerful when used as a contextual overlay on top of market structure (HH, HL, LH, LL), higher-timeframe trend, key levels, and your own execution framework.
Recommended usage:
- Identify the current regime (Status and Bias).
- Check whether price location (S-State) and kinetic behavior (D-State) agree with your trade idea.
- Be especially cautious in climactic and absorption or conflict zones, where volatility and risk can be elevated.
Avoid treating BDMA as an automatic green equals buy, red equals sell tool.
The real edge comes from understanding where you are in the volatility or kinetic spectrum, not from forcing signals out of the matrix.
10. Limitations & Important Warnings
BDMA does not predict the future.
It organizes current and recent data into a structured context.
Volume data quality depends on the underlying symbol, exchange, and broker feed.
Forex, crypto, indices, and stocks may all behave differently.
Intrabar mode can repaint and is sensitive to lower-timeframe data availability and your plan type.
Use it with extra caution and primarily for research.
No indicator can remove the need for clear trading rules, disciplined risk management, and psychological control.
11. Disclaimer
This script is provided strictly for educational and analytical purposes.
It is not a trading system, signal service, financial product, or investment advice.
Nothing in this indicator or its description should be interpreted as a recommendation to buy or sell any asset.
Past behavior of any indicator or market pattern does not guarantee future results.
Trading and investing involve significant risk, including the risk of losing more than your initial capital in leveraged products.
You are solely responsible for your own decisions, risk management, and results.
By using this script, you acknowledge that you understand these risks and agree that the author or authors and publisher or publishers are not liable for any loss or damage arising from its use.
VCP Base Detector
📊 VCP BASE DETECTOR - AUTO-DETECT CONSOLIDATION ZONES
🎯 WHAT IS THIS INDICATOR?
This indicator automatically detects and marks ALL consolidation bases (VCP bases) on your chart. It:
✅ Auto-detects when price enters consolidation
✅ Measures base tightness (volatility contraction)
✅ Tracks base duration (how long consolidating)
✅ Rates base quality (1-5 stars)
✅ Shows volume drying confirmation
✅ Detects base breakouts
✅ Shows progression of multiple bases (VCP pattern)
Use this WITH the "Mark Minervini SEPA Balanced" indicator for complete trading setups!
✅ Mark Minervini SEPA Balanced = Trend + RS + Stage
✅ VCP Base Detector = Base Quality + Progression
Combined = Complete professional trading system!
🎨 WHAT YOU SEE ON YOUR CHART
1️⃣ COLORED BOXES (Base Zones):
🟦 Aqua Box = ⭐⭐⭐⭐⭐ Excellent base (tightest)
🔵 Blue Box = ⭐⭐⭐⭐ Very good base
🟣 Purple Box = ⭐⭐⭐ Good base
🟠 Orange Box = ⭐⭐ Fair base
⬜ Gray Box = ⭐ Weak base
2️⃣ BASE LABELS (With Metrics):
Shows above each base:
• Duration: 20 days
• Tightness: 0.9%
• Quality: ⭐⭐⭐⭐⭐
3️⃣ BREAKOUT LABELS (When price exits base):
Green "BREAKOUT ✓" label shows:
• Price: ₹800
• Volume: 1.6x
4️⃣ DASHBOARD (Top-Left Panel):
Real-time base metrics showing:
• In Base: YES/NO
• Tightness: 0.8%
• Duration: 22 days
• Range: 3.5%
• Volume: Drying/Normal
• Quality: ⭐⭐⭐⭐
📊 UNDERSTANDING BASE QUALITY (⭐ Rating System)
⭐⭐⭐⭐⭐ (EXCELLENT)
├─ Tightness: < 0.8% ATR
├─ Duration: 15-40 days
├─ Volume: Significantly drying
├─ Price Range: < 5%
└─ Result: Most explosive breakouts (best quality)
⭐⭐⭐⭐ (VERY GOOD)
├─ Tightness: 0.8-1.0% ATR
├─ Duration: 15-35 days
├─ Volume: Very dry
├─ Price Range: < 7%
└─ Result: High probability breakouts
⭐⭐⭐ (GOOD)
├─ Tightness: 1.0-1.3% ATR
├─ Duration: 15-30 days
├─ Volume: Drying
├─ Price Range: < 8%
└─ Result: Decent breakout probability
⭐⭐ (FAIR)
├─ Tightness: 1.3-1.5% ATR
├─ Duration: 15-25 days
├─ Volume: Moderate drying
├─ Price Range: < 10%
└─ Result: Lower quality, riskier
⭐ (WEAK)
├─ Tightness: > 1.5% ATR
├─ Duration: Varies
├─ Volume: Not drying enough
├─ Price Range: > 10%
└─ Result: Low quality, skip these
📈 HOW TO USE - STEP BY STEP
STEP 1: ADD INDICATOR TO CHART
────────────────────────────────
1. Open any stock chart (use 1D timeframe for swing trading)
2. Click "Indicators"
3. Search "VCP Base Detector"
4. Click to add to chart
5. Wait a moment for boxes to appear
STEP 2: SCAN FOR BASES
───────────────────────
Look for:
✓ Colored boxes appearing on chart (bases forming)
✓ Dashboard showing "In Base: YES"
✓ Tightness below 1.5%
✓ Volume Dry: YES
STEP 3: MONITOR BASE QUALITY
──────────────────────────────
Dashboard shows stars:
⭐⭐⭐⭐⭐ = Wait for breakout (best setup)
⭐⭐⭐⭐ = Good quality, watch for breakout
⭐⭐⭐ = Decent, but not ideal
⭐⭐ or ⭐ = Skip (lower probability)
STEP 4: WAIT FOR BREAKOUT
──────────────────────────
When price breaks above the box:
✓ Green "BREAKOUT ✓" label appears
✓ Shows breakout price and volume
✓ If volume shows 1.3x+, breakout is confirmed
✓ This is your entry signal!
STEP 5: CHECK MINERVINI CRITERIA (Use Both Indicators)
───────────────────────────────────────────────────────
Before entering:
✓ VCP Base Detector shows ⭐⭐⭐⭐+ quality base
✓ Mark Minervini indicator shows BUY SIGNAL
✓ Dashboard shows 10+ criteria GREEN
✓ Stage shows S2
Result: HIGH-PROBABILITY SETUP! 🎯
📋 DASHBOARD INDICATORS - WHAT EACH MEANS
BASE METRICS SECTION:
─────────────────────
In Base = ✓ YES or ✗ NO
Show if price is currently consolidating
Tightness = 0-3% (lower = tighter = better)
< 0.8% = ⭐⭐⭐⭐⭐ (excellent)
0.8-1.0% = ⭐⭐⭐⭐ (very good)
1.0-1.3% = ⭐⭐⭐ (good)
1.3-1.5% = ⭐⭐ (fair)
> 1.5% = ⭐ (weak)
Duration = Number of days in consolidation
15 days = ⭐ (too short, weak)
20 days = ⭐⭐⭐ (ideal)
30 days = ⭐⭐⭐⭐ (very long, strong)
> 40 days = ⚠️ (too long, may break down)
Range = % movement within the base
< 5% = ⭐⭐⭐⭐⭐ (excellent, very tight)
5-8% = ⭐⭐⭐ (good)
> 10% = ⭐ (loose, not ideal)
Vol Dry = Volume status during consolidation
✓ YES = Volume contracting (good)
✗ NO = Normal/high volume (weak setup)
QUALITY SECTION:
────────────────
Stars = Overall base quality rating
⭐⭐⭐⭐⭐ = Best quality bases (most explosive)
⭐⭐⭐⭐ = Excellent quality
⭐⭐⭐ = Good quality
⭐⭐ = Fair quality
⭐ = Weak quality (skip)
52W INFO SECTION:
─────────────────
From 52W Hi = How far below 52-week high is price?
< 25% = In sweet zone ✓
> 25% = Too far from highs ✗
From 52W Lo = How far above 52-week low is price?
> 30% = In sweet zone ✓
< 30% = Too close to lows ✗
⚙️ CUSTOMIZATION GUIDE
Click ⚙️ gear icon next to indicator to adjust:
MINIMUM BASE DAYS (Default: 15)
──────────────────────────────
Current: 15 = Include shorter bases
Change to 20 = Longer bases only (higher quality)
Change to 10 = Include very short bases (more frequent)
Why: Longer bases = better breakouts, but fewer opportunities
ATR% TIGHTNESS THRESHOLD (Default: 1.5)
────────────────────────────────────────
Current: 1.5 = BALANCED for Indian stocks
Change to 1.0 = ONLY very tight bases (⭐⭐⭐⭐⭐)
Change to 2.0 = Looser bases included (more frequent)
Why: Lower = tighter bases = better quality, fewer signals
VOLUME DRYING THRESHOLD (Default: 0.7)
──────────────────────────────────────
Current: 0.7 = Volume at 70% of average (good drying)
Change to 0.6 = Stricter (more volume drying required)
Change to 0.8 = Looser (less volume drying required)
Why: Volume drying = consolidation confirmation
52W PERIOD (Default: 252)
─────────────────────────
Current: 252 = Full year lookback
Don't change unless you know what you're doing
📈 REAL TRADING EXAMPLE
SCENARIO: Trading MARUTI over 6 weeks
WEEK 1: Nothing happening
─────────────────────────
- No boxes on chart
- Dashboard: "In Base: NO"
- Action: SKIP (not consolidating)
WEEK 2: Base Starting to Form
─────────────────────────────
- Purple box appears (⭐⭐⭐ quality)
- Dashboard: "In Base: YES"
- Tightness: 1.2%
- Duration: 3 days (too new)
- Action: MONITOR (let it develop)
WEEK 3-4: Base Tightening
──────────────────────────
- Box color changes from Purple → Blue (⭐⭐⭐⭐ quality)
- Dashboard: Duration: 12 days
- Tightness: 0.9%
- Vol Dry: YES
- Action: GET READY (high-quality base forming)
WEEK 4-5: Perfect Base Formed
──────────────────────────────
- Box changes to Aqua (⭐⭐⭐⭐⭐ EXCELLENT!)
- Dashboard: Duration: 22 days ✓
- Tightness: 0.8% ✓
- Vol Dry: YES ✓
- Range: 4.2% ✓
- Action: WATCH FOR BREAKOUT
WEEK 5: BREAKOUT HAPPENS!
──────────────────────────
- Price closes above box
- Green "BREAKOUT ✓" label appears
- Shows: Price ₹850, Volume 1.6x
- Mark Minervini indicator: BUY SIGNAL ✓
- Dashboard all GREEN ✓
- Action: ENTER TRADE
Entry: ₹850
Stop: Box low (₹820)
Target: ₹980 (20% move)
RESULT: +15.3% profit in 2 weeks! ✅
💡 PRO TIPS FOR BEST RESULTS
1. COMBINE WITH MINERVINI INDICATOR
Use BOTH indicators together:
✓ VCP Detector = Base quality
✓ Minervini = Trend + RS + Volume
Result = Best high-probability setups
2. PREFER ⭐⭐⭐⭐+ QUALITY BASES
Don't trade ⭐⭐ or ⭐ quality bases
Only trade ⭐⭐⭐+ (ideally ⭐⭐⭐⭐+)
Higher quality = Higher win rate
3. WAIT FOR VOLUME CONFIRMATION
Base must show "Vol Dry: YES"
Breakout must have 1.3x+ volume
Low volume breakouts fail often
4. USE 1D TIMEFRAME ONLY
This indicator optimized for daily charts
Intraday = Too many false signals
Weekly = Misses good setups
5. MONITOR MULTIPLE BASES (VCP PATTERN)
Multiple bases getting tighter = VCP pattern
Each base should be better quality than last
Tightest base = Biggest breakout
6. COMBINE WITH 52W CONTEXT
Dashboard shows "From 52W Hi" and "From 52W Lo"
Price should be in sweet zone:
< 25% from 52W high (uptrend territory)
> 30% above 52W low (not oversold)
7. BACKTEST FIRST
Use TradingView Replay
Go back 6-12 months
See how many bases appeared
See which were profitable
❌ BASES TO SKIP (Lower Probability)
Skip if:
❌ Quality rating < ⭐⭐⭐ (only 1-2 stars)
❌ Tightness > 1.5% (too loose)
❌ Duration < 10 days (too short, weak)
❌ Duration > 50 days (too long, may break down)
❌ Vol Dry: NO (volume not contracting)
❌ Range > 10% (not tight consolidation)
❌ Price < 30% from 52W low (too weak)
❌ Price > 30% from 52W high (too far up, late entry)
⚠️ IMPORTANT DISCLAIMERS
✓ This indicator is for educational purposes only
✓ Past performance does not guarantee future results
✓ Always use proper risk management (position sizing, stop loss)
✓ Never risk more than 2% of your account on one trade
✓ Base detection is technical analysis, not investment advice
✓ Losses can occur - trade at your own risk
✓ Combine with other indicators for best results
🎓 LEARNING RESOURCES
To understand VCP bases better:
→ Study "Trade Like a Stock Market Wizard" by Mark Minervini
→ Watch: "VCP Pattern" videos on YouTube
→ Practice: Backtest on 1-2 years of historical data
→ Learn: How consolidation precedes breakouts
🚀 YOU'RE READY!
Happy trading! 📈🎯
Dimensional Resonance ProtocolDimensional Resonance Protocol
🌀 CORE INNOVATION: PHASE SPACE RECONSTRUCTION & EMERGENCE DETECTION
The Dimensional Resonance Protocol represents a paradigm shift from traditional technical analysis to complexity science. Rather than measuring price levels or indicator crossovers, DRP reconstructs the hidden attractor governing market dynamics using Takens' embedding theorem, then detects emergence —the rare moments when multiple dimensions of market behavior spontaneously synchronize into coherent, predictable states.
The Complexity Hypothesis:
Markets are not simple oscillators or random walks—they are complex adaptive systems existing in high-dimensional phase space. Traditional indicators see only shadows (one-dimensional projections) of this higher-dimensional reality. DRP reconstructs the full phase space using time-delay embedding, revealing the true structure of market dynamics.
Takens' Embedding Theorem (1981):
A profound mathematical result from dynamical systems theory: Given a time series from a complex system, we can reconstruct its full phase space by creating delayed copies of the observation.
Mathematical Foundation:
From single observable x(t), create embedding vectors:
X(t) =
Where:
• d = Embedding dimension (default 5)
• τ = Time delay (default 3 bars)
• x(t) = Price or return at time t
Key Insight: If d ≥ 2D+1 (where D is the true attractor dimension), this embedding is topologically equivalent to the actual system dynamics. We've reconstructed the hidden attractor from a single price series.
Why This Matters:
Markets appear random in one dimension (price chart). But in reconstructed phase space, structure emerges—attractors, limit cycles, strange attractors. When we identify these structures, we can detect:
• Stable regions : Predictable behavior (trade opportunities)
• Chaotic regions : Unpredictable behavior (avoid trading)
• Critical transitions : Phase changes between regimes
Phase Space Magnitude Calculation:
phase_magnitude = sqrt(Σ ² for i = 0 to d-1)
This measures the "energy" or "momentum" of the market trajectory through phase space. High magnitude = strong directional move. Low magnitude = consolidation.
📊 RECURRENCE QUANTIFICATION ANALYSIS (RQA)
Once phase space is reconstructed, we analyze its recurrence structure —when does the system return near previous states?
Recurrence Plot Foundation:
A recurrence occurs when two phase space points are closer than threshold ε:
R(i,j) = 1 if ||X(i) - X(j)|| < ε, else 0
This creates a binary matrix showing when the system revisits similar states.
Key RQA Metrics:
1. Recurrence Rate (RR):
RR = (Number of recurrent points) / (Total possible pairs)
• RR near 0: System never repeats (highly stochastic)
• RR = 0.1-0.3: Moderate recurrence (tradeable patterns)
• RR > 0.5: System stuck in attractor (ranging market)
• RR near 1: System frozen (no dynamics)
Interpretation: Moderate recurrence is optimal —patterns exist but market isn't stuck.
2. Determinism (DET):
Measures what fraction of recurrences form diagonal structures in the recurrence plot. Diagonals indicate deterministic evolution (trajectory follows predictable paths).
DET = (Recurrence points on diagonals) / (Total recurrence points)
• DET < 0.3: Random dynamics
• DET = 0.3-0.7: Moderate determinism (patterns with noise)
• DET > 0.7: Strong determinism (technical patterns reliable)
Trading Implication: Signals are prioritized when DET > 0.3 (deterministic state) and RR is moderate (not stuck).
Threshold Selection (ε):
Default ε = 0.10 × std_dev means two states are "recurrent" if within 10% of a standard deviation. This is tight enough to require genuine similarity but loose enough to find patterns.
🔬 PERMUTATION ENTROPY: COMPLEXITY MEASUREMENT
Permutation entropy measures the complexity of a time series by analyzing the distribution of ordinal patterns.
Algorithm (Bandt & Pompe, 2002):
1. Take overlapping windows of length n (default n=4)
2. For each window, record the rank order pattern
Example: → pattern (ranks from lowest to highest)
3. Count frequency of each possible pattern
4. Calculate Shannon entropy of pattern distribution
Mathematical Formula:
H_perm = -Σ p(π) · ln(p(π))
Where π ranges over all n! possible permutations, p(π) is the probability of pattern π.
Normalized to :
H_norm = H_perm / ln(n!)
Interpretation:
• H < 0.3 : Very ordered, crystalline structure (strong trending)
• H = 0.3-0.5 : Ordered regime (tradeable with patterns)
• H = 0.5-0.7 : Moderate complexity (mixed conditions)
• H = 0.7-0.85 : Complex dynamics (challenging to trade)
• H > 0.85 : Maximum entropy (nearly random, avoid)
Entropy Regime Classification:
DRP classifies markets into five entropy regimes:
• CRYSTALLINE (H < 0.3): Maximum order, persistent trends
• ORDERED (H < 0.5): Clear patterns, momentum strategies work
• MODERATE (H < 0.7): Mixed dynamics, adaptive required
• COMPLEX (H < 0.85): High entropy, mean reversion better
• CHAOTIC (H ≥ 0.85): Near-random, minimize trading
Why Permutation Entropy?
Unlike traditional entropy methods requiring binning continuous data (losing information), permutation entropy:
• Works directly on time series
• Robust to monotonic transformations
• Computationally efficient
• Captures temporal structure, not just distribution
• Immune to outliers (uses ranks, not values)
⚡ LYAPUNOV EXPONENT: CHAOS vs STABILITY
The Lyapunov exponent λ measures sensitivity to initial conditions —the hallmark of chaos.
Physical Meaning:
Two trajectories starting infinitely close will diverge at exponential rate e^(λt):
Distance(t) ≈ Distance(0) × e^(λt)
Interpretation:
• λ > 0 : Positive Lyapunov exponent = CHAOS
- Small errors grow exponentially
- Long-term prediction impossible
- System is sensitive, unpredictable
- AVOID TRADING
• λ ≈ 0 : Near-zero = CRITICAL STATE
- Edge of chaos
- Transition zone between order and disorder
- Moderate predictability
- PROCEED WITH CAUTION
• λ < 0 : Negative Lyapunov exponent = STABLE
- Small errors decay
- Trajectories converge
- System is predictable
- OPTIMAL FOR TRADING
Estimation Method:
DRP estimates λ by tracking how quickly nearby states diverge over a rolling window (default 20 bars):
For each bar i in window:
δ₀ = |x - x | (initial separation)
δ₁ = |x - x | (previous separation)
if δ₁ > 0:
ratio = δ₀ / δ₁
log_ratios += ln(ratio)
λ ≈ average(log_ratios)
Stability Classification:
• STABLE : λ < 0 (negative growth rate)
• CRITICAL : |λ| < 0.1 (near neutral)
• CHAOTIC : λ > 0.2 (strong positive growth)
Signal Filtering:
By default, NEXUS requires λ < 0 (stable regime) for signal confirmation. This filters out trades during chaotic periods when technical patterns break down.
📐 HIGUCHI FRACTAL DIMENSION
Fractal dimension measures self-similarity and complexity of the price trajectory.
Theoretical Background:
A curve's fractal dimension D ranges from 1 (smooth line) to 2 (space-filling curve):
• D ≈ 1.0 : Smooth, persistent trending
• D ≈ 1.5 : Random walk (Brownian motion)
• D ≈ 2.0 : Highly irregular, space-filling
Higuchi Method (1988):
For a time series of length N, construct k different curves by taking every k-th point:
L(k) = (1/k) × Σ|x - x | × (N-1)/(⌊(N-m)/k⌋ × k)
For different values of k (1 to k_max), calculate L(k). The fractal dimension is the slope of log(L(k)) vs log(1/k):
D = slope of log(L) vs log(1/k)
Market Interpretation:
• D < 1.35 : Strong trending, persistent (Hurst > 0.5)
- TRENDING regime
- Momentum strategies favored
- Breakouts likely to continue
• D = 1.35-1.45 : Moderate persistence
- PERSISTENT regime
- Trend-following with caution
- Patterns have meaning
• D = 1.45-1.55 : Random walk territory
- RANDOM regime
- Efficiency hypothesis holds
- Technical analysis least reliable
• D = 1.55-1.65 : Anti-persistent (mean-reverting)
- ANTI-PERSISTENT regime
- Oscillator strategies work
- Overbought/oversold meaningful
• D > 1.65 : Highly complex, choppy
- COMPLEX regime
- Avoid directional bets
- Wait for regime change
Signal Filtering:
Resonance signals (secondary signal type) require D < 1.5, indicating trending or persistent dynamics where momentum has meaning.
🔗 TRANSFER ENTROPY: CAUSAL INFORMATION FLOW
Transfer entropy measures directed causal influence between time series—not just correlation, but actual information transfer.
Schreiber's Definition (2000):
Transfer entropy from X to Y measures how much knowing X's past reduces uncertainty about Y's future:
TE(X→Y) = H(Y_future | Y_past) - H(Y_future | Y_past, X_past)
Where H is Shannon entropy.
Key Properties:
1. Directional : TE(X→Y) ≠ TE(Y→X) in general
2. Non-linear : Detects complex causal relationships
3. Model-free : No assumptions about functional form
4. Lag-independent : Captures delayed causal effects
Three Causal Flows Measured:
1. Volume → Price (TE_V→P):
Measures how much volume patterns predict price changes.
• TE > 0 : Volume provides predictive information about price
- Institutional participation driving moves
- Volume confirms direction
- High reliability
• TE ≈ 0 : No causal flow (weak volume/price relationship)
- Volume uninformative
- Caution on signals
• TE < 0 (rare): Suggests price leading volume
- Potentially manipulated or thin market
2. Volatility → Momentum (TE_σ→M):
Does volatility expansion predict momentum changes?
• Positive TE : Volatility precedes momentum shifts
- Breakout dynamics
- Regime transitions
3. Structure → Price (TE_S→P):
Do support/resistance patterns causally influence price?
• Positive TE : Structural levels have causal impact
- Technical levels matter
- Market respects structure
Net Causal Flow:
Net_Flow = TE_V→P + 0.5·TE_σ→M + TE_S→P
• Net > +0.1 : Bullish causal structure
• Net < -0.1 : Bearish causal structure
• |Net| < 0.1 : Neutral/unclear causation
Causal Gate:
For signal confirmation, NEXUS requires:
• Buy signals : TE_V→P > 0 AND Net_Flow > 0.05
• Sell signals : TE_V→P > 0 AND Net_Flow < -0.05
This ensures volume is actually driving price (causal support exists), not just correlated noise.
Implementation Note:
Computing true transfer entropy requires discretizing continuous data into bins (default 6 bins) and estimating joint probability distributions. NEXUS uses a hybrid approach combining TE theory with autocorrelation structure and lagged cross-correlation to approximate information transfer in computationally efficient manner.
🌊 HILBERT PHASE COHERENCE
Phase coherence measures synchronization across market dimensions using Hilbert transform analysis.
Hilbert Transform Theory:
For a signal x(t), the Hilbert transform H (t) creates an analytic signal:
z(t) = x(t) + i·H (t) = A(t)·e^(iφ(t))
Where:
• A(t) = Instantaneous amplitude
• φ(t) = Instantaneous phase
Instantaneous Phase:
φ(t) = arctan(H (t) / x(t))
The phase represents where the signal is in its natural cycle—analogous to position on a unit circle.
Four Dimensions Analyzed:
1. Momentum Phase : Phase of price rate-of-change
2. Volume Phase : Phase of volume intensity
3. Volatility Phase : Phase of ATR cycles
4. Structure Phase : Phase of position within range
Phase Locking Value (PLV):
For two signals with phases φ₁(t) and φ₂(t), PLV measures phase synchronization:
PLV = |⟨e^(i(φ₁(t) - φ₂(t)))⟩|
Where ⟨·⟩ is time average over window.
Interpretation:
• PLV = 0 : Completely random phase relationship (no synchronization)
• PLV = 0.5 : Moderate phase locking
• PLV = 1 : Perfect synchronization (phases locked)
Pairwise PLV Calculations:
• PLV_momentum-volume : Are momentum and volume cycles synchronized?
• PLV_momentum-structure : Are momentum cycles aligned with structure?
• PLV_volume-structure : Are volume and structural patterns in phase?
Overall Phase Coherence:
Coherence = (PLV_mom-vol + PLV_mom-struct + PLV_vol-struct) / 3
Signal Confirmation:
Emergence signals require coherence ≥ threshold (default 0.70):
• Below 0.70: Dimensions not synchronized, no coherent market state
• Above 0.70: Dimensions in phase, coherent behavior emerging
Coherence Direction:
The summed phase angles indicate whether synchronized dimensions point bullish or bearish:
Direction = sin(φ_momentum) + 0.5·sin(φ_volume) + 0.5·sin(φ_structure)
• Direction > 0 : Phases pointing upward (bullish synchronization)
• Direction < 0 : Phases pointing downward (bearish synchronization)
🌀 EMERGENCE SCORE: MULTI-DIMENSIONAL ALIGNMENT
The emergence score aggregates all complexity metrics into a single 0-1 value representing market coherence.
Eight Components with Weights:
1. Phase Coherence (20%):
Direct contribution: coherence × 0.20
Measures dimensional synchronization.
2. Entropy Regime (15%):
Contribution: (0.6 - H_perm) / 0.6 × 0.15 if H < 0.6, else 0
Rewards low entropy (ordered, predictable states).
3. Lyapunov Stability (12%):
• λ < 0 (stable): +0.12
• |λ| < 0.1 (critical): +0.08
• λ > 0.2 (chaotic): +0.0
Requires stable, predictable dynamics.
4. Fractal Dimension Trending (12%):
Contribution: (1.45 - D) / 0.45 × 0.12 if D < 1.45, else 0
Rewards trending fractal structure (D < 1.45).
5. Dimensional Resonance (12%):
Contribution: |dimensional_resonance| × 0.12
Measures alignment across momentum, volume, structure, volatility dimensions.
6. Causal Flow Strength (9%):
Contribution: |net_causal_flow| × 0.09
Rewards strong causal relationships.
7. Phase Space Embedding (10%):
Contribution: min(|phase_magnitude_norm|, 3.0) / 3.0 × 0.10 if |magnitude| > 1.0
Rewards strong trajectory in reconstructed phase space.
8. Recurrence Quality (10%):
Contribution: determinism × 0.10 if DET > 0.3 AND 0.1 < RR < 0.8
Rewards deterministic patterns with moderate recurrence.
Total Emergence Score:
E = Σ(components) ∈
Capped at 1.0 maximum.
Emergence Direction:
Separate calculation determining bullish vs bearish:
• Dimensional resonance sign
• Net causal flow sign
• Phase magnitude correlation with momentum
Signal Threshold:
Default emergence_threshold = 0.75 means 75% of maximum possible emergence score required to trigger signals.
Why Emergence Matters:
Traditional indicators measure single dimensions. Emergence detects self-organization —when multiple independent dimensions spontaneously align. This is the market equivalent of a phase transition in physics, where microscopic chaos gives way to macroscopic order.
These are the highest-probability trade opportunities because the entire system is resonating in the same direction.
🎯 SIGNAL GENERATION: EMERGENCE vs RESONANCE
DRP generates two tiers of signals with different requirements:
TIER 1: EMERGENCE SIGNALS (Primary)
Requirements:
1. Emergence score ≥ threshold (default 0.75)
2. Phase coherence ≥ threshold (default 0.70)
3. Emergence direction > 0.2 (bullish) or < -0.2 (bearish)
4. Causal gate passed (if enabled): TE_V→P > 0 and net_flow confirms direction
5. Stability zone (if enabled): λ < 0 or |λ| < 0.1
6. Price confirmation: Close > open (bulls) or close < open (bears)
7. Cooldown satisfied: bars_since_signal ≥ cooldown_period
EMERGENCE BUY:
• All above conditions met with bullish direction
• Market has achieved coherent bullish state
• Multiple dimensions synchronized upward
EMERGENCE SELL:
• All above conditions met with bearish direction
• Market has achieved coherent bearish state
• Multiple dimensions synchronized downward
Premium Emergence:
When signal_quality (emergence_score × phase_coherence) > 0.7:
• Displayed as ★ star symbol
• Highest conviction trades
• Maximum dimensional alignment
Standard Emergence:
When signal_quality 0.5-0.7:
• Displayed as ◆ diamond symbol
• Strong signals but not perfect alignment
TIER 2: RESONANCE SIGNALS (Secondary)
Requirements:
1. Dimensional resonance > +0.6 (bullish) or < -0.6 (bearish)
2. Fractal dimension < 1.5 (trending/persistent regime)
3. Price confirmation matches direction
4. NOT in chaotic regime (λ < 0.2)
5. Cooldown satisfied
6. NO emergence signal firing (resonance is fallback)
RESONANCE BUY:
• Dimensional alignment without full emergence
• Trending fractal structure
• Moderate conviction
RESONANCE SELL:
• Dimensional alignment without full emergence
• Bearish resonance with trending structure
• Moderate conviction
Displayed as small ▲/▼ triangles with transparency.
Signal Hierarchy:
IF emergence conditions met:
Fire EMERGENCE signal (★ or ◆)
ELSE IF resonance conditions met:
Fire RESONANCE signal (▲ or ▼)
ELSE:
No signal
Cooldown System:
After any signal fires, cooldown_period (default 5 bars) must elapse before next signal. This prevents signal clustering during persistent conditions.
Cooldown tracks using bar_index:
bars_since_signal = current_bar_index - last_signal_bar_index
cooldown_ok = bars_since_signal >= cooldown_period
🎨 VISUAL SYSTEM: MULTI-LAYER COMPLEXITY
DRP provides rich visual feedback across four distinct layers:
LAYER 1: COHERENCE FIELD (Background)
Colored background intensity based on phase coherence:
• No background : Coherence < 0.5 (incoherent state)
• Faint glow : Coherence 0.5-0.7 (building coherence)
• Stronger glow : Coherence > 0.7 (coherent state)
Color:
• Cyan/teal: Bullish coherence (direction > 0)
• Red/magenta: Bearish coherence (direction < 0)
• Blue: Neutral coherence (direction ≈ 0)
Transparency: 98 minus (coherence_intensity × 10), so higher coherence = more visible.
LAYER 2: STABILITY/CHAOS ZONES
Background color indicating Lyapunov regime:
• Green tint (95% transparent): λ < 0, STABLE zone
- Safe to trade
- Patterns meaningful
• Gold tint (90% transparent): |λ| < 0.1, CRITICAL zone
- Edge of chaos
- Moderate risk
• Red tint (85% transparent): λ > 0.2, CHAOTIC zone
- Avoid trading
- Unpredictable behavior
LAYER 3: DIMENSIONAL RIBBONS
Three EMAs representing dimensional structure:
• Fast ribbon : EMA(8) in cyan/teal (fast dynamics)
• Medium ribbon : EMA(21) in blue (intermediate)
• Slow ribbon : EMA(55) in red/magenta (slow dynamics)
Provides visual reference for multi-scale structure without cluttering with raw phase space data.
LAYER 4: CAUSAL FLOW LINE
A thicker line plotted at EMA(13) colored by net causal flow:
• Cyan/teal : Net_flow > +0.1 (bullish causation)
• Red/magenta : Net_flow < -0.1 (bearish causation)
• Gray : |Net_flow| < 0.1 (neutral causation)
Shows real-time direction of information flow.
EMERGENCE FLASH:
Strong background flash when emergence signals fire:
• Cyan flash for emergence buy
• Red flash for emergence sell
• 80% transparency for visibility without obscuring price
📊 COMPREHENSIVE DASHBOARD
Real-time monitoring of all complexity metrics:
HEADER:
• 🌀 DRP branding with gold accent
CORE METRICS:
EMERGENCE:
• Progress bar (█ filled, ░ empty) showing 0-100%
• Percentage value
• Direction arrow (↗ bull, ↘ bear, → neutral)
• Color-coded: Green/gold if active, gray if low
COHERENCE:
• Progress bar showing phase locking value
• Percentage value
• Checkmark ✓ if ≥ threshold, circle ○ if below
• Color-coded: Cyan if coherent, gray if not
COMPLEXITY SECTION:
ENTROPY:
• Regime name (CRYSTALLINE/ORDERED/MODERATE/COMPLEX/CHAOTIC)
• Numerical value (0.00-1.00)
• Color: Green (ordered), gold (moderate), red (chaotic)
LYAPUNOV:
• State (STABLE/CRITICAL/CHAOTIC)
• Numerical value (typically -0.5 to +0.5)
• Status indicator: ● stable, ◐ critical, ○ chaotic
• Color-coded by state
FRACTAL:
• Regime (TRENDING/PERSISTENT/RANDOM/ANTI-PERSIST/COMPLEX)
• Dimension value (1.0-2.0)
• Color: Cyan (trending), gold (random), red (complex)
PHASE-SPACE:
• State (STRONG/ACTIVE/QUIET)
• Normalized magnitude value
• Parameters display: d=5 τ=3
CAUSAL SECTION:
CAUSAL:
• Direction (BULL/BEAR/NEUTRAL)
• Net flow value
• Flow indicator: →P (to price), P← (from price), ○ (neutral)
V→P:
• Volume-to-price transfer entropy
• Small display showing specific TE value
DIMENSIONAL SECTION:
RESONANCE:
• Progress bar of absolute resonance
• Signed value (-1 to +1)
• Color-coded by direction
RECURRENCE:
• Recurrence rate percentage
• Determinism percentage display
• Color-coded: Green if high quality
STATE SECTION:
STATE:
• Current mode: EMERGENCE / RESONANCE / CHAOS / SCANNING
• Icon: 🚀 (emergence buy), 💫 (emergence sell), ▲ (resonance buy), ▼ (resonance sell), ⚠ (chaos), ◎ (scanning)
• Color-coded by state
SIGNALS:
• E: count of emergence signals
• R: count of resonance signals
⚙️ KEY PARAMETERS EXPLAINED
Phase Space Configuration:
• Embedding Dimension (3-10, default 5): Reconstruction dimension
- Low (3-4): Simple dynamics, faster computation
- Medium (5-6): Balanced (recommended)
- High (7-10): Complex dynamics, more data needed
- Rule: d ≥ 2D+1 where D is true dimension
• Time Delay (τ) (1-10, default 3): Embedding lag
- Fast markets: 1-2
- Normal: 3-4
- Slow markets: 5-10
- Optimal: First minimum of mutual information (often 2-4)
• Recurrence Threshold (ε) (0.01-0.5, default 0.10): Phase space proximity
- Tight (0.01-0.05): Very similar states only
- Medium (0.08-0.15): Balanced
- Loose (0.20-0.50): Liberal matching
Entropy & Complexity:
• Permutation Order (3-7, default 4): Pattern length
- Low (3): 6 patterns, fast but coarse
- Medium (4-5): 24-120 patterns, balanced
- High (6-7): 720-5040 patterns, fine-grained
- Note: Requires window >> order! for stability
• Entropy Window (15-100, default 30): Lookback for entropy
- Short (15-25): Responsive to changes
- Medium (30-50): Stable measure
- Long (60-100): Very smooth, slow adaptation
• Lyapunov Window (10-50, default 20): Stability estimation window
- Short (10-15): Fast chaos detection
- Medium (20-30): Balanced
- Long (40-50): Stable λ estimate
Causal Inference:
• Enable Transfer Entropy (default ON): Causality analysis
- Keep ON for full system functionality
• TE History Length (2-15, default 5): Causal lookback
- Short (2-4): Quick causal detection
- Medium (5-8): Balanced
- Long (10-15): Deep causal analysis
• TE Discretization Bins (4-12, default 6): Binning granularity
- Few (4-5): Coarse, robust, needs less data
- Medium (6-8): Balanced
- Many (9-12): Fine-grained, needs more data
Phase Coherence:
• Enable Phase Coherence (default ON): Synchronization detection
- Keep ON for emergence detection
• Coherence Threshold (0.3-0.95, default 0.70): PLV requirement
- Loose (0.3-0.5): More signals, lower quality
- Balanced (0.6-0.75): Recommended
- Strict (0.8-0.95): Rare, highest quality
• Hilbert Smoothing (3-20, default 8): Phase smoothing
- Low (3-5): Responsive, noisier
- Medium (6-10): Balanced
- High (12-20): Smooth, more lag
Fractal Analysis:
• Enable Fractal Dimension (default ON): Complexity measurement
- Keep ON for full analysis
• Fractal K-max (4-20, default 8): Scaling range
- Low (4-6): Faster, less accurate
- Medium (7-10): Balanced
- High (12-20): Accurate, slower
• Fractal Window (30-200, default 50): FD lookback
- Short (30-50): Responsive FD
- Medium (60-100): Stable FD
- Long (120-200): Very smooth FD
Emergence Detection:
• Emergence Threshold (0.5-0.95, default 0.75): Minimum coherence
- Sensitive (0.5-0.65): More signals
- Balanced (0.7-0.8): Recommended
- Strict (0.85-0.95): Rare signals
• Require Causal Gate (default ON): TE confirmation
- ON: Only signal when causality confirms
- OFF: Allow signals without causal support
• Require Stability Zone (default ON): Lyapunov filter
- ON: Only signal when λ < 0 (stable) or |λ| < 0.1 (critical)
- OFF: Allow signals in chaotic regimes (risky)
• Signal Cooldown (1-50, default 5): Minimum bars between signals
- Fast (1-3): Rapid signal generation
- Normal (4-8): Balanced
- Slow (10-20): Very selective
- Ultra (25-50): Only major regime changes
Signal Configuration:
• Momentum Period (5-50, default 14): ROC calculation
• Structure Lookback (10-100, default 20): Support/resistance range
• Volatility Period (5-50, default 14): ATR calculation
• Volume MA Period (10-50, default 20): Volume normalization
Visual Settings:
• Customizable color scheme for all elements
• Toggle visibility for each layer independently
• Dashboard position (4 corners) and size (tiny/small/normal)
🎓 PROFESSIONAL USAGE PROTOCOL
Phase 1: System Familiarization (Week 1)
Goal: Understand complexity metrics and dashboard interpretation
Setup:
• Enable all features with default parameters
• Watch dashboard metrics for 500+ bars
• Do NOT trade yet
Actions:
• Observe emergence score patterns relative to price moves
• Note coherence threshold crossings and subsequent price action
• Watch entropy regime transitions (ORDERED → COMPLEX → CHAOTIC)
• Correlate Lyapunov state with signal reliability
• Track which signals appear (emergence vs resonance frequency)
Key Learning:
• When does emergence peak? (usually before major moves)
• What entropy regime produces best signals? (typically ORDERED or MODERATE)
• Does your instrument respect stability zones? (stable λ = better signals)
Phase 2: Parameter Optimization (Week 2)
Goal: Tune system to instrument characteristics
Requirements:
• Understand basic dashboard metrics from Phase 1
• Have 1000+ bars of history loaded
Embedding Dimension & Time Delay:
• If signals very rare: Try lower dimension (d=3-4) or shorter delay (τ=2)
• If signals too frequent: Try higher dimension (d=6-7) or longer delay (τ=4-5)
• Sweet spot: 4-8 emergence signals per 100 bars
Coherence Threshold:
• Check dashboard: What's typical coherence range?
• If coherence rarely exceeds 0.70: Lower threshold to 0.60-0.65
• If coherence often >0.80: Can raise threshold to 0.75-0.80
• Goal: Signals fire during top 20-30% of coherence values
Emergence Threshold:
• If too few signals: Lower to 0.65-0.70
• If too many signals: Raise to 0.80-0.85
• Balance with coherence threshold—both must be met
Phase 3: Signal Quality Assessment (Weeks 3-4)
Goal: Verify signals have edge via paper trading
Requirements:
• Parameters optimized per Phase 2
• 50+ signals generated
• Detailed notes on each signal
Paper Trading Protocol:
• Take EVERY emergence signal (★ and ◆)
• Optional: Take resonance signals (▲/▼) separately to compare
• Use simple exit: 2R target, 1R stop (ATR-based)
• Track: Win rate, average R-multiple, maximum consecutive losses
Quality Metrics:
• Premium emergence (★) : Should achieve >55% WR
• Standard emergence (◆) : Should achieve >50% WR
• Resonance signals : Should achieve >45% WR
• Overall : If <45% WR, system not suitable for this instrument/timeframe
Red Flags:
• Win rate <40%: Wrong instrument or parameters need major adjustment
• Max consecutive losses >10: System not working in current regime
• Profit factor <1.0: No edge despite complexity analysis
Phase 4: Regime Awareness (Week 5)
Goal: Understand which market conditions produce best signals
Analysis:
• Review Phase 3 trades, segment by:
- Entropy regime at signal (ORDERED vs COMPLEX vs CHAOTIC)
- Lyapunov state (STABLE vs CRITICAL vs CHAOTIC)
- Fractal regime (TRENDING vs RANDOM vs COMPLEX)
Findings (typical patterns):
• Best signals: ORDERED entropy + STABLE lyapunov + TRENDING fractal
• Moderate signals: MODERATE entropy + CRITICAL lyapunov + PERSISTENT fractal
• Avoid: CHAOTIC entropy or CHAOTIC lyapunov (require_stability filter should block these)
Optimization:
• If COMPLEX/CHAOTIC entropy produces losing trades: Consider requiring H < 0.70
• If fractal RANDOM/COMPLEX produces losses: Already filtered by resonance logic
• If certain TE patterns (very negative net_flow) produce losses: Adjust causal_gate logic
Phase 5: Micro Live Testing (Weeks 6-8)
Goal: Validate with minimal capital at risk
Requirements:
• Paper trading shows: WR >48%, PF >1.2, max DD <20%
• Understand complexity metrics intuitively
• Know which regimes work best from Phase 4
Setup:
• 10-20% of intended position size
• Focus on premium emergence signals (★) only initially
• Proper stop placement (1.5-2.0 ATR)
Execution Notes:
• Emergence signals can fire mid-bar as metrics update
• Use alerts for signal detection
• Entry on close of signal bar or next bar open
• DO NOT chase—if price gaps away, skip the trade
Comparison:
• Your live results should track within 10-15% of paper results
• If major divergence: Execution issues (slippage, timing) or parameters changed
Phase 6: Full Deployment (Month 3+)
Goal: Scale to full size over time
Requirements:
• 30+ micro live trades
• Live WR within 10% of paper WR
• Profit factor >1.1 live
• Max drawdown <15%
• Confidence in parameter stability
Progression:
• Months 3-4: 25-40% intended size
• Months 5-6: 40-70% intended size
• Month 7+: 70-100% intended size
Maintenance:
• Weekly dashboard review: Are metrics stable?
• Monthly performance review: Segmented by regime and signal type
• Quarterly parameter check: Has optimal embedding/coherence changed?
Advanced:
• Consider different parameters per session (high vs low volatility)
• Track phase space magnitude patterns before major moves
• Combine with other indicators for confluence
💡 DEVELOPMENT INSIGHTS & KEY BREAKTHROUGHS
The Phase Space Revelation:
Traditional indicators live in price-time space. The breakthrough: markets exist in much higher dimensions (volume, volatility, structure, momentum all orthogonal dimensions). Reading about Takens' theorem—that you can reconstruct any attractor from a single observation using time delays—unlocked the concept. Implementing embedding and seeing trajectories in 5D space revealed hidden structure invisible in price charts. Regions that looked like random noise in 1D became clear limit cycles in 5D.
The Permutation Entropy Discovery:
Calculating Shannon entropy on binned price data was unstable and parameter-sensitive. Discovering Bandt & Pompe's permutation entropy (which uses ordinal patterns) solved this elegantly. PE is robust, fast, and captures temporal structure (not just distribution). Testing showed PE < 0.5 periods had 18% higher signal win rate than PE > 0.7 periods. Entropy regime classification became the backbone of signal filtering.
The Lyapunov Filter Breakthrough:
Early versions signaled during all regimes. Win rate hovered at 42%—barely better than random. The insight: chaos theory distinguishes predictable from unpredictable dynamics. Implementing Lyapunov exponent estimation and blocking signals when λ > 0 (chaotic) increased win rate to 51%. Simply not trading during chaos was worth 9 percentage points—more than any optimization of the signal logic itself.
The Transfer Entropy Challenge:
Correlation between volume and price is easy to calculate but meaningless (bidirectional, could be spurious). Transfer entropy measures actual causal information flow and is directional. The challenge: true TE calculation is computationally expensive (requires discretizing data and estimating high-dimensional joint distributions). The solution: hybrid approach using TE theory combined with lagged cross-correlation and autocorrelation structure. Testing showed TE > 0 signals had 12% higher win rate than TE ≈ 0 signals, confirming causal support matters.
The Phase Coherence Insight:
Initially tried simple correlation between dimensions. Not predictive. Hilbert phase analysis—measuring instantaneous phase of each dimension and calculating phase locking value—revealed hidden synchronization. When PLV > 0.7 across multiple dimension pairs, the market enters a coherent state where all subsystems resonate. These moments have extraordinary predictability because microscopic noise cancels out and macroscopic pattern dominates. Emergence signals require high PLV for this reason.
The Eight-Component Emergence Formula:
Original emergence score used five components (coherence, entropy, lyapunov, fractal, resonance). Performance was good but not exceptional. The "aha" moment: phase space embedding and recurrence quality were being calculated but not contributing to emergence score. Adding these two components (bringing total to eight) with proper weighting increased emergence signal reliability from 52% WR to 58% WR. All calculated metrics must contribute to the final score. If you compute something, use it.
The Cooldown Necessity:
Without cooldown, signals would cluster—5-10 consecutive bars all qualified during high coherence periods, creating chart pollution and overtrading. Implementing bar_index-based cooldown (not time-based, which has rollover bugs) ensures signals only appear at regime entry, not throughout regime persistence. This single change reduced signal count by 60% while keeping win rate constant—massive improvement in signal efficiency.
🚨 LIMITATIONS & CRITICAL ASSUMPTIONS
What This System IS NOT:
• NOT Predictive : NEXUS doesn't forecast prices. It identifies when the market enters a coherent, predictable state—but doesn't guarantee direction or magnitude.
• NOT Holy Grail : Typical performance is 50-58% win rate with 1.5-2.0 avg R-multiple. This is probabilistic edge from complexity analysis, not certainty.
• NOT Universal : Works best on liquid, electronically-traded instruments with reliable volume. Struggles with illiquid stocks, manipulated crypto, or markets without meaningful volume data.
• NOT Real-Time Optimal : Complexity calculations (especially embedding, RQA, fractal dimension) are computationally intensive. Dashboard updates may lag by 1-2 seconds on slower connections.
• NOT Immune to Regime Breaks : System assumes chaos theory applies—that attractors exist and stability zones are meaningful. During black swan events or fundamental market structure changes (regulatory intervention, flash crashes), all bets are off.
Core Assumptions:
1. Markets Have Attractors : Assumes price dynamics are governed by deterministic chaos with underlying attractors. Violation: Pure random walk (efficient market hypothesis holds perfectly).
2. Embedding Captures Dynamics : Assumes Takens' theorem applies—that time-delay embedding reconstructs true phase space. Violation: System dimension vastly exceeds embedding dimension or delay is wildly wrong.
3. Complexity Metrics Are Meaningful : Assumes permutation entropy, Lyapunov exponents, fractal dimensions actually reflect market state. Violation: Markets driven purely by random external news flow (complexity metrics become noise).
4. Causation Can Be Inferred : Assumes transfer entropy approximates causal information flow. Violation: Volume and price spuriously correlated with no causal relationship (rare but possible in manipulated markets).
5. Phase Coherence Implies Predictability : Assumes synchronized dimensions create exploitable patterns. Violation: Coherence by chance during random period (false positive).
6. Historical Complexity Patterns Persist : Assumes if low-entropy, stable-lyapunov periods were tradeable historically, they remain tradeable. Violation: Fundamental regime change (market structure shifts, e.g., transition from floor trading to HFT).
Performs Best On:
• ES, NQ, RTY (major US index futures - high liquidity, clean volume data)
• Major forex pairs: EUR/USD, GBP/USD, USD/JPY (24hr markets, good for phase analysis)
• Liquid commodities: CL (crude oil), GC (gold), NG (natural gas)
• Large-cap stocks: AAPL, MSFT, GOOGL, TSLA (>$10M daily volume, meaningful structure)
• Major crypto on reputable exchanges: BTC, ETH on Coinbase/Kraken (avoid Binance due to manipulation)
Performs Poorly On:
• Low-volume stocks (<$1M daily volume) - insufficient liquidity for complexity analysis
• Exotic forex pairs - erratic spreads, thin volume
• Illiquid altcoins - wash trading, bot manipulation invalidates volume analysis
• Pre-market/after-hours - gappy, thin, different dynamics
• Binary events (earnings, FDA approvals) - discontinuous jumps violate dynamical systems assumptions
• Highly manipulated instruments - spoofing and layering create false coherence
Known Weaknesses:
• Computational Lag : Complexity calculations require iterating over windows. On slow connections, dashboard may update 1-2 seconds after bar close. Signals may appear delayed.
• Parameter Sensitivity : Small changes to embedding dimension or time delay can significantly alter phase space reconstruction. Requires careful calibration per instrument.
• Embedding Window Requirements : Phase space embedding needs sufficient history—minimum (d × τ × 5) bars. If embedding_dimension=5 and time_delay=3, need 75+ bars. Early bars will be unreliable.
• Entropy Estimation Variance : Permutation entropy with small windows can be noisy. Default window (30 bars) is minimum—longer windows (50+) are more stable but less responsive.
• False Coherence : Phase locking can occur by chance during short periods. Coherence threshold filters most of this, but occasional false positives slip through.
• Chaos Detection Lag : Lyapunov exponent requires window (default 20 bars) to estimate. Market can enter chaos and produce bad signal before λ > 0 is detected. Stability filter helps but doesn't eliminate this.
• Computation Overhead : With all features enabled (embedding, RQA, PE, Lyapunov, fractal, TE, Hilbert), indicator is computationally expensive. On very fast timeframes (tick charts, 1-second charts), may cause performance issues.
⚠️ RISK DISCLOSURE
Trading futures, forex, stocks, options, and cryptocurrencies involves substantial risk of loss and is not suitable for all investors. Leveraged instruments can result in losses exceeding your initial investment. Past performance, whether backtested or live, is not indicative of future results.
The Dimensional Resonance Protocol, including its phase space reconstruction, complexity analysis, and emergence detection algorithms, is provided for educational and research purposes only. It is not financial advice, investment advice, or a recommendation to buy or sell any security or instrument.
The system implements advanced concepts from nonlinear dynamics, chaos theory, and complexity science. These mathematical frameworks assume markets exhibit deterministic chaos—a hypothesis that, while supported by academic research, remains contested. Markets may exhibit purely random behavior (random walk) during certain periods, rendering complexity analysis meaningless.
Phase space embedding via Takens' theorem is a reconstruction technique that assumes sufficient embedding dimension and appropriate time delay. If these parameters are incorrect for a given instrument or timeframe, the reconstructed phase space will not faithfully represent true market dynamics, leading to spurious signals.
Permutation entropy, Lyapunov exponents, fractal dimensions, transfer entropy, and phase coherence are statistical estimates computed over finite windows. All have inherent estimation error. Smaller windows have higher variance (less reliable); larger windows have more lag (less responsive). There is no universally optimal window size.
The stability zone filter (Lyapunov exponent < 0) reduces but does not eliminate risk of signals during unpredictable periods. Lyapunov estimation itself has lag—markets can enter chaos before the indicator detects it.
Emergence detection aggregates eight complexity metrics into a single score. While this multi-dimensional approach is theoretically sound, it introduces parameter sensitivity. Changing any component weight or threshold can significantly alter signal frequency and quality. Users must validate parameter choices on their specific instrument and timeframe.
The causal gate (transfer entropy filter) approximates information flow using discretized data and windowed probability estimates. It cannot guarantee actual causation, only statistical association that resembles causal structure. Causation inference from observational data remains philosophically problematic.
Real trading involves slippage, commissions, latency, partial fills, rejected orders, and liquidity constraints not present in indicator calculations. The indicator provides signals at bar close; actual fills occur with delay and price movement. Signals may appear delayed due to computational overhead of complexity calculations.
Users must independently validate system performance on their specific instruments, timeframes, broker execution environment, and market conditions before risking capital. Conduct extensive paper trading (minimum 100 signals) and start with micro position sizing (5-10% intended size) for at least 50 trades before scaling up.
Never risk more capital than you can afford to lose completely. Use proper position sizing (0.5-2% risk per trade maximum). Implement stop losses on every trade. Maintain adequate margin/capital reserves. Understand that most retail traders lose money. Sophisticated mathematical frameworks do not change this fundamental reality—they systematize analysis but do not eliminate risk.
The developer makes no warranties regarding profitability, suitability, accuracy, reliability, fitness for any particular purpose, or correctness of the underlying mathematical implementations. Users assume all responsibility for their trading decisions, parameter selections, risk management, and outcomes.
By using this indicator, you acknowledge that you have read, understood, and accepted these risk disclosures and limitations, and you accept full responsibility for all trading activity and potential losses.
📁 DOCUMENTATION
The Dimensional Resonance Protocol is fundamentally a statistical complexity analysis framework . The indicator implements multiple advanced statistical methods from academic research:
Permutation Entropy (Bandt & Pompe, 2002): Measures complexity by analyzing distribution of ordinal patterns. Pure statistical concept from information theory.
Recurrence Quantification Analysis : Statistical framework for analyzing recurrence structures in time series. Computes recurrence rate, determinism, and diagonal line statistics.
Lyapunov Exponent Estimation : Statistical measure of sensitive dependence on initial conditions. Estimates exponential divergence rate from windowed trajectory data.
Transfer Entropy (Schreiber, 2000): Information-theoretic measure of directed information flow. Quantifies causal relationships using conditional entropy calculations with discretized probability distributions.
Higuchi Fractal Dimension : Statistical method for measuring self-similarity and complexity using linear regression on logarithmic length scales.
Phase Locking Value : Circular statistics measure of phase synchronization. Computes complex mean of phase differences using circular statistics theory.
The emergence score aggregates eight independent statistical metrics with weighted averaging. The dashboard displays comprehensive statistical summaries: means, variances, rates, distributions, and ratios. Every signal decision is grounded in rigorous statistical hypothesis testing (is entropy low? is lyapunov negative? is coherence above threshold?).
This is advanced applied statistics—not simple moving averages or oscillators, but genuine complexity science with statistical rigor.
Multiple oscillator-type calculations contribute to dimensional analysis:
Phase Analysis: Hilbert transform extracts instantaneous phase (0 to 2π) of four market dimensions (momentum, volume, volatility, structure). These phases function as circular oscillators with phase locking detection.
Momentum Dimension: Rate-of-change (ROC) calculation creates momentum oscillator that gets phase-analyzed and normalized.
Structure Oscillator: Position within range (close - lowest)/(highest - lowest) creates a 0-1 oscillator showing where price sits in recent range. This gets embedded and phase-analyzed.
Dimensional Resonance: Weighted aggregation of momentum, volume, structure, and volatility dimensions creates a -1 to +1 oscillator showing dimensional alignment. Similar to traditional oscillators but multi-dimensional.
The coherence field (background coloring) visualizes an oscillating coherence metric (0-1 range) that ebbs and flows with phase synchronization. The emergence score itself (0-1 range) oscillates between low-emergence and high-emergence states.
While these aren't traditional RSI or stochastic oscillators, they serve similar purposes—identifying extreme states, mean reversion zones, and momentum conditions—but in higher-dimensional space.
Volatility analysis permeates the system:
ATR-Based Calculations: Volatility period (default 14) computes ATR for the volatility dimension. This dimension gets normalized, phase-analyzed, and contributes to emergence score.
Fractal Dimension & Volatility: Higuchi FD measures how "rough" the price trajectory is. Higher FD (>1.6) correlates with higher volatility/choppiness. FD < 1.4 indicates smooth trends (lower effective volatility).
Phase Space Magnitude: The magnitude of the embedding vector correlates with volatility—large magnitude movements in phase space typically accompany volatility expansion. This is the "energy" of the market trajectory.
Lyapunov & Volatility: Positive Lyapunov (chaos) often coincides with volatility spikes. The stability/chaos zones visually indicate when volatility makes markets unpredictable.
Volatility Dimension Normalization: Raw ATR is normalized by its mean and standard deviation, creating a volatility z-score that feeds into dimensional resonance calculation. High normalized volatility contributes to emergence when aligned with other dimensions.
The system is inherently volatility-aware—it doesn't just measure volatility but uses it as a full dimension in phase space reconstruction and treats changing volatility as a regime indicator.
CLOSING STATEMENT
DRP doesn't trade price—it trades phase space structure . It doesn't chase patterns—it detects emergence . It doesn't guess at trends—it measures coherence .
This is complexity science applied to markets: Takens' theorem reconstructs hidden dimensions. Permutation entropy measures order. Lyapunov exponents detect chaos. Transfer entropy reveals causation. Hilbert phases find synchronization. Fractal dimensions quantify self-similarity.
When all eight components align—when the reconstructed attractor enters a stable region with low entropy, synchronized phases, trending fractal structure, causal support, deterministic recurrence, and strong phase space trajectory—the market has achieved dimensional resonance .
These are the highest-probability moments. Not because an indicator said so. Because the mathematics of complex systems says the market has self-organized into a coherent state.
Most indicators see shadows on the wall. DRP reconstructs the cave.
"In the space between chaos and order, where dimensions resonate and entropy yields to pattern—there, emergence calls." DRP
Taking you to school. — Dskyz, Trade with insight. Trade with anticipation.
Pair Cointegration & Static Beta Analyzer (v6)Pair Cointegration & Static Beta Analyzer (v6)
This indicator evaluates whether two instruments exhibit statistical properties consistent with cointegration and tradable mean reversion.
It uses long-term beta estimation, spread standardization, AR(1) dynamics, drift stability, tail distribution analysis, and a multi-factor scoring model.
1. Static Beta and Spread Construction
A long-horizon static beta is estimated using covariance and variance of log-returns.
This beta does not update on every bar and is used throughout the entire model.
Beta = Cov(r1, r2) / Var(r2)
Spread = PriceA - Beta * PriceB
This “frozen” beta provides structural stability and avoids rolling noise in spread construction.
2. Correlation Check
Log-price correlation ensures the instruments move together over time.
Correlation ≥ 0.85 is required before deeper cointegration diagnostics are considered meaningful.
3. Z-Score Normalization and Distribution Behavior
The spread is standardized:
Z = (Spread - MA(Spread)) / Std(Spread)
The following statistical properties are examined:
Z-Mean: Should be close to zero in a stationary process
Z-Variance: Measures amplitude of deviations
Tail Probability: Frequency of |Z| being larger than a threshold (e.g. 2)
These metrics reveal whether the spread behaves like a mean-reverting equilibrium.
4. Mean Drift Stability
A rolling mean of the spread is examined.
If the rolling mean drifts excessively, the spread may not represent a stable long-term equilibrium.
A normalized drift ratio is used:
Mean Drift Ratio = Range( RollingMean(Spread) ) / Std(Spread)
Low drift indicates stable long-run equilibrium behavior.
5. AR(1) Dynamics and Half-Life
An AR(1) model approximates mean reversion:
Spread(t) = Phi * Spread(t-1) + error
Mean reversion requires:
0 < Phi < 1
Half-life of reversion:
Half-life = -ln(2) / ln(Phi)
Valid half-life for 10-minute bars typically falls between 3 and 80 bars.
6. Composite Scoring Model (0–100)
A multi-factor weighted scoring system is applied:
Component Score
Correlation 0–20
Z-Mean 0–15
Z-Variance 0–10
Tail Probability 0–10
Mean Drift 0–15
AR(1) Phi 0–15
Half-Life 0–15
Score interpretation:
70–100: Strong Cointegration Quality
40–70: Moderate
0–40: Weak
A pair is classified as cointegrated when:
Total Score ≥ Threshold (default = 70)
7. Main Cointegration Panel
Displays:
Static beta
Log-price correlation
Z-Mean, Z-Variance, Tail Probability
Drift Ratio
AR(1) Phi and Half-life
Composite score
Overall cointegration assessment
8. Beta Hedge Position Sizing (Average-Price Based)
To provide a more stable hedge ratio, hedge sizing is computed using average prices, not instantaneous prices:
AvgPriceA = SMA(PriceA, N)
AvgPriceB = SMA(PriceB, N)
Required B per 1 A = Beta * (AvgPriceA / AvgPriceB)
Using averaged prices results in a smoother, more reliable hedge ratio, reducing noise from bar-to-bar volatility.
The panel displays:
Required B security for 1 A security (average)
This represents the beta-neutral quantity of B required to hedge one unit of A.
Overview of Classical Stationarity & Cointegration Methods
The principal econometric tools commonly used in assessing stationarity and cointegration include:
Augmented Dickey–Fuller (ADF) Test
Phillips–Perron (PP) Test
KPSS Test
Engle–Granger Cointegration Test
Phillips–Ouliaris Cointegration Test
Johansen Cointegration Test
Since these procedures rely on regression residuals, matrix operations, and distribution-based critical values that are not supported in TradingView Pine Script, a practical multi-criteria scoring approach is employed instead. This framework leverages metrics that are fully computable in Pine and offers an operational proxy for evaluating cointegration-like behavior under platform constraints.
References
Engle & Granger (1987), Co-integration and Error Correction
Poterba & Summers (1988), Mean Reversion in Stock Prices
Vidyamurthy (2004), Pairs Trading
Explanation structured with assistance from OpenAI’s ChatGPT
Regards.
RSI Ensemble Confidence [CHE]RSI Ensemble Confidence — Measures RSI agreement across multiple lengths and price sources
Summary
This indicator does not just show you one RSI — it shows you how strongly dozens of different RSI variants agree with each other right now.
The Confidence line (0–100) is the core idea:
- High Confidence → almost all RSIs see the same thing → clean, reliable situation
- Low Confidence → the RSIs contradict each other → the market is messy, RSI signals are questionable
How it works (exactly as you wanted it described)
1. Multiple RSIs instead of just one
The indicator builds a true ensemble:
- 4 lengths (default 8, 14, 21, 34)
- 6 price sources (Close, Open, High, Low, HL2, OHLC4 – individually switchable)
→ When everything is enabled, up to 24 different RSIs are calculated on every single bar.
These 24 opinions form a real “vote” about the current market state.
2. Mean and dispersion
From all active RSIs it calculates:
- rsiMean → the average opinion of the entire ensemble (orange line)
- rsiStd → how far the individual RSIs deviate from each other
Small rsiStd = they all lie close together → strong agreement
Large rsiStd = they are all over the place → contradiction
3. Confidence (0–100)
The standard deviation is compared to the user parameter “Max expected StdDev” (default 20):
- rsiStd = 0 → Confidence ≈ 100
- rsiStd = maxStd → Confidence ≈ 0
- Everything in between is scaled linearly
If only one RSI is active, Confidence is automatically set to ~80 for practicality.
What you see on the chart
1. Classic reference RSI – blue line (Close, length 14) → your familiar benchmark
2. Ensemble mean – orange line → the true consensus RSI
±1 StdDev band (optional) → shows dispersion directly:
- narrow band = clean, consistent setup
- wide band = the RSIs disagree → caution
3. Confidence line (aqua, 0–100) → your quality meter for any RSI signal
4. StdDev histogram (optional, fuchsia columns) → raw dispersion if you prefer the unscaled value
5. Background coloring
- Greenish ≥ 80 → high agreement
- Orange 60–80 → medium
- Reddish < 40 → strong disagreement
- Transparent below that
6. Two built-in alerts
- High Confidence (crossover 80)
- Low Confidence (crossunder 40)
Why this indicator is practically useful
1. Perfect filter for all RSI strategies
Only trade overbought/oversold, divergences, or failures when Confidence ≥ 70. Skip or reduce size when Confidence < 40.
2. Protection against overinterpretation
You immediately see whether a “beautiful” RSI hook is confirmed by the other 23 variants — or whether it’s just one outlier fooling you.
3. Excellent regime detector
Long periods of high Confidence = clean trends or clear overbought/oversold phases
Constantly low Confidence = choppy, noisy market → RSI becomes almost useless
4. Turns gut feeling into numbers
We all sometimes think “this setup somehow doesn’t feel right”. Now you have the exact number that says why.
Disclaimer
The content provided, including all code and materials, is strictly for educational and informational purposes only. It is not intended as, and should not be interpreted as, financial advice, a recommendation to buy or sell any financial instrument, or an offer of any financial product or service. All strategies, tools, and examples discussed are provided for illustrative purposes to demonstrate coding techniques and the functionality of Pine Script within a trading context.
Any results from strategies or tools provided are hypothetical, and past performance is not indicative of future results. Trading and investing involve high risk, including the potential loss of principal, and may not be suitable for all individuals. Before making any trading decisions, please consult with a qualified financial professional to understand the risks involved.
By using this script, you acknowledge and agree that any trading decisions are made solely at your discretion and risk.
Do not use this indicator on Heikin-Ashi, Renko, Kagi, Point-and-Figure, or Range charts, as these chart types can produce unrealistic results for signal markers and alerts.
Best regards and happy trading
Chervolino
Day Trading Signals - Ultimate Pro (Dark Neon + Strong BB Cloud)//@version=5
indicator("Day Trading Signals - Ultimate Pro (Dark Neon + Strong BB Cloud)", overlay=true, max_lines_count=500, max_labels_count=500)
// ===== INPUTS =====
ema_fast_len = input.int(9, "Fast EMA Length")
ema_slow_len = input.int(21, "Slow EMA Length")
rsi_len = input.int(12, "RSI Length")
rsi_overbought = input.int(70, "RSI Overbought Level")
rsi_oversold = input.int(30, "RSI Oversold Level")
bb_len = input.int(20, "Bollinger Bands Length")
bb_mult = input.float(2.0, "Bollinger Bands Multiplier")
sr_len = input.int(15, "Pivot Lookback for Support/Resistance")
min_ema_gap = input.float(0.0, "Minimum EMA Gap to Define Trend", step=0.1)
sr_lifespan = input.int(200, "Bars to Keep S/R Lines")
// Display options
show_bb = input.bool(true, "Show Bollinger Bands?")
show_ema = input.bool(true, "Show EMA Lines?")
show_sr = input.bool(true, "Show Support/Resistance Lines?")
show_bg = input.bool(true, "Show Background Trend Color?")
// ===== COLORS (Dark Neon Theme) =====
neon_teal = color.rgb(0, 255, 200)
neon_purple = color.rgb(180, 95, 255)
neon_orange = color.rgb(255, 160, 60)
neon_yellow = color.rgb(255, 235, 90)
neon_red = color.rgb(255, 70, 110)
neon_gray = color.rgb(140, 140, 160)
sr_support_col = color.rgb(0, 190, 140)
sr_resist_col = color.rgb(255, 90, 120)
// ===== INDICATORS =====
ema_fast = ta.ema(close, ema_fast_len)
ema_slow = ta.ema(close, ema_slow_len)
ema_gap = math.abs(ema_fast - ema_slow)
trend_up = (ema_fast > ema_slow) and (ema_gap > min_ema_gap)
trend_down = (ema_fast < ema_slow) and (ema_gap > min_ema_gap)
trend_flat = ema_gap <= min_ema_gap
rsi = ta.rsi(close, rsi_len)
bb_mid = ta.sma(close, bb_len)
bb_upper = bb_mid + bb_mult * ta.stdev(close, bb_len)
bb_lower = bb_mid - bb_mult * ta.stdev(close, bb_len)
// ===== SUPPORT / RESISTANCE =====
pivot_high = ta.pivothigh(high, sr_len, sr_len)
pivot_low = ta.pivotlow(low, sr_len, sr_len)
var line sup_lines = array.new_line()
var line res_lines = array.new_line()
if show_sr and not na(pivot_low)
l = line.new(bar_index - sr_len, pivot_low, bar_index, pivot_low, color=sr_support_col, width=2, extend=extend.right)
array.push(sup_lines, l)
if show_sr and not na(pivot_high)
l = line.new(bar_index - sr_len, pivot_high, bar_index, pivot_high, color=sr_resist_col, width=2, extend=extend.right)
array.push(res_lines, l)
// Delete old S/R lines
if array.size(sup_lines) > 0
for i = 0 to array.size(sup_lines) - 1
l = array.get(sup_lines, i)
if bar_index - line.get_x2(l) > sr_lifespan
line.delete(l)
array.remove(sup_lines, i)
break
if array.size(res_lines) > 0
for i = 0 to array.size(res_lines) - 1
l = array.get(res_lines, i)
if bar_index - line.get_x2(l) > sr_lifespan
line.delete(l)
array.remove(res_lines, i)
break
// ===== BUY / SELL CONDITIONS =====
buy_cond = trend_up and not trend_flat and ta.crossover(ema_fast, ema_slow) and rsi < rsi_oversold and close < bb_lower
sell_cond = trend_down and not trend_flat and ta.crossunder(ema_fast, ema_slow) and rsi > rsi_overbought and close > bb_upper
// ===== SIGNAL PLOTS =====
plotshape(buy_cond, title="Buy Signal", location=location.belowbar, color=neon_teal, style=shape.labelup, text="BUY", size=size.small)
plotshape(sell_cond, title="Sell Signal", location=location.abovebar, color=neon_red, style=shape.labeldown, text="SELL", size=size.small)
// ===== EMA LINES =====
plot(show_ema ? ema_fast : na, color=neon_orange, title="EMA Fast", linewidth=2)
plot(show_ema ? ema_slow : na, color=neon_purple, title="EMA Slow", linewidth=2)
// ===== STRONG BOLLINGER BAND CLOUD =====
plot_bb_upper = plot(show_bb ? bb_upper : na, color=color.new(neon_yellow, 20), title="BB Upper")
plot_bb_lower = plot(show_bb ? bb_lower : na, color=color.new(neon_gray, 20), title="BB Lower")
plot(bb_mid, color=color.new(neon_gray, 50), title="BB Mid")
// More visible BB cloud (stronger contrast)
bb_cloud_color = trend_up ? color.new(neon_teal, 40) : trend_down ? color.new(neon_red, 40) : color.new(neon_gray, 70)
fill(plot_bb_upper, plot_bb_lower, color=show_bb ? bb_cloud_color : na, title="BB Cloud")
// ===== BACKGROUND COLOR (TREND ZONES) =====
bgcolor(show_bg ? (trend_up ? color.new(neon_teal, 92) : trend_down ? color.new(neon_red, 92) : color.new(neon_gray, 94)) : na)
// ===== ALERTS =====
alertcondition(buy_cond, title="Buy Signal", message="Buy signal triggered. Check chart.")
alertcondition(sell_cond, title="Sell Signal", message="Sell signal triggered. Check chart.")
Day Trading Signals - Ultimate Pro (Dark Neon + Strong BB Cloud)//@version=5
indicator("Day Trading Signals - Ultimate Pro (Dark Neon + Strong BB Cloud)", overlay=true, max_lines_count=500, max_labels_count=500)
// ===== INPUTS =====
ema_fast_len = input.int(9, "Fast EMA Length")
ema_slow_len = input.int(21, "Slow EMA Length")
rsi_len = input.int(12, "RSI Length")
rsi_overbought = input.int(70, "RSI Overbought Level")
rsi_oversold = input.int(30, "RSI Oversold Level")
bb_len = input.int(20, "Bollinger Bands Length")
bb_mult = input.float(2.0, "Bollinger Bands Multiplier")
sr_len = input.int(15, "Pivot Lookback for Support/Resistance")
min_ema_gap = input.float(0.0, "Minimum EMA Gap to Define Trend", step=0.1)
sr_lifespan = input.int(200, "Bars to Keep S/R Lines")
// Display options
show_bb = input.bool(true, "Show Bollinger Bands?")
show_ema = input.bool(true, "Show EMA Lines?")
show_sr = input.bool(true, "Show Support/Resistance Lines?")
show_bg = input.bool(true, "Show Background Trend Color?")
// ===== COLORS (Dark Neon Theme) =====
neon_teal = color.rgb(0, 255, 200)
neon_purple = color.rgb(180, 95, 255)
neon_orange = color.rgb(255, 160, 60)
neon_yellow = color.rgb(255, 235, 90)
neon_red = color.rgb(255, 70, 110)
neon_gray = color.rgb(140, 140, 160)
sr_support_col = color.rgb(0, 190, 140)
sr_resist_col = color.rgb(255, 90, 120)
// ===== INDICATORS =====
ema_fast = ta.ema(close, ema_fast_len)
ema_slow = ta.ema(close, ema_slow_len)
ema_gap = math.abs(ema_fast - ema_slow)
trend_up = (ema_fast > ema_slow) and (ema_gap > min_ema_gap)
trend_down = (ema_fast < ema_slow) and (ema_gap > min_ema_gap)
trend_flat = ema_gap <= min_ema_gap
rsi = ta.rsi(close, rsi_len)
bb_mid = ta.sma(close, bb_len)
bb_upper = bb_mid + bb_mult * ta.stdev(close, bb_len)
bb_lower = bb_mid - bb_mult * ta.stdev(close, bb_len)
// ===== SUPPORT / RESISTANCE =====
pivot_high = ta.pivothigh(high, sr_len, sr_len)
pivot_low = ta.pivotlow(low, sr_len, sr_len)
var line sup_lines = array.new_line()
var line res_lines = array.new_line()
if show_sr and not na(pivot_low)
l = line.new(bar_index - sr_len, pivot_low, bar_index, pivot_low, color=sr_support_col, width=2, extend=extend.right)
array.push(sup_lines, l)
if show_sr and not na(pivot_high)
l = line.new(bar_index - sr_len, pivot_high, bar_index, pivot_high, color=sr_resist_col, width=2, extend=extend.right)
array.push(res_lines, l)
// Delete old S/R lines
if array.size(sup_lines) > 0
for i = 0 to array.size(sup_lines) - 1
l = array.get(sup_lines, i)
if bar_index - line.get_x2(l) > sr_lifespan
line.delete(l)
array.remove(sup_lines, i)
break
if array.size(res_lines) > 0
for i = 0 to array.size(res_lines) - 1
l = array.get(res_lines, i)
if bar_index - line.get_x2(l) > sr_lifespan
line.delete(l)
array.remove(res_lines, i)
break
// ===== BUY / SELL CONDITIONS =====
buy_cond = trend_up and not trend_flat and ta.crossover(ema_fast, ema_slow) and rsi < rsi_oversold and close < bb_lower
sell_cond = trend_down and not trend_flat and ta.crossunder(ema_fast, ema_slow) and rsi > rsi_overbought and close > bb_upper
// ===== SIGNAL PLOTS =====
plotshape(buy_cond, title="Buy Signal", location=location.belowbar, color=neon_teal, style=shape.labelup, text="BUY", size=size.small)
plotshape(sell_cond, title="Sell Signal", location=location.abovebar, color=neon_red, style=shape.labeldown, text="SELL", size=size.small)
// ===== EMA LINES =====
plot(show_ema ? ema_fast : na, color=neon_orange, title="EMA Fast", linewidth=2)
plot(show_ema ? ema_slow : na, color=neon_purple, title="EMA Slow", linewidth=2)
// ===== STRONG BOLLINGER BAND CLOUD =====
plot_bb_upper = plot(show_bb ? bb_upper : na, color=color.new(neon_yellow, 20), title="BB Upper")
plot_bb_lower = plot(show_bb ? bb_lower : na, color=color.new(neon_gray, 20), title="BB Lower")
plot(bb_mid, color=color.new(neon_gray, 50), title="BB Mid")
// More visible BB cloud (stronger contrast)
bb_cloud_color = trend_up ? color.new(neon_teal, 40) : trend_down ? color.new(neon_red, 40) : color.new(neon_gray, 70)
fill(plot_bb_upper, plot_bb_lower, color=show_bb ? bb_cloud_color : na, title="BB Cloud")
// ===== BACKGROUND COLOR (TREND ZONES) =====
bgcolor(show_bg ? (trend_up ? color.new(neon_teal, 92) : trend_down ? color.new(neon_red, 92) : color.new(neon_gray, 94)) : na)
// ===== ALERTS =====
alertcondition(buy_cond, title="Buy Signal", message="Buy signal triggered. Check chart.")
alertcondition(sell_cond, title="Sell Signal", message="Sell signal triggered. Check chart.")
Day Trading Signals - Ultimate Pro (Dark Neon + Strong BB Cloud)//@version=5
indicator("Day Trading Signals - Ultimate Pro (Dark Neon + Strong BB Cloud)", overlay=true, max_lines_count=500, max_labels_count=500)
// ===== INPUTS =====
ema_fast_len = input.int(9, "Fast EMA Length")
ema_slow_len = input.int(21, "Slow EMA Length")
rsi_len = input.int(12, "RSI Length")
rsi_overbought = input.int(70, "RSI Overbought Level")
rsi_oversold = input.int(30, "RSI Oversold Level")
bb_len = input.int(20, "Bollinger Bands Length")
bb_mult = input.float(2.0, "Bollinger Bands Multiplier")
sr_len = input.int(15, "Pivot Lookback for Support/Resistance")
min_ema_gap = input.float(0.0, "Minimum EMA Gap to Define Trend", step=0.1)
sr_lifespan = input.int(200, "Bars to Keep S/R Lines")
// Display options
show_bb = input.bool(true, "Show Bollinger Bands?")
show_ema = input.bool(true, "Show EMA Lines?")
show_sr = input.bool(true, "Show Support/Resistance Lines?")
show_bg = input.bool(true, "Show Background Trend Color?")
// ===== COLORS (Dark Neon Theme) =====
neon_teal = color.rgb(0, 255, 200)
neon_purple = color.rgb(180, 95, 255)
neon_orange = color.rgb(255, 160, 60)
neon_yellow = color.rgb(255, 235, 90)
neon_red = color.rgb(255, 70, 110)
neon_gray = color.rgb(140, 140, 160)
sr_support_col = color.rgb(0, 190, 140)
sr_resist_col = color.rgb(255, 90, 120)
// ===== INDICATORS =====
ema_fast = ta.ema(close, ema_fast_len)
ema_slow = ta.ema(close, ema_slow_len)
ema_gap = math.abs(ema_fast - ema_slow)
trend_up = (ema_fast > ema_slow) and (ema_gap > min_ema_gap)
trend_down = (ema_fast < ema_slow) and (ema_gap > min_ema_gap)
trend_flat = ema_gap <= min_ema_gap
rsi = ta.rsi(close, rsi_len)
bb_mid = ta.sma(close, bb_len)
bb_upper = bb_mid + bb_mult * ta.stdev(close, bb_len)
bb_lower = bb_mid - bb_mult * ta.stdev(close, bb_len)
// ===== SUPPORT / RESISTANCE =====
pivot_high = ta.pivothigh(high, sr_len, sr_len)
pivot_low = ta.pivotlow(low, sr_len, sr_len)
var line sup_lines = array.new_line()
var line res_lines = array.new_line()
if show_sr and not na(pivot_low)
l = line.new(bar_index - sr_len, pivot_low, bar_index, pivot_low, color=sr_support_col, width=2, extend=extend.right)
array.push(sup_lines, l)
if show_sr and not na(pivot_high)
l = line.new(bar_index - sr_len, pivot_high, bar_index, pivot_high, color=sr_resist_col, width=2, extend=extend.right)
array.push(res_lines, l)
// Delete old S/R lines
if array.size(sup_lines) > 0
for i = 0 to array.size(sup_lines) - 1
l = array.get(sup_lines, i)
if bar_index - line.get_x2(l) > sr_lifespan
line.delete(l)
array.remove(sup_lines, i)
break
if array.size(res_lines) > 0
for i = 0 to array.size(res_lines) - 1
l = array.get(res_lines, i)
if bar_index - line.get_x2(l) > sr_lifespan
line.delete(l)
array.remove(res_lines, i)
break
// ===== BUY / SELL CONDITIONS =====
buy_cond = trend_up and not trend_flat and ta.crossover(ema_fast, ema_slow) and rsi < rsi_oversold and close < bb_lower
sell_cond = trend_down and not trend_flat and ta.crossunder(ema_fast, ema_slow) and rsi > rsi_overbought and close > bb_upper
// ===== SIGNAL PLOTS =====
plotshape(buy_cond, title="Buy Signal", location=location.belowbar, color=neon_teal, style=shape.labelup, text="BUY", size=size.small)
plotshape(sell_cond, title="Sell Signal", location=location.abovebar, color=neon_red, style=shape.labeldown, text="SELL", size=size.small)
// ===== EMA LINES =====
plot(show_ema ? ema_fast : na, color=neon_orange, title="EMA Fast", linewidth=2)
plot(show_ema ? ema_slow : na, color=neon_purple, title="EMA Slow", linewidth=2)
// ===== STRONG BOLLINGER BAND CLOUD =====
plot_bb_upper = plot(show_bb ? bb_upper : na, color=color.new(neon_yellow, 20), title="BB Upper")
plot_bb_lower = plot(show_bb ? bb_lower : na, color=color.new(neon_gray, 20), title="BB Lower")
plot(bb_mid, color=color.new(neon_gray, 50), title="BB Mid")
// More visible BB cloud (stronger contrast)
bb_cloud_color = trend_up ? color.new(neon_teal, 40) : trend_down ? color.new(neon_red, 40) : color.new(neon_gray, 70)
fill(plot_bb_upper, plot_bb_lower, color=show_bb ? bb_cloud_color : na, title="BB Cloud")
// ===== BACKGROUND COLOR (TREND ZONES) =====
bgcolor(show_bg ? (trend_up ? color.new(neon_teal, 92) : trend_down ? color.new(neon_red, 92) : color.new(neon_gray, 94)) : na)
// ===== ALERTS =====
alertcondition(buy_cond, title="Buy Signal", message="Buy signal triggered. Check chart.")
alertcondition(sell_cond, title="Sell Signal", message="Sell signal triggered. Check chart.")






















