Net taker flow, running total through the day, BTC perps, last 24 hours
DELAYED 15 MIN…Updates by itself every 5 minutes
Net taker flow, running total through the day, latest
A falling line with a steady price means resting bids absorbed the selling.
Whether buyers or sellers crossed the spread, and by how much.
Directional order flow split by taker buy vs. sell, broken into small/medium/large notional segments, with a flow toxicity score.
All 11,692 trades from 14:38 to 14:39 UTC on 11 June 2025, Binance BTC-USDT perpetual, from the free raw-trades preview.
Step 1
The venue reports which side was the taker, the order that crossed the spread against a resting order. In this minute 8,111 trades were taker sells and 3,581 taker buys.
Step 2
The buckets are by trade notional: under $100, $100 to $1,000, and $1,000 and up. No trade was under $100, because the smallest order size, 0.001 BTC, was worth about $110.
Step 3
Step 4
p is the taker-buy share of notional. With the natural log, an even split scores ln 2 (0.693) and a one-sided bar scores 0.
Step 5
Take the z-score of the minute's net flow and of its volatility, each against every minute of the UTC day so far, this one included, and multiply them. Volatility here is the square root of the sum of squared trade-to-trade returns in the minute.
This minute had the 2nd most net selling of the day's 879, with volatility above the day's mean, so the score is large and negative.
Net flow of each of the UTC day's 879 minutes so far
Volatility of each minute so far
Step 6
BTC-USDT perpetual on Binance, 5m bars, 1 to 31 May 2025, from the free preview.
Hourly net taker flow against the price move, by lag.
Hour by hour across May, taker buys minus taker sells correlated 0.72 with BTC's price move in the same hour and 0.02 with the move an hour later. Over the month takers sold $2.5B more than they bought, while the price rose.
Toxicity says more about the next bar. The most toxic tenth of bars was followed by moves 1.4× the size of those after the least toxic tenth (8.54 bps against 5.90 bps). It says nothing about direction.
DELAYED 15 MINto 14:45 UTCUpdates by itself every 5 minutes
Highest
A taker buy is a trade where the buyer crossed the spread. volume_delta_notional is taker buys minus taker sells in dollars: positive means buyers were more aggressive.
taker_buy_sell_ratio divides the two: 1 is balanced, above 1 buyers led. flow_entropy measures the same balance on a scale where ln 2, about 0.693, is an even split.
flow_toxicity_score multiplies how one-sided the flow was by how volatile the bar was, each as a z-score against the UTC day so far, this bar included. Large readings of either sign mark bars that were both one-sided and volatile.
The small, medium and large splits use trade notional: under $100, $100 to $1,000, and $1,000 and up.
Order flow tells you direction. Realized volatility tells you uncertainty. Separately, each is informative. Together, they capture something neither can alone: the toxicity of the trading environment for liquidity providers.
The concept traces directly to Easley, López de Prado & O'Hara's (2012) Volume-Synchronized Probability of Informed Trading (VPIN). Their key insight: the probability of informed trading — originally estimated via the PIN model (Easley, Kiefer, O'Hara & Paperman, 1996) using maximum likelihood on trade arrival rates — could be approximated in real-time by measuring order flow imbalance synchronized to volume clocks rather than time clocks.
VPIN gained notoriety after Easley, López de Prado & O'Hara (2011) demonstrated it spiked dramatically in the hours preceding the May 6, 2010 Flash Crash, suggesting it captured the buildup of toxic flow before the market broke.
We compute flow toxicity as:
Toxicity = z-score(signed net flow) × z-score(realized volatility)
Where:
The multiplicative interaction is the critical design choice. High directional pressure during calm markets (low vol) is manageable — market makers can hedge gradually. High volatility without directional pressure is expensive but two-sided. High flow in both directions during high volatility — that's when adverse selection costs spike. Market makers are simultaneously being picked off directionally and unable to hedge because prices are moving too fast.
From the market maker's perspective (Glosten & Milgrom, 1985), the spread must compensate for adverse selection risk. When toxicity rises, spreads should widen — and empirically they do. But there's a lag. The toxicity signal leads the spread adjustment, creating a window where liquidity providers are undercompensated for risk.
From a directional perspective, high flow toxicity tends to precede sharp moves. Low toxicity during a "directionless" market signals that liquidity provision is cheap, spreads are tight, and mean reversion is more reliable.
The asymmetry across instruments is underappreciated. Some assets attract systematically toxic flow (high informed-trader participation). Others don't. Knowing which is which changes how you size risk — this is the cross-sectional dimension of the Easley & O'Hara (1987) information-based trading framework.
References:
# Install the Aperiodic CLI into ~/.local/bin
mkdir -p "$HOME/.local/bin"
curl -fsSL https://raw.githubusercontent.com/aperiodic-io/cli/main/install.sh | INSTALL_DIR="$HOME/.local/bin" bash
export PATH="$HOME/.local/bin:$PATH"
# Free preview — no API key required
aperiodic flow --preview \
--exchange binance-futures \
--symbol perpetual-BTC-USDT:USDT \
--interval 5m \
--timestamp exchange \
--start-date 2025-05-01 \
--end-date 2025-05-31 \
--output-dir ./data && echo "Saved to $PWD/data"