INVESTIFY Free Intraday Indicator📌 INVESTIFY Free Intraday Indicator – Description
INVESTIFY Free Intraday Indicator is designed to help traders identify clear market direction and avoid overtrading.
This indicator focuses on trend-based confirmation, not random signals.
It provides limited and high-quality BUY / SELL signals — only when the market shows a clear directional move.
🔍 What this indicator does:
Identifies Bullish & Bearish market bias
Gives only one BUY or SELL per trend
Avoids signal spamming in sideways markets
Helps traders stay disciplined and patient
🎯 Best use case:
Intraday trading
Directional confirmation
Trend-following traders
Beginners who want clean structure
Works on all markets (Forex, Indices, Crypto, Commodities)
⚠️ Important Notes:
This is a FREE version for learning and confirmation
No targets or stop-loss are shown
Best used along with price action & discipline
Avoid overtrading — quality over quantity
Trade the direction, not the noise.
🔐 Want more precision?
The paid INVESTIFY Pro version includes:
Advanced entries
SL & risk structure
Session filtering
Re-entry logic
Smart money confirmations
📩 DM to get access
"bear" için komut dosyalarını ara
CRR Bill Williams Neo System (Alligator, Fractals, AO, AC, MFI)CRR Bill Williams Neo System is an educational chart overlay that combines classic Bill Williams concepts into a single visual framework.
The script integrates Alligator (SMMA-based trend structure), confirmed Fractals, Awesome Oscillator (AO), Accelerator Oscillator (AC), and the Bill Williams Market Facilitation Index (MFI).
Signals Logic
BUY signals appear when the Alligator trend is bullish (Lips > Teeth > Jaw), the Awesome Oscillator (AO) is above zero, the Accelerator Oscillator (AC) is above zero, the MFI state is GREEN or SQUAT, and price closes above the Lips line.
SELL signals appear when the Alligator trend is bearish (Lips < Teeth < Jaw), the Awesome Oscillator (AO) is below zero, the Accelerator Oscillator (AC) is below zero, the MFI state is GREEN or SQUAT, and price closes below the Lips line.
Signals can be configured to appear only after bar close for confirmation.
Fractals Behavior
Fractals are detected using pivot confirmation.
A fractal is confirmed only after the selected number of right bars have closed.
Because of this, fractal markers appear with a delay.
This behavior is expected and does not represent repainting.
How to Use
This indicator is designed to help visualize trend direction, momentum, and market activity.
It should be used as a confirmation tool together with price action and proper risk management.
Disclaimer
This script is for educational purposes only.
It does not constitute financial advice.
Always apply your own analysis and risk management.
Candle Close Timer Box With Direction - QQDDA movable-style (position-selectable) on-chart timer box that displays the next close time (or countdown) for multiple timeframes: 4H, 2H, 1H, 15m, 5m, and 1m. Each timeframe’s time is color-coded based on whether the current candle on that timeframe is bullish or bearish. Includes options for box position, right-padding (to nudge left), header on/off, border on/off, time format, and text size for clean monitoring while watching price action.
5 Min FVG ORB by LybandzThis is a 5 minute ORB strategy. Essentially all it does is give buy signals if we broke above and got a bullish FVG and gives sell signals if we break down and get a bearish FVG. Its a little sloppy but it does give correct buy/sell signals. It also plots overnight levels. Ignore the SL/TP levels, those arent made correctly yet and I am too lazy to fix it. Just place the stop loss under the FVG candle and put the take profit at either 1:1.5 or 1:2 RR. Breakeven at internal highs/lows or after a volatile large move in your favored direction.
Note - for the entries, make sure to enter after a signal is given on M1. Using M5 timeframe will give different (but similar) results. Put your stop under the M1 FVG and go breakeven at 1:1 RR. Take a partial at 1:1.5 and hold the rest to whatever you want.
Enjoy :)
Order Flow CandlesOrder Flow Candles is an advanced candle coloring indicator that visualizes the strength and direction of market pressure on each bar. Unlike traditional candlestick charts that simply show whether price closed higher or lower than it opened, this indicator reveals the intensity of buying or selling pressure through a gradient color system. The indicator employs custom formulas that combine two independent analysis methods—price action scoring and order flow analysis—to produce a pressure reading that determines each candle's directional color intensity.
-------------------------------------------------------------------
The Dual Analysis Approach
This indicator stands apart from simple candle coloring tools by using two distinct analytical layers that work together:
Price Action Analysis evaluates each candle's structure and compares it to multiple previous candles. Rather than looking at a single bar in isolation, the indicator examines how the current candle's size and values compare across several prior bars to establish context. This multi-candle approach helps distinguish between genuine momentum and single-bar noise. The analysis considers factors such as whether the candle is extending beyond previous ranges or failing to do so, whether the candle size indicates conviction or indecision, and whether the overall range suggests strength or weakness. Proprietary adjustment algorithms then modify the raw score based on candle characteristics—smaller, weaker candles receive reduced scores while larger conviction candles receive appropriate emphasis. Gap bars at market open are handled separately to prevent misleading readings from overnight price changes.
Order Flow Analysis examines lower timeframe data to determine actual buying versus selling volume within each chart bar. By analyzing price movements and their associated volume on a granular level, the indicator classifies activity as buying pressure or selling pressure. This raw data is then normalized using adaptive calculations based on rolling historical averages, allowing the indicator to respond appropriately to current market conditions rather than relying on fixed thresholds that may not suit all instruments or market environments.
The two scores are then blended together based on user preference, creating a combined pressure reading that benefits from both analytical perspectives.
-------------------------------------------------------------------
Understanding The Color System
The indicator uses a 10-tier gradient in each direction:
Bright Green - Strong buying pressure with high conviction
Medium Green - Moderate buying pressure
Dim Green - Weak buying pressure or mixed signals
Gray - Neutral—no significant directional pressure
Dim Red - Weak selling pressure or mixed signals
Medium Red - Moderate selling pressure
Bright Red - Strong selling pressure with high conviction
The key insight is that candle direction alone does not tell the full story. Strong candles with strong directional volume and movement will show bright colors to represent the strength of that candle’s direction. Weak and indecisive candles will appear darker to indicate that there was a lack of directional conviction.
The colors used can be customized by setting the bullish color, bearish color and base color. The base color will be mixed with the directional color when directional conviction is low.
-------------------------------------------------------------------
How To Use This To Trade
Trend Confirmation and Trade Management
Bright colored candles indicate strength and conviction. When you see consecutive bright candles in the same direction, this suggests sustained momentum worth riding. During these moves, consider trailing your stop loss tightly to protect profits while allowing the trend to continue. The brightness of the candles serves as a real-time gauge of how much conviction remains in the move.
Reversal Detection
Reversals typically do not occur suddenly. Watch for a darkening of colors leading up to potential reversal points. Darker, dimmer candles indicate indecision and combative pressure from both buyers and sellers. When bright candles begin transitioning toward gray or dim colors—especially at key support/resistance levels—this often precedes a change in direction. A sequence like bright → medium → dim → gray suggests momentum is fading and a reversal or consolidation may follow.
Entry Identification
Large bright candles appearing at pivot points or key levels often represent strong entry opportunities. These candles show that one side has taken decisive control with conviction. When price reaches a significant support or resistance level and produces a bright candle in the expected direction, this confluence of price level and pressure confirmation can provide higher-probability entries.
Detecting False Moves
One of the most valuable applications involves watching for color-to-direction discrepancies when using volume weighting. If you see a green candle (close above open) but the indicator colors it toward red or gray, this means the underlying volume pressure contradicts the candle's direction. This divergence suggests the move may be false and could soon reverse. The order flow component is detecting selling pressure despite the bullish candle structure—a warning sign that the apparent strength lacks genuine support.
Consolidation Recognition
Extended periods of gray or dim candles indicate low conviction and indecision. These periods often represent consolidation ranges where neither buyers nor sellers have control. Such conditions may precede significant breakouts, making them useful for identifying potential setup zones.
Validating Areas Of Interest
Watch the candle colors and you will notice that in tight ranges, the candles will be darker and rarely have very bright colors, but once price reaches the edges of a range and has multiple bright colored candles, this validates that traders are now ready to move outside of that range and place directional trades. Use the bright colored candles to reveal where traders are interested in entering positions and use that conviction to your advantage.
-------------------------------------------------------------------
Settings Guide
Lower Timeframe - Sets the granularity for volume analysis. Lower timeframes like 1T provide more detailed data but may have limited historical depth on TradingView. Adjust based on your chart timeframe and data availability.
Price Action Influence % - Controls the blend between price action scoring and volume/order flow scoring. At 0%, the indicator uses pure order flow analysis. At 100%, it uses pure price action analysis. The default 50% provides equal weighting to both methods. Consider increasing toward 100% for instruments with unreliable volume data such as forex pairs or certain CFDs. For futures contracts with excellent volume reporting, values around 50% often work well.
Candle Color Settings - Customize the buy color (default bright green), sell color (default red), and base/neutral color (default gray) to match your chart theme and personal preferences.
Fix Loading Error - Toggle this checkbox if the indicator fails to load, displays incorrectly or starts lagging. This forces TradingView to restart the indicator and typically resolves any issues.
-------------------------------------------------------------------
Instrument and Timeframe Considerations
The order flow component requires reliable volume data for optimal results. Consider these guidelines:
Futures: Generally provide excellent volume data and work well with lower Price Action Influence settings
Stocks: Good volume data during regular trading hours
Forex: Volume reliability varies by exchange; test before relying heavily on volume scoring
Crypto: Volume reliability varies by exchange; test before relying heavily on volume scoring
Index CFDs: Often have poor volume data; higher Price Action Influence recommended
Higher timeframes (daily, weekly) typically produce more reliable color readings with less noise. Lower timeframes can be useful for timing entries within the context of higher timeframe analysis.
The indicator requires a brief initialization period—approximately 60 bars for full accuracy as the adaptive calculations populate their historical reference data.
-------------------------------------------------------------------
Practical Guidance
Order Flow Candles works effectively when combined with other analysis methods. Consider using it alongside support/resistance levels, where bright candles at key zones can confirm breakouts or bounces. Volume profile analysis pairs naturally with this indicator, as does traditional structure and trend analysis.
The indicator is designed as a visualization and decision-support tool. It helps quantify and display information that might otherwise require mentally processing multiple data points. However, profitable trading requires more than entry signals—risk management, position sizing, and broader market context remain essential components of any complete trading approach.
-------------------------------------------------------------------
Limitations
When using any amount of volume weighting, the candles will show as grey until it has had enough previous bars to establish baseline averages to use for calculations. When using tick data on higher than 1 minute charts, the number of chart bars you get data will be limited, so try adjusting the lower timeframe to use a higher timeframe for more data. Or you can switch to 100% price action influence to get price action only candle coloring for the entire data set
Volume analysis accuracy depends entirely on the quality of volume data available for your chosen instrument so make sure to look at charts with the most reliable volume data for best results
Lower timeframe data has limited historical depth on TradingView; older bars may have less accurate order flow readings
First bars of new trading sessions (gap bars) are scored conservatively and may appear dimmer than expected
During extremely fast market conditions, lower timeframe data may lag slightly
The indicator provides decision support but is not a complete trading system on its own, so use this indicator as a guide to make decisions, but do not rely solely on it
SFP Trend & VWAP Liquidity Pro [Zofesu]🎯 SFP Trend & VWAP Liquidity Pro
Master the Flow with Institutional Precision.
It was primarily built on Nasdaq, sometimes works on Crypto and Commodities, mostly on Indices. Suitable for periods when the market is going sideways. Requires longer setup.
This indicator is a high-performance trading tool designed to identify Swing Failure Patterns (SFP) while maintaining strict alignment with market momentum. By combining Dynamic Liquidity Zones with a Dual-Filter Trend Engine , it ensures you only trade the most high-probability sweeps in the direction of institutional money.
🧠 The Philosophy
Trading liquidity sweeps (SFP) without a trend filter is like catching falling knives. This tool solves that by requiring Confluence . It identifies where retail stop-losses are being hunted and confirms if the major trend (VWAP/MA) is ready to defend that level.
🛠️ Key Features & Functionality
⚡ Smart SFP Detection: Automatically tracks historical Swing Highs and Lows to detect "fakeouts" where price sweeps liquidity and closes back within the range.
🛡️ Dual-Filter Trend Engine: Two fully customizable filters (EMA, SMA, HMA, or VWAP). You can use them to define a "Golden Zone" for entries.
⚓ Professional VWAP Anchoring: Choose how your volume-weighted price resets—Session, Week, Month, or Year. This allows you to track institutional value from intraday to long-term swing perspectives.
📊 Dynamic Liquidity Lines: Real-time visual tracking of the most recent "Upper" and "Lower" liquidity levels.
⚙️ Customizable Modes
The Institutional Fort: Use two slow MAs (e.g., 2000 & 5000) for maximum safety. Only take SFPs that align with the long-term macro trend.
The Volume Specialist: Combine one MA with a Weekly/Monthly VWAP. This aligns price action with pure volume-weighted value.
The Pure Aggressor: Turn off MA filters and use only Session VWAP for high-frequency scalping and rapid liquidity plays.
🚀 How to Trade with STVL Pro
Long Signal (BULL SFP): Price sweeps below a Swing Low but closes above it + Price is trending above your active Filters (A & B).
Short Signal (BEAR SFP): Price sweeps above a Swing High but closes below it + Price is trending below your active Filters (A & B).
You can preset filter A to EMA 2000
You can preset filter B to HMA 5000.
If the price is approaching the green lookback, just switch filter B to VWAP, you don't have to change the numbers. VWAP automatically uses the "Session" setting. So you will have EMA as support on the chart and VWAP will search for SFP. If HMA is closer to the red lookback zone, switch filter A to VWAP, it will search for SFP for short. SFP label may not always appear, it is very strict.
⚠️ Disclaimer
Past performance does not guarantee future results. Always use proper risk management. Designed for disciplined traders who value quality over quantity.
gary Long Vertical Spread with Trend Filter// Description (begin with English; allowed to include additional languages after):
// English:
// "gary Long Vertical Spread with Trend Filter" — protected release by GaryQuant.
// This indicator generates long-entry related signals (B3, B2) and exit/other signals (S, J)
// based on RSI, simple moving averages and a daily ATR-derived optimal price. A trend filter
// (configurable multi-timeframe) optionally suppresses certain long-entry signals in bearish
// conditions. The script supports a "B filter" to limit B signals frequency, draws persistent
// boxes/labels on confirmed bars, and provides alertconditions for filtered confirmed signals.
//
// Key defaults and usage:
// - Pine version: v5 (script published as Protected).
// - Trend filter default timeframe: 15 minutes (configurable).
// - Daily ATR length default: 14 (used to compute optimal price).
// - Recommended use: short timeframes where 1-minute signals are evaluated, trend filter TF
// may be set to 15m/30m/1h/etc. Adjust inputs to match your instrument and timeframe.
// - Inputs are exposed via the indicator settings (periods, multipliers, B filter minutes, etc.).
// - This publication is Protected; source code is not publicly exposed. The description provides
// sufficient explanation for moderation and user understanding without disclosing proprietary logic.
Bifurcation Zone - CAEBifurcation Zone — Cognitive Adversarial Engine (BZ-CAE)
Bifurcation Zone — CAE (BZ-CAE) is a next-generation divergence detection system enhanced by a Cognitive Adversarial Engine that evaluates both sides of every potential trade before presenting signals. Unlike traditional divergence indicators that show every price-oscillator disagreement regardless of context, BZ-CAE applies comprehensive market-state intelligence to identify only the divergences that occur in favorable conditions with genuine probability edges.
The system identifies structural bifurcation points — critical junctures where price and momentum disagree, signaling potential reversals or continuations — then validates these opportunities through five interconnected intelligence layers: Trend Conviction Scoring , Directional Momentum Alignment , Multi-Factor Exhaustion Modeling , Adversarial Validation , and Confidence Scoring . The result is a selective, context-aware signal system that filters noise and highlights high-probability setups.
This is not a "buy the arrow" indicator. It's a decision support framework that teaches you how to read market state, evaluate divergence quality, and make informed trading decisions based on quantified intelligence rather than hope.
What Sets BZ-CAE Apart: Technical Architecture
The Problem With Traditional Divergence Indicators
Most divergence indicators operate on a simple rule: if price makes a higher high and RSI makes a lower high, show a bearish signal. If price makes a lower low and RSI makes a higher low, show a bullish signal. This creates several critical problems:
Context Blindness : They show counter-trend signals in powerful trends that rarely reverse, leading to repeated losses as you fade momentum.
Signal Spam : Every minor price-oscillator disagreement generates an alert, overwhelming you with low-quality setups and creating analysis paralysis.
No Quality Ranking : All signals are treated identically. A marginal divergence in choppy conditions receives the same visual treatment as a high-conviction setup at a major exhaustion point.
Single-Sided Evaluation : They ask "Is this a good long?" without checking if the short case is overwhelmingly stronger, leading you into obvious bad trades.
Static Configuration : You manually choose RSI 14 or Stochastic 14 and hope it works, with no systematic way to validate if that's optimal for your instrument.
BZ-CAE's Solution: Cognitive Adversarial Intelligence
BZ-CAE solves these problems through an integrated five-layer intelligence architecture:
1. Trend Conviction Score (TCS) — 0 to 1 Scale
Most indicators check if ADX is above 25 to determine "trending" conditions. This binary approach misses nuance. TCS is a weighted composite metric:
Formula : 0.35 × normalize(ADX, 10, 35) + 0.35 × structural_strength + 0.30 × htf_alignment
Structural Strength : 10-bar SMA of consecutive directional bars. Captures persistence — are bulls or bears consistently winning?
HTF Alignment : Multi-timeframe EMA stacking (20/50/100/200). When all EMAs align in the same direction, you're in institutional trend territory.
Purpose : Quantifies how "locked in" the trend is. When TCS exceeds your threshold (default 0.80), the system knows to avoid counter-trend trades unless other factors override.
Interpretation :
TCS > 0.85: Very strong trend — counter-trading is extremely high risk
TCS 0.70-0.85: Strong trend — favor continuation, require exhaustion for reversals
TCS 0.50-0.70: Moderate trend — context matters, both directions viable
TCS < 0.50: Weak/choppy — reversals more viable, range-bound conditions
2. Directional Momentum Alignment (DMA) — ATR-Normalized
Formula : (EMA21 - EMA55) / ATR14
This isn't just "price above EMA" — it's a regime-aware momentum gauge. The same $100 price movement reads completely differently in high-volatility crypto versus low-volatility forex. By normalizing with ATR, DMA adapts its interpretation to current market conditions.
Purpose : Quantifies the directional "force" behind current price action. Positive = bullish push, negative = bearish push. Magnitude = strength.
Interpretation :
DMA > 0.7: Strong bullish momentum — bearish divergences risky
DMA 0.3 to 0.7: Moderate bullish bias
DMA -0.3 to 0.3: Balanced/choppy conditions
DMA -0.7 to -0.3: Moderate bearish bias
DMA < -0.7: Strong bearish momentum — bullish divergences risky
3. Multi-Factor Exhaustion Modeling — 0 to 1 Probability
Single-metric exhaustion detection (like "RSI > 80") misses complex market states. BZ-CAE aggregates five independent exhaustion signals:
Volume Spikes : Current volume versus 50-bar average
2.5x average: 0.25 weight
2.0x average: 0.15 weight
1.5x average: 0.10 weight
Divergence Present : The fact that a divergence exists contributes 0.30 weight — structural momentum disagreement is itself an exhaustion signal.
RSI Extremes : Captures oscillator climax zones
RSI > 80 or < 20: 0.25 weight
RSI > 75 or < 25: 0.15 weight
Pin Bar Detection : Identifies rejection candles (2:1 wick-to-body ratio, indicating failed breakout attempts): 0.15 weight
Extended Runs : Consecutive bars above/below EMA20 without pullback
30+ bars: 0.15 weight (market hasn't paused to consolidate)
Total exhaustion score is the sum of all applicable weights, capped at 1.0.
Purpose : Detects when strong trends become vulnerable to reversal. High exhaustion can override trend filters, allowing counter-trend trades at genuine turning points that basic indicators would miss.
Interpretation :
Exhaustion > 0.75: High probability of climax — yellow background shading alerts you visually
Exhaustion 0.50-0.75: Moderate overextension — watch for confirmation
Exhaustion < 0.50: Fresh move — trend can continue, counter-trend trades higher risk
4. Adversarial Validation — Game Theory Applied to Trading
This is BZ-CAE's signature innovation. Before approving any signal, the engine quantifies BOTH sides of the trade simultaneously:
For Bullish Divergences , it calculates:
Bull Case Score (0-1+) :
Distance below EMA20 (pullback quality): up to 0.25
Bullish EMA alignment (close > EMA20 > EMA50): 0.25
Oversold RSI (< 40): 0.25
Volume confirmation (> 1.2x average): 0.25
Bear Case Score (0-1+) :
Price below EMA50 (structural weakness): 0.30
Very oversold RSI (< 30, indicating knife-catching): 0.20
Differential = Bull Case - Bear Case
If differential < -0.10 (default threshold), the bear case is dominating — signal is BLOCKED or ANNOTATED.
For Bearish Divergences , the logic inverts (Bear Case vs Bull Case).
Purpose : Prevents trades where you're fighting obvious strength in the opposite direction. This is institutional-grade risk management — don't just evaluate your trade, evaluate the counter-trade simultaneously.
Why This Matters : You might see a bullish divergence at a local low, but if price is deeply below major support EMAs with strong bearish momentum, you're catching a falling knife. The adversarial check catches this and blocks the signal.
5. Confidence Scoring — 0 to 1 Quality Assessment
Every signal that passes initial filters receives a comprehensive quality score:
Formula :
0.30 × normalize(TCS) // Trend context
+ 0.25 × normalize(|DMA|) // Momentum magnitude
+ 0.20 × pullback_quality // Entry distance from EMA20
+ 0.15 × state_quality // ADX + alignment + structure
+ 0.10 × divergence_strength // Slope separation magnitude
+ adversarial_bonus (0-0.30) // Your side's advantage
Purpose : Ranks setup quality for filtering and position sizing decisions. You can set a minimum confidence threshold (default 0.35) to ensure only quality setups reach your chart.
Interpretation :
Confidence > 0.70: Premium setup — consider increased position size
Confidence 0.50-0.70: Good quality — standard size
Confidence 0.35-0.50: Acceptable — reduced size or skip if conservative
Confidence < 0.35: Marginal — blocked in Filtering mode, annotated in Advisory mode
CAE Operating Modes: Learning vs Enforcement
Off : Disables all CAE logic. Raw divergence pipeline only. Use for baseline comparison.
Advisory : Shows ALL signals regardless of CAE evaluation, but annotates signals that WOULD be blocked with specific warnings (e.g., "Bull: strong downtrend (TCS=0.87)" or "Adversarial bearish"). This is your learning mode — see CAE's decision logic in action without missing educational opportunities.
Filtering : Actively blocks low-quality signals. Only setups that pass all enabled gates (Trend Filter, Adversarial Validation, Confidence Gating) reach your chart. This is your live trading mode — trust the system to enforce discipline.
CAE Filter Gates: Three-Layer Protection
When CAE is enabled, signals must pass through three independent gates (each can be toggled on/off):
Gate 1: Strong Trend Filter
If TCS ≥ tcs_threshold (default 0.80)
And signal is counter-trend (bullish in downtrend or bearish in uptrend)
And exhaustion < exhaustion_required (default 0.50)
Then: BLOCK signal
Logic: Don't fade strong trends unless the move is clearly overextended
Gate 2: Adversarial Validation
Calculate both bull case and bear case scores
If opposing case dominates by more than adv_threshold (default 0.10)
Then: BLOCK signal
Logic: Avoid trades where you're fighting obvious strength in the opposite direction
Gate 3: Confidence Gating
Calculate composite confidence score (0-1)
If confidence < min_confidence (default 0.35)
Then: In Filtering mode, BLOCK signal; in Advisory mode, ANNOTATE with warning
Logic: Only take setups with minimum quality threshold
All three gates work together. A signal must pass ALL enabled gates to fire.
Visual Intelligence System
Bifurcation Zones (Supply/Demand Blocks)
When a divergence signal fires, BZ-CAE draws a semi-transparent box extending 15 bars forward from the signal pivot:
Demand Zones (Bullish) : Theme-colored box (cyan in Cyberpunk, blue in Professional, etc.) labeled "Demand" — marks where smart money likely placed buy orders as price diverged at the low.
Supply Zones (Bearish) : Theme-colored box (magenta in Cyberpunk, orange in Professional) labeled "Supply" — marks where smart money likely placed sell orders as price diverged at the high.
Theory : Divergences represent institutional disagreement with the crowd. The crowd pushed price to an extreme (new high or low), but momentum (oscillator) is waning, indicating smart money is taking the opposite side. These zones mark order placement areas that become future support/resistance.
Use Cases :
Exit targets: Take profit when price returns to opposite-side zone
Re-entry levels: If price returns to your entry zone, consider adding
Stop placement: Place stops just beyond your zone (below demand, above supply)
Auto-Cleanup : System keeps the last 20 zones to prevent chart clutter.
Adversarial Bar Coloring — Real-Time Market Debate Heatmap
Each bar is colored based on the Bull Case vs Bear Case differential:
Strong Bull Advantage (diff > 0.3): Full theme bull color (e.g., cyan)
Moderate Bull Advantage (diff > 0.1): 50% transparency bull
Neutral (diff -0.1 to 0.1): Gray/neutral theme
Moderate Bear Advantage (diff < -0.1): 50% transparency bear
Strong Bear Advantage (diff < -0.3): Full theme bear color (e.g., magenta)
This creates a real-time visual heatmap showing which side is "winning" the market debate. When bars flip from cyan to magenta (or vice versa), you're witnessing a shift in adversarial advantage — a leading indicator of potential momentum changes.
Exhaustion Shading
When exhaustion score exceeds 0.75, the chart background displays a semi-transparent yellow highlight. This immediate visual warning alerts you that the current move is at high risk of reversal, even if trend indicators remain strong.
Visual Themes — Six Aesthetic Options
Cyberpunk : Cyan/Magenta/Yellow — High contrast, neon aesthetic, excellent for dark-themed trading environments
Professional : Blue/Orange/Green — Corporate color palette, suitable for presentations and professional documentation
Ocean : Teal/Red/Cyan — Aquatic palette, calming for extended monitoring sessions
Fire : Orange/Red/Coral — Warm aggressive colors, high energy
Matrix : Green/Red/Lime — Code aesthetic, homage to classic hacker visuals
Monochrome : White/Gray — Minimal distraction, maximum focus on price action
All visual elements (signal markers, zones, bar colors, dashboard) adapt to your selected theme.
Divergence Engine — Core Detection System
What Are Divergences?
Divergences occur when price action and momentum indicators disagree, creating structural tension that often resolves in a change of direction:
Regular Divergence (Reversal Signal) :
Bearish Regular : Price makes higher high, oscillator makes lower high → Potential trend reversal down
Bullish Regular : Price makes lower low, oscillator makes higher low → Potential trend reversal up
Hidden Divergence (Continuation Signal) :
Bearish Hidden : Price makes lower high, oscillator makes higher high → Downtrend continuation
Bullish Hidden : Price makes higher low, oscillator makes lower low → Uptrend continuation
Both types can be enabled/disabled independently in settings.
Pivot Detection Methods
BZ-CAE uses symmetric pivot detection with separate lookback and lookforward periods (default 5/5):
Pivot High : Bar where high > all highs within lookback range AND high > all highs within lookforward range
Pivot Low : Bar where low < all lows within lookback range AND low < all lows within lookforward range
This ensures structural validity — the pivot must be a clear local extreme, not just a minor wiggle.
Divergence Validation Requirements
For a divergence to be confirmed, it must satisfy:
Slope Disagreement : Price slope and oscillator slope must move in opposite directions (for regular divs) or same direction with inverted highs/lows (for hidden divs)
Minimum Slope Change : |osc_slope| > min_slope_change / 100 (default 1.0) — filters weak, marginal divergences
Maximum Lookback Range : Pivots must be within max_lookback bars (default 60) — prevents ancient, irrelevant divergences
ATR-Normalized Strength : Divergence strength = min(|price_slope| × |osc_slope| × 10, 1.0) — quantifies the magnitude of disagreement in volatility context
Regular divergences receive 1.0× weight; hidden divergences receive 0.8× weight (slightly less reliable historically).
Oscillator Options — Five Professional Indicators
RSI (Relative Strength Index) : Classic overbought/oversold momentum indicator. Best for: General purpose divergence detection across all instruments.
Stochastic : Range-bound %K momentum comparing close to high-low range. Best for: Mean reversion strategies and range-bound markets.
CCI (Commodity Channel Index) : Measures deviation from statistical mean, auto-normalized to 0-100 scale. Best for: Cyclical instruments and commodities.
MFI (Money Flow Index) : Volume-weighted RSI incorporating money flow. Best for: Volume-driven markets like stocks and crypto.
Williams %R : Inverse stochastic looking back over period, auto-adjusted to 0-100. Best for: Reversal detection at extremes.
Each oscillator has adjustable length (2-200, default 14) and smoothing (1-20, default 1). You also set overbought (50-100, default 70) and oversold (0-50, default 30) thresholds.
Signal Timing Modes — Understanding Repainting
BZ-CAE offers two timing policies with complete transparency about repainting behavior:
Realtime (1-bar, peak-anchored)
How It Works :
Detects peaks 1 bar ago using pattern: high > high AND high > high
Signal prints on the NEXT bar after peak detection (bar_index)
Visual marker anchors to the actual PEAK bar (bar_index - 1, offset -1)
Signal locks in when bar CONFIRMS (closes)
Repainting Behavior :
On the FORMING bar (before close), the peak condition may change as new prices arrive
Once bar CLOSES (barstate.isconfirmed), signal is locked permanently
This is preview/early warning behavior by design
Best For :
Active monitoring and immediate alerts
Learning the system (seeing signals develop in real-time)
Responsive entry if you're watching the chart live
Confirmed (lookforward)
How It Works :
Uses Pine Script's built-in ta.pivothigh() and ta.pivotlow() functions
Requires full pivot validation period (lookback + lookforward bars)
Signal prints pivot_lookforward bars after the actual peak (default 5-bar delay)
Visual marker anchors to the actual peak bar (offset -pivot_lookforward)
No Repainting Behavior
Best For :
Backtesting and historical analysis
Conservative entries requiring full confirmation
Automated trading systems
Swing trading with larger timeframes
Tradeoff :
Delayed entry by pivot_lookforward bars (typically 5 bars)
On a 5-minute chart, this is a 25-minute delay
On a 4-hour chart, this is a 20-hour delay
Recommendation : Use Confirmed for backtesting to verify system performance honestly. Use Realtime for live monitoring only if you're actively watching the chart and understand pre-confirmation repainting behavior.
Signal Spacing System — Anti-Spam Architecture
Even after CAE filtering, raw divergences can cluster. The spacing system enforces separation:
Three Independent Filters
1. Min Bars Between ANY Signals (default 12):
Prevents rapid-fire clustering across both directions
If last signal (bull or bear) was within N bars, block new signal
Ensures breathing room between all setups
2. Min Bars Between SAME-SIDE Signals (default 24, optional enforcement):
Prevents bull-bull or bear-bear spam
Separate tracking for bullish and bearish signal timelines
Toggle enforcement on/off
3. Min ATR Distance From Last Signal (default 0, optional):
Requires price to move N × ATR from last signal location
Ensures meaningful price movement between setups
0 = disabled, 0.5-2.0 = typical range for enabled
All three filters work independently. A signal must pass ALL enabled filters to proceed.
Practical Guidance :
Scalping (1-5m) : Any 6-10, Same-side 12-20, ATR 0-0.5
Day Trading (15m-1H) : Any 12, Same-side 24, ATR 0-1.0
Swing Trading (4H-D) : Any 20-30, Same-side 40-60, ATR 1.0-2.0
Dashboard — Real-Time Control Center
The dashboard (toggleable, four corner positions, three sizes) provides comprehensive system intelligence:
Oscillator Section
Current oscillator type and value
State: OVERBOUGHT / OVERSOLD / NEUTRAL (color-coded)
Length parameter
Cognitive Engine Section
TCS (Trend Conviction Score) :
Current value with emoji state indicator
🔥 = Strong trend (>0.75)
📊 = Moderate trend (0.50-0.75)
〰️ = Weak/choppy (<0.50)
Color: Red if above threshold (trend filter active), yellow if moderate, green if weak
DMA (Directional Momentum Alignment) :
Current value with emoji direction indicator
🐂 = Bullish momentum (>0.5)
⚖️ = Balanced (-0.5 to 0.5)
🐻 = Bearish momentum (<-0.5)
Color: Green if bullish, red if bearish
Exhaustion :
Current value with emoji warning indicator
⚠️ = High exhaustion (>0.75)
🟡 = Moderate (0.50-0.75)
✓ = Low (<0.50)
Color: Red if high, yellow if moderate, green if low
Pullback :
Quality of current distance from EMA20
Values >0.6 are ideal entry zones (not too close, not too far)
Bull Case / Bear Case (if Adversarial enabled):
Current scores for both sides of the market debate
Differential with emoji indicator:
📈 = Bull advantage (>0.2)
➡️ = Balanced (-0.2 to 0.2)
📉 = Bear advantage (<-0.2)
Last Signal Metrics Section (New Feature)
When a signal fires, this section captures and displays:
Signal type (BULL or BEAR)
Bars elapsed since signal
Confidence % at time of signal
TCS value at signal time
DMA value at signal time
Purpose : Provides a historical reference for learning. You can see what the market state looked like when the last signal fired, helping you correlate outcomes with conditions.
Statistics Section
Total Signals : Lifetime count across session
Blocked Signals : Count and percentage (filter effectiveness metric)
Bull Signals : Total bullish divergences
Bear Signals : Total bearish divergences
Purpose : System health monitoring. If blocked % is very high (>60%), filters may be too strict. If very low (<10%), filters may be too loose.
Advisory Annotations
When CAE Mode = Advisory, this section displays warnings for signals that would be blocked in Filtering mode:
Examples:
"Bull spacing: wait 8 bars"
"Bear: strong uptrend (TCS=0.87)"
"Adversarial bearish"
"Low confidence 32%"
Multiple warnings can stack, separated by " | ". This teaches you CAE's decision logic transparently.
How to Use BZ-CAE — Complete Workflow
Phase 1: Initial Setup (First Session)
Apply BZ-CAE to your chart
Select your preferred Visual Theme (Cyberpunk recommended for visibility)
Set Signal Timing to "Confirmed (lookforward)" for learning
Choose your Oscillator Type (RSI recommended for general use, length 14)
Set Overbought/Oversold to 70/30 (standard)
Enable both Regular Divergence and Hidden Divergence
Set Pivot Lookback/Lookforward to 5/5 (balanced structure)
Enable CAE Intelligence
Set CAE Mode to "Advisory" (learning mode)
Enable all three CAE filters: Strong Trend Filter , Adversarial Validation , Confidence Gating
Enable Show Dashboard , position Top Right, size Normal
Enable Draw Bifurcation Zones and Adversarial Bar Coloring
Phase 2: Learning Period (Weeks 1-2)
Goal : Understand how CAE evaluates market state and filters signals.
Activities :
Watch the dashboard during signals :
Note TCS values when counter-trend signals fail — this teaches you the trend strength threshold for your instrument
Observe exhaustion patterns at actual turning points — learn when overextension truly matters
Study adversarial differential at signal times — see when opposing cases dominate
Review blocked signals (orange X-crosses):
In Advisory mode, you see everything — signals that would pass AND signals that would be blocked
Check the advisory annotations to understand why CAE would block
Track outcomes: Were the blocks correct? Did those signals fail?
Use Last Signal Metrics :
After each signal, check the dashboard capture of confidence, TCS, and DMA
Journal these values alongside trade outcomes
Identify patterns: Do confidence >0.70 signals work better? Does your instrument respect TCS >0.85?
Understand your instrument's "personality" :
Trending instruments (indices, major forex) may need TCS threshold 0.85-0.90
Choppy instruments (low-cap stocks, exotic pairs) may work best with TCS 0.70-0.75
High-volatility instruments (crypto) may need wider spacing
Low-volatility instruments may need tighter spacing
Phase 3: Calibration (Weeks 3-4)
Goal : Optimize settings for your specific instrument, timeframe, and style.
Calibration Checklist :
Min Confidence Threshold :
Review confidence distribution in your signal journal
Identify the confidence level below which signals consistently fail
Set min_confidence slightly above that level
Day trading : 0.35-0.45
Swing trading : 0.40-0.55
Scalping : 0.30-0.40
TCS Threshold :
Find the TCS level where counter-trend signals consistently get stopped out
Set tcs_threshold at or slightly below that level
Trending instruments : 0.85-0.90
Mixed instruments : 0.80-0.85
Choppy instruments : 0.75-0.80
Exhaustion Override Level :
Identify exhaustion readings that marked genuine reversals
Set exhaustion_required just below the average
Typical range : 0.45-0.55
Adversarial Threshold :
Default 0.10 works for most instruments
If you find CAE is too conservative (blocking good trades), raise to 0.15-0.20
If signals are still getting caught in opposing momentum, lower to 0.07-0.09
Spacing Parameters :
Count bars between quality signals in your journal
Set min bars ANY to ~60% of that average
Set min bars SAME-SIDE to ~120% of that average
Scalping : Any 6-10, Same 12-20
Day trading : Any 12, Same 24
Swing : Any 20-30, Same 40-60
Oscillator Selection :
Try different oscillators for 1-2 weeks each
Track win rate and average winner/loser by oscillator type
RSI : Best for general use, clear OB/OS
Stochastic : Best for range-bound, mean reversion
MFI : Best for volume-driven markets
CCI : Best for cyclical instruments
Williams %R : Best for reversal detection
Phase 4: Live Deployment
Goal : Disciplined execution with proven, calibrated system.
Settings Changes :
Switch CAE Mode from Advisory to Filtering
System now actively blocks low-quality signals
Only setups passing all gates reach your chart
Keep Signal Timing on Confirmed for conservative entries
OR switch to Realtime if you're actively monitoring and want faster entries (accept pre-confirmation repaint risk)
Use your calibrated thresholds from Phase 3
Enable high-confidence alerts: "⭐ High Confidence Bullish/Bearish" (>0.70)
Trading Discipline Rules :
Respect Blocked Signals :
If CAE blocks a trade you wanted to take, TRUST THE SYSTEM
Don't manually override — if you consistently disagree, return to Phase 2/3 calibration
The block exists because market state failed intelligence checks
Confidence-Based Position Sizing :
Confidence >0.70: Standard or increased size (e.g., 1.5-2.0% risk)
Confidence 0.50-0.70: Standard size (e.g., 1.0% risk)
Confidence 0.35-0.50: Reduced size (e.g., 0.5% risk) or skip if conservative
TCS-Based Management :
High TCS + counter-trend signal: Use tight stops, quick exits (you're fading momentum)
Low TCS + reversal signal: Use wider stops, trail aggressively (genuine reversal potential)
Exhaustion Awareness :
Exhaustion >0.75 (yellow shading): Market is overextended, reversal risk is elevated — consider early exit or tighter trailing stops even on winning trades
Exhaustion <0.30: Continuation bias — hold for larger move, wide trailing stops
Adversarial Context :
Strong differential against you (e.g., bullish signal with bear diff <-0.2): Use very tight stops, consider skipping
Strong differential with you (e.g., bullish signal with bull diff >0.2): Trail aggressively, this is your tailwind
Practical Settings by Timeframe & Style
Scalping (1-5 Minute Charts)
Objective : High frequency, tight stops, quick reversals in fast-moving markets.
Oscillator :
Type: RSI or Stochastic (fast response to quick moves)
Length: 9-11 (more responsive than standard 14)
Smoothing: 1 (no lag)
OB/OS: 65/35 (looser thresholds ensure frequent crossings in fast conditions)
Divergence :
Pivot Lookback/Lookforward: 3/3 (tight structure, catch small swings)
Max Lookback: 40-50 bars (recent structure only)
Min Slope Change: 0.8-1.0 (don't be overly strict)
CAE :
Mode: Advisory first (learn), then Filtering
Min Confidence: 0.30-0.35 (lower bar for speed, accept more signals)
TCS Threshold: 0.70-0.75 (allow more counter-trend opportunities)
Exhaustion Required: 0.45-0.50 (moderate override)
Strong Trend Filter: ON (still respect major intraday trends)
Adversarial: ON (critical for scalping protection — catches bad entries quickly)
Spacing :
Min Bars ANY: 6-10 (fast pace, many setups)
Min Bars SAME-SIDE: 12-20 (prevent clustering)
Min ATR Distance: 0 or 0.5 (loose)
Timing : Realtime (speed over precision, but understand repaint risk)
Visuals :
Signal Size: Tiny (chart clarity in busy conditions)
Show Zones: Optional (can clutter on low timeframes)
Bar Coloring: ON (helps read momentum shifts quickly)
Dashboard: Small size (corner reference, not main focus)
Key Consideration : Scalping generates noise. Even with CAE, expect lower win rate (45-55%) but aim for favorable R:R (2:1 or better). Size conservatively.
Day Trading (15-Minute to 1-Hour Charts)
Objective : Balance quality and frequency. Standard divergence trading approach.
Oscillator :
Type: RSI or MFI (proven reliability, volume confirmation with MFI)
Length: 14 (industry standard, well-studied)
Smoothing: 1-2
OB/OS: 70/30 (classic levels)
Divergence :
Pivot Lookback/Lookforward: 5/5 (balanced structure)
Max Lookback: 60 bars
Min Slope Change: 1.0 (standard strictness)
CAE :
Mode: Filtering (enforce discipline from the start after brief Advisory learning)
Min Confidence: 0.35-0.45 (quality filter without being too restrictive)
TCS Threshold: 0.80-0.85 (respect strong trends)
Exhaustion Required: 0.50 (balanced override threshold)
Strong Trend Filter: ON
Adversarial: ON
Confidence Gating: ON (all three filters active)
Spacing :
Min Bars ANY: 12 (breathing room between all setups)
Min Bars SAME-SIDE: 24 (prevent bull/bear clusters)
Min ATR Distance: 0-1.0 (optional refinement, typically 0.5-1.0)
Timing : Confirmed (1-bar delay for reliability, no repainting)
Visuals :
Signal Size: Tiny or Small
Show Zones: ON (useful reference for exits/re-entries)
Bar Coloring: ON (context awareness)
Dashboard: Normal size (full visibility)
Key Consideration : This is the "sweet spot" timeframe for BZ-CAE. Market structure is clear, CAE has sufficient data, and signal frequency is manageable. Expect 55-65% win rate with proper execution.
Swing Trading (4-Hour to Daily Charts)
Objective : Quality over quantity. High conviction only. Larger stops and targets.
Oscillator :
Type: RSI or CCI (robust on higher timeframes, smooth longer waves)
Length: 14-21 (capture larger momentum swings)
Smoothing: 1-3
OB/OS: 70/30 or 75/25 (strict extremes)
Divergence :
Pivot Lookback/Lookforward: 5/5 or 7/7 (structural purity, major swings only)
Max Lookback: 80-100 bars (broader historical context)
Min Slope Change: 1.2-1.5 (require strong, undeniable divergence)
CAE :
Mode: Filtering (strict enforcement, premium setups only)
Min Confidence: 0.40-0.55 (high bar for entry)
TCS Threshold: 0.85-0.95 (very strong trend protection — don't fade established HTF trends)
Exhaustion Required: 0.50-0.60 (higher bar for override — only extreme exhaustion justifies counter-trend)
Strong Trend Filter: ON (critical on HTF)
Adversarial: ON (avoid obvious bad trades)
Confidence Gating: ON (quality gate essential)
Spacing :
Min Bars ANY: 20-30 (substantial separation)
Min Bars SAME-SIDE: 40-60 (significant breathing room)
Min ATR Distance: 1.0-2.0 (require meaningful price movement)
Timing : Confirmed (purity over speed, zero repaint for swing accuracy)
Visuals :
Signal Size: Small or Normal (clear markers on zoomed-out view)
Show Zones: ON (important HTF levels)
Bar Coloring: ON (long-term trend awareness)
Dashboard: Normal or Large (comprehensive analysis)
Key Consideration : Swing signals are rare but powerful. Expect 2-5 signals per month per instrument. Win rate should be 60-70%+ due to stringent filtering. Position size can be larger given confidence.
Dashboard Interpretation Reference
TCS (Trend Conviction Score) States
0.00-0.50: Weak/Choppy
Emoji: 〰️
Color: Green/cyan
Meaning: No established trend. Range-bound or consolidating. Both reversal and continuation signals viable.
Action: Reversals (regular divs) are safer. Use wider profit targets (market has room to move). Consider mean reversion strategies.
0.50-0.75: Moderate Trend
Emoji: 📊
Color: Yellow/neutral
Meaning: Developing trend but not locked in. Context matters significantly.
Action: Check DMA and exhaustion. If DMA confirms trend and exhaustion is low, favor continuation (hidden divs). If exhaustion is high, reversals are viable.
0.75-0.85: Strong Trend
Emoji: 🔥
Color: Orange/warning
Meaning: Well-established trend with persistence. Counter-trend is high risk.
Action: Require exhaustion >0.50 for counter-trend entries. Favor continuation signals. Use tight stops on counter-trend attempts.
0.85-1.00: Very Strong Trend
Emoji: 🔥🔥
Color: Red/danger (if counter-trading)
Meaning: Locked-in institutional trend. Extremely high risk to fade.
Action: Avoid counter-trend unless exhaustion >0.75 (yellow shading). Focus exclusively on continuation opportunities. Momentum is king here.
DMA (Directional Momentum Alignment) Zones
-2.0 to -1.0: Strong Bearish Momentum
Emoji: 🐻🐻
Color: Dark red
Meaning: Powerful downside force. Sellers are in control.
Action: Bullish divergences are counter-momentum (high risk). Bearish divergences are with-momentum (lower risk). Size down on longs.
-0.5 to 0.5: Neutral/Balanced
Emoji: ⚖️
Color: Gray/neutral
Meaning: No strong directional bias. Choppy or consolidating.
Action: Both directions have similar probability. Focus on confidence score and adversarial differential for edge.
1.0 to 2.0: Strong Bullish Momentum
Emoji: 🐂🐂
Color: Bright green/cyan
Meaning: Powerful upside force. Buyers are in control.
Action: Bearish divergences are counter-momentum (high risk). Bullish divergences are with-momentum (lower risk). Size down on shorts.
Exhaustion States
0.00-0.50: Fresh Move
Emoji: ✓
Color: Green
Meaning: Trend is healthy, not overextended. Room to run.
Action: Counter-trend trades are premature. Favor continuation. Hold winners for larger moves. Avoid early exits.
0.50-0.75: Mature Move
Emoji: 🟡
Color: Yellow
Meaning: Move is aging. Watch for signs of climax.
Action: Tighten trailing stops on winning trades. Be ready for reversals. Don't add to positions aggressively.
0.75-0.85: High Exhaustion
Emoji: ⚠️
Color: Orange
Background: Yellow shading appears
Meaning: Move is overextended. Reversal risk elevated significantly.
Action: Counter-trend reversals are higher probability. Consider early exits on with-trend positions. Size up on reversal divergences (if CAE allows).
0.85-1.00: Critical Exhaustion
Emoji: ⚠️⚠️
Color: Red
Background: Yellow shading intensifies
Meaning: Climax conditions. Reversal imminent or underway.
Action: Aggressive reversal trades justified. Exit all with-trend positions. This is where major turns occur.
Confidence Score Tiers
0.00-0.30: Low Quality
Color: Red
Status: Blocked in Filtering mode
Action: Skip entirely. Setup lacks fundamental quality across multiple factors.
0.30-0.50: Moderate Quality
Color: Yellow/orange
Status: Marginal — passes in Filtering only if >min_confidence
Action: Reduced position size (0.5-0.75% risk). Tight stops. Conservative profit targets. Skip if you're selective.
0.50-0.70: High Quality
Color: Green/cyan
Status: Good setup across most quality factors
Action: Standard position size (1.0-1.5% risk). Normal stops and targets. This is your bread-and-butter trade.
0.70-1.00: Premium Quality
Color: Bright green/gold
Status: Exceptional setup — all factors aligned
Visual: Double confidence ring appears
Action: Consider increased position size (1.5-2.0% risk, maximum). Wider stops. Larger targets. High probability of success. These are rare — capitalize when they appear.
Adversarial Differential Interpretation
Bull Differential > 0.3 :
Visual: Strong cyan/green bar colors
Meaning: Bull case strongly dominates. Buyers have clear advantage.
Action: Bullish divergences favored (with-advantage). Bearish divergences face headwind (reduce size or skip). Momentum is bullish.
Bull Differential 0.1 to 0.3 :
Visual: Moderate cyan/green transparency
Meaning: Moderate bull advantage. Buyers have edge but not overwhelming.
Action: Both directions viable. Slight bias toward longs.
Differential -0.1 to 0.1 :
Visual: Gray/neutral bars
Meaning: Balanced debate. No clear advantage either side.
Action: Rely on other factors (confidence, TCS, exhaustion) for direction. Adversarial is neutral.
Bear Differential -0.3 to -0.1 :
Visual: Moderate red/magenta transparency
Meaning: Moderate bear advantage. Sellers have edge but not overwhelming.
Action: Both directions viable. Slight bias toward shorts.
Bear Differential < -0.3 :
Visual: Strong red/magenta bar colors
Meaning: Bear case strongly dominates. Sellers have clear advantage.
Action: Bearish divergences favored (with-advantage). Bullish divergences face headwind (reduce size or skip). Momentum is bearish.
Last Signal Metrics — Post-Trade Analysis
After a signal fires, dashboard captures:
Type : BULL or BEAR
Bars Ago : How long since signal (updates every bar)
Confidence : What was the quality score at signal time
TCS : What was trend conviction at signal time
DMA : What was momentum alignment at signal time
Use Case : Post-trade journaling and learning.
Example: "BULL signal 12 bars ago. Confidence: 68%, TCS: 0.42, DMA: -0.85"
Analysis : This was a bullish reversal (regular div) with good confidence, weak trend (TCS), but strong bearish momentum (DMA). The bet was that momentum would reverse — a counter-momentum play requiring exhaustion confirmation. Check if exhaustion was high at that time to justify the entry.
Track patterns:
Do your best trades have confidence >0.65?
Do low-TCS signals (<0.50) work better for you?
Are you more successful with-momentum (DMA aligned with signal) or counter-momentum?
Troubleshooting Guide
Problem: No Signals Appearing
Symptoms : Chart loads, dashboard shows metrics, but no divergence signals fire.
Diagnosis Checklist :
Check dashboard oscillator value : Is it crossing OB/OS levels (70/30)? If oscillator stays in 40-60 range constantly, it can't reach extremes needed for divergence detection.
Are pivots forming? : Look for local swing highs/lows on your chart. If price is in tight consolidation, pivots may not meet lookback/lookforward requirements.
Is spacing too tight? : Check "Last Signal" metrics — how many bars since last signal? If <12 and your min_bars_ANY is 12, spacing filter is blocking.
Is CAE blocking everything? : Check dashboard Statistics section — what's the blocked signal count? High blocks indicate overly strict filters.
Solutions :
Loosen OB/OS Temporarily :
Try 65/35 to verify divergence detection works
If signals appear, the issue was threshold strictness
Gradually tighten back to 67/33, then 70/30 as appropriate
Lower Min Confidence :
Try 0.25-0.30 (diagnostic level)
If signals appear, filter was too strict
Raise gradually to find sweet spot (0.35-0.45 typical)
Disable Strong Trend Filter Temporarily :
Turn off in CAE settings
If signals appear, TCS threshold was blocking everything
Re-enable and lower TCS_threshold to 0.70-0.75
Reduce Min Slope Change :
Try 0.7-0.8 (from default 1.0)
Allows weaker divergences through
Helpful on low-volatility instruments
Widen Spacing :
Set min_bars_ANY to 6-8
Set min_bars_SAME_SIDE to 12-16
Reduces time between allowed signals
Check Timing Mode :
If using Confirmed, remember there's a pivot_lookforward delay (5+ bars)
Switch to Realtime temporarily to verify system is working
Realtime has no delay but repaints
Verify Oscillator Settings :
Length 14 is standard but might not fit all instruments
Try length 9-11 for faster response
Try length 18-21 for slower, smoother response
Problem: Too Many Signals (Signal Spam)
Symptoms : Dashboard shows 50+ signals in Statistics, confidence scores mostly <0.40, signals clustering close together.
Solutions :
Raise Min Confidence :
Try 0.40-0.50 (quality filter)
Blocks bottom-tier setups
Targets top 50-60% of divergences only
Tighten OB/OS :
Use 70/30 or 75/25
Requires more extreme oscillator readings
Reduces false divergences in mid-range
Increase Min Slope Change :
Try 1.2-1.5 (from default 1.0)
Requires stronger, more obvious divergences
Filters marginal slope disagreements
Raise TCS Threshold :
Try 0.85-0.90 (from default 0.80)
Stricter trend filter blocks more counter-trend attempts
Favors only strongest trend alignment
Enable ALL CAE Gates :
Turn on Trend Filter + Adversarial + Confidence
Triple-layer protection
Blocks aggressively — expect 20-40% reduction in signals
Widen Spacing :
min_bars_ANY: 15-20 (from 12)
min_bars_SAME_SIDE: 30-40 (from 24)
Creates substantial breathing room
Switch to Confirmed Timing :
Removes realtime preview noise
Ensures full pivot validation
5-bar delay filters many false starts
Problem: Signals in Strong Trends Get Stopped Out
Symptoms : You take a bullish divergence in a downtrend (or bearish in uptrend), and it immediately fails. Dashboard showed high TCS at the time.
Analysis : This is INTENDED behavior — CAE is protecting you from low-probability counter-trend trades.
Understanding :
Check Last Signal Metrics in dashboard — what was TCS when signal fired?
If TCS was >0.85 and signal was counter-trend, CAE correctly identified it as high risk
Strong trends rarely reverse cleanly without major exhaustion
Your losses here are the system working as designed (blocking bad odds)
If You Want to Override (Not Recommended) :
Lower TCS_threshold to 0.70-0.75 (allows more counter-trend)
Lower exhaustion_required to 0.40 (easier override)
Disable Strong Trend Filter entirely (very risky)
Better Approach :
TRUST THE FILTER — it's preventing costly mistakes
Wait for exhaustion >0.75 (yellow shading) before counter-trending strong TCS
Focus on continuation signals (hidden divs) in high-TCS environments
Use Advisory mode to see what CAE is blocking and learn from outcomes
Problem: Adversarial Blocking Seems Wrong
Symptoms : You see a divergence that "looks good" visually, but CAE blocks with "Adversarial bearish/bullish" warning.
Diagnosis :
Check dashboard Bull Case and Bear Case scores at that moment
Look at Differential value
Check adversarial bar colors — was there strong coloring against your intended direction?
Understanding :
Adversarial catches "obvious" opposing momentum that's easy to miss
Example: Bullish divergence at a local low, BUT price is deeply below EMA50, bearish momentum is strong, and RSI shows knife-catching conditions
Bull Case might be 0.20 while Bear Case is 0.55
Differential = -0.35, far beyond threshold
Block is CORRECT — you'd be fighting overwhelming opposing flow
If You Disagree Consistently
Review blocked signals on chart — scroll back and check outcomes
Did those blocked signals actually work, or did they fail as adversarial predicted?
Raise adv_threshold to 0.15-0.20 (more permissive, allows closer battles)
Disable Adversarial Validation temporarily (diagnostic) to isolate its effect
Use Advisory mode to learn adversarial patterns over 50-100 signals
Remember : Adversarial is conservative BY DESIGN. It prevents "obvious" bad trades where you're fighting strong strength the other way.
Problem: Dashboard Not Showing or Incomplete
Solutions :
Toggle "Show Dashboard" to ON in settings
Try different dashboard sizes (Small/Normal/Large)
Try different positions (Top Left/Right, Bottom Left/Right) — might be off-screen
Some sections require CAE Enable = ON (Cognitive Engine section won't appear if CAE is disabled)
Statistics section requires at least 1 lifetime signal to populate
Check that visual theme is set (dashboard colors adapt to theme)
Problem: Performance Lag, Chart Freezing
Symptoms : Chart loading is slow, indicator calculations cause delays, pinch-to-zoom lags.
Diagnosis : Visual features are computationally expensive, especially adversarial bar coloring (recalculates every bar).
Solutions (In Order of Impact) :
Disable Adversarial Bar Coloring (MOST EXPENSIVE):
Turn OFF "Adversarial Bar Coloring" in settings
This is the single biggest performance drain
Immediate improvement
Reduce Vertical Lines :
Lower "Keep last N vertical lines" to 20-30
Or set to 0 to disable entirely
Moderate improvement
Disable Bifurcation Zones :
Turn OFF "Draw Bifurcation Zones"
Reduces box drawing calculations
Moderate improvement
Set Dashboard Size to Small :
Smaller dashboard = fewer cells = less rendering
Minor improvement
Use Shorter Max Lookback :
Reduce max_lookback to 40-50 (from 60+)
Fewer bars to scan for divergences
Minor improvement
Disable Exhaustion Shading :
Turn OFF "Show Market State"
Removes background coloring calculations
Minor improvement
Extreme Performance Mode :
Disable ALL visual enhancements
Keep only triangle markers
Dashboard Small or OFF
Use Minimal theme if available
Problem: Realtime Signals Repainting
Symptoms : You see a signal appear, but on next bar it disappears or moves.
Explanation :
Realtime mode detects peaks 1 bar ago: high > high AND high > high
On the FORMING bar (before close), this condition can change as new prices arrive
Example: At 10:05, high (10:04 bar) was 100, current high is 99 → peak detected
At 10:05:30, new high of 101 arrives → peak condition breaks → signal disappears
At 10:06 (bar close), final high is 101 → no peak at 10:04 anymore → signal gone permanently
This is expected behavior for realtime responsiveness. You get preview/early warning, but it's not locked until bar confirms.
Solutions :
Use Confirmed Timing :
Switch to "Confirmed (lookforward)" mode
ZERO repainting — pivot must be fully validated
5-bar delay (pivot_lookforward)
What you see in history is exactly what would have appeared live
Accept Realtime Repaint as Tradeoff :
Keep Realtime mode for speed and alerts
Understand that pre-confirmation signals may vanish
Only trade signals that CONFIRM at bar close (check barstate.isconfirmed)
Use for live monitoring, NOT for backtesting
Trade Only After Confirmation :
In Realtime mode, wait 1 full bar after signal appears before entering
If signal survives that bar close, it's locked
This adds 1-bar delay but removes repaint risk
Recommendation : Use Confirmed for backtesting and conservative trading. Use Realtime only for active monitoring with full understanding of preview behavior.
Risk Management Integration
BZ-CAE is a signal generation system, not a complete trading strategy. You must integrate proper risk management:
Position Sizing by Confidence
Confidence 0.70-1.00 (Premium) :
Risk: 1.5-2.0% of account (MAXIMUM)
Reasoning: High-quality setup across all factors
Still cap at 2% — even premium setups can fail
Confidence 0.50-0.70 (High Quality) :
Risk: 1.0-1.5% of account
Reasoning: Standard good setup
Your bread-and-butter risk level
Confidence 0.35-0.50 (Moderate Quality) :
Risk: 0.5-1.0% of account
Reasoning: Marginal setup, passes minimum threshold
Reduce size or skip if you're selective
Confidence <0.35 (Low Quality) :
Risk: 0% (blocked in Filtering mode)
Reasoning: Insufficient quality factors
System protects you by not showing these
Stop Placement Strategies
For Reversal Signals (Regular Divergences) :
Place stop beyond the divergence pivot plus buffer
Bullish : Stop below the divergence low - 1.0-1.5 × ATR
Bearish : Stop above the divergence high + 1.0-1.5 × ATR
Reasoning: If price breaks the pivot, divergence structure is invalidated
For Continuation Signals (Hidden Divergences) :
Place stop beyond recent swing in opposite direction
Bullish continuation : Stop below recent swing low (not the divergence pivot itself)
Bearish continuation : Stop above recent swing high
Reasoning: You're trading with trend, allow more breathing room
ATR-Based Stops :
1.5-2.0 × ATR is standard
Scale by timeframe:
Scalping (1-5m): 1.0-1.5 × ATR (tight)
Day trading (15m-1H): 1.5-2.0 × ATR (balanced)
Swing (4H-D): 2.0-3.0 × ATR (wide)
Never Use Fixed Dollar/Pip Stops :
Markets have different volatility
50-pip stop on EUR/USD ≠ 50-pip stop on GBP/JPY
Always normalize by ATR or pivot structure
Profit Targets and Scaling
Primary Target :
2-3 × ATR from entry (minimum 2:1 reward-risk)
Example : Entry at 100, ATR = 2, stop at 97 (1.5 × ATR) → target at 106 (3 × ATR) = 2:1 R:R
Scaling Out Strategy :
Take 50% off at 1.5 × ATR (secure partial profit)
Move stop to breakeven
Trail remaining 50% with 1.0 × ATR trailing stop
Let winners run if trend persists
Targets by Confidence :
High Confidence (>0.70) : Aggressive targets (3-4 × ATR), trail wider (1.5 × ATR)
Standard Confidence (0.50-0.70) : Normal targets (2-3 × ATR), standard trail (1.0 × ATR)
Low Confidence (0.35-0.50) : Conservative targets (1.5-2 × ATR), tight trail (0.75 × ATR)
Use Bifurcation Zones :
If opposite-side zone is visible on chart (from previous signal), use it as target
Example : Bullish signal at 100, prior supply zone at 110 → use 110 as target
Zones mark institutional resistance/support
Exhaustion-Based Exits :
If you're in a trade and exhaustion >0.75 develops (yellow shading), consider early exit
Market is overextended — reversal risk is high
Take profit even if target not reached
Trade Management by TCS
High TCS + Counter-Trend Trade (Risky) :
Use very tight stops (1.0-1.5 × ATR)
Conservative targets (1.5-2 × ATR)
Quick exit if trade doesn't work immediately
You're fading momentum — respect it
Low TCS + Reversal Trade (Safer) :
Use wider stops (2.0-2.5 × ATR)
Aggressive targets (3-4 × ATR)
Trail with patience
Genuine reversal potential in weak trend
High TCS + Continuation Trade (Safest) :
Standard stops (1.5-2.0 × ATR)
Very aggressive targets (4-5 × ATR)
Trail wide (1.5-2.0 × ATR)
You're with institutional momentum — let it run
Educational Value — Learning Machine Intelligence
BZ-CAE is designed as a learning platform, not just a tool:
Advisory Mode as Teacher
Most indicators are binary: signal or no signal. You don't learn WHY certain setups are better.
BZ-CAE's Advisory mode shows you EVERY potential divergence, then annotates the ones that would be blocked in Filtering mode with specific reasons:
"Bull: strong downtrend (TCS=0.87)" teaches you that TCS >0.85 makes counter-trend very risky
"Adversarial bearish" teaches you that the opposing case was dominating
"Low confidence 32%" teaches you that the setup lacked quality across multiple factors
"Bull spacing: wait 8 bars" teaches you that signals need breathing room
After 50-100 signals in Advisory mode, you internalize the CAE's decision logic. You start seeing these factors yourself BEFORE the indicator does.
Dashboard Transparency
Most "intelligent" indicators are black boxes — you don't know how they make decisions.
BZ-CAE shows you ALL metrics in real-time:
TCS tells you trend strength
DMA tells you momentum alignment
Exhaustion tells you overextension
Adversarial shows both sides of the debate
Confidence shows composite quality
You learn to interpret market state holistically, a skill applicable to ANY trading system beyond this indicator.
Divergence Quality Education
Not all divergences are equal. BZ-CAE teaches you which conditions produce high-probability setups:
Quality divergence : Regular bullish div at a low, TCS <0.50 (weak trend), exhaustion >0.75 (overextended), positive adversarial differential, confidence >0.70
Low-quality divergence : Regular bearish div at a high, TCS >0.85 (strong uptrend), exhaustion <0.30 (not overextended), negative adversarial differential, confidence <0.40
After using the system, you can evaluate divergences manually with similar intelligence.
Risk Management Discipline
Confidence-based position sizing teaches you to adjust risk based on setup quality, not emotions:
Beginners often size all trades identically
Or worse, size UP on marginal setups to "make up" for losses
BZ-CAE forces systematic sizing: premium setups get larger size, marginal setups get smaller size
This creates a probabilistic approach where your edge compounds over time.
What This Indicator Is NOT
Complete transparency about limitations and positioning:
Not a Prediction System
BZ-CAE does not predict future prices. It identifies structural divergences (price-momentum disagreements) and assesses current market state (trend, exhaustion, adversarial conditions). It tells you WHEN conditions favor a potential reversal or continuation, not WHAT WILL HAPPEN.
Markets are probabilistic. Even premium-confidence setups fail ~30-40% of the time. The system improves your probability distribution over many trades — it doesn't eliminate risk.
Not Fully Automated
This is a decision support tool, not a trading robot. You must:
Execute trades manually based on signals
Manage positions (stops, targets, trailing)
Apply discretionary judgment (news events, liquidity, context)
Integrate with your broader strategy and risk rules
The confidence scores guide position sizing, but YOU determine final risk allocation based on your account size, risk tolerance, and portfolio context.
Not Beginner-Friendly
BZ-CAE requires understanding of:
Divergence trading concepts (regular vs hidden, reversal vs continuation)
Market state interpretation (trend vs range, momentum, exhaustion)
Basic technical analysis (pivots, support/resistance, EMAs)
Risk management fundamentals (position sizing, stops, R:R)
This is designed for intermediate to advanced traders willing to invest time learning the system. If you want "buy the arrow" simplicity, this isn't the tool.
Not a Holy Grail
There is no perfect indicator. BZ-CAE filters noise and improves signal quality significantly, but:
Losing trades are inevitable (even at 70% win rate, 30% still fail)
Market conditions change rapidly (yesterday's strong trend becomes today's chop)
Black swan events occur (fundamentals override technicals)
Execution matters (slippage, fees, emotional discipline)
The system provides an EDGE, not a guarantee. Your job is to execute that edge consistently with proper risk management over hundreds of trades.
Not Financial Advice
BZ-CAE is an educational and analytical tool. All trading decisions are your responsibility. Past performance (backtested or live) does not guarantee future results. Only risk capital you can afford to lose. Consult a licensed financial advisor for investment advice specific to your situation.
Ideal Market Conditions
Best Performance Characteristics
Liquid Instruments :
Major forex pairs (EUR/USD, GBP/USD, USD/JPY)
Large-cap stocks and index ETFs (SPY, QQQ, AAPL, MSFT)
High-volume crypto (BTC, ETH)
Major commodities (Gold, Oil, Natural Gas)
Reasoning: Clean price structure, clear pivots, meaningful oscillator behavior
Trending with Consolidations :
Markets that trend for 20-40 bars, then consolidate 10-20 bars, repeat
Creates divergences at consolidation boundaries (reversals) and within trends (continuations)
Both regular and hidden divs find opportunities
5-Minute to Daily Timeframes :
Below 5m: too much noise, false pivots, CAE metrics unstable
Above daily: too few signals, edge diminishes (fundamentals dominate)
Sweet spot: 15m to 4H for most traders
Consistent Volume and Participation :
Regular trading sessions (not holidays or thin markets)
Predictable volatility patterns
Avoid instruments with sudden gaps or circuit breakers
Challenging Conditions
Extremely Low Liquidity :
Penny stocks, exotic forex pairs, low-volume crypto
Erratic pivots, unreliable oscillator readings
CAE metrics can't assess market state properly
Very Low Timeframes (1-Minute or Below) :
Dominated by market microstructure noise
Divergences are everywhere but meaningless
CAE filtering helps but still unreliable
Extended Sideways Consolidation :
100+ bars of tight range with no clear pivots
Oscillator hugs midpoint (45-55 range)
No divergences to detect
Fundamentally-Driven Gap Markets :
Earnings releases, economic data, geopolitical events
Price gaps over stops and targets
Technical structure breaks down
Recommendation: Disable trading around known events
Calculation Methodology — Technical Depth
For users who want to understand the math:
Oscillator Computation
Each oscillator type calculates differently, but all normalize to 0-100:
RSI : ta.rsi(close, length) — Standard Relative Strength Index
Stochastic : ta.stoch(high, low, close, length) — %K calculation
CCI : (ta.cci(hlc3, length) + 100) / 2 — Normalized from -100/+100 to 0-100
MFI : ta.mfi(hlc3, length) — Volume-weighted RSI equivalent
Williams %R : ta.wpr(length) + 100 — Inverted stochastic adjusted to 0-100
Smoothing: If smoothing > 1, apply ta.sma(oscillator, smoothing)
Divergence Detection Algorithm
Identify Pivots :
Price high pivot: ta.pivothigh(high, lookback, lookforward)
Price low pivot: ta.pivotlow(low, lookback, lookforward)
Oscillator high pivot: ta.pivothigh(osc, lookback, lookforward)
Oscillator low pivot: ta.pivotlow(osc, lookback, lookforward)
Store Recent Pivots :
Maintain arrays of last 10 pivots with bar indices
When new pivot confirmed, unshift to array, pop oldest if >10
Scan for Slope Disagreements :
Loop through last 5 pivots
For each pair (current pivot, historical pivot):
Check if within max_lookback bars
Calculate slopes: (current - historical) / bars_between
Regular bearish: price_slope > 0, osc_slope < 0, |osc_slope| > min_threshold
Regular bullish: price_slope < 0, osc_slope > 0, |osc_slope| > min_threshold
Hidden bearish: price_slope < 0, osc_slope > 0, osc_slope > min_threshold
Hidden bullish: price_slope > 0, osc_slope < 0, |osc_slope| > min_threshold
Important Disclaimers and Terms
Performance Disclosure
Past performance, whether backtested or live-traded, does not guarantee future results. Markets change. What works today may not work tomorrow. Hypothetical or simulated performance results have inherent limitations and do not represent actual trading.
Risk of Loss
Trading involves substantial risk of loss. Only trade with risk capital you can afford to lose entirely. The high degree of leverage often available in trading can work against you as well as for you. Leveraged trading may result in losses exceeding your initial deposit.
Not Financial Advice
BZ-CAE is an educational and analytical tool for technical analysis. It is not financial advice, investment advice, or a recommendation to buy or sell any security or instrument. All trading decisions are your sole responsibility. Consult a licensed financial advisor for advice specific to your circumstances.
Technical Indicator Limitations
BZ-CAE is a technical analysis tool based on price and volume data. It does not account for:
Fundamental analysis (earnings, economic data, financial health)
Market sentiment and positioning
Geopolitical events and news
Liquidity conditions and market microstructure changes
Regulatory changes or exchange rules
Integrate with broader analysis and strategy. Do not rely solely on technical indicators for trading decisions.
Repainting Acknowledgment
As disclosed throughout this documentation:
Realtime mode may repaint on forming bars before confirmation (by design for preview functionality)
Confirmed mode has zero repainting (fully validated pivots only)
Choose timing mode appropriate for your use case. Understand the tradeoffs.
Testing Recommendation
ALWAYS test on demo/paper accounts before committing real capital. Validate the indicator's behavior on your specific instruments and timeframes. Learn the system thoroughly in Advisory mode before using Filtering mode.
Learning Resources :
In-indicator tooltips (hover over setting names for detailed explanations)
This comprehensive publishing statement (save for reference)
User guide in script comments (top of code)
Final Word — Philosophy of BZ-CAE
BZ-CAE is not designed to replace your judgment — it's designed to enhance it.
The indicator identifies structural inflection points (bifurcations) where price and momentum disagree. The Cognitive Engine evaluates market state to determine if this disagreement is meaningful or noise. The Adversarial model debates both sides of the trade to catch obvious bad setups. The Confidence system ranks quality so you can choose your risk appetite.
But YOU still execute. YOU still manage risk. YOU still learn from outcomes.
This is intelligence amplification, not intelligence replacement.
Use Advisory mode to learn how expert traders evaluate market state. Use Filtering mode to enforce discipline when emotions run high. Use the dashboard to develop a systematic approach to reading markets. Use confidence scores to size positions probabilistically.
The system provides an edge. Your job is to execute that edge with discipline, patience, and proper risk management over hundreds of trades.
Markets are probabilistic. No system wins every trade. But a systematic edge + disciplined execution + proper risk management compounds over time. That's the path to consistent profitability. BZ-CAE gives you the edge. The discipline and risk management are on you.
Taking you to school. — Dskyz, Trade with insight. Trade with anticipation.
RSI Overbought/Oversold + Divergence Indicator (new)//@version=5
indicator('CryptoSignalScanner - RSI Overbought/Oversold + Divergence Indicator (new)',
//---------------------------------------------------------------------------------------------------------------------------------
//--- Define Colors ---------------------------------------------------------------------------------------------------------------
//---------------------------------------------------------------------------------------------------------------------------------
vWhite = #FFFFFF
vViolet = #C77DF3
vIndigo = #8A2BE2
vBlue = #009CDF
vGreen = #5EBD3E
vYellow = #FFB900
vRed = #E23838
longColor = color.green
shortColor = color.red
textColor = color.white
bullishColor = color.rgb(38,166,154,0) //Used in the display table
bearishColor = color.rgb(239,83,79,0) //Used in the display table
nomatchColor = color.silver //Used in the display table
//---------------------------------------------------------------------------------------------------------------------------------------------------------------------
//--- Functions--------------------------------------------------------------------------------------------------------------------------------------------------------
//---------------------------------------------------------------------------------------------------------------------------------------------------------------------
TF2txt(TF) =>
switch TF
"S" => "RSI 1s:"
"5S" => "RSI 5s:"
"10S" => "RSI 10s:"
"15S" => "RSI 15s:"
"30S" => "RSI 30s"
"1" => "RSI 1m:"
"3" => "RSI 3m:"
"5" => "RSI 5m:"
"15" => "RSI 15m:"
"30" => "RSI 30m"
"45" => "RSI 45m"
"60" => "RSI 1h:"
"120" => "RSI 2h:"
"180" => "RSI 3h:"
"240" => "RSI 4h:"
"480" => "RSI 8h:"
"D" => "RSI 1D:"
"1D" => "RSI 1D:"
"2D" => "RSI 2D:"
"3D" => "RSI 2D:"
"3D" => "RSI 3W:"
"W" => "RSI 1W:"
"1W" => "RSI 1W:"
"M" => "RSI 1M:"
"1M" => "RSI 1M:"
"3M" => "RSI 3M:"
"6M" => "RSI 6M:"
"12M" => "RSI 12M:"
//---------------------------------------------------------------------------------------------------------------------------------------------------------------------
//--- Show/Hide Settings ----------------------------------------------------------------------------------------------------------------------------------------------
//---------------------------------------------------------------------------------------------------------------------------------------------------------------------
rsiShowInput = input(true, title='Show RSI', group='Show/Hide Settings')
maShowInput = input(false, title='Show MA', group='Show/Hide Settings')
showRSIMAInput = input(true, title='Show RSIMA Cloud', group='Show/Hide Settings')
rsiBandShowInput = input(true, title='Show Oversold/Overbought Lines', group='Show/Hide Settings')
rsiBandExtShowInput = input(true, title='Show Oversold/Overbought Extended Lines', group='Show/Hide Settings')
rsiHighlightShowInput = input(true, title='Show Oversold/Overbought Highlight Lines', group='Show/Hide Settings')
DivergenceShowInput = input(true, title='Show RSI Divergence Labels', group='Show/Hide Settings')
//---------------------------------------------------------------------------------------------------------------------------------------------------------------------
//--- Table Settings --------------------------------------------------------------------------------------------------------------------------------------------------
//---------------------------------------------------------------------------------------------------------------------------------------------------------------------
rsiShowTable = input(true, title='Show RSI Table Information box', group="RSI Table Settings")
rsiTablePosition = input.string(title='Location', defval='middle_right', options= , group="RSI Table Settings", inline='1')
rsiTextSize = input.string(title=' Size', defval='small', options= , group="RSI Table Settings", inline='1')
rsiShowTF1 = input(true, title='Show TimeFrame1', group="RSI Table Settings", inline='tf1')
rsiTF1 = input.timeframe("15", title=" Time", group="RSI Table Settings", inline='tf1')
rsiShowTF2 = input(true, title='Show TimeFrame2', group="RSI Table Settings", inline='tf2')
rsiTF2 = input.timeframe("60", title=" Time", group="RSI Table Settings", inline='tf2')
rsiShowTF3 = input(true, title='Show TimeFrame3', group="RSI Table Settings", inline='tf3')
rsiTF3 = input.timeframe("240", title=" Time", group="RSI Table Settings", inline='tf3')
rsiShowTF4 = input(true, title='Show TimeFrame4', group="RSI Table Settings", inline='tf4')
rsiTF4 = input.timeframe("D", title=" Time", group="RSI Table Settings", inline='tf4')
rsiShowHist = input(true, title='Show RSI Historical Columns', group="RSI Table Settings", tooltip='Show the information of the 2 previous closed candles')
//---------------------------------------------------------------------------------------------------------------------------------------------------------------------
//--- RSI Input Settings ----------------------------------------------------------------------------------------------------------------------------------------------
//---------------------------------------------------------------------------------------------------------------------------------------------------------------------
rsiSourceInput = input.source(close, 'Source', group='RSI Settings')
rsiLengthInput = input.int(14, minval=1, title='RSI Length', group='RSI Settings', tooltip='Here we set the RSI lenght')
rsiColorInput = input.color(#26a69a, title="RSI Color", group='RSI Settings')
rsimaColorInput = input.color(#ef534f, title="RSIMA Color", group='RSI Settings')
rsiBandColorInput = input.color(#787B86, title="RSI Band Color", group='RSI Settings')
rsiUpperBandExtInput = input.int(title='RSI Overbought Extended Line', defval=80, minval=50, maxval=100, group='RSI Settings')
rsiUpperBandInput = input.int(title='RSI Overbought Line', defval=70, minval=50, maxval=100, group='RSI Settings')
rsiLowerBandInput = input.int(title='RSI Oversold Line', defval=30, minval=0, maxval=50, group='RSI Settings')
rsiLowerBandExtInput = input.int(title='RSI Oversold Extended Line', defval=20, minval=0, maxval=50, group='RSI Settings')
//---------------------------------------------------------------------------------------------------------------------------------------------------------------------
//--- MA Input Settings -----------------------------------------------------------------------------------------------------------------------------------------------
//---------------------------------------------------------------------------------------------------------------------------------------------------------------------
maTypeInput = input.string("EMA", title="MA Type", options= , group="MA Settings")
maLengthInput = input.int(14, title="MA Length", group="MA Settings")
maColorInput = input.color(color.yellow, title="MA Color", group='MA Settings') //#7E57C2
//---------------------------------------------------------------------------------------------------------------------------------------------------------------------
//--- Divergence Input Settings ---------------------------------------------------------------------------------------------------------------------------------------
//---------------------------------------------------------------------------------------------------------------------------------------------------------------------
lbrInput = input(title="Pivot Lookback Right", defval=2, group='RSI Divergence Settings')
lblInput = input(title="Pivot Lookback Left", defval=2, group='RSI Divergence Settings')
lbRangeMaxInput = input(title="Max of Lookback Range", defval=10, group='RSI Divergence Settings')
lbRangeMinInput = input(title="Min of Lookback Range", defval=2, group='RSI Divergence Settings')
plotBullInput = input(title="Plot Bullish", defval=true, group='RSI Divergence Settings')
plotHiddenBullInput = input(title="Plot Hidden Bullish", defval=true, group='RSI Divergence Settings')
plotBearInput = input(title="Plot Bearish", defval=true, group='RSI Divergence Settings')
plotHiddenBearInput = input(title="Plot Hidden Bearish", defval=true, group='RSI Divergence Settings')
//---------------------------------------------------------------------------------------------------------------------------------------------------------------------
//--- RSI Calculation -------------------------------------------------------------------------------------------------------------------------------------------------
//---------------------------------------------------------------------------------------------------------------------------------------------------------------------
rsi = ta.rsi(rsiSourceInput, rsiLengthInput)
rsiprevious = rsi
= request.security(syminfo.tickerid, rsiTF1, [rsi, rsi , rsi ], lookahead=barmerge.lookahead_on)
= request.security(syminfo.tickerid, rsiTF2, [rsi, rsi , rsi ], lookahead=barmerge.lookahead_on)
= request.security(syminfo.tickerid, rsiTF3, [rsi, rsi , rsi ], lookahead=barmerge.lookahead_on)
= request.security(syminfo.tickerid, rsiTF4, [rsi, rsi , rsi ], lookahead=barmerge.lookahead_on)
//---------------------------------------------------------------------------------------------------------------------------------------------------------------------
//--- MA Calculation -------------------------------------------------------------------------------------------------------------------------------------------------
//---------------------------------------------------------------------------------------------------------------------------------------------------------------------
ma(source, length, type) =>
switch type
"SMA" => ta.sma(source, length)
"Bollinger Bands" => ta.sma(source, length)
"EMA" => ta.ema(source, length)
"SMMA (RMA)" => ta.rma(source, length)
"WMA" => ta.wma(source, length)
"VWMA" => ta.vwma(source, length)
rsiMA = ma(rsi, maLengthInput, maTypeInput)
rsiMAPrevious = rsiMA
//---------------------------------------------------------------------------------------------------------------------------------------------------------------------
//--- Stoch RSI Settings + Calculation --------------------------------------------------------------------------------------------------------------------------------
//---------------------------------------------------------------------------------------------------------------------------------------------------------------------
showStochRSI = input(false, title="Show Stochastic RSI", group='Stochastic RSI Settings')
smoothK = input.int(title="Stochastic K", defval=3, minval=1, maxval=10, group='Stochastic RSI Settings')
smoothD = input.int(title="Stochastic D", defval=4, minval=1, maxval=10, group='Stochastic RSI Settings')
lengthRSI = input.int(title="Stochastic RSI Lenght", defval=14, minval=1, group='Stochastic RSI Settings')
lengthStoch = input.int(title="Stochastic Lenght", defval=14, minval=1, group='Stochastic RSI Settings')
colorK = input.color(color.rgb(41,98,255,0), title="K Color", group='Stochastic RSI Settings', inline="1")
colorD = input.color(color.rgb(205,109,0,0), title="D Color", group='Stochastic RSI Settings', inline="1")
StochRSI = ta.rsi(rsiSourceInput, lengthRSI)
k = ta.sma(ta.stoch(StochRSI, StochRSI, StochRSI, lengthStoch), smoothK) //Blue Line
d = ta.sma(k, smoothD) //Red Line
//---------------------------------------------------------------------------------------------------------------------------------------------------------------------
//--- Divergence Settings ------------------------------------------------------------------------------------------------------------------------------------------
//---------------------------------------------------------------------------------------------------------------------------------------------------------------------
bearColor = color.red
bullColor = color.green
hiddenBullColor = color.new(color.green, 50)
hiddenBearColor = color.new(color.red, 50)
//textColor = color.white
noneColor = color.new(color.white, 100)
osc = rsi
plFound = na(ta.pivotlow(osc, lblInput, lbrInput)) ? false : true
phFound = na(ta.pivothigh(osc, lblInput, lbrInput)) ? false : true
_inRange(cond) =>
bars = ta.barssince(cond == true)
lbRangeMinInput <= bars and bars <= lbRangeMaxInput
//---------------------------------------------------------------------------------------------------------------------------------------------------------------------
//--- Define Plot & Line Colors ---------------------------------------------------------------------------------------------------------------------------------------
//---------------------------------------------------------------------------------------------------------------------------------------------------------------------
rsiColor = rsi >= rsiMA ? rsiColorInput : rsimaColorInput
//---------------------------------------------------------------------------------------------------------------------------------------------------------------------
//--- Plot Lines ------------------------------------------------------------------------------------------------------------------------------------------------------
//---------------------------------------------------------------------------------------------------------------------------------------------------------------------
// Create a horizontal line at a specific price level
myLine = line.new(bar_index , 75, bar_index, 75, color = color.rgb(187, 14, 14), width = 2)
bottom = line.new(bar_index , 50, bar_index, 50, color = color.rgb(223, 226, 28), width = 2)
mymainLine = line.new(bar_index , 60, bar_index, 60, color = color.rgb(13, 154, 10), width = 3)
hline(50, title='RSI Baseline', color=color.new(rsiBandColorInput, 50), linestyle=hline.style_solid, editable=false)
hline(rsiBandExtShowInput ? rsiUpperBandExtInput : na, title='RSI Upper Band', color=color.new(rsiBandColorInput, 10), linestyle=hline.style_dashed, editable=false)
hline(rsiBandShowInput ? rsiUpperBandInput : na, title='RSI Upper Band', color=color.new(rsiBandColorInput, 10), linestyle=hline.style_dashed, editable=false)
hline(rsiBandShowInput ? rsiLowerBandInput : na, title='RSI Upper Band', color=color.new(rsiBandColorInput, 10), linestyle=hline.style_dashed, editable=false)
hline(rsiBandExtShowInput ? rsiLowerBandExtInput : na, title='RSI Upper Band', color=color.new(rsiBandColorInput, 10), linestyle=hline.style_dashed, editable=false)
bgcolor(rsiHighlightShowInput ? rsi >= rsiUpperBandExtInput ? color.new(rsiColorInput, 70) : na : na, title="Show Extended Oversold Highlight", editable=false)
bgcolor(rsiHighlightShowInput ? rsi >= rsiUpperBandInput ? rsi < rsiUpperBandExtInput ? color.new(#64ffda, 90) : na : na: na, title="Show Overbought Highlight", editable=false)
bgcolor(rsiHighlightShowInput ? rsi <= rsiLowerBandInput ? rsi > rsiLowerBandExtInput ? color.new(#F43E32, 90) : na : na : na, title="Show Extended Oversold Highlight", editable=false)
bgcolor(rsiHighlightShowInput ? rsi <= rsiLowerBandInput ? color.new(rsimaColorInput, 70) : na : na, title="Show Oversold Highlight", editable=false)
maPlot = plot(maShowInput ? rsiMA : na, title='MA', color=color.new(maColorInput,0), linewidth=1)
rsiMAPlot = plot(showRSIMAInput ? rsiMA : na, title="RSI EMA", color=color.new(rsimaColorInput,0), editable=false, display=display.none)
rsiPlot = plot(rsiShowInput ? rsi : na, title='RSI', color=color.new(rsiColor,0), linewidth=1)
fill(rsiPlot, rsiMAPlot, color=color.new(rsiColor, 60), title="RSIMA Cloud")
plot(showStochRSI ? k : na, title='Stochastic K', color=colorK, linewidth=1)
plot(showStochRSI ? d : na, title='Stochastic D', color=colorD, linewidth=1)
//---------------------------------------------------------------------------------------------------------------------------------------------------------------------
//--- Plot Divergence -------------------------------------------------------------------------------------------------------------------------------------------------
//---------------------------------------------------------------------------------------------------------------------------------------------------------------------
// Regular Bullish
// Osc: Higher Low
oscHL = osc > ta.valuewhen(plFound, osc , 1) and _inRange(plFound )
// Price: Lower Low
priceLL = low < ta.valuewhen(plFound, low , 1)
bullCond = plotBullInput and priceLL and oscHL and plFound
plot(
plFound ? osc : na,
offset=-lbrInput,
title="Regular Bullish",
linewidth=2,
color=(bullCond ? bullColor : noneColor)
)
plotshape(
DivergenceShowInput ? bullCond ? osc : na : na,
offset=-lbrInput,
title="Regular Bullish Label",
text=" Bull ",
style=shape.labelup,
location=location.absolute,
color=bullColor,
textcolor=textColor
)
//------------------------------------------------------------------------------
// Hidden Bullish
// Osc: Lower Low
oscLL = osc < ta.valuewhen(plFound, osc , 1) and _inRange(plFound )
// Price: Higher Low
priceHL = low > ta.valuewhen(plFound, low , 1)
hiddenBullCond = plotHiddenBullInput and priceHL and oscLL and plFound
plot(
plFound ? osc : na,
offset=-lbrInput,
title="Hidden Bullish",
linewidth=2,
color=(hiddenBullCond ? hiddenBullColor : noneColor)
)
plotshape(
DivergenceShowInput ? hiddenBullCond ? osc : na : na,
offset=-lbrInput,
title="Hidden Bullish Label",
text=" H Bull ",
style=shape.labelup,
location=location.absolute,
color=bullColor,
textcolor=textColor
)
//------------------------------------------------------------------------------
// Regular Bearish
// Osc: Lower High
oscLH = osc < ta.valuewhen(phFound, osc , 1) and _inRange(phFound )
// Price: Higher High
priceHH = high > ta.valuewhen(phFound, high , 1)
bearCond = plotBearInput and priceHH and oscLH and phFound
plot(
phFound ? osc : na,
offset=-lbrInput,
title="Regular Bearish",
linewidth=2,
color=(bearCond ? bearColor : noneColor)
)
plotshape(
DivergenceShowInput ? bearCond ? osc : na : na,
offset=-lbrInput,
title="Regular Bearish Label",
text=" Bear ",
style=shape.labeldown,
location=location.absolute,
color=bearColor,
textcolor=textColor
)
//------------------------------------------------------------------------------
// Hidden Bearish
// Osc: Higher High
oscHH = osc > ta.valuewhen(phFound, osc , 1) and _inRange(phFound )
// Price: Lower High
priceLH = high < ta.valuewhen(phFound, high , 1)
hiddenBearCond = plotHiddenBearInput and priceLH and oscHH and phFound
plot(
phFound ? osc : na,
offset=-lbrInput,
title="Hidden Bearish",
linewidth=2,
color=(hiddenBearCond ? hiddenBearColor : noneColor)
)
plotshape(
DivergenceShowInput ? hiddenBearCond ? osc : na : na,
offset=-lbrInput,
title="Hidden Bearish Label",
text=" H Bear ",
style=shape.labeldown,
location=location.absolute,
color=bearColor,
textcolor=textColor
)
//---------------------------------------------------------------------------------------------------------------------------------------------------------------------
//--- Check RSI Lineup ------------------------------------------------------------------------------------------------------------------------------------------------
//---------------------------------------------------------------------------------------------------------------------------------------------------------------------
bullTF = rsi > rsi and rsi > rsi
bearTF = rsi < rsi and rsi < rsi
bullTF1 = rsi1 > rsi1_1 and rsi1_1 > rsi1_2
bearTF1 = rsi1 < rsi1_1 and rsi1_1 < rsi1_2
bullTF2 = rsi2 > rsi2_1 and rsi2_1 > rsi2_2
bearTF2 = rsi2 < rsi2_1 and rsi2_1 < rsi2_2
bullTF3 = rsi3 > rsi3_1 and rsi3_1 > rsi3_2
bearTF3 = rsi3 < rsi3_1 and rsi3_1 < rsi3_2
bullTF4 = rsi4 > rsi4_1 and rsi4_1 > rsi4_2
bearTF4 = rsi4 < rsi4_1 and rsi4_1 < rsi4_2
bbTxt(bull,bear) =>
bull ? "BULLISH" : bear ? "BEARISCH" : 'NO LINEUP'
bbColor(bull,bear) =>
bull ? bullishColor : bear ? bearishColor : nomatchColor
newTC(tBox, col, row, txt, width, txtColor, bgColor, txtHA, txtSize) =>
table.cell(table_id=tBox,column=col, row=row, text=txt, width=width,text_color=txtColor,bgcolor=bgColor, text_halign=txtHA, text_size=txtSize)
//---------------------------------------------------------------------------------------------------------------------------------------------------------------------
//--- Define RSI Table Setting ----------------------------------------------------------------------------------------------------------------------------------------
//---------------------------------------------------------------------------------------------------------------------------------------------------------------------
width_c0 = 0
width_c1 = 0
if rsiShowTable
var tBox = table.new(position=rsiTablePosition, columns=5, rows=6, bgcolor=color.rgb(18,22,33,50), frame_color=color.black, frame_width=1, border_color=color.black, border_width=1)
newTC(tBox, 0,1,"RSI Current",width_c0,color.orange,color.rgb(0,0,0,100),'right',rsiTextSize)
newTC(tBox, 1,1,str.format(" {0,number,#.##} ", rsi),width_c0,vWhite,rsi < 50 ? bearishColor:bullishColor,'left',rsiTextSize)
newTC(tBox, 4,1,bbTxt(bullTF, bearTF),width_c0,vWhite,bbColor(bullTF, bearTF),'center',rsiTextSize)
if rsiShowHist
newTC(tBox, 2,1,str.format(" {0,number,#.##} ", rsi ),width_c0,vWhite,rsi < 50 ? bearishColor:bullishColor,'left',rsiTextSize)
newTC(tBox, 3,1,str.format(" {0,number,#.##} ", rsi ),width_c0,vWhite,rsi < 50 ? bearishColor:bullishColor,'left',rsiTextSize)
if rsiShowTF1
newTC(tBox, 0,2,TF2txt(rsiTF1),width_c0,vWhite,color.rgb(0,0,0,100),'right',rsiTextSize)
newTC(tBox, 1,2,str.format(" {0,number,#.##} ", rsi1),width_c0,vWhite,rsi1 < 50 ? bearishColor:bullishColor,'left',rsiTextSize)
newTC(tBox, 4,2,bbTxt(bullTF1, bearTF1),width_c0,vWhite,bbColor(bullTF1,bearTF1),'center',rsiTextSize)
if rsiShowHist
newTC(tBox, 2,2,str.format(" {0,number,#.##} ", rsi1_1),width_c0,vWhite,rsi1_1 < 50 ? bearishColor:bullishColor,'left',rsiTextSize)
newTC(tBox, 3,2,str.format(" {0,number,#.##} ", rsi1_2),width_c0,vWhite,rsi1_2 < 50 ? bearishColor:bullishColor,'left',rsiTextSize)
if rsiShowTF2
newTC(tBox, 0,3,TF2txt(rsiTF2),width_c0,vWhite,color.rgb(0,0,0,100),'right',rsiTextSize)
newTC(tBox, 1,3,str.format(" {0,number,#.##} ", rsi2),width_c0,vWhite,rsi2 < 50 ? bearishColor:bullishColor,'left',rsiTextSize)
newTC(tBox, 4,3,bbTxt(bullTF2, bearTF2),width_c0,vWhite,bbColor(bullTF2,bearTF2),'center',rsiTextSize)
if rsiShowHist
newTC(tBox, 2,3,str.format(" {0,number,#.##} ", rsi2_1),width_c0,vWhite,rsi2_1 < 50 ? bearishColor:bullishColor,'left',rsiTextSize)
newTC(tBox, 3,3,str.format(" {0,number,#.##} ", rsi2_2),width_c0,vWhite,rsi2_2 < 50 ? bearishColor:bullishColor,'left',rsiTextSize)
if rsiShowTF3
newTC(tBox, 0,4,TF2txt(rsiTF3),width_c0,vWhite,color.rgb(0,0,0,100),'right',rsiTextSize)
newTC(tBox, 1,4,str.format(" {0,number,#.##} ", rsi3),width_c0,vWhite,rsi3 < 50 ? bearishColor:bullishColor,'left',rsiTextSize)
newTC(tBox, 4,4,bbTxt(bullTF3, bearTF3),width_c0,vWhite,bbColor(bullTF3,bearTF3),'center',rsiTextSize)
if rsiShowHist
newTC(tBox, 2,4,str.format(" {0,number,#.##} ", rsi3_1),width_c0,vWhite,rsi3_1 < 50 ? bearishColor:bullishColor,'left',rsiTextSize)
newTC(tBox, 3,4,str.format(" {0,number,#.##} ", rsi3_2),width_c0,vWhite,rsi3_2 < 50 ? bearishColor:bullishColor,'left',rsiTextSize)
if rsiShowTF4
newTC(tBox, 0,5,TF2txt(rsiTF4),width_c0,vWhite,color.rgb(0,0,0,100),'right',rsiTextSize)
newTC(tBox, 1,5,str.format(" {0,number,#.##} ", rsi4),width_c0,vWhite,rsi4 < 50 ? bearishColor:bullishColor,'left',rsiTextSize)
newTC(tBox, 4,5,bbTxt(bullTF4, bearTF4),width_c0,vWhite,bbColor(bullTF4,bearTF4),'center',rsiTextSize)
if rsiShowHist
newTC(tBox, 2,5,str.format(" {0,number,#.##} ", rsi4_1),width_c0,vWhite,rsi4_1 < 50 ? bearishColor:bullishColor,'left',rsiTextSize)
newTC(tBox, 3,5,str.format(" {0,number,#.##} ", rsi4_2),width_c0,vWhite,rsi4_2 < 50 ? bearishColor:bullishColor,'left',rsiTextSize)
//------------------------------------------------------
//--- Alerts -------------------------------------------
//------------------------------------------------------
Relative Strength Index Remastered [CHE]Relative Strength Index Remastered — Enhanced RSI with robust divergence detection using price-based pivots and line-of-sight validation to reduce false signals compared to the standard RSI indicator.
Summary
RSI Remastered builds on the classic Relative Strength Index by adding a more reliable divergence detection system that relies on price pivots rather than RSI pivots alone, incorporating a line-of-sight check to ensure the RSI path between points remains clear. This approach filters out many false divergences that occur in the original RSI indicator due to its volatile pivot detection on the RSI line itself. Users benefit from clearer reversal and continuation signals, especially in noisy markets, with optional hidden divergence support for trend confirmation. The core RSI calculation and smoothing options remain familiar, but the divergence logic provides materially fewer alerts while maintaining sensitivity.
Motivation: Why this design?
The standard RSI indicator often generates misleading divergence signals because it detects pivots directly on the RSI values, which can fluctuate erratically in volatile conditions, leading to frequent false positives that confuse traders during ranging or choppy price action. RSI Remastered addresses this by shifting pivot detection to the underlying price highs and lows, which are more stable, and adding a validation step that confirms the RSI line does not cross the direct path between pivot points. This design targets the real problem of over-signaling in the original, promoting more actionable insights without altering the RSI's core momentum measurement.
What’s different vs. standard approaches?
- Reference baseline: The classical TradingView RSI indicator, which uses simple RSI-based pivot detection for divergences.
- Architecture differences:
- Pivot identification on price extremes (highs and lows) instead of RSI values, extracting RSI levels at those points for comparison.
- Addition of a line-of-sight validation that checks the RSI path bar by bar between pivots to prevent signals where the line is interrupted.
- Inclusion of hidden divergence types alongside regular ones, using the same robust framework.
- Configurable drawing of connecting lines between validated pivot RSI points for visual clarity.
- Practical effect: Charts show fewer but higher-quality divergence markers and lines, reducing clutter from the original's frequent RSI pivot triggers; this matters for avoiding whipsaws in intraday trading, where the standard version might flag dozens of invalid setups per session.
Key Comparison Aspects
Aspect: Title/Shorttitle
Original RSI: "Relative Strength Index" / "RSI"
Robust Variant: "Relative Strength Index Remastered " / "RSI RM"
Aspect: Max. Lines/Labels
Original RSI: No specification (Standard: 50/50)
Robust Variant: max_lines_count=200, max_labels_count=200 (for more lines/markers in divergences)
Aspect: RSI Calculation & Plots
Original RSI: Identical: RSI with RMA, Plots (line, bands, gradient fills)
Robust Variant: Identical: RSI with RMA, Plots (line, bands, gradient fills)
Aspect: Smoothing (MA)
Original RSI: Identical: Inputs for MA types (SMA, EMA etc.), Bollinger Bands optional
Robust Variant: Identical: Inputs for MA types (SMA, EMA etc.), Bollinger Bands optional
Aspect: Divergence Activation
Original RSI: input.bool(false, "Calculate Divergence") (disabled by default)
Robust Variant: input.bool(true, "Calculate Divergence") (enabled by default, with tooltip)
Aspect: Pivot Calculation
Original RSI: Pivots on RSI (ta.pivotlow/high on RSI values)
Robust Variant: Pivots on price (ta.pivotlow/high on low/high), RSI values then extracted
Aspect: Lookback Values
Original RSI: Fixed: lookbackLeft=5, lookbackRight=5
Robust Variant: Input: L=5 (Pivot Left), R=5 (Pivot Right), adjustable (min=1, max=50)
Aspect: Range Between Pivots
Original RSI: Fixed: rangeUpper=60, rangeLower=5 (via _inRange function)
Robust Variant: Input: rangeUpper=60 (Max Bars), rangeLower=5 (Min Bars), adjustable (min=1–6, max=100–300)
Aspect: Divergence Types
Original RSI: Only Regular Bullish/Bearish: - Bull: Price LL + RSI HL - Bear: Price HH + RSI LH
Robust Variant: Regular + Hidden (optional via showHidden=true): - Regular Bull: Price LL + RSI HL - Regular Bear: Price HH + RSI LH - Hidden Bull: Price HL + RSI LL - Hidden Bear: Price LH + RSI HH
Aspect: Validation
Original RSI: No additional check (only pivot + range check)
Robust Variant: Line-of-Sight Check: RSI line must not cross the connecting line between pivots (line_clear function with slope calculation and loop for each bar in between)
Aspect: Signals (Plots/Shapes)
Original RSI: - Plot of pivot points (if divergence) - Shapes: "Bull"/"Bear" at RSI value, offset=-5
Robust Variant: - No pivot plots, instead shapes at RSI , offset=-R (adjustable) - Shapes: "Bull"/"Bear" (Regular), "HBull"/"HBear" (Hidden) - Colors: Lime/Red (Regular), Teal/Orange (Hidden)
Aspect: Line Drawing
Original RSI: No lines
Robust Variant: Optional (showLines=true): Lines between RSI pivots (thick for regular, dashed/thin for hidden), extend=none
Aspect: Alerts
Original RSI: Only Regular Bullish/Bearish (with pivot lookback reference)
Robust Variant: Regular Bullish/Bearish + Hidden Bullish/Bearish (specific "at latest pivot low/high")
Aspect: Robustness
Original RSI: Simple, prone to false signals (RSI pivots can be volatile)
Robust Variant: Higher: Price pivots are more stable, line-of-sight filters "broken" divergences, hidden support for trend continuations
Aspect: Code Length/Structure
Original RSI: ~100 lines, simple if-blocks for bull/bear
Robust Variant: ~150 lines, extended helper functions (e.g., inRange, line_clear), var group for inputs
How it works (technical)
The indicator first computes the core RSI value based on recent price changes, separating upward and downward movements over the specified length and smoothing them to derive a momentum reading scaled between zero and one hundred. This value is then plotted in a separate pane with fixed upper and lower reference lines at seventy and thirty, along with optional gradient fills to highlight overbought and oversold zones.
For smoothing, a moving average type is applied to the RSI if enabled, with an option to add bands around it based on the variability of recent RSI values scaled by a multiplier. Divergence detection activates on confirmed price pivots: lows for bullish checks and highs for bearish. At each new pivot, the system retrieves the bar index and values (price and RSI) for the current and prior pivot, ensuring they fall within a configurable bar range to avoid unrelated points.
Comparisons then assess whether the price has made a lower low (or higher high) while the RSI at those points moves in the opposite direction—higher for bullish regular, lower for bearish regular. For hidden types, the directions reverse to capture trend strength. The line-of-sight check calculates the straight path between the two RSI points and verifies that the actual RSI values in between stay entirely above (for bullish) or below (for bearish) that path, breaking the signal if any bar violates it. Valid signals trigger shapes at the RSI level of the new pivot and optional lines connecting the points. Initialization uses built-in functions to track prior occurrences, with states persisting across bars for accurate historical comparisons. No higher timeframe data is used, so confirmation occurs after the right pivot bars close, minimizing live-bar repaints.
Parameter Guide
Length — Controls the period for measuring price momentum changes — Default: 14 — Trade-offs/Tips: Shorter values increase responsiveness but add noise and more false signals; longer smooths trends but delays entries in fast markets.
Source — Selects the price input for RSI calculation — Default: Close — Trade-offs/Tips: Use high or low for volatility focus, but close works best for most assets; mismatches can skew overbought/oversold reads.
Calculate Divergence — Enables the enhanced divergence logic — Default: True — Trade-offs/Tips: Disable for pure RSI view to save computation; essential for signal reliability over the standard method.
Type (Smoothing) — Chooses the moving average applied to RSI — Default: SMA — Trade-offs/Tips: None for raw RSI; EMA for quicker adaptation, but SMA reduces whipsaws; Bollinger Bands option adds volatility context at cost of added lines.
Length (Smoothing) — Period for the smoothing average — Default: 14 — Trade-offs/Tips: Match RSI length for consistency; shorter boosts signal speed but amplifies noise in the smoothed line.
BB StdDev — Multiplier for band width around smoothed RSI — Default: 2.0 — Trade-offs/Tips: Lower narrows bands for tighter signals, risking more touches; higher widens for fewer but stronger breakouts.
Pivot Left — Bars to the left for confirming price pivots — Default: 5 — Trade-offs/Tips: Increase for stricter pivots in noisy data, reducing signals; too high delays confirmation excessively.
Pivot Right — Bars to the right for confirming price pivots — Default: 5 — Trade-offs/Tips: Balances with left for symmetry; longer right ensures maturity but shifts signals backward.
Max Bars Between Pivots — Upper limit on distance for valid pivot pairs — Default: 60 — Trade-offs/Tips: Tighten for short-term trades to focus recent action; widen for swing setups but risks unrelated comparisons.
Min Bars Between Pivots — Lower limit to avoid clustered pivots — Default: 5 — Trade-offs/Tips: Raise to filter micro-moves; too low invites overlapping signals like the original RSI.
Detect Hidden — Includes trend-continuation hidden types — Default: True — Trade-offs/Tips: Enable for full trend analysis; disable simplifies to reversals only, akin to basic RSI.
Draw Lines — Shows connecting lines between valid pivots — Default: True — Trade-offs/Tips: Turn off for cleaner charts; helps visually confirm line-of-sight in backtests.
Reading & Interpretation
The main RSI line oscillates between zero and one hundred, crossing above fifty suggesting building momentum and below indicating weakness; touches near seventy or thirty flag potential extremes. The optional smoothed line and bands provide a filtered view—price above the upper band on the RSI pane hints at overextension. Divergence shapes appear as upward labels for bullish (lime for regular, teal for hidden) and downward for bearish (red regular, orange hidden) at the pivot's RSI level, signaling a mismatch only after validation. Connecting lines, if drawn, slope between points without RSI interference, their color matching the shape type; a dashed style denotes hidden. Fewer shapes overall compared to the standard RSI mean higher conviction, but always confirm with price structure.
Practical Workflows & Combinations
- Trend following: Enter longs on regular bullish shapes near support with higher highs in price; filter hidden bullish for pullback buys in uptrends, pairing with a rising smoothed RSI above fifty.
- Exits/Stops: Use bearish regular as reversal warnings to tighten stops; hidden bearish in downtrends confirms continuation—exit if lines show RSI crossing the path.
- Multi-asset/Multi-TF: Defaults suit forex and stocks on one-hour charts; for crypto volatility, widen pivot ranges to ten; scale min/max bars proportionally on daily for swings, avoiding the original's intraday spam.
Behavior, Constraints & Performance
Signals confirm only after the right pivot bars close, so live bars may show tentative pivots that vanish on close, unlike the standard RSI's immediate RSI-pivot triggers—plan for this delay in automation. No higher timeframe calls, so no security-related repaints. Resources include up to two hundred lines and labels for dense charts, with a loop in validation scanning up to three hundred bars between pivots, which is efficient but could slow on very long histories. Known limits: Slight lag at pivot confirmation in trending markets; volatile RSI might rarely miss fine path violations; not ideal for gap-heavy assets where pivots skip.
Sensible Defaults & Quick Tuning
Start with defaults for balanced momentum and divergence on most timeframes. For too many signals (like the original), raise pivot left/right to eight and min bars to ten to filter noise. If sluggish in trends, shorten RSI length to nine and enable EMA smoothing for faster adaptation. In high-volatility assets, widen max bars to one hundred but disable hidden to focus essentials. For clean reversal hunts, set smoothing to none and lines on.
What this indicator is—and isn’t
RSI Remastered serves as a refined momentum and divergence visualization tool, enhancing the standard RSI for better signal quality in technical analysis setups. It is not a standalone trading system, nor does it predict price moves—pair it with volume, structure breaks, and risk rules for decisions. Use alongside position sizing and broader context, not in isolation.
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
RSMPatternLibLibrary "RSMPatternLib"
RSM Pattern Library - All chart patterns from PATTERNS.md
Implements: Candlestick patterns, Support/Resistance, Gaps, Triangles, Volume Divergence, and more
ALL PATTERNS ARE OWN IMPLEMENTATION - No external dependencies
EDGE CASES HANDLED:
- Zero/tiny candle bodies
- Missing volume data
- Low bar count scenarios
- Integer division issues
- Price normalization for different instruments
bullishEngulfing(minBodyRatio, minPrevBodyRatio)
Detects Bullish Engulfing pattern
Parameters:
minBodyRatio (float) : Minimum body size as ratio of total range (default 0.3)
minPrevBodyRatio (float) : Minimum previous candle body ratio to filter dojis (default 0.1)
Returns: bool True when bullish engulfing detected
EDGE CASES: Handles doji previous candle, zero range, tiny bodies
bearishEngulfing(minBodyRatio, minPrevBodyRatio)
Detects Bearish Engulfing pattern
Parameters:
minBodyRatio (float) : Minimum body size as ratio of total range (default 0.3)
minPrevBodyRatio (float) : Minimum previous candle body ratio to filter dojis (default 0.1)
Returns: bool True when bearish engulfing detected
EDGE CASES: Handles doji previous candle, zero range, tiny bodies
doji(maxBodyRatio, minRangeAtr)
Detects Doji candle (indecision)
Parameters:
maxBodyRatio (float) : Maximum body size as ratio of total range (default 0.1)
minRangeAtr (float) : Minimum range as multiple of ATR to filter flat candles (default 0.3)
Returns: bool True when doji detected
EDGE CASES: Filters out no-movement bars, handles zero range
shootingStar(wickMultiplier, maxLowerWickRatio, minBodyAtrRatio)
Detects Shooting Star (bearish reversal)
Parameters:
wickMultiplier (float) : Upper wick must be at least this times the body (default 2.0)
maxLowerWickRatio (float) : Lower wick max as ratio of body (default 0.5)
minBodyAtrRatio (float) : Minimum body size as ratio of ATR (default 0.1)
Returns: bool True when shooting star detected
EDGE CASES: Handles zero body (uses range-based check), tiny bodies
hammer(wickMultiplier, maxUpperWickRatio, minBodyAtrRatio)
Detects Hammer (bullish reversal)
Parameters:
wickMultiplier (float) : Lower wick must be at least this times the body (default 2.0)
maxUpperWickRatio (float) : Upper wick max as ratio of body (default 0.5)
minBodyAtrRatio (float) : Minimum body size as ratio of ATR (default 0.1)
Returns: bool True when hammer detected
EDGE CASES: Handles zero body (uses range-based check), tiny bodies
invertedHammer(wickMultiplier, maxLowerWickRatio)
Detects Inverted Hammer (bullish reversal after downtrend)
Parameters:
wickMultiplier (float) : Upper wick must be at least this times the body (default 2.0)
maxLowerWickRatio (float) : Lower wick max as ratio of body (default 0.5)
Returns: bool True when inverted hammer detected
EDGE CASES: Same as shootingStar but requires bullish close
hangingMan(wickMultiplier, maxUpperWickRatio)
Detects Hanging Man (bearish reversal after uptrend)
Parameters:
wickMultiplier (float) : Lower wick must be at least this times the body (default 2.0)
maxUpperWickRatio (float) : Upper wick max as ratio of body (default 0.5)
Returns: bool True when hanging man detected
NOTE: Identical to hammer - context (uptrend) determines meaning
morningStar(requireGap, minAvgBars)
Detects Morning Star (3-candle bullish reversal)
Parameters:
requireGap (bool) : Whether to require gap between candles (default false for crypto/forex)
minAvgBars (int) : Minimum bars for average body calculation (default 14)
Returns: bool True when morning star pattern detected
EDGE CASES: Gap is optional, handles low bar count, uses shifted average
eveningStar(requireGap, minAvgBars)
Detects Evening Star (3-candle bearish reversal)
Parameters:
requireGap (bool) : Whether to require gap between candles (default false for crypto/forex)
minAvgBars (int) : Minimum bars for average body calculation (default 14)
Returns: bool True when evening star pattern detected
EDGE CASES: Gap is optional, handles low bar count
gapUp()
Detects Gap Up
Returns: bool True when current bar opens above previous bar's high
gapDown()
Detects Gap Down
Returns: bool True when current bar opens below previous bar's low
gapSize()
Returns gap size in price
Returns: float Gap size (positive for gap up, negative for gap down, 0 for no gap)
gapPercent()
Returns gap size as percentage
Returns: float Gap size as percentage of previous close
gapType(volAvgLen, breakawayMinPct, highVolMult)
Classifies gap type based on volume
Parameters:
volAvgLen (int) : Length for volume average (default 20)
breakawayMinPct (float) : Minimum gap % for breakaway (default 1.0)
highVolMult (float) : Volume multiplier for high volume (default 1.5)
Returns: string Gap type: "Breakaway", "Common", "Continuation", or "None"
EDGE CASES: Handles missing volume data, low bar count
swingHigh(leftBars, rightBars)
Detects swing high using pivot
Parameters:
leftBars (int) : Bars to left for pivot (default 5)
rightBars (int) : Bars to right for pivot (default 5)
Returns: float Swing high price or na
swingLow(leftBars, rightBars)
Detects swing low using pivot
Parameters:
leftBars (int) : Bars to left for pivot (default 5)
rightBars (int) : Bars to right for pivot (default 5)
Returns: float Swing low price or na
higherHigh(leftBars, rightBars, lookback)
Checks if current swing high is higher than previous swing high
Parameters:
leftBars (int) : Bars to left for pivot (default 5)
rightBars (int) : Bars to right for pivot (default 5)
lookback (int) : How many bars back to search for previous pivot (default 50)
Returns: bool True when higher high pattern detected
EDGE CASES: Searches backwards for pivots instead of using var (library-safe)
higherLow(leftBars, rightBars, lookback)
Checks if current swing low is higher than previous swing low
Parameters:
leftBars (int) : Bars to left for pivot (default 5)
rightBars (int) : Bars to right for pivot (default 5)
lookback (int) : How many bars back to search for previous pivot (default 50)
Returns: bool True when higher low pattern detected
lowerHigh(leftBars, rightBars, lookback)
Checks if current swing high is lower than previous swing high
Parameters:
leftBars (int) : Bars to left for pivot (default 5)
rightBars (int) : Bars to right for pivot (default 5)
lookback (int) : How many bars back to search for previous pivot (default 50)
Returns: bool True when lower high pattern detected
lowerLow(leftBars, rightBars, lookback)
Checks if current swing low is lower than previous swing low
Parameters:
leftBars (int) : Bars to left for pivot (default 5)
rightBars (int) : Bars to right for pivot (default 5)
lookback (int) : How many bars back to search for previous pivot (default 50)
Returns: bool True when lower low pattern detected
bullishTrend(leftBars, rightBars, lookback)
Detects Bullish Trend (HH + HL within lookback)
Parameters:
leftBars (int) : Bars to left for pivot (default 5)
rightBars (int) : Bars to right for pivot (default 5)
lookback (int) : Lookback period (default 50)
Returns: bool True when making higher highs AND higher lows
bearishTrend(leftBars, rightBars, lookback)
Detects Bearish Trend (LH + LL within lookback)
Parameters:
leftBars (int) : Bars to left for pivot (default 5)
rightBars (int) : Bars to right for pivot (default 5)
lookback (int) : Lookback period (default 50)
Returns: bool True when making lower highs AND lower lows
nearestResistance(lookback, leftBars, rightBars)
Finds nearest resistance level above current price
Parameters:
lookback (int) : Number of bars to look back (default 50)
leftBars (int) : Pivot left bars (default 5)
rightBars (int) : Pivot right bars (default 5)
Returns: float Nearest resistance level or na
EDGE CASES: Pre-computes pivots, handles bounds properly
nearestSupport(lookback, leftBars, rightBars)
Finds nearest support level below current price
Parameters:
lookback (int) : Number of bars to look back (default 50)
leftBars (int) : Pivot left bars (default 5)
rightBars (int) : Pivot right bars (default 5)
Returns: float Nearest support level or na
resistanceBreakout(lookback, leftBars, rightBars)
Detects resistance breakout
Parameters:
lookback (int) : Number of bars to look back (default 50)
leftBars (int) : Pivot left bars (default 5)
rightBars (int) : Pivot right bars (default 5)
Returns: bool True when price breaks above resistance
EDGE CASES: Uses previous bar's resistance to avoid lookahead
supportBreakdown(lookback, leftBars, rightBars)
Detects support breakdown
Parameters:
lookback (int) : Number of bars to look back (default 50)
leftBars (int) : Pivot left bars (default 5)
rightBars (int) : Pivot right bars (default 5)
Returns: bool True when price breaks below support
bullishVolumeDivergence(leftBars, rightBars, lookback)
Detects Bullish Volume Divergence (price makes lower low, volume decreases)
Parameters:
leftBars (int) : Pivot left bars (default 5)
rightBars (int) : Pivot right bars (default 5)
lookback (int) : Bars to search for previous pivot (default 50)
Returns: bool True when bullish volume divergence detected
EDGE CASES: Library-safe (no var), searches for previous pivot
bearishVolumeDivergence(leftBars, rightBars, lookback)
Detects Bearish Volume Divergence (price makes higher high, volume decreases)
Parameters:
leftBars (int) : Pivot left bars (default 5)
rightBars (int) : Pivot right bars (default 5)
lookback (int) : Bars to search for previous pivot (default 50)
Returns: bool True when bearish volume divergence detected
rangeContracting(lookback)
Detects if price is in a contracting range (triangle formation)
Parameters:
lookback (int) : Bars to analyze (default 20)
Returns: bool True when range is contracting
EDGE CASES: Uses safe integer division, checks minimum lookback
ascendingTriangle(lookback, flatTolerance)
Detects Ascending Triangle (flat top, rising bottom)
Parameters:
lookback (int) : Bars to analyze (default 20)
flatTolerance (float) : Max normalized slope for "flat" line (default 0.002)
Returns: bool True when ascending triangle detected
EDGE CASES: Safe division, normalized slope, minimum lookback
descendingTriangle(lookback, flatTolerance)
Detects Descending Triangle (falling top, flat bottom)
Parameters:
lookback (int) : Bars to analyze (default 20)
flatTolerance (float) : Max normalized slope for "flat" line (default 0.002)
Returns: bool True when descending triangle detected
symmetricalTriangle(lookback, minSlope)
Detects Symmetrical Triangle (converging trend lines)
Parameters:
lookback (int) : Bars to analyze (default 20)
minSlope (float) : Minimum normalized slope magnitude (default 0.0005)
Returns: bool True when symmetrical triangle detected
doubleBottom(tolerance, minSpanBars, lookback)
Detects Double Bottom (W pattern) - OWN IMPLEMENTATION
Two swing lows at similar price levels with a swing high between them
Parameters:
tolerance (float) : Max price difference between lows as % (default 3)
minSpanBars (int) : Minimum bars between the two lows (default 5)
lookback (int) : Max bars to search for pattern (default 100)
Returns: bool True when double bottom detected
doubleTop(tolerance, minSpanBars, lookback)
Detects Double Top (M pattern) - OWN IMPLEMENTATION
Two swing highs at similar price levels with a swing low between them
Parameters:
tolerance (float) : Max price difference between highs as % (default 3)
minSpanBars (int) : Minimum bars between the two highs (default 5)
lookback (int) : Max bars to search for pattern (default 100)
Returns: bool True when double top detected
tripleBottom(tolerance, minSpanBars, lookback)
Detects Triple Bottom - OWN IMPLEMENTATION
Three swing lows at similar price levels
Parameters:
tolerance (float) : Max price difference between lows as % (default 3)
minSpanBars (int) : Minimum total bars for pattern (default 10)
lookback (int) : Max bars to search for pattern (default 150)
Returns: bool True when triple bottom detected
tripleTop(tolerance, minSpanBars, lookback)
Detects Triple Top - OWN IMPLEMENTATION
Three swing highs at similar price levels
Parameters:
tolerance (float) : Max price difference between highs as % (default 3)
minSpanBars (int) : Minimum total bars for pattern (default 10)
lookback (int) : Max bars to search for pattern (default 150)
Returns: bool True when triple top detected
bearHeadShoulders()
Detects Bearish Head and Shoulders (OWN IMPLEMENTATION)
Head is higher than both shoulders, shoulders roughly equal, with valid neckline
STRICT VERSION - requires proper structure, neckline, and minimum span
Returns: bool True when bearish H&S detected
bullHeadShoulders()
Detects Bullish (Inverse) Head and Shoulders (OWN IMPLEMENTATION)
Head is lower than both shoulders, shoulders roughly equal, with valid neckline
STRICT VERSION - requires proper structure, neckline, and minimum span
Returns: bool True when bullish H&S detected
bearAscHeadShoulders()
Detects Bearish Ascending Head and Shoulders (variant)
Returns: bool True when pattern detected
bullAscHeadShoulders()
Detects Bullish Ascending Head and Shoulders (variant)
Returns: bool True when pattern detected
bearDescHeadShoulders()
Detects Bearish Descending Head and Shoulders (variant)
Returns: bool True when pattern detected
bullDescHeadShoulders()
Detects Bullish Descending Head and Shoulders (variant)
Returns: bool True when pattern detected
isSwingLow()
Re-export: Detects swing low
Returns: bool True when swing low detected
isSwingHigh()
Re-export: Detects swing high
Returns: bool True when swing high detected
swingHighPrice(idx)
Re-export: Gets swing high price at index
Parameters:
idx (int) : Index (0 = most recent)
Returns: float Swing high price
swingLowPrice(idx)
Re-export: Gets swing low price at index
Parameters:
idx (int) : Index (0 = most recent)
Returns: float Swing low price
swingHighBarIndex(idx)
Re-export: Gets swing high bar index
Parameters:
idx (int) : Index (0 = most recent)
Returns: int Bar index of swing high
swingLowBarIndex(idx)
Re-export: Gets swing low bar index
Parameters:
idx (int) : Index (0 = most recent)
Returns: int Bar index of swing low
cupBottom(smoothLen, minDepthAtr, maxDepthAtr)
Detects Cup and Handle pattern formation
Uses price acceleration and depth analysis
Parameters:
smoothLen (int) : Smoothing length for price (default 10)
minDepthAtr (float) : Minimum cup depth as ATR multiple (default 1.0)
maxDepthAtr (float) : Maximum cup depth as ATR multiple (default 5.0)
Returns: bool True when potential cup bottom detected
EDGE CASES: Added depth filter, ATR validation
cupHandle(lookback, maxHandleRetraceRatio)
Detects potential handle formation after cup
Parameters:
lookback (int) : Bars to look back for cup (default 30)
maxHandleRetraceRatio (float) : Maximum handle retracement of cup depth (default 0.5)
Returns: bool True when handle pattern detected
bullishPatternCount()
Returns count of bullish patterns detected
Returns: int Number of bullish patterns currently active
bearishPatternCount()
Returns count of bearish patterns detected
Returns: int Number of bearish patterns currently active
detectedPatterns()
Returns string description of detected patterns
Returns: string Comma-separated list of detected patterns
Adaptive Market Wave Theory - ProAdaptive Market Wave Theory
🌊 CORE INNOVATION: PROBABILISTIC PHASE DETECTION WITH MULTI-AGENT CONSENSUS
Adaptive Market Wave Theory (AMWT) represents a fundamental paradigm shift in how traders approach market phase identification. Rather than counting waves subjectively or drawing static breakout levels, AMWT treats the market as a hidden state machine —using Hidden Markov Models, multi-agent consensus systems, and reinforcement learning algorithms to quantify what traditional methods leave to interpretation.
The Wave Analysis Problem:
Traditional wave counting methodologies (Elliott Wave, harmonic patterns, ABC corrections) share fatal weaknesses that AMWT directly addresses:
1. Non-Falsifiability : Invalid wave counts can always be "recounted" or "adjusted." If your Wave 3 fails, it becomes "Wave 3 of a larger degree" or "actually Wave C." There's no objective failure condition.
2. Observer Bias : Two expert wave analysts examining the same chart routinely reach different conclusions. This isn't a feature—it's a fundamental methodology flaw.
3. No Confidence Measure : Traditional analysis says "This IS Wave 3." But with what probability? 51%? 95%? The binary nature prevents proper position sizing and risk management.
4. Static Rules : Fixed Fibonacci ratios and wave guidelines cannot adapt to changing market regimes. What worked in 2019 may fail in 2024.
5. No Accountability : Wave methodologies rarely track their own performance. There's no feedback loop to improve.
The AMWT Solution:
AMWT addresses each limitation through rigorous mathematical frameworks borrowed from speech recognition, machine learning, and reinforcement learning:
• Non-Falsifiability → Hard Invalidation : Wave hypotheses die permanently when price violates calculated invalidation levels. No recounting allowed.
• Observer Bias → Multi-Agent Consensus : Three independent analytical agents must agree. Single-methodology bias is eliminated.
• No Confidence → Probabilistic States : Every market state has a calculated probability from Hidden Markov Model inference. "72% probability of impulse state" replaces "This is Wave 3."
• Static Rules → Adaptive Learning : Thompson Sampling multi-armed bandits learn which agents perform best in current conditions. The system adapts in real-time.
• No Accountability → Performance Tracking : Comprehensive statistics track every signal's outcome. The system knows its own performance.
The Core Insight:
"Traditional wave analysis asks 'What count is this?' AMWT asks 'What is the probability we are in an impulsive state, with what confidence, confirmed by how many independent methodologies, and anchored to what liquidity event?'"
🔬 THEORETICAL FOUNDATION: HIDDEN MARKOV MODELS
Why Hidden Markov Models?
Markets exist in hidden states that we cannot directly observe—only their effects on price are visible. When the market is in an "impulse up" state, we see rising prices, expanding volume, and trending indicators. But we don't observe the state itself—we infer it from observables.
This is precisely the problem Hidden Markov Models (HMMs) solve. Originally developed for speech recognition (inferring words from sound waves), HMMs excel at estimating hidden states from noisy observations.
HMM Components:
1. Hidden States (S) : The unobservable market conditions
2. Observations (O) : What we can measure (price, volume, indicators)
3. Transition Matrix (A) : Probability of moving between states
4. Emission Matrix (B) : Probability of observations given each state
5. Initial Distribution (π) : Starting state probabilities
AMWT's Six Market States:
State 0: IMPULSE_UP
• Definition: Strong bullish momentum with high participation
• Observable Signatures: Rising prices, expanding volume, RSI >60, price above upper Bollinger Band, MACD histogram positive and rising
• Typical Duration: 5-20 bars depending on timeframe
• What It Means: Institutional buying pressure, trend acceleration phase
State 1: IMPULSE_DN
• Definition: Strong bearish momentum with high participation
• Observable Signatures: Falling prices, expanding volume, RSI <40, price below lower Bollinger Band, MACD histogram negative and falling
• Typical Duration: 5-20 bars (often shorter than bullish impulses—markets fall faster)
• What It Means: Institutional selling pressure, panic or distribution acceleration
State 2: CORRECTION
• Definition: Counter-trend consolidation with declining momentum
• Observable Signatures: Sideways or mild counter-trend movement, contracting volume, RSI returning toward 50, Bollinger Bands narrowing
• Typical Duration: 8-30 bars
• What It Means: Profit-taking, digestion of prior move, potential accumulation for next leg
State 3: ACCUMULATION
• Definition: Base-building near lows where informed participants absorb supply
• Observable Signatures: Price near recent lows but not making new lows, volume spikes on up bars, RSI showing positive divergence, tight range
• Typical Duration: 15-50 bars
• What It Means: Smart money buying from weak hands, preparing for markup phase
State 4: DISTRIBUTION
• Definition: Top-forming near highs where informed participants distribute holdings
• Observable Signatures: Price near recent highs but struggling to advance, volume spikes on down bars, RSI showing negative divergence, widening range
• Typical Duration: 15-50 bars
• What It Means: Smart money selling to late buyers, preparing for markdown phase
State 5: TRANSITION
• Definition: Regime change period with mixed signals and elevated uncertainty
• Observable Signatures: Conflicting indicators, whipsaw price action, no clear momentum, high volatility without direction
• Typical Duration: 5-15 bars
• What It Means: Market deciding next direction, dangerous for directional trades
The Transition Matrix:
The transition matrix A captures the probability of moving from one state to another. AMWT initializes with empirically-derived values then updates online:
From/To IMP_UP IMP_DN CORR ACCUM DIST TRANS
IMP_UP 0.70 0.02 0.20 0.02 0.04 0.02
IMP_DN 0.02 0.70 0.20 0.04 0.02 0.02
CORR 0.15 0.15 0.50 0.10 0.10 0.00
ACCUM 0.30 0.05 0.15 0.40 0.05 0.05
DIST 0.05 0.30 0.15 0.05 0.40 0.05
TRANS 0.20 0.20 0.20 0.15 0.15 0.10
Key Insights from Transition Probabilities:
• Impulse states are sticky (70% self-transition): Once trending, markets tend to continue
• Corrections can transition to either impulse direction (15% each): The next move after correction is uncertain
• Accumulation strongly favors IMP_UP transition (30%): Base-building leads to rallies
• Distribution strongly favors IMP_DN transition (30%): Topping leads to declines
The Viterbi Algorithm:
Given a sequence of observations, how do we find the most likely state sequence? This is the Viterbi algorithm—dynamic programming to find the optimal path through the state space.
Mathematical Formulation:
δ_t(j) = max_i × B_j(O_t)
Where:
δ_t(j) = probability of most likely path ending in state j at time t
A_ij = transition probability from state i to state j
B_j(O_t) = emission probability of observation O_t given state j
AMWT Implementation:
AMWT runs Viterbi over a rolling window (default 50 bars), computing the most likely state sequence and extracting:
• Current state estimate
• State confidence (probability of current state vs alternatives)
• State sequence for pattern detection
Online Learning (Baum-Welch Adaptation):
Unlike static HMMs, AMWT continuously updates its transition and emission matrices based on observed market behavior:
f_onlineUpdateHMM(prev_state, curr_state, observation, decay) =>
// Update transition matrix
A *= decay
A += (1.0 - decay)
// Renormalize row
// Update emission matrix
B *= decay
B += (1.0 - decay)
// Renormalize row
The decay parameter (default 0.85) controls adaptation speed:
• Higher decay (0.95): Slower adaptation, more stable, better for consistent markets
• Lower decay (0.80): Faster adaptation, more reactive, better for regime changes
Why This Matters for Trading:
Traditional indicators give you a number (RSI = 72). AMWT gives you a probabilistic state assessment :
"There is a 78% probability we are in IMPULSE_UP state, with 15% probability of CORRECTION and 7% distributed among other states. The transition matrix suggests 70% chance of remaining in IMPULSE_UP next bar, 20% chance of transitioning to CORRECTION."
This enables:
• Position sizing by confidence : 90% confidence = full size; 60% confidence = half size
• Risk management by transition probability : High correction probability = tighten stops
• Strategy selection by state : IMPULSE = trend-follow; CORRECTION = wait; ACCUMULATION = scale in
🎰 THE 3-BANDIT CONSENSUS SYSTEM
The Multi-Agent Philosophy:
No single analytical methodology works in all market conditions. Trend-following excels in trending markets but gets chopped in ranges. Mean-reversion excels in ranges but gets crushed in trends. Structure-based analysis works when structure is clear but fails in chaotic markets.
AMWT's solution: employ three independent agents , each analyzing the market from a different perspective, then use Thompson Sampling to learn which agents perform best in current conditions.
Agent 1: TREND AGENT
Philosophy : Markets trend. Follow the trend until it ends.
Analytical Components:
• EMA Alignment: EMA8 > EMA21 > EMA50 (bullish) or inverse (bearish)
• MACD Histogram: Direction and rate of change
• Price Momentum: Close relative to ATR-normalized movement
• VWAP Position: Price above/below volume-weighted average price
Signal Generation:
Strong Bull: EMA aligned bull AND MACD histogram > 0 AND momentum > 0.3 AND close > VWAP
→ Signal: +1 (Long), Confidence: 0.75 + |momentum| × 0.4
Moderate Bull: EMA stack bull AND MACD rising AND momentum > 0.1
→ Signal: +1 (Long), Confidence: 0.65 + |momentum| × 0.3
Strong Bear: EMA aligned bear AND MACD histogram < 0 AND momentum < -0.3 AND close < VWAP
→ Signal: -1 (Short), Confidence: 0.75 + |momentum| × 0.4
Moderate Bear: EMA stack bear AND MACD falling AND momentum < -0.1
→ Signal: -1 (Short), Confidence: 0.65 + |momentum| × 0.3
When Trend Agent Excels:
• Trend days (IB extension >1.5x)
• Post-breakout continuation
• Institutional accumulation/distribution phases
When Trend Agent Fails:
• Range-bound markets (ADX <20)
• Chop zones after volatility spikes
• Reversal days at major levels
Agent 2: REVERSION AGENT
Philosophy: Markets revert to mean. Extreme readings reverse.
Analytical Components:
• Bollinger Band Position: Distance from bands, percent B
• RSI Extremes: Overbought (>70) and oversold (<30)
• Stochastic: %K/%D crossovers at extremes
• Band Squeeze: Bollinger Band width contraction
Signal Generation:
Oversold Bounce: BB %B < 0.20 AND RSI < 35 AND Stochastic < 25
→ Signal: +1 (Long), Confidence: 0.70 + (30 - RSI) × 0.01
Overbought Fade: BB %B > 0.80 AND RSI > 65 AND Stochastic > 75
→ Signal: -1 (Short), Confidence: 0.70 + (RSI - 70) × 0.01
Squeeze Fire Bull: Band squeeze ending AND close > upper band
→ Signal: +1 (Long), Confidence: 0.65
Squeeze Fire Bear: Band squeeze ending AND close < lower band
→ Signal: -1 (Short), Confidence: 0.65
When Reversion Agent Excels:
• Rotation days (price stays within IB)
• Range-bound consolidation
• After extended moves without pullback
When Reversion Agent Fails:
• Strong trend days (RSI can stay overbought for days)
• Breakout moves
• News-driven directional moves
Agent 3: STRUCTURE AGENT
Philosophy: Market structure reveals institutional intent. Follow the smart money.
Analytical Components:
• Break of Structure (BOS): Price breaks prior swing high/low
• Change of Character (CHOCH): First break against prevailing trend
• Higher Highs/Higher Lows: Bullish structure
• Lower Highs/Lower Lows: Bearish structure
• Liquidity Sweeps: Stop runs that reverse
Signal Generation:
BOS Bull: Price breaks above prior swing high with momentum
→ Signal: +1 (Long), Confidence: 0.70 + structure_strength × 0.2
CHOCH Bull: First higher low after downtrend, breaking structure
→ Signal: +1 (Long), Confidence: 0.75
BOS Bear: Price breaks below prior swing low with momentum
→ Signal: -1 (Short), Confidence: 0.70 + structure_strength × 0.2
CHOCH Bear: First lower high after uptrend, breaking structure
→ Signal: -1 (Short), Confidence: 0.75
Liquidity Sweep Long: Price sweeps below swing low then reverses strongly
→ Signal: +1 (Long), Confidence: 0.80
Liquidity Sweep Short: Price sweeps above swing high then reverses strongly
→ Signal: -1 (Short), Confidence: 0.80
When Structure Agent Excels:
• After liquidity grabs (stop runs)
• At major swing points
• During institutional accumulation/distribution
When Structure Agent Fails:
• Choppy, structureless markets
• During news events (structure becomes noise)
• Very low timeframes (noise overwhelms structure)
Thompson Sampling: The Bandit Algorithm
With three agents giving potentially different signals, how do we decide which to trust? This is the multi-armed bandit problem —balancing exploitation (using what works) with exploration (testing alternatives).
Thompson Sampling Solution:
Each agent maintains a Beta distribution representing its success/failure history:
Agent success rate modeled as Beta(α, β)
Where:
α = number of successful signals + 1
β = number of failed signals + 1
On Each Bar:
1. Sample from each agent's Beta distribution
2. Weight agent signals by sampled probabilities
3. Combine weighted signals into consensus
4. Update α/β based on trade outcomes
Mathematical Implementation:
// Beta sampling via Gamma ratio method
f_beta_sample(alpha, beta) =>
g1 = f_gamma_sample(alpha)
g2 = f_gamma_sample(beta)
g1 / (g1 + g2)
// Thompson Sampling selection
for each agent:
sampled_prob = f_beta_sample(agent.alpha, agent.beta)
weight = sampled_prob / sum(all_sampled_probs)
consensus += agent.signal × agent.confidence × weight
Why Thompson Sampling?
• Automatic Exploration : Agents with few samples get occasional chances (high variance in Beta distribution)
• Bayesian Optimal : Mathematically proven optimal solution to exploration-exploitation tradeoff
• Uncertainty-Aware : Small sample size = more exploration; large sample size = more exploitation
• Self-Correcting : Poor performers naturally get lower weights over time
Example Evolution:
Day 1 (Initial):
Trend Agent: Beta(1,1) → samples ~0.50 (high uncertainty)
Reversion Agent: Beta(1,1) → samples ~0.50 (high uncertainty)
Structure Agent: Beta(1,1) → samples ~0.50 (high uncertainty)
After 50 Signals:
Trend Agent: Beta(28,23) → samples ~0.55 (moderate confidence)
Reversion Agent: Beta(18,33) → samples ~0.35 (underperforming)
Structure Agent: Beta(32,19) → samples ~0.63 (outperforming)
Result: Structure Agent now receives highest weight in consensus
Consensus Requirements by Mode:
Aggressive Mode:
• Minimum 1/3 agents agreeing
• Consensus threshold: 45%
• Use case: More signals, higher risk tolerance
Balanced Mode:
• Minimum 2/3 agents agreeing
• Consensus threshold: 55%
• Use case: Standard trading
Conservative Mode:
• Minimum 2/3 agents agreeing
• Consensus threshold: 65%
• Use case: Higher quality, fewer signals
Institutional Mode:
• Minimum 2/3 agents agreeing
• Consensus threshold: 75%
• Additional: Session quality >0.65, mode adjustment +0.10
• Use case: Highest quality signals only
🌀 INTELLIGENT CHOP DETECTION ENGINE
The Chop Problem:
Most trading losses occur not from being wrong about direction, but from trading in conditions where direction doesn't exist . Choppy, range-bound markets generate false signals from every methodology—trend-following, mean-reversion, and structure-based alike.
AMWT's chop detection engine identifies these low-probability environments before signals fire, preventing the most damaging trades.
Five-Factor Chop Analysis:
Factor 1: ADX Component (25% weight)
ADX (Average Directional Index) measures trend strength regardless of direction.
ADX < 15: Very weak trend (high chop score)
ADX 15-20: Weak trend (moderate chop score)
ADX 20-25: Developing trend (low chop score)
ADX > 25: Strong trend (minimal chop score)
adx_chop = (i_adxThreshold - adx_val) / i_adxThreshold × 100
Why ADX Works: ADX synthesizes +DI and -DI movements. Low ADX means price is moving but not directionally—the definition of chop.
Factor 2: Choppiness Index (25% weight)
The Choppiness Index measures price efficiency using the ratio of ATR sum to price range:
CI = 100 × LOG10(SUM(ATR, n) / (Highest - Lowest)) / LOG10(n)
CI > 61.8: Choppy (range-bound, inefficient movement)
CI < 38.2: Trending (directional, efficient movement)
CI 38.2-61.8: Transitional
chop_idx_score = (ci_val - 38.2) / (61.8 - 38.2) × 100
Why Choppiness Index Works: In trending markets, price covers distance efficiently (low ATR sum relative to range). In choppy markets, price oscillates wildly but goes nowhere (high ATR sum relative to range).
Factor 3: Range Compression (20% weight)
Compares recent range to longer-term range, detecting volatility squeezes:
recent_range = Highest(20) - Lowest(20)
longer_range = Highest(50) - Lowest(50)
compression = 1 - (recent_range / longer_range)
compression > 0.5: Strong squeeze (potential breakout imminent)
compression < 0.2: No compression (normal volatility)
range_compression_score = compression × 100
Why Range Compression Matters: Compression precedes expansion. High compression = market coiling, preparing for move. Signals during compression often fail because the breakout hasn't occurred yet.
Factor 4: Channel Position (15% weight)
Tracks price position within the macro channel:
channel_position = (close - channel_low) / (channel_high - channel_low)
position 0.4-0.6: Center of channel (indecision zone)
position <0.2 or >0.8: Near extremes (potential reversal or breakout)
channel_chop = abs(0.5 - channel_position) < 0.15 ? high_score : low_score
Why Channel Position Matters: Price in the middle of a range is in "no man's land"—equally likely to go either direction. Signals in the channel center have lower probability.
Factor 5: Volume Quality (15% weight)
Assesses volume relative to average:
vol_ratio = volume / SMA(volume, 20)
vol_ratio < 0.7: Low volume (lack of conviction)
vol_ratio 0.7-1.3: Normal volume
vol_ratio > 1.3: High volume (conviction present)
volume_chop = vol_ratio < 0.8 ? (1 - vol_ratio) × 100 : 0
Why Volume Quality Matters: Low volume moves lack institutional participation. These moves are more likely to reverse or stall.
Combined Chop Intensity:
chopIntensity = (adx_chop × 0.25) + (chop_idx_score × 0.25) +
(range_compression_score × 0.20) + (channel_chop × 0.15) +
(volume_chop × i_volumeChopWeight × 0.15)
Regime Classifications:
Based on chop intensity and component analysis:
• Strong Trend (0-20%): ADX >30, clear directional momentum, trade aggressively
• Trending (20-35%): ADX >20, moderate directional bias, trade normally
• Transitioning (35-50%): Mixed signals, regime change possible, reduce size
• Mid-Range (50-60%): Price trapped in channel center, avoid new positions
• Ranging (60-70%): Low ADX, price oscillating within bounds, fade extremes only
• Compression (70-80%): Volatility squeeze, expansion imminent, wait for breakout
• Strong Chop (80-100%): Multiple chop factors aligned, avoid trading entirely
Signal Suppression:
When chop intensity exceeds the configurable threshold (default 80%), signals are suppressed entirely. The dashboard displays "⚠️ CHOP ZONE" with the current regime classification.
Chop Box Visualization:
When chop is detected, AMWT draws a semi-transparent box on the chart showing the chop zone. This visual reminder helps traders avoid entering positions during unfavorable conditions.
💧 LIQUIDITY ANCHORING SYSTEM
The Liquidity Concept:
Markets move from liquidity pool to liquidity pool. Stop losses cluster at predictable locations—below swing lows (buy stops become sell orders when triggered) and above swing highs (sell stops become buy orders when triggered). Institutions know where these clusters are and often engineer moves to trigger them before reversing.
AMWT identifies and tracks these liquidity events, using them as anchors for signal confidence.
Liquidity Event Types:
Type 1: Volume Spikes
Definition: Volume > SMA(volume, 20) × i_volThreshold (default 2.8x)
Interpretation: Sudden volume surge indicates institutional activity
• Near swing low + reversal: Likely accumulation
• Near swing high + reversal: Likely distribution
• With continuation: Institutional conviction in direction
Type 2: Stop Runs (Liquidity Sweeps)
Definition: Price briefly exceeds swing high/low then reverses within N bars
Detection:
• Price breaks above recent swing high (triggering buy stops)
• Then closes back below that high within 3 bars
• Signal: Bullish stop run complete, reversal likely
Or inverse for bearish:
• Price breaks below recent swing low (triggering sell stops)
• Then closes back above that low within 3 bars
• Signal: Bearish stop run complete, reversal likely
Type 3: Absorption Events
Definition: High volume with small candle body
Detection:
• Volume > 2x average
• Candle body < 30% of candle range
• Interpretation: Large orders being filled without moving price
• Implication: Accumulation (at lows) or distribution (at highs)
Type 4: BSL/SSL Pools (Buy-Side/Sell-Side Liquidity)
BSL (Buy-Side Liquidity):
• Cluster of swing highs within ATR proximity
• Stop losses from shorts sit above these highs
• Breaking BSL triggers short covering (fuel for rally)
SSL (Sell-Side Liquidity):
• Cluster of swing lows within ATR proximity
• Stop losses from longs sit below these lows
• Breaking SSL triggers long liquidation (fuel for decline)
Liquidity Pool Mapping:
AMWT continuously scans for and maps liquidity pools:
// Detect swing highs/lows using pivot function
swing_high = ta.pivothigh(high, 5, 5)
swing_low = ta.pivotlow(low, 5, 5)
// Track recent swing points
if not na(swing_high)
bsl_levels.push(swing_high)
if not na(swing_low)
ssl_levels.push(swing_low)
// Display on chart with labels
Confluence Scoring Integration:
When signals fire near identified liquidity events, confluence scoring increases:
• Signal near volume spike: +10% confidence
• Signal after liquidity sweep: +15% confidence
• Signal at BSL/SSL pool: +10% confidence
• Signal aligned with absorption zone: +10% confidence
Why Liquidity Anchoring Matters:
Signals "in a vacuum" have lower probability than signals anchored to institutional activity. A long signal after a liquidity sweep below swing lows has trapped shorts providing fuel. A long signal in the middle of nowhere has no such catalyst.
📊 SIGNAL GRADING SYSTEM
The Quality Problem:
Not all signals are created equal. A signal with 6/6 factors aligned is fundamentally different from a signal with 3/6 factors aligned. Traditional indicators treat them the same. AMWT grades every signal based on confluence.
Confluence Components (100 points total):
1. Bandit Consensus Strength (25 points)
consensus_str = weighted average of agent confidences
score = consensus_str × 25
Example:
Trend Agent: +1 signal, 0.80 confidence, 0.35 weight
Reversion Agent: 0 signal, 0.50 confidence, 0.25 weight
Structure Agent: +1 signal, 0.75 confidence, 0.40 weight
Weighted consensus = (0.80×0.35 + 0×0.25 + 0.75×0.40) / (0.35 + 0.40) = 0.77
Score = 0.77 × 25 = 19.25 points
2. HMM State Confidence (15 points)
score = hmm_confidence × 15
Example:
HMM reports 82% probability of IMPULSE_UP
Score = 0.82 × 15 = 12.3 points
3. Session Quality (15 points)
Session quality varies by time:
• London/NY Overlap: 1.0 (15 points)
• New York Session: 0.95 (14.25 points)
• London Session: 0.70 (10.5 points)
• Asian Session: 0.40 (6 points)
• Off-Hours: 0.30 (4.5 points)
• Weekend: 0.10 (1.5 points)
4. Energy/Participation (10 points)
energy = (realized_vol / avg_vol) × 0.4 + (range / ATR) × 0.35 + (volume / avg_volume) × 0.25
score = min(energy, 1.0) × 10
5. Volume Confirmation (10 points)
if volume > SMA(volume, 20) × 1.5:
score = 10
else if volume > SMA(volume, 20):
score = 5
else:
score = 0
6. Structure Alignment (10 points)
For long signals:
• Bullish structure (HH + HL): 10 points
• Higher low only: 6 points
• Neutral structure: 3 points
• Bearish structure: 0 points
Inverse for short signals
7. Trend Alignment (10 points)
For long signals:
• Price > EMA21 > EMA50: 10 points
• Price > EMA21: 6 points
• Neutral: 3 points
• Against trend: 0 points
8. Entry Trigger Quality (5 points)
• Strong trigger (multiple confirmations): 5 points
• Moderate trigger (single confirmation): 3 points
• Weak trigger (marginal): 1 point
Grade Scale:
Total Score → Grade
85-100 → A+ (Exceptional—all factors aligned)
70-84 → A (Strong—high probability)
55-69 → B (Acceptable—proceed with caution)
Below 55 → C (Marginal—filtered by default)
Grade-Based Signal Brightness:
Signal arrows on the chart have transparency based on grade:
• A+: Full brightness (alpha = 0)
• A: Slight fade (alpha = 15)
• B: Moderate fade (alpha = 35)
• C: Significant fade (alpha = 55)
This visual hierarchy helps traders instantly identify signal quality.
Minimum Grade Filter:
Configurable filter (default: C) sets the minimum grade for signal display:
• Set to "A" for only highest-quality signals
• Set to "B" for moderate selectivity
• Set to "C" for all signals (maximum quantity)
🕐 SESSION INTELLIGENCE
Why Sessions Matter:
Markets behave differently at different times. The London open is fundamentally different from the Asian lunch hour. AMWT incorporates session-aware logic to optimize signal quality.
Session Definitions:
Asian Session (18:00-03:00 ET)
• Characteristics: Lower volatility, range-bound tendency, fewer institutional participants
• Quality Score: 0.40 (40% of peak quality)
• Strategy Implications: Fade extremes, expect ranges, smaller position sizes
• Best For: Mean-reversion setups, accumulation/distribution identification
London Session (03:00-12:00 ET)
• Characteristics: European institutional activity, volatility pickup, trend initiation
• Quality Score: 0.70 (70% of peak quality)
• Strategy Implications: Watch for trend development, breakouts more reliable
• Best For: Initial trend identification, structure breaks
New York Session (08:00-17:00 ET)
• Characteristics: Highest liquidity, US institutional activity, major moves
• Quality Score: 0.95 (95% of peak quality)
• Strategy Implications: Best environment for directional trades
• Best For: Trend continuation, momentum plays
London/NY Overlap (08:00-12:00 ET)
• Characteristics: Peak liquidity, both European and US participants active
• Quality Score: 1.0 (100%—maximum quality)
• Strategy Implications: Highest probability for successful breakouts and trends
• Best For: All signal types—this is prime time
Off-Hours
• Characteristics: Thin liquidity, erratic price action, gaps possible
• Quality Score: 0.30 (30% of peak quality)
• Strategy Implications: Avoid new positions, wider stops if holding
• Best For: Waiting
Smart Weekend Detection:
AMWT properly handles the Sunday evening futures open:
// Traditional (broken):
isWeekend = dayofweek == saturday OR dayofweek == sunday
// AMWT (correct):
anySessionActive = not na(asianTime) or not na(londonTime) or not na(nyTime)
isWeekend = calendarWeekend AND NOT anySessionActive
This ensures Sunday 6pm ET (when futures open) correctly shows "Asian Session" rather than "Weekend."
Session Transition Boosts:
Certain session transitions create trading opportunities:
• Asian → London transition: +15% confidence boost (volatility expansion likely)
• London → Overlap transition: +20% confidence boost (peak liquidity approaching)
• Overlap → NY-only transition: -10% confidence adjustment (liquidity declining)
• Any → Off-Hours transition: Signal suppression recommended
📈 TRADE MANAGEMENT SYSTEM
The Signal Spam Problem:
Many indicators generate signal after signal, creating confusion and overtrading. AMWT implements a complete trade lifecycle management system that prevents signal spam and tracks performance.
Trade Lock Mechanism:
Once a signal fires, the system enters a "trade lock" state:
Trade Lock Duration: Configurable (default 30 bars)
Early Exit Conditions:
• TP3 hit (full target reached)
• Stop Loss hit (trade failed)
• Lock expiration (time-based exit)
During lock:
• No new signals of same type displayed
• Opposite signals can override (reversal)
• Trade status tracked in dashboard
Target Levels:
Each signal generates three profit targets based on ATR:
TP1 (Conservative Target)
• Default: 1.0 × ATR
• Purpose: Quick partial profit, reduce risk
• Action: Take 30-40% off position, move stop to breakeven
TP2 (Standard Target)
• Default: 2.5 × ATR
• Purpose: Main profit target
• Action: Take 40-50% off position, trail stop
TP3 (Extended Target)
• Default: 5.0 × ATR
• Purpose: Runner target for trend days
• Action: Close remaining position or continue trailing
Stop Loss:
• Default: 1.9 × ATR from entry
• Purpose: Define maximum risk
• Placement: Below recent swing low (longs) or above recent swing high (shorts)
Invalidation Level:
Beyond stop loss, AMWT calculates an "invalidation" level where the wave hypothesis dies:
invalidation = entry - (ATR × INVALIDATION_MULT × 1.5)
If price reaches invalidation, the current market interpretation is wrong—not just the trade.
Visual Trade Management:
During active trades, AMWT displays:
• Entry arrow with grade label (▲A+, ▼B, etc.)
• TP1, TP2, TP3 horizontal lines in green
• Stop Loss line in red
• Invalidation line in orange (dashed)
• Progress indicator in dashboard
Persistent Execution Markers:
When targets or stops are hit, permanent markers appear:
• TP hit: Green dot with "TP1"/"TP2"/"TP3" label
• SL hit: Red dot with "SL" label
These persist on the chart for review and statistics.
💰 PERFORMANCE TRACKING & STATISTICS
Tracked Metrics:
• Total Trades: Count of all signals that entered trade lock
• Winning Trades: Signals where at least TP1 was reached before SL
• Losing Trades: Signals where SL was hit before any TP
• Win Rate: Winning / Total × 100%
• Total R Profit: Sum of R-multiples from winning trades
• Total R Loss: Sum of R-multiples from losing trades
• Net R: Total R Profit - Total R Loss
Currency Conversion System:
AMWT can display P&L in multiple formats:
R-Multiple (Default)
• Shows risk-normalized returns
• "Net P&L: +4.2R | 78 trades" means 4.2 times initial risk gained over 78 trades
• Best for comparing across different position sizes
Currency Conversion (USD/EUR/GBP/JPY/INR)
• Converts R-multiples to currency based on:
- Dollar Risk Per Trade (user input)
- Tick Value (user input)
- Selected currency
Example Configuration:
Dollar Risk Per Trade: $100
Display Currency: USD
If Net R = +4.2R
Display: Net P&L: +$420.00 | 78 trades
Ticks
• For futures traders who think in ticks
• Converts based on tick value input
Statistics Reset:
Two reset methods:
1. Toggle Reset
• Turn "Reset Statistics" toggle ON then OFF
• Clears all statistics immediately
2. Date-Based Reset
• Set "Reset After Date" (YYYY-MM-DD format)
• Only trades after this date are counted
• Useful for isolating recent performance
🎨 VISUAL FEATURES
Macro Channel:
Dynamic regression-based channel showing market boundaries:
• Upper/lower bounds calculated from swing pivot linear regression
• Adapts to current market structure
• Shows overall trend direction and potential reversal zones
Chop Boxes:
Semi-transparent overlay during high-chop periods:
• Purple/orange coloring indicates dangerous conditions
• Visual reminder to avoid new positions
Confluence Heat Zones:
Background shading indicating setup quality:
• Darker shading = higher confluence
• Lighter shading = lower confluence
• Helps identify optimal entry timing
EMA Ribbon:
Trend visualization via moving average fill:
• EMA 8/21/50 with gradient fill between
• Green fill when bullish aligned
• Red fill when bearish aligned
• Gray when neutral
Absorption Zone Boxes:
Marks potential accumulation/distribution areas:
• High volume + small body = absorption
• Boxes drawn at these levels
• Often act as support/resistance
Liquidity Pool Lines:
BSL/SSL levels with labels:
• Dashed lines at liquidity clusters
• "BSL" label above swing high clusters
• "SSL" label below swing low clusters
Six Professional Themes:
• Quantum: Deep purples and cyans (default)
• Cyberpunk: Neon pinks and blues
• Professional: Muted grays and greens
• Ocean: Blues and teals
• Matrix: Greens and blacks
• Ember: Oranges and reds
🎓 PROFESSIONAL USAGE PROTOCOL
Phase 1: Learning the System (Week 1)
Goal: Understand AMWT concepts and dashboard interpretation
Setup:
• Signal Mode: Balanced
• Display: All features enabled
• Grade Filter: C (see all signals)
Actions:
• Paper trade ONLY—no real money
• Observe HMM state transitions throughout the day
• Note when agents agree vs disagree
• Watch chop detection engage and disengage
• Track which grades produce winners vs losers
Key Learning Questions:
• How often do A+ signals win vs B signals? (Should see clear difference)
• Which agent tends to be right in current market? (Check dashboard)
• When does chop detection save you from bad trades?
• How do signals near liquidity events perform vs signals in vacuum?
Phase 2: Parameter Optimization (Week 2)
Goal: Tune system to your instrument and timeframe
Signal Mode Testing:
• Run 5 days on Aggressive mode (more signals)
• Run 5 days on Conservative mode (fewer signals)
• Compare: Which produces better risk-adjusted returns?
Grade Filter Testing:
• Track A+ only for 20 signals
• Track A and above for 20 signals
• Track B and above for 20 signals
• Compare win rates and expectancy
Chop Threshold Testing:
• Default (80%): Standard filtering
• Try 70%: More aggressive filtering
• Try 90%: Less filtering
• Which produces best results for your instrument?
Phase 3: Strategy Development (Weeks 3-4)
Goal: Develop personal trading rules based on system signals
Position Sizing by Grade:
• A+ grade: 100% position size
• A grade: 75% position size
• B grade: 50% position size
• C grade: 25% position size (or skip)
Session-Based Rules:
• London/NY Overlap: Take all A/A+ signals
• NY Session: Take all A+ signals, selective on A
• Asian Session: Only A+ signals with extra confirmation
• Off-Hours: No new positions
Chop Zone Rules:
• Chop >70%: Reduce position size 50%
• Chop >80%: No new positions
• Chop <50%: Full position size allowed
Phase 4: Live Micro-Sizing (Month 2)
Goal: Validate paper trading results with minimal risk
Setup:
• 10-20% of intended full position size
• Take ONLY A+ signals initially
• Follow trade management religiously
Tracking:
• Log every trade: Entry, Exit, Grade, HMM State, Chop Level, Agent Consensus
• Calculate: Win rate by grade, by session, by chop level
• Compare to paper trading (should be within 15%)
Red Flags:
• Win rate diverges significantly from paper trading: Execution issues
• Consistent losses during certain sessions: Adjust session rules
• Losses cluster when specific agent dominates: Review that agent's logic
Phase 5: Scaling Up (Months 3-6)
Goal: Gradually increase to full position size
Progression:
• Month 3: 25-40% size (if micro-sizing profitable)
• Month 4: 40-60% size
• Month 5: 60-80% size
• Month 6: 80-100% size
Scale-Up Requirements:
• Minimum 30 trades at current size
• Win rate ≥50%
• Net R positive
• No revenge trading incidents
• Emotional control maintained
💡 DEVELOPMENT INSIGHTS
Why HMM Over Simple Indicators:
Early versions used standard indicators (RSI >70 = overbought, etc.). Win rates hovered at 52-55%. The problem: indicators don't capture state. RSI can stay "overbought" for weeks in a strong trend.
The insight: markets exist in states, and state persistence matters more than indicator levels. Implementing HMM with state transition probabilities increased signal quality significantly. The system now knows not just "RSI is high" but "we're in IMPULSE_UP state with 70% probability of staying in IMPULSE_UP."
The Multi-Agent Evolution:
Original version used a single analytical methodology—trend-following. Performance was inconsistent: great in trends, destroyed in ranges. Added mean-reversion agent: now it was inconsistent the other way.
The breakthrough: use multiple agents and let the system learn which works . Thompson Sampling wasn't the first attempt—tried simple averaging, voting, even hard-coded regime switching. Thompson Sampling won because it's mathematically optimal and automatically adapts without manual regime detection.
Chop Detection Revelation:
Chop detection was added almost as an afterthought. "Let's filter out obviously bad conditions." Testing revealed it was the most impactful single feature. Filtering chop zones reduced losing trades by 35% while only reducing total signals by 20%. The insight: avoiding bad trades matters more than finding good ones.
Liquidity Anchoring Discovery:
Watched hundreds of trades. Noticed pattern: signals that fired after liquidity events (stop runs, volume spikes) had significantly higher win rates than signals in quiet markets. Implemented liquidity detection and anchoring. Win rate on liquidity-anchored signals: 68% vs 52% on non-anchored signals.
The Grade System Impact:
Early system had binary signals (fire or don't fire). Adding grading transformed it. Traders could finally match position size to signal quality. A+ signals deserved full size; C signals deserved caution. Just implementing grade-based sizing improved portfolio Sharpe ratio by 0.3.
🚨 LIMITATIONS & CRITICAL ASSUMPTIONS
What AMWT Is NOT:
• NOT a Holy Grail : No system wins every trade. AMWT improves probability, not certainty.
• NOT Fully Automated : AMWT provides signals and analysis; execution requires human judgment.
• NOT News-Proof : Exogenous shocks (FOMC surprises, geopolitical events) invalidate all technical analysis.
• NOT for Scalping : HMM state estimation needs time to develop. Sub-minute timeframes are not appropriate.
Core Assumptions:
1. Markets Have States : Assumes markets transition between identifiable regimes. Violation: Random walk markets with no regime structure.
2. States Are Inferable : Assumes observable indicators reveal hidden states. Violation: Market manipulation creating false signals.
3. History Informs Future : Assumes past agent performance predicts future performance. Violation: Regime changes that invalidate historical patterns.
4. Liquidity Events Matter : Assumes institutional activity creates predictable patterns. Violation: Markets with no institutional participation.
Performs Best On:
• Liquid Futures : ES, NQ, MNQ, MES, CL, GC
• Major Forex Pairs : EUR/USD, GBP/USD, USD/JPY
• Large-Cap Stocks : AAPL, MSFT, TSLA, NVDA (>$5B market cap)
• Liquid Crypto : BTC, ETH on major exchanges
Performs Poorly On:
• Illiquid Instruments : Low volume stocks, exotic pairs
• Very Low Timeframes : Sub-5-minute charts (noise overwhelms signal)
• Binary Event Days : Earnings, FDA approvals, court rulings
• Manipulated Markets : Penny stocks, low-cap altcoins
Known Weaknesses:
• Warmup Period : HMM needs ~50 bars to initialize properly. Early signals may be unreliable.
• Regime Change Lag : Thompson Sampling adapts over time, not instantly. Sudden regime changes may cause short-term underperformance.
• Complexity : More parameters than simple indicators. Requires understanding to use effectively.
⚠️ RISK DISCLOSURE
Trading futures, stocks, options, forex, and cryptocurrencies involves substantial risk of loss and is not suitable for all investors. Adaptive Market Wave Theory, while based on rigorous mathematical frameworks including Hidden Markov Models and multi-armed bandit algorithms, does not guarantee profits and can result in significant losses.
AMWT's methodologies—HMM state estimation, Thompson Sampling agent selection, and confluence-based grading—have theoretical foundations but past performance is not indicative of future results.
Hidden Markov Model assumptions may not hold during:
• Major news events disrupting normal market behavior
• Flash crashes or circuit breaker events
• Low liquidity periods with erratic price action
• Algorithmic manipulation or spoofing
Multi-agent consensus assumes independent analytical perspectives provide edge. Market conditions change. Edges that existed historically can diminish or disappear.
Users must independently validate system performance on their specific instruments, timeframes, and broker execution environment. Paper trade extensively before risking capital. Start with micro position sizing.
Never risk more than you can afford to lose completely. Use proper position sizing. Implement stop losses without exception.
By using this indicator, you acknowledge these risks and accept full responsibility for all trading decisions and outcomes.
"Elliott Wave was a first-order approximation of market phase behavior. AMWT is the second—probabilistic, adaptive, and accountable."
Initial Public Release
Core Engine:
• True Hidden Markov Model with online Baum-Welch learning
• Viterbi algorithm for optimal state sequence decoding
• 6-state market regime classification
Agent System:
• 3-Bandit consensus (Trend, Reversion, Structure)
• Thompson Sampling with true Beta distribution sampling
• Adaptive weight learning based on performance
Signal Generation:
• Quality-based confluence grading (A+/A/B/C)
• Four signal modes (Aggressive/Balanced/Conservative/Institutional)
• Grade-based visual brightness
Chop Detection:
• 5-factor analysis (ADX, Choppiness Index, Range Compression, Channel Position, Volume)
• 7 regime classifications
• Configurable signal suppression threshold
Liquidity:
• Volume spike detection
• Stop run (liquidity sweep) identification
• BSL/SSL pool mapping
• Absorption zone detection
Trade Management:
• Trade lock with configurable duration
• TP1/TP2/TP3 targets
• ATR-based stop loss
• Persistent execution markers
Session Intelligence:
• Asian/London/NY/Overlap detection
• Smart weekend handling (Sunday futures open)
• Session quality scoring
Performance:
• Statistics tracking with reset functionality
• 7 currency display modes
• Win rate and Net R calculation
Visuals:
• Macro channel with linear regression
• Chop boxes
• EMA ribbon
• Liquidity pool lines
• 6 professional themes
Dashboards:
• Main Dashboard: Market State, Consensus, Trade Status, Statistics
• AMWT Advisor : Market Pulse, Agent Matrix, Structure, Watch For
Taking you to school. - Dskyz, Trade with probability. Trade with consensus. Trade with AMWT.
Adaptive Market Wave TheoryAdaptive Market Wave Theory
🌊 CORE INNOVATION: PROBABILISTIC PHASE DETECTION WITH MULTI-AGENT CONSENSUS
Adaptive Market Wave Theory (AMWT) represents a fundamental paradigm shift in how traders approach market phase identification. Rather than counting waves subjectively or drawing static breakout levels, AMWT treats the market as a hidden state machine —using Hidden Markov Models, multi-agent consensus systems, and reinforcement learning algorithms to quantify what traditional methods leave to interpretation.
The Wave Analysis Problem:
Traditional wave counting methodologies (Elliott Wave, harmonic patterns, ABC corrections) share fatal weaknesses that AMWT directly addresses:
1. Non-Falsifiability : Invalid wave counts can always be "recounted" or "adjusted." If your Wave 3 fails, it becomes "Wave 3 of a larger degree" or "actually Wave C." There's no objective failure condition.
2. Observer Bias : Two expert wave analysts examining the same chart routinely reach different conclusions. This isn't a feature—it's a fundamental methodology flaw.
3. No Confidence Measure : Traditional analysis says "This IS Wave 3." But with what probability? 51%? 95%? The binary nature prevents proper position sizing and risk management.
4. Static Rules : Fixed Fibonacci ratios and wave guidelines cannot adapt to changing market regimes. What worked in 2019 may fail in 2024.
5. No Accountability : Wave methodologies rarely track their own performance. There's no feedback loop to improve.
The AMWT Solution:
AMWT addresses each limitation through rigorous mathematical frameworks borrowed from speech recognition, machine learning, and reinforcement learning:
• Non-Falsifiability → Hard Invalidation : Wave hypotheses die permanently when price violates calculated invalidation levels. No recounting allowed.
• Observer Bias → Multi-Agent Consensus : Three independent analytical agents must agree. Single-methodology bias is eliminated.
• No Confidence → Probabilistic States : Every market state has a calculated probability from Hidden Markov Model inference. "72% probability of impulse state" replaces "This is Wave 3."
• Static Rules → Adaptive Learning : Thompson Sampling multi-armed bandits learn which agents perform best in current conditions. The system adapts in real-time.
• No Accountability → Performance Tracking : Comprehensive statistics track every signal's outcome. The system knows its own performance.
The Core Insight:
"Traditional wave analysis asks 'What count is this?' AMWT asks 'What is the probability we are in an impulsive state, with what confidence, confirmed by how many independent methodologies, and anchored to what liquidity event?'"
🔬 THEORETICAL FOUNDATION: HIDDEN MARKOV MODELS
Why Hidden Markov Models?
Markets exist in hidden states that we cannot directly observe—only their effects on price are visible. When the market is in an "impulse up" state, we see rising prices, expanding volume, and trending indicators. But we don't observe the state itself—we infer it from observables.
This is precisely the problem Hidden Markov Models (HMMs) solve. Originally developed for speech recognition (inferring words from sound waves), HMMs excel at estimating hidden states from noisy observations.
HMM Components:
1. Hidden States (S) : The unobservable market conditions
2. Observations (O) : What we can measure (price, volume, indicators)
3. Transition Matrix (A) : Probability of moving between states
4. Emission Matrix (B) : Probability of observations given each state
5. Initial Distribution (π) : Starting state probabilities
AMWT's Six Market States:
State 0: IMPULSE_UP
• Definition: Strong bullish momentum with high participation
• Observable Signatures: Rising prices, expanding volume, RSI >60, price above upper Bollinger Band, MACD histogram positive and rising
• Typical Duration: 5-20 bars depending on timeframe
• What It Means: Institutional buying pressure, trend acceleration phase
State 1: IMPULSE_DN
• Definition: Strong bearish momentum with high participation
• Observable Signatures: Falling prices, expanding volume, RSI <40, price below lower Bollinger Band, MACD histogram negative and falling
• Typical Duration: 5-20 bars (often shorter than bullish impulses—markets fall faster)
• What It Means: Institutional selling pressure, panic or distribution acceleration
State 2: CORRECTION
• Definition: Counter-trend consolidation with declining momentum
• Observable Signatures: Sideways or mild counter-trend movement, contracting volume, RSI returning toward 50, Bollinger Bands narrowing
• Typical Duration: 8-30 bars
• What It Means: Profit-taking, digestion of prior move, potential accumulation for next leg
State 3: ACCUMULATION
• Definition: Base-building near lows where informed participants absorb supply
• Observable Signatures: Price near recent lows but not making new lows, volume spikes on up bars, RSI showing positive divergence, tight range
• Typical Duration: 15-50 bars
• What It Means: Smart money buying from weak hands, preparing for markup phase
State 4: DISTRIBUTION
• Definition: Top-forming near highs where informed participants distribute holdings
• Observable Signatures: Price near recent highs but struggling to advance, volume spikes on down bars, RSI showing negative divergence, widening range
• Typical Duration: 15-50 bars
• What It Means: Smart money selling to late buyers, preparing for markdown phase
State 5: TRANSITION
• Definition: Regime change period with mixed signals and elevated uncertainty
• Observable Signatures: Conflicting indicators, whipsaw price action, no clear momentum, high volatility without direction
• Typical Duration: 5-15 bars
• What It Means: Market deciding next direction, dangerous for directional trades
The Transition Matrix:
The transition matrix A captures the probability of moving from one state to another. AMWT initializes with empirically-derived values then updates online:
From/To IMP_UP IMP_DN CORR ACCUM DIST TRANS
IMP_UP 0.70 0.02 0.20 0.02 0.04 0.02
IMP_DN 0.02 0.70 0.20 0.04 0.02 0.02
CORR 0.15 0.15 0.50 0.10 0.10 0.00
ACCUM 0.30 0.05 0.15 0.40 0.05 0.05
DIST 0.05 0.30 0.15 0.05 0.40 0.05
TRANS 0.20 0.20 0.20 0.15 0.15 0.10
Key Insights from Transition Probabilities:
• Impulse states are sticky (70% self-transition): Once trending, markets tend to continue
• Corrections can transition to either impulse direction (15% each): The next move after correction is uncertain
• Accumulation strongly favors IMP_UP transition (30%): Base-building leads to rallies
• Distribution strongly favors IMP_DN transition (30%): Topping leads to declines
The Viterbi Algorithm:
Given a sequence of observations, how do we find the most likely state sequence? This is the Viterbi algorithm—dynamic programming to find the optimal path through the state space.
Mathematical Formulation:
δ_t(j) = max_i × B_j(O_t)
Where:
δ_t(j) = probability of most likely path ending in state j at time t
A_ij = transition probability from state i to state j
B_j(O_t) = emission probability of observation O_t given state j
AMWT Implementation:
AMWT runs Viterbi over a rolling window (default 50 bars), computing the most likely state sequence and extracting:
• Current state estimate
• State confidence (probability of current state vs alternatives)
• State sequence for pattern detection
Online Learning (Baum-Welch Adaptation):
Unlike static HMMs, AMWT continuously updates its transition and emission matrices based on observed market behavior:
f_onlineUpdateHMM(prev_state, curr_state, observation, decay) =>
// Update transition matrix
A *= decay
A += (1.0 - decay)
// Renormalize row
// Update emission matrix
B *= decay
B += (1.0 - decay)
// Renormalize row
The decay parameter (default 0.85) controls adaptation speed:
• Higher decay (0.95): Slower adaptation, more stable, better for consistent markets
• Lower decay (0.80): Faster adaptation, more reactive, better for regime changes
Why This Matters for Trading:
Traditional indicators give you a number (RSI = 72). AMWT gives you a probabilistic state assessment :
"There is a 78% probability we are in IMPULSE_UP state, with 15% probability of CORRECTION and 7% distributed among other states. The transition matrix suggests 70% chance of remaining in IMPULSE_UP next bar, 20% chance of transitioning to CORRECTION."
This enables:
• Position sizing by confidence : 90% confidence = full size; 60% confidence = half size
• Risk management by transition probability : High correction probability = tighten stops
• Strategy selection by state : IMPULSE = trend-follow; CORRECTION = wait; ACCUMULATION = scale in
🎰 THE 3-BANDIT CONSENSUS SYSTEM
The Multi-Agent Philosophy:
No single analytical methodology works in all market conditions. Trend-following excels in trending markets but gets chopped in ranges. Mean-reversion excels in ranges but gets crushed in trends. Structure-based analysis works when structure is clear but fails in chaotic markets.
AMWT's solution: employ three independent agents , each analyzing the market from a different perspective, then use Thompson Sampling to learn which agents perform best in current conditions.
Agent 1: TREND AGENT
Philosophy : Markets trend. Follow the trend until it ends.
Analytical Components:
• EMA Alignment: EMA8 > EMA21 > EMA50 (bullish) or inverse (bearish)
• MACD Histogram: Direction and rate of change
• Price Momentum: Close relative to ATR-normalized movement
• VWAP Position: Price above/below volume-weighted average price
Signal Generation:
Strong Bull: EMA aligned bull AND MACD histogram > 0 AND momentum > 0.3 AND close > VWAP
→ Signal: +1 (Long), Confidence: 0.75 + |momentum| × 0.4
Moderate Bull: EMA stack bull AND MACD rising AND momentum > 0.1
→ Signal: +1 (Long), Confidence: 0.65 + |momentum| × 0.3
Strong Bear: EMA aligned bear AND MACD histogram < 0 AND momentum < -0.3 AND close < VWAP
→ Signal: -1 (Short), Confidence: 0.75 + |momentum| × 0.4
Moderate Bear: EMA stack bear AND MACD falling AND momentum < -0.1
→ Signal: -1 (Short), Confidence: 0.65 + |momentum| × 0.3
When Trend Agent Excels:
• Trend days (IB extension >1.5x)
• Post-breakout continuation
• Institutional accumulation/distribution phases
When Trend Agent Fails:
• Range-bound markets (ADX <20)
• Chop zones after volatility spikes
• Reversal days at major levels
Agent 2: REVERSION AGENT
Philosophy: Markets revert to mean. Extreme readings reverse.
Analytical Components:
• Bollinger Band Position: Distance from bands, percent B
• RSI Extremes: Overbought (>70) and oversold (<30)
• Stochastic: %K/%D crossovers at extremes
• Band Squeeze: Bollinger Band width contraction
Signal Generation:
Oversold Bounce: BB %B < 0.20 AND RSI < 35 AND Stochastic < 25
→ Signal: +1 (Long), Confidence: 0.70 + (30 - RSI) × 0.01
Overbought Fade: BB %B > 0.80 AND RSI > 65 AND Stochastic > 75
→ Signal: -1 (Short), Confidence: 0.70 + (RSI - 70) × 0.01
Squeeze Fire Bull: Band squeeze ending AND close > upper band
→ Signal: +1 (Long), Confidence: 0.65
Squeeze Fire Bear: Band squeeze ending AND close < lower band
→ Signal: -1 (Short), Confidence: 0.65
When Reversion Agent Excels:
• Rotation days (price stays within IB)
• Range-bound consolidation
• After extended moves without pullback
When Reversion Agent Fails:
• Strong trend days (RSI can stay overbought for days)
• Breakout moves
• News-driven directional moves
Agent 3: STRUCTURE AGENT
Philosophy: Market structure reveals institutional intent. Follow the smart money.
Analytical Components:
• Break of Structure (BOS): Price breaks prior swing high/low
• Change of Character (CHOCH): First break against prevailing trend
• Higher Highs/Higher Lows: Bullish structure
• Lower Highs/Lower Lows: Bearish structure
• Liquidity Sweeps: Stop runs that reverse
Signal Generation:
BOS Bull: Price breaks above prior swing high with momentum
→ Signal: +1 (Long), Confidence: 0.70 + structure_strength × 0.2
CHOCH Bull: First higher low after downtrend, breaking structure
→ Signal: +1 (Long), Confidence: 0.75
BOS Bear: Price breaks below prior swing low with momentum
→ Signal: -1 (Short), Confidence: 0.70 + structure_strength × 0.2
CHOCH Bear: First lower high after uptrend, breaking structure
→ Signal: -1 (Short), Confidence: 0.75
Liquidity Sweep Long: Price sweeps below swing low then reverses strongly
→ Signal: +1 (Long), Confidence: 0.80
Liquidity Sweep Short: Price sweeps above swing high then reverses strongly
→ Signal: -1 (Short), Confidence: 0.80
When Structure Agent Excels:
• After liquidity grabs (stop runs)
• At major swing points
• During institutional accumulation/distribution
When Structure Agent Fails:
• Choppy, structureless markets
• During news events (structure becomes noise)
• Very low timeframes (noise overwhelms structure)
Thompson Sampling: The Bandit Algorithm
With three agents giving potentially different signals, how do we decide which to trust? This is the multi-armed bandit problem —balancing exploitation (using what works) with exploration (testing alternatives).
Thompson Sampling Solution:
Each agent maintains a Beta distribution representing its success/failure history:
Agent success rate modeled as Beta(α, β)
Where:
α = number of successful signals + 1
β = number of failed signals + 1
On Each Bar:
1. Sample from each agent's Beta distribution
2. Weight agent signals by sampled probabilities
3. Combine weighted signals into consensus
4. Update α/β based on trade outcomes
Mathematical Implementation:
// Beta sampling via Gamma ratio method
f_beta_sample(alpha, beta) =>
g1 = f_gamma_sample(alpha)
g2 = f_gamma_sample(beta)
g1 / (g1 + g2)
// Thompson Sampling selection
for each agent:
sampled_prob = f_beta_sample(agent.alpha, agent.beta)
weight = sampled_prob / sum(all_sampled_probs)
consensus += agent.signal × agent.confidence × weight
Why Thompson Sampling?
• Automatic Exploration : Agents with few samples get occasional chances (high variance in Beta distribution)
• Bayesian Optimal : Mathematically proven optimal solution to exploration-exploitation tradeoff
• Uncertainty-Aware : Small sample size = more exploration; large sample size = more exploitation
• Self-Correcting : Poor performers naturally get lower weights over time
Example Evolution:
Day 1 (Initial):
Trend Agent: Beta(1,1) → samples ~0.50 (high uncertainty)
Reversion Agent: Beta(1,1) → samples ~0.50 (high uncertainty)
Structure Agent: Beta(1,1) → samples ~0.50 (high uncertainty)
After 50 Signals:
Trend Agent: Beta(28,23) → samples ~0.55 (moderate confidence)
Reversion Agent: Beta(18,33) → samples ~0.35 (underperforming)
Structure Agent: Beta(32,19) → samples ~0.63 (outperforming)
Result: Structure Agent now receives highest weight in consensus
Consensus Requirements by Mode:
Aggressive Mode:
• Minimum 1/3 agents agreeing
• Consensus threshold: 45%
• Use case: More signals, higher risk tolerance
Balanced Mode:
• Minimum 2/3 agents agreeing
• Consensus threshold: 55%
• Use case: Standard trading
Conservative Mode:
• Minimum 2/3 agents agreeing
• Consensus threshold: 65%
• Use case: Higher quality, fewer signals
Institutional Mode:
• Minimum 2/3 agents agreeing
• Consensus threshold: 75%
• Additional: Session quality >0.65, mode adjustment +0.10
• Use case: Highest quality signals only
🌀 INTELLIGENT CHOP DETECTION ENGINE
The Chop Problem:
Most trading losses occur not from being wrong about direction, but from trading in conditions where direction doesn't exist . Choppy, range-bound markets generate false signals from every methodology—trend-following, mean-reversion, and structure-based alike.
AMWT's chop detection engine identifies these low-probability environments before signals fire, preventing the most damaging trades.
Five-Factor Chop Analysis:
Factor 1: ADX Component (25% weight)
ADX (Average Directional Index) measures trend strength regardless of direction.
ADX < 15: Very weak trend (high chop score)
ADX 15-20: Weak trend (moderate chop score)
ADX 20-25: Developing trend (low chop score)
ADX > 25: Strong trend (minimal chop score)
adx_chop = (i_adxThreshold - adx_val) / i_adxThreshold × 100
Why ADX Works: ADX synthesizes +DI and -DI movements. Low ADX means price is moving but not directionally—the definition of chop.
Factor 2: Choppiness Index (25% weight)
The Choppiness Index measures price efficiency using the ratio of ATR sum to price range:
CI = 100 × LOG10(SUM(ATR, n) / (Highest - Lowest)) / LOG10(n)
CI > 61.8: Choppy (range-bound, inefficient movement)
CI < 38.2: Trending (directional, efficient movement)
CI 38.2-61.8: Transitional
chop_idx_score = (ci_val - 38.2) / (61.8 - 38.2) × 100
Why Choppiness Index Works: In trending markets, price covers distance efficiently (low ATR sum relative to range). In choppy markets, price oscillates wildly but goes nowhere (high ATR sum relative to range).
Factor 3: Range Compression (20% weight)
Compares recent range to longer-term range, detecting volatility squeezes:
recent_range = Highest(20) - Lowest(20)
longer_range = Highest(50) - Lowest(50)
compression = 1 - (recent_range / longer_range)
compression > 0.5: Strong squeeze (potential breakout imminent)
compression < 0.2: No compression (normal volatility)
range_compression_score = compression × 100
Why Range Compression Matters: Compression precedes expansion. High compression = market coiling, preparing for move. Signals during compression often fail because the breakout hasn't occurred yet.
Factor 4: Channel Position (15% weight)
Tracks price position within the macro channel:
channel_position = (close - channel_low) / (channel_high - channel_low)
position 0.4-0.6: Center of channel (indecision zone)
position <0.2 or >0.8: Near extremes (potential reversal or breakout)
channel_chop = abs(0.5 - channel_position) < 0.15 ? high_score : low_score
Why Channel Position Matters: Price in the middle of a range is in "no man's land"—equally likely to go either direction. Signals in the channel center have lower probability.
Factor 5: Volume Quality (15% weight)
Assesses volume relative to average:
vol_ratio = volume / SMA(volume, 20)
vol_ratio < 0.7: Low volume (lack of conviction)
vol_ratio 0.7-1.3: Normal volume
vol_ratio > 1.3: High volume (conviction present)
volume_chop = vol_ratio < 0.8 ? (1 - vol_ratio) × 100 : 0
Why Volume Quality Matters: Low volume moves lack institutional participation. These moves are more likely to reverse or stall.
Combined Chop Intensity:
chopIntensity = (adx_chop × 0.25) + (chop_idx_score × 0.25) +
(range_compression_score × 0.20) + (channel_chop × 0.15) +
(volume_chop × i_volumeChopWeight × 0.15)
Regime Classifications:
Based on chop intensity and component analysis:
• Strong Trend (0-20%): ADX >30, clear directional momentum, trade aggressively
• Trending (20-35%): ADX >20, moderate directional bias, trade normally
• Transitioning (35-50%): Mixed signals, regime change possible, reduce size
• Mid-Range (50-60%): Price trapped in channel center, avoid new positions
• Ranging (60-70%): Low ADX, price oscillating within bounds, fade extremes only
• Compression (70-80%): Volatility squeeze, expansion imminent, wait for breakout
• Strong Chop (80-100%): Multiple chop factors aligned, avoid trading entirely
Signal Suppression:
When chop intensity exceeds the configurable threshold (default 80%), signals are suppressed entirely. The dashboard displays "⚠️ CHOP ZONE" with the current regime classification.
Chop Box Visualization:
When chop is detected, AMWT draws a semi-transparent box on the chart showing the chop zone. This visual reminder helps traders avoid entering positions during unfavorable conditions.
💧 LIQUIDITY ANCHORING SYSTEM
The Liquidity Concept:
Markets move from liquidity pool to liquidity pool. Stop losses cluster at predictable locations—below swing lows (buy stops become sell orders when triggered) and above swing highs (sell stops become buy orders when triggered). Institutions know where these clusters are and often engineer moves to trigger them before reversing.
AMWT identifies and tracks these liquidity events, using them as anchors for signal confidence.
Liquidity Event Types:
Type 1: Volume Spikes
Definition: Volume > SMA(volume, 20) × i_volThreshold (default 2.8x)
Interpretation: Sudden volume surge indicates institutional activity
• Near swing low + reversal: Likely accumulation
• Near swing high + reversal: Likely distribution
• With continuation: Institutional conviction in direction
Type 2: Stop Runs (Liquidity Sweeps)
Definition: Price briefly exceeds swing high/low then reverses within N bars
Detection:
• Price breaks above recent swing high (triggering buy stops)
• Then closes back below that high within 3 bars
• Signal: Bullish stop run complete, reversal likely
Or inverse for bearish:
• Price breaks below recent swing low (triggering sell stops)
• Then closes back above that low within 3 bars
• Signal: Bearish stop run complete, reversal likely
Type 3: Absorption Events
Definition: High volume with small candle body
Detection:
• Volume > 2x average
• Candle body < 30% of candle range
• Interpretation: Large orders being filled without moving price
• Implication: Accumulation (at lows) or distribution (at highs)
Type 4: BSL/SSL Pools (Buy-Side/Sell-Side Liquidity)
BSL (Buy-Side Liquidity):
• Cluster of swing highs within ATR proximity
• Stop losses from shorts sit above these highs
• Breaking BSL triggers short covering (fuel for rally)
SSL (Sell-Side Liquidity):
• Cluster of swing lows within ATR proximity
• Stop losses from longs sit below these lows
• Breaking SSL triggers long liquidation (fuel for decline)
Liquidity Pool Mapping:
AMWT continuously scans for and maps liquidity pools:
// Detect swing highs/lows using pivot function
swing_high = ta.pivothigh(high, 5, 5)
swing_low = ta.pivotlow(low, 5, 5)
// Track recent swing points
if not na(swing_high)
bsl_levels.push(swing_high)
if not na(swing_low)
ssl_levels.push(swing_low)
// Display on chart with labels
Confluence Scoring Integration:
When signals fire near identified liquidity events, confluence scoring increases:
• Signal near volume spike: +10% confidence
• Signal after liquidity sweep: +15% confidence
• Signal at BSL/SSL pool: +10% confidence
• Signal aligned with absorption zone: +10% confidence
Why Liquidity Anchoring Matters:
Signals "in a vacuum" have lower probability than signals anchored to institutional activity. A long signal after a liquidity sweep below swing lows has trapped shorts providing fuel. A long signal in the middle of nowhere has no such catalyst.
📊 SIGNAL GRADING SYSTEM
The Quality Problem:
Not all signals are created equal. A signal with 6/6 factors aligned is fundamentally different from a signal with 3/6 factors aligned. Traditional indicators treat them the same. AMWT grades every signal based on confluence.
Confluence Components (100 points total):
1. Bandit Consensus Strength (25 points)
consensus_str = weighted average of agent confidences
score = consensus_str × 25
Example:
Trend Agent: +1 signal, 0.80 confidence, 0.35 weight
Reversion Agent: 0 signal, 0.50 confidence, 0.25 weight
Structure Agent: +1 signal, 0.75 confidence, 0.40 weight
Weighted consensus = (0.80×0.35 + 0×0.25 + 0.75×0.40) / (0.35 + 0.40) = 0.77
Score = 0.77 × 25 = 19.25 points
2. HMM State Confidence (15 points)
score = hmm_confidence × 15
Example:
HMM reports 82% probability of IMPULSE_UP
Score = 0.82 × 15 = 12.3 points
3. Session Quality (15 points)
Session quality varies by time:
• London/NY Overlap: 1.0 (15 points)
• New York Session: 0.95 (14.25 points)
• London Session: 0.70 (10.5 points)
• Asian Session: 0.40 (6 points)
• Off-Hours: 0.30 (4.5 points)
• Weekend: 0.10 (1.5 points)
4. Energy/Participation (10 points)
energy = (realized_vol / avg_vol) × 0.4 + (range / ATR) × 0.35 + (volume / avg_volume) × 0.25
score = min(energy, 1.0) × 10
5. Volume Confirmation (10 points)
if volume > SMA(volume, 20) × 1.5:
score = 10
else if volume > SMA(volume, 20):
score = 5
else:
score = 0
6. Structure Alignment (10 points)
For long signals:
• Bullish structure (HH + HL): 10 points
• Higher low only: 6 points
• Neutral structure: 3 points
• Bearish structure: 0 points
Inverse for short signals
7. Trend Alignment (10 points)
For long signals:
• Price > EMA21 > EMA50: 10 points
• Price > EMA21: 6 points
• Neutral: 3 points
• Against trend: 0 points
8. Entry Trigger Quality (5 points)
• Strong trigger (multiple confirmations): 5 points
• Moderate trigger (single confirmation): 3 points
• Weak trigger (marginal): 1 point
Grade Scale:
Total Score → Grade
85-100 → A+ (Exceptional—all factors aligned)
70-84 → A (Strong—high probability)
55-69 → B (Acceptable—proceed with caution)
Below 55 → C (Marginal—filtered by default)
Grade-Based Signal Brightness:
Signal arrows on the chart have transparency based on grade:
• A+: Full brightness (alpha = 0)
• A: Slight fade (alpha = 15)
• B: Moderate fade (alpha = 35)
• C: Significant fade (alpha = 55)
This visual hierarchy helps traders instantly identify signal quality.
Minimum Grade Filter:
Configurable filter (default: C) sets the minimum grade for signal display:
• Set to "A" for only highest-quality signals
• Set to "B" for moderate selectivity
• Set to "C" for all signals (maximum quantity)
🕐 SESSION INTELLIGENCE
Why Sessions Matter:
Markets behave differently at different times. The London open is fundamentally different from the Asian lunch hour. AMWT incorporates session-aware logic to optimize signal quality.
Session Definitions:
Asian Session (18:00-03:00 ET)
• Characteristics: Lower volatility, range-bound tendency, fewer institutional participants
• Quality Score: 0.40 (40% of peak quality)
• Strategy Implications: Fade extremes, expect ranges, smaller position sizes
• Best For: Mean-reversion setups, accumulation/distribution identification
London Session (03:00-12:00 ET)
• Characteristics: European institutional activity, volatility pickup, trend initiation
• Quality Score: 0.70 (70% of peak quality)
• Strategy Implications: Watch for trend development, breakouts more reliable
• Best For: Initial trend identification, structure breaks
New York Session (08:00-17:00 ET)
• Characteristics: Highest liquidity, US institutional activity, major moves
• Quality Score: 0.95 (95% of peak quality)
• Strategy Implications: Best environment for directional trades
• Best For: Trend continuation, momentum plays
London/NY Overlap (08:00-12:00 ET)
• Characteristics: Peak liquidity, both European and US participants active
• Quality Score: 1.0 (100%—maximum quality)
• Strategy Implications: Highest probability for successful breakouts and trends
• Best For: All signal types—this is prime time
Off-Hours
• Characteristics: Thin liquidity, erratic price action, gaps possible
• Quality Score: 0.30 (30% of peak quality)
• Strategy Implications: Avoid new positions, wider stops if holding
• Best For: Waiting
Smart Weekend Detection:
AMWT properly handles the Sunday evening futures open:
// Traditional (broken):
isWeekend = dayofweek == saturday OR dayofweek == sunday
// AMWT (correct):
anySessionActive = not na(asianTime) or not na(londonTime) or not na(nyTime)
isWeekend = calendarWeekend AND NOT anySessionActive
This ensures Sunday 6pm ET (when futures open) correctly shows "Asian Session" rather than "Weekend."
Session Transition Boosts:
Certain session transitions create trading opportunities:
• Asian → London transition: +15% confidence boost (volatility expansion likely)
• London → Overlap transition: +20% confidence boost (peak liquidity approaching)
• Overlap → NY-only transition: -10% confidence adjustment (liquidity declining)
• Any → Off-Hours transition: Signal suppression recommended
📈 TRADE MANAGEMENT SYSTEM
The Signal Spam Problem:
Many indicators generate signal after signal, creating confusion and overtrading. AMWT implements a complete trade lifecycle management system that prevents signal spam and tracks performance.
Trade Lock Mechanism:
Once a signal fires, the system enters a "trade lock" state:
Trade Lock Duration: Configurable (default 30 bars)
Early Exit Conditions:
• TP3 hit (full target reached)
• Stop Loss hit (trade failed)
• Lock expiration (time-based exit)
During lock:
• No new signals of same type displayed
• Opposite signals can override (reversal)
• Trade status tracked in dashboard
Target Levels:
Each signal generates three profit targets based on ATR:
TP1 (Conservative Target)
• Default: 1.0 × ATR
• Purpose: Quick partial profit, reduce risk
• Action: Take 30-40% off position, move stop to breakeven
TP2 (Standard Target)
• Default: 2.5 × ATR
• Purpose: Main profit target
• Action: Take 40-50% off position, trail stop
TP3 (Extended Target)
• Default: 5.0 × ATR
• Purpose: Runner target for trend days
• Action: Close remaining position or continue trailing
Stop Loss:
• Default: 1.9 × ATR from entry
• Purpose: Define maximum risk
• Placement: Below recent swing low (longs) or above recent swing high (shorts)
Invalidation Level:
Beyond stop loss, AMWT calculates an "invalidation" level where the wave hypothesis dies:
invalidation = entry - (ATR × INVALIDATION_MULT × 1.5)
If price reaches invalidation, the current market interpretation is wrong—not just the trade.
Visual Trade Management:
During active trades, AMWT displays:
• Entry arrow with grade label (▲A+, ▼B, etc.)
• TP1, TP2, TP3 horizontal lines in green
• Stop Loss line in red
• Invalidation line in orange (dashed)
• Progress indicator in dashboard
Persistent Execution Markers:
When targets or stops are hit, permanent markers appear:
• TP hit: Green dot with "TP1"/"TP2"/"TP3" label
• SL hit: Red dot with "SL" label
These persist on the chart for review and statistics.
💰 PERFORMANCE TRACKING & STATISTICS
Tracked Metrics:
• Total Trades: Count of all signals that entered trade lock
• Winning Trades: Signals where at least TP1 was reached before SL
• Losing Trades: Signals where SL was hit before any TP
• Win Rate: Winning / Total × 100%
• Total R Profit: Sum of R-multiples from winning trades
• Total R Loss: Sum of R-multiples from losing trades
• Net R: Total R Profit - Total R Loss
Currency Conversion System:
AMWT can display P&L in multiple formats:
R-Multiple (Default)
• Shows risk-normalized returns
• "Net P&L: +4.2R | 78 trades" means 4.2 times initial risk gained over 78 trades
• Best for comparing across different position sizes
Currency Conversion (USD/EUR/GBP/JPY/INR)
• Converts R-multiples to currency based on:
- Dollar Risk Per Trade (user input)
- Tick Value (user input)
- Selected currency
Example Configuration:
Dollar Risk Per Trade: $100
Display Currency: USD
If Net R = +4.2R
Display: Net P&L: +$420.00 | 78 trades
Ticks
• For futures traders who think in ticks
• Converts based on tick value input
Statistics Reset:
Two reset methods:
1. Toggle Reset
• Turn "Reset Statistics" toggle ON then OFF
• Clears all statistics immediately
2. Date-Based Reset
• Set "Reset After Date" (YYYY-MM-DD format)
• Only trades after this date are counted
• Useful for isolating recent performance
🎨 VISUAL FEATURES
Macro Channel:
Dynamic regression-based channel showing market boundaries:
• Upper/lower bounds calculated from swing pivot linear regression
• Adapts to current market structure
• Shows overall trend direction and potential reversal zones
Chop Boxes:
Semi-transparent overlay during high-chop periods:
• Purple/orange coloring indicates dangerous conditions
• Visual reminder to avoid new positions
Confluence Heat Zones:
Background shading indicating setup quality:
• Darker shading = higher confluence
• Lighter shading = lower confluence
• Helps identify optimal entry timing
EMA Ribbon:
Trend visualization via moving average fill:
• EMA 8/21/50 with gradient fill between
• Green fill when bullish aligned
• Red fill when bearish aligned
• Gray when neutral
Absorption Zone Boxes:
Marks potential accumulation/distribution areas:
• High volume + small body = absorption
• Boxes drawn at these levels
• Often act as support/resistance
Liquidity Pool Lines:
BSL/SSL levels with labels:
• Dashed lines at liquidity clusters
• "BSL" label above swing high clusters
• "SSL" label below swing low clusters
Six Professional Themes:
• Quantum: Deep purples and cyans (default)
• Cyberpunk: Neon pinks and blues
• Professional: Muted grays and greens
• Ocean: Blues and teals
• Matrix: Greens and blacks
• Ember: Oranges and reds
🎓 PROFESSIONAL USAGE PROTOCOL
Phase 1: Learning the System (Week 1)
Goal: Understand AMWT concepts and dashboard interpretation
Setup:
• Signal Mode: Balanced
• Display: All features enabled
• Grade Filter: C (see all signals)
Actions:
• Paper trade ONLY—no real money
• Observe HMM state transitions throughout the day
• Note when agents agree vs disagree
• Watch chop detection engage and disengage
• Track which grades produce winners vs losers
Key Learning Questions:
• How often do A+ signals win vs B signals? (Should see clear difference)
• Which agent tends to be right in current market? (Check dashboard)
• When does chop detection save you from bad trades?
• How do signals near liquidity events perform vs signals in vacuum?
Phase 2: Parameter Optimization (Week 2)
Goal: Tune system to your instrument and timeframe
Signal Mode Testing:
• Run 5 days on Aggressive mode (more signals)
• Run 5 days on Conservative mode (fewer signals)
• Compare: Which produces better risk-adjusted returns?
Grade Filter Testing:
• Track A+ only for 20 signals
• Track A and above for 20 signals
• Track B and above for 20 signals
• Compare win rates and expectancy
Chop Threshold Testing:
• Default (80%): Standard filtering
• Try 70%: More aggressive filtering
• Try 90%: Less filtering
• Which produces best results for your instrument?
Phase 3: Strategy Development (Weeks 3-4)
Goal: Develop personal trading rules based on system signals
Position Sizing by Grade:
• A+ grade: 100% position size
• A grade: 75% position size
• B grade: 50% position size
• C grade: 25% position size (or skip)
Session-Based Rules:
• London/NY Overlap: Take all A/A+ signals
• NY Session: Take all A+ signals, selective on A
• Asian Session: Only A+ signals with extra confirmation
• Off-Hours: No new positions
Chop Zone Rules:
• Chop >70%: Reduce position size 50%
• Chop >80%: No new positions
• Chop <50%: Full position size allowed
Phase 4: Live Micro-Sizing (Month 2)
Goal: Validate paper trading results with minimal risk
Setup:
• 10-20% of intended full position size
• Take ONLY A+ signals initially
• Follow trade management religiously
Tracking:
• Log every trade: Entry, Exit, Grade, HMM State, Chop Level, Agent Consensus
• Calculate: Win rate by grade, by session, by chop level
• Compare to paper trading (should be within 15%)
Red Flags:
• Win rate diverges significantly from paper trading: Execution issues
• Consistent losses during certain sessions: Adjust session rules
• Losses cluster when specific agent dominates: Review that agent's logic
Phase 5: Scaling Up (Months 3-6)
Goal: Gradually increase to full position size
Progression:
• Month 3: 25-40% size (if micro-sizing profitable)
• Month 4: 40-60% size
• Month 5: 60-80% size
• Month 6: 80-100% size
Scale-Up Requirements:
• Minimum 30 trades at current size
• Win rate ≥50%
• Net R positive
• No revenge trading incidents
• Emotional control maintained
💡 DEVELOPMENT INSIGHTS
Why HMM Over Simple Indicators:
Early versions used standard indicators (RSI >70 = overbought, etc.). Win rates hovered at 52-55%. The problem: indicators don't capture state. RSI can stay "overbought" for weeks in a strong trend.
The insight: markets exist in states, and state persistence matters more than indicator levels. Implementing HMM with state transition probabilities increased signal quality significantly. The system now knows not just "RSI is high" but "we're in IMPULSE_UP state with 70% probability of staying in IMPULSE_UP."
The Multi-Agent Evolution:
Original version used a single analytical methodology—trend-following. Performance was inconsistent: great in trends, destroyed in ranges. Added mean-reversion agent: now it was inconsistent the other way.
The breakthrough: use multiple agents and let the system learn which works . Thompson Sampling wasn't the first attempt—tried simple averaging, voting, even hard-coded regime switching. Thompson Sampling won because it's mathematically optimal and automatically adapts without manual regime detection.
Chop Detection Revelation:
Chop detection was added almost as an afterthought. "Let's filter out obviously bad conditions." Testing revealed it was the most impactful single feature. Filtering chop zones reduced losing trades by 35% while only reducing total signals by 20%. The insight: avoiding bad trades matters more than finding good ones.
Liquidity Anchoring Discovery:
Watched hundreds of trades. Noticed pattern: signals that fired after liquidity events (stop runs, volume spikes) had significantly higher win rates than signals in quiet markets. Implemented liquidity detection and anchoring. Win rate on liquidity-anchored signals: 68% vs 52% on non-anchored signals.
The Grade System Impact:
Early system had binary signals (fire or don't fire). Adding grading transformed it. Traders could finally match position size to signal quality. A+ signals deserved full size; C signals deserved caution. Just implementing grade-based sizing improved portfolio Sharpe ratio by 0.3.
🚨 LIMITATIONS & CRITICAL ASSUMPTIONS
What AMWT Is NOT:
• NOT a Holy Grail : No system wins every trade. AMWT improves probability, not certainty.
• NOT Fully Automated : AMWT provides signals and analysis; execution requires human judgment.
• NOT News-Proof : Exogenous shocks (FOMC surprises, geopolitical events) invalidate all technical analysis.
• NOT for Scalping : HMM state estimation needs time to develop. Sub-minute timeframes are not appropriate.
Core Assumptions:
1. Markets Have States : Assumes markets transition between identifiable regimes. Violation: Random walk markets with no regime structure.
2. States Are Inferable : Assumes observable indicators reveal hidden states. Violation: Market manipulation creating false signals.
3. History Informs Future : Assumes past agent performance predicts future performance. Violation: Regime changes that invalidate historical patterns.
4. Liquidity Events Matter : Assumes institutional activity creates predictable patterns. Violation: Markets with no institutional participation.
Performs Best On:
• Liquid Futures : ES, NQ, MNQ, MES, CL, GC
• Major Forex Pairs : EUR/USD, GBP/USD, USD/JPY
• Large-Cap Stocks : AAPL, MSFT, TSLA, NVDA (>$5B market cap)
• Liquid Crypto : BTC, ETH on major exchanges
Performs Poorly On:
• Illiquid Instruments : Low volume stocks, exotic pairs
• Very Low Timeframes : Sub-5-minute charts (noise overwhelms signal)
• Binary Event Days : Earnings, FDA approvals, court rulings
• Manipulated Markets : Penny stocks, low-cap altcoins
Known Weaknesses:
• Warmup Period : HMM needs ~50 bars to initialize properly. Early signals may be unreliable.
• Regime Change Lag : Thompson Sampling adapts over time, not instantly. Sudden regime changes may cause short-term underperformance.
• Complexity : More parameters than simple indicators. Requires understanding to use effectively.
⚠️ RISK DISCLOSURE
Trading futures, stocks, options, forex, and cryptocurrencies involves substantial risk of loss and is not suitable for all investors. Adaptive Market Wave Theory, while based on rigorous mathematical frameworks including Hidden Markov Models and multi-armed bandit algorithms, does not guarantee profits and can result in significant losses.
AMWT's methodologies—HMM state estimation, Thompson Sampling agent selection, and confluence-based grading—have theoretical foundations but past performance is not indicative of future results.
Hidden Markov Model assumptions may not hold during:
• Major news events disrupting normal market behavior
• Flash crashes or circuit breaker events
• Low liquidity periods with erratic price action
• Algorithmic manipulation or spoofing
Multi-agent consensus assumes independent analytical perspectives provide edge. Market conditions change. Edges that existed historically can diminish or disappear.
Users must independently validate system performance on their specific instruments, timeframes, and broker execution environment. Paper trade extensively before risking capital. Start with micro position sizing.
Never risk more than you can afford to lose completely. Use proper position sizing. Implement stop losses without exception.
By using this indicator, you acknowledge these risks and accept full responsibility for all trading decisions and outcomes.
"Elliott Wave was a first-order approximation of market phase behavior. AMWT is the second—probabilistic, adaptive, and accountable."
Initial Public Release
Core Engine:
• True Hidden Markov Model with online Baum-Welch learning
• Viterbi algorithm for optimal state sequence decoding
• 6-state market regime classification
Agent System:
• 3-Bandit consensus (Trend, Reversion, Structure)
• Thompson Sampling with true Beta distribution sampling
• Adaptive weight learning based on performance
Signal Generation:
• Quality-based confluence grading (A+/A/B/C)
• Four signal modes (Aggressive/Balanced/Conservative/Institutional)
• Grade-based visual brightness
Chop Detection:
• 5-factor analysis (ADX, Choppiness Index, Range Compression, Channel Position, Volume)
• 7 regime classifications
• Configurable signal suppression threshold
Liquidity:
• Volume spike detection
• Stop run (liquidity sweep) identification
• BSL/SSL pool mapping
• Absorption zone detection
Trade Management:
• Trade lock with configurable duration
• TP1/TP2/TP3 targets
• ATR-based stop loss
• Persistent execution markers
Session Intelligence:
• Asian/London/NY/Overlap detection
• Smart weekend handling (Sunday futures open)
• Session quality scoring
Performance:
• Statistics tracking with reset functionality
• 7 currency display modes
• Win rate and Net R calculation
Visuals:
• Macro channel with linear regression
• Chop boxes
• EMA ribbon
• Liquidity pool lines
• 6 professional themes
Dashboards:
• Main Dashboard: Market State, Consensus, Trade Status, Statistics
📋 AMWT vs AMWT-PRO:
This version includes all core AMWT functionality:
✓ Full Hidden Markov Model state estimation
✓ 3-Bandit Thompson Sampling consensus system
✓ Complete 5-factor chop detection engine
✓ All four signal modes
✓ Full trade management with TP/SL tracking
✓ Main dashboard with complete statistics
✓ All visual features (channels, zones, pools)
✓ Identical signal generation to PRO
✓ Six professional themes
✓ Full alert system
The PRO version adds the AMWT Advisor panel—a secondary dashboard providing:
• Real-time Market Pulse situation assessment
• Agent Matrix visualization (individual agent votes)
• Structure analysis breakdown
• "Watch For" upcoming setups
• Action Command coaching
Both versions generate identical signals . The Advisor provides additional guidance for interpreting those signals.
Taking you to school. - Dskyz, Trade with probability. Trade with consensus. Trade with AMWT.
Flux Momentum Oscillator[BullByte]Flux Momentum Oscillator is a professional-grade momentum analysis system built on an original methodology called Momentum Flux Bars (MFB). Unlike conventional oscillators that measure momentum over fixed time periods, this indicator constructs synthetic momentum bars based on actual price movement, creating a pure representation of directional pressure independent of time-based noise.
This is NOT a mashup or combination of existing indicators. The entire system is built from the ground up around a single cohesive concept: measuring momentum through price-triggered synthetic bars rather than time-triggered calculations.
CORE INNOVATION: MOMENTUM FLUX BARS (MFB)
Traditional momentum indicators calculate values at fixed time intervals, which means a slow, grinding move receives the same measurement weight as a fast, explosive move occurring over the same number of bars. This creates distortion in momentum readings.
Momentum Flux Bars solve this problem by forming only when price travels a volatility-adjusted distance. Each MFB represents genuine directional commitment from market participants.
Key Properties of Momentum Flux Bars:
- Form based on price movement, not time passage
- Automatically adjust their formation threshold based on current volatility
- Capture the velocity of price movement (how quickly each bar forms)
- Record volume participation during formation
- Create a noise-filtered view of true market momentum
The oscillator then analyzes the pattern, velocity, and characteristics of recent MFB formations to produce its readings.
WHY THIS APPROACH MATTERS FOR TRADERS
Time-Based Problem: A 14-period RSI on a choppy day produces the same calculation structure as on a trending day, even though market behavior differs completely. The indicator cannot distinguish between meaningful moves and noise.
Flux-Based Solution: When price chops sideways, fewer MFBs form because price fails to travel the required distance. When price trends strongly, MFBs form rapidly in sequence. The oscillator inherently adapts to actual market behavior.
Practical Benefits:
- Cleaner signals during trending conditions
- Automatic noise reduction during consolidation
- Earlier detection of momentum shifts through velocity analysis
- Reduced false signals in choppy markets
- No manual adjustment needed across different market conditions
COMPLETE FEATURE BREAKDOWN
FEATURE 1: AUTO-OPTIMIZATION ENGINE
The indicator includes an optional auto-optimization system that continuously evaluates different sensitivity parameters and selects the configuration producing the cleanest momentum measurement for current conditions.
How It Works:
- Tests multiple ATR multiplier values against recent price history
- Scores each configuration based on trend capture efficiency
- Automatically applies the optimal setting
- Re-evaluates periodically to adapt to changing conditions
Trader Benefit: Eliminates the guesswork of parameter tuning. The indicator finds its own optimal settings.
FEATURE 2: MARKET REGIME CLASSIFICATION
The system classifies current market conditions into four distinct regimes based on MFB formation patterns:
EXPLOSIVE: Rapid MFB formation with strong directional bias and high volume participation. Indicates powerful trending conditions with high momentum.
STEADY: Consistent MFB formation in a primary direction with normal velocity. Represents healthy, sustainable trends suitable for trend-following approaches.
CONSOLIDATING: Mixed direction MFB formation with decreasing velocity. Suggests range-bound conditions where breakout strategies may be appropriate.
DEAD: Minimal MFB formation activity. Indicates extremely low volatility or market indecision. Often precedes significant moves.
Trader Benefit: Instantly understand current market character and adjust strategy accordingly.
FEATURE 3: VELOCITY DIVERGENCE DETECTION
This advanced feature monitors the formation speed of Momentum Flux Bars and compares it against price direction.
Velocity Divergence Bearish: Price making higher highs but MFBs forming progressively slower. Suggests buying pressure is weakening despite higher prices.
Velocity Divergence Bullish: Price making lower lows but MFBs forming progressively slower. Suggests selling pressure is weakening despite lower prices.
Trader Benefit: Early warning system for potential reversals before they appear on price charts.
FEATURE 4: MOMENTUM EXHAUSTION DETECTION
The system identifies when a trending move may be running out of energy by analyzing the duration pattern of consecutive same-direction MFBs.
Exhaustion Pattern: When each successive MFB in a trend takes progressively longer to form, it indicates diminishing momentum even though direction remains unchanged.
States Displayed:
- BUILDING: Momentum is increasing or stable
- PEAK: Maximum momentum velocity reached
- EXHAUSTING: Progressive slowdown detected
Trader Benefit: Know when a trend is losing steam before price reverses.
FEATURE 5: HIGHER TIMEFRAME ALIGNMENT
The indicator checks whether higher timeframe MFB direction supports or conflicts with current timeframe momentum.
ALIGNED BULL: Both timeframes showing bullish MFB direction
ALIGNED BEAR: Both timeframes showing bearish MFB direction
DIVERGENT: Timeframes showing opposing directions
NEUTRAL: Higher timeframe direction unclear
Trader Benefit: Trade with higher timeframe support for higher probability setups.
FEATURE 6: CHOPPY MARKET DETECTION
A dedicated algorithm analyzes recent MFB patterns to determine if the market is in a choppy, directionless state.
Detection Factors:
- Frequency of direction changes in recent MFBs
- Lack of consecutive same-direction formations
- Weak directional bias in the MFB sequence
Trader Benefit: Avoid trend-following strategies when market conditions do not support them.
FEATURE 7: TREND STRENGTH MEASUREMENT
A percentage-based strength reading derived from MFB pattern analysis.
Flux Momentum Oscillator Chart Example
Chart Overview: Bitcoin 15-Minute Chart (Dec 21, 2025)
BTCUSD Market Snapshot
Price: $88,854.53 | Oscillator: 77.38 | Direction: BULLISH | Regime: EXPLOSIVE
1. EXPLOSIVE REGIME DETECTION (Current State - Right Side)
2. MOMENTUM EXHAUSTION ZONE (Mid-Chart)
3. CHOP/CONSOLIDATION PERIOD (Before Breakout)
4. VELOCITY DIVERGENCE (Around 21:00 the previous day)
5. BULLISH MOMENTUM SHIFT (Around 09:00)
6. FORMATION PROGRESS BAR (Bottom of Oscillator)
7. TREND STRENGTH INDICATOR (Bottom Bar)
8. EXTREME ZONES (Top and Bottom Boundaries)
Reading Interpretation:
- Above 70%: Strong trending conditions
- 40% to 70%: Moderate trend or developing move
- Below 40%: Weak trend or choppy conditions
Visual representation provided via the strength bar at the bottom of the indicator panel.
HOW TO READ THE OSCILLATOR PLOT
OSCILLATOR LINE (Main Line):
- Ranges from -100 to +100
- Above zero indicates bullish momentum
- Below zero indicates bearish momentum
- Color intensity reflects momentum direction and strength
- Glow effect (optional) enhances visibility of the main reading
SIGNAL LINE (Secondary Line):
- Smoothed version of the oscillator
- Crossovers indicate momentum shifts
- Purple/accent colored for visual distinction
HISTOGRAM BARS:
- Represent the difference between oscillator and signal line
- Increasing histogram in direction of oscillator confirms momentum
- Decreasing histogram warns of potential momentum shift
- Bright colors indicate increasing momentum
- Faded colors indicate decreasing momentum
ZONE INTERPRETATION:
+75 to +100 (Extreme Bullish Zone):
Very strong bullish momentum. Price has moved significantly and rapidly. Watch for exhaustion patterns. Not ideal for new long entries. Consider profit-taking on existing longs.
+50 to +75 (Strong Bullish Zone):
Healthy bullish momentum. Good conditions for trend-following long strategies. Pullbacks to signal line often provide continuation opportunities.
0 to +50 (Mild Bullish Zone):
Positive but moderate momentum. Trend may be developing or maturing. Watch for strength building or fading.
0 to -50 (Mild Bearish Zone):
Negative but moderate momentum. Downtrend may be developing or maturing. Watch for weakness building or recovering.
-50 to -75 (Strong Bearish Zone):
Healthy bearish momentum. Good conditions for trend-following short strategies. Rallies to signal line often provide continuation opportunities.
-75 to -100 (Extreme Bearish Zone):
Very strong bearish momentum. Price has moved significantly and rapidly to downside. Watch for exhaustion patterns. Not ideal for new short entries. Consider profit-taking on existing shorts.
HOW TO READ THE DASHBOARD
The dashboard provides comprehensive market analysis at a glance. Each row displays specific information:
OSCILLATOR ROW:
Shows current oscillator value with directional icon.
indicates reading above +50 (High)
indicates reading below -50 (Low)
DIRECTION ROW:
Current MFB direction.
BULLISH: Recent MFB formed upward
BEARISH: Recent MFB formed downward
NEUTRAL: No recent MFB or unclear
REGIME ROW:
Current market regime classification.
EXPLOSIVE / STEADY / CONSOLIDATING / DEAD
Color coded for quick recognition.
MARKET ROW:
Trend state assessment.
TRENDING UP: Confirmed uptrend in progress
TRENDING DN: Confirmed downtrend in progress
CHOPPY: No clear trend, high direction changes
MIXED: Partial trend characteristics
STRENGTH ROW:
Visual bar showing trend strength percentage.
More filled bars indicate stronger trend.
Color shifts from red (weak) to yellow (moderate) to green (strong).
VELOCITY ROW:
MFB formation speed status.
ACCELERATING: MFBs forming faster over time
STEADY: Consistent formation speed
DECELERATING: MFBs forming slower over time
MOMENTUM ROW:
Momentum development status.
BUILDING: Momentum increasing
PEAK: Maximum momentum reached
EXHAUSTING: Momentum declining despite same direction
HTF ALIGN ROW:
Higher timeframe alignment status.
BULL: HTF supports bullish bias
BEAR: HTF supports bearish bias
DIVERGENT: HTF opposes current direction
NEUTRAL: HTF unclear
FORMING ROW:
Progress toward next MFB formation.
Visual bar fills as price approaches formation threshold.
Helps anticipate when next MFB will complete.
Additional rows (when not in Compact Mode):
- Flux Size: Current MFB formation threshold value
- ATR Mult: Current optimized ATR multiplier (when auto-optimization enabled)
- Regime %: Numerical regime score
FORMATION PROGRESS INDICATOR
The horizontal line near the bottom of the indicator panel shows progress toward the next MFB formation.
Reading the Progress Line:
- Starts at baseline after each MFB completion
- Rises as price moves toward formation threshold
- Higher position indicates imminent MFB formation
- Color changes from neutral to accent to warning as formation approaches
Practical Use:
- Anticipate when new momentum data will become available
- Gauge intra-bar momentum development
- Understand why signals occur when they do
TREND STRENGTH BAR
The horizontal bar at the very bottom of the indicator displays trend strength visually.
Components:
- Gray background bar represents full scale (0-100%)
- Colored fill represents current strength reading
- Label displays exact percentage value
Color Interpretation:
- Green fill: Strong trend (above 70%)
- Yellow fill: Moderate trend (40-70%)
- Red fill: Weak trend (below 40%)
RECOMMENDED USAGE GUIDELINES
TIMEFRAME RECOMMENDATIONS:
Scalping (1m to 5m):
- Use lower Flux Period (8-10) for faster response
- Focus on oscillator crossovers and histogram momentum
- Regime should be STEADY or EXPLOSIVE for best results
Day Trading (5m to 30m):
- Default settings work well
- Use HTF alignment with 1H or 4H for confirmation
- Avoid trading when regime shows DEAD
Swing Trading (1H to 4H):
- Consider higher Flux Period (18-21) for smoother signals
- Regime classification becomes very valuable
- Velocity divergence provides excellent early warnings
Position Trading (Daily and above):
- Higher Flux Period (21-30) recommended
- Focus on regime changes and exhaustion patterns
- HTF alignment less relevant, oscillator zones more important
ASSET CLASS NOTES:
Forex: Works well on major pairs. Consider slightly higher sensitivity on less volatile pairs.
Crypto: Higher volatility may require lower sensitivity multiplier. Regime detection particularly useful.
Stocks: Excellent for liquid stocks. Less effective on illiquid names due to gappy price action.
Indices: Very effective. Clean price action produces clean MFB patterns.
Commodities: Works well, especially on gold and oil. Adjust sensitivity for different volatility profiles.
SETTINGS OVERVIEW
MODE AND THEME:
- Trading Mode: Simple (clean), Pro (full data), Hybrid (balanced)
- Visual Theme: Dark, Light, Neon, Stealth
- Compact Dashboard: Reduces dashboard rows
FLUX ENGINE:
- Flux Calculation Method: Choose optimization approach
- Enable Auto-Optimization: Let indicator find optimal parameters
- Flux Period: Base volatility calculation period
- Sensitivity Multiplier: Adjust MFB formation threshold
- Optimization Lookback: Bars analyzed for optimization
- Optimization Frequency: How often to re-optimize
OSCILLATOR:
- Oscillator Smoothing: Main line smoothness
- Signal Line Length: Signal line responsiveness
- Momentum Depth: MFBs analyzed for oscillator
- Histogram Scale: Visual scaling of histogram
MARKET STATE:
- Chop Detection Window: MFBs analyzed for chop detection
- Chop Threshold: Sensitivity of chop classification
- Min Trend Confirmation: Consecutive bars for trend confirmation
ADVANCED ANALYSIS:
- Enable Regime Classification: Market regime detection
- Enable Velocity Divergence: Formation speed analysis
- Enable Exhaustion Detection: Trend exhaustion warnings
- Enable HTF Alignment: Higher timeframe checking
- Higher Timeframe: Which timeframe to check
VISUALS:
- Glow Effect: Visual enhancement on oscillator
- Show Zone Fills: Background zone coloring
- Show Formation Progress: Progress indicator display
- Show Trend Strength Bar: Bottom strength bar
- Show Dashboard: Information panel display
- Dashboard Position: Corner placement
SIGNAL INTERPRETATION GUIDELINES
BULLISH MOMENTUM SHIFT:
Oscillator crosses above signal line while not in extreme bearish territory.
Suggests emerging bullish momentum.
Stronger when occurring near zero line or in mild bearish zone.
BEARISH MOMENTUM SHIFT:
Oscillator crosses below signal line while not in extreme bullish territory.
Suggests emerging bearish momentum.
Stronger when occurring near zero line or in mild bullish zone.
STRONG TREND CONDITIONS:
Oscillator beyond +/-55, in direction of signal line, trend strength above 55%, not choppy.
Indicates conditions favorable for trend-following approaches.
EXTREME ZONES:
Oscillator beyond +/-75.
Diamond markers appear.
Exercise caution with new positions in trend direction.
Watch for exhaustion and divergence signals.
ALERT SYSTEM
The indicator includes comprehensive alerts for automated monitoring:
Momentum Alerts:
- Bullish Momentum Shift
- Bearish Momentum Shift
- Strong Uptrend Initiated
- Strong Downtrend Initiated
Zone Alerts:
- Extreme Bullish Zone Reached
- Extreme Bearish Zone Reached
Market State Alerts:
- Choppy Conditions Detected
- Choppy Conditions Cleared
- Explosive Regime Entered
- Dead Regime Entered
Advanced Alerts:
- Velocity Divergence Detected
- Exhaustion Warning Triggered
- HTF Aligned Bullish
- HTF Aligned Bearish
- HTF Divergence Detected
MFB Alerts:
- Bullish MFB Formed
- Bearish MFB Formed
WHAT THIS INDICATOR IS NOT
This indicator is NOT:
- A buy/sell signal generator (it provides momentum context, not trade signals)
- A standalone trading system (combine with price action and other analysis)
- A guarantee of profitability (no indicator can guarantee results)
- A replacement for risk management (always use proper position sizing and stops)
- A mashup of existing indicators (this is original methodology)
ORIGINALITY STATEMENT
The Momentum Flux Bars concept was designed specifically to address limitations of time-based momentum calculations.
Every component of this system serves the central MFB methodology:
- The oscillator measures MFB directional weight
- The regime classifier interprets MFB patterns
- The velocity analysis tracks MFB formation speed
- The exhaustion detector monitors MFB duration progression
- The HTF alignment checks MFB direction across timeframes
This is a unified analytical framework, not a collection of separate indicators.
TECHNICAL NOTES
Non-Repainting Confirmation:
All signal generation uses confirmed bar data only. MFB formations occur on bar close. Historical signals will not change after they appear.
Performance Considerations:
Auto-optimization runs periodically, not every bar, to maintain performance.
MFB history is trimmed to prevent memory issues on extended sessions.
Reduce Max MFB History if experiencing performance issues.
Symbol and Timeframe Handling:
The indicator resets its MFB history when symbol or timeframe changes.
This ensures clean analysis without carryover from previous contexts.
DISCLAIMER
This indicator is provided for educational and informational purposes only. It is not financial advice and should not be considered as such.
Trading involves substantial risk of loss. Past performance of any trading methodology or indicator does not guarantee future results. The author makes no representations regarding the profitability or suitability of this indicator for any particular purpose.
Users are solely responsible for their own trading decisions. Always use proper risk management, including appropriate position sizing and stop-loss orders. Never risk more than you can afford to lose.
Before using this or any indicator in live trading, thoroughly test it on historical data and in a demo environment. Understand its behavior across different market conditions.
The author is not liable for any losses incurred through the use of this indicator.
Developed by BullByte
Version 1.0.0
A Physicist's Bitcoin Trading Strategy
1. Summary
This strategy and indicator were designed for, and intended to be used to guide trading activity in, crypto markets, particularly Bitcoin. This strategy uses a custom indicator to determine the state of the market (bullish vs bearish) and allocates funds accordingly. This particular variation also uses the custom indicator to determine when the market is significantly oversold and takes advantage of the opportunity (it buys the dip). The specific mathematical formula that is used to calculate the underlying custom indicator allows the trader to get in before, or near the start of, the bull trends, and get out before the bear trends. The strategy's properties dialogue box includes many display settings and parameters for optimization and customization to meet the user's needs and risk tolerance; this is both a tool to gauge the market, as well as a trading strategy to beat the market. Guidelines for parameter settings are provided. A sample dataset of backtest results using randomized parameters, both within the guidelines and outside the guidelines, is available upon request; notably, all trials outperformed the intended market (Bitcoin) during the 9-year backtest period.
2. The Indicator and Strategy
2.1. The Indicator
A mathematical formula is used to determine the state of the market according to three different "frequencies", which, for lack of better terminology, are called fast, moderate, and slow indicators. There are two parameters for each of the three indicators, one called response time and the other is a simple look-back period. Finally, four exponential moving averages are used to smooth each indicator. In total, there are 18 different levels of bullishness/bearishness. The purpose of using three indicators, rather than one, is to capture the full character of the market, from a macro/global scope down to a micro/local scope. I.e. the full indicator looks at the forest, the trees, and the branches, simultaneously.
2.2. The Strategy
The trend-trading strategy is very simple; there are only four types of orders: 1) The entire position (e.g. all bitcoins held) is sold (if it hasn't already been totally sold) when the indicator becomes maximally bearish, 2) When the movement of the indicator is in the bullish direction, the strategy dollar-cost-average (DCA) buys at an exponentially decreasing rate, i.e. it buys more in the early stages of the transition from bear->bull. 3) When the indicator is maximally bullish, it goes "all-in" † (if it hasn't already gone all-in), i.e. it converts all available cash into the underlying security/token. And, 4) when the movement of the indicator is in the bearish direction, the strategy DCA sells (again, exponentially decreasing) to get out quickly. No leverage is used in this strategy. The strategy never takes a short position.
A second "buy-the-dip" strategy is also used, and it is the synergy of these two strategies, together, that is responsible for most of the outperformance in the backtests (this strategy handily beats the non-dip-buying variation in backtests). To do this, the custom indicator is used to determine when the market is significantly oversold on a short-term basis, and the strategy responds by DCA buying. However, unlike the DCA buying during bull/bear transitions, the buy-the-dip DCA buying increases with time. Specifically, within each candle that is short-term oversold, the strategy converts 10% x # of candles since becoming oversold (up to a max of 6 candles) of available cash into the underlying security/token. I.e. the first buy is 10% of available cash and occurs in the first oversold candle, the second buy is 20% of available cash and occurs in the second oversold candle, etc. up to six consecutive oversold candles. Lastly, to ensure no conflicting orders and no leverage (buying more than what is affordable with the available cash in the fund), buy-the-dip orders take precedence over the trend-trading orders enumerated in the previous paragraph.
† Technically the strategy goes 99.5% in when it goes "all-in". This is to ensure no leverage is used given that there may be a commission of 0.5%.
3. Backtest Results
Backtest results demonstrate significant outperformance over buy-and-hold. The default parameters of the strategy/indicator have been set by the author to achieve maximum (or, close to maximum) outperformance on backtests executed on the BTCUSD (Bitcoin) chart. However, significant outperformance over buy-and-hold is still easily achievable using non-default parameters. Basically, as long as the parameters are set to adequately capture the full character of the market, significant outperformance on backtests is achievable and is quite easy. In fact, after some experimentation, it seems as if underperformance hardly achievable and requires deliberately setting the parameters illogically (e.g. setting one parameter of the slow indicator faster than the fast indicator). In the interest of providing a quality product to the user, suggestions and guidelines for parameter settings are provided in section (6). Finally, some metrics of the strategy's outperformance on the BTCUSD chart are listed below, both for the default (optimal) parameters as well as for a random sample of parameter settings that adhere to the guidelines set forth in section (6).
Using the default parameters, relative to buy-and-hold strategy, backtested from August 2011 to August 2020,
Total cumulative outperformance (total return of strategy minus total return of buy-n-hold): 13,000,000%.
Rolling 1-year outperformance: mean 318%, median 84%, 1st quartile 55%, 3rd quartile, 430%.
Rolling 1-month outperformance: mean 2.8% (annualized, 39%), median -2.1%, 1st quartile -7.7%, 3rd quartile 13.2%, 10th percentile -13.9%, 90th percentile 24.5%.
Using the default parameters, relative to buy-and-hold strategy, during specific periods,
Cumulative outperformance during the past year (August 2019-August 2020): 37%.
12/17/2016 - 12/17/2017 (2017 bull market) absolute performance of 2563% vs buy-n-hold absolute performance of 2385%
11/29/2012 - 11/29/2013 (2013 bull market) absolute performance of 14033% vs buy-n-hold absolute performance of 9247%
Using a random sample (n=20) of combinations of parameter settings that adhere to the guidelines outlined in section (6), relative to buy-and-hold strategy, backtested from August 2011 to August 2020,
Average total cumulative outperformance, from August 2011 to August 2020: 2,000,000%.
Median total cumulative outperformance, from August 2011 to August 2020: 1,000,000%.
4. Limitations
This strategy is basically a DCA-swing trading strategy, and as such it is intended to be used on the 6-hr chart. Similar performance is expected on daily chart, 12-hr chart, and 4-hr chart, but performance is likely to be limited when used on charts of shorter time-frames. However, due to the flexibility afforded by the large quantity of parameters, as well as the tools included, it may be possible to tweak the indicator settings to get some outperformance on smaller time-frames. Admittedly, the author did not spend much time investigating this.
As is apparent in the backtests, this strategy has very limited absolute performance during large bear markets, such as Bitcoin's 2018 bear market. As described, it does outperform the underlying security by a large amount in backtests, but a large absolute return is unlikely during large and prolonged declines (unless, of course, your unit of account is the underlying token, in which case an outperformance of the underlying is, by definition, an absolute positive return).
This strategy is likely to underperform if used to trade ETFs of broad equity markets. This strategy may produce a small amount of outperformance when used to trade precious metals ETFs, given that the parameters are set optimally by the user.
5. Use
The default parameters have already been set for highly optimal backtest results on the chart of BTCUSD (Bitcoin / US Dollar BITSTAMP), (although, a different combination of parameter settings may yet produce better results). Still, there is a great number of combinations that can be explored, so the user is free to tweak the settings to meet his/her/their needs. Some display options are provided to give the user a visual aid while tweaking the parameters. These include a blue/red background display of the custom indicator, a calibration system, and options to display information about the backtest results. The background pattern represents the various levels of bullishness/bearishness as semi-transparent layers of blue and red, with blue corresponding with bullish and red corresponding with bearish.
The parameters that affect the indicator are the response times, the periods, and some EMA lengths. The parameters that affect the quantity of contracts (tokens/shares/bitcoins/etc) to be bought/sold are the transitionary buy/sell rates. There are also two sets of date parameters.
The response time and period parameters are direct inputs into the underlying math formula and are used to create the base-level indicators (fast, moderate, and slow). The response times control the speed of each of the three indicators (shorter is fast, longer is slower) and the period controls how much historical data is used in computation. Information about how these should be set are included in section (6). Another set of parameters control EMA look-back periods that serve to smooth the base-level indicators. Increasing these EMA lengths makes the overall indicator less sensitive to short-term price action, while reducing them does the opposite. The effect of these parameters are obvious when the background blue/red visualization is displayed. Another EMA length is an EMA for the entire indicator. Increasing this parameter reduces the responsiveness of the trading strategy (buy/sell orders) to quick/small changes of the overall level of the indicator, so as to avoid unnecessary buying and selling in times of relatively small and balanced price perturbations. Note, changing this parameter does not have an effect on the overall indicator itself, and thus will not affect the blue/red background representation.
The transitionary buy/sell rates control the portion of the available asset to be converted to the other. E.g. if the buy rate is set to 90%, then 90% of the available cash will be used to buy contracts/tokens/shares/bitcoins during transitions bullish transitions, e.g. if the available cash at the start of the bullish transition is $10,000 and the parameter is set to 90%, then $9,000 will be used to buy in the first candle during which the transition is bullish, then $900 will be used to buy in the second candle, then $90 in the third candle, etc.
There are two dates that can be set. The first is the date at which the strategy goes all in. This is included because the buy-and-hold strategy is the benchmark against which this strategy is compared, so setting this date to some time before the strategy starts to make trades will show, very clearly, the outperformance of the strategy, especially when the initial capital parameter in the Properties tab is equal to the price of one unit of the underlying security on the date that is set, e.g. all-in on Bitcoin on 8/20/2011 and set initial capital to the BTCUSD price on that date, which was $11.70. The second date is a date to control when the strategy can begin to place trades.
Finally (actually, firstly in the Inputs dialogue box), a set of checkbox inputs controls whether or not the backtest is on or off, and what is displayed. The display options are the blue/red (bull/bear) background layers †, a set of calibrators, a plot of the total strategy equity, a plot of the cash position of the strategy, a plot of the size of the position of the strategy in contracts/shares/units (labeled as BTC position), and a plot of the rolling 1-year performances of buy-and-hold and the strategy.
About the calibrators: The calibration system allows the user to quickly assess and calibrate how well the indicator... indicates. Quite simply, the system has two parts: one plot that is the cumulative sum of the product of the indicator level and the change in the underlying price, i.e. sum of ‡, over all candles. The second part is a similar plot that is reduced according to the quickness with which the indicator changes, i.e. sum of . Maximizing the first plot at the expense of the second will cause the indicator to match the price action very well but therefore it will change very rapidly, from bullish to bearish, which is visualized by a background pattern that changes frequently from blue to red to blue. Ignoring the first plot and maximizing the second will also cause the indicator to more closely match the price action, but the transitions will be slower and less frequent, and will therefore focus on identifying the major trends of the market.
† The blue/red background has many layers and will make the chart lag as the user interacts with it.
‡ Bearish states are coded as negative quantities, so a bearish state x negative price action = positive number, and bullish state x positive price action = positive number.
6. Suggestions and Guidelines
As described in section (2.1), the indicator used in this strategy was designed to determine the state of the market--whether it is bullish or bearish--as well as the change in the state of the market--whether it is increasingly bullish or increasingly bearish. As such, the following suggestions are provided based on the principles of the indicator's design,
1. Response Time 1 should be less than (<) Response Time 2 which should be < Response Time 3
2. Fast Period < Moderate Period < Slow Period
3. In terms of the period of a full market cycle (e.g. ~ 4 years for BTC, ~ 5.5 years for equities, etc.), response times 1, 2, and 3 should be about 0.3% to 1%, 3% to 20%, and 20% to 50% of a full market cycle period, respectively. However, this is a loose guideline.
4. In terms of the period of a full market cycle, periods 1, 2, and 3 should all be about 25% to 75% of a full cycle period. Again, this is a loose guideline.
4. EMA 1 Length < EMA 2 Length < EMA 3 Length < EMA 4 Length
5. EMA Lengths 1, 2, 3, and 4 should be limited to about 1/4th the length of a full market cycle. Note, EMA lengths are measured in bars (candles), not in days. 1/4th of 1000 days is 250 days which is 250 x 4 = 1000 6-hr candles.
The following guidelines are provided based on results of over 100 backtests on the BTCUSD chart using randomized parameters †,
1. 9 days < Response Time 1 < 14 days
2. 5 days < EMA 1 Length < 100 days
3. 600 days < EMA 4 length < 1000 days
4. The ratio of the EMA range (EMA 4 len - EMA 1 len) to the sum of EMA lengths (EMA 1 len + EMA 2 len + ...) be greater than 0.4
5. The ratio of the sum of EMA 1 and EMA 2 lengths to the sum of EMA 3 and EMA 4 lengths be less than 0.3.
A suggestion from the author: Given that backtests show a high degree of outperformance using the guidelines enumerated above, a good trading strategy may be to not rely on any one particular combination of parameters. Rather, a random set of combinations of parameter settings that adhere to the guidelines above could be used to create multiple instances of the strategy in a TradingView chart, each of which varies by a small amount due to their unique parameter settings. The proportion of the entire set of strategy instances that agree about the current state of the market could indicate to the trader the level of confidence of the indicator, in aggregate.
† A sample dataset of backtest results using randomized parameters is available upon request; notably, all trials outperformed the intended market (Bitcoin).
7. General Remarks About the Indicator
Other than some exponential moving averages, no traditional technical indicators or technical analysis tools are employed in this strategy. No MACD, no RSI, no CMF, no Bollinger bands, parabolic SARs, Ichimoku clouds, hoosawatsits, XYZs, ABCs, whatarethese. No tea leaves can be found in this strategy, only mathematics. It is in the nature of the underlying math formula, from which the indicator is produced, to quickly identify trend changes.
8. Remarks About Expectations of Future Results and About Backtesting
8.1. In General
As it's been stated in many prospectuses and marketing literature, "past performance is no guarantee of future results." Backtest results are retrospective, and hindsight is 20/20. Therefore, no guarantee can, nor should, be expressed by me or anybody else who is selling a financial product (unless you have a money printer, like the Federal Reserve does).
8.2. Regarding This Strategy
No guarantee of future results using this strategy is expressed by the author, not now nor at any time in the future.
With that written, the author is free to express his own expectations and opinions based on his intimate knowledge of how the indicator works, and the author will take that liberty by writing the following: As described in section (7), this trading strategy does not include any traditional technical indicators or TA tools (other than smoothing EMAs). Instead, this strategy is based on a principle that does not change, it employs a complex indicator that is based on a math formula that does not change, and it places trades based on five simple rules that do not change. And, as described in section (2.1), the indicator is designed to capture the full character of the market, from a macro/global scope down to a micro/local scope. Additionally, as described in section (3), outperformance of the market for which this strategy was intended during backtesting does not depend on luckily setting the parameters "just right." In fact, all random combinations of parameter settings that followed the guidelines outperformed the intended market in backtests. Additionally, no parameters are included within the underlying math formula from which the indicator is produced; it is not as if the formula contains a "5" and future outperformance would depend on that "5" being a "6" instead. And, again as described, it is in the nature of the formula to quickly identify trend changes. Therefore, it is the opinion of the author that the outperformance of this strategy in backtesting is directly attributable to the fundamental nature of the math formula from which the indicator is produced. As such, it is also the opinion of the author that continued outperformance by using this strategy, applied to the crypto (Bitcoin) market, is likely, given that the parameter settings are set reasonably and in accordance with the guidelines. The author does not, however, expect future outperformance of this strategy to match or exceed the outperformance observed in backtests using the default parameters, i.e. it probably won't outperform by anything close to 13,000,000% during the next 9 years.
Additionally, based on the rolling 1-month outperformance data listed in section (3), expectations of short-term outperformance should be kept low; the median 1-month outperformance was -2%, so it's basically a 50/50 chance that any significant outperformance is seen in any given month. The true strength of this strategy is to be out of the market during large, sharp declines and capitalizing on the opportunities presented at the bottom of those declines by buying the dip. Given that such price action does not happen every month, outperformance in the initial months of use is approximately as likely as underperformance.
9. Access
Those who are interested in using this strategy may send a personal message to inquire about how to gain access. Those who are interested in acquiring the sample dataset of backtest results may send a personal message to request a copy of the data.
MTF Confluence Reporter - Trend & Momentum AlignmentThis indicator is a multi-timeframe confluence dashboard designed to answer one question clearly:
“Across my key timeframes, is the market leaning Bullish, Bearish, or Mixed—and how strong is that lean?”
It combines two separate “votes” per timeframe:
4MA Direction (trend alignment / slope bias)
StochRSI State (momentum bias)
Those votes are then blended into a single Confluence result, shown as a clean readout with a 0–100 Strength score, plus hysteresis to reduce flicker near the decision boundary.
What you see in the table
1) 4MA
This is the trend component. It summarizes whether the selected timeframes are generally Bull or Bear based on the moving-average direction logic (your 4MA engine).
2) Stoch
This is the momentum component. It summarizes whether StochRSI across the selected timeframes is leaning Bull or Bear.
3) Qualified (YES/NO)
A safety gate. “Qualified = YES” means the internal conditions required for a valid confluence read are met (i.e., enough alignment/consistency to treat the output as actionable).
If it’s NO, treat the market as mixed / transitional and tighten risk.
4) Strength (0–100)
Your blended score (trend + momentum).
Higher = stronger agreement across timeframes.
A simple way to interpret it:
80–100: Strong alignment (clean regime)
60–79: Moderate alignment (tradable, but expect chop)
50–59: Weak / transitioning (be cautious)
< 50: Bearish side of the regime logic (or mixed turning down)
5) Strength Bar
A visual “battery meter” for the Strength score. This is meant to be read at a glance during fast decision-making.
6) Confluence (BULL/BEAR)
The actual regime output. This is the “final answer” based on the Strength score and hysteresis rules.
7) Hysteresis (Enter / Exit thresholds)
This is the anti-flicker system.
Example shown on the chart:
Enter > 60
Exit < 50
Meaning:
The script only “flips ON” a Bull regime when strength becomes convincingly Bullish (above 60).
It won’t “flip OFF” until strength meaningfully weakens (below 50).
This reduces rapid flipping during 50/50 conditions.
How to use it (practical workflow)
Step 1 — Use Confluence as your “market mode”
BULL: Favor longs, trend-following entries, buying pullbacks.
BEAR: Favor defense, shorts/hedges (if you trade them), or wait for reset.
Qualified = NO: Reduce size, tighten stops, or wait—conditions are not clean.
Step 2 — Use Strength to time aggressiveness
Strength rising: Momentum is joining trend → entries tend to have better follow-through.
Strength falling: Alignment is fading → take profit quicker or tighten risk.
Step 3 — Use hysteresis as your “noise filter”
If you’re a swing trader, hysteresis is your friend:
Don’t overreact to a single bar change.
Let the regime confirm and stay confirmed.
Best use-cases
Swing trading / position bias (daily/weekly context)
Hedge decisions (when alignment flips and stays flipped)
Filtering entries from other tools (only take signals that match the regime)
Settings notes:
This script is designed to be flexible:
You can choose which timeframes matter most to you (commonly 1H / 4H / 1D / 1W / 1M).
If your version includes weighting, you can tune weights to match your trading style (short-term vs swing).
Thresholds (Enter/Exit) can be tightened for faster flips or widened for smoother regimes.
Important notes / disclaimer (TradingView-safe)
This tool is an informational confluence dashboard, not financial advice. No indicator can predict the future. Always confirm with market structure, risk management, and your own plan. Past behavior on a chart does not guarantee future results.
How I Use This Indicator (Example Workflow)
I use this tool primarily as a market-bias and risk-filter, not as a standalone entry signal.
Establish the regime first
I start by checking the Confluence row:
BULL: I focus on long-side ideas and bullish continuation setups.
BEAR: I become defensive, avoid counter-trend trades, or look for short/hedge opportunities where applicable.
Qualified = NO: I treat the market as transitional and reduce risk.
Use Strength to adjust aggressiveness
When Strength is elevated and rising, I am more comfortable holding positions and allowing trades more room to develop.
When Strength is declining, I tighten stops, reduce position size, or manage trades more actively.
Let hysteresis do the work
I do not react to every minor fluctuation near the midpoint.
The built-in hysteresis thresholds help me stay aligned with the prevailing regime instead of over-trading during indecision.
Entries come from other tools
Actual entries are taken using price structure, support/resistance, or other indicators.
This dashboard simply tells me whether the broader environment supports that idea or not.
In short, I treat this indicator as a context and confirmation layer—it helps answer when to be aggressive, cautious, or patient.
Institutional Confluence Mapper [JOAT]Institutional Confluence Mapper (ICM)
Introduction
The Institutional Confluence Mapper is an open-source multi-factor analysis tool that combines five analytical modules into a unified confluence scoring system. It synthesizes institutional trading concepts including Relative Rotation analysis, Smart Money flow detection, Liquidity zone mapping, Session-based timing, and Volatility regime classification.
Rather than relying on a single indicator, ICM evaluates market conditions through multiple lenses simultaneously, presenting a clear confluence score (0-100%) that reflects the alignment of various market factors.
This script is fully open-source under the Mozilla Public License 2.0.
Originality and Purpose
This indicator is NOT a random mashup of existing indicators. It is an original implementation that creates a unified institutional analysis framework:
Why Multiple Modules? Most retail traders struggle because they rely on single indicators that provide conflicting signals. Institutional traders evaluate markets through multiple frameworks simultaneously. ICM bridges this gap by providing a unified view of complementary analysis methods.
The Confluence Scoring System: Each module contributes to a weighted confluence score (0-100%). Scores above 65% indicate bullish confluence; below 35% indicates bearish confluence.
How Components Work Together:
RRG (Relative Rotation) determines macro bias - is this asset outperforming or underperforming its benchmark?
Institutional Flow confirms smart money activity - are institutions accumulating or distributing?
Volatility Regime determines strategy selection - trend-follow or mean-revert?
Liquidity Detection identifies key levels - where are the stop hunts happening?
Session Analysis optimizes timing - when should you trade?
The Five Core Modules
1. Relative Rotation Momentum Matrix (RRG)
Compares the current symbol against a benchmark (default: SPY) using the JdK RS-Ratio methodology with double-smoothed EMA. Assets rotate through four quadrants:
LEADING: Outperforming with positive momentum (strongest bullish)
WEAKENING: Outperforming but losing momentum
LAGGING: Underperforming with negative momentum (strongest bearish)
IMPROVING: Underperforming but gaining momentum
2. Institutional Flow Analysis
Analyzes volume patterns to detect smart money activity:
Volume Z-Score measures how unusual current volume is
Buy/Sell pressure estimation based on candle structure
Unusual volume detection highlights institutional activity
3. Volatility Regime System
Uses ATR percentile ranking to classify market conditions:
COMPRESSION: Low volatility (ATR < 20th percentile) - potential breakout
EXPANSION: High volatility (ATR > 80th percentile) - trending
TRENDING_BULL/BEAR: Directional trends based on EMA alignment
RANGING: Sideways consolidation
4. Liquidity Detection
Identifies institutional liquidity targets using swing point analysis:
Swing highs/lows are tracked and displayed as dashed lines
Purple dashed lines mark resistance/sell-side liquidity
Teal dashed lines mark support/buy-side liquidity
Gold diamonds appear when liquidity sweeps are detected (potential reversals)
5. Session Momentum Profiler
Tracks trading sessions based on your selected timezone:
Asian Session: 7PM - 4AM EST
London Session: 3AM - 12PM EST
New York Session: 9:30AM - 4PM EST
London/NY Overlap: 8AM - 12PM EST (peak liquidity)
Visual Elements
Main Dashboard (Top-Right):
BIAS: Overall direction with confluence percentage
RRG: Current quadrant and momentum
FLOW: Smart money bias and volume status
REGIME: Market condition and volatility percentile
SESSION: Active trading session and current time
LIQUIDITY: Active zones and grab signals
SIGNAL: Actionable recommendation
Chart Elements:
Gold Diamond: Liquidity grab (potential reversal point)
Teal Dashed Line: Support / Buy-side liquidity zone
Purple Dashed Line: Resistance / Sell-side liquidity zone
EMA 21/55/200: Trend structure with cloud fill
Volatility Bands: ATR-based channels
How to Use
Step 1: Check the BIAS row for overall market direction
Step 2: Check REGIME to understand market conditions
Step 3: Identify key levels using liquidity zones and EMAs
Step 4: Wait for confluence above 65% (bullish) or below 35% (bearish)
Step 5: Look for gold diamond signals at key levels
Best Setups
Bullish: Confluence >65%, RRG in LEADING/IMPROVING, bullish flow, price near teal support zone.
Bearish: Confluence <35%, RRG in LAGGING/WEAKENING, bearish flow, price near purple resistance zone.
Reversal: Gold diamond appears after price sweeps a liquidity zone.
Key Input Parameters
Benchmark Symbol: Compare against (default: SPY)
RS-Ratio/Momentum Lookback: RRG calculation periods
Volume Analysis Period: Flow detection lookback
Swing Length: Liquidity zone detection
ATR Period/Rank Period: Regime classification
Timezone: Session detection timezone
Alerts
Liquidity Grab Bull: Bullish sweep detected
Liquidity Grab Bear: Bearish sweep detected
High Confluence Bull: Confluence above 70%
High Confluence Bear: Confluence below 30%
Best Practices
Use on 1H, 4H, or Daily timeframes for reliable signals
Combine with price action for confirmation
Respect the regime - don't fight strong trends
Trade during London/NY overlap for best liquidity
Wait for high confluence scores before entering
Always use proper risk management
Limitations
Works best on liquid markets with sufficient volume
Session features optimized for forex/crypto markets
RRG requires a valid benchmark symbol
No indicator predicts the future - use proper risk management
Disclaimer
This indicator is for educational and informational purposes only. It is not financial advice. Trading involves substantial risk of loss. Past performance does not guarantee future results.
-Made with passion by officialjackofalltrades
[NBK] Cover Buy Sell for BTC Cover Buy Sell for BTC— Engulfing Reversals with EMA/ATR Trend & Quality Filters
{Update for BTC}
What it does
This indicator flags high-quality bullish/bearish reversal candles only when they align with a short-term trend and pass several objective quality filters. It is not a simple mashup: each component serves a distinct role and they work together to keep early/low-quality signals out.
How it works (components & interaction)
Pattern engine (entry candidates)
Bullish side (Cover Buy):
Body Engulf: current green body fully covers the prior red body, or
Piercing (relaxed): prior red → current green closes above the prior body’s midpoint (not beyond prior open).
Bearish side (Cover Sell):
Full-candle Engulf: current red candle (body + wicks) covers the entire prior candle, or
Body Engulf: current red body fully covers the prior body, or
Dark-Cloud (relaxed): prior green → current red closes below the prior body’s midpoint.
Short-term trend gate (non-repainting)
Trend is defined by the EMA slope between bar-1 and bar-2, scaled by ATR to require minimum strength.
Slope < 0 → only bullish candidates pass. Slope > 0 → only bearish candidates pass.
Body-size filter (noise control)
Rejects tiny candles: each body is compared with the lookback average body size.
For bearish candidates an additional ratio check requires current body ≥ a fraction of the prior body (to avoid weak top-ticks).
Peak filters for bearish signals (late, cleaner tops)
Distance above EMA: the high must be at least X × ATR above EMA (avoids mid-range noise).
Near local high: the high of the current bar (or bar-1) must be close to the highest high in a recent window.
Break confirmation: close must break low by at least Y × ATR (filters shallow dark-clouds).
Only when a candidate satisfies the pattern ➝ trend ➝ size ➝ peak sequence is a signal printed/alerted.
Inputs (key parameters)
EMA length, Min EMA slope vs ATR, ATR length: trend strength.
Lookback for average body, Min body vs average, Bear body ratio: body-quality filters.
High distance above EMA (×ATR), Local high lookback, Tolerance to local high (×ATR), Min break of low (×ATR): bearish peak confirmation.
Alerts
Built-in alerts fire on bar close for both Cover Buy and Cover Sell.
How to use
Increase High distance above EMA / Local high lookback / Min break of low to reduce early Cover Sell in ranges.
If you miss good tops, ease those thresholds slightly.
Works across symbols/timeframes; evaluated on bar close; no repaint from the trend gate.
Notes
This tool is a signal screener, not financial advice. For best results, combine with your structure/SR zones, risk management, and execution rules.
13 thg 10
Phát hành các Ghi chú
Cover Buy Sell — Engulfing Reversals with EMA/ATR Trend & Quality/Peak Filters
What this script does
Flags high-quality bullish/bearish engulfing reversals only when short-term trend and price-action quality conditions are met. Signals evaluate on bar close. No promotions, no links, no external calls.
Why this is an original combination (mashup justification)
Raw engulfing patterns are noisy in ranges. This script is a pipeline where each module solves a specific failure mode, not a simple merge of indicators:
Pattern engine (candidates):
Bullish (Cover Buy): body-engulf of prior red body, or relaxed Piercing (close above prior body midpoint, not beyond prior open).
Bearish (Cover Sell): full-candle engulf (body+wicks), body-engulf, or relaxed Dark-Cloud (close below prior body midpoint).
Short-term trend gate (non-repainting):
EMA slope is measured between bar-1 and bar-2 and must exceed an ATR-scaled threshold (slopeAtrPct).
Slope < 0 → only bullish candidates pass.
Slope > 0 → only bearish candidates pass.
Body-size filter (noise control):
Bodies must not be tiny vs the average over lenBodyRef. For bearish candidates, an alternate check allows current body ≥ bearRatioMin × prior body to keep decisive tops.
Bearish peak filters (late, cleaner tops):
High must be far above EMA (≥ emaDistAtrMin × ATR), near the local high (current or prior bar within nearHighLen & nearHighTol × ATR), and the close must break prior low by ≥ breakAtrMin × ATR.
These remove premature Cover Sell flags in chop and keep the later, higher-quality reversal.
Only candidates that pass Pattern → Trend → Size → Peak become signals. This staged design is the core originality.
How to use (practical guidance)
To reduce early Cover Sell in ranges: raise emaDistAtrMin, raise nearHighLen, and/or raise breakAtrMin.
If you miss clean tops: slightly lower those thresholds.
Typical starting points: lenTrend=4–6, slopeAtrPct=0.03–0.06, atrLen=14; adjust to instrument/TF volatility.
Combine with structure/SR zones and your risk rules. This tool is for analysis only and is not investment advice.
Alerts
Two alert conditions are included: Cover Buy and Cover Sell, both evaluated on bar close.
Non-repainting note
The trend gate uses confirmed data (EMA slope from bar-1 vs bar-2). Pattern and filters also use confirmed values; no forward-looking references.
English translations of UI strings (if your on-chart UI uses another language)
“Strict engulf (không cho bằng nhau)” → Strict engulf (no equality)
“EMA length (trend ngắn hạn)” → EMA length (short-term trend)
“Lookback tính thân trung bình” → Lookback for average body size
“Ngưỡng thân tối thiểu vs trung bình” → Min body vs average (ratio)
“Bear: thân hiện tại ≥ rRatio * thân trước” → Bear: current body ≥ rRatio × prior body
“Bear: HIGH cách EMA tối thiểu (x ATR)” → Bear: HIGH distance above EMA (× ATR) min
“Bear: cửa sổ đỉnh cục bộ (bars)” → Bear: local high lookback (bars)
“Bear: dung sai tới đỉnh (x ATR)” → Bear: tolerance to local high (× ATR)
“Bear: mức phá LOW tối thiểu (x ATR)” → Bear: min break of LOW (× ATR)
Compliance notes
English-only title, English appears first in this description; no ads, logos, links, or solicitations.
This is an original, closed-source script with a meaningful explanation of what, how, why, and how to use.
(Vietnamese short summary)
Chỉ báo bắt tín hiệu engulfing chất lượng cao khi có xu hướng EMA ngắn hạn (đo bằng độ dốc/ATR) và vượt qua lọc kích thước thân + điều kiện đỉnh cho tín hiệu bán. Chuỗi xử lý Mẫu → Xu hướng → Kích thước → Đỉnh giúp loại tín hiệu sớm trong vùng đi ngang. Có alert Cover Buy/Sell, đánh giá theo bar close, không quảng cáo/đường link, và không phải khuyến nghị đầu tư.
[NBK] Cover Buy Sell for XAU Cover Buy Sell for XAU — Engulfing Reversals with EMA/ATR Trend & Quality Filters
{Update for XAU}
What it does
This indicator flags high-quality bullish/bearish reversal candles only when they align with a short-term trend and pass several objective quality filters. It is not a simple mashup: each component serves a distinct role and they work together to keep early/low-quality signals out.
How it works (components & interaction)
Pattern engine (entry candidates)
Bullish side (Cover Buy):
Body Engulf: current green body fully covers the prior red body, or
Piercing (relaxed): prior red → current green closes above the prior body’s midpoint (not beyond prior open).
Bearish side (Cover Sell):
Full-candle Engulf: current red candle (body + wicks) covers the entire prior candle, or
Body Engulf: current red body fully covers the prior body, or
Dark-Cloud (relaxed): prior green → current red closes below the prior body’s midpoint.
Short-term trend gate (non-repainting)
Trend is defined by the EMA slope between bar-1 and bar-2, scaled by ATR to require minimum strength.
Slope < 0 → only bullish candidates pass. Slope > 0 → only bearish candidates pass.
Body-size filter (noise control)
Rejects tiny candles: each body is compared with the lookback average body size.
For bearish candidates an additional ratio check requires current body ≥ a fraction of the prior body (to avoid weak top-ticks).
Peak filters for bearish signals (late, cleaner tops)
Distance above EMA: the high must be at least X × ATR above EMA (avoids mid-range noise).
Near local high: the high of the current bar (or bar-1) must be close to the highest high in a recent window.
Break confirmation: close must break low by at least Y × ATR (filters shallow dark-clouds).
Only when a candidate satisfies the pattern ➝ trend ➝ size ➝ peak sequence is a signal printed/alerted.
Inputs (key parameters)
EMA length, Min EMA slope vs ATR, ATR length: trend strength.
Lookback for average body, Min body vs average, Bear body ratio: body-quality filters.
High distance above EMA (×ATR), Local high lookback, Tolerance to local high (×ATR), Min break of low (×ATR): bearish peak confirmation.
Alerts
Built-in alerts fire on bar close for both Cover Buy and Cover Sell.
How to use
Increase High distance above EMA / Local high lookback / Min break of low to reduce early Cover Sell in ranges.
If you miss good tops, ease those thresholds slightly.
Works across symbols/timeframes; evaluated on bar close; no repaint from the trend gate.
Notes
This tool is a signal screener, not financial advice. For best results, combine with your structure/SR zones, risk management, and execution rules.
13 thg 10
Phát hành các Ghi chú
Cover Buy Sell — Engulfing Reversals with EMA/ATR Trend & Quality/Peak Filters
What this script does
Flags high-quality bullish/bearish engulfing reversals only when short-term trend and price-action quality conditions are met. Signals evaluate on bar close. No promotions, no links, no external calls.
Why this is an original combination (mashup justification)
Raw engulfing patterns are noisy in ranges. This script is a pipeline where each module solves a specific failure mode, not a simple merge of indicators:
Pattern engine (candidates):
Bullish (Cover Buy): body-engulf of prior red body, or relaxed Piercing (close above prior body midpoint, not beyond prior open).
Bearish (Cover Sell): full-candle engulf (body+wicks), body-engulf, or relaxed Dark-Cloud (close below prior body midpoint).
Short-term trend gate (non-repainting):
EMA slope is measured between bar-1 and bar-2 and must exceed an ATR-scaled threshold (slopeAtrPct).
Slope < 0 → only bullish candidates pass.
Slope > 0 → only bearish candidates pass.
Body-size filter (noise control):
Bodies must not be tiny vs the average over lenBodyRef. For bearish candidates, an alternate check allows current body ≥ bearRatioMin × prior body to keep decisive tops.
Bearish peak filters (late, cleaner tops):
High must be far above EMA (≥ emaDistAtrMin × ATR), near the local high (current or prior bar within nearHighLen & nearHighTol × ATR), and the close must break prior low by ≥ breakAtrMin × ATR.
These remove premature Cover Sell flags in chop and keep the later, higher-quality reversal.
Only candidates that pass Pattern → Trend → Size → Peak become signals. This staged design is the core originality.
How to use (practical guidance)
To reduce early Cover Sell in ranges: raise emaDistAtrMin, raise nearHighLen, and/or raise breakAtrMin.
If you miss clean tops: slightly lower those thresholds.
Typical starting points: lenTrend=4–6, slopeAtrPct=0.03–0.06, atrLen=14; adjust to instrument/TF volatility.
Combine with structure/SR zones and your risk rules. This tool is for analysis only and is not investment advice.
Alerts
Two alert conditions are included: Cover Buy and Cover Sell, both evaluated on bar close.
Non-repainting note
The trend gate uses confirmed data (EMA slope from bar-1 vs bar-2). Pattern and filters also use confirmed values; no forward-looking references.
English translations of UI strings (if your on-chart UI uses another language)
“Strict engulf (không cho bằng nhau)” → Strict engulf (no equality)
“EMA length (trend ngắn hạn)” → EMA length (short-term trend)
“Lookback tính thân trung bình” → Lookback for average body size
“Ngưỡng thân tối thiểu vs trung bình” → Min body vs average (ratio)
“Bear: thân hiện tại ≥ rRatio * thân trước” → Bear: current body ≥ rRatio × prior body
“Bear: HIGH cách EMA tối thiểu (x ATR)” → Bear: HIGH distance above EMA (× ATR) min
“Bear: cửa sổ đỉnh cục bộ (bars)” → Bear: local high lookback (bars)
“Bear: dung sai tới đỉnh (x ATR)” → Bear: tolerance to local high (× ATR)
“Bear: mức phá LOW tối thiểu (x ATR)” → Bear: min break of LOW (× ATR)
Compliance notes
English-only title, English appears first in this description; no ads, logos, links, or solicitations.
This is an original, closed-source script with a meaningful explanation of what, how, why, and how to use.
(Vietnamese short summary)
Chỉ báo bắt tín hiệu engulfing chất lượng cao khi có xu hướng EMA ngắn hạn (đo bằng độ dốc/ATR) và vượt qua lọc kích thước thân + điều kiện đỉnh cho tín hiệu bán. Chuỗi xử lý Mẫu → Xu hướng → Kích thước → Đỉnh giúp loại tín hiệu sớm trong vùng đi ngang. Có alert Cover Buy/Sell, đánh giá theo bar close, không quảng cáo/đường link, và không phải khuyến nghị đầu tư.
Trend Pulse Algo (LTM)Trend Pulse Algo LTM Indicator Description
Overview
Trend Pulse Algo LTM is an advanced multi layer technical indicator designed for TradingView that combines moving average MA crossovers confirmation signals pivot based structure analysis imbalance zone detection and overextension warnings to identify potential trend shifts continuations and reversal points. It aims to provide traders with reliable entry and exit signals in trending markets while highlighting areas of market inefficiency imbalances and overextended price moves that could signal exhaustion.
This indicator operates on a pulse concept where it detects rhythmic shifts in market momentum through layered MAs a quick MA for short term sensitivity a mid MA for intermediate confirmation and a long MA as a baseline trend filter. Signals are generated based on alignments and crosses between these MAs but with added layers of confirmation to reduce false positives such as requiring consecutive bars above below the long MA and breaks of prior pivot highs lows. It incorporates higher timeframe HTF analysis for imbalance zones to capture broader market context making it suitable for swing trading trend following or scalping on lower timeframes when combined with the overextension detector.
Unlike simple MA crossover systems for example standard dual EMA strategies this algo uses adaptive MA types based on timeframe pivot deviation for structural breaks and a tally based confirmation to filter noise. Imbalance zones identify fair value gaps or inefficiencies between candle bodies and wicks where price may retrace to fill. Overextension is calculated relative to the mid MA using a rolling mean absolute deviation MAD ratio highlighting potential tops bottoms in strong trends. The result is a visually clean or detailed based on mode overlay that colors bars backgrounds plots labels for signals and pivots and draws zones to guide decision making.
How It Works
MA Layers and Signal Generation
Three MAs quick mid long are computed using either SMA or EMA selected dynamically based on the charts timeframe for optimal responsiveness for example EMA on lower TFs for faster signals.
Early Signals A crossover of the quick MA above the mid MA while above the long MA triggers a Possible Bull label indicating early momentum shifts. A crossunder below triggers Possible Bear.
Confirmed Signals Bullish confirmation requires a set number of bars closing above the long MA plus alignment quick greater than mid and a break above the prior pivot high. Bearish requires bars below the long MA and a break below the prior pivot low. This uses a counter mechanism to ensure persistence reducing whipsaws. Breaks are detected via crossovers under of close versus prior highs lows.
State persistence tracks the current regime bull bear warn early coloring the chart accordingly until a new signal overrides it.
Pivot Detection and Structure
Pivots are identified by scanning for highs lows separated by a minimum bar depth with a percentage deviation threshold to confirm validity. This follows a zigzag like approach but with deviation filtering for robustness.
Labels like HH Higher High HL Higher Low LH Lower High LL Lower Low highlight market structure helping identify trends for example HH HL for uptrends or breakdowns. These are used internally to validate signal breaks.
Imbalance Zones
Zones detect imbalances or gaps between candle bodies and prior highs lows where unfilled inefficiencies attract price.
For bullish zones If open greater than close and high minus low two less than zero a zone is drawn from calculated top bottom limits. Bearish similarly for close greater than open.
Supports current TF HTF or both. Zones extend rightward until filled price touches the opposite side or mid line if enabled then either delete or shorten based on settings. Mid lines can act as fill triggers for partial closures.
HTF data is fetched via security for broader context resetting on new HTF bars.
Overextension Indicator
Measures price deviation from the mid MA relative to a rolling average RMA of relative deviations over a length.
Multipliers define tiers mild for example two times avg deviation moderate three times extreme four times. Circles plot above below bars in bull bear states when thresholds are exceeded signaling potential reversals for example red for extreme tops in uptrends. This is akin to a Bollinger Band squeeze expansion but normalized to MA distance for trend specific warnings.
Chart Coloring and Visuals
Background or candle coloring reflects the state green for bull red for bear orange for warn blue for early.
Modes control clutter Clean hides MAs zones pivots Balanced shows essentials Detailed includes all.
How to Use It
Setup Add to your chart via TradingViews indicator search. Adjust inputs based on asset timeframe for example shorter MA periods for volatile cryptos longer for stocks.
Trading Strategy Ideas
Trend Following Enter long on Confirmed Bull labels exit on Confirmed Bear or extreme overextension circles. Use imbalance zones as support resistance for stops targets for example buy dips to unfilled bullish zones.
Reversal Scalping Watch for Possible Bull Bear near pivot labels for example HL LL and overextension in the opposite direction. Confirm with zone fills.
Multi TF Analysis Set HTF to D for daily context on hourly charts zones from HTF often act as magnets.
Risk Management Place stops below prior lows in bulls or above highs in bears. Target zone edges or MA crosses. Avoid trading against strong states without confirmation.
Alerts Set up via TradingView for Early Up Down or Up Down Confirm to notify on signal edges.
Limitations Best in trending markets may lag in ranges. Test on historical data no indicator is foolproof combine with volume price action.
Detailed Input Settings
Below is a comprehensive breakdown of all user adjustable inputs from the settings panel grouped as in the script. Each explains what it controls its effect on the indicators logic and usage tips. Defaults are provided for reference.
Chart Mode
Chart Mode default Detailed Mode options Clean Mode Balanced Mode Detailed Mode
Controls visual detail level. Clean Mode hides MAs imbalance zones and pivots for a minimal overlay focused on signals and coloring. Balanced Mode shows MAs and signals but omits zones pivots. Detailed Mode displays everything for in depth analysis. Use Clean for live trading to reduce clutter Detailed for backtesting structure review.
Display Settings
Color Style default Candles options Background Candles
Determines how states bull bear warn early are visualized. Background colors the chart area for example green shading for bull. Candles colors bar bodies wicks directly. Background is subtler for multi indicator setups Candles emphasizes signals on naked charts.
Imbalance Zone HTF Config
Higher TF Period default D
Sets the higher timeframe for imbalance detection for example D for daily four H for four hour. This fetches broader data to identify significant zones. Use a TF four to five times your current for context for example daily on one H charts avoid very high TFs like W on intraday for relevance.
TF Mode default Current TF options Current TF Current plus HTF HTF Only
Defines timeframe handling for zones. Current TF uses only your charts TF. Current plus HTF combines both for layered zones. HTF Only ignores current TF. Current plus HTF is ideal for multi TF confluence HTF Only simplifies for swing traders.
Shift default ten min zero max five hundred
Horizontal offset in bars for current TF zone labels. Higher values shift labels rightward to avoid overlap. Adjust if labels crowd the chart.
HTF Shift default twenty min zero max five hundred
Similar to Shift but for HTF zone labels. Use larger offsets for HTF to distinguish them visually.
Imbalance Zone Core Options
Mid Line Fill default false
Enables a midpoint line in each zone zones fill close short when price touches this mid line instead of the far edge. Activates partial fill logic for more conservative zone closure. Enable for tighter risk in volatile markets.
Remove Filled Zones default true
If true completely deletes filled zones if false shortens them to the fill point keeping history. True clears clutter false retains context for review.
Display TF on Zone default false
Shows the timeframe for example D IZ on zone labels. Useful for distinguishing current versus HTF zones in combined mode.
Max Upward Zones default twenty min one max fifty
Limits displayed bullish upward zones removes oldest when exceeded. Lower for cleaner charts higher for historical depth.
Max Downward Zones default twenty min one max fifty
Same as above but for bearish downward zones.
Imbalance Zone Visuals
Upward Zone color green at ninety percent transparency
Color for current TF upward imbalance zones. Adjust opacity for visibility.
HTF Upward Zone color lime at eighty percent transparency
Color for higher timeframe upward imbalance zones. Differentiate from current for example lighter shade.
Downward Zone color red at ninety percent transparency
Color for current TF downward imbalance zones.
HTF Downward Zone color maroon at eighty percent transparency
Color for higher timeframe downward imbalance zones.
Mid Line Color color white at eighty five percent transparency
Color for the optional midpoint line in zones.
Text Color color white
Color for text labels on zones.
MA Layers
Quick MA Period default ten min one
Length for the fastest moving average sensitive to short term price. Shorter for example five for scalping longer for example fifteen for less noise.
Mid MA Period default twenty min one
Intermediate MA length used for crossovers and overextension base. Typically two times quick for balance.
Long MA Period default fifty min one
Baseline trend filter length. Longer for example one hundred for major trends shorter for active trading.
MA Variants by Period
Under one H default EMA options SMA EMA
MA type for timeframes under one hour for example EMA for faster response.
One H to less than five H default EMA options SMA EMA
MA type for one to five hour timeframes.
Five H to less than one D default EMA options SMA EMA
MA type for five hour to one day timeframes.
One D plus default EMA options SMA EMA
MA type for daily and higher timeframes. Adapt to market EMA for trends SMA for mean reversion.
Signal Confirmation
Bull Confirm Bars default one min zero
Consecutive bars needed above long MA for bull confirmation. Zero for instant higher for example three filters noise but delays entries.
Bear Confirm Bars default two min zero
Same for bear below long MA. Asymmetrical default higher for bears assumes uptrend bias.
Pivot Detection
Pivot Depth default six min one
Min bars between pivots. Higher reduces minor swings lower captures more structure.
Pivot Deviation percent default one point zero min zero point one
Percent change required for new pivot. Higher ignores small moves for example two percent for stocks zero point five percent for forex.
Display HH and HL default true
Shows labels for Higher Highs Lows bullish structure.
Display LH and LL default true
Shows labels for Lower Highs Lows bearish structure.
Overextension Indicator
Show Overextension Circles Potential Tops default true
Enables circles above bars in bull states for potential tops.
Show Overextension Circles Potential Bottoms default true
Enables below bars in bear states for bottoms.
Overextension Length default fourteen min one
Period for rolling relative deviation average. Matches RSI STOCH defaults for alignment.
Mild Multiplier default two point zero min zero point zero
Threshold for mild overextension yellow circle. Zero disables tier.
Moderate Multiplier default three point zero min zero point zero
For moderate orange.
Extreme Multiplier default four point zero min zero point zero
For extreme red. Tune lower for sensitive warnings in ranging markets.
Gabriel's Squeeze Momentum📊 Gabriel’s Squeeze Momentum — Deluxe Volatility + Momentum Suite
An advanced, all-in-one squeeze & momentum framework that times volatility compression/expansion and trend shifts, with optional CVD (cumulative volume delta) momentum, ATR zone context, Discontinued Signal Lines (DSL) scalps, Colored DMI trend label, Williams VIX Fix (WVF) low-volatility exhaustion pings, Buff’s VTTI/VPCI volume confirmation, and real-time divergence detection.
What it does:
Discover Squeezes. They occur when volatility contracts, often preceding significant price moves.
Measures momentum with a fast, ATR-normalized linear regression—optionally on Price or CVD—so you see direction and “how hard it’s pushing.”
🧭 Signal Legend ~ Colors the squeeze so you instantly know regime:
🟡 / 🟣 (Tight/Very Tight): Coiled spring; prepare a plan.
🔴 / ⚫ = (Regular/Wide): Watch for Divergences between Price and Momentum.
🟢 (Fired): Expansion started; trade with momentum cross and bias.
Adds context bands at ±1/±2/±3 ATR (“trend / expansion / OB-OS”) to filter late or weak signals.
DSL (Discontinued Signal Lines) give early scalp flips on momentum vs. adaptive bands.
DMI label & triangles communicate trend strength and whether +DI / −DI is in control.
Williams VIX Fix flags capitulation/exhaustion style spikes (with optional VIX proxy).
VTTI/VPCI modules confirm when volume aligns with price trend or contradicts it.
Divergences (regular & hidden) auto-draw with optional live (may repaint) or on-close.
🎢 Squeeze Momentum — How the Logic Works 🎢
The Squeeze Momentum model is built on the principle of volatility compression and expansion. In markets, periods of low volatility are often followed by explosive moves, while high volatility eventually contracts. The “squeeze” seeks to identify these compression phases and prepare traders for the likely expansion that follows.
This indicator achieves that by comparing Bollinger Bands (BB) to Keltner Channels (KC).
Bands: Bollinger vs. Keltner
Bollinger Bands (BB): Calculated using a Simple Moving Average (SMA) of price and standard deviations (σ) of the closing price. The bands expand and contract depending on volatility.
Keltner Channels (KC): Built from an SMA plus/minus multiples of the Average True Range (ATR). Unlike some simplified squeeze indicators that approximate ATR, this implementation uses a true ATR-based KC, ensuring accuracy across different assets and timeframes.
By comparing whether the Bollinger Bands are inside or outside the Keltner Channels, the indicator identifies different squeeze regimes, each representing a distinct volatility environment.
📦 Regime Colors
The squeeze states are color-coded for quick interpretation:
🔹Wide Squeeze (⚫): BB inside KC with a high ATR multiplier. Extremely low volatility, often before major expansion.
🔹Normal Squeeze (🔴): BB inside KC with a moderate ATR multiplier (about 25% more sensitive than Wide). Typical compression setting.
🔹Narrow Squeeze (🟡): BB inside KC with a lower ATR multiplier (about 50% more sensitive than Wide). Signals tighter compression.
🔹Very Narrow Squeeze (🟣): BB inside KC with the lowest ATR multiplier (100% more sensitive than Wide). Indicates extreme coiling.
🔹Fired Squeeze (🟢): BB break outside KC. Marks the release of volatility and potential trend acceleration.
This multi-layered system improves upon classical SQZPRO by using precisely calculated Keltner Channels and multiple sensitivity levels, giving traders more granular information about volatility states.
🔒 Multi-Timeframe Support
The indicator automatically adjusts squeeze thresholds for different timeframes — hourly, 4-hour, daily, weekly, and monthly charts. Each regime has been manually tuned for its timeframe, allowing traders to use the same tool whether scalping, swing trading, or holding longer-term positions.
🎯 Momentum Core
Detecting a squeeze is only half the equation — the indicator also includes a momentum engine to determine direction and strength.
Price momentum is measured as the distance of Close from its Highest High and Lowest Low range, smoothed with a Simple Moving Average, and refined with Linear Regression.
This value is then divided by ATR, normalizing momentum relative to volatility.
Optionally, CVD Mode (Cumulative Volume Delta ÷ Volume) can replace price momentum for assets where order-flow and volume dynamics dominate (e.g., crypto).
🦆 Signal Line
Momentum is paired with a Simple Moving Average signal line:
🔹Bullish: Momentum > Signal.
🔹Bearish: Momentum < Signal.
This crossover logic provides directional bias and filters for false squeezes.
🚀 When to Use Price vs. CVD
CVD Mode (Crypto, FX with tick volume): Best for assets with strong volume/order-flow signals.
Price Mode (Equities, Commodities, Higher TFs): Best for assets with irregular or thin volume data.
🛢️ATR Zones (context filter) 🛢️
Its design is straightforward yet effective: it measures the difference between the current price from its highest highs, lowest lows, and a moving average over a chosen period, then expresses that difference in terms of the Average True Range (ATR) over the same period. By normalizing price deviations against volatility, ATR provides a clear sense of how far and how fast price is moving relative to its “normal” range.
Interpreting the Zone
Positive Values: When it is above zero, price is trading above its HH, LL, and moving average, suggesting bullish momentum. The higher the value, the stronger the momentum relative to volatility.
Negative Values: When the Momentum is below zero, price is trading below its HH, LL, and moving average, signaling bearish momentum. The deeper the reading, the stronger the downside pressure.
Magnitude Matters: Because the Momentum is expressed in ATR units, traders can immediately gauge whether the move is small (less than 1 ATR), moderate (1–2 ATRs), or extreme (3+ ATRs). This makes it especially useful for assessing overbought or oversold conditions in a normalized way.
Strengths:
🔹Volatility-Normalized: Unlike simple squeeze momentum oscillators that have different OB/OS levels, this Momentum adjusts for volatility. This makes signals more consistent across assets with different volatility profiles.
🔹Simplicity:
±1 ATR: trending zone (bulls above +1, bears below −1)
±2 ATR: expansion (keep, add, or trail). Stretch/risk of mean reversion.
±3 ATR: potential exhaustion/mean-revert zone.
🔹Momentum Clarity: By framing momentum in ATR terms, it is easier to distinguish between a small deviation from trend and a genuinely significant move. Sometimes it is a good sign that it trend to ±3/2 ATR, looks for similar directional moves.
Color: The script shades +2/+3 (OB) and −2/−3 (OS) areas and provides swing alerts at ±1 ATR.
💚 What Are Discontinued Signal Lines (DSL)? 💚
In technical analysis, one of the most common tools for smoothing out noisy data is the signal line. This concept appears in many indicators, such as the MACD or stochastic oscillator, where the raw value of an indicator is compared to a smoothed version of itself. The signal line acts as a lagging filter, making it easier to identify shifts in momentum, crossovers, and directional changes.
While useful, the classic signal line approach has limitations. By design, a single smoothed line introduces lag, which means traders may receive signals later than ideal. Additionally, a one-size-fits-all smoothing process often struggles to adapt to different levels of volatility or rapidly changing market conditions.
This is where Discontinued Signal Lines (DSL) come in. DSL is an advanced extension of the traditional signal line concept. Instead of relying on just one smoothed comparison, DSL employs multiple adaptive lines that adjust dynamically to the current state of the indicator. These adaptive lines effectively “discontinue” the dependence on a single, fixed smoothing method, producing a more flexible and nuanced representation of market conditions.
How DSL Works?
Traditional Signal Line: Compares an the Momentum against its own moving average. Provides crossover signals when the raw indicator value moves above or below the smoothed line.
Strength: reduces noise. Weakness: delayed signals and limited adaptability.
DSL Extension: Uses multiple adaptive lines that respond differently to the indicator’s current behavior. Instead of one static moving average, the DSL approach creates faster and slower “reaction lines.” These lines adapt dynamically, capturing acceleration or deceleration in the indicator’s state.
Result: Traders see how momentum is evolving across multiple adaptive thresholds. This reduces false signals and improves responsiveness in volatile conditions.
Benefits of Discontinued Signal Lines
🔹Nuanced Trend Detection
DSL doesn’t just flag when momentum changes direction—it shows the quality of that shift, highlighting whether it is gaining strength, losing steam, or consolidating.
🔹Adaptability Across Markets
Because DSL adjusts to the Momentum’s own dynamics, it works well across different asset classes and timeframes, from equities and futures to forex and crypto.
🔹Earlier Signal Recognition
Multiple adaptive lines allow traders to spot developing trends earlier than with a single smoothed signal line, without being overwhelmed by raw indicator noise.
🔹Better Confirmation
DSL is particularly useful for confirmation. If both adaptive lines agree then a fill is applied in the direction, confidence in the trend is higher as the color turns bull/bear.
🔹Practical Uses
Momentum Trading: Spot acceleration or deceleration in trend strength.
Trend Confirmation: Verify whether a breakout has momentum behind it.
Noise Filtering: Smooth out erratic moves while retaining adaptability.
⚖️ Colored Directional Movement Index (CDMI) ⚖️
The Directional Movement Index (DMI), created by J. Welles Wilder, is one of the most respected trend-following indicators in technical analysis. It is actually a family of three separate indicators combined into one: the +DI (Positive Directional Indicator), the –DI (Negative Directional Indicator), and the ADX (Average Directional Index). Together, they measure not only whether the market is trending but also the strength of that trend. Traders have used the DMI for decades to identify trend direction, gauge momentum, and filter out periods of market noise.
However, despite its reliability, the traditional DMI can be challenging to interpret. Reading three separate lines at once and extracting meaningful signals requires both experience and careful observation. This complexity often discourages newer traders from fully utilizing its power.
The Colored Directional Movement Index (CDMI) is a modern reinterpretation of Wilder’s classic tool. It condenses the same information into a single visual line while using color, shape, and density to communicate what’s happening beneath the surface. The goal is simple: make the DMI’s insights faster to read, easier to act upon, and more intuitive to integrate into trading decisions.
Key Features of CDMI
🔹Color Scale for Trend Strength
The main triangle changes its base color depending on the strength of the DI reading. Dark Red or Green, colors correspond to stronger trends, while faded Gray or lighter yellow tones signal weaker or fading trends. This makes it visually clear when the market is consolidating versus trending strongly.
🔹Color Density for Momentum
Beyond strength, the CDMI uses color density to represent momentum in the trend’s strength. If the ADX is rising (trend gaining momentum), the triangles grows more darker. If the ADX is falling (trend losing momentum), the triangle becomes paler. This provides an instant sense of whether a trend is accelerating or decelerating.
🔹Directional Triangles for Trend Direction
To replace the separate +DI and –DI lines, the CDMI plots small triangle shapes along the bottom axis. An upward-facing triangle indicates that +DI is dominant, confirming bullish direction. A downward-facing triangle signals –DI dominance, confirming bearish direction. This way, both strength and direction are shown without the clutter of multiple overlapping lines.
🔹Label Display for Detailed Values
For traders who want precise data alongside the visuals, CDMI includes a label that shows:
Current trend strength (ADX value).
Current +DI and –DI values.
Momentum status of the ADX (rising or falling).
Historical values of DMI readings, so traders can track how the indicator has evolved over time.
Tooltips are also available to explain “How to read the colored DMI line”, making this version more beginner-friendly.
Why CDMI Matters
The CDMI retains the proven reliability of Wilder’s DMI while solving its biggest drawback—interpretation difficulty. Instead of juggling three separate plots, traders get a single, information-rich line supplemented with intuitive shapes and labels. This streamlined format makes trend verification, momentum analysis, and signal confirmation much faster.
For trading applications, the CDMI can help:
Confirm Entries by showing whether the market is trending strongly enough to justify a position.
Avoid False Signals by filtering out periods of low ADX (weak trend).
Enhance Timing by tracking momentum shifts in trend strength.
By simplifying the complexity of the original DMI into an elegant, color-coded tool, the CDMI makes one of technical analysis’ most advanced indicators practical for everyday use.
😅 The VIX, the Williams Vix Fix, and Market Bottoms 😎
The VIX, formally known as the CBOE Volatility Index, has long been considered one of the most reliable indicators for spotting major market bottoms. Often referred to as the “fear gauge,” it measures the market’s expectation of volatility in the S&P 500 over the next 30 days. When fear grips investors and volatility spikes, the VIX rises sharply. Historically, these moments of extreme fear often coincide with powerful buying opportunities, as markets have a tendency to rebound once panic selling exhausts itself.
Larry Williams, a well-known trader and author, developed the Williams Vix Fix as a way to replicate the insights of the VIX across any tradable asset. While the VIX itself is tied specifically to S&P 500 options, Williams wanted a tool that could capture similar panic-driven dynamics in stocks, futures, forex, and other markets where the VIX is not directly applicable. His “fix” uses price action and volatility formulas to approximate the same emotional extremes reflected in the official VIX, creating almost identical results in practice. This makes the Williams Vix Fix a powerful addition to the trader’s toolbox, allowing the same principle that works on U.S. equities to be applied universally.
One of the most important characteristics of both the VIX and the Williams Vix Fix is that they are far more reliable at signaling market bottoms than market tops. The reason is psychological as much as it is mathematical. At market bottoms, fear and panic are widespread. Retail investors often capitulate, selling in a frenzy as prices drop. This panic drives volatility higher, producing the spikes we see in the VIX. At the same time, professional traders and institutions—those with larger capital and more disciplined strategies—tend to step in when volatility is stretched. They buy when others are fearful, using the panic of retail investors as an opportunity to acquire assets at discounted prices. This confluence of retail panic and institutional buying power is what makes the VIX such a strong bottom-finding tool.
In contrast, at market tops, the dynamic is very different. Tops tend not to be marked by panic or fear. Instead, they form quietly as enthusiasm fades, liquidity dries up, and buying interest wanes. Investors are often complacent, assuming prices will continue to rise, while professional money begins distributing their positions. Because there is no surge in fear, volatility remains muted, and the VIX does not offer a clear warning. This is why traders who rely on the VIX or the Williams Vix Fix must understand its limitations: it is exceptional for detecting bottoms but less useful for anticipating tops.
For traders, the lesson is straightforward. When you see the VIX or Williams Vix Fix spiking to extreme levels, it often indicates a high-probability environment for a rebound. These tools should not be used in isolation, but when combined with support levels, sentiment indicators, and market breadth, they can provide some of the most reliable bottom-fishing signals available. While no indicator is perfect, few have stood the test of time as consistently as the VIX—and thanks to Williams’ adaptation, its power can now be applied to nearly every market.
Indicator Signals (Great in risk-off charts):
🔹Flags spike events (tops/bottoms) with both original and filtered (AE/FE) criteria.
🔹Great as a risk overlay: tighten stops into AE/FE, or require “no spike” to enter.
🤯 Volume Comfirmation: VTTI & VPCI (Buff Dormeier) 🤯
Volume Trend Technical Indicator (VTTI)
The Volume Trend Technical Indicator (VTTI) is a momentum-style tool that analyzes how volume trends interact with price movement. Unlike basic volume measures that simply report how many shares or contracts were traded, the VTTI evaluates whether volume is expanding or contracting in the same direction as the prevailing price trend. The underlying logic is that healthy trends are supported by rising volume, while weakening trends often occur on shrinking volume.
At its core, VTTI looks at the rate of change in volume compared to price movements. By smoothing and normalizing these relationships, the indicator helps traders determine whether momentum is accelerating, decelerating, or diverging.
Rising VTTI: Suggests that volume is confirming the current price trend, strengthening the case for continuation. Flips BG Green after crossing it's signal.
Falling VTTI: Indicates that the trend may be losing participation, often a sign of possible consolidation or reversal. Flips BG Red after crossing it's signal.
Traders often use VTTI to filter entries and exits. For example, if price breaks out but VTTI does not rise above zero, the breakout may lack conviction. On the other hand, when both price and VTTI are aligned, probability of continuation improves.
Volume Price Confirmation Indicator (VPCI)
The Volume Price Confirmation Indicator (VPCI), developed by Buff Dormeier, takes the relationship between price and volume a step further. While traditional indicators like On-Balance Volume (OBV) or Chaikin Money Flow look at cumulative patterns, VPCI breaks price and volume into trend and volatility components and then recombines them to measure how well they confirm each other.
In essence, VPCI asks: “Does volume confirm what price is signaling?”
The formula integrates:
Price Trend Component – whether the market is trending upward or downward.
Volume Trend Component – whether trading activity supports that price trend.
Volatility Adjustments – to account for irregular swings.
The resulting oscillator fluctuates around a zero line:
Positive VPCI: Indicates that price and volume trends are in agreement (bullish confirmation).
Negative VPCI: Suggests that price and volume are diverging (bearish warning or false move).
Crossovers of Zero: Can serve as potential buy or sell signals, depending on context.
A key strength of VPCI is its sensitivity to divergence. When prices continue rising but VPCI begins falling, it often foreshadows a weakening rally. Conversely, a rising VPCI during a flat or down market can highlight early accumulation.
VTTI (Entry Signal) vs. VPCI (Exit Signal)
While both indicators study price-volume dynamics, their focus differs:
VTTI is simpler, emphasizing the trend of volume relative to price for momentum confirmation.
VPCI is more advanced, decomposing both price and volume into multiple components to produce a nuanced oscillator.
Used together, they provide complementary insights. VTTI helps quickly spot whether volume is supporting a move, while VPCI offers deeper confirmation and highlights subtle divergences.
Note: The Up/Down Volume Alert works better on the 4 HR, for Daily scalps or 30 minute for HR scalps. Intraday it's 2/10 minute.
🦅 Divergence toolkit 🦅
Divergences in Technical Analysis
Divergence occurs when the price action of an asset moves in one direction while a technical indicator, such as RSI, MACD, or Momentum, moves in the opposite direction. This disagreement between price and indicator often signals a shift in underlying market dynamics. Traders use divergences to anticipate either potential reversals or continuations in trends.
There are two main types of divergences: regular divergences, which typically precede reversals, and hidden divergences, which suggest continuation of the current trend.
Regular Divergence (Reversal Signals)
A regular divergence occurs when price and indicator disagree during a trend extension. These divergences signal that momentum is no longer fully supporting the current trend and that a reversal may be imminent.
🔹Regular Bullish Divergence
Price Action: Forms a lower low.
Indicator: Forms a higher low.
Interpretation: Price is making new lows, but the indicator is gaining strength. This suggests that selling pressure is weakening, and a reversal to the upside may occur.
Example: RSI rising while price dips to fresh lows.
🔹Regular Bearish Divergence
Price Action: Forms a higher high.
Indicator: Forms a lower high.
Interpretation: Price is reaching new highs, but the indicator shows weakening momentum. This implies that buying pressure is fading, warning of a potential downside reversal.
Example: MACD histogram falling while price makes higher highs.
Regular divergences are often spotted near the end of trends and are most powerful when aligned with key support/resistance levels or overbought/oversold conditions.
Hidden Divergence (Continuation Signals)
A hidden divergence occurs during retracements within a trend. Unlike regular divergences, hidden divergences suggest that the prevailing trend still has strength and is likely to continue.
🔹Hidden Bullish Divergence
Price Action: Forms a higher low.
Indicator: Forms a lower low.
Interpretation: Price is retracing within an uptrend, but the indicator is overshooting downward. This shows that momentum remains intact, supporting continuation upward.
🔹Hidden Bearish Divergence
Price Action: Forms a lower high.
Indicator: Forms a higher high.
Interpretation: Price is retracing within a downtrend, while the indicator overshoots upward. This indicates that bearish momentum remains strong, supporting continuation downward.
Hidden divergences often appear during pullbacks, helping traders time entries in the direction of the prevailing trend.
Practical Use of Divergences
🔹Trend Reversal Alerts – Regular divergences are early warnings that a trend may be ending.
🔹Trend Continuation Signals – Hidden divergences help confirm that retracements are simply pauses, not full reversals.
🔹Confluence with Other Tools – Divergences are more reliable when combined with support/resistance, candlestick patterns, or volume analysis.
🔹Multi-Timeframe Analysis – Spotting divergences on higher timeframes often produces stronger signals.
🕭🔔🛎️ Alert 🛎️🔔🕭
🔹Squeeze
🟢 Fired Squeeze
⚫ Low (Wide) Squeeze / 🔴 Normal / 🟡 Tight / 🟣 Very Tight
🔹Momentum
🐂 Bullish Trend Reversal (Crossover of Momentum and Signal from sub −2)
🐻 Bearish Trend Reversal (Crossover of Momentum and Signal from above +2)
📈 Bullish Swing (cross above +1 ATR) / 📉 Bearish Swing (cross below −1 ATR)
🔹DSL
💚 Bullish DSL Scalp / 💔 Bearish DSL Scalp
🔹Volume
🎯 Strong Up Volume (VPCI > 0 and VTTI up)
⏳ Strong Down Volume (VPCI < 0 and VTTI down)
🔹Divergences
🦅 Bullish, 🦆 Bearish, 🦅 Bullish Hidden, 🦆 Bearish Hidden
Management: Search Vanguard ETFs in your browser, look up full list of VOO holdings. Download it, or copy paste all the ticker symbols. Place that with a AI, just ask it to place , in between each ticker. NVDA, TSLA, AVGO, etc. Create a new watchlist, in the + add all tickers separated by commas. Place a watchlist alert ⚠️ only available for premium + subscribers.
Practical playbook
1) Classic Squeeze Break
Setup: 🔴(D)/🟡(2D)/🟣(3D) squeeze → wait for 🟢(1HR) Fired.
Confirm: Momentum > Signal and above +1 ATR (or DMI strong & rising).
Manage: add on pullbacks that hold +1 ATR; scale near +2 ATR or WVF AE/FE.
2) DSL Scalp in Trend
Setup: Clear trend (DMI strong) + DSL bull/bear trigger in the direction of trend.
Filter: avoid tight/very tight yellow/purple unless you want micro-scalps.
Exit: opposite DSL or ATR midline loss.
3) Mean-Reversion Fade
Setup: Momentum extended to ±3 ATR, WVF spike, and a regular divergence.
Entry: Counter signal only when mom crosses back through ±3 ATR toward mid. Exit early if squeeze ⚫/🔴, Momentum may extend to ±3/2 ATR in the same direction.
Risk: reduce size; this is a fade, not trend following.
4) Volume-Confirmed Breakout
Setup: Squeeze → 🟢 Fired + VPCI > 0 and VTTI up → trend continuation.
Manage: trail behind +1 ATR (long) or −1 ATR (short). 9 SMA works good.
Inputs at a glance (key ones)
Mode: Price or CVD momentum; Squeeze Sensitivity (σ); Momentum Length; Signal Length; ATR Smoothing.
🧮 Colors:
SQZMOM: per squeeze regime, momentum, ATR fills.
DSL: On/Off, Fast/Slow, Length.
ATR Zones: Bullish/Bearish levels (±1), ±2/±3 zone lines & fills.
DMI: Lengths, key & weak thresholds, label on/off.
WVF/VIX: Lookbacks, bands, AE/FE toggles, VIX proxy symbol.
VTTI/VPCI: Fast/slow/signal (VTTI), Short/Long (VPCI), and volume source (Tick/CVD/NVI/PVI/OBV/PVT/AccDist/VWAP).
Divergences: Regular/Hidden toggles, Sensitivity %, Lifetime, Live vs On-Close, Lines/Labels.
🔎 Suggested defaults (feel free to tweak)
Calibration: Size Momentum, so that when it's above zero the asset is trending up. For the signal, it can be kept the same or lower.
Intraday (60–240m): σ = 2.0, 18~20, 3~5, DSL Fast, DMI key 23, weak 17.
Daily/Weekly: keep σ = 2.0, consider DSL Slow, DMI key 25, weak 20, widen ATR filters; lean on VPCI/VTTI (4-HR).
CVD mode: use where tick/volume quality is high (index futures, liquid equities, crypto majors).
🪟 Tips & caveats
Swing Screener: Favor liquid underlyings (index futures/ETFs, large caps). Large-Cap, 2 M Vol, Mid-Cap, 500K Vol. Squeeze: BB( 20) upper < KC (20) upper, and BB (20) lower > KC (20) lower. Optional: Price above 9 SMA, 21 SMA, and 50 SMA, they are my SMA of choice. 200 SMA too, unless you are willing to fish in a bear market. Vice-versa for shorts. Optional: ADX 4 HR > 17, or 23 depending on what you are looking for.
Scalp Screener: Same as above, change the D 9 SMA to 5, and the BB/KC from D to 1 HR. Scalps may last 2~3 days.
Position Screener: Change all daily setting to W, aside from Volume. Optional: PEG < 1.5, FCF > 0, ROA > 8% or ROE > 6%.
Good with Moving averages (9/21/50) and low-volume zones.
Position size by IV, ATR, and account risk. Consider stop/hedge rules around ±2/±3 ATR.
Let alerts stage your watchlist; act only on combined squeeze + momentum signals.
Divergences in live mode can repaint (Real-Time); for algo or alerts, use on-close.
Tight/Very tight squeezes are great for scalps but choppy; combine with DMI rising + VPCI>0.
±3 ATR is exhaustion context, not an auto-fade—look for WVF/Div/DSL confirmation.
For alerts, pair “Fired Squeeze + Bullish Swing” (or bearish) to avoid false starts.
🎯 How to Trade Entry ~ Recap:
Tight/very tight squeeze → fires → momentum crosses up (or DSL bull).
Exit/Flip: Momentum crosses down into/after expansion or hits +2/+3 ATR with fade signs. Filter: Avoid fresh longs at +3 ATR; avoid fresh shorts at −3 ATR unless fading with confirmation.
📐 Options Integrations
✅ Risk Reversal/Modified Risk Reversal (Bullish: Short Put + Long Call)
Use when: Squeeze fires up from 🟡/🟣 and momentum crosses above signal (or zero/DSL).
Playbook Entry: On or just after the bullish fire and momentum upcross. DMI or Volume supports trend as well.
Structure: Sell a put at/just below the −2 ATR reference (or recent swing support). Buy a call at/above the breakout zone (prior high/mid-range +1 to +2 ATR).
A classic risk reversal is a long call plus a short put. That’s a very bullish structure—you gain if the price rallies (via the call), and you collect a premium by selling a put. But it has a naked downside risk. The modified risk reversal fixes that by adding a long lower put (making the short put into a defined put credit spread).
Management: If momentum stays above signal, ride toward +2 → +3 ATR. Sell the put near the current price → receive big premium. Buy the lower put → spend part of that premium (risk cap). Buy the call above the current price → spend more, but the short put premium mostly pays for it.
Exits/Adjust: Momentum downcross or squeeze flips back on (new compression) → reduce. If price retests −1/−2 ATR and holds, you can roll the short put down/out.
Breakout = Big Success; No Breakout = you keep the initial credit. Reversal = Max loss is capped by the long lower put.
✅ Iron Condor (Neutral: Short OTM Put Spread + Short OTM Call Spread)
Use when: Squeeze is active (🟡/🟣), momentum is flat near zero, and there is no directional edge. 🟢 lasts for around 5~8 bars typically. I measure the historical duration of it, and wait for a range period to occur.
Playbook Entry: During compression, set wings outside ±2 ATR (or recent range extremes). I prefer identifying boxes where the rectangle pattern occurs on the chart.
Management: Time decay works while price remains trapped in the coil. High-winrate ~80%, but 1 loser can wipe most of the gains.
Exits/Adjust: If a squeeze fires and momentum breaks hard one way, close the losing side, consider converting to a vertical or rotating to a directional spread aligned with momentum.
4HR-Bullish, closing one wing:
Tip: Align daily/weekly context with your intraday entries. 9 > 50 on Weekly, similar on Daily. Sell premium into compression; switch to directional spreads on expansion and momentum confirmation.
✅ Naked Call/Puts (Directional: 10~30 Delta Calls)
Stick to naked calls and puts when the squeezes are fired from either 🔴 or ⚫.
Look for Strikes slightly out of the money with an OI and Volume spread less than <10%.
If Strike Date is >45, manage 21 Days before expiration. Scalp: Expiration Strikes of 1/4 of the Squeeze period. Leap: Expiration Strikes of 1.75x of the Squeeze period.
📐 Futures Integrations
Playbook Entry:
Verify if the squeeze on the hourly is red or green, and enter on the 2- or 5-minute during a similar squeeze state.
Trend-Following: Traditional 2 Renko Block above 21 SMA and Momentum is bullish, or vice versa. (2~ES, 5~NQ)
Structure: Go long at/just below the ATR reference (or recent swing support). Exit below the breakout zone (prior high/mid-range +1 to +2 ATR).
Management: If momentum stays above +1 ATR ride toward +2 → +3 ATR, etc. House-money, should be kept.
Exits/Adjust: Momentum downcross or squeeze flips back on (new compression) → exit. On Renko Charts, lower the sensitivity to 0.7~1. If price retests 0/−1/−2 ATR and holds, you can enter when the 9 SMA flips. The 50 SMA is better for Daily and up; I wouldn't trade against it then.
📌 FOMO Trading Playbook
Credits & License
Credits: @JF10R (Multi-Timeframe Squeeze), @BigBeluga (DSL), @OskarGallard (Colored DMI base), @ChrisMoody (WVF ideas), @PineCodersTASC (VTTI/VPCI), @EliCobra (Divergence toolkit).
License: Mozilla Public License 2.0 (MPL-2.0).
Author: © GabrielAmadeusLau
Emperor RSI CandleDescription:
The Emperor RSI Candle is a real-time, non-lagging trading indicator that colors candles based on RSI (Relative Strength Index) levels. It offers instant visual feedback on market momentum, making it easy to identify trend strength, overbought/oversold zones, and potential reversals with precision.
Unlike traditional RSI indicators, which display RSI values in a separate panel, Emperor RSI Candle integrates RSI signals directly into the candles, providing a cleaner, more intuitive charting experience. Its multi-timeframe RSI box shows RSI values across different timeframes, offering confluence confirmation for better trade decisions.
🔥 Emperor RSI Candle is original because it includes a multi-timeframe RSI box that displays RSI values from:
1 min → Monthly timeframes simultaneously.
📊 How this is unique:
Traders can instantly compare RSI values across different timeframes.
This helps them spot confluence and divergences, which is not possible with standard RSI indicators.
The multi-timeframe confluence feature makes the indicator highly effective for both short-term and long-term traders.
🚀 What the script does:
Real-time candle coloring based on RSI levels.
Multi-timeframe RSI box for confluence insights.
Customizable RSI settings for adaptability.
How it benefits traders:
Instant visual feedback for momentum and reversals.
No lag signals for precise trading decisions.
Flexible customization for different trading styles.
Unique visual signals:
Green, red, parrot green, and blue candles → Clearly indicating bullish/bearish momentum and overbought/oversold zones.
Multi-timeframe RSI box → For cross-timeframe confluence.
⚡️ 🔥 UNIQUE FEATURES 🔥:
✅ Multi-Timeframe RSI Box:
Displays RSI values from 1 min to monthly timeframes, helping traders confirm confluence across different timeframes.
✅ Fully Customizable RSI Levels & Display:
Modify RSI thresholds, source, and appearance to fit your trading style.
✅ Dynamic Candle Borders for Weak Signals:
Green border → Weak bullishness (RSI between 50-60).
Red border → Weak bearishness (RSI between 40-50).
✅ Lag-Free, Real-Time Accuracy:
No repainting or delay—instant visual signals for accurate decisions.
✅ Scalable for Any Trading Style:
Perfect for both intraday scalping and positional trading.
📊 🔥 HOW IT WORKS 🔥:
The indicator dynamically colors candles based on RSI values, providing real-time visual signals:
🟢 Above 60 RSI → Green candle:
Indicates bullish momentum, signaling potential upward continuation.
🟩 Above 80 RSI → Parrot green candle:
Overbought zone → Possible reversal or profit booking.
🟥 Below 40 RSI → Red candle:
Signals bearish momentum, indicating potential downward continuation.
🔵 Below 20 RSI → Blue candle:
Oversold zone → Possible reversal opportunity.
🔲 Neutral candles:
50-60 RSI → Green border: Weak bullishness.
40-50 RSI → Red border: Weak bearishness.
📊 🔥 MULTI-TIMEFRAME RSI BOX 🔥:
The Emperor RSI Candle includes an RSI box displaying multi-timeframe RSI values from 1 min to monthly. This provides:
✅ Confluence confirmation:
Compare RSI across multiple timeframes to strengthen trade conviction.
✅ Spot divergences:
Identify hidden trends by comparing smaller and larger timeframes.
✅ Validate trade entries/exits:
Use higher timeframe RSI to confirm smaller timeframe signals
⚙️ 🔥 HOW TO USE IT 🔥:
To maximize the accuracy and clarity of Emperor RSI Candle, follow these steps:
🔧 STEP 1: Chart Settings Configuration
Go to Chart Settings → Symbols
Uncheck the following options:
Body
Borders
Wick
✅ This ensures that only the Emperor Candle colors are visible, making the signals clear and distinct.
🔧 STEP 2: Style Settings for Emperor Candle
After applying the Emperor RSI Candle:
Go to Settings → Style tab
Wick section:
Select Color 2 and Color 3 → Set Opacity to 100%.
Border section:
Select Color 2 and Color 3 → Set Opacity to 100%.
✅ This ensures the candles display with full visibility and accurate colors.
⚙️ 🔥 CUSTOMIZATION OPTIONS 🔥:
Emperor RSI Candle offers full flexibility to match your trading style:
✅ RSI Length:
Modify the period used for RSI calculation (default: 10).
✅ Top & Bottom Levels:
Adjust the overbought (default: 80) and oversold (default: 20) thresholds.
✅ Intermediate Levels:
Up Level: Default: 60 → Bullish RSI threshold.
Down Level: Default: 40 → Bearish RSI threshold.
Mid Level: Default: 50 → Neutral zone.
✅ RSI Source:
Select the price source for RSI calculation (Close, Open, High, Low).
✅ RSI Period:
Customize the RSI calculation period (default: 10).
✅ Font Size:
Adjust the RSI box font size for better visibility.
✅ Box Position:
Choose where to display the RSI box:
Top Left / Top Center / Top Right
Bottom Left / Bottom Center / Bottom Right
💡 🔥 HOW IT IMPROVES TRADING 🔥:
✅ Clear trend identification:
Instantly recognize bullish, bearish, or neutral conditions through candle colors.
✅ Precise entries and exits:
Spot overbought and oversold zones with visual clarity.
✅ Multi-timeframe confirmation:
Validate trades with RSI confluence across multiple timeframes.
✅ No lag, real-time accuracy:
Immediate visual signals for faster and more reliable trade decisions.
✅ Customizable settings:
Tailor the indicator to fit your trading strategy and preferences.
✅ Works for all trading styles:
Suitable for scalping, day trading, and swing trading.
🔥How Traders Can Use Emperor RSI Candle for Trading:
🟢 Green Candles (Above 60 RSI) → Bullish Momentum:
Indicates strong upward movement → Ideal for long entries.
Traders can hold until RSI approaches 80 for profit booking.
🟥 Red Candles (Below 40 RSI) → Bearish Momentum:
Signals strong downward movement → Ideal for short trades.
Traders can exit or book profits near RSI 20.
2. Spotting Overbought and Oversold Zones for Reversals:
🟩 Parrot Green Candles (Above 80 RSI) → Overbought Zone:
Indicates potential for reversals or profit booking.
Traders can tighten stop-losses or exit positions.
🔵 Blue Candles (Below 20 RSI) → Oversold Zone:
Signals a potential reversal opportunity.
Traders can look for buy signals with confluence confirmation.
3. Catching Weak Bullish and Bearish Trends with Border Colors:
🟢 Green Border (RSI 50-60) → Weak Bullishness:
Indicates mild upward momentum.
Traders can consider cautious long entries.
🔴 Red Border (RSI 40-50) → Weak Bearishness:
Indicates mild downward pressure.
Traders can consider cautious short entries.
4. Using the RSI Multi-Timeframe Box for Confluence:
✅ Displays RSI values from 1 min to monthly timeframes.
Usage:
Confluence confirmation:
Multiple timeframes showing bullish RSI → Strong uptrend → Reliable buy signals.
Multiple timeframes showing bearish RSI → Strong downtrend → Reliable sell signals.
Spotting divergences:
If lower timeframes are bullish but higher timeframes are bearish, it indicates a potential reversal.
5. Customization Tips for Different Trading Styles:
✅ For Scalping:
Use a smaller RSI period (9-10) for faster signals.
Check the multi-timeframe RSI box to confirm signals quickly.
✅ For Swing Trading:
Use the default RSI period (14-15) for more accurate signals.
Focus on higher timeframes (1 hr, 4 hr, daily) for stronger trend confirmation.
YinYang TrendTrend Analysis has always been an important aspect of Trading. There are so many important types of Trend Analysis and many times it may be difficult to identify what to use; let alone if an Indicator can/should be used in conjunction with another. For these exact reasons, we decided to make YinYang Trend. It is a Trend Analysis Toolkit which features many New and many Well Known Trend Analysis Indicators. However, everything in there is added specifically for the reason that it may work well in conjunction with the other Indicators prevalent within. You may be wondering, why bother including common Trend Analysis, why not make everything unique? Ideally, we would, however, you need to remember Trend Analysis may be one of the most common forms of charting. Therefore, many other traders may be using similar Trend Analysis either through plotting manually or within other Indicators. This all boils down to Psychology; you are trading against other traders, who may be seeing some of the similar information you are, and therefore, you may likewise want to see this information. What affects their trading decisions may affect yours as well.
Now enough about Trend Analysis, what is within this Indicator, and what does it do? Well, first let’s quickly mention all of its components, then we will, through a Tutorial, discuss each individually and finally how each comes together as a cohesive whole. This Indicator features many aspects:
Bull and Bear Signals
Take Profit Signals
Bull and Bear Zones
Information Tables displaying: (Boom Meter, Bull/Bear Strength, Yin/Yang State)
16 Cipher Signals
Extremes
Pivots
Trend Lines
Custom Bollinger Bands
Boom Meter Bar Colors
True Value Zones
Bar Strength Indexes
Volume Profile
There are many things to cover within our Tutorial so let's get started, chronologically from the list above.
Tutorial:
Bull and Bear Signals:
We’ve zoomed out quite a bit for this example to help give you a broader aspect of how these Bull and Bear signals work. When a signal appears, it is displaying that there may be a large amount of Bullish or Bearish Trend Analysis occurring. These signals will remain in their state of Bull or Bear until there is enough momentum change that they change over. There are a couple Options within the Settings that dictate when/where/why these signals appear, and this example is using their default Settings of ‘Medium’. They are, Purchase Speed and Purchase Strength. Purchase Speed refers to how much Price Movement is needed for a signal to occur and Purchase Strength refers to how many verifications are required for a signal to occur. For instance:
'High' uses 15 verifications to ensure signal strength.
'Medium' uses 10 verifications to ensure signal strength.
'Low' uses 5 verifications to ensure signal strength.
'Very Low' uses 3 verifications to ensure signal strength.
By default it is set to Medium (10 verifications). This means each verification is worth 10%. The verifications used are also relevant to the Purchase Speed; meaning they will be verified faster or slower depending on its speed setting. You may find that Faster Speeds and Lower Verifications may work better on Higher Time Frames; and Slower Speeds and Higher Verifications may work better on Lower Time Frames.
We will demonstrate a few examples as to how the Speed and Strength Settings work, and why it may be beneficial to adjust based on the Time Frame you’re on:
In this example above, we’ve kept the same Time Frame (1 Day), and scope; but we’ve changed Purchase Speed from Medium->Fast and Purchase Strength from Medium-Very Low. As you can see, it now generates quite a few more signals. The Speed and Strength settings that you use will likely be based on your trading style / strategy. Are you someone who likes to stay in trades longer or do you like to swing trade daily? Likewise, how do you go about identifying your Entry / Exit locations; do you start on the 1 Day for confirmation, then move to the 15/5 minute for your entry / exit? How you trade may determine which Speed and Strength settings work right for you. Let's jump to a lower Time Frame now so you can see how it works on the 15/5 minute.
Above is what BTC/USDT looks like on the 15 Minute Time Frame with Purchase Speed and Strength set to Medium. You may note that the signals require a certain amount of movement before they get started. This is normal with Medium and the amount of movement is generally dictated by the Time Frame. You may choose to use Medium on a Lower Time Frame as it may work well, but it may also be best to change it to a little slower.
We are still on the 15 Minute Time Frame here, however we simply changed Purchase Speed from Medium->Slow. As you can see, lots of the signals have been removed. Now signals may ‘hold their ground’ for much longer. It is important to adjust your Purchase Speed and Strength Settings to your Time Frame and personalized trading style accordingly.
Above we have now jumped down to the 5 Minute Time Frame. Our Purchase Speed is Slow and our Purchase Strength is Medium. We can see it looks pretty good, although there is some signal clustering going on in the middle there. If we change our Settings, we may be able to get rid of that.
We have changed our Purchase Speed from Slow->Snail (Slowest it can go) and Purchase Strength from Medium->Very Low (Lowest it can go). Changing it from Slow-Snail helped get rid of the signal clustering. You may be wondering why we lowered the Strength from Medium->Very Low, rather than going from Medium->High. This is a use case scenario and one you’ll need to decide for yourself, but we noticed when we changed the Speed from Slow->Snail that the signal clustering was gone, so then we checked both High and Very Low for Strengths to see which produced the best looking signal locations.
Please remember, you don’t have to use it the exact way we’ve displayed in this Tutorial. It is meant to be used to suit your Trading Style and Strategy. This is why we allow you to modify these settings, rather than just automating the change based on Time Frames. You’ll likely need to play around with it, as you’ll notice different settings may work better on certain pairs and Time Frames than others.
Take Profit Signals:
We’ve reset our Purchase Settings, everything is on defaults right now at Medium. We’ve enabled Take Profit signals. As you can see there are both Take Profit signals for the Bulls and the Bears. These signals are not meant to be used within automation. In fact, none of this indicator is. These signals are meant to show there has been a strong change in momentum, to such an extent that the signal may switch from its current (Bull or Bear) and now may be a good time to Take Profit. Your Take Profit Settings likewise has a Speed and Strength, and you can set them differently than your Purchase Settings. This is in case you want to Take Profit in a different manner than your Purchase Signals. For instance:
In the example above we’ve kept Purchase Strength and Speed at Medium but we changed our Take Profit Speed from Medium->Snail and our Take Profit Strength from medium->Very Low. This greatly reduces the amount of Take Profit signals, and in some cases, none are even produced. This form of Take Profit may act more as a Trailing Take Profit that if it’s not hit, nothing appears.
In this example we have changed our Purchase Speed from Medium->Fast, our Purchase Strength from Medium->Very Low. We’ve also changed our Take Profit Speed from Snail->Medium and kept our Take Profit Strength on Very Low. Now we may get our signals quicker and likewise our Take Profit may be more rare. There are many different ways you can set up your Purchase and Take Profit Settings to fit your Trading Style / Strategy.
Bull and Bear Zones:
We have disabled our Take Profit locations so that you can see the Bull and Bear Zones. These zones change color when the Signals switch. They may represent some strong Support and Resistance locations, but more importantly may be useful for visualizing changes in momentum and consolidation. These zones allow you to see various Moving Averages; and when they start to ‘fold’ (cross) each other you may see changes in momentum. Whereas, when they’re fully stretched out and moving all in the same direction, it can provide insight that the current rally may be strong. There is also the case where they look like they’re ‘twisted’ together. This happens when all of the Moving Averages are very close together and may be a sign of Consolidation. We will go over a few examples of each of these scenarios so you can understand what we’re referring to.
In this example above, there are a few different things happening. First we have the yellow circle, where the final and slowest Moving Average (MA) crossed over and now all of the MA’s that form the zone are Bullish. You can see this in the white circle where there are no MA’s that are crossing each other. Lastly, within the blue circle, we can see how some of the faster MA’s are crossing under each other. This is a bullish momentum change. The Faster moving MA’s will always be the first ones to cross before the Slower ones do. There is a color scheme in place here to represent the Speed of the MA within the Zone. Light blue is the fastest moving Bull color -> Light Green and finally -> Dark Green. Yellow is the fastest moving Bear color -> Orange and finally -> Red / Dark Red within the Zone.
Next we will review a couple different examples of what Consolidation looks like and why it is very important to look out for. Consolidation is when Most, if not All of the MA’s are very tightly ‘twisted’ together. There is very little spacing between almost all of the MA’s in the example above; highlighted by the white circle. Consolidation is important as it may indicate a strong price movement in either direction will occur soon. When the price is consolidating it means it has had very little upwards or downwards movement recently. When this happens for long enough, MA’s may all get very similar in value. This may cause high volatility as the price tries to break out of Consolidation. Let's look at another example.
Above we have two more examples of what Consolidation looks like and how high Volatility may occur after the Consolidation is broken. Please note, not all Consolidation will create high Volatility but it is something you may want to look out for.
Information Tables displaying: (Boom Meter, Bull/Bear Strength, Yin/Yang State):
Information tables are a very important way of displaying information. It contains 3 crucial pieces of information:
Boom Meter
Bull/Bear Strength
Yin/Yang State
Boom Meter is a meter that goes from 0-100% and displays whether the current price is Dumping (0 - 29%), Consolidating (30 - 70%) or Pumping (71 - 100%). The Boom Meter is meant to be a Gauge to how the price is currently fairing. It is composed of ~50 different calculations that all vary different weights to calculate its %. Many of the calculations it uses are likewise used in other things, such as the Bull/Bear Strength, Bull/Bear Zone MA cross’, Yin/Yang State, Market Cipher Signals, RSI, Volume and a few others. The Boom Meter, although not meant to be used solely to make purchase decisions, may give you a good idea of current market conditions considering how many different things it evaluates.
Bull/Bear Strength is relevant to your Purchase Speed and Strength. It displays which state it is currently in, and the % it is within that state. When a % hits 0, is when the state changes. When states change, they always start at 100% initially and will go down at the rate of Purchase Strength (how many verifications are needed). For instance, if your Purchase Strength is set to ‘Medium’ it will move 10% per verification +/-, if it is set to High, it will move 6.67% per verification +/-. Bull/Bear Strength is a good indicator of how well that current state is fairing. For instance if you started a Long when the state changed to Bull and now it is currently at Bull with 20% left, that may be a good indication it is time to get out (obviously refer to other data as well, but it may be a good way to know that the state is 20% away from transitioning to Bear).
Yin/Yang State is the strongest MA cross within our Indicator. It is unique in the sense that it is slow to change, but not so much that it moves slowly. It isn’t as simple as say a Golden/Death Cross (50/200), but it crosses more often and may hold similar weight as it. Yin stands for Negative (Bearish) and Yang stands for Positive (Bullish). The price will always be in either a state of Yin or Yang, and just because it is in one, doesn’t mean the price can’t/won’t move in the opposite direction; it simply means the price may be favoring the state it is in.
16 Cipher Signals:
Cipher Signals are key visuals of MA cross’ that may represent price movement and momentum. It would be too confusing and hard to decipher these MA’s as lines on a chart, and therefore we decided to use signals in the form of symbols instead. There are 12 Standard and 4 Predictive/Confirming Cipher signals. The Standard Cipher signals are composed of 6 Bullish and 6 Bearish (they all have opposites that balance each other out). There can never be 2 of the same signal in a row, as the Bull and Bear cancel each other out and it's always in a state of one or the other. When all 6 Bullish or Bearish signals appear in a row, very closely together, without any of the opposing signals it may represent a strong momentum movement is about to occur.
If you refer to the example above, you’ll see that the 6 Bullish Cipher signals appeared exactly as mentioned above. Shortly after the Green Circle appeared, there was a large spike in price movement in favor of the Bulls. Cipher signals don’t need to appear in a cluster exactly like the white circle in this photo for momentum to occur, but when it does, it may represent volatility more than if it is broken up with opposing signals or spaced out over a longer time span.
Above is an example of the opposite, where all 6 Bearish Cipher signals appeared together without being broken by a Bullish Cipher signal or being too far spaced out. As you can see, even though past it there was a few Bullish signals, they were quickly reversed back to Bearish before a large price movement occurred in favor of the Bears.
In the example above we’ve changed Cipher signals to Predictive and Confirming. Support Crosses (Green +) and Blood Diamonds (Red ♦) are the normal Cipher Signals that appear within the Standard Set. They are the first Cipher Signal that appears and are the most common ones as well. However, just because they are the first, that doesn’t mean they aren’t a powerful Cipher signal. For this reason, there are Predictive and Confirming Cipher signals for these. The Predictive do just that, they appear slightly sooner (if not the same bar) as the regular and the Confirming appear later (1+ bars usually). There will be times that the Predictive appears, but it doesn’t resort to the Regular appearing, or the Regular appears and the Confirming doesn’t. This is normal behavior and also the purpose of them. They are meant to be an indication of IF they may appear soon and IF the regular was indeed a valid signal.
Extremes:
Extremes are MA’s that have a very large length. They are useful for seeing Cross’ and Support and Resistance over a long period of time. However, because they are so long and slow moving, they might not always be relevant. It’s usually advised to turn them on, see if any are close to the current price point, and if they aren’t to turn them off. The main reason being is they stretch out the chart too much if they’re too far away and they also may not be relevant at that point.
When they are close to the price however, they may act as strong Support and Resistance locations as circled in the example above.
Pivots:
Pivots are used to help identify key Support and Resistance locations. They adjust on their own in an attempt to keep their locations as relevant as possible and likewise will adjust when the price pushes their current bounds. They may be useful for seeing when the Price is currently testing their level as this may represent Overbought or Oversold. Keep in mind, just because the price is testing their levels doesn’t mean it will correct; sometimes with high volatility or geopolitical news, movement may continue even if it is exhibiting Overbought or Oversold traits. Pivots may also be useful for seeing how far the price may correct to, giving you a benchmark for potential Take Profit and Stop Loss locations.
Trend Lines:
Trend Lines may be useful for identifying Support and Resistance locations on the Vertical. Trend Lines may form many different patterns, such as Pennants, Channels, Flags and Wedges. These formations may help predict and drive the price in specific directions. Many traders draw or use Indicators to help create Trend Lines to visualize where these formations will be and they may be very useful alone even for identifying possible Support and Resistance locations.
If you refer to the previous example, and now to this example, you’ll notice that the Trend Line that supported it in 2023 was actually created in June 2020 (yellow circle). Trend Lines may be crucial for identifying Support and Resistance locations on the Vertical that may withhold over time.
Custom Bollinger Bands:
Bollinger Bands are used to help see Movement vs Consolidation Zones (When it's wide vs narrow). It's also very useful for seeing where the correction areas may be. Price may bounce between top and bottom of the Bollinger Bands, unless in a pump or dump. The Boom Meter will show you whether it is currently: Dumping, Consolidation or Pumping. If combined with Boom Meter Bar Colors it may be a good indication if it will break the Bollinger Band (go outside of it). The Middle Line of the Bollinger Band (White Line) may be a very strong support / resistance location. If the price closes above or below it, it may be a good indication of the trend changing (it may indicate one of the first stages to a pump or dump). The color of the Bollinger Bands change based on if it is within a Bull or Bear Zone.
What makes this Bollinger Band special is not only that it uses a custom multiplier, but it also incorporates volume to help add weight to the calculation.
Boom Meter Bar Colors:
Boom Meter Bar Colors are a way to see potential Overbought and Oversold locations on a per bar basis. There are 6 different colors within the Boom Meter bar colors. You have:
Overbought and Very Bullish = Dark Green
Overbought and Slightly Bullish = Light Green
Overbought and Slight Bearish = Light Red
Oversold and Very Bearish = Dark Red
Oversold and Slightly Bearish = Orange
Oversold and Slightly Bullish = Light Purple
When there is no Boom Meter Bar Color prevalent there won’t be a color change within the bar at all.
Just because there is a Boom Meter Bar Color change doesn’t mean you should act on it purchase or sell wise, but it may be an indication as to how that bar is fairing in an Overbought / Oversold perspective. Boom Meter Bar Colors are mainly based on RSI but do take in other factors like price movement to determine if it is Overbought or Oversold. When it comes to Boom Meter Bar Color, you should take it as it is, in the sense that it may be useful for seeing how Individual bars are fairing, but also note that there may be things such as:
When there is Very Overbought (Dark Green) or Very Oversold (Dark Red), during massive pump or dumps, it will maintain this color. However, once it has lost ‘some’ momentum it will likely lose this color.
When there has been a massive Pump or Dump, and there is likewise a light purple or light red, this may mean there is a correction or consolidation incoming.
True Value Zones:
True Value zones are our custom way of displaying something that is similar to a Bollinger Band that can likewise twist like an MA cross. The main purpose of it is to display where the price may reside within. Much like a Bollinger Band it has its High and Low within its zone to specify this location. Since it has the ability to cross over and under, it has the ability to specify what it thinks may be a Bullish or Bearish zone. This zone uses its upper level to display what may be a Resistance location and its lower level to display what may be a Support location. These Support and Resistance locations are based on Momentum and will move with the price in an attempt to stay relevant.
You may use these True Values zones as a gauge of if the price is Overbought or Oversold. When the price faces high volatility and moves outside of the True Value Zones, it may face consolidation or likewise a correction to bring it back within these zones. These zones may act as a guideline towards where the price is currently valued at and may belong within.
Bar Strength Indexes:
Bar Strength Indexes are our way of ranking each bar in correlation to the last few. It is based on a few things but is highly influenced on Open/Close/High/Low, Volume and how the price has moved recently. They may attempt to ‘rate’ each bar and how Bullish/Bearish each of these bars are. The Green number under the bar is its Bullish % and the Red number above the bar is its Bearish %. These %’s will always equal 100% when combined together. Bar Strength Indexes may be useful for seeing when either Bullish or Bearish momentum is picking up or when there may be a reversal / consolidation.
These Bar Strength Indexes may allow you to decipher different states. If you refer to the example above, you may notice how based on how the numbers are changing, you may see when it has entered / exited Bullish, Bearish and Consolidation. Likewise, if you refer to the current bar (yellow circle), you can see that the Bullish % has dropped from 93 to 49; this may be signifying that the Bullish movement is losing momentum. You may use these changes in Bar Indexes as a guide to when to enter / end trades.
Volume Profile:
Volume Profile has been something that has been within TradingView for quite some time. It is a very useful way of seeing at what Horizontal Price there has been the most volume. This may be very useful for seeing not only Support and Resistance locations based on Volume, but also seeing where the majority of Limit Orders are placed. Limit Orders are where traders decide they want to either Buy / Sell but have the order placed so the trade won’t happen until the price reaches a certain amount. Either through many orders from many traders, or a single order from a ‘Whale’ (trader with a lot of capital); you may see Support and Resistance at specific Price Points that have large Volume.
Many Volume Profile Indicators feature a breakdown of all the different locations of volume, along with a Point Of Control (POC) line to designate where the most Volume has been. To try and reduce clutter within our already very saturated Toolkit Indicator, we’ve decided to strip our Volume Profile to only display this POC line. This may allow you to see where the crucial Volume Support and Resistance is without all of the clutter.
You may be wondering, well how important is this Volume Profile POC line and how do I go about using it? Aside from it being a gauge towards where Support and Resistance may be within Volume, it may also be useful for identifying good Long/Short locations. If you think of the line as a ‘Battle’ between the Bulls and Bears, they’re both fighting over that line. The Bears are wanting to break through it downwards, and the Bulls are wanting to break through it upwards. When one side has temporarily won this battle, this means they may have more Capital to push the price in their direction. For instance, if both the Bulls and the Bears are fighting over this POC price, that means the Bears think that price is a good spot to sell; however, the Bulls also deem that price to be a good point to buy. If the Bulls were to win this battle, that means the Bears either canceled their orders to reevaluate, or all of their orders have been completed from the Bulls buying them all. What may happen after that is, if the Bulls were able to purchase all of these Limit Sell Orders, then they may still have more Capital left to continue to pressure the price upwards. The same may be true for if the Bears were to win this ‘Battle’.
How to use YinYang Trend as a cohesive whole:
Hopefully you’ve read and understand how each aspect of this Indicator works on its own, as knowing how/what they each do is important to understanding how it is used as a cohesive whole. Due to the fact that this Toolkit of an Indicator displays so much data, you may find it easier to use and understand when you’re zoomed in a little, somewhat like we are in this example above.
If we refer to the example above, you may like us, deduce a few things:
1. The current price may be VERY Overbought. This may be seen by a few different things:
The Boom Meter Bar Colors have been exhibiting a Dark Green color for 6 bars in a row.
The price has continuously been moving the High (red) Pivot Upwards.
Our Boom Meter displays ‘Pumping’ at 100%.
The price broke through a Downward Trend Line that was created in February of 2022 at 45,000 like it was nothing.
The Bar Strength Index hit a Bullish value of 93%.
The Price broke out of the Bollinger Bands and continues to test its upper levels.
The Low is much greater than our fastest moving MA that creates the Purchase Zones.
The Price is vastly outside of the True Value Zone.
The Bar Strength Index of our current bar is 50% bullish, which is a massive decrease from the previous bar of 93%. This may indicate that a correction is coming soon.
2. Since we’ve identified the current price may be VERY Overbought, next we need to identify if/when/to where it may correct to:
We’ve created a new example here to display potential correction areas. There are a few places it has the ability to correct to / within:
The downward Trend Line (red) below the current bar sitting currently at 32,750. This downward Trend Line is at the same price point as the Fastest MA of our Purchase Zone which may provide some decent Support there.
Between two crucial Pivot heights, within a zone of 30,000 to 31,815. This zone has the second fastest MA from the Purchase Zone right near the middle of it at 31,200 which may act as a Support within the Zone. Likewise there is the Bollinger Band Basis which is also resting at 30,000 which may provide a strong Support location here.
If 30,000 fails there may be a correction all the way to the bottom of our True Value Zone and the top of one of our Extremes at 27,850.
If 27,850 fails it may correct all the way to the bottom of our Purchase Zone / lowest of our Extremes at 27,350.
If all of the above fails, it may test our Volume Profile POC of 26,430. If this POC fails, the trend may switch to Bearish and continue further down to lower levels of Support.
The price can always correct more than the prices mentioned above, but considering overall this Indicator is favoring the Bulls, we will tailor this analysis in Favor of the Bullish Momentum maintaining even during this correction. For these reasons, we think the price may correct between the 30,000 and 31,815 zone before continuing upwards and maintaining this Bullish Momentum.
Please note, these correction estimates are just that, they’re estimates. Aside from the fact that the price is very overbought right now and our Bar Strength Index may be declining (bar hasn’t closed yet); the Boom Meter Strength remains at 100%, meaning there may not be much Bearish momentum changes happening yet. We just want to show you how an Preemptive analysis may be done before there are even Bearish Cipher Signals appearing.
Using this Indicator, you may be able to decipher Entry and Exits. In the previous example, we went over how you may use it to see where a correction (Exit / Take Profit) may be and how far this correction may go. In this example above we will be discussing how to identify Entry locations. We will be discussing a Bullish Buy entry but the same rules apply for a Bearish Sell Entry just the opposite with the Cipher Signals.
If you refer to where we circled in white, this is where the Purchase Zones faced Consolidation. When the Purchase Zones all get tight and close together like that, this may represent Volatility and Momentum in either direction may occur soon.
This was then followed by all 6 of the Standard Cipher Signals closely in succession to each other. This means the Momentum may be favoring the Bulls. If this was likewise all 6 of the Bearish Cipher Signals closely in succession, than the momentum change would favor the Bears.
If you were looking for an entry, and you saw Consolidation with the Purchase Zones and then shortly after you saw the Green Circle and Blue Flag (they can swap order); this may now be a good Entry location.
We will conclude this Tutorial here. Hopefully this has taught you how this Trend Analysis Toolkit may help you locate multiple different types of important Support and Resistance locations; as well as possible Entry and Exit locations.
Settings:
1. Bull/Bear Zones:
1.1. Purchase Speed (Bull/Bear Signals and Take Profit Signals):
Speed determines how much price movement is needed for a signal to occur.
'Sonic' uses the extremities to try and get you the best entry and exit points, but is so quick, its speed may reduce accuracy.
'Fast' may attempt to capitalize on price movements to help you get SOME or attempt to lose LITTLE quickly.
'Medium' may attempt to get you the most optimal entry and exit locations, but may miss extremities.
'Slow' may stay in trades until it is clear that momentum has changed.
'Snail' may stay in trades even if momentum has changed. Snail may only change when the price has moved significantly (This may result in BIG gains, but potentially also BIG losses).
1.2. Purchase Strength (Bull/Bear Signals and Take Profit Signals):
Strength ensures a certain amount of verifications required for signals to happen. The more verifications the more accurate that signal is, but it may also change entry and exit points, and you may miss out on some of the extremities. It is highly advised to find the best combination between Speed and Strength for the TimeFrame and Pair you are trading in, as all pairs and TimeFrames move differently.
'High' uses 15 verifications to ensure signal strength.
'Medium' uses 10 verifications to ensure signal strength.
'Low' uses 5 verifications to ensure signal strength.
'Very Low' uses 3 verifications to ensure signal strength.
2. Cipher Signals:
Cipher Signals are very strong EMA and SMA crosses, which may drastically help visualize movement and help you to predict where the price will go. All Symbols have counter opposites that cancel each other out (YinYang). Here is a list, in order of general appearance and strength:
White Cross / Diamond (Predictive): The initial indicator showing trend movement.
Green Cross / Diamond (Regular): Confirms the Predictive and may add a fair bit of strength to trend movement.
Blue Cross / Diamond (Confirming): Confirms the Regular, showing the trend might have some decent momentum now.
Green / Red X: Gives momentum to the current trend direction, possibly confirming the Confirming Cross/Diamond.
Blue / Orange Triangle: may confirm the X, Possible pump / dump of decent size may be coming soon.
Green / Red Circle: EITHER confirms the Triangle and may mean big pump / dump is potentially coming, OR it just hit its peak and signifies a potential reversal correction. PAY ATTENTION!
Green / Red Flag: Oddball that helps confirm trend movements on the short term.
Blue / Yellow Flag: Oddball that helps confirm trend movements on the medium term (Yin / Yang is the long term Oddball).
3. Bull/Bear Signals:
Bear and Bull signals are where the momentum has changed enough based on your Purchase Speed and Strength. They generally represent strong price movement in the direction of the signal, and may be more reliable on higher TimeFrames. Please don’t use JUST these signals for analysis, they are only meant to be a fraction of the important data you are using to make your technical analysis.
4. Take Profit Signals:
Take Profit signals are guidelines that momentum has started to change back and now may be a good time to take profit. Your Take Profit signals are based on your Take Profit Speed and Strength and may be adjusted to fit your trading style.
5. Information Tables:
Information tables display very important data and help to declutter the screen as they are much less intrusive compared to labels. Our Information tables display: Boom Meter, Purchase Strength of Bull/Bear Zones and Yin/Yang State.
Boom Meter: Uses over 50 different calculations to determine if the pair is currently 'Dumping' (0-29%), 'Consolidating' (30-70%), or 'Pumping' (71-100%).
Bull / Bear Strength: Shows the strength of the current Bull / Bear signal from 0-100% (Signals start at 100% and change when they hit 0%). The % it moves up or down is based on your 'Purchase Strength'.
Yin / Yang state: Is one of the strongest EMA/SMA crosses (long term Oddball) within this Indicator and may be a great indication of which way the price is moving. Do keep in mind if the price is consolidating when changing state, it may have the highest chance of switching back also. Once momentum kicks in and there is price movement the state may be confirmed. Refer to other Cipher Symbols, Extremes, Trend, BOLL, Boom %, Bull / Bear % and Bar colors when Bull / Bear Zones are consolidating and Yin / Yang State changes as this is a very strong indecision zone.
6. Bull / Bear Zones:
Our Bull / Bear zones are composed of 8 very important EMA lengths that may act as not only Support and Resistance, but they help to potentially display consolidation and momentum change. You can tell when they are getting tight and close together it may represent consolidation and when they start to flip over on each other it may represent a change in momentum.
7. MA Extremes:
Our MA Extremes may be 3 of the most important long term moving averages. They don’t always play a role in trades as sometimes they’re way off from the price (cause they’re extreme lengths), but when they are around price or they cross under or over each other, it may represent large changes in price are about to occur. They may be very useful for seeing strong resistance / support locations based on price averages. Extremes may transition from a Support to a Resistance based on its position above or below them and how many times the price has either bounced up off them (Supporting) or Bounced back down after hitting them (Resistance).
8. Pivots:
Pivots may be a very important indicator of support and resistance for horizontal price movement. Pivots may represent the current strongest Support and Resistance. When the Pivot changes, it means a new strong Support or Resistance has been created. Sometimes you'll notice the price constantly pushes the pivot during a massive Pump or Dump. This is normal, and may indicate high levels of volatility. This generally also happens when the price is outside of the Bollinger Bands and is also Over or Undervalued. The price usually consolidates for a while after something like this happens before more drastic movement may occur.
9. Trend Lines:
Trend lines may be one of the best indicators of support and resistance for diagonal price movement. When a Trend Line fails to hold it may be a strong indication of a dump. Keep a close eye to where Upward and Downward Trend Lines meet. Trend lines can create different trading formations known as Pennants, Flags and Wedges. Please familiarize yourself with these formations So you know what to look for.
10. Bollinger Bands (BOLL):
Bollinger Bands may be very useful, and ours have been customized so they may be even more accurate by using a modified calculation that also incorporates volume.
Bollinger Bands may be used to see Movement vs Consolidation Zones (When it’s wide vs narrow). It also may be very useful for seeing where the correction areas are likely to be. Price may bounce between top and bottom of the BOLL, unless perhaps in a pump or dump. The Boom Meter may show you whether it is currently: Dumping, Consolidation or Pumping, along with Boom Meter Bar Colors, may be a good indication if it will break the BOLL. The Middle Line of the BOLL (White Line) may be a very strong support / resistance line. If the price closes above or below it, it may be a good indication of the trend changing (it may be one of the first stages to a pump or dump).
11. Boom Meter Bar Colors:
Boom Meter bar colors may be very useful for seeing when the bar is Overbought or Underbought. There are 6 different types of boom meter bar colors, they are:
Dark Green: RSI may be very Overbought and price going UP (May be in a big pump. NOTICE, chance of small dump correction if Cherry Red bar appears).
Light Green: RSI may be slightly Overbought and price going UP (chance of small pump).
Light Purple: RSI may be very Underbought and price going UP (May have chance of small correction).
Dark Red: RSI may be very Underbought and price going DOWN (May be in a big dump. NOTICE, chance of small pump correction if Light Purple bar appears).
Light Orange: RSI may be slightly Underbought and price going DOWN (chance of small dump).
Cherry Red: RSI may be very Overbought and price going DOWN (Chance of small correction).
12. True Value Zone:
True Value Zones display zones that represent ranges to show what the price may truly belong within. They may be very useful for knowing if the Price is currently not valued correctly, which generally means a correction may happen soon. True Value Zones can swap from Bullish to Bearish and are represented by Red for Bearish and Green for Bullish. For example, if the price is ABOVE and OUTSIDE of the True Value Zone, this means it may be very overvalued and might correct to go back inside the True Value Zone. This correction may be done by either dumping in price back into the zone, or consolidating horizontally back into it over a longer period of time. Vice Versa is also true if it is BELOW and OUTSIDE of the True Value Zone.
13. Bar Strength Index:
Bar Strength Index may display how Bullish/Bearish the current bar is. The strength is important to help see if a pump may be losing momentum or vice versa if a dump may correct. Keep in mind, the Bar Strength Index does a small 'refresh' to account for new bars. It may help to keep the Index more accurate.
14. Volume Profile:
Volume Profiles may be important to know where the Horizontal Support/Resistance is in Price base on Volume. Our Volume Profile may identify the point where the most volume has occurred within the most relevant timeframe. Volume Profiles are helpful at identifying where Whales have their orders placed. The reason why they are so helpful at identifying whales is when the volume is profiled to a specific area, there may likely be lots of Limit Buy and/or Sells around there. Limit Buys may act as Support and Limit Sells may act as Resistance. It may be very useful to know where these lie within the price, similar to looking at Order Book Data for Whale locations.
If you have any questions, comments, ideas or concerns please don't hesitate to contact us.
HAPPY TRADING!






















