Is Bitcoin's Fair Value Learnable? A Four-Round Microstructure Study
Fitting linear, tree, and neural models to predict BTC fair-market value from bar and order-book microstructure — and measuring how little forward signal survives.
In brief
A reproducible four-round study of whether next-step BTC fair-market value is learnable from microstructure. It repeatedly separates a trivial recovery test (predicting FMV that is a function of current data — models nail it) from the real forward test (predicting where fair value settles several steps ahead — models stay at coin-flip), and by v4 asks the same question of genuine Level-2 order-book features rather than OHLCV-derived proxies.
Key results
- v1: two naive baselines plus six learned models predict next-bar typical price from HLCOV (208,496 train / 52,123 test); every model lands within +/-1.5pp of the 0.500 coin-flip line, and the best, an LSTM, reaches only 0.511 directional accuracy, below the 0.520 tradeable threshold.
- v3 contemporaneous recovery: with 89 features and lookback 20, ridge recovers deterministic FMV targets at directional accuracy 0.92-1.00 (e.g. fmv_hasbrouck ridge dir-acc 1.000, MAE 9.59 vs naive 514.90) as a pipeline sanity check, not signal.
- v3 forward test: predicting the next-5 and next-15 bars' VWAP, all models sit at directional accuracy 0.49-0.51; ridge MAE on fmv_forward_vwap_5 is 39.43 versus the naive baseline's 39.16, and on fmv_forward_vwap_15 is 69.59 versus naive 69.07 — no measurable improvement over doing nothing.
- v4 upgrades to real L2 order-book microstructure (Stoikov microprice, order-book imbalance at L1/L5/L10, signed flow, depth) built from a Databento MBP-10 parquet, with lookback 5 and the current mid as the naive baseline.
- v4 targets mirror v3's split: contemporaneous microprice and mid as recovery sanity checks (deterministic functions of the current book), and microprice 5 and 15 bars ahead as the forward learnability test.
- v4 computes permutation importance on the HistGradientBoosting model over the top-variance features, extending v3's diagnostic to genuine order-book inputs rather than OHLCV proxies.
The question
The brief was concrete: take Bitcoin 1-minute data and try to fit several kinds of model to predict fair-market value from HLCOV, to see how learnable that is. The project treats this as a measurement problem rather than a trading problem. The target in v1 is the next bar's typical price (H+L+C)/3; inputs are the current bar's HLCOV plus N lagged HLCOV bars and a few standard derived signals (returns over the lookback, range, volume ratio, return-volatility standard deviation).
The design fixes two things up front. Evaluation uses a chronological train/test split with the last 20% held out and no shuffling, so no future information leaks backward. And the headline metric is directional accuracy — the fraction of test bars where the sign of the predicted next-step move is correct — not R-squared on the price level. The README is blunt about why: on price levels autocorrelation dominates, so even a model that just predicts 'next price equals current price' scores R-squared near 0.999. Directional accuracy at 0.500 means no signal; the rough tradeable bar is set at 0.520, itself acknowledged as insufficient once fees are added.

Method as built
v1 spans the honest range of tabular and sequence models: two naive baselines (last close, current typical), ridge and lasso as linear probes, a random forest, sklearn's HistGradientBoosting as the state-of-the-art tabular GBM, a small MLP, and a PyTorch LSTM that consumes the lagged HLCOV directly as a five-channel time series. The stack is deliberately scikit-learn plus PyTorch only — no TensorFlow, no xgboost — and light enough to finish in minutes on a laptop.
v2 widens the feature set roughly tenfold to about 89 quantitative features in features.py: realized-volatility estimators (Parkinson, Garman-Klass, Rogers-Satchell, Yang-Zhang, bipower variation), oscillators (RSI, MACD, Williams %R, stochastic, CCI), trend and band indicators, volume and liquidity measures (OBV slope, Chaikin money flow, MFI, Amihud illiquidity, Roll spread, VWAP deviation), microstructure proxies (taker-buy ratio, Kyle's lambda proxy, VPIN proxy), and statistical descriptors (Hurst, variance ratio, autocorrelation, approximate entropy), with multi-scale aggregates at 5m/15m/60m. It also adds a 1D CNN and a small Transformer encoder.
v3 changes the target. fmv.py implements six FMV estimators grounded in the microstructure literature — a random-walk-plus-noise Kalman filter on log-close, a Hasbrouck AR(5) residual decomposition, a Stoikov-style microprice using H/L as bid/ask proxies weighted by taker-buy aggression, within-bar VWAP, OHLC4, and forward VWAP over the next k bars. Crucially it splits the evaluation into a contemporaneous mode (predict FMV at t from features at t — a recovery test) and a forward mode (predict FMV 5 or 15 bars ahead — the actual learnability test).
Real order books
v4 removes the biggest confound in the earlier rounds: everything up to v3 approximates microstructure from OHLCV, treating high and low as bid/ask stand-ins. v4 uses genuine Level-2 order-book data. microstructure.py maintains a sorted in-memory book from Coinbase level2/match/ticker events, snapshots it at each bar boundary, and emits real quantities — mid, spread and spread in basis points, the Stoikov microprice from top-of-book sizes, order-book imbalance at L1/L5/L10, signed trade flow, and buy pressure. train_v4.py consumes a Databento MBP-10 parquet and builds lagged features: the microprice-minus-mid tilt, multi-level depth ratios, log depths, mid returns at horizons 1/2/5/10/30, EWMAs of imbalance, flow, spread and mid-deviation over spans 5/15/30, plus explicit lags of the most informative signals.
The v4 targets mirror v3's split: contemporaneous microprice and mid as sanity checks, and microprice 5 and 15 bars ahead as the forward learnability test. The dataset here is smaller — real order-book data is far more costly to collect than freely downloadable OHLCV — so v4 uses a shorter lookback (5 bars) and a chronological 75/25 train/test split with the current mid as the naive baseline to beat.

What the numbers say
The recovery tests behave exactly as theory predicts. In v3, because each contemporaneous FMV is a deterministic function of the current bar's OHLCV and that OHLCV is in the feature set, ridge simply reconstructs the formula: directional accuracy 0.92-1.00 across Kalman, Hasbrouck, microprice, VWAP and OHLC4, with, for example, fmv_hasbrouck ridge MAE 9.59 against a naive baseline of 514.90. v4 sets up the same recovery test on real books: contemporaneous microprice and mid are deterministic functions of the current top-of-book, so they are expected to be recovered near-exactly rather than to demonstrate predictability.
The forward tests tell the real story, and it is a null. In v3, predicting the next-5 and next-15 bars' VWAP, every model sits at directional accuracy 0.49-0.51, and ridge's MAE on fmv_forward_vwap_5 (39.43) is essentially the naive baseline (39.16); at 15 bars ridge's MAE (69.59) is likewise no better than naive (69.07). v4 poses the identical forward question — microprice 5 and 15 bars ahead — on genuine order books rather than OHLCV proxies, so it is the cleanest test of whether real Level-2 structure carries forward signal the proxies missed.
The v1 result frames all of this: eight models — two naive baselines plus six learned families — predicting next-bar typical price all land within +/-1.5 points of 0.500, the LSTM's 0.511 being the ceiling.

Honesty checks
The study builds in several guards against fooling itself. Leakage is controlled structurally: features at bar t use only bars up to t and the target is at t+1 (or t+k), and every split is chronological with no shuffling. The contemporaneous-versus-forward separation is itself a discipline — it isolates the trivial recovery signal from real predictive signal so that a headline 'directional accuracy 1.000' on a contemporaneous target cannot be mistaken for edge.
v4 adds permutation importance on the HistGradientBoosting model, computed over the highest-variance features by shuffling each in turn and measuring the change in test MAE. Because the contemporaneous mid and microprice are essentially the answer to the recovery question, the diagnostic is designed to separate that trivial level information from the genuinely informative microstructure features — order-book imbalance lags, signed-flow lags, spread EWMAs, microprice-minus-mid lags — that would have to carry any real forward signal.

Why it matters
The take-away is a measured negative result, stated as such. On bar-level Bitcoin data alone — OHLCV plus taker-buy, trade count and quote volume in v3 — there is no learnable forward signal for fair-market value at the 1-minute-to-15-step horizon in the regimes observed. Markets look efficient at this granularity here, and neither a tenfold-wider feature library nor a theoretically cleaner FMV target moves the forward directional accuracy off the coin-flip line. v4 carries the same question to real top-of-book depth, imbalance and signed flow to test whether genuine Level-2 structure changes that verdict.
The project is explicit about what would be needed to go further and about its own limits. It does not model fees, slippage, or spread, so it states plainly that 0.51 directional accuracy on a few-basis-point move is not tradeable. It evaluates on single contiguous windows rather than walking forward across regimes (2022 chop versus 2024 bull), so it calls itself a learnability check, not a backtest. And it names the ingredients most likely to break the null — richer order-book depth over time, cross-asset signals, on-chain flow, news and sentiment, or a different horizon entirely, from daily down to sub-second tick — rather than claiming the search is over.
Abstract
This project asks a deliberately narrow question: how learnable is next-step Bitcoin fair-market value (FMV) from the market's own microstructure? Across four rounds it sharpens both the target and the inputs. v1 predicts the next 1-minute bar's typical price (H+L+C)/3 from HLCOV and lagged HLCOV using two naive baselines plus six learned models — ridge, lasso, random forest, HistGradientBoosting, an MLP, and an LSTM; every model lands within +/-1.5 percentage points of the 0.500 coin-flip directional line, the best being the LSTM at 0.511. v2 expands to ~89 quantitative features (realized-vol estimators, oscillators, bands, volume and microstructure proxies) and adds CNN/Transformer models. v3 reframes the target away from noisy next-close toward six academically grounded FMV estimators (Kalman, Hasbrouck AR-residual, Stoikov microprice, VWAP, OHLC4, and forward VWAP), separating a contemporaneous recovery test from the real forward-looking test. v4 replaces OHLCV proxies with real Level-2 order-book microstructure — Stoikov microprice, multi-level order-book imbalance, signed trade flow, depth — parsed from Databento MBP-10 and Coinbase feeds. The consistent finding: models trivially recover FMV that is a deterministic function of the current bar or book, but forward FMV several steps ahead stays at coin-flip directional accuracy with error no better than the naive last-value baseline. The work is presented honestly as a learnability check, not a tradeable strategy, and explicitly flags that fees, slippage, and single-window evaluation undercut any apparent edge.
More figures

Fig. 1v3 directional accuracy across FMV targets: contemporaneous targets recover to 0.92-1.00 while forward VWAP (5/15 bars) collapses to the 0.49-0.51 coin-flip band. 
Fig. 2v3 divergence between the FMV estimators and the raw close, illustrating why predicting a smoothed latent price is a cleaner target than the noisy next-bar close. 
Fig. 3v1 predicted-vs-actual on the price level: near-perfect fit that is an artifact of autocorrelation, which is exactly why the study judges learnability on directional accuracy, not R-squared.
