How can Liquidity And Spreads be measured?

Explore How can Liquidity And: mechanics, differences, limitations, and practical checks.

What liquidity and spreads mean in measurable terms

Liquidity and spreads describe how easy and how expensive it is to trade at (or near) a reference price.

Spread is the difference between the best ask (lowest sell price) and best bid (highest buy price) at a specific moment. To measure spreads, you need time-stamped bid and ask quotes.

Liquidity is broader than “tight spreads.” It reflects how much tradable interest exists without moving prices too much. Because liquidity is not a single observable number in most markets, measurement usually relies on proxies such as depth near the best price or the price change associated with a defined trade size.

Mechanism: measurable fields, time windows, and calculation examples

Measuring spreads (quote-based)

Choose a measurement unit (e.g., one-second or one-minute intervals) and a reference definition (e.g., best bid/ask from the same venue).

For each timestamp t, record:

  • BestBid(t) and BestAsk(t)
  • Spread(t) = BestAsk(t) − BestBid(t)
  • Optionally a normalized form: SpreadPercent(t) = Spread(t) / Mid(t) where Mid(t) = (BestBid(t)+BestAsk(t))/2

Then compute summary statistics over your window:

  • Average spread, median spread
  • Percentiles (e.g., 90th percentile) to capture tail behavior

Assumption for examples: all quote timestamps refer to the same exchange/venue and represent the best executable prices at that time.

Measuring liquidity (depth or impact proxies)

Two common measurable approaches are:

A) Depth near the best price Record quantities at or near the top of the book, such as:

  • BidDepth(t, Δ): total bid size within Δ ticks or within a small price band below the mid
  • AskDepth(t, Δ): total ask size within Δ ticks or above the mid
  • Imbalance(t) = (BidDepth − AskDepth) / (BidDepth + AskDepth)

Assumption: the order-book data (or equivalent depth feed) is available and comparable across timestamps.

B) Price impact for a defined size If you can estimate how price moves when moving a fixed notional size, you can define a proxy like:

  • Impact(t) = ExecutionPrice(t, Size) − Mid(t) (for buys)

Assumption: “ExecutionPrice for Size” is computed consistently (same model, same venue logic) and is based on time-synchronized inputs.

Evidence and comparison: what you can compare independently

To compare measurements meaningfully, use a consistent framework:

  1. Same measurement window: identical start/end times and sampling frequency.
  2. Same quote source and venue: best bid/ask and depth should come from the same place.
  3. Same normalization: use either raw spread or a percent-of-mid version consistently.
  4. Same liquidity proxy definition: e.g., depth within Δ ticks vs impact for a fixed size.

A practical comparison is to publish time series of Spread(t) and at least one liquidity proxy (depth or impact), then examine how they co-move. This does not prove a causal link, but it provides a check that the chosen proxy behaves sensibly under changing market conditions.

Limitations and risks (material failure modes)

Several limitations affect both spreads and liquidity measurements:

  • Quote staleness and timing mismatch: if bid/ask or depth data are delayed or sampled differently, computed spreads can be wrong.
  • Venue and execution mismatch: a “measured spread” from one feed may not match what an order actually executes on another venue.
  • Liquidity proxy mismatch: tight spreads can coincide with low depth (limited ability to trade size). Depth-based and impact-based proxies may disagree.
  • Costs beyond the spread: real execution cost includes slippage, commissions, and any pricing rules in execution engines; spread alone may understate total cost.
  • Non-stationarity: historical relationships between liquidity and spread can change; past co-movement does not imply future behavior.

Verification: how to sanity-check your measurement choices

To verify your measurement approach, independently test these points:

  • Recompute spreads from stored Bid/Ask and confirm Spread(t) ≥ 0 and percent spread stays consistent with mid.
  • Check data completeness: quantify how often best bid/ask or depth is missing at timestamps.
  • Run the same calculations on two time windows (e.g., calmer vs volatile periods) to see whether summary statistics change in expected directions, without assuming any guaranteed outcomes.
  • Document assumptions: sampling interval, venue, quote definitions, depth band Δ, and impact Size.

If you want, you can also clarify your exact available data (quotes only vs order-book depth vs trade/execution records).

Trading foreign exchange and CFDs involves substantial risk. Information on FoxiForex is educational and is not personal financial advice. Sponsored placements are labelled clearly.