Table of Contents

Struct StockImbalance

Namespace
MassiveDotNet.WebSocket.Events
Assembly
MassiveDotNet.WebSocket.dll

One streamed net order imbalance: the NOI topic.

public readonly record struct StockImbalance : IEquatable<StockImbalance>
Implements
Inherited Members

Remarks

Auction imbalance updates, mostly at the opening and closing auctions but also during ticker-specific halts and mini-auctions. A struct for consistency with every other event type (D4), though this topic is far lower volume than trades or aggregates.

Two things differ from the trade, quote and aggregate topics. The ticker arrives as T rather than sym — the same letter that is the trade topic's own wire code — and the timestamp is Unix nanoseconds rather than milliseconds. Both are read from this topic's own documentation, never inferred from a sibling.

Properties

AuctionTime

The wall-clock time the auction is planned for, in Eastern time, or null when AuctionTimeCode is not a valid wall clock.

public LocalTime? AuctionTime { get; }

Property Value

LocalTime?

Remarks

Nullable rather than throwing: a computed property must not fail on a value the server chose, and the raw code remains available for a caller who wants to see what actually arrived.

AuctionTimeCode

The raw auction time as the wire encodes it: (hour × 100) + minutes in Eastern time, so 930 is 09:30 and 1600 is 16:00.

public int AuctionTimeCode { get; init; }

Property Value

int

Remarks

Kept alongside AuctionTime so a code the wire sends that is not a wall clock is still readable, rather than being lost behind a null.

AuctionType

The auction type: O early opening, M core opening, H reopening after a halt, C closing, P extreme closing imbalance, R regulatory closing imbalance.

public string? AuctionType { get; init; }

Property Value

string

Remarks

A string rather than an enum, unlike StockTopic. That enum exists because the server silently ignores a topic code it does not recognise, so a caller's typo is unrecoverable and is made unrepresentable instead — an argument about a value the SDK sends. This is a value the SDK receives, where an enum could only throw on a code Massive adds later, failing a whole event over one field, or misfile it as an existing member. A string carries what arrived.

BookClearingPrice

The book clearing price.

public double BookClearingPrice { get; init; }

Property Value

double

ExchangeId

The exchange ID.

public int ExchangeId { get; init; }

Property Value

int

ImbalanceQuantity

The imbalance quantity.

public long ImbalanceQuantity { get; init; }

Property Value

long

PairedQuantity

The paired quantity.

public long PairedQuantity { get; init; }

Property Value

long

SymbolSequence

The symbol sequence number.

public long SymbolSequence { get; init; }

Property Value

long

Ticker

The ticker symbol, interned across events.

public required string Ticker { get; init; }

Property Value

string

Timestamp

When the imbalance was published.

public Instant Timestamp { get; }

Property Value

Instant

TimestampNanoseconds

The raw event timestamp, in Unix nanoseconds.

public long TimestampNanoseconds { get; init; }

Property Value

long