Skip to main content

Trend Indicators

Trend indicators help you identify the direction and strength of a market move. They smooth out price noise so you can focus on the underlying trajectory. Because they rely on historical averages, all trend indicators are lagging — they confirm a trend rather than predict it. Use them to align your trades with the dominant direction and to filter out counter-trend noise.

Indicators at a glance

IndicatorTypeWarmupLagWhen to use
Weighted Moving Average (WMA)🔴 Laggingperiod bars(period − 1) / 3 barsWhen you need a moving average that reacts faster than SMA because it gives more weight to recent prices. Good for short-term trend following where responsiveness matters more than smoothness.
Simple Moving Average (SMA)🔴 Laggingperiod bars(period − 1) / 2 barsThe baseline moving average. Use it for straightforward trend detection (e.g. price above SMA 200 = bullish bias), as the foundation for Bollinger Bands, or as a benchmark to compare other MAs against.
Exponential Moving Average (EMA)🔴 Laggingperiod bars(period − 1) / 2 barsThe most popular moving average for active trading. Reacts faster than SMA to recent price changes, making it ideal for crossover systems, dynamic support/resistance, and as an input to other indicators like MACD and SuperTrend.
Zero-Lag EMA Envelope (ZLEMA)🔴 Lagginglength bars≈ 0 barsWhen standard EMA lag is too high. ZLEMA compensates for the inherent EMA delay, giving you an almost zero-lag centre line with ATR-based bands for volatility envelopes.
EMA Trend Ribbon🔴 Laggingema_max bars(ema_min − 1) / 2 barsVisualize trend strength at a glance using a ribbon of multiple EMAs. When the ribbon fans out, the trend is strong; when it compresses, consolidation or reversal may be coming. Great for swing trading dashboards.
SuperTrend🔴 Laggingatr_length barsatr_length / 2 barsA trailing stop and trend filter in one. Use it to determine trend direction and as a dynamic stop-loss level. Particularly effective on trending markets with clear directional moves.
SuperTrend Clustering🔴 Laggingatr_length barsatr_length / 2 barsWhen you want the optimal SuperTrend factor selected automatically. K-means clustering finds the best multiplier from price data, removing guesswork from parameter tuning.
Pulse Mean Accelerator (PMA)🔴 Laggingmax(ma_length, accel_lookback) barsma_length / 2 barsAn acceleration-aware moving average that adapts its offset based on price momentum. Use it when you want a trend line that tightens during acceleration and loosens during deceleration.
Volume Weighted Trend (VWT)🔴 Laggingvwma_length barsvwma_length / 2 barsCombines price trend with volume confirmation. Use it when you want trend signals that are validated by volume — useful for filtering out low-conviction moves.

Detailed descriptions

Weighted Moving Average (WMA)

🔴 Lagging — ≈ (period − 1) / 3 bars

Warmup: period bars (default: 200 bars (period=200))

When you need a moving average that reacts faster than SMA because it gives more weight to recent prices. Good for short-term trend following where responsiveness matters more than smoothness.

Simple Moving Average (SMA)

🔴 Lagging — ≈ (period − 1) / 2 bars

Warmup: period bars (default: 200 bars (period=200))

The baseline moving average. Use it for straightforward trend detection (e.g. price above SMA 200 = bullish bias), as the foundation for Bollinger Bands, or as a benchmark to compare other MAs against.

Exponential Moving Average (EMA)

🔴 Lagging — ≈ (period − 1) / 2 bars

Warmup: period bars (default: 200 bars (period=200))

The most popular moving average for active trading. Reacts faster than SMA to recent price changes, making it ideal for crossover systems, dynamic support/resistance, and as an input to other indicators like MACD and SuperTrend.

Zero-Lag EMA Envelope (ZLEMA)

🔴 Lagging — ≈ 0 bars

Warmup: length bars (default: 200 bars (length=200))

When standard EMA lag is too high. ZLEMA compensates for the inherent EMA delay, giving you an almost zero-lag centre line with ATR-based bands for volatility envelopes.

EMA Trend Ribbon

🔴 Lagging — ≈ (ema_min − 1) / 2 bars

Warmup: ema_max bars (default: 60 bars (ema_max=60))

Visualize trend strength at a glance using a ribbon of multiple EMAs. When the ribbon fans out, the trend is strong; when it compresses, consolidation or reversal may be coming. Great for swing trading dashboards.

SuperTrend

🔴 Lagging — ≈ atr_length / 2 bars

Warmup: atr_length bars (default: 10 bars (atr_length=10))

A trailing stop and trend filter in one. Use it to determine trend direction and as a dynamic stop-loss level. Particularly effective on trending markets with clear directional moves.

SuperTrend Clustering

🔴 Lagging — ≈ atr_length / 2 bars

Warmup: atr_length bars (default: 14 bars (atr_length=14))

When you want the optimal SuperTrend factor selected automatically. K-means clustering finds the best multiplier from price data, removing guesswork from parameter tuning.

Pulse Mean Accelerator (PMA)

🔴 Lagging — ≈ ma_length / 2 bars

Warmup: max(ma_length, accel_lookback) bars (default: 32 bars (ma_length=20, accel_lookback=32))

An acceleration-aware moving average that adapts its offset based on price momentum. Use it when you want a trend line that tightens during acceleration and loosens during deceleration.

Volume Weighted Trend (VWT)

🔴 Lagging — ≈ vwma_length / 2 bars

Warmup: vwma_length bars (default: 34 bars (vwma_length=34))

Combines price trend with volume confirmation. Use it when you want trend signals that are validated by volume — useful for filtering out low-conviction moves.