Sigma-Normalization: Why Order-Flow Signals Should Be Measured in Standard Deviations, Not Raw Numbers
By TickDistill — order-flow microstructure signals. Educational content, not financial advice.
The short answer
A raw number like "a 200-contract order" or "$3M of buying" means nothing on its own. The useful question is "how unusual is this, here, right now?" Sigma-normalization answers exactly that: it re-expresses a measurement as how many standard deviations it sits from its own recent distribution. The output is a z-score — a measure of rarity, not of magnitude.
Why raw thresholds break
Fixed, absolute thresholds fail in two directions at once:
- Across instruments. 200 contracts may be enormous on one market and trivial on another. A dollar figure that is "big" for one asset is noise for a more liquid one. A single hard-coded number cannot be right everywhere.
- Across regimes. The same market is calm in one week and violent the next. A print that is extreme in a quiet regime is ordinary during high volatility. A threshold fixed last month is wrong this month.
Sigma-normalization solves both: by dividing by the local standard deviation, "big" always means "big relative to what this market has been doing lately." The signal becomes comparable across assets and adaptive across regimes — without you re-tuning anything.
What "normalized" actually buys you
- Portability. The same signal logic runs on BTC, ETH, SOL — and later on regulated futures like the E-mini S&P 500 — by swapping a per-market profile, not by rewriting the signal. One definition, many markets.
- Rarity as the unit. When a signal says "2.5σ," it is telling you this event is genuinely uncommon for this market. An 80/20 directional split is rare (high sigma); a 60/40 split is normal (low sigma) and carries little information — even though both look "directional" on the surface.
- Stable interpretation. A "2σ" event means the same kind of thing whether the market is calm or wild, because the yardstick moves with the market.
The non-negotiable part: point-in-time correctness
A normalization is only honest if its yardstick uses only the past. If the standard deviation is computed using data from after the signal moment — even by accident — the backtest looks brilliant and the live signal disappoints. This is look-ahead bias, and it is the most common way order-flow research fools itself.
TickDistill computes every baseline causally (rolling, past-only) and excludes recurring mechanical windows that would otherwise distort the statistics — for example an index's market-on-close auction, or a perpetual's funding settlements, where huge volume appears for structural reasons rather than informational ones. We treat point-in-time correctness as a hard rule, because a backtest you cannot trust is worse than no backtest at all.
How this shows up in the product
Every TickDistill signal expresses its thresholds in sigma units, not raw numbers. That is why the same package behaves sensibly across our supported assets, why "rare" means rare, and why our backtests are built to be reproducible point-in-time. When you later tune a signal's sensitivity (see signal knobs), you are moving a threshold in sigma — a number that keeps its meaning as markets change.
TickDistill sells clean, computed order-flow inputs — not trading advice or guaranteed alpha. Backtests are illustrative and not a promise of future results.
Top comments (0)