OPEN-SOURCE SCRIPT
Updated AG Pro Moving Average Ribbon Stress Meter [AGPro Series]

AG Pro Moving Average Ribbon Stress Meter [AGPro Series]
Overview / What It Does
This indicator is designed to read the internal condition of a moving-average ribbon rather than treating the ribbon as a simple trend overlay. Instead of asking only whether the ribbon is bullish or bearish, it asks a different question: is the ribbon structurally calm, starting to load, becoming strained, or losing internal order.
The script builds a six-line moving-average ribbon, measures how those averages interact with each other, and converts that interaction into a stress framework. The result is a visual map that helps show whether the ribbon is organized, stretched, unstable, or resetting after stress.
In practical terms, the script is built to help users evaluate ribbon quality, internal synchronization, and the degree of structural pressure inside the moving-average stack. It is not intended to forecast future prices, call tops or bottoms, or replace broader market analysis. Its purpose is to organize what the ribbon is doing now and how stable or unstable that structure appears to be.
The chart output combines multiple layers: the ribbon itself, a central stress spine, edge bands, optional stress aura, event labels, and a compact status panel. Together, these elements aim to make the ribbon easier to interpret without requiring the user to manually inspect every moving average line on every bar.
Unique Edge
Many ribbon-style tools focus on directional bias, crossovers, or broad expansion and contraction. This script focuses on internal ribbon stress.
Its main distinction is that it does not treat all ribbon trends as equal. A ribbon can be rising while still carrying internal disagreement. A ribbon can also look compressed or visually clean while underlying alignment, slope behavior, width dynamics, or price stretch are beginning to deteriorate. This script is built to surface those conditions.
The goal is not to reduce the market to a single signal. The goal is to provide a structured visual read on whether the moving-average stack is operating in a calm state, a loaded state, a strained state, or a more unstable condition. That makes it more useful as a workflow tool than as a simple trend-colour overlay.
Another point of differentiation is presentation. The script uses a ribbon-focused visual design so that the user can read internal condition directly from the chart. Focus modes, theme presets, stress spine layering, and a compact panel are included to keep the display informative without turning the chart into a dense dashboard.
Methodology
The script evaluates ribbon condition through five stress components.
1) Order Stress
This measures whether the moving averages are stacked cleanly or whether their order is becoming mixed. Lower stress suggests cleaner structural order. Higher stress suggests more internal disorder.
2) Slope Dispersion Stress
This evaluates how consistently the moving averages are sloping together. When the ribbon lines are moving with similar directional agreement, synchronization is stronger. When their slopes diverge, internal stress rises.
3) Width Instability Stress
This tracks whether the ribbon width is behaving in a stable or unstable way. A ribbon can widen in an orderly way or in a more erratic way. This component attempts to distinguish between those conditions.
4) Curvature Stress
This evaluates bending in the ribbon core. Strong changes in ribbon curvature may indicate increasing internal pressure or transition.
5) Price Stretch Stress
This measures how far price is moving from the ribbon core relative to ribbon width and ATR-based normalization. This is not a directional claim. It is a structure-based distance measure.
These components are weighted and blended into a smoothed Stress Score. That score then feeds the state engine.
Primary states include Calm, Loaded, Strained, Critical, Fractured, and Recovery. The panel and visual styling use those states to summarize the ribbon condition at the current bar.
Signals & Alerts
This script is built around state transitions and structural events rather than buy/sell promises.
Depending on settings, users may see event labels and alerts such as:
Stress Build
Shows that stress has crossed into an early loading phase.
Strained
Shows that the ribbon has moved into a more stressed internal state.
Critical Load
Highlights a higher-pressure condition where instability has become more meaningful.
Ribbon Fracture
Marks a stronger structural failure condition when stress and ribbon order deterioration align.
Stress Reset
Shows that a previously elevated stress condition has cooled enough to register recovery.
Order Restored
Highlights improvement in ribbon order after disorder had been present.
These events are not trade instructions. They are context markers intended to help users track shifts in ribbon condition. Alerts should be interpreted together with market structure, timeframe context, volatility, and personal risk management.
Key Inputs
Source and MA Type
The ribbon can be built from different moving-average types and data sources.
Ribbon Lengths
Users can define the six ribbon lengths to fit their preferred structure and timeframe.
Stress Engine Inputs
ATR length, slope lookback, width lookback, curvature lookback, smoothing, and component references allow users to calibrate how sensitive the stress model should be.
Weights
The script includes separate weights for order stress, slope dispersion, width instability, curvature stress, and price stretch stress.
Thresholds
Loaded, Strained, Critical, and Fracture thresholds can be adjusted for tighter or looser state transitions.
Theme Presets and Focus Mode
Theme presets and focus modes allow the ribbon to be displayed in different visual styles while preserving the same logic.
Events and Panel
Users can control label density, label spacing, marker visibility, and panel position.
Limitations & Transparency
This script is an interpretation framework built around moving-average relationships. It does not know future price movement, and it does not claim certainty. Like any model built on smoothed market data, it will react more slowly in some environments and may produce fewer useful transitions in others.
Different assets and timeframes can produce different ribbon personalities. A threshold or weight set that feels balanced on one market may feel too sensitive or too quiet on another. Users should expect to adapt settings if they move between instruments with very different volatility or trend behavior.
The stress model is also deliberately selective. It does not try to label every fluctuation or classify every candle. Its purpose is to organize ribbon condition, not to describe every possible market state.
This indicator should also not be confused with a complete trading plan. It does not define entries, exits, position sizing, or account risk. It is best used as a structural context tool inside a broader workflow.
Risk Disclosure
This script is for chart analysis and educational use. It is not financial advice, investment advice, or a promise of outcome.
No indicator can guarantee performance, remove risk, or eliminate false readings. Market conditions change, correlations shift, and trend behavior can weaken or reverse without warning. Any decision taken from this script should be made within a broader framework that includes price structure, liquidity, volatility, timeframe alignment, and risk control.
Users are responsible for testing settings, understanding the limitations of moving-average tools, and deciding whether the information produced by the script fits their own process.
Overview / What It Does
This indicator is designed to read the internal condition of a moving-average ribbon rather than treating the ribbon as a simple trend overlay. Instead of asking only whether the ribbon is bullish or bearish, it asks a different question: is the ribbon structurally calm, starting to load, becoming strained, or losing internal order.
The script builds a six-line moving-average ribbon, measures how those averages interact with each other, and converts that interaction into a stress framework. The result is a visual map that helps show whether the ribbon is organized, stretched, unstable, or resetting after stress.
In practical terms, the script is built to help users evaluate ribbon quality, internal synchronization, and the degree of structural pressure inside the moving-average stack. It is not intended to forecast future prices, call tops or bottoms, or replace broader market analysis. Its purpose is to organize what the ribbon is doing now and how stable or unstable that structure appears to be.
The chart output combines multiple layers: the ribbon itself, a central stress spine, edge bands, optional stress aura, event labels, and a compact status panel. Together, these elements aim to make the ribbon easier to interpret without requiring the user to manually inspect every moving average line on every bar.
Unique Edge
Many ribbon-style tools focus on directional bias, crossovers, or broad expansion and contraction. This script focuses on internal ribbon stress.
Its main distinction is that it does not treat all ribbon trends as equal. A ribbon can be rising while still carrying internal disagreement. A ribbon can also look compressed or visually clean while underlying alignment, slope behavior, width dynamics, or price stretch are beginning to deteriorate. This script is built to surface those conditions.
The goal is not to reduce the market to a single signal. The goal is to provide a structured visual read on whether the moving-average stack is operating in a calm state, a loaded state, a strained state, or a more unstable condition. That makes it more useful as a workflow tool than as a simple trend-colour overlay.
Another point of differentiation is presentation. The script uses a ribbon-focused visual design so that the user can read internal condition directly from the chart. Focus modes, theme presets, stress spine layering, and a compact panel are included to keep the display informative without turning the chart into a dense dashboard.
Methodology
The script evaluates ribbon condition through five stress components.
1) Order Stress
This measures whether the moving averages are stacked cleanly or whether their order is becoming mixed. Lower stress suggests cleaner structural order. Higher stress suggests more internal disorder.
2) Slope Dispersion Stress
This evaluates how consistently the moving averages are sloping together. When the ribbon lines are moving with similar directional agreement, synchronization is stronger. When their slopes diverge, internal stress rises.
3) Width Instability Stress
This tracks whether the ribbon width is behaving in a stable or unstable way. A ribbon can widen in an orderly way or in a more erratic way. This component attempts to distinguish between those conditions.
4) Curvature Stress
This evaluates bending in the ribbon core. Strong changes in ribbon curvature may indicate increasing internal pressure or transition.
5) Price Stretch Stress
This measures how far price is moving from the ribbon core relative to ribbon width and ATR-based normalization. This is not a directional claim. It is a structure-based distance measure.
These components are weighted and blended into a smoothed Stress Score. That score then feeds the state engine.
Primary states include Calm, Loaded, Strained, Critical, Fractured, and Recovery. The panel and visual styling use those states to summarize the ribbon condition at the current bar.
Signals & Alerts
This script is built around state transitions and structural events rather than buy/sell promises.
Depending on settings, users may see event labels and alerts such as:
Stress Build
Shows that stress has crossed into an early loading phase.
Strained
Shows that the ribbon has moved into a more stressed internal state.
Critical Load
Highlights a higher-pressure condition where instability has become more meaningful.
Ribbon Fracture
Marks a stronger structural failure condition when stress and ribbon order deterioration align.
Stress Reset
Shows that a previously elevated stress condition has cooled enough to register recovery.
Order Restored
Highlights improvement in ribbon order after disorder had been present.
These events are not trade instructions. They are context markers intended to help users track shifts in ribbon condition. Alerts should be interpreted together with market structure, timeframe context, volatility, and personal risk management.
Key Inputs
Source and MA Type
The ribbon can be built from different moving-average types and data sources.
Ribbon Lengths
Users can define the six ribbon lengths to fit their preferred structure and timeframe.
Stress Engine Inputs
ATR length, slope lookback, width lookback, curvature lookback, smoothing, and component references allow users to calibrate how sensitive the stress model should be.
Weights
The script includes separate weights for order stress, slope dispersion, width instability, curvature stress, and price stretch stress.
Thresholds
Loaded, Strained, Critical, and Fracture thresholds can be adjusted for tighter or looser state transitions.
Theme Presets and Focus Mode
Theme presets and focus modes allow the ribbon to be displayed in different visual styles while preserving the same logic.
Events and Panel
Users can control label density, label spacing, marker visibility, and panel position.
Limitations & Transparency
This script is an interpretation framework built around moving-average relationships. It does not know future price movement, and it does not claim certainty. Like any model built on smoothed market data, it will react more slowly in some environments and may produce fewer useful transitions in others.
Different assets and timeframes can produce different ribbon personalities. A threshold or weight set that feels balanced on one market may feel too sensitive or too quiet on another. Users should expect to adapt settings if they move between instruments with very different volatility or trend behavior.
The stress model is also deliberately selective. It does not try to label every fluctuation or classify every candle. Its purpose is to organize ribbon condition, not to describe every possible market state.
This indicator should also not be confused with a complete trading plan. It does not define entries, exits, position sizing, or account risk. It is best used as a structural context tool inside a broader workflow.
Risk Disclosure
This script is for chart analysis and educational use. It is not financial advice, investment advice, or a promise of outcome.
No indicator can guarantee performance, remove risk, or eliminate false readings. Market conditions change, correlations shift, and trend behavior can weaken or reverse without warning. Any decision taken from this script should be made within a broader framework that includes price structure, liquidity, volatility, timeframe alignment, and risk control.
Users are responsible for testing settings, understanding the limitations of moving-average tools, and deciding whether the information produced by the script fits their own process.
Release Notes
Update Notes - V2.3This update focuses on visual clarity, chart balance, and cleaner on-chart presentation.
• Refined ribbon visibility so candles remain easier to read during active ribbon expansion and stress transitions.
• Softened the ribbon boundary lines for a cleaner overlay and less visual dominance on the chart.
• Increased the spacing of lower event labels to reduce crowding around candles and improve separation from price action.
• Preserved the core stress-state logic while improving the overall visual hierarchy of the overlay.
• Kept the standardized panel structure, including the single merged title row for a cleaner and more consistent AG Pro presentation.
• Applied minor display polish to support a more balanced chart layout in both calm and stressed ribbon conditions.
This script is designed for visual analysis and workflow support. It does not predict future price movement and should not be treated as a standalone trading system.
Release Notes
UPDATE NOTES -- V2.4This update keeps the original ribbon stress engine intact, but improves the script's visual identity, publish-readability, and structural differentiation inside the AGPro public lineup.
What changed
1. Added Stress Memory Zones
Critical and fracture stress events can now project forward as controlled reaction boxes. These zones are derived from ribbon structure, not from generic support/resistance logic, so the script now leaves a cleaner visual memory of where internal ribbon pressure became meaningful.
2. Applied the current AGPro naming and branding standard
The public script title now removes the leading AG Pro prefix while keeping the [AGPro Series] suffix. AG Pro branding remains inside the panel header only, matching the current series rule.
3. Upgraded the panel to the current AGPro display standard
The first panel row remains a single merged blue header row with the script name only. Panel position is now available across top, middle, and bottom anchors, and panel theme can be switched between Dark and Light.
4. Improved default readability
Panel font size now defaults to Normal. Label offset was increased so event labels stay clearer around candles, and the color system now follows the AGPro palette more closely for a more premium screenshot balance.
5. Preserved the original stress framework
The ribbon still evaluates order stress, slope dispersion, width instability, curvature stress, and price stretch, then blends them into the same state workflow: Calm, Loaded, Strained, Critical, Fractured, and Recovery.
What did not change
- The core stress model is still ribbon-first and not a buy/sell signal engine.
- Existing threshold, weighting, and alert logic remain structurally familiar.
- The script is still designed as a chart context and workflow tool, not as a standalone trading system.
Open-source script
In true TradingView spirit, the creator of this script has made it open-source, so that traders can review and verify its functionality. Kudos to the author! While you can use it for free, remember that republishing the code is subject to our House Rules.
⚡ Precision Pine tools for crypto & FX traders
📊 ICT • Smart Money • Market Structure • Liquidity
🧠 Rules-based decision tools. No hype. No guesswork
⭐ Public AGPro Series + advanced invite-only tools
💬 t.me/agprolabs
📊 ICT • Smart Money • Market Structure • Liquidity
🧠 Rules-based decision tools. No hype. No guesswork
⭐ Public AGPro Series + advanced invite-only tools
💬 t.me/agprolabs
Disclaimer
The information and publications are not meant to be, and do not constitute, financial, investment, trading, or other types of advice or recommendations supplied or endorsed by TradingView. Read more in the Terms of Use.
Open-source script
In true TradingView spirit, the creator of this script has made it open-source, so that traders can review and verify its functionality. Kudos to the author! While you can use it for free, remember that republishing the code is subject to our House Rules.
⚡ Precision Pine tools for crypto & FX traders
📊 ICT • Smart Money • Market Structure • Liquidity
🧠 Rules-based decision tools. No hype. No guesswork
⭐ Public AGPro Series + advanced invite-only tools
💬 t.me/agprolabs
📊 ICT • Smart Money • Market Structure • Liquidity
🧠 Rules-based decision tools. No hype. No guesswork
⭐ Public AGPro Series + advanced invite-only tools
💬 t.me/agprolabs
Disclaimer
The information and publications are not meant to be, and do not constitute, financial, investment, trading, or other types of advice or recommendations supplied or endorsed by TradingView. Read more in the Terms of Use.