dTF50This is a customized trend filter that has several uses:
It helps identify trend direction, either bullish or bearish
It distinguishes between a pullback and a trend reversal
It helps identify areas where traders should stand aside
It highlights areas of consolidation
Cari skrip untuk "bear"
OBV divergence hidden and regular on both bearish and bullish.OBV (on balance volume) divergence indicator with hidden and regular signal on both bearish and bullish.
CMYK VRMI◊ Introduction
This script indicates the relative movement of price x volume.
◊ Origin
Based on 'The Relative Momentum Index' by Roger Altman : February, 1993 issue of Technical Analysis of Stocks & Commodities magazine.
While RSI counts up and down days from close to close, the Relative Momentum Index counts up and down days from the close relative to a close x number of days ago.
This results in an RSI that is smoother. The input has been changed to the change of a smoothed close multiplied by a smoothed volume.
The polarity of VRMI indicates bearish/bullish movement.
◊ Adjustments
CMYK color theme applied.
◊ Usage
VRMI indicates the force the market moves with.
◊ Future Prospects
-
◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊
CMYK VRMI RAYS ◊ Introduction
Introducing VRMI in this script, an RMI based on price movement and volume, to indicate bullish and bearish trends.
This script marks the background depending on RMI <> VRMI , VRMI polarity and large buy/sell sprees.
◊ Origin
Based on 'The Relative Momentum Index' by Roger Altman : February, 1993 issue of Technical Analysis of Stocks & Commodities magazine.
While RSI counts up and down days from close to close, the Relative Momentum Index counts up and down days from the close relative to a close x number of days ago.
This results in an RSI that is smoother.
In addition VRMI reacts quick, it is used to cut off latency from RMI, and it's polarity indicates the beginning and end of a trend.
Large buy sell sprees and detected in their proportion with an sma on the volume
◊ Adjustments
CMYK color theme applied.
◊ Usage
This indicator can be used to detect trends and mark reversals.
◊ Prospects
◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊
Bullish and Bearish Engulfing Patterns auto detectionThis simple indicator detects automatically most important bullish and bearish candlestick patterns formations. Used to locate potential supply and demand imbalances.
Copyright 2017 Alfonso Moreno www.set-and-forget.com
Super Envolvente (Bullish y Bearish)Identificador de Super-envolventes (SE), se encarga de darle un color verde a la SE alzista (Bullish) verde y rojo a la bajista (Bearish).
Bears VS BullsThis indicator will work on ANY instrument.
The red line is a moving average of ONLY sellers in the market.
The blue line is a moving average of ONLY buyers in the market.
The period or "length" of the individual moving averages can be adjusted in the indicator settings.
The default, it is set to 50.
Buying and selling trends often provide indications of market moves such as the most recent bottom in Cryptocurrencies.
Feel free to comment and share any indicator concepts or ideas for content you would like to see added to the Technical Indicator Bundle on www.kenzing.com
Bearish Trailing stopIt is a trailing SL. Works very well. Good good very good. Looks like my description needs more, so here is more random text.
bearish Price Below PDL - Complete Multi-Confirmation Alert🎯 KEY IMPROVEMENTS:
1. Enhanced Alert Visibility:$jmoskyhigh
✅ HUGE triangle down marker with "SELL" text
✅ Alert title: "SELL SIGNAL - PDL BREAKDOWN CONFIRMED"
✅ Prominent info panel with red theme
✅ Clear "SELL ALERT: TRIGGERED" status
2. Better Visual Feedback:
Red frame around info panel
Larger shapes and markers
Color-coded confirmations (green = OK, red = FAIL)
Progress percentage displayed
Breakdown price label
3. Complete Alert System:
Main Alert: "SELL SIGNAL - PDL BREAKDOWN CONFIRMED"
Early Warning: "PDL Breakdown Started - Monitoring"
Reset Alert: "Confirmation Lost - Breakdown Reset"
Bearish signal using Point of Control (POC) with PAC by guruThis indicator code helps traders identify potential sell opportunities using several important technical indicators:
Point of Control (POC) – This is the price level where the most volume was traded over the past several days.
Previous Day's Low – This shows the lowest price reached during the previous day.
PAC (Price Action Channel) EMA – These are two moving averages (one based on the low price and one based on the close price) that help determine if the price is trending within a certain range.
Volume SMA – This is a 3-day simple moving average (SMA) of volume, which helps filter out signals based on market activity.
What the Script Does:
Point of Control (POC):
The script looks at the last 50 days (configurable) and calculates which price level had the highest trading volume.
It then plots a red line on the chart at the POC level. This is important because it helps identify areas where there was strong market interest in the past.
Volume Moving Average:
The script calculates a 3-day SMA of volume, but it excludes the current day to avoid premature signals based on today’s trading.
The volume SMA is used to ensure there’s enough market activity (with a threshold set to 25 units) before triggering a sell signal.
Price Action Channel (PAC) EMA:
The PAC consists of two exponential moving averages (EMAs):
The PAC Low EMA: This is based on the low prices over the last 34 periods (configurable).
The PAC Close EMA: This is based on the closing prices over the last 34 periods.
These EMAs help determine if the price is trending above or below certain price levels.
Sell Signal Logic: The script checks three conditions before displaying a "Sell" signal:
Price Below POC and Previous Day’s Low:
The close price must be below both the Point of Control (POC) and the previous day's low.
Volume SMA Above 25:
The 3-day volume SMA must be greater than 25. This ensures the signal only triggers when there’s enough trading volume in the market.
Today’s Low is Above PAC EMAs:
Today's low price must be above both the PAC low EMA and the PAC close EMA. This prevents sell signals when prices are already significantly below the PAC, indicating possible exhaustion in the downtrend.
If all three conditions are met, the script will display a red "Sell" label on the chart, signaling a potential selling opportunity.
No Sell Signal if Price Reverses:
If the price crosses back above the POC or the previous day's low, the script will remove the sell signal and reset for a new opportunity.
Summary of Conditions:
For the script to display a "Sell" label:
The close price must be below the Point of Control (POC) and the previous day’s low.
The 3-day volume SMA (excluding today) must be greater than 25 units.
The low price of the current day must be above both the PAC low EMA and the PAC close EMA.
If these conditions are met, a red sell label appears on the chart as a potential signal for a short (sell) trade.
Bearish FS Continuation S1BB - baby bar / inside bar
DF - downflow, meaning 20MA below 50MA
EXE - execution bar, indicator to short
Mainly to identify execution bar for shorting using inside bar identification and force top
Guneet-ScalperBearish trend candle color change to red with sell print
Bullish trend candle color change to green with buy print
thanks
jas toor
PrecisionAlgoGuard v1.4Context before Signals — that is the reason PrecisionAlgoGuard v1.4 exists.
PrecisionAlgoGuard v1.4 is a real-time market quality and trap detection engine that answers one question before every trade: are conditions safe to trade right now? Most indicators tell you where to enter. PrecisionAlgoGuard tells you whether you should be trading at all — and if so, which direction the environment favors.
Every trader has been there — you take what looks like a perfect setup and it immediately goes against you. The pattern was right, your entry was clean, but something felt off about the way price was moving. The problem is rarely the signal. The problem is the environment. Most losses come from trading in conditions that were never going to let your setup work — choppy, manipulated, or simply dead tape. PrecisionAlgoGuard was built to help solve that. Before you take any trade, it tells you one thing: should you even be trading right now? And if so, does the environment favor longs or shorts? Knowing when to sit out is just as valuable as knowing when to get in. This is the tool that helps keep you on the right side of that decision.
HOW IT WORKS
PrecisionAlgoGuard builds a composite Market Quality Score (0–100) by analyzing bar-level price behavior in real time. The score combines normalized range expansion, volume thrust, and a penalty system that detects specific manipulation patterns and low-quality conditions.
The score drives three primary states:
OK (green) — Conditions are clean and tradeable. When directional confluence is present, the label specifies OK LONG or OK SHORT.
CAUTION (yellow) — Conditions are degrading. Reduced position sizing or sitting out is appropriate.
NO TRADE (orange) — Active trap patterns detected or score has collapsed. Stay flat.
WHAT IT DETECTS
PrecisionAlgoGuard identifies six distinct market conditions that degrade trade quality:
VWAP Pinning — Price is compressing around VWAP with narrowing range, indicating institutional positioning or indecision.
Wick Traps — Disproportionate wick-to-body ratios signaling rejection and stop-hunting behavior.
Fake Breakouts — Price breaks a recent high but fails to hold, closing back under the prior level.
Absorption — High volume with minimal price movement, suggesting large orders are absorbing directional flow.
Churn / Wash — Elevated volume with no net price progress over multiple bars, indicating distribution or accumulation disguised as activity.
Low Volatility — ATR has compressed below historical norms, meaning moves lack the energy to follow through.
Each detection appears as a labeled alert next to the score, so you can see exactly what triggered the warning.
DIRECTIONAL BIAS
When conditions are in the OK state, PrecisionAlgoGuard evaluates four microstructure factors to determine if the environment favors longs or shorts:
Price position relative to VWAP
Smoothed close location within bar ranges
Recent bar momentum direction
Price relative to short-term EMA
When two or more factors align in one direction, the label displays OK LONG or OK SHORT. The Bull and Bear factor counts are displayed alongside so you can gauge conviction strength. Bull:4 Bear:0 represents maximum directional confluence; Bull:2 Bear:1 is a weaker lean.
This is not a buy/sell signal — it is a directional context filter. It tells you which side of the market the microstructure currently supports, so you can align your entries with the path of least resistance.
AUTO-DETECT MODE
PrecisionAlgoGuard automatically identifies the instrument type and adjusts all detection thresholds accordingly. No manual configuration required. Load any chart and PrecisionAlgoGuard configures itself.
EXAMPLE: CMCL 5-Minute Replay (Screenshots)
The following sequence shows PrecisionAlgoGuard tracking Caledonia Mining (CMCL) through a full trading session. PrecisionCombo is loaded on the price chart above for visual context.
Score: 81 | OK LONG | Bull:3 Bear:0
Premarket breakout is underway. AlgoGuard score is 81 with three bullish factors aligned. Conditions are clean and favor the long side. The BO on the price chart confirms the move — this is a green light.
Score: 40 | NO TRADE | FAKE BREAKOUT | Bull:4 Bear:0
Price pushes higher but AlgoGuard drops to 40 and flags a fake breakout. Despite all four directional factors reading bullish, the NO TRADE state overrides — conditions are not safe regardless of direction. The right move is to wait.
Score: 27 | NO TRADE | WICK TRAP + FAKE BREAKOUT | Bull:3 Bear:0
Conditions deteriorate further. Score collapses to 27 with two trap patterns stacking — wick trap and fake breakout detected simultaneously. This is exactly the kind of environment that eats traders alive. AlgoGuard is saying stay flat, period.
Score: 76 | OK SHORT | Bull:1 Bear:2
Conditions have cleaned up — score recovers to 76 — but the directional bias has flipped. OK SHORT with Bear:2 tells you the microstructure now favors the short side. The yellow fast exit arrow on the price chart aligns with this read.
Score: 52 | CAUTION | LOW VOLATILITY | Bull:1 Bear:1
Energy is fading. Score sits at 52 with low volatility detected. Bull and Bear counts are even — no directional edge. The price chart shows choppy, directionless action. AlgoGuard is telling you there's nothing worth trading here.
Score: 45 | CAUTION | WICK TRAP | Bull:1 Bear:2
Still degraded. Wick traps are appearing as price grinds lower. Bear:2 leans short but the CAUTION state means conditions aren't clean enough for high-conviction trades. Reduced size or sitting out is the move.
HOW TO USE IT
PrecisionAlgoGuard is designed as a context filter, not a standalone signal generator. Use it alongside your preferred entry method to validate trade quality before committing capital. In the screenshots above, PrecisionCombo was used as chart context.
Green score + OK LONG/SHORT — Conditions support taking trades in the indicated direction.
Yellow score + CAUTION — Reduce size or wait for conditions to improve.
Red/Orange score + NO TRADE — Stay flat. Active trap patterns are present.
Bull/Bear counts — Gauge directional conviction. Higher counts mean stronger microstructure alignment.
Alert conditions are included for all state changes and trap detections.
DISCLAIMER
PrecisionAlgoGuard is a technical analysis tool designed to assist with evaluating market conditions. It is not financial advice and does not constitute a recommendation to buy, sell, or hold any security. No indicator can predict future price movement with certainty. All trading involves risk, including the potential loss of principal. Past performance of any indicator, system, or methodology is not necessarily indicative of future results. Users are solely responsible for their own trading decisions. Always conduct your own analysis and consult with a qualified financial professional before making investment decisions. By using this script, you acknowledge that Precision Trading Tools LLC is not liable for any trading losses incurred.
Precision Trading Tools LLC
QMF- Market Structure & Signal Suite [BullByte]QUANTUM MOMENTUM FUSION - Market Structure and Signal Suite
OVERVIEW
Quantum Momentum Fusion is a comprehensive market analysis framework built around a multi-dimensional momentum oscillator. This indicator was designed to give traders a complete analytical workspace in a single tool, combining momentum measurement, market structure identification, trendline analysis, divergence detection, and multi-timeframe context into one unified system.
The core philosophy behind QMF is that successful trading decisions come from understanding multiple aspects of market behavior simultaneously, not from relying on any single indicator or signal. The oscillator serves as the analytical foundation, and every other component builds upon it to create a complete picture of current market conditions.
This description will walk through each component of the indicator, explaining what it measures, why that information matters, and how to interpret what you see on the chart. Whether you are an experienced trader familiar with oscillator analysis or newer to technical indicators, each section aims to make the concepts accessible and practical.
THE QUANTUM ENGINE: UNDERSTANDING THE CORE OSCILLATOR (why its original and not a mashup)
At the heart of this indicator is the Quantum Momentum Fusion oscillator, displayed in its own pane below the price chart. Unlike traditional oscillators that measure a single aspect of price behavior, the QMF oscillator synthesizes four distinct market dimensions into one unified reading.
WHAT IS AN OSCILLATOR
For those less familiar with the term, an oscillator is a technical indicator that fluctuates between defined boundaries, typically showing whether an asset is experiencing strong buying pressure, strong selling pressure, or neutral conditions. The QMF oscillator moves between 0 and 100, with 50 representing the neutral midpoint.
When the oscillator is high (above 70), it suggests the market has experienced significant upward momentum and may be approaching exhaustion. When low (below 30), it suggests the market has experienced significant downward momentum and may be due for a bounce. The space between these extremes represents normal market fluctuation.
THE FOUR DIMENSIONS
What makes the QMF oscillator different from standard momentum indicators is that it combines four separate measurements into its calculation. Each dimension captures a different aspect of market behavior:
VELOCITY DIMENSION
This measures how quickly momentum itself is changing. Think of it like acceleration in a car. Knowing the car is moving forward (direction) is useful, but knowing whether the driver is pressing the accelerator or the brake (acceleration) tells you what is likely to happen next. The velocity dimension calculates the rate of change of the rate of change, providing early warning when momentum is about to shift direction. In practical terms, this can show momentum weakening before price actually reverses.
Why it matters: Price can continue in one direction for a while even after the underlying momentum starts to fade. By measuring acceleration, you can identify potential turning points earlier than with simple momentum indicators.
How it appears: This dimension is calculated internally and combined with the others. You do not see it separately, but its effect shows in the oscillator responding earlier to momentum shifts.
VOLUME DIMENSION
This measures price movement weighted by trading volume. A price move accompanied by high volume has different significance than the same price move on low volume. High volume suggests conviction and participation from larger traders. Low volume suggests the move may lack follow-through.
The volume dimension multiplies price change by a volume ratio (current volume compared to average volume), giving greater weight to moves that have volume confirmation behind them.
Why it matters: Volume often precedes price. Strong volume on a move suggests institutional participation and increases the probability that the move will continue. Weak volume on a move suggests it may be easily reversed.
How it appears: Moves with strong volume conviction will push the oscillator more definitively, while low-volume moves will have muted effect on the reading.
VOLATILITY DIMENSION
This normalizes price movement against the current volatility environment. Markets go through periods of high volatility (large price swings) and low volatility (small price swings). A 1% move during a low volatility period is more significant than a 1% move during a high volatility period.
The volatility dimension divides price change by Average True Range (ATR), which measures typical price range. This tells you whether current movement is significant relative to what is normal for this market right now.
Why it matters: Without volatility normalization, the oscillator would react the same way to all price moves regardless of context. By adjusting for volatility, the oscillator identifies moves that are genuinely significant versus normal noise within the current regime.
How it appears: During quiet markets, smaller price moves can still register as significant if they exceed normal volatility. During volatile markets, the oscillator will not overreact to moves that are within expected range.
SESSION DIMENSION
This tracks where price is positioned relative to the session Volume Weighted Average Price (VWAP). VWAP represents the average price at which trading has occurred during the session, weighted by volume. Institutional traders often use VWAP as a benchmark for fair value.
When price is consistently above VWAP, it suggests buyers are willing to pay above average prices, indicating accumulation. When price is consistently below VWAP, it suggests sellers are accepting below average prices, indicating distribution.
Why it matters: VWAP positioning provides insight into whether institutional traders are likely accumulating or distributing. Price repeatedly returning to and bouncing from VWAP can indicate support, while price repeatedly failing at VWAP can indicate resistance.
How it appears: The session dimension contributes bullish readings when price maintains above VWAP and bearish readings when price maintains below VWAP.
ADAPTIVE WEIGHTING
The four dimensions are combined using configurable weights, and the system can operate in Adaptive Mode. When Adaptive Mode is enabled, the indicator automatically adjusts its sensitivity based on the current volatility regime. During high volatility periods, sensitivity increases to capture larger moves. During low volatility periods, sensitivity decreases to filter out noise.
This means the oscillator adapts to changing market conditions without requiring manual adjustment.
READING THE OSCILLATOR: DISPLAY MODES AND ZONES
The QMF oscillator can be displayed in four different visual formats. Each shows the same underlying data but presents it differently based on trader preference.
ENERGY CANDLES
This mode displays the oscillator as candlestick-style candles. Just as price candles show open, high, low, and close for price, energy candles show these values for the QMF oscillator.
Green candles indicate the oscillator closed higher than it opened (bullish momentum). Red candles indicate the oscillator closed lower than it opened (bearish momentum). The body size shows how much the oscillator moved during the period. Larger bodies indicate stronger momentum conviction.
This format is useful for traders who are comfortable reading candlestick patterns and want to apply similar visual analysis to the oscillator.
QMF LINE
This mode displays the oscillator as a traditional line chart with a signal line overlay. The main QMF line shows current momentum. The signal line is a smoothed average of the QMF that helps identify direction changes.
When the QMF line is above the signal line, momentum is bullish. When below, momentum is bearish. Crossovers between the two lines can indicate momentum shifts.
This format is familiar to traders who use indicators like MACD and prefer clean line-based visualization.
IMPULSE BARS
This mode displays the oscillator as a histogram centered on the 50 midline. Bars above 50 indicate bullish momentum, bars below 50 indicate bearish momentum. Bar height shows momentum strength.
The color intensity changes based on momentum direction. Bars that are increasing in the bullish direction show brighter color. Bars that are decreasing show muted color. This makes it easy to see momentum acceleration and deceleration at a glance.
HEIKIN FLOW
This mode applies Heikin-Ashi smoothing to the energy candles. Heikin-Ashi is a Japanese technique that averages price data to create smoother trends with fewer reversals.
The result is cleaner visual trends that are easier to follow, though with slightly more lag than standard energy candles. This format is useful for identifying sustained momentum moves without getting distracted by minor fluctuations.
OSCILLATOR ZONES
Regardless of display mode, the oscillator pane includes horizontal reference lines that define important zones:
Midline at 50: The neutral point. When the oscillator is above 50, overall momentum is bullish. When below 50, overall momentum is bearish.
Overbought level at 70: When the oscillator crosses above this level, the market is showing strong bullish momentum. However, this also means prices have risen significantly and bearish reversal probability increases the longer the oscillator stays elevated.
Oversold level at 30: When the oscillator crosses below this level, the market is showing strong bearish momentum. However, this also means prices have fallen significantly and bullish reversal probability increases.
Extreme overbought at 85: Maximum bullish exhaustion. At this level, almost all short-term buying pressure has been expended. Reversal probability is high.
Extreme oversold at 15: Maximum bearish exhaustion. At this level, almost all short-term selling pressure has been expended. Reversal probability is high.
Understanding these zones helps you assess the current market condition before looking at any other indicator components.
MARKET STRUCTURE: DYNAMIC SUPPORT AND RESISTANCE
The second major component of the indicator is market structure analysis through dynamic support and resistance levels. Unlike price-based support and resistance, these levels are calculated directly on the oscillator.
WHAT ARE OSCILLATOR-BASED S/R LEVELS
When the QMF oscillator reaches a high point and then reverses lower, that high point becomes a resistance level on the oscillator. When the oscillator reaches a low point and then reverses higher, that low point becomes a support level.
These levels represent momentum thresholds that the market has previously found difficult to exceed. They answer the question: At what momentum reading has the oscillator historically reversed?
WHY THIS MATTERS
Oscillator support and resistance provides different information than price support and resistance. Price S/R tells you where buyers and sellers have previously entered the market. Oscillator S/R tells you what level of momentum the market has been able to sustain.
If the oscillator approaches its resistance level, it suggests momentum is reaching the upper bounds of what has been achievable recently. Either momentum will break through (indicating unusually strong conditions) or it will reverse (indicating normal mean reversion).
Similarly, if the oscillator approaches support, it suggests momentum is reaching exhaustion levels that have previously triggered bounces.
HOW IT APPEARS ON THE CHART
Resistance is displayed as a horizontal red line with a RES label on the oscillator pane. Support is displayed as a horizontal cyan line with a SUP label. These lines update dynamically as new pivots form.
When the oscillator breaks through these levels, markers appear:
R with up arrow: Resistance level broken, indicating unusually strong bullish momentum
S with down arrow: Support level broken, indicating unusually strong bearish momentum
R with checkmark: Resistance held, price rejected at this level
S with checkmark: Support held, price bounced from this level
The dashboard also shows current S/R status: whether the oscillator recently broke resistance, broke support, is currently at resistance, is currently at support, or is in clear space between levels.
AUTOMATED TRENDLINES: MOMENTUM TREND STRUCTURE
The third major component is automated trendline detection on the oscillator. This identifies trending behavior in momentum itself, separate from price trends.
WHAT ARE OSCILLATOR TRENDLINES
Just as you can draw trendlines on a price chart connecting swing lows (uptrend) or swing highs (downtrend), the indicator draws trendlines on the oscillator connecting pivot points.
Support trendlines connect oscillator pivot lows and project forward with a flat or rising slope. These show upward trending momentum where each pullback finds support at a higher level.
Resistance trendlines connect oscillator pivot highs and project forward with a flat or falling slope. These show downward trending momentum where each rally faces resistance at a lower level.
WHY THIS MATTERS
Price trends and momentum trends do not always align. Price can continue making higher highs while momentum makes lower highs, a condition called bearish divergence. Momentum trendlines help visualize this behavior.
When momentum is making higher lows (rising support trendline), it suggests underlying strength even if price is consolidating. When momentum is making lower highs (falling resistance trendline), it suggests underlying weakness even if price is holding.
Breaks of these trendlines often precede price moves. If a falling momentum resistance trendline breaks upward, it suggests bearish pressure is releasing and bullish momentum may follow. If a rising momentum support trendline breaks downward, it suggests bullish pressure is failing and bearish momentum may follow.
HOW IT APPEARS ON THE CHART
Support trendlines appear in blue/cyan, resistance trendlines appear in pink/magenta. Lines extend forward from the most recent pivot point to show projected levels.
Small circle markers can optionally appear at each pivot point used to construct the trendlines, helping you verify the anchor points.
When the oscillator breaks through a trendline, markers appear:
TL with up arrow: Resistance trendline broken upward (bullish breakout)
TL with down arrow: Support trendline broken downward (bearish breakdown)
Trendline strength is calculated based on three factors: how many pivot points validate the line, how recently it formed, and the angle of the slope. Stronger trendlines have more touches, formed recently, and have moderate slopes. You can filter trendlines by strength to show only the most significant ones.
Optional trendline zones can display a shaded area around each trendline rather than just a single line, showing a zone of influence rather than a precise level.
DIVERGENCE: WHEN PRICE AND MOMENTUM DISAGREE
The fourth major component is divergence detection, which identifies discrepancies between price action and oscillator behavior.
WHAT IS DIVERGENCE
Divergence occurs when price makes a new high or low, but the oscillator fails to confirm it. This disagreement between price and momentum often precedes reversals.
There are four types of divergence:
REGULAR BULLISH DIVERGENCE
Price makes a lower low (new low point below the previous low), but the oscillator makes a higher low (its low point is above its previous low). This suggests that despite price going lower, selling momentum is actually weakening. The implication is that sellers are losing conviction and a bounce or reversal may be approaching.
Visual example: Imagine price drops from 100 to 95, bounces to 97, then drops again to 93. At the same time, the oscillator drops to 25, bounces to 35, then drops only to 30. Price made a lower low (93 vs 95) but the oscillator made a higher low (30 vs 25). This is regular bullish divergence.
REGULAR BEARISH DIVERGENCE
Price makes a higher high (new high point above the previous high), but the oscillator makes a lower high (its high point is below its previous high). This suggests that despite price going higher, buying momentum is actually weakening. The implication is that buyers are losing conviction and a pullback or reversal may be approaching.
HIDDEN BULLISH DIVERGENCE
Price makes a higher low (its low point is above its previous low), but the oscillator makes a lower low (new low below its previous low). This occurs during uptrends and suggests the trend will continue. Price is holding higher but momentum briefly dipped further, indicating a temporary pullback within a larger uptrend.
HIDDEN BEARISH DIVERGENCE
Price makes a lower high (its high point is below its previous high), but the oscillator makes a higher high (new high above its previous high). This occurs during downtrends and suggests the trend will continue. Price is staying lower but momentum briefly spiked higher, indicating a temporary bounce within a larger downtrend.
Regular divergence suggests reversal. Hidden divergence suggests continuation.
HOW IT APPEARS ON THE CHART
When divergence is confirmed, labels appear on the oscillator:
BULL DIV: Regular bullish divergence confirmed
BEAR DIV: Regular bearish divergence confirmed
H-BULL: Hidden bullish divergence confirmed
H-BEAR: Hidden bearish divergence confirmed
Dotted lines connect the pivot points on the oscillator to show the divergence pattern. Regular divergence uses solid colored lines, hidden divergence uses dashed lines.
The dashboard shows divergence status in real-time:
CHECKING BULL: A potential bullish divergence pattern is forming but not yet confirmed
CHECKING BEAR: A potential bearish divergence pattern is forming but not yet confirmed
BULL CONFIRMED: Bullish divergence has been validated
BEAR CONFIRMED: Bearish divergence has been validated
NONE: No divergence currently active
Divergence strength is calculated from the magnitude of the oscillator discrepancy. Only divergences meeting the minimum strength threshold are displayed to filter out minor, less significant patterns.
FLOW RIBBONS: VISUALIZING MOMENTUM ALIGNMENT
The fifth major component is the Flow Ribbon system, which displays multiple moving averages of the QMF oscillator to visualize momentum trend and alignment.
WHAT ARE FLOW RIBBONS
Flow ribbons consist of three Exponential Moving Averages (EMAs) applied to the QMF oscillator values. Think of them as smoothed versions of the oscillator at different speeds:
Fast Ribbon : Responds quickly to momentum changes, showing recent momentum direction
Medium Ribbon: Balances responsiveness with smoothness, showing intermediate momentum
Slow Ribbon: Moves slowly and shows longer-term momentum context
When these three lines are plotted together with filled area between them, they create a visual ribbon that expands and contracts based on momentum conditions.
WHY RIBBON ALIGNMENT MATTERS
The relationship between these three averages tells you about momentum structure:
BULLISH ALIGNMENT (Fast above Medium above Slow)
When the ribbons are stacked with fast on top, medium in middle, and slow on bottom, momentum is aligned bullishly across multiple timeframes. Short-term momentum leads, with medium and long-term momentum confirming. This is the strongest bullish configuration.
BEARISH ALIGNMENT (Fast below Medium below Slow)
When the ribbons are inverted with fast on bottom, medium in middle, and slow on top, momentum is aligned bearishly across multiple timeframes. Short-term momentum leads downward, with medium and long-term momentum confirming. This is the strongest bearish configuration.
MIXED/TRANSITIONING
When the ribbons are not properly stacked, momentum is in transition. This often occurs during consolidation, trend changes, or choppy conditions. Trading during mixed ribbon states carries higher uncertainty.
RIBBON EXPANSION AND CONTRACTION
Beyond alignment, the distance between the fast and slow ribbon provides additional information:
EXPANDING RIBBON
When the gap between fast and slow ribbon is increasing, momentum is accelerating. In a bullish alignment with expansion, upward momentum is strengthening. In a bearish alignment with expansion, downward momentum is strengthening. Expansion confirms trend conviction.
CONTRACTING RIBBON
When the gap between fast and slow ribbon is decreasing, momentum is decelerating. The current trend may be losing steam. Contraction often precedes consolidation or reversal. It serves as an early warning that the current move may be exhausting.
HOW IT APPEARS ON THE CHART
The fast ribbon appears as a thicker line, the slow ribbon as a thinner line. The area between them fills with color:
Green fill: Bullish ribbon alignment
Red fill: Bearish ribbon alignment
Gray fill: Neutral or transitioning state
The dashboard shows ribbon state as BULL, BEAR, or NEUT, and indicates whether ribbons are expanding (EXP) or contracting (CON).
Ribbon crossovers occur when the fast ribbon crosses the slow ribbon, signaling potential momentum shifts. These crossovers are confirmed only after the bar closes to prevent false signals from intrabar movement.
REVERSAL CLOUDS: PROBABILITY ZONES
The sixth major component is the Reversal Cloud system, which visualizes zones where momentum reversals have elevated probability.
WHAT ARE REVERSAL CLOUDS
Reversal clouds are shaded areas around the QMF oscillator that indicate probability zones for mean reversion. They answer the question: How far from average has momentum extended, and what is the probability it will revert?
When the oscillator moves far from its normal range, it creates stretched conditions. Like a rubber band pulled to its limit, the probability increases that it will snap back toward center. Reversal clouds visualize these stretched conditions.
CLOUD CALCULATION METHODS
Five different calculation methods are available, each with different characteristics:
DYNAMIC BOLLINGER
Uses statistical standard deviation to create bands that adapt to oscillator volatility. When the oscillator is volatile, bands widen. When the oscillator is calm, bands narrow. This method identifies moves that are statistically significant relative to recent oscillator behavior.
GOLDEN RATIO
Applies Fibonacci proportions (0.214 and 0.786) to the oscillator range. These ratios appear throughout nature and markets. Some traders believe these proportions have psychological significance in market behavior.
ADAPTIVE HALO
Scales cloud width based on price ATR rather than oscillator volatility. This connects cloud width to actual price volatility, making the clouds wider during volatile price action and narrower during calm periods.
VOLATILITY SQUEEZE
Uses short-term standard deviation to create bands that contract during low volatility and expand during high volatility. This method is particularly useful for identifying potential breakout conditions when volatility is compressed.
ICHIMOKU RSI
Applies concepts from Ichimoku Kinko Hyo equilibrium theory to create balanced zones. Uses multiple lookback periods to establish equilibrium levels where the oscillator tends to find balance.
HOW TO READ THE CLOUDS
The oscillator moves through the cloud area as momentum fluctuates:
When QMF enters the upper cloud region, it indicates extended bullish momentum. The higher into the cloud, the greater the probability of bearish reversal through mean reversion.
When QMF enters the lower cloud region, it indicates extended bearish momentum. The deeper into the cloud, the greater the probability of bullish reversal through mean reversion.
Cloud opacity adjusts based on reversal probability. More opaque coloring indicates higher reversal probability. Subtle coloring indicates lower reversal probability.
IMPORTANT UNDERSTANDING
Clouds show probability zones, not certainty. Price can remain in extreme zones longer than expected, particularly during strong trends. Clouds are most useful when combined with other components like divergence, S/R breaks, and ribbon alignment rather than used in isolation.
MULTI-TIMEFRAME ANALYSIS: SEEING THE BIGGER PICTURE
The seventh major component is Multi-Timeframe (MTF) analysis, which calculates QMF values across multiple timeframes to assess momentum alignment at different time perspectives.
WHY MULTIPLE TIMEFRAMES MATTER
The timeframe you trade on shows only one perspective of market momentum. A bullish signal on a 15-minute chart may occur within a larger bearish trend on the 4-hour chart. Understanding momentum context from higher timeframes helps you assess whether you are trading with or against the larger flow.
When multiple timeframes align in the same direction, the probability of a successful trade increases. When timeframes conflict, the situation is more uncertain and requires additional caution.
HOW MTF ANALYSIS WORKS
The indicator calculates the full QMF oscillator independently on four configurable timeframes. By default, these are set to 5-minute, 15-minute, 60-minute (1 hour), and 240-minute (4 hour), but you can configure them to any timeframes that suit your trading style.
For each timeframe, the system determines the current momentum bias:
OB - Overbought: QMF above 70, indicating extended bullish momentum that may reverse
B+ - Strong Bullish: QMF above 55 and above its signal line, indicating solid bullish momentum
B - Bullish: QMF above its signal line, indicating mild bullish momentum
N - Neutral: QMF near 50 with no clear direction
S - Bearish: QMF below its signal line, indicating mild bearish momentum
S+ - Strong Bearish: QMF below 45 and below its signal line, indicating solid bearish momentum
OS - Oversold: QMF below 30, indicating extended bearish momentum that may reverse
ALIGNMENT SCORING
The dashboard displays an alignment score showing how many of the four timeframes agree with each directional bias. This appears as a fraction like 3/4 or 2/4.
4/4 Bullish: All four timeframes show bullish readings - maximum bullish alignment
3/4 Bullish: Three timeframes bullish, one diverging - strong bullish alignment
2/4: Split between bullish and bearish - no clear alignment, use caution
3/4 Bearish: Three timeframes bearish, one diverging - strong bearish alignment
4/4 Bearish: All four timeframes show bearish readings - maximum bearish alignment
Higher alignment scores indicate more reliable momentum context. Trading with 3/4 or 4/4 alignment in your favor provides better odds than trading against alignment or during mixed conditions.
NON-REPAINTING MTF DATA
The multi-timeframe data uses proper request.security settings with lookahead disabled and gaps handled correctly. This ensures the MTF readings you see in backtesting match what you would see in real-time trading, with no future data leakage that could create misleading results.
LIVE MOMENTUM SCORING: REAL-TIME MARKET ASSESSMENT
The eighth major component is the Live Momentum Scoring system, which provides continuous real-time feedback on current market conditions.
WHAT IS LIVE MOMENTUM SCORING
Unlike signals which only appear when specific patterns complete, live momentum scores update every bar to show the current balance between bullish and bearish factors. This answers the question: Right now, how do the bullish factors compare to the bearish factors?
The system evaluates six categories for each direction and adds up points:
ZONE POSITION (0-25 points)
Rewards positioning in favorable oscillator zones. Deep oversold positioning adds points to the bullish score. Deep overbought positioning adds points to the bearish score. Extreme zones receive maximum points, moderate zones receive partial points, neutral zones receive zero.
DIVERGENCE (0-20 points)
Rewards active or forming divergence patterns. Confirmed divergence receives full points. Forming (checking) divergence receives partial credit. No divergence receives zero points.
TREND ALIGNMENT (0-20 points)
Rewards proper EMA stacking and trend MA positioning. Full bullish EMA stack (fast above medium above slow above trend MA) receives maximum bullish points. Partial alignment receives partial points.
MOMENTUM DIRECTION (0-15 points)
Rewards current momentum direction and acceleration. Accelerating momentum in the favorable direction receives maximum points. Simple directional momentum receives moderate points. Histogram turning (early reversal signs) receives partial points.
RIBBON STATE (0-10 points)
Rewards proper ribbon alignment and expansion. Aligned and expanding ribbons receive maximum points. Aligned but contracting ribbons receive moderate points. Mixed ribbons receive zero points.
MULTI-TIMEFRAME (0-10 points)
Rewards higher timeframe alignment. 4/4 alignment receives maximum points, scaling down as alignment decreases.
READING THE LIVE SCORES
The dashboard displays current scores for both directions:
BULL: Shows bullish score as percentage (0-100) and letter grade (A through D)
BEAR: Shows bearish score as percentage (0-100) and letter grade (A through D)
BIAS: Shows which direction currently dominates (BULL, BEAR, or NEUTRAL if close)
Grade thresholds:
A Grade: 70% or higher - Strong momentum factors aligned
B Grade: 50-69% - Moderate momentum factors present
C Grade: 30-49% - Some momentum factors but incomplete
D Grade: Below 30% - Weak or missing momentum factors
The dominant bias shows which direction currently has stronger factors. When one side leads by more than 10 points, it shows that direction. Otherwise, it shows NEUTRAL indicating balanced or mixed conditions.
WHY LIVE SCORING MATTERS
Live scores help you understand current market conditions even when no signal has fired. You can see momentum building or fading in real-time. A rising bullish score suggests conditions are improving for potential long opportunities. A rising bearish score suggests conditions are deteriorating.
This continuous feedback helps with:
- Anticipating potential signals before they fire
- Assessing whether to act on signals that do fire
- Understanding why a signal did or did not appear
- Monitoring open positions for changing conditions
THE DASHBOARD: YOUR ANALYSIS CONTROL CENTER
The dashboard provides a comprehensive real-time summary of all indicator components in one organized table. It displays on the price chart using force overlay so it remains visible regardless of which pane you are focused on.
DASHBOARD LAYOUT
The dashboard can be configured in three detail levels:
COMPACT MODE
Shows only essential information: QMF value, zone status, S/R status, and volume. Uses minimal screen space for traders who want the indicator to remain unobtrusive.
STANDARD MODE
Shows balanced detail including QMF values, zone status, last signal information, grade statistics, divergence status, S/R and volume status, live momentum scores, and MTF panel. Suitable for most traders.
FULL MODE
Shows maximum detail including everything in Standard mode plus EMA structure, ribbon state, volatility regime, signal statistics breakdown, and trendline counts. For traders who want complete information access.
DASHBOARD ROWS EXPLAINED
Row 1 - HEADER
Shows indicator name for identification.
Row 2 - QMF VALUES
Displays three values:
- QMF with directional arrow showing current oscillator value and whether it is rising, falling, or unchanged
- SIG showing the signal line value
- Histogram value with plus or minus sign showing the difference between QMF and signal line
Row 3 - PROGRESS BAR
Visual representation of oscillator position from 0 to 100 using text characters. Provides quick visual reference without needing to look at the oscillator pane.
Row 4 - ZONE STATUS
Text classification of current zone with color coding:
- EXTREME OB (red): Oscillator at or above extreme overbought level
- OVERBOUGHT (light red): Oscillator in overbought zone
- BULLISH (light green): Oscillator above 55 but below overbought
- NEUTRAL (gray): Oscillator between 45 and 55
- BEARISH (light red): Oscillator below 45 but above oversold
- OVERSOLD (light blue): Oscillator in oversold zone
- EXTREME OS (blue): Oscillator at or below extreme oversold level
Row 5 - LAST SIGNAL (Standard and Full mode)
Shows information about the most recent signal:
- Direction and grade (LONG A, SHORT B, etc.)
- Bars ago since signal fired
- Entry price when signal fired
- Current profit/loss from that price level
This helps track performance of recent signals and manage any open positions based on them.
Row 6 - GRADE STATISTICS (Standard and Full mode)
Running count of signals generated:
- A: Count of Grade A signals
- B: Count of Grade B signals
- C: Count of Grade C signals
- T: Total signal count
This provides perspective on signal frequency and grade distribution over the visible chart period.
Row 7 - DIVERGENCE STATUS (Standard and Full mode)
Current state of divergence detection:
- CHECKING BULL: Bullish divergence pattern forming, not yet confirmed
- CHECKING BEAR: Bearish divergence pattern forming, not yet confirmed
- BULL CONFIRMED: Bullish divergence validated
- BEAR CONFIRMED: Bearish divergence validated
- NONE: No divergence currently active
Row 8 - S/R AND VOLUME
Two pieces of information:
- S/R status: Shows R BROKEN (resistance broken upward), S BROKEN (support broken downward), AT RES (testing resistance), AT SUP (testing support), or CLEAR (between levels)
- Volume status: Shows HIGH (volume 1.5x or more above average), MID (volume near average), or LOW (volume below average)
Row 9 - LIVE MOMENTUM (Standard and Full mode)
Real-time momentum scoring:
- BULL: Bullish percentage and letter grade
- BEAR: Bearish percentage and letter grade
- Dominant bias indicator
Row 10-11 - MTF PANEL (when enabled, Standard and Full mode)
Multi-timeframe status:
- Top row shows the four timeframe labels
- Bottom row shows the status code for each timeframe (OB, B+, B, N, S, S+, OS)
- Final cell shows alignment score as X/4
FULL MODE ADDITIONAL ROWS
Structure row: Shows EMA stack status (BULL STACK, BEAR STACK, or relationship between fast and slow) and trend MA position (ABOVE MA or BELOW MA)
Stats row: Shows count of long signals, short signals, and active trendlines
Ribbon row: Shows ribbon state (BULL, BEAR, NEUT), expansion status (EXP or CON), and volatility regime (H-VOL for high volatility, L-VOL for low volatility, N-VOL for normal)
DASHBOARD POSITIONING AND SIZING
Position options: Top Left, Top Center, Top Right, Middle Left, Middle Right, Bottom Left, Bottom Center, Bottom Right
Size options: Tiny (minimal space), Small (balanced), Normal (maximum readability)
Choose a position that does not obscure important price action on your chart and a size that balances readability with space efficiency.
HOW SIGNALS EMERGE FROM CONFLUENCE
After understanding all the individual components, it becomes clear how signals are generated. Signals in QMF are not arbitrary triggers based on single conditions. They emerge when multiple independent factors align to create confluence.
THE PATTERN-BASED APPROACH
The signal system uses a hierarchical pattern-based approach. Rather than calculating a score from random factors and labeling it, the system actively hunts for specific predefined pattern combinations.
The system first checks for Grade A patterns. If none are found, it checks for Grade B patterns. If none are found, it checks for Grade C patterns. Each grade represents specific combinations of factors that must be present together.
GRADE A REQUIREMENTS
Grade A patterns require multiple strong factors aligned. Examples of Grade A pattern combinations:
Pattern A1 - Perfect Storm Reversal:
- Extreme zone positioning (deeply oversold or overbought)
- Confirmed regular divergence
- Structural break (resistance broken or support broken or trendline broken)
- Strong volume conviction (1.3x or higher)
- High MTF alignment (3 or more timeframes agreeing)
Pattern A2 - Breakout Conviction:
- Resistance or support broken
- Accelerating momentum in the breakout direction
- Full EMA stack aligned
- Ribbon aligned and expanding
- Strong volume conviction (1.4x or higher)
- Good MTF alignment (2 or more timeframes)
Pattern A3 - Zone Reversal Multi-Confirmation:
- Extreme or standard zone positioning
- Regular or hidden divergence confirmed
- Active bounce from zone
- EMA crossover or MA break in reversal direction
- Good MTF alignment (2 or more timeframes)
- Volume conviction present (1.2x or higher)
All factors in the pattern must be present simultaneously. Missing any single factor disqualifies the Grade A pattern.
GRADE B REQUIREMENTS
Grade B patterns require fewer but still meaningful confirmations. These patterns fire only when no Grade A pattern is detected:
Pattern B1 - Zone with Confirmation:
- Oversold or overbought zone positioning
- Momentum in reversal direction
- Hidden divergence, EMA crossover, or trendline break present
- Minimum MTF alignment met
Pattern B2 - Divergence with Structure:
- Regular or hidden divergence confirmed
- Structural break (S/R or trendline or MA)
- Momentum confirming direction
- Volume at least average
Pattern B3 - Clean Trend Continuation:
- Above or below trend MA
- Ribbon aligned in direction
- Oscillator crossed signal line
- EMA stack complete
GRADE C REQUIREMENTS
Grade C patterns require basic confirmations. These patterns fire only when no Grade A or Grade B pattern is detected:
Pattern C1 - Early Zone Entry:
- Zone positioning or approaching zone
- Momentum in expected direction
- Oscillator or EMA crossover present
Pattern C2 - Momentum Shift:
- Histogram turning in expected direction
- Oscillator crossover confirmed
- Oscillator on expected side of midline
SIGNAL QUALITY CONTROLS
Beyond pattern detection, several quality controls must be satisfied:
COOLDOWN
A minimum number of bars must pass between any two signals. This prevents signal clustering during volatile conditions and ensures each signal represents a distinct opportunity.
DIRECTION ALTERNATION
When enabled, signals must alternate between LONG and SHORT. After a LONG signal, only SHORT signals can fire until direction changes. This prevents multiple consecutive signals in the same direction.
PULLBACK REQUIREMENT
After a signal fires, the oscillator must retrace a minimum percentage before another same-direction signal can fire. This ensures re-entry signals occur after meaningful pullbacks rather than immediately after the first signal.
VOLUME CONFIRMATION (Optional)
When enabled, volume must meet minimum threshold relative to average. This filters out signals during low-volume periods when moves may lack follow-through.
BAR CONFIRMATION
All signals require barstate.isconfirmed, meaning they only fire after the bar closes. This prevents signals from appearing and disappearing during live bar formation, ensuring backtest results match live behavior.
A comprehensive example that combines signal generation logic, grading system, with all elements clearly annotated for easy understanding.
SETTINGS REFERENCE
This section provides a reference for the main configurable settings organized by category.
QUANTUM ENGINE SETTINGS
Sensitivity (5-50): Primary lookback period for momentum calculations. Lower values respond faster but may include more noise. Higher values smooth the oscillator but increase lag. Default 14 balances responsiveness with stability.
Smoothing (1-10): Exponential smoothing applied to final QMF value. Higher values reduce noise, lower values preserve detail. Default 3 provides good noise reduction.
Adaptive Mode: When enabled, automatically adjusts sensitivity based on volatility regime. Increases sensitivity during high volatility, decreases during low volatility.
Dimension Toggles: Enable or disable each of the four dimensions (Velocity, Volume, Volatility, Session) individually. Useful for customizing the oscillator for specific instruments or conditions.
Dimension Weights: Adjust relative contribution of each dimension. Weights are normalized so they do not need to sum to 1.0. Higher weight means that dimension has more influence on the final value.
Signal Length: EMA period for the signal line. Lower values make signal line more responsive, higher values make it smoother.
DISPLAY SETTINGS
Display Mode: Choose between Energy Candles, QMF Line, Impulse Bars, or Heikin Flow visualization.
Candle Glow: Adds luminous glow effect around energy candles based on momentum strength. Visually striking but can impact performance on slower systems.
Glow Layers: Number of glow layers when candle glow is enabled. More layers create smoother gradient but use more resources.
VISUAL SETTINGS
Theme: Choose between Tokyo Night (dark blue with vibrant accents), Dracula (purple-grey with high contrast), or Nord (muted arctic tones). Each theme is designed for extended trading sessions.
Glow Intensity: Controls transparency of glow effects. Lower values create more visible glows, higher values more subtle.
Enable Glow Effects: Master toggle for all glow effects around candles and levels.
REVERSAL CLOUD SETTINGS
Enable Reversal Clouds: Toggle cloud display on or off.
Cloud Style: Choose calculation method (Dynamic Bollinger, Golden Ratio, Adaptive Halo, Volatility Squeeze, Ichimoku RSI).
Cloud Transparency: Higher values make clouds more transparent, lower values more visible.
Cloud Width: Multiplier for cloud width. Higher values create wider reversal zones.
FLOW RIBBON SETTINGS
Enable Ribbons: Toggle ribbon display.
Fast/Medium/Slow Ribbon: Period for each ribbon EMA. Faster periods respond quicker, slower periods show longer-term trend.
DIVERGENCE SETTINGS
Enable Divergence: Toggle divergence detection.
Pivot Sensitivity: Bars required on each side to confirm pivot point. Higher values detect more significant pivots but may miss shorter-term divergences.
Confirmation Bars: Bars to wait after pivot detection before confirming divergence.
Min Strength Pct: Minimum divergence strength percentage to display. Higher values filter out weaker divergences.
Show Lines: Draw connecting lines between divergence pivots.
Min/Max Distance: Range of bars between pivots for valid divergence.
SIGNAL SYSTEM SETTINGS
Enable Signals: Toggle signal generation.
Show Signals: Filter by grade (A Only, A and B, All Grades).
Cooldown Bars: Minimum bars between signals.
Pullback Required Pct: Percentage pullback needed before same-direction signal.
Require Direction Alternation: Force signals to alternate LONG and SHORT.
Fast/Slow EMA: Periods for EMA crossover analysis.
Trend MA: Period for trend-defining moving average.
Min MTF Alignment: Minimum timeframes that must align for higher grades.
Require Volume Confirmation: Make volume threshold mandatory for signals.
Min Volume Ratio: Minimum volume relative to average when required.
TRENDLINE SETTINGS
Enable Trendlines: Toggle automated trendline detection.
Pivot Left/Right: Bars for pivot detection.
Extension Bars: How far to extend lines into future.
Min Touch Points: Minimum pivots to validate line.
Enable Strength Filter: Filter by calculated strength.
Minimum Strength: Threshold for strength filter.
Show Trendline Zones: Display shaded zones around lines.
Zone Width StdDev: Standard deviation multiplier for zone width.
Line Style: Solid, Dashed, or Dotted.
Line Width: Thickness in pixels.
Show Touch Points: Display circle markers at pivots.
Show Strength Labels: Display strength percentage at line end.
SUPPORT RESISTANCE SETTINGS
Enable S/R: Toggle dynamic S/R display.
Pivot Lookback: Period for detecting S/R pivots.
DASHBOARD SETTINGS
Enable Dashboard: Toggle dashboard display.
Position: Screen position (8 options).
Size: Tiny, Small, or Normal.
Style: Compact, Standard, or Full detail level.
MTF Panel: Include or exclude multi-timeframe panel.
MTF 1-4: Timeframe selections for MTF analysis.
LEVEL SETTINGS
Overbought/Oversold: Standard zone thresholds.
Extreme OB/OS: Extreme zone thresholds.
PRACTICAL EXAMPLE: READING THE COMPLETE PICTURE
This example walks through analyzing a chart using all the indicator components together.
SCENARIO: You are analyzing a 15-minute chart looking for trading opportunities.
STEP 1: ASSESS OSCILLATOR ZONE
You look at the QMF oscillator and see it reading 24, which is in the oversold zone. The dashboard confirms this showing OVERSOLD in the zone status. The progress bar shows the oscillator is in the lower portion of its range.
Initial assessment: The market has experienced significant selling pressure and is in territory where bullish reversals have elevated probability.
STEP 2: CHECK STRUCTURE
You look at the dynamic S/R levels. The oscillator recently touched its support level at 22 and bounced. You see an S with checkmark marker indicating support held. The dashboard shows AT SUP status.
Assessment update: The oscillator found support at a level that has held before. This adds to the bullish case.
STEP 3: EXAMINE TRENDLINES
You notice a resistance trendline connecting recent oscillator highs that has been declining. The oscillator is currently approaching this trendline from below. No break has occurred yet.
Assessment update: There is overhead resistance that will need to be cleared. A break above would be significant.
STEP 4: CHECK DIVERGENCE
The dashboard shows BULL CONFIRMED in the divergence status. Looking at the oscillator, you see a BULL DIV label with a dotted line connecting two pivot lows. The oscillator made a higher low while price made a lower low.
Assessment update: Confirmed bullish divergence suggests selling momentum is weakening despite price continuing lower. This is a meaningful signal of potential reversal.
STEP 5: EVALUATE RIBBONS
The ribbons are currently mixed with fast below medium but both above slow. Ribbon fill is gray indicating transitioning state. However, you notice the fast ribbon is turning upward and approaching the medium ribbon from below.
Assessment update: Ribbons are not yet aligned bullish, but appear to be transitioning. A bullish crossover may be approaching.
STEP 6: CHECK MTF ALIGNMENT
The dashboard MTF panel shows: 5m is B+, 15m is B, 1H is N, 4H is S. The alignment shows 2/4 bullish.
Assessment update: Lower timeframes support bullish bias, but higher timeframes are neutral or bearish. This is mixed alignment, suggesting caution. Any bullish move may face resistance from higher timeframe sellers.
STEP 7: REVIEW LIVE MOMENTUM SCORES
Dashboard shows BULL at 52% Grade B, BEAR at 28% Grade D. Dominant bias shows BULL.
Assessment update: Bullish factors currently outweigh bearish factors. The score suggests moderate bullish conditions, not yet strong.
STEP 8: SYNTHESIS
Putting it together:
- Oversold zone positioning (bullish factor)
- Support held (bullish factor)
- Bullish divergence confirmed (strong bullish factor)
- Ribbons transitioning but not yet aligned (neutral)
- MTF alignment mixed at 2/4 (caution factor)
- Live score favors bullish moderately (supporting factor)
- Resistance trendline overhead (risk factor)
Conclusion: Conditions favor a bullish reversal but with caution warranted due to mixed MTF alignment and overhead resistance. This would not qualify for a Grade A signal due to insufficient MTF alignment. If a signal fires, it would likely be Grade B.
STEP 9: SIGNAL FIRES
Several bars later, the oscillator crosses above its signal line while still in oversold territory. The EMA fast crosses above EMA slow. A LONG B signal appears at 85% confluence.
The signal represents: Oversold positioning plus confirmed divergence plus momentum crossover, meeting Grade B pattern requirements.
STEP 10: MONITORING
After entry, you monitor the dashboard for changing conditions. Live momentum scores continue rising. The resistance trendline breaks (TL up arrow marker appears). Ribbons align bullish. MTF alignment improves to 3/4 as the 1H turns bullish.
The improving conditions confirm the trade thesis. You hold the position as conditions strengthen.
ALERTS AVAILABLE
28 alert conditions are available covering all major events. To set up alerts, click the alert icon in TradingView, select this indicator, and choose the desired condition.
SIGNAL ALERTS
- A-Grade LONG Signal: Highest probability bullish entry
- A-Grade SHORT Signal : Highest probability bearish entry
- B-Grade LONG Signal: Solid bullish entry
- B-Grade SHORT Signal: Solid bearish entry
- Any LONG Signal: Any bullish signal regardless of grade
- Any SHORT Signal: Any bearish signal regardless of grade
DIVERGENCE ALERTS
- Regular Bullish Divergence: Classic bullish reversal pattern
- Regular Bearish Divergence: Classic bearish reversal pattern
- Hidden Bullish Divergence: Bullish continuation pattern
- Hidden Bearish Divergence: Bearish continuation pattern
- Any Bullish Divergence: Either regular or hidden bullish
- Any Bearish Divergence: Either regular or hidden bearish
STRUCTURE ALERTS
- Trendline Break Up : Resistance trendline broken
- Trendline Break Down: Support trendline broken
- Resistance Broken: S/R resistance level broken
- Support Broken: S/R support level broken
CROSSOVER ALERTS
- EMA Cross Up : Fast EMA crossed above slow EMA
- EMA Cross Down : Fast EMA crossed below slow EMA
- Trend MA Break Up: Oscillator crossed above trend MA
- Trend MA Break Down: Oscillator crossed below trend MA
ZONE ALERTS
- Entered Overbought Zone: Oscillator entered overbought
- Entered Oversold Zone: Oscillator entered oversold
- Entered Extreme Overbought: Oscillator reached extreme overbought
- Entered Extreme Oversold: Oscillator reached extreme oversold
RIBBON ALERTS
- Ribbon Cross Up: Fast ribbon crossed above slow ribbon
- Ribbon Cross Down: Fast ribbon crossed below slow ribbon
BOUNCE ALERTS
- Bounce From Oversold: Active reversal from oversold zone
- Bounce From Overbought : Active reversal from overbought zone
NON-REPAINTING Structure
All visual elements and signals in this indicator are non-repainting:
- Signals use barstate.isconfirmed to fire only after bar close
- Divergence confirmation waits for pivot validation
- Trendline breaks confirm after bar close
- S/R breaks confirm after bar close
- MTF data uses lookahead off setting
- No future data is used in any calculation
What you see in backtesting accurately represents what would have appeared in real-time trading.
RISK DISCLAIMER
This indicator is provided for educational and informational purposes only. It does not constitute financial advice, investment advice, or trading advice.
Trading financial instruments involves substantial risk of loss and is not suitable for all investors. Past performance is not indicative of future results. The analysis provided by this indicator should not be relied upon as the sole basis for any trading decision.
Before trading:
- Understand you may lose some or all of your investment
- Never trade with money you cannot afford to lose
- Conduct your own research and due diligence
- Consider consulting with a qualified financial advisor
- Practice with paper trading before risking real capital
- Implement proper risk management with recommended maximum 1-2% risk per trade
By using this indicator, you acknowledge that you have read and understood this disclaimer and accept full responsibility for your trading decisions.
AMT Institutional Model v2What This Indicator Does
This indicator implements Fabio Valentini's Auction Market Theory (AMT) model — the same framework used by a verified World Cup Trading Championship competitor who achieved 218% audited returns in a single competition year.
The core principle is simple: The market is an auction. It moves between two states — Balance (choppy, no edge) and Imbalance (trending, tradeable). Most traders lose because they trade inside balance. This indicator tells you when to sit out and when conditions are aligned for entry.
It is a MODEL, not a strategy. It does not give buy/sell signals. It gives you the 3 conditions Valentini requires before any trade, and visually shows you when all 3 align.
The 3 Conditions (ALL Must Be True Before Entry)
Valentini's rule: "If even one is missing, you stay flat."
#ConditionWhat the indicator shows1Market State — Is the market OUT of balance?Background color: Yellow = Balance (DO NOT TRADE). Blue/Red = Imbalance (OK to look)2Location — Is price at a meaningful level?LVN lines (magenta), Support/Resistance (green/red dashes), HVN (yellow), POC (orange)3Aggression — Are large participants executing?Blue circles below bar = Buyer aggression. Red circles above bar = Seller aggression
When all 3 align, a green diamond (bull) or red diamond (bear) appears. This is the confluence signal — the premium setup.
How To Read The Chart — Step by Step
STEP 1 — Check the Balance Box (yellow dashed rectangle)
This is the Value Area where 70% of volume was traded. Think of it as a "no-fly zone."
Price INSIDE the box → Info table says "Inside VA - Skip" → Do nothing
Price OUTSIDE the box → Now you can start looking for setups
Valentini: "Market is usually in balance. That is why traders take a streak of stop-losses." The Balance Box keeps you out of the chop.
STEP 2 — Check the Background Color
🟡 Yellow tint = Balance. Market is compressed. Stay flat.
🔵 Blue tint = Imbalance Bullish. Trend is up. Look for longs only.
🔴 Red tint = Imbalance Bearish. Trend is down. Look for shorts only.
You need BOTH: price outside the Balance Box AND background showing Imbalance.
STEP 3 — Find Your Level
Look for price approaching one of these levels:
LVN (magenta dashed) — Low Volume Nodes. Price rejected here before and will likely react again. These are Valentini's primary entry zones. When price revisits an LVN, it either rips through (continuation) or bounces (reversal). Wait for aggression to confirm which one.
HVN (yellow solid) — High Volume Nodes. Price accepted here = consolidation zones. Good for targets, not entries.
POC (orange thick) — Point of Control. Highest volume price = "fair value." Strong magnet. Good for mean-reversion targets.
30m S/R (green/red dashed) — Auction pivot structure from the 30-minute timeframe.
Weekly/Daily/4H levels — Institutional reference levels. Confluence of multiple levels = stronger zone.
Fibonacci levels — Labeled with source timeframe (D = Daily, W = Weekly) so you always know where the level comes from.
STEP 4 — Wait for Aggression
Do NOT enter just because price is at a level. Wait for the circles (bubbles):
🔵 Blue circle below bar = Buyer aggression (volume spike + bullish close)
🔴 Red circle above bar = Seller aggression (volume spike + bearish close)
Circle size = intensity (small → normal → large = 2x → 3.5x → 5x+ volume)
Valentini: "When there is direction, location, and aggression — your ability to READ is 100%."
Entry Checklist (Long Example)
✅ Background is blue (Imbalance Bullish)
✅ Price is outside the Balance Box (above VAH or pulled back below VAL)
✅ Price is at or near an LVN, Support level, or Fibonacci level
✅ A blue circle appears below the bar (buyer aggression confirmed)
✅ 30-min trend line is blue (uptrend structure)
Enter long. Stop below the LVN / support level.
For shorts, mirror everything: red background, near resistance/LVN, red circle above bar, red trend line.
Exit Rules
Exit TypeWhenPrimary targetThe POC (orange line). Valentini: "Target the previous balance POC — 70% of the time, price reverses from it."Secondary targetThe next HVN (yellow line). Price tends to slow down and consolidate at HVNs. Take partial profits here.Structural targetThe next major Weekly/Daily level or Fibonacci level in the direction of your trade.Failed auction exitIf you're long and an X cross appears above your bar — this means aggressive buyers failed. The sellers won. Close immediately.Re-entry of Balance BoxIf price re-enters the Value Area after breaking out, the breakout may have failed. Tighten stop or exit. This is Valentini's Mean Reversion Model — the snap-back.Opposite aggressionLarge red circles appearing in your long trade = institutional selling. Reduce size or exit.
What Each Module Does
Module A — 30-Min Trend (blue/red step-line)
Auction-based trend structure from 30-minute Higher-Highs/Higher-Lows. Not a moving average — this is structural.
Module B — 30-Min S/R (green/red dashed)
Pivot-based support and resistance from 30-minute auction structure. Sensitivity setting controls how many levels appear.
Module C — Aggression Bubbles (circles + X crosses)
Volume spike detection with directional body filter. 3 size tiers. X crosses mark failed auctions — when aggression fails and price reverses.
Module D — MTF Levels (colored horizontal lines)
Weekly, Daily, 4H, Hourly OHLC levels + Daily/Weekly Fibonacci retracements (labeled with source TF) + 20/50 SMA + Psychological round numbers. All line colors and widths fully customizable.
Module E — Balance/Imbalance (background color)
ATR compression ratio detects whether market is ranging or trending. Yellow = stay out. Blue/Red = conditions forming.
Module F — Volume Profile (HVN/LVN/POC/Balance Box)
Bin-based volume distribution over configurable lookback. Same methodology as ATAS, Sierra Chart, and TradingView's own SVP. Draws the Value Area box (skip trades inside), POC, and all significant volume nodes.
Settings Guide
Sensitivity — The single most important setting.
Low = Strict. Fewer levels, fewer bubbles, only the strongest signals. For experienced traders who want a clean chart.
Medium = Balanced. Recommended default.
High = Sensitive. More signals, catches weaker setups. Good for learning or scalping.
Futures vs ETF — Futures (NQ/ES/YM) have concentrated RTH volume so lower multipliers work. ETFs (SPY/QQQ) need higher thresholds to filter dark-pool noise.
Label Mode — "Detailed" for learning, "Short" for clean charts once you know the levels.
Label Size — Auto/Tiny/Small/Normal/Large. All labels respect this setting.
Important Limitations
⚠️ No true order flow. TradingView does not provide tick-by-tick data, DOM, or executed vs. limit order differentiation. Aggression bubbles are a volume-spike proxy, not true order flow. For real order flow, use platforms like Bookmap, ATAS, or Sierra Chart alongside this indicator.
⚠️ Volume profile is approximated. Each bar's volume is proportionally distributed across its price range. Real volume-at-price requires tick data. This is the standard approximation used by all Pine Script volume profile implementations.
⚠️ This is a model, not a strategy. It shows conditions. You make the decision. No indicator replaces screen time and discretion.
Alerts Available (12 total, all configurable ON/OFF)
Bull Confluence | Bear Confluence | Failed Buy Auction | Failed Sell Auction | Huge Buy Volume (5x+) | Huge Sell Volume (5x+) | Balance/Imbalance Shift | 30-Min Trend Change | Any Aggression | Price at Key Level | Price Exits Value Area | Price at POC
Built for NQ/ES futures day trading. Works on any liquid instrument with volume data. Not financial advice.
Market Regime AnalyzerStatistical regime detection with forward-looking transition probabilities. Combines drift testing, variance ratios, and volume delta to classify markets into 5 regimes and quantify transition probabilities.
What Regime Are We In, and What's Likely Next?
That's the question this indicator answers with statistical rigor and forward-looking probabilities.
The Problem:
Most traders classify regimes arbitrarily: "Bull if price > 200 MA" or "Bear if RSI < 30." These rules ignore statistical significance, volume confirmation, and mean reversion patterns. The result? Late entries, false signals, and confusion when markets transition.
The Solution:
Market Regime Analyzer combines drift detection, variance ratio testing, and volume delta analysis to classify markets into 5 distinct regimes. Then it calculates the probability of transitioning to each regime based on historical patterns.
The Benefit:
Know not just where you are, but where you're likely going - with probabilities, not guesses.
The Five Market Regimes
🟢 Strong Bull (Regime 1)
- Statistically significant upward drift (t-stat > 1.96)
- Strong buying pressure (volume delta > 0.3)
- No mean reversion detected
- **Trade:** Trend-following strategies, ride the momentum
🟢 Weak Bull (Regime 2)
- Upward drift present
- BUT weak volume OR mean reversion detected
- **Trade:** Reduce position size, tighten stops, prepare for consolidation
⚪ Consolidation (Regime 3)
- No statistically significant drift
- Mixed volume signals
- Mean reversion likely present
- **Trade:** Range-trading, avoid trend-following systems
🔴 Weak Bear (Regime 4)
- Downward drift present
- BUT weak volume pressure
- **Trade:** Cautious shorts, reduce exposure, prepare for bounce
🔴 Strong Bear (Regime 5)
- Statistically significant downward drift (t-stat < -1.96)
- Strong selling pressure (volume delta < -0.3)
- No mean reversion detected
- **Trade:** Trend-following shorts, protective puts
The Statistical Framework
1. Drift Detection with T-Statistics
Instead of guessing if there's a trend, we test it statistically.
How it works:
- Calculates mean return over lookback period
- Standardizes by volatility
- Compares to significance threshold (default 1.96 = 95% confidence)
What it tells you:
- T-stat > 1.96: Statistically significant uptrend
- T-stat < -1.96: Statistically significant downtrend
- In between: No significant trend (consolidation)
Why it matters:
Only trades trends that are statistically validated, not just visually apparent.
2. Mean Reversion Testing (Variance Ratio)
Based on Lo & MacKinlay (1988) research, this detects when markets are range-bound.
How it works:
- Compares variance at different time scales
- Variance Ratio < 0.8 indicates mean reversion
What it tells you:
- Mean reversion = NO: Trends can continue
- Mean reversion = YES: Expect price to return to mean, not breakout
Why it matters:
Prevents chasing breakouts in range-bound markets.
3. Volume Delta Analysis
Total volume tells you HOW MUCH traded. Volume delta tells you WHO won.
How it works:
- Buying pressure - Selling pressure = Volume Delta
- Normalized to show relative strength
What it tells you:
- Strong positive delta (>0.3): Buyers in control
- Strong negative delta (<-0.3): Sellers in control
- Weak delta: No clear winner
Why it matters:
Price can move up on weak buying or down on weak selling. Volume delta reveals the truth.
4. Transition Probability Matrix
Historical regime changes predict future regime changes.
How it works:
- Tracks every regime transition over last 100 bars (configurable)
- Builds probability distribution for next regime
- Updates continuously
Example:
Current: Strong Bull
Historical transitions from Strong Bull:
- Stayed Strong Bull: 45%
- Became Weak Bull: 30%
- Became Consolidation: 20%
- Became Weak Bear: 4%
- Became Strong Bear: 1%
What it tells you:
Strong Bull has 75% chance of staying bullish (45% + 30%), only 5% chance of bearish turn.
Why it matters:
Adapts to your specific market's behavior patterns.
How to Use This Indicator
Strategy Adaptation
In Strong Bull/Bear Regimes:
- Use trend-following strategies
- Wider stops, let winners run
- Add to positions on pullbacks
- High confidence in directional trades
In Weak Bull/Bear Regimes:
- Reduce position sizes by 50%
- Tighter stops
- Take profits earlier
- Prepare for regime change
In Consolidation:
- Switch to range-trading strategies
- Avoid trend-following systems
- Sell resistance, buy support
- Wait for regime change before trend trades
Risk Management
Position Sizing:
- Strong regime + high continuation probability (>60%) = Normal size
- Weak regime OR high transition probability = Half size
- Consolidation = Quarter size or skip
Stop Loss Placement:
- Strong regime: Use wider stops (2x ATR)
- Weak regime: Tighter stops (1x ATR)
- Consolidation: Very tight stops (0.5x ATR)
Entry Timing
Best entries:
- Regime just changed to Strong Bull/Bear
- High probability (>50%) of staying in current regime
- No divergence signals present
- Drift and volume delta aligned
Avoid entries:
- High probability of regime change
- Divergence signals appearing
- Mean reversion detected in trending regime
- Weak volume despite price movement
Reading the Dashboard
Current Regime
Color-coded for instant recognition:
- Dark Green = Strong Bull
- Light Green = Weak Bull
- Gray = Consolidation
- Light Red = Weak Bear
- Dark Red = Strong Bear
Annualized Drift
Expected annual return based on recent trend.
- Positive = Upward bias
- Negative = Downward bias
- Near zero = No directional edge
T-Statistic
Measures statistical significance of drift.
- > 1.96 = 95% confident in uptrend
- < -1.96 = 95% confident in downtrend
- Between = Not statistically significant
Mean Reversion
- Yes = Expect price to return to mean (range-bound)
- No = Trends can continue (trending market)
Volume Pressure
Normalized volume delta strength.
- > 0.3 = Strong buying
- < -0.3 = Strong selling
- Near 0 = Balanced
Transition Probabilities
Shows most likely next regime.
- Highest probability = Most likely outcome
- Evenly distributed = High uncertainty
- Concentrated = High confidence in direction
Practical Examples
Example 1: Strong Bull with High Continuation
Dashboard shows:
Current Regime: Strong Bull
Drift: +22% annualized
T-Stat: 3.2
Mean Reversion: No
Volume Pressure: +0.45
Probabilities:
→ Strong Bull: 50%
→ Weak Bull: 25%
→ Consolidation: 20%
→ Bears: 5%
Interpretation:
- Strong uptrend (t-stat 3.2 >> 1.96)
- No mean reversion = trends can continue
- Strong buying pressure (0.45 > 0.3)
- 75% chance stays bullish (50% + 25%)
Action:
- Full position size on long setups
- Use trend-following entries
- Wider stops (2x ATR)
- High conviction trades
Example 2: Weak Bull Before Consolidation
Dashboard shows:
Current Regime: Weak Bull
Drift: +8% annualized
T-Stat: 1.2
Mean Reversion: Yes
Volume Pressure: +0.15
Probabilities:
→ Strong Bull: 10%
→ Weak Bull: 30%
→ Consolidation: 50%
→ Weak Bear: 10%
Interpretation:
- Weak drift (t-stat 1.2 < 1.96)
- Mean reversion detected = range-bound likely
- Weak volume (0.15 < 0.3)
- 50% chance of consolidation
Action:
- Reduce long positions
- Tighten stops
- Prepare for range-bound trading
- Avoid new trend trades
Example 3: Regime Transition Alert
Previous: Weak Bull
Current: Consolidation
Volume divergence signal appeared:
Price made new high, volume delta weakened
Interpretation:
- Trend exhausted
- Buyers losing control
- Regime confirmed the transition
Action:
- Exit trend-following longs
- Switch to range-trading approach
- Wait for new regime before new directional trades
Settings Guide
### Regime Detection Period (50)
Number of bars for statistical calculations.
- **30-40:** More responsive, catches changes faster, more regime switches
- **50 (default):** Balanced for daily/4H charts
- **75-100:** More stable, fewer false regime changes, slower to adapt
Transition History Depth (100)
How much history to use for probabilities.
- **50-75:** Adapts quickly to recent behavior
- **100 (default):** Balanced robustness
- **150-200:** More stable probabilities, slower to adapt
Volume Delta Period (14)
Period for volume calculations.
- **7-10:** More sensitive to volume shifts
- **14 (default):** Standard period
- **20-30:** Smoother, less noise
Significance Threshold (1.96)
T-statistic required for trend classification.
- **1.64:** 90% confidence, more trend regimes detected
- **1.96 (default):** 95% confidence, balanced
- **2.58:** 99% confidence, very conservative, mostly consolidation
Best Practices
Do:
- Wait for regime confirmation (at least 3-5 bars in new regime)
- Use probabilities to size positions appropriately
- Combine with support/resistance for entries
- Respect mean reversion signals
- Adapt strategy to current regime
Don't:
- Trade every regime change immediately
- Ignore high transition probabilities
- Use trend strategies in consolidation
- Override statistical signals with gut feel
- Trade against Strong regimes without clear setup
Timeframe Recommendations
Daily Charts:
- Default settings work well
- Most reliable regime detection
- Best for swing trading
4H Charts:
- Use default or slightly higher lookback (60-75)
- Good for active swing trading
- More regime changes than daily
1H Charts:
- Reduce lookback to 30-40
- More noise, use with caution
- Better for intraday position trading
15M and below:
- Not recommended
- Too much noise for statistical validity
- Regimes change too frequently
Combining with Other Indicators
Works Well With:
Moving Averages
- Use regime for directional bias
- MAs for specific entry/exit points
Support/Resistance
- Regime shows context
- S/R shows specific levels
- High probability at confluence
Volume Profile
- Regime shows regime
- Profile shows where volume is
- Target high-volume nodes
RSI/MACD
- Regime provides context
- Momentum shows entry timing
- Combine for higher probability
Example Combined Setup
Regime: Strong Bull
Price: Above 200 MA
Level: Pullback to support
RSI: Oversold (30)
Volume Delta: Still positive
Setup: Long entry
Reason: Trend intact, healthy pullback, buyers still present
Divergence Signals
The indicator shows volume divergence warnings:
Bearish Divergence (Red Triangle Down)
- Price makes new high
- Volume delta makes lower high
- Warning: Buyers weakening, potential reversal
Bullish Divergence (Green Triangle Up)
- Price makes new low
- Volume delta makes higher low
- Warning: Sellers weakening, potential reversal
How to use:
- Divergence in Strong regime = early warning of regime change
- Confirms when regime actually transitions
- Don't trade divergence alone, wait for regime confirmation
Limitations
This Indicator Cannot:
**Predict black swan events** - Unexpected news overrides all technical regimes
**Work in all markets** - Needs liquid markets with reliable volume data
**Guarantee profits** - Probabilities are not certainties
**Replace fundamental analysis** - Technical regimes can diverge from fundamentals
Works Best:
- Liquid markets (major indices, forex, crypto, large-cap stocks)
- Daily and 4H timeframes
- Combined with other analysis
- With proper risk management
- In normal market conditions
Common Questions
"Why did the regime stay consolidation despite strong price move?"
The indicator detected mean reversion (variance ratio < 0.8), indicating the move will likely reverse. Or the move wasn't statistically significant (t-stat < 1.96). Trust the statistics over visual appearance.
"Probabilities show 30% for each regime. What does that mean?"
High uncertainty. The market is at an inflection point. Reduce position sizes and wait for clearer regime formation.
"Can I use this for day trading?"
Not recommended on timeframes below 1H. Statistical tests need sufficient data. Better suited for swing trading.
"Why does this show Strong Bull when my momentum indicators show weakness?"
Momentum can weaken while the trend remains statistically significant. The indicator focuses on drift and volume, not momentum. Consider it a different perspective.
Technical Notes
Volume Delta Approximation
Uses OHLCV data to approximate order flow:
- Buy volume ≈ Volume on up-closes
- Sell volume ≈ Volume on down-closes
- Delta = Buy - Sell
**Note:** Real order flow (from futures or Level 2) is more precise. This approximation works well on liquid markets.
Statistical Tests
Drift T-Test:
- Null hypothesis: No drift (mean return = 0)
- Reject if |t-stat| > threshold
- Based on standard hypothesis testing
Variance Ratio:
- Compares 2-period variance to 1-period variance
- Ratio = 1 for random walk
- Ratio < 1 for mean reversion
- Threshold of 0.8 based on empirical testing
Transition Probability Implementation
Due to Pine Script v5 limitations (no native 2D arrays), the 5×5 transition matrix is stored as a flat 1D array of 25 elements:
- Position maps to index: `row × 5 + col`
- Example: Transition from Regime 2 to Regime 4 is at index `1 × 5 + 3 = 8`
- Laplace smoothing (0.1) prevents zero probabilities
- Row sums normalized to calculate probabilities
This approach is computationally efficient and maintains statistical accuracy.
No Repainting
All calculations confirmed on bar close. Regime changes appear when the bar closes, not during formation. Historical analysis is accurate.
Alert Conditions
Regime Change
- Triggers when regime transitions to any new state
- Message shows new regime number (1-5)
Bearish Divergence
- Triggers when price makes new high but volume delta doesn't confirm
Bullish Divergence
- Triggers when price makes new low but volume delta doesn't confirm
Disclaimer
FOR EDUCATIONAL PURPOSES ONLY
This indicator uses statistical methods to analyze market regimes. It does not predict the future or guarantee trading success.
Markets are probabilistic, not deterministic. A 70% probability of staying bullish means 30% chance of regime change. Always use proper risk management.
Past regime transitions do not guarantee future transitions. Market structure can change. Statistical relationships can break down.
Never risk more than you can afford to lose. Use stop losses on every trade. Test thoroughly before live trading. Consult a qualified financial advisor.
© 2026 | Open Source
Statistical rigor meets practical application
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 -------------------------------------------
//------------------------------------------------------
Candle Flip S/R (M1 AND M5 ONLY)
This indicator automatically plots key support and resistance levels based on HTF like 30-minute candle structure, designed for lower-timeframe execution (M1 / M5).
How it works
The indicator analyzes two completed 30-minute candles:
When a bullish candle is followed by a bearish candle, a resistance level is created.
When a bearish candle is followed by a bullish candle, a support level is created.
The level is anchored to the OPEN of the last completed 30-minute candle, which represents a clean structural reference point.
Each level extends forward until price touches it for the first time.
Once touched, the level stops extending and is considered invalid.
New structure creates new levels — old levels are not reused or extended incorrectly.
Recommended Usage
Best used on M1 or M5 charts
Higher-timeframe structure + lower-timeframe execution
Ideal for:
Liquidity reactions
Fake breaks
Rejection trades
Confluence with footprint / delta / volume tools
Key Features
Non-repainting
No future bar drawing
Accurate 30-minute anchoring
Clean and lightweight
Works on M1, M5, and M30
Notes
This tool is not a standalone trading system
Use it as a context and structure indicator
Always combine with your own confirmation and risk management






















