Skip to content

Universal Features of Price Formation in Financial Markets: Perspectives from Deep Learning

Authors: Justin Sirignano, Rama Cont Institution: University of Illinois at Urbana-Champaign; CNRS & Imperial College London Year: 2018 (arXiv March 2018); published Quantitative Finance 19(9), 2019 arXiv: 1803.06917 Categories: q-fin.ST, q-fin.TR, stat.ML


Plain-language abstract

Standard practice in quantitative finance is to fit a separate model for each stock. Sirignano and Cont flip this: they train a single deep neural network on pooled data from ~500 US stocks and show it outperforms stock-specific models for predicting next-price-move direction — even on stocks the model has never seen in training. This is nontrivial evidence that the mapping from order-book state to price change is universal (stock-agnostic) and stationary (stable over at least 18 months). The architecture is a 3-layer LSTM on the Nasdaq-L3 order-book history, trained on billions of events from Jan 2014 – March 2017 across ~1000 stocks. The results argue strongly for pooling data across the universe rather than splitting it by stock or sector when training LOB models.


Key contributions

  1. Universal price formation — A single LSTM trained on pooled data from 500 stocks outperforms 500 individually-trained stock-specific LSTMs on next-price-move classification, including on stocks held out of the training set. 1 year of pooled data ≈ 500 stock-years of single-asset data.
  2. Nonlinearity gain — A stock-specific deep network beats a stock-specific VAR by 5–10% accuracy — nonlinear patterns in the LOB→price map are large.
  3. Stationarity — A model trained on Jan 2014–May 2015 retains forecast accuracy 18 months later (Jan–Mar 2017) with no retraining. Contradicts the common belief that frequent recalibration is required.
  4. Long-memory / path-dependence — An LSTM beats a feed-forward network; accuracy further improves when the history window grows from 100 to 5000 steps (~2 hours of events on average). Price formation is non-Markovian.
  5. No benefit from sector / tick-size stratification — Pre-partitioning data by sector or tick size and training separate models does NOT beat the pooled universal model. The network learns its own internal normalisation.
  6. Generalisation to new stocks — Model trained on stocks 1–464 performs within 0.2% of stock-specific models on held-out stocks 465–489, and actually beats them on average. Direct relevance for newly-listed stocks, stocks with short history, or handling stock splits.

Method summary

Architecture

Recurrent network: 3 stacked LSTM layers → one feed-forward ReLU layer → softmax over \(\{-1, +1\}\) (direction of next mid-price move). Trained on ~100k parameters (50 units/layer) and a 150 units/layer variant that reaches several hundred thousand parameters.

At each step \(t\):

\[Y_t \;=\; f_\theta(X_t, h_{t-1}), \qquad h_t \;=\; \text{LSTM}(X_t, h_{t-1}; \theta)\]

where \(X_t\) is the LOB state (prices, sizes across levels) and \(h_t\) is the LSTM hidden state summarising the history.

Target

Next-price-move event — not a fixed-time horizon. Let \(\tau_1 < \tau_2 < \ldots\) be the sequence of times at which the mid-price changes. For each \(\tau_k\), predict:

\[\mathbb{P}[P_{\tau_{k+1}} - P_{\tau_k} > 0 \mid X_{\tau_0 : \tau_k}]\]

Classification accuracy (proportion correct) is the reported metric. Baseline coin-flip = 50%; statistical noise at this sample size is <1%.

Training

  • Data: Nasdaq L3 via LOBSTER. ~1000 stocks, Jan 2014 – March 2017.
  • Universal model: asynchronous SGD distributed across 25 GPU nodes.
  • Stock-specific models: one GPU per stock, ~500 in parallel.

Backpropagation through time

Truncated BPTT with \(T\) steps. The paper sweeps \(T \in \{100, 5000\}\) (∼170 sec to 2 hours of event time on average) and shows accuracy increases monotonically with \(T\).


Main results

Comparison Delta accuracy
Stock-specific LSTM vs stock-specific linear VAR +5% to +10%
Universal LSTM vs stock-specific linear VAR ~+10%
Universal LSTM vs stock-specific LSTM Universal wins consistently, especially for data-poor stocks
Universal LSTM (trained on stocks 1–464) vs stock-specific LSTM on held-out 465–489 Universal wins 25/25 stocks, +1.45% average
150 units/layer vs 50 units/layer (universal) Larger network wins — no overfitting on pooled data
LSTM vs feed-forward (Markov) LSTM wins substantially
5000-lag LSTM vs 100-lag LSTM 5000-lag wins

Training on 19 months of data beats training on 1/3/6 months for 100% of tested stocks (1-month training is 7.2% worse on average). Conclusion: use all available history.

Nonlinear features discovered

Sensitivity analysis reveals: - The standard depth-imbalance → next-price-move mapping (queueing-theory prediction from Cont & de Larrard 2013) emerges from the learned model — validated non-parametrically. - Levels 5–10 of the book contribute additional predictive power beyond the top of the book, though with tighter output range — consistent with multi-level OFI insights.


Limitations

  • Event-time horizon, not wall-clock. The model predicts the next price move; the time to that move varies from sub-second to seconds. Implications for trading strategy depend on execution horizon.
  • No transaction-cost analysis. Pure accuracy metric; whether a 10% edge over 50% is tradeable after costs is not addressed.
  • US equities only. Universality claim is within the Nasdaq equity universe; transfer to futures, FX, crypto, or non-US equities is left to follow-up work.
  • Feature opacity. Sensitivity analysis recovers some known relations (depth imbalance), but what drives the extra nonlinear signal remains under-documented. Not directly interpretable.
  • Architecture choice not rigorously ablated. LSTM vs Transformer vs attention-based alternatives aren't compared — later literature (deep-lob-forecasting, DeepLOB) goes further on architecture.
  • Stationarity claim is strong. 18-month stability is remarkable, but spans a largely calm market regime (2015–2017). Behaviour in a regime-change year is not tested.

Connections

  • Follow-up / complement: deep-lob-forecasting (Briola-Bartolucci-Aste, 2024) sharpens the practical picture — same LOBSTER data, but classifies stocks by tick-size regime and argues that accuracy-does-not-imply-tradability. The universality claim here needs the tradeability filter there.
  • Theoretical backing: price-impact-order-book-events (Cont-Kukanov-Stoikov, 2014) provides the linear counterpart — OFI → price change, universal across stocks. The LSTM is the nonlinear extension of the same hypothesis.
  • Direct lineage: The follow-on cross-impact-ofi-equity-markets uses the same Nasdaq / LOBSTER data and confirms the universality finding using a linear-in-integrated-OFI model — a linear baseline that the LSTM doesn't dominate by as much as one might expect.
  • Cross-reference: transformer-architecture is the newer sequence-model workhorse; Transformer-on-LOB is the natural successor to the LSTM approach.

Signal-design takeaways

For anyone building an LOB-snapshot or L3 signal:

  1. Pool across stocks. If you have <500 stocks' worth of single-name history, a universal model trained on a broader universe will almost certainly beat a stock-specific one.
  2. Don't pre-normalise. Volatility / tick-size / sector stratification does not help LSTMs on this task. Let the network absorb heterogeneity.
  3. Use long history. 100 lags is not enough. Target \(\geq\!1000\) lags; 5000 is better if compute allows.
  4. Event time, not wall-clock time. Predicting the next price move is cleaner than "price in \(\Delta t\)" because it removes the time-between-events noise.
  5. Recalibration is overrated. If the relationship is stationary, there is no penalty for training on old data and deploying for 12+ months.