Live runtime context exposed to a heatmap indicator. Unlike the v1 HeatmapIndicatorContext record (snapshot at reset), this is a read-only interface whose properties reflect the host's current state at every read. Indicators query it on demand — there are no "context changed" events because the most volatile field (Viewport) updates every render frame and a cross-thread notification per change would dominate the cost.
More...
Properties | |
| string | InstrumentId [get] |
| The instrument the heatmap is bound to. | |
| decimal | TickSize [get] |
| Minimum price increment for the active instrument. | |
| decimal | LotSize [get] |
| Multiplier converting lots into volume for the active instrument. | |
| TimeZoneInfo | TimeZone [get] |
| Exchange / session time zone — use to format timestamps for the user. | |
| string? | TradingSessionId [get] |
| Optional session identifier; null when the host has no session concept. | |
| long | DataStartTimeNanos [get] |
| Earliest timestamp for which heatmap data is currently loaded. Moves backward as the user pans into history and the host loads more. | |
| long? | DataEndTimeNanos [get] |
Latest timestamp for which heatmap data is currently loaded. null in live mode (= "wall clock now"); set to a finite value in playback / historical replay modes. | |
| HeatmapViewport | Viewport [get] |
| Last reported visible viewport. Updated by the host with sub-frame latency in live mode but with no realtime guarantee. Use for decimation hints; do not use for correctness. | |
Live runtime context exposed to a heatmap indicator. Unlike the v1 HeatmapIndicatorContext record (snapshot at reset), this is a read-only interface whose properties reflect the host's current state at every read. Indicators query it on demand — there are no "context changed" events because the most volatile field (Viewport) updates every render frame and a cross-thread notification per change would dominate the cost.
Stable across the indicator's lifetime: InstrumentId, TickSize, LotSize, TimeZone, TradingSessionId. A change in any of these triggers a platform-initiated reset before the context reports the new value.
Updates as data flows: DataStartTimeNanos moves backward when historical data loads (a separate OnHistoricalDataLoadedAsync notification fires for indicators that need to react), DataEndTimeNanos tracks the latest loaded timestamp (null in live mode = wall-clock now).
Updates per frame in live mode: Viewport. Indicators MUST treat the viewport as a hint (e.g. for decimation decisions); it MUST NOT be used for correctness — there is no guarantee the viewport read inside one callback matches the one the renderer drew with.
|
get |
Latest timestamp for which heatmap data is currently loaded. null in live mode (= "wall clock now"); set to a finite value in playback / historical replay modes.
|
get |
Earliest timestamp for which heatmap data is currently loaded. Moves backward as the user pans into history and the host loads more.
|
get |
The instrument the heatmap is bound to.
|
get |
Multiplier converting lots into volume for the active instrument.
|
get |
Minimum price increment for the active instrument.
|
get |
Exchange / session time zone — use to format timestamps for the user.
|
get |
Optional session identifier; null when the host has no session concept.
|
get |
Last reported visible viewport. Updated by the host with sub-frame latency in live mode but with no realtime guarantee. Use for decimation hints; do not use for correctness.