Skip to main content

Trend Regime Indicator

Quick Reference

PropertyValue
Dimensionregime
Categorymarket_regime
Versionv1.0
Output Columntrend_regime

Trend regime: binary indicator — trending (strong ADX) vs ranging (weak ADX) market state

Formula

adx > threshold

CDM Inputs

ColumnCDM TableDescription
adxcdm_*CDM source table

Parameters

ParameterTypeDefaultDescription
thresholdfloat [0.0, 1.0]0.25ADX threshold for trending vs ranging classification

Output

Column: trend_regime

Binary trend regime (1 = trending, 0 = ranging)

Market Intuition & Trading Rationale

Trend regime indicator provides a binary trending-vs-ranging classification: adx > threshold. When ADX (Average Directional Index) exceeds the threshold, the market is trending — directional strategies (momentum, trend following) are favored. When ADX is below the threshold, the market is ranging — mean-reversion and range-bound strategies are favored. The default threshold of 0.25 is the classic Wilder threshold; lower values (0.15) produce more sensitive classification, higher values (0.35) require stronger trends.

Usage Cases

  • Strategy rotation: trend_regime = 1 → deploy momentum/trend-following strategies. trend_regime = 0 → deploy mean-reversion/range-bound strategies. This simple binary switch eliminates the worst trades for each strategy class.
  • Trend filter for mean reversion: Only fade extremes when trend_regime = 0. In trending markets, "overbought" and "oversold" signals are continuation signals, not reversal signals.
  • Position sizing by conviction: trend_regime = 1 with rising ADX → trend is strengthening (increase size). trend_regime = 1 with falling ADX → trend is weakening (reduce size, prepare for exit).

YAML Definition

name: trend_regime_indicator
description: 'Trend regime: binary indicator — trending (strong ADX) vs ranging (weak
ADX) market state'
category: market_regime
dimension: regime
version: v0.9.0 (Beta)
required_inputs:
- adx
output_column: trend_regime
output_description: Binary trend regime (1 = trending, 0 = ranging)
tags:
- regime
- trend
- adx
parameters:
threshold:
type: float
description: ADX threshold for trending vs ranging classification
required: false
default: 0.25
constraints:
min: 0.0
max: 1.0
formula: adx > threshold