Skip to main content
The nano-lob crate provides comprehensive feature extraction from order book snapshots for machine learning models. These features capture market microstructure signals used to predict short-term price movements.

LobFeatureExtractor

The core feature extraction engine extracts 44+ features from the order book state.

Initialization

Source: nano-lob/src/features.rs:58-74

Feature Structure

Source: nano-lob/src/features.rs:10-40

Core Features

Microprice

The microprice is a volume-weighted mid price that accounts for the liquidity at the best bid and ask:
This provides a more accurate estimate of the “fair” price than the simple mid:
Implementation:
Source: nano-lob/src/features.rs:96-102, 158-174

Weighted Mid Price

Weights multiple price levels by inverse distance and quantity:
Implementation:
Source: nano-lob/src/features.rs:176-206

Book Imbalance

Measures the imbalance between bid and ask liquidity:
Values range from -1 (all asks) to +1 (all bids):
Implementation:
Source: nano-lob/src/features.rs:104-106, 208-220

Advanced Features

Order Flow Imbalance (OFI)

OFI tracks changes in order flow between consecutive book states:
OFI Calculation Logic:
  1. Bid side:
    • If bid price improved (higher): +new_bid_qty
    • If bid price worsened (lower): -old_bid_qty
    • If same price: delta_qty
  2. Ask side:
    • If ask price improved (lower): -new_ask_qty
    • If ask price worsened (higher): +old_ask_qty
    • If same price: -delta_qty
Implementation:
Source: nano-lob/src/features.rs:222-261

VPIN (Volume-Synchronized Probability of Informed Trading)

VPIN estimates the probability of informed trading by analyzing volume buckets:
VPIN Formula:
Implementation:
Source: nano-lob/src/features.rs:298-388

Trade Flow Tracking

Track cumulative trade flow over time:
Source: nano-lob/src/features.rs:390-451

ML Feature Vector

Convert all features to a flat array for ML model input:
Implementation:
Source: nano-lob/src/features.rs:264-295

Usage Example

Real-Time Feature Extraction

Temporal Features with History

Multi-Instrument Tracking

Performance Characteristics

Extraction Latency

  • Full feature extraction: ~500-800ns
  • Microprice only: ~50-100ns
  • Book imbalance: ~100-200ns
  • OFI calculation: ~200-400ns
  • VPIN update: ~50-100ns
Benchmark your system:

Memory Footprint

  • LobFeatures: 440 bytes (44 × f64 + overhead)
  • VpinCalculator: ~1KB (depends on num_buckets)
  • TradeFlowTracker: 32 bytes

Feature Interpretation

Microprice vs Mid Price

  • Mid price: Simple average, ignores liquidity
  • Microprice: Weighted by BBO liquidity, better fair value estimate
  • Use microprice for:
    • Order placement decisions
    • Fair value estimation
    • Spread crossing decisions

Imbalance Signals

  • Positive imbalance (>0.3): More bid liquidity → upward pressure
  • Negative imbalance (<-0.3): More ask liquidity → downward pressure
  • Neutral (-0.2 to 0.2): Balanced book

OFI Interpretation

  • Positive OFI: Net aggressive buying → potential price increase
  • Negative OFI: Net aggressive selling → potential price decrease
  • OFI is a leading indicator (predicts next price move)

VPIN Thresholds

  • VPIN < 0.3: Low informed trading, safer to provide liquidity
  • VPIN 0.3-0.7: Moderate informed trading
  • VPIN > 0.7: High informed trading, higher adverse selection risk

Next Steps

ML Integration

Feed features into ML models

Order Book

Learn about the OrderBook structure

Market Data

Ingest market data feeds

Strategy Development

Build trading strategies