Research review · López de Prado · study 01
Information-Driven Bars
Sampling on an activity clock Gaussianizes returns across crypto, US equities, and forex
Standard practice samples the market on a fixed time clock, one-minute, one-hour, daily bars. López de Prado argues this is the worst choice: markets process information at a time-varying rate, so time bars over-sample quiet stretches and under-sample bursts, leaving returns with fat tails, skew, and serial correlation. His fix is to sample on an activity clock instead, a new bar every so many ticks, units traded, or dollars of notional. This study reproduces that claim on real data in three markets, and reports two practical caveats the original text under-states. The piece below lets you turn the dials yourself.
Advances in Financial ML, Ch. 2
López de Prado (2018) · “The Volume Clock” (2012)
Code & tables
lopez-de-prado-work-review · 01_information_driven_bars
the claim
What López de Prado says
- Sampling the market on a fixed time clock is the worst choice: markets process information at a time-varying rate, so time bars over-sample quiet periods and under-sample bursts, leaving returns with excess kurtosis, skew and serial correlation that violate the near-IID-Gaussian assumptions estimators rely on.
- Sample instead on an information clock, a new bar every X ticks, units traded, or dollars of notional, which subordinates price to an activity clock. He argues dollar bars are the most robust (invariant to price level and share-count), predicting information bars should show lower excess kurtosis, lower |skew| and weaker serial correlation than time bars.
our result
What we found
- Confirmed in all three markets: information-driven bars Gaussianize returns, cutting median excess kurtosis (crypto 5.29 → ~1.5, equities-RTH 9.95 → 3.4–5.6, forex 2.98 → 1.06) and roughly halving |skew|, the central claim holds.
- Two practical caveats he under-states: the advantage is granularity-dependent (it erodes when built from coarse bricks, crypto dollar-bar kurtosis 1.13 at 1-min base vs ~2.06 at 60-min), and equities require session-aware handling (naive all-hours bars look like a failure until you compute within-session returns).
- A nuance: on pure return normality volume bars edge out dollar bars (crypto 1.48, equities-RTH 3.35), and reproduction is fragile to data quality. This is a clean statistical-property study, no edge claim is attached.
The result in three lines
three markets
The principle holds
Tick, volume, and dollar bars cut the excess kurtosis of returns versus time bars in every market: crypto 5.29 → ~1.5, US equities (RTH) 9.95 → 3.4, forex 2.98 → 1.06.
caveat one
Equities need the session
Naively, information bars look worse than time bars, an artifact of the overnight gap. Restrict to regular hours and compute within-session returns, and the dollar bar collapses from 34.4 to 5.6.
caveat two
The base data matters
The advantage is granularity-dependent: dollar-bar excess kurtosis rises from 1.13 on a 1-minute base to ~2.06 on a 60-minute base. The method wants fine bricks.
Overview
The testable prediction is clean: at matched frequency, bars emitted on an information clock should have lower excess kurtosis, lower absolute skew, and weaker serial correlation than time bars. To test it without confounds, we build each bar type from the same one-minute base and target the same average bar count, so the only thing that varies between four series of the same instrument is the clock. Everything is measured on the return distribution itself; there is no strategy and nothing fit to the future.
The headline, in every market
Information-driven bars Gaussianize returns across all three markets. On the one-minute base, median excess kurtosis falls from 5.29 to roughly 1.5 in crypto, from 9.95 to 3.4 in regular-hours equities, and from 2.98 to 1.06 in forex. Absolute skew falls in step, crypto 0.37 → 0.10, forex 0.20 → 0.13. The effect is directional and consistent, and it is strongest where the base data is finest.
| bar clock | crypto (27 perps) | equities (9 ETFs, RTH) | forex (8 majors) |
|---|---|---|---|
| time | 5.29 | 9.95 | 2.98 |
| tick | 1.61 | 3.97 | 1.06 |
| volume | 1.48 | 3.35 | , |
| dollar | 1.54 | 5.58 | , |
Median excess kurtosis of bar returns, one-minute base (0 = Gaussian; lower is closer to normal). Spot FX has no consolidated volume, so volume and dollar bars are not defined there.
Turn the dials
The explorer below reads the study's real numbers. Pick a market and watch the four bars: the time bar (grey) is the baseline; the information bars (accent) are the activity-clock alternatives, with the lightest-tailed one highlighted. For crypto you can change the base granularity; for equities you can toggle the session handling that is the crux of the second caveat.
Demo: Bar-clock explorer
Excess kurtosis of bar returns by sampling clock, per market. Lower is closer to Gaussian; information-driven bars pull the tails in versus time bars.
Finer base data → better Gaussianisation. The dollar-bar advantage erodes as the base brick coarsens.
At a 1-minute base, the lightest information bar carries excess kurtosis 1.13 against 3.56 for the time bar, about 3.2× lighter tails. Coarsen the base brick and the dollar-bar edge fades; the method wants fine base data.
Crypto, clean confirmation
On 27 perpetual futures sampled from clean one-minute dumps, all three information bars are roughly 3.4× less tail-heavy than time bars (5.29 down to 1.61 / 1.48 / 1.54 for tick / volume / dollar), and absolute skew drops from 0.37 toward 0.10. The Q–Q plot for BTC straightens out markedly under the activity clock.
One cautionary note from the build: the comparison is a sensitive instrument. An early run on a legacy third-party 30-minute dataset produced the opposite conclusion (dollar bars worse than time bars), driven by contaminated early prints that dollar sampling concentrates into a handful of fat-tail bars, BTC dollar-bar excess kurtosis of 32.7 on the legacy tape versus 1.05 on clean dumps at the same frequency. Validate the tape before trusting the bar comparison.
The advantage is granularity-dependent
Building information bars from coarser bricks erodes the benefit. Dollar-bar excess kurtosis rises from 1.13 on a one-minute base to about 2.06 by a 60-minute base. The directional win over time bars survives at every resolution, but the method clearly wants fine base data, a practitioner accumulating dollar bars from 30-minute bricks leaves most of the benefit on the table.
Equities, only with session-aware handling
Sampled naively across all hours, with returns taken over the overnight gap, the result looks like a failure: dollar bars (34.4) and tick bars (19.5) come out worse than time bars (18.3). That is an artifact of session structure, not of the method, the overnight gap and the open/close-auction volume spikes get bundled into single information bars, manufacturing fat tails. Restrict to regular hours and compute within-session returns and the picture flips entirely.
| bar clock | naive (all hrs + overnight) | RTH + within-session |
|---|---|---|
| time | 18.31 | 9.95 |
| tick | 19.47 | 3.97 |
| volume | 12.90 | 3.35 |
| dollar | 34.42 | 5.58 |
Median excess kurtosis over 9 ETFs. Handle the session and every information bar beats the time bar, the dollar bar collapses from 34.4 to 5.6. The concrete operating rule: never let a bar span the close→open gap.
Forex, the tick clock is the information bar
Spot FX has no consolidated volume, the HistData volume field is literally zero, so volume and dollar bars are not meaningful. The available information clock is tick count, the quote-update intensity. Gap-aware tick bars (weekend and rollover gaps dropped) Gaussianize FX returns on all eight majors: median excess kurtosis 2.98 → 1.06, absolute skew 0.20 → 0.13. The principle holds for FX, instantiated as the tick bar.
Advanced bars: imbalance and run bars do not help
López de Prado also proposes a second family that goes beyond counting activity: imbalance bars and run bars, which emit a new bar when the signed order flow accumulates past a threshold: when buys outweigh sells (or vice versa) by enough, or when a one-sided run of trades persists. The natural hope is that these flow-aware clocks Gaussianize returns even further than the plain tick, volume, and dollar bars. They do not. Rebuilt on three crypto perps from the same one-minute base at matched daily frequency, the advanced bars make the tails worse, not better: tick-imbalance bars carry a median excess kurtosis of about 11.3, against roughly 1.07 for the plain dollar and tick bars at the same frequency. The reason is structural. A trigger that fires on directional flow tends to close a bar right as a one-sided move is running, so each bar spans a directional swing and the return inherits exactly the fat tail the activity clock was supposed to remove. The simple dollar or volume bar remains the right sampling clock; imbalance and run bars belong in the toolbox as features that describe order-flow pressure, not as the clock you sample the price on.
Median excess kurtosis over three crypto perps, one-minute base, matched daily frequency (0 = Gaussian; lower is closer to normal). The four advanced bars are flagged in accent; every one of them is heavier-tailed than the plain dollar bar.
| bar clock | median excess kurtosis |
|---|---|
| time | 3.56 |
| tick | 1.07 |
| volume | 1.94 |
| dollar | 1.07 |
| tick-imbalance | 11.32 |
| volume-imbalance | 6.46 |
| tick-run | 3.88 |
| volume-run | 2.90 |
How to read it
Volume bars, not dollar bars, are the most robust Gaussianizer in this data , marginally best in crypto (1.48) and clearly best in regular-hours equities (3.35 against the dollar bar's 5.58). López de Prado prefers dollar bars for their invariance to price level and share-count changes, which is a robustness argument rather than a tail argument; on pure return normality the volume bar edges them out. As a single cross-market default we would reach for volume bars, keeping dollar bars where cross-instrument or long-horizon comparability matters. Residual equity tails also stay fatter than crypto's even after activity-clocking (3.4–5.6 versus ~1.5), a reminder that intraday equity jumps are not fully tamed by sampling alone.
Method
- Real base data, one-minute resolution: 27 Binance USD-M perps (clean dumps), 9 Algoseek ETFs, and 8 HistData FX majors. No synthetic series.
- From each one-minute base, build time / tick / volume / dollar bars all targeting the same average daily frequency, so the only thing that changes is the clock, not the bar count, the apples-to-apples comparison.
- Score each bar series on its return distribution: excess kurtosis (0 = Gaussian), absolute skew, first-order autocorrelation, Jarque–Bera.
- Report the full cross-section by medians, never a single hand-picked instrument, because the underlying returns are heavy-tailed.
- Causal and cost-free by construction: this is a statistical-property study of the sampling scheme, with no strategy, no parameters fit on the future, and no look-ahead.
Reproducibility
The analysis scripts, the per-market tables, and the figures shown here are collected in the companion repository folder 01_information_driven_bars. The explorer on this page is self-contained and reads the same numbers as the published tables, so the comparison reproduces exactly on every load.
Cite
References
- M. López de Prado, Advances in Financial Machine Learning (Wiley, 2018), Ch. 2.
- D. Easley, M. López de Prado & M. O'Hara, “The Volume Clock: Insights into the High-Frequency Paradigm”, Journal of Portfolio Management, 2012.
See also
This is the opening study of a broader review program; the other studies are listed on Research.

