Kaufman's Adaptive Moving Average (KAMA)

A moving average that adjusts its own speed based on how trending or choppy the market is. Fast in trends, flat in chop — solves the static-period dilemma.

Updated 2026-05-24
9 min read
advanced

A moving average that adapts its smoothing speed to current market conditions. When price is trending efficiently, KAMA accelerates and tracks closely. When price is chopping, KAMA flattens and ignores the noise.

Placeholder · Video / Clip

KAMA flattening through chop then accelerating into a trend on MES 5m

Author hint: MES 5m, dark theme, ~80-bar window. KAMA(10) overlaid on price, plus EMA(10) as a comparison line. Show a transition from chop (where KAMA stays flat while EMA whips around) into a trend (where KAMA accelerates and catches up). ≤ 10 seconds, no audio. Save to /public/images/guide/indicators/kama/chart.mp4.

What it measures

  • Direction-weighted by efficiency. KAMA only moves meaningfully when price is trending efficiently, ignoring most random noise.
  • Market state via the Efficiency Ratio. A separate output between 0 (pure chop) and 1 (pure trend) — usable as a regime filter on its own.
  • Adaptive trend reference. Effectively a different EMA period at every bar — fast in trends, slow in chop.

Formula

How AlgoLift computes it

KAMA blends two smoothing constants based on the Efficiency Ratio (ER):

ER = abs(price[t] − price[t − period]) / sum_of_abs_changes_over_period
SC = (ER × (fast_SC − slow_SC) + slow_SC)²
KAMA[t] = KAMA[t−1] + SC × (price[t] − KAMA[t−1])

The Efficiency Ratio measures how much net price movement occurred per unit of total movement. ER ≈ 1 means price moved directly from A to B (efficient trend); ER ≈ 0 means price oscillated a lot but didn't go anywhere (chop).

When ER is high, the smoothing constant is closer to a fast EMA's smoothing. When ER is low, it's closer to a slow EMA's. The KAMA line accordingly accelerates in trends and flattens in chop. Developed by Perry Kaufman in 1995.

Inputs in AlgoLift

SettingDefaultRangeNotes
ER Period102–200Lookback for the Efficiency Ratio calculation. Shorter = more reactive ER readings.
Fast Period21–50EMA-equivalent period used when ER is high (trending).
Slow Period302–200EMA-equivalent period used when ER is low (chopping).

Recommended settings

  • (10, 2, 30) — default: General-purpose. Good baseline for most instruments and timeframes.
  • (20, 2, 50): Slower regime detection. Better for swing strategies where you want KAMA to ignore short-term chop.
  • (5, 2, 20): Faster adaptation. For active intraday strategies, but can be jumpy.

The three parameters interact — tuning them blindly is the fastest way to overfit KAMA. Stick with the default unless a specific use case demands otherwise. See overfitting in trading.

Outputs in AlgoLift

HandleTypePlottedNotes
KAMANumericAlwaysThe adaptive moving average line.
SlopeNumericOn selectBar-over-bar change in KAMA.
Efficiency RatioNumericOn selectThe ER value (0 to 1) that drove the adaptation. Highly useful as a standalone regime filter.
Placeholder · Screenshot

KAMA node — default state with three outputs

Author hint: The KAMA node on a fresh canvas with default settings (ER=10, Fast=2, Slow=30). All three output handles labeled (KAMA, Slope, Efficiency Ratio). Dark theme. Tight crop. Save to /public/images/guide/indicators/kama/node.png.

How to read it

  • KAMA flattening: Market is in chop, ER is low. Most other indicators will be giving false signals here.
  • KAMA accelerating: Market is trending efficiently, ER is high. Trend-following signals are most likely to work.
  • Price above KAMA: Up-state, weighted by how much you can trust it (high ER = trust, low ER = skepticism).
  • Efficiency Ratio above 0.5: Strong trend regime. Below 0.3: chop regime. Between: transitional.

The three outputs are best used together. KAMA's value tells you direction; KAMA's slope tells you whether direction is changing; ER tells you whether either signal is currently trustworthy.

Key Takeaway

KAMA's superpower isn't the smoother line — it's the Efficiency Ratio. Treat ER as a first-class regime indicator alongside KAMA's value, and the indicator becomes far more useful than a faster-or-slower moving average could be.

Best in / worst in

Best in markets that alternate clearly between trending and ranging states — most futures markets do this naturally across sessions and days. KAMA's adaptation is doing real work in these conditions.

Worst in markets that are persistently noisy without ever fully trending (some low-cap equities, some FX crosses during quiet hours) and in markets that gap heavily — KAMA's adaptation can't react to gap-driven trend changes fast enough.

Three setups

1. ER-gated trend entries

Use the Efficiency Ratio as the regime filter for any moving-average crossover strategy.

  • Long: EMA(20) crosses above EMA(50) AND KAMA(10,2,30) Efficiency Ratio > 0.4.
  • Short: Symmetric.

The ER check eliminates the majority of false crossover signals in chop without needing to define "chop" via complex price-pattern logic.

Placeholder · Screenshot

EMA crossover gated by KAMA's Efficiency Ratio

Author hint: Node graph showing KAMA's Efficiency Ratio output feeding into an AND gate alongside an EMA crossover signal. Both clearly labeled. Save to /public/images/guide/indicators/kama/setup-01.png.

2. KAMA slope as a primary signal

Trade KAMA directly without other inputs.

  • Long: KAMA(10,2,30) slope > 0 AND just crossed up from ≤ 0 for the past 5 bars.
  • Short: Symmetric.

Combined with the natural adaptation, this is one of the cleanest moving-average primary signals available.

3. KAMA / EMA divergence as a chop detector

When KAMA flattens while EMA continues to oscillate, the market is in pure chop.

  • Use the gap between KAMA(10) and EMA(10): if abs(KAMA − EMA) > 0.3% of price, KAMA is rejecting the recent move as noise.
  • Use as a "pause trading" flag for unrelated strategies.

Advanced patterns in AlgoLift

ER as a position-sizing input. Pipe the Efficiency Ratio into a math node that scales position size: position = base_size × ER. Large positions during clean trends, tiny positions during chop. Combined with risk management basics, this turns KAMA into a complete sizing system.

ER for regime-conditional strategy switching. Use a Conditional Flow node driven by the Efficiency Ratio to route the strategy between two different entry logics — a momentum logic when ER > 0.5, a mean-reversion logic when ER < 0.3. See market regimes for the broader pattern.

KAMA on a higher timeframe as a master regime gate. Apply KAMA to a 1h or daily data series alongside your 5m execution chart. Only allow any trading when the higher-timeframe ER > 0.4. Eliminates trades during macro chop windows.

Placeholder · Screenshot

Regime-conditional strategy switching via Conditional Flow

Author hint: Node graph showing KAMA's ER output driving a Conditional Flow node, which switches between two entry sub-graphs (one momentum, one mean-reversion). Save to /public/images/guide/indicators/kama/setup-02.png.

Common mistakes

  • Tuning all three parameters at once. ER period, fast period, and slow period create a three-dimensional optimization surface that's trivially easy to overfit. Touch the ER period only — leave fast=2 and slow=30 alone unless you have a specific thesis.
  • Treating KAMA as just another moving average. Without using the Efficiency Ratio output, you're using ~60% of what KAMA offers. The ER is the differentiator.
  • Expecting KAMA to handle gaps. Adaptation is based on the lookback window — a single overnight gap that breaks a trend can leave KAMA still pointing the old direction for several bars.
  • Using KAMA at very long ER periods. A 60-bar ER period dilutes the adaptation. KAMA's advantage shows up at shorter ER periods (5–20).
Common Misconception
Myth
KAMA is strictly better than EMA because it's adaptive.
Reality
KAMA adds complexity and three parameters in exchange for ER-based smoothing. In markets that are persistently trending OR persistently choppy, a fixed-period EMA at the right setting is competitive. KAMA wins specifically in markets that alternate clearly between regimes — and you have to use the ER output to capture that benefit.