Market LabDocs
ScriptingData Types

Orderbook

Normalized orderbook snapshots for Market Lab scripts.

Orderbook

type Orderbook = {
  exchange: string
  symbol: string
  timestamp_ms: number
  bids: OrderbookLevel[]
  asks: OrderbookLevel[]
}

type OrderbookLevel = {
  price: number
  quantity: number
}

Bids and asks are ordered best price first and limited by the configured depth.

export function onData(ctx, input, history) {
  const book = history.source('orderbook@bulk', 0)
  if (!book) return

  const spread = ctx.study.spread(book)
  const imbalance = ctx.study.imbalance(book, { depth: 20 })

  return {
    metrics: {
      spread_bps: spread.spread_bps,
      imbalance: imbalance.imbalance,
    },
  }
}

On this page