Skip to main content

Market Depth Elasticity

Quick Reference

PropertyValue
Dimensionexecution
Categoryorder_flow
Versionv0.9.0 (Beta)
Output Columndepth_elasticity

Market depth elasticity: price_move / change(order_book_depth) - how sensitive price is to changes in resting liquidity

Formula

price_move / (abs(diff(order_book_depth, 1)) + epsilon)

CDM Inputs

ColumnCDM TableDescription
order_book_depthcdm_*CDM source table
price_movecdm_*CDM source table

Parameters

ParameterTypeDefaultDescription
epsilonfloat [0.0, 1.0]1e-10Small constant to prevent division by zero

Output

Column: depth_elasticity

Price sensitivity to changes in available liquidity depth

Market Intuition & Trading Rationale

Depth elasticity measures how much price moves when depth changes: price_move / |Δdepth|. A high elasticity means prices are hypersensitive to liquidity changes — even small depth withdrawals cause large price moves. A low elasticity means prices are stable despite depth fluctuations — the market can absorb liquidity changes without repricing.

This feature captures a fundamental property of limit order books: the relationship between liquidity stock (resting depth) and price flow (transaction prices). When depth is abundant (deep books), the elasticity is low — removing some depth barely moves prices because there's plenty of backup liquidity. When depth is scarce (shallow books), elasticity spikes — pulling even modest depth causes disproportionate price moves because there's no cushion.

Elasticity rises during three scenarios: (1) pre-news — market makers pull depth ahead of expected volatility, (2) during stress — liquidity evaporates as providers become risk-constrained, (3) post-large-trade — the book needs time to replenish after a large order consumes multiple levels. Each scenario has different implications for execution strategy.

Usage Cases

  • Execution sizing: When depth_elasticity is elevated, reduce order sizes. The market can't absorb normal size without significant price impact — your execution costs will be multiples of normal. When elasticity is low, larger orders are feasible.
  • Liquidity regime classification: Elasticity provides the continuous "fragility score" for the market. Classify: low elasticity = resilient regime (normal execution), medium = fragile (reduce size), high = brittle (defer or use limit orders only).
  • Pre-event positioning detection: Rising elasticity with stable depth suggests market makers are becoming jumpy — they'll pull quotes on the next adverse tick. This is a leading indicator for spread widening and should trigger a shift from aggressive to passive execution.
  • Market impact model input: Depth elasticity is a state-dependent multiplier for trade impact models. Rather than assuming constant Kyle's lambda, scale lambda by elasticity — impact per unit of order flow is higher when the book is more elastic.

YAML Definition

name: market_depth_elasticity
description: 'Market depth elasticity: price_move / change(order_book_depth) - how
sensitive price is to changes in resting liquidity'
category: order_flow
version: v0.9.0 (Beta)
dimension: execution
status: Pre-release
required_inputs:
- order_book_depth
- price_move
output_column: depth_elasticity
output_description: Price sensitivity to changes in available liquidity depth
parameters:
epsilon:
type: float
description: Small constant to prevent division by zero
required: false
default: 1.0e-10
constraints:
min: 0.0
max: 1.0
formula: price_move / (abs(diff(order_book_depth, 1)) + epsilon)