Skip to main content

Signal Win Rate

Quick Reference

PropertyValue
Dimensionquality
Categorystatistics
Versionv1.0
Output Columnwin_rate

Signal win rate: fraction of observations where signal direction matches return direction

Formula

rolling_mean((sign(signal) == sign(forward_return)), window)

CDM Inputs

ColumnCDM TableDescription
signalcdm_*CDM source table
forward_returncdm_*CDM source table

Parameters

ParameterTypeDefaultDescription
windowinteger300000Window for win rate estimation

Output

Column: win_rate

Fraction of correct directional predictions (0 to 1)

Market Intuition & Trading Rationale

Signal win rate measures directional accuracy: fraction of times sign(signal) == sign(forward_return). It answers the simplest possible question about a signal: what percentage of the time does it point in the right direction? A win rate of 50% means the signal is no better than a coin flip. A win rate of 55%+ means the signal has genuine directional edge. A win rate of 60%+ is exceptional.

Win rate is more intuitive than IC or SNR — it's directly interpretable as "how often is this signal right?" — but it has an important limitation: it ignores magnitude. A signal that predicts +0.01% returns 90% of the time but misses the -5% crashes is useless despite a high win rate. Always pair win rate with a magnitude-sensitive metric like IC or Sharpe ratio.

Win rate is sensitive to the forward return horizon. A signal may have high win rate at 1-second horizons (microstructure predictability) but drop to 50% at 1-minute horizons (efficient market). Varying the forward return horizon reveals the signal's predictive timescale.

Usage Cases

  • Directional confidence: Use win_rate as a confidence weight for trading decisions. A signal with 60% win rate deserves 2× the position size of a signal with 55% win rate — the edge is proportionally larger.
  • Strategy selection: Prefer strategies with win rates above 55%. Below 52%, transaction costs will likely consume any edge. This is a simple, robust screen that works across asset classes and timeframes.
  • Regime detection: When win_rate drops below 50% after a sustained period above 55%, the market regime may have changed — the signal's edge has temporarily disappeared. Reduce exposure until win rate recovers.

YAML Definition

name: signal_win_rate
description: 'Signal win rate: fraction of observations where signal direction matches
return direction'
category: statistics
dimension: quality
version: v0.9.0 (Beta)
required_inputs:
- signal
- forward_return
output_column: win_rate
output_description: Fraction of correct directional predictions (0 to 1)
tags:
- quality
- win_rate
- signal
parameters:
window:
type: integer
description: Window for win rate estimation
required: false
default: 300000
formula: rolling_mean((sign(signal) == sign(forward_return)), window)