Autonomous Recursive Moving Average
May 31, 2019

The Autonomous Recursive Moving Average (ARMA) indicator is an adaptive trend-following tool designed to minimize lag while providing a flat filtering effect during non-trending market conditions. By utilizing a ternary operator to minimize the sum of squares, it offers a robust alternative to traditional exponential smoothing methods, specifically aiming to reduce noise in ranging markets.
Usage
The Usage section describes how the script can be used, particularly in identifying trend direction and filtering out market noise.
- Trend Identification: When the price is consistently above the ARMA line, it indicates a bullish trend. Conversely, when the price is below the line, a bearish trend is suggested.
- Ranging Market Filter: One of the primary uses of the ARMA is its ability to flatten during sideways price action. By observing when the indicator line stays horizontal, traders can avoid entering trades during indecisive market phases.
- Crossover Signals: Standard price-to-indicator crossovers can be used as potential entry or exit points, though the ARMA is specifically optimized to remain "boxy" or flat until a significant price movement occurs.
Details
The ARMA distinguishes itself from other adaptive moving averages by avoiding the common pitfalls of standard exponential averaging. Instead of adapting via a smoothing variable, it employs a ternary logic system to decide whether to follow the price or remain at its previous value based on a calculated deviation threshold.
The calculation involves a deviation factor ($d$) derived from the cumulative absolute difference between the source price and the previous moving average value, scaled by the Gamma parameter. If the price moves beyond this threshold, the indicator adjusts; otherwise, it remains flat. The result is further smoothed using a double Simple Moving Average (SMA) process to ensure consistency, though this can occasionally result in minor overshoots due to the recursive nature of the calculation.
Settings
- Length: Determines the period used for smoothing during active trends. Lower values increase reactivity, while higher values produce a smoother, slower-moving line.
- Gamma: Sets the trend sensitivity threshold. Higher values increase the "flatness" of the filter, requiring larger price movements to trigger a change in the indicator's value. This is the primary setting for skipping ranging markets.
- Zero-Lag: A toggle that, when enabled, applies a lag-reduction technique by adjusting the source price based on its recent rate of change. This allows the indicator to react faster to price reversals without necessarily increasing noise.
FAQ
How does Gamma affect the signals? Gamma controls the "gate" for price updates. A high Gamma value will make the indicator stay flat for longer periods, which is useful for filtering out minor fluctuations, whereas a low Gamma makes it act more like a standard moving average.
What is the benefit of the Zero-Lag option? The Zero-Lag option compensates for the inherent delay found in smoothing calculations, allowing the ARMA to track price pivots more closely without losing its ability to filter flat markets.
How can I access this indicator? You can get access on the LuxAlgo Library for charting platforms like TradingView, MetaTrader (MT4/MT5), and NinjaTrader for free.
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.

