Informed-trading pressure
Also shown as Toxic flow (VPIN)
Measures how one-sided executed buying and selling were within volume buckets. EdgeDepth uses the exchange aggressor flag, not an inference about which traders were informed.
- Live monitoring
- Binance Futures only; depends on the full setup
- Observed
- read at the minute itself
- Unit
- Ratio
- Valid range
- 0 to 1
How to read it, with examples
How to read it
Sum the absolute buy-minus-sell USD imbalance in each included bucket, then divide by their combined actual volume. A value of 0.6 means those absolute imbalances total 60% of included volume. Low values mean more balanced buckets; high values mean more one-sided buckets, which may alternate direction. Targets use prior-day USD volume / 240, clamped to $10,000-$10 million. After 50 completed buckets, the calculation uses up to 50 qualifying buckets from retained history, skipping buckets with fewer than five trades. It is absent until a value can be calculated, then holds between completions; this is not a fixed-hour window.
Constructed example · not historical data
One-sided buckets can cancel in net flow
- Bucket A: $90k taker buys + $10k sells90% buy share
- Bucket B: $10k taker buys + $90k sells10% buy share
Compare more and less one-sided volume-bucket flow, using signed net taker flow to distinguish the overall direction.
What it does not prove
Despite the name, 0.6 is not a calibrated 60% probability of informed trading. It identifies neither informed traders nor a future price direction.
More limits
Bucket overshoot is retained, so actual bucket volumes can differ.
Technical details
Registry definition
Volume-synchronized probability of informed trading proxy.
Field ID
feature.vpin
Valid query operators
at least, at most, between
Window operators: lowest, highest, average, latest or change in, over a trailing window.
Editable query preset
Starting point only. Review and edit before running.
{
"schema_version": "research_query.v2",
"normalization_version": "archive_normalization.v1",
"feature_version": "feature_defs.v1",
"target": "record_occurrences",
"where": {
"all": [
[
"feature.vpin",
"gte",
0.5
],
[
"times.anchor_time",
"gte",
"2025-07-15T00:00:00.000Z"
]
]
},
"sort": [
"times.anchor_time",
"desc"
],
"page": {
"limit": 5,
"cursor": null
}
}The search reports how often the record held this condition and what followed. It does not decide whether an idea works.