MarketLab Docs
ScriptingData Types

Data Types

Data shapes available inside Market Lab scripts.

Data Types

Script data is grouped by source.

export function onData(ctx, input) {
  input.candles?.candles
  input.candles?.candle
  input.orderbook?.books
  input.orderbook?.snapshot
  input.vd?.candles
  input.vd?.candle
  input.oi?.candles
  input.oi?.candle
  input.volumes?.profiles
  input.volumes?.profile
  input.positions.open
}

input.mode is "window" for script backtest and "stream" for script run.

In live mode, input.source is the source that emitted the current update.

Script params are also grouped by source.

ctx.params.candles.fast
ctx.params.orderbook.max_spread_bps
ctx.params.vd.min_delta
ctx.params.oi.min_change
ctx.params.volumes.min_total_volume

Positions

script backtest passes current open positions into every onData call:

input.positions.open

Open position shape:

type OpenPosition = {
  id: string
  side: "long" | "short"
  entry_ts_ms: number
  entry_price: number
  mark_ts_ms: number
  mark_price: number
  notional: number
  margin: number
  leverage: number
  qty: number
  unrealized_pnl: number
  bars_held: number
  reason: string
}

Close one position by returning its id:

return {
  intent: {
    action: "close",
    position_id: input.positions.open[0].id,
    reason: "take profit"
  }
}

Available source pages:

On this page