Step Generalized Moving Average

Feb 4, 2026

Static chart image
Support and Resistance
Signals
Candlestick
Moving Averages
Volatility

The Step Generalized Moving Average indicator provides a trend-structure moving average that utilizes volatility-adjusted "steps" and lag-compensation to reduce market noise while maintaining responsiveness.

Usage

The Usage section describes how the script can be used to identify market regimes and structural shifts. The indicator is primarily used as a trend filter; when the stepped line is rising, the market is considered in a bullish regime, and when it is falling, the market is in a bearish regime. Because the line remains flat during periods of insignificant price movement, it helps traders avoid "choppy" markets where standard moving averages might produce frequent false signals.

The indicator can also function as dynamic support and resistance. In an uptrend, the stepped levels represent structural support, while in a downtrend, they represent resistance. Users typically look for "direction flips"—where the line changes from an upward step to a downward step—as signals for potential trend reversals or exits.

Details

The script is constructed using three primary components:

  • Generalized Moving Average (GMA): This engine uses a two-stage smoothing process. It calculates an initial moving average (MA1) and a secondary smoothing of that average (MA2). By combining them using the Volume Factor, it offsets the lag inherent in traditional smoothing, pushing the output closer to current price action without sacrificing stability.
  • Step Filter: This converts the smooth GMA into a discrete "staircase" signal. The filter only updates the value if the price move exceeds a specific threshold defined by the Average True Range (ATR). If the price jumps significantly, the filter "catches up" in multiples of the step size to ensure the line stays relevant to market structure.
  • Volatility Adaptation: Because the step size is tied to the ATR, the indicator automatically widens its "noise filter" during high volatility and tightens it during low volatility.

The script also includes a secondary slow moving average and a gradient fill to provide visual context for trend pressure and the distance between the structural step and the underlying price drift.

Settings

  • Moving Average Type: Selects the base smoothing algorithm (e.g., SMA, EMA, T3, ALMA, KAMA, LSMA, McGinley).
  • MA Period: Sets the lookback window for the base smoothing engine.
  • Volume Factor: Adjusts the aggressiveness of the lag compensation (higher values increase responsiveness).
  • Step Size (% of ATR): Determines how large a move must be (relative to volatility) to trigger a new step.
  • ATR Period: Sets the lookback period for the volatility calculation used to size the steps.
  • Color Bars: Toggles the ability to color the price candles based on the current trend direction.
  • Line Width: Adjusts the visual thickness of the StepGMA line.
  • Long/Short Color: Customizes the colors used for bullish and bearish regimes.

FAQ

How do I adjust the indicator to show fewer signals in sideways markets?
You can increase the "Step Size (% of ATR)" or increase the "MA Period." This requires the price to make a more significant, volatility-adjusted move before the trend direction flips.

What is the difference between the StepGMA and a standard Moving Average?
A standard MA moves every time the price changes, often leading to "whipsaws" in consolidation. The StepGMA remains flat until a meaningful move occurs, acting more like a structural level than a simple average.

How can I access the Step Generalized Moving Average?
You can get access on the LuxAlgo Library for charting platforms like TradingView, MetaTrader (MT4/MT5), and NinjaTrader for free.

Free access on the following platforms
tradingviewSymbolTradingView
Open in your browser

This in-app browser is not compatible with Get Access from the library.

Tap the menu (...) at the top of your screen and select "Open in Browser", "Open in Safari", or "Open in Chrome" to continue.

ninjatraderNinjaTrader
Open in your browser

This in-app browser is not compatible with Get Access from the library.

Tap the menu (...) at the top of your screen and select "Open in Browser", "Open in Safari", or "Open in Chrome" to continue.

metatrader4MetaTrader 4/5
Open in your browser

This in-app browser is not compatible with Get Access from the library.

Tap the menu (...) at the top of your screen and select "Open in Browser", "Open in Safari", or "Open in Chrome" to continue.

thinkorswimThinkorswim
Open in your browser

This in-app browser is not compatible with Get Access from the library.

Tap the menu (...) at the top of your screen and select "Open in Browser", "Open in Safari", or "Open in Chrome" to continue.

Trading & investing are risky and many will lose money in connection with trading and investing activities. All content on this site is not intended to, and should not be, construed as financial advice. Decisions to buy, sell, hold or trade in securities, commodities and other investments involve risk and are best made based on the advice of qualified financial professionals. Past performance does not guarantee future results.

Hypothetical or Simulated performance results have certain limitations. Unlike an actual performance record, simulated results do not represent actual trading. Also, since the trades have not been executed, the results may have under-or-over compensated for the impact, if any, of certain market factors, including, but not limited to, lack of liquidity. Simulated trading programs in general are designed with the benefit of hindsight, and are based on historical information. No representation is being made that any account will or is likely to achieve profit or losses similar to those shown.

Testimonials appearing on this website may not be representative of other clients or customers and is not a guarantee of future performance or success.

As a provider of technical analysis tools and strategies, we do not have access to the personal trading accounts or brokerage statements of our customers. As a result, we have no reason to believe our customers perform better or worse than traders as a whole based on any content, tool, or platform feature we provide.

Charts used on this site are by TradingView in which the majority of our technical indicators are built on. TradingView® is a registered trademark of TradingView, Inc. www.TradingView.com TradingView® has no affiliation with the owner, developer, or provider of the Services described herein.

Market data is provided by CBOE, CME Group, BarChart, Massive, CoinAPI. Select U.S. equities data is provided through Massive. CBOE BZX real-time U.S. equities data is licensed from CBOE and provided through BarChart. Real-time futures data is licensed from CME Group and provided through BarChart. Select cryptocurrency data, including major coins, is provided through CoinAPI. All data is provided “as is” and should be verified independently for trading purposes.

This does not represent our full Disclaimer. Please read our full disclaimer.

© 2026 LuxAlgo Global, LLC.