Skip to main content

Beta Adjusted Lag Spread

Quick Reference

PropertyValue
Dimensionsignal
Categorycross_asset
Versionv1.0
Output Columnbeta_adjusted_lag_spread

Beta-adjusted spread between leader and follower returns: leader - beta * follower

Formula

leader_return - rolling_beta * follower_return

CDM Inputs

ColumnCDM TableDescription
leader_returncdm_trade_enrichedTrade data enriched with bar context — price, volume, side, trade type
follower_returncdm_trade_enrichedTrade data enriched with bar context — price, volume, side, trade type
rolling_betacdm_trade_enrichedTrade data enriched with bar context — price, volume, side, trade type

Parameters

This FeatureType has no configurable parameters.

Output

Column: beta_adjusted_lag_spread

Beta-adjusted return spread (leader minus beta-scaled follower)

Market Intuition & Trading Rationale

Beta adjusted lag spread measures the residual return of a leader asset after removing the component explained by a follower asset's return, scaled by their rolling beta. The formula leader_return - rolling_beta * follower_return isolates the idiosyncratic movement in the leader — the portion of its return that is not attributable to comovement with the follower. When this spread widens, the leader is moving on its own, independent of the follower.

This feature is central to lead-lag arbitrage and pairs trading strategies. In highly correlated asset pairs (e.g., E-mini S&P 500 futures vs. SPY ETF, or spot gold vs. gold futures), one asset consistently leads the other by a few microseconds to milliseconds. When the lagged spread deviates significantly from zero, it signals a temporary dislocation in the pricing relationship — the leader has moved, and the follower has not yet caught up, creating a statistically predictable reversion opportunity.

The rolling beta component adjusts for time-varying correlation. Simple price spreads assume a fixed 1:1 relationship, but most correlated pairs have betas that drift over time due to changing market regimes, volatility shifts, and fundamental developments. By dynamically adjusting the spread with a rolling beta estimate, this feature remains stationary even as the underlying relationship evolves, producing a cleaner tradable signal.

Trading the beta-adjusted lag spread requires ultra-low latency infrastructure. The arbitrage window in highly liquid markets typically lasts 10–100 milliseconds — long enough for colocated servers but imperceptible to human traders. The strategy typically enters when the spread exceeds a threshold (e.g., 2 standard deviations of recent spread history) and exits when the spread reverts to zero or near-zero.

In practice, the choice of leader and follower is critical. The leader should be the more liquid, more actively traded instrument — typically the futures contract for index/commodity pairs, or the more heavily traded ETF for equity pairs. The rolling beta window must balance responsiveness (shorter windows capture rapid regime changes) with stability (longer windows filter noise). Lead-lag effects are strongest during high-volume periods and tend to weaken or reverse during low-liquidity sessions.

Usage Cases

  • Pairs arbitrage: Trade the reversion of the beta-adjusted spread between two cointegrated assets. When the spread widens, short the leader and buy the follower (and vice versa), betting on mean reversion.
  • Cross-market lead-lag: Capture the predictable lag between highly correlated instruments trading on different venues or in different formats (e.g., futures vs. ETF, cash vs. derivatives).
  • Statistical arbitrage input: Use the spread z-score as a signal in multi-asset stat-arb portfolios, combining multiple lead-lag pairs for a diversified strategy.

YAML Definition

name: beta_adjusted_lag_spread
description: "Beta-adjusted spread between leader and follower returns: leader - beta * follower"
category: cross_asset
version: v0.9.0 (Beta)
dimension: signal
required_inputs:
- leader_return
- follower_return
- rolling_beta
output_column: beta_adjusted_lag_spread
output_description: Beta-adjusted return spread (leader minus beta-scaled follower)
tags: [lead_lag, beta, spread, signal, cross_asset]
parameters: {}
formula: "leader_return - rolling_beta * follower_return"