Flow Toxicity VPIN
Does it actually work? Our own test
The highest-VPIN fifth moved more than the lowest at every horizon — +0.15pp next day (t = 4.59), +0.24pp at 3 days (t = 4.41), +0.38pp at 5 days (t = 5.11).
No edge at 1, 3 or 5 days (t = −0.19, −1.08, 0.10). Exactly as the theory predicts — VPIN measures pressure, not which way price goes.
Going from 102 to 477 independent days made the volatility result stronger, not weaker. Noise washes out with more data; this did the opposite.
How to read it
The percentile is the number that matters, not the raw VPIN. Raw values are not comparable between stocks — a level that is extreme for a steady large cap is ordinary for a volatile small cap. So each stock is scored against its own two-month history.
What a high reading means in practice. Buying and selling volume have stopped balancing. Someone is working a position with persistence. Historically this precedes wider spreads and thinner liquidity — the conditions in which stop losses fill badly and gaps get larger.
Useful ways to use it: sizing positions smaller in extreme-reading names; expecting wider slippage; treating a high reading alongside an unexplained price move as a reason to look for news rather than to trade; and pairing it with bulk & block deals to see whether large trades are on record.
The method. Trading is re-clocked from time to volume — the session is cut into equal-volume buckets rather than equal minutes, because information arrives with volume. Each bucket's volume is split into buying and selling using Bulk Volume Classification, and VPIN is the average imbalance over the last 50 buckets. Computed from 5-minute bars across roughly 58 sessions. This is research context, not an execution tool.