Moving Averages

Six moving averages, ranked by speed-vs-smoothness trade-off. Pick by the role the indicator plays in your strategy, not by which one is 'best.'

Updated 2026-05-24
7 min read
beginner

Six moving averages, each at a different point on the speed-vs-smoothness curve. They all do the same fundamental job — summarize recent price into a single line — and differ in how they weight history and how quickly they react.

The right one for any given strategy depends on what role it plays. Regime filters want slow and stable. Execution signals want fast and reactive. Most strategies use two or more — a fast one to fire entries and a slow one to gate them.

At a glance

IndicatorSpeedSmoothnessDefault periodBest for
SMASlowestSmoothest20Long-horizon regime, stable baselines
EMAMediumMedium20Default — most strategies start here
DEMAFastMedium14Intraday execution, faster pullback entries
TEMAFastestNoisy14Very-short-timeframe execution
HMAFastSmooth14Slope-based signals, regime detection
KAMAAdaptiveAdaptive(10, 2, 30)Markets that alternate trend / chop

How to choose

You're building a regime filter. Reach for SMA(200) on a daily chart, or HMA(50) if you want the slope as a clean binary regime flag. Adding KAMA's Efficiency Ratio output gives you a chop-vs-trend detector that no fixed-period MA can match.

You're building an entry trigger on intraday timeframes. Default to EMA(20). If lag is hurting you, drop to DEMA(14). If you need the absolute fastest reaction (e.g., session-open scalping), use TEMA(9) — but with a tight cooldown and a regime filter.

You want pullback entries in established trends. EMA(50) or HMA(21) work well as the pullback target. HMA's slope is especially useful here for confirming the trend is still alive at the moment of the pullback.

You want a single indicator to detect both direction and regime. KAMA. The Efficiency Ratio output is the differentiator — no other moving average gives you a built-in regime classifier.

You're confused by the options and just want to start. Use EMA(20). It's the right choice ~70% of the time, and any other moving average can be substituted in later without restructuring the strategy.

The speed vs. smoothness trade-off

The key dimension to understand:

  • Slow + smooth (SMA): Doesn't react fast, doesn't whip around. Best as a stable reference line — regime filters, baselines, support/resistance.
  • Fast + smooth (HMA): Reacts quickly but produces a clean curve. Best when you need to trade off the slope of the indicator itself.
  • Fast + noisy (TEMA): Reacts almost instantly but the line jitters. Best for very-short-timeframe execution where the signal is going to be confirmed by something else immediately.
  • Adaptive (KAMA): Changes its effective speed based on market regime. Best when the market itself shifts between trending and choppy states.

You almost never want to combine two indicators from the same speed/smoothness quadrant. The combinations that work — fast execution gated by slow regime, smooth trend confirmed by reactive entry — pair indicators from opposite ends of these dimensions.

Common patterns

The two-MA crossover. Fast MA (EMA 20) crosses slow MA (EMA 50). Classic. Needs a Cooldown node to prevent machine-gunning. See your first strategy for the full wiring.

The regime-filtered execution stack. Slow SMA(200) on a daily series defines regime. Faster EMA or HMA on the execution series fires entries. The slow MA prevents trades against the long-term trend.

The adaptive trend stack. KAMA's Efficiency Ratio gates everything. Strategy only allows trades when ER > 0.4 (trending), pauses entirely when ER < 0.3 (chopping). The cleanest no-regime-classifier-needed approach.

The slope-based regime. HMA(21)'s slope output as a binary up/down regime flag. Long-only when slope > 0, short-only when slope < 0. Simpler than KAMA, cleaner than EMA-based equivalents.

Key Takeaway

Pick a moving average by the role it plays in your strategy, not by which one is fastest or smoothest. The same chart that uses SMA(200) for regime and TEMA(9) for execution is using both correctly — those are different jobs.