VPIN — Volume-Synchronized Probability of Informed Trading
A toxicity gauge. High VPIN means the book is absorbing one-sided flow that's likely informed — a warning, not a signal.
The idea
VPIN (Easley, López de Prado, O'Hara) estimates the chance that the other side of your trade is informed. It improves on the original PIN by dropping the need to fit a model — you just watch order flow in real time.
How I compute it
- Bucket trades into equal-volume buckets (not equal-time).
- Classify each bucket as buy- or sell-initiated using bulk classification.
- Sum the absolute imbalance over the last $N$ buckets.
Formally, over the last $N$ volume buckets:
$$ \text{VPIN} = \frac{\displaystyle\sum_{i=1}^{N} \lvert V_i^{\text{buy}} - V_i^{\text{sell}} \rvert}{\displaystyle\sum_{i=1}^{N} V_i} $$
where $V_i^{\text{buy}}$ and $V_i^{\text{sell}}$ are the buy- and sell-initiated volumes in bucket $i$, and $V_i = V_i^{\text{buy}} + V_i^{\text{sell}}$.
The normalization that matters is volume, not time — that's the "V".
Where it helps me
- Throttling entries when toxicity is spiking (adverse selection risk).
- Sanity-checking a fill: if VPIN was high, my edge may be smaller than it looks.
Where it doesn't
VPIN is a state indicator, not a direction indicator. A high reading tells you flow is toxic, not which way price goes next. Don't trade off it alone.