Skip to main content

Liquidity Stress Index

Quick Reference

PropertyValue
Dimensionregime
Categorymarket_regime
Versionv0.9.0 (Beta)
Output Columnstress_index

Liquidity stress index - aggregates spread, depth, and volume signals into a single systemic stress indicator

Formula

decay_accum((((spread_weight * spread) + (depth_weight * depth)) + (volume * vol_weight)), alpha, 0)

CDM Inputs

ColumnCDM TableDescription
spreadcdm_*CDM source table
depthcdm_*CDM source table
volumecdm_*CDM source table

Parameters

ParameterTypeDefaultDescription
alphafloat [0.0, 1.0]0.9Decay factor for stress state accumulation
spread_weightfloat [0.0, 1.0]0.4Weight for spread component in composite score
depth_weightfloat [0.0, 1.0]0.3Weight for depth component in composite score
vol_weightfloat [0.0, 1.0]0.3Weight for volume component in composite score

Output

Column: stress_index

Composite liquidity stress score (higher = more stressed)

Market Intuition & Trading Rationale

Liquidity stress index aggregates three liquidity dimensions into a single systemic stress indicator: decay_accum(spread_w × spread + depth_w × depth + vol_w × volume, alpha). Spread captures the cost of immediacy (rising under stress). Depth captures available liquidity (falling under stress — note the positive sign means depth declines increase the index). Volume captures trading activity (often spiking under stress as participants rush to reposition). The configurable weights allow tuning the index for different market profiles.

The decay_accum state function creates a persistent stress gauge. Transient stress (a single wide-spread tick) barely moves the needle. Sustained stress (minutes of wide spreads, thin depth, elevated volume) drives the index steadily upward. This makes the index robust to microstructure noise while responsive to genuine stress events.

The index is designed to be the "master alarm" for execution systems. When it crosses a calibrated threshold, the market is experiencing systemic liquidity stress — not just one wide spread, but a coordinated deterioration across all liquidity dimensions. This is the signal to defer execution, reduce positions, or switch to passive-only mode.

Usage Cases

  • Systemic stress detection: stress_index crossing the 90th percentile of its historical distribution → systemic liquidity event. Defer all non-urgent execution, tighten stops, reduce position sizes.
  • Stress severity classification: < 0.3 = normal (standard execution). 0.3–0.7 = elevated (reduce size, prefer limits). > 0.7 = stressed (passive only or halt). > 0.9 = crisis (stop trading, reassess).
  • regime context: Used in liquidity_stress pack — the stress_index is the primary regime signal. The pack's signal features (depth_drop_rate, spread_spike) capture the components of stress; the index aggregates them into a single actionable score.

YAML Definition

name: liquidity_stress_index
description: Liquidity stress index - aggregates spread, depth, and volume signals
into a single systemic stress indicator
category: market_regime
version: v0.9.0 (Beta)
dimension: regime
status: Pre-release
required_inputs:
- spread
- depth
- volume
output_column: stress_index
output_description: Composite liquidity stress score (higher = more stressed)
parameters:
alpha:
type: float
description: Decay factor for stress state accumulation
required: false
default: 0.9
constraints:
min: 0.0
max: 1.0
spread_weight:
type: float
description: Weight for spread component in composite score
required: false
default: 0.4
constraints:
min: 0.0
max: 1.0
depth_weight:
type: float
description: Weight for depth component in composite score
required: false
default: 0.3
constraints:
min: 0.0
max: 1.0
vol_weight:
type: float
description: Weight for volume component in composite score
required: false
default: 0.3
constraints:
min: 0.0
max: 1.0
formula: decay_accum((((spread_weight * spread) + (depth_weight * depth)) + (volume
* vol_weight)), alpha, 0)