Skip to main content

Mid Price

Quick Reference

PropertyValue
Dimensionexecution
Categorystatistics
Versionv0.9.0 (Beta)
Output Columnmid_price

Mid price: (best_bid_price + best_ask_price) / 2 - instantaneous equilibrium estimate of fair value

Formula

(best_bid_price + best_ask_price) / 2.0

CDM Inputs

ColumnCDM TableDescription
best_bid_pricecdm_*CDM source table
best_ask_pricecdm_*CDM source table

Parameters

This FeatureType has no configurable parameters.

Output

Column: mid_price

Mid price (bid-ask midpoint)

Market Intuition & Trading Rationale

Mid price is the simplest estimate of instantaneous fair value: (best_bid + best_ask) / 2. It sits at the center of the quoted spread and represents the price at which a hypothetical trade would occur if neither side paid a liquidity premium. Every other execution quality FeatureType uses mid_price as its reference anchor — effective spread measures deviation from it, trade sign is inferred relative to it, and micro-price models refine it with order book imbalance.

In a symmetric, balanced book, mid_price is a reasonable fair value estimate. But when the book is imbalanced (e.g., heavy bid depth, thin ask depth), the true equilibrium tilts toward the heavier side — the simple midpoint overestimates fair value when asks dominate and underestimates it when bids dominate. This is why micro_price_deviation exists: it adjusts mid_price using depth-weighted imbalance to produce a more accurate equilibrium estimate.

Mid price is also subject to tick-size discretization. For instruments with wide tick sizes relative to price (e.g., penny tick on a $10 stock), mid_price can only take discrete values (e.g., $10.005, $10.015). This introduces quantization noise that propagates into every derived feature — log returns, z-scores, and spread calculations all inherit this granularity.

Usage Cases

  • Reference price for trade classification: Compare trade_price to mid_price via the Lee-Ready algorithm. trade_sign relies on mid_price as the boundary — trades above mid are buys, trades below are sells, trades at mid are indeterminate.
  • Fair value anchor for alpha signals: Many mean-reversion signals compute deviation from mid_price (e.g., vwap_deviation_signal, zscore_price_deviation). Mid_price provides the instantaneous equilibrium against which dislocations are measured.
  • Spread decomposition: mid_price splits the quoted spread into its upper and lower halves. half_spread = ask - mid_price = mid_price - bid. Asymmetric halves indicate directional pressure — a wider upper half signals buying pressure, a wider lower half signals selling pressure.
  • Micro-price comparison: Compare mid_price to micro_price_deviation. Persistent divergence means the book is structurally imbalanced — use the micro-price as the fair value estimate instead of mid_price for execution decisions.

YAML Definition

name: mid_price
description: 'Mid price: (best_bid_price + best_ask_price) / 2 - instantaneous equilibrium
estimate of fair value'
category: statistics
version: v0.9.0 (Beta)
dimension: execution
status: Pre-release
required_inputs:
- best_bid_price
- best_ask_price
output_column: mid_price
output_description: Mid price (bid-ask midpoint)
parameters: {}
formula: (best_bid_price + best_ask_price) / 2.0