Skip to main content

Signal Turnover

Quick Reference

PropertyValue
Dimensionstability
Categorystatistics
Versionv1.0
Output Columnsignal_turnover

Signal turnover: fraction of signal direction flips per window — low turnover = stable signal

Formula

rolling_mean((abs(diff(sign(signal), 1)) / 2.0), window)

CDM Inputs

ColumnCDM TableDescription
signalcdm_*CDM source table

Parameters

ParameterTypeDefaultDescription
windowinteger300000Window for turnover estimation

Output

Column: signal_turnover

Fraction of direction changes in rolling window (0 to 1)

Market Intuition & Trading Rationale

Signal turnover measures how frequently a signal changes direction: fraction of sign flips per window. A turnover of 0.0 means the signal never changes direction — it's perfectly stable (but may be stale). A turnover of 1.0 means the signal flips every observation — it's completely unstable (pure noise). Typical useful signals have turnover between 0.01–0.2 (1–20% of observations result in a direction change).

Turnover is the stability dimension's answer to a practical question: how often will I need to trade if I follow this signal? High turnover signals generate high trading frequency, high transaction costs, and high tax implications. Low turnover signals are cheaper to trade but may be slower to react to regime changes. The optimal turnover depends on the strategy's holding period and cost structure.

Usage Cases

  • Trading cost estimation: signal_turnover × expected cost per trade = expected daily trading cost. Compare this to the signal's expected return (SNR × signal magnitude) to determine net profitability.
  • Signal selection for long-only strategies: Long-only portfolios can't flip direction easily. Prefer signals with turnover < 0.1 for long-only; higher turnover signals are better suited for long-short strategies that can reverse positions cheaply.
  • Regime change detection: A sudden spike in turnover (from 0.05 to 0.3) indicates the signal is losing stability — the market regime may be changing. Reduce position size until turnover stabilizes.

YAML Definition

name: signal_turnover
description: 'Signal turnover: fraction of signal direction flips per window — low
turnover = stable signal'
category: statistics
dimension: stability
version: v0.9.0 (Beta)
required_inputs:
- signal
output_column: signal_turnover
output_description: Fraction of direction changes in rolling window (0 to 1)
tags:
- stability
- turnover
- signal
parameters:
window:
type: integer
description: Window for turnover estimation
required: false
default: 300000
formula: rolling_mean((abs(diff(sign(signal), 1)) / 2.0), window)