Table of Contents

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 record derivatives — 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 foreach over 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 async consumer 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).