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_volumePositions
script backtest passes current open positions into every onData call:
input.positions.openOpen 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: