Namespace OFT.Rendering.Heatmap
Classes
- HeatmapControl
Performs rendering of the heatmap to the offscreen image on GPU
Add all available levels to the AddBar(int, HeatmapLevel[], HeatmapMergeMode) method to update the internal data storage
This control is just a facade that is handled by a rendering engine.
It will be bind at the moment of first draw and then become fully functional
- HeatmapExtensions
Access to the heatmap color palettes of HeatmapTypes, loaded from the palette images embedded in this assembly.
- HeatmapIndicatorColorScheme
Polymorphic colour specification carried on ColorScheme for multi-colour visuals. Single-colour visuals use the flat Color shortcut and ignore this. Extend by adding new
recordderivatives — the renderer dispatches via pattern matching, so adding a scheme doesn't break existing call sites.Added in ATAS 8.0.15.
- HeatmapIndicatorDescriptor
The static description of a heatmap indicator: its identifier, label and visuals. Built once per indicator type, usually with
HeatmapIndicatorDescriptorBuilder(ATAS.Indicators), and shared by all its instances.Added in ATAS 8.0.15.
- HeatmapIndicatorSeriesDescriptor
Static description of a single series within an indicator visual.
Added in ATAS 8.0.15.
- HeatmapIndicatorTimerTick
A periodic timer tick passed to
IHeatmapTimerConsumer.ProcessTimerAsync(ATAS.Indicators). The heatmap raises it from its UI timer while it has indicator instances, and not while a live heatmap is stopped.Added in ATAS 8.0.15.
- HeatmapIndicatorVisualDescriptor
The static description of one visual of a heatmap indicator: what kind of drawing it is and which series feed it.
Added in ATAS 8.0.15.
- HeatmapIndicatorVisualPresentation
Optional renderer hints carried per-visual. Every nullable knob means "renderer chooses default"; specify a value only to override. PanelRenderMode and ScalarScaleMode are non-nullable enums whose default member (
Auto/Fixed) already encodes "renderer default" — they do not need null sentinels.Added in ATAS 8.0.15.
- HeatmapIndicatorVisualStyle
Per-visual / per-series renderer hints. Every nullable knob means "renderer chooses default"; specify a value only to override.
Visibility is host-owned and lives on
HeatmapIndicatorInstanceSettings.IsVisible— a hidden instance is dropped by the controller before this style is ever inspected, so a per-style visibility flag would be dead weight here.TextColor is the colour of the text drawn over the visual (the price badge at the cutoff of a level line). null means "Auto": the renderer picks black or white for contrast with the badge colour.
Added in ATAS 8.0.15.
- HeatmapIndicatorWarmupBundle
Pair of HeatmapIndicatorWarmupRequest + data sources returned by PrepareWarmupAsync(CancellationToken). Per-instance warm-up calls share the same bundle for a single warm-up attempt; the controller does not cache it across attempts.
Added in ATAS 8.0.15.
- HeatmapIndicatorWarmupRequest
The historical time range an indicator warms up from, passed to
IHeatmapWarmupIndicator.WarmUpAsync(ATAS.Indicators) and to GetTradeTicksAsync(HeatmapIndicatorWarmupRequest, CancellationToken). The range is given both as System.DateTime values and as nanoseconds since the Unix epoch; the two forms describe the same range, and the trade source of the platform heatmap includes both ends.Added in ATAS 8.0.15.
- HeatmapMarketProfileSnapshot
Point-in-time values of the instrument's market profile for one period, delivered to heatmap indicators. All price members are prices, not tick indexes.
Added in ATAS 8.0.15.
- HeatmapRegionContainer
Levels of a rectangular area of a bar-indexed heatmap: read from a heatmap by GetVolumes(HeatmapRectangle) or written to one by AddRegion(HeatmapRegionContainer).
Structs
- AggregatedTrade
Aggregated trade data for visualization
Added in ATAS 8.0.15.
- HeatmapBarData
Extended bar data with all layers (volumes, best prices, trades)
Added in ATAS 8.0.15.
- HeatmapIndicatorDescriptorIdentity
Opaque token identifying a descriptor instance produced by the fluent builder. Visual / series handles carry this token so the state builder can verify they belong to the descriptor they are being used against. Authors rarely interact with this type — minted by
HeatmapIndicatorDescriptorBuilder, stored on the descriptor, compared internally. Calling Create() directly returns a fresh, unrelated identity that will not match any other identity in the system.Added in ATAS 8.0.15.
- HeatmapIndicatorProfileRangeRequest
A request for market-profile snapshots, passed to GetProfilesAsync(HeatmapIndicatorProfileRangeRequest, CancellationToken). All times are in nanoseconds since the Unix epoch.
Added in ATAS 8.0.15.
- HeatmapIndicatorSample<TValue>
Typed timestamped sample produced by indicator authors. Carries a nanosecond timestamp and an arbitrary value type — the storage layer projects it to HeatmapIndicatorVisualSample via the series' value projection before committing through an
IHeatmapSeriesLease<TValue>.Added in ATAS 8.0.15.
- HeatmapIndicatorVisualSample
Public sample shape committed to indicator visual state. The renderer reads spans of this struct directly from the chunked series storage every frame.
Added in ATAS 8.0.15.
- HeatmapLevel
Order book volume at one price of one bar of a bar-indexed heatmap (HeatmapControl).
- HeatmapRectangle
Area of a bar-indexed heatmap: a range of bars and a range of prices.
- HeatmapTickBatch
Zero-allocation, struct-based wrapper around a System.ReadOnlyMemory<T> of HeatmapTradeTick. Used on the live tick hot path to avoid the defensive copies and per-batch allocations System.Collections.Generic.IReadOnlyList<T> imposes — the platform rents the underlying buffer from System.Buffers.ArrayPool<T> and hands it to indicators wrapped in this struct, so a sustained tick stream produces zero per-batch garbage.
Authors typically
foreachover the batch — the public struct enumerator avoids boxing via duck typing. For performance-critical loops, call AsSpan().Lifetime: the underlying buffer is valid only during the synchronous portion of the call that received it AND across awaited continuations of the same
asyncconsumer call. Indicators MUST NOT capture the batch (or any span / sample reference derived from it) beyond the call's completion — the platform may immediately rent the buffer to a different batch for a different instance. Persist data into indicator-owned storage instead.Added in ATAS 8.0.15.
- HeatmapTickBatch.Enumerator
Allocation-free enumerator over the ticks of a HeatmapTickBatch.
Added in ATAS 8.0.15.
- HeatmapTradeTick
One trade passed to a heatmap indicator, live or during warm-up.
Added in ATAS 8.0.15.
Interfaces
- IHeatmapIndicatorDataSources
The sources of historical data an indicator reads during one warm-up call. Do not keep them, or the batches they return, after the call completes.
Added in ATAS 8.0.15.
- IHeatmapIndicatorProfileRangeSource
A source of market-profile snapshots for indicators.
Added in ATAS 8.0.15.
- IHeatmapIndicatorTradeRangeSource
A source of historical trades for indicator warm-up. The source of the platform heatmap returns, ordered by time, the trades already loaded locally for the instrument within the requested range; it does not load history from the server.
Added in ATAS 8.0.15.
- IHeatmapIndicatorWarmupHost
Contract supplied by the heatmap host (typically the heatmap view-model) that lets the controller pull a fresh warm-up bundle whenever it needs one. The controller never invents a HeatmapIndicatorWarmupRequest or an IHeatmapIndicatorDataSources on its own — it cannot, since it does not know the active instrument, the heatmap data range, or the cache locations.
Added in ATAS 8.0.15.
Enums
- HeatmapIndicatorPanelRenderMode
Closed v1 set of sub-panel render modes. See HeatmapIndicatorVisualKind for the v1 → registry forward-compatibility note.
Added in ATAS 8.0.15.
- HeatmapIndicatorScalarScaleMode
Closed v1 set of scalar-axis scale modes. See HeatmapIndicatorVisualKind for the v1 → registry forward-compatibility note.
Added in ATAS 8.0.15.
- HeatmapIndicatorSeriesRole
Closed v1 set of series roles used by renderers. For unique cross-indicator lookups, prefer MetricId. See HeatmapIndicatorVisualKind for the v1 → registry forward-compatibility note.
Added in ATAS 8.0.15.
- HeatmapIndicatorValueKind
Closed v1 set of value domains for samples. See HeatmapIndicatorVisualKind for the v1 → registry forward-compatibility note.
Added in ATAS 8.0.15.
- HeatmapIndicatorVisualKind
Closed v1 set of visual kinds the renderer can draw. Authors compose indicators from these kinds; introducing a new kind requires a coordinated platform release. A future major version may switch to a slug-based registry; v1 enum values are a forward-compatible subset of any such slug space, so v1 indicators survive that change unchanged.
Added in ATAS 8.0.15.
- HeatmapMergeMode
How new levels of a bar are combined with the levels the bar already has.
- HeatmapProfilePeriod
Period of a market profile delivered to heatmap indicators as HeatmapMarketProfileSnapshot.
Added in ATAS 8.0.15.
- HeatmapTradeDirection
The aggressor side of a HeatmapTradeTick.
Added in ATAS 8.0.15.
- HeatmapTypes
Color palette of a heatmap. Volumes are mapped onto the palette from its first color (the lowest volume) to its last one (the highest volume); each palette is an image embedded in this assembly, see TryGetImage(HeatmapTypes).