Greek TRACE - forward (time × price) projection
Forward (time × price) greek projection - gamma / charm / vanna. Black-Scholes forward projection of dealer gamma, charm, or vanna across a (time ×…
(time × price) grid. Same
view as BackQuant Pro TRACE, as raw data for your own renderer.
Holding today’s chain constant, the endpoint walks each grid point
(future timestamp + future spot), recomputes per-contract τ and the
requested greek, sums across the chain with positioning-weighted size,
and returns the field.
Default positioning=flow. Pass ?positioning=std for textbook
OI sign. See Positioning.
Why use it
A point-in-time greek profile only shows exposure now. TRACE shows how walls develop, decay, or migrate as time and price evolve. Common uses:- Intraday flow planning -
greek=gamma&expiry=0dteshows where 0DTE dealer hedging concentrates as the session progresses. - Charm bleed -
greek=charmexposes passive delta drift from time alone, even with spot frozen. - Delta change -
greek=delta_changemaps how dealer delta shifts relative to spot/now as the grid walks (useful for hedge path views). - Vol-shock surfaces -
vol_shift_pct=±10for instant vol up/down without a re-fetch. - Multi-day overlays -
expiry=all&horizon_hours=168across the next week’s term structure.
Sign convention
Under std, calls contribute positive size and puts negative (same as the rest of the stack). Under flow, size comes from BackQuant’s measured dealer model. A positive cell means the signed book leans supportive at that(time, price); negative means the reverse.
Units
field_units is echoed on every response so renderers need not hardcode this.
Cells, axes, and shape
time_axis_ms runs from “now” to now + horizon_hours. price_axis
runs from spot × (1 − range/100) to spot × (1 + range/100). Both
are evenly spaced.
abs_field_max = max(|field_min|, |field_max|) supports symmetric
colour scales: value / abs_field_max clamped to [−1, +1].
What-if vol shifts
vol_shift_pct adds a flat percent shift to every contract’s IV.
Example: vol_shift_pct=5 multiplies each σ by 1.05 before evaluation.
Performance
Cached for 30 seconds per(symbol, full-param-hash). Cold compute
is typically 50-100 ms for default grids; payload is often
30-80 KB of JSON.
Caps
VALIDATION_ERROR with a 422.
See also
TRACE summary
Flow vs std
Greeks beyond delta
Greek profile
Authorizations
Your BackQuant API key (same key as v1)
Headers
Path Parameters
Which field to project: gamma | charm | vanna | delta_change (dealer delta at cell minus dealer delta at spot/now - path of hedge pressure).
gamma, charm, vanna, delta_change Query Parameters
Trading symbol: BTCUSDT, ETHUSDT, SOLUSDT, or HYPEUSDT.
BTCUSDT, ETHUSDT, SOLUSDT, HYPEUSDT Expiry filter. 0dte = front 0-DTE book (same-day UTC token if listed, else any expiry settling within 24h / dte < 1 - matches GEX 0dte), all = every active expiry, or a specific Deribit token (e.g. 28MAR25).
Number of buckets along the time axis. Higher = smoother surface, larger payload. Capped at 200.
2 <= x <= 200Number of buckets along the price axis. Higher = smoother, larger payload. Capped at 200.
2 <= x <= 200Price half-width as a percent of spot. Default 8 = ±8% around spot. Capped at ±50% - wider than that and BS gamma at the wings is essentially zero anyway.
x <= 50Time horizon in hours from now. Default 24 = one trading day. Use longer horizons for multi-week trace overlays - capped at 720 h (30 days).
x <= 720What-if shift applied to every contract's IV (additive percent of σ - +5 ⇒ multiply σ by 1.05). Use to build vol-up / vol-down surfaces without re-fetching.
-50 <= x <= 50Drop contracts with OI below this threshold before summing. Useful for de-noising the wings.
x >= 0Dealer positioning model. flow (default) is BackQuant's measured dealer model, available for BTC/ETH; it falls back to std when it cannot be produced for a symbol. std is the textbook convention (call:+OI / put:-OI). The response reports which model actually ran in meta.extra.positioning.
Response
Successful Response
Single forward-projected greek field.
The meta block returned alongside every v2 response.
Every field after version/timestamp is optional because endpoints
attach different combinations - e.g. /v2/status skips symbol, the
chain endpoint sets extra.filter_hash, etc. Listing them here means
SDKs get a typed accessor for each instead of a generic meta: dict.
