Signal Win Rate
Quick Reference
| Property | Value |
|---|---|
| Dimension | quality |
| Category | statistics |
| Version | v1.0 |
| Output Column | win_rate |
Signal win rate: fraction of observations where signal direction matches return direction
Formula
rolling_mean((sign(signal) == sign(forward_return)), window)
CDM Inputs
| Column | CDM Table | Description |
|---|---|---|
signal | cdm_* | CDM source table |
forward_return | cdm_* | CDM source table |
Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
window | integer | 300000 | Window 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)