Table of Contents

Struct LastQuote

Namespace
MassiveDotNet.Rest.Models
Assembly
MassiveDotNet.Rest.dll

The most recent NBBO quote for a ticker: bid and ask price, size, and exchange, with three nanosecond timestamps.

[JsonConverter(typeof(LastQuoteJsonConverter))]
public readonly record struct LastQuote : IEquatable<LastQuote>
Implements
Inherited Members

Remarks

A tick-level type, so a struct (decision D4). The v2 wire keys are single letters, which the map names. The description declares the timestamps as bare integers, which every published value overflows, so the map types them long; they are exposed as Instant only when read (decision D5).

Properties

AskExchangeId

The exchange ID. See Exchanges for Massive's mapping of exchange IDs.

[JsonPropertyName("X")]
public int? AskExchangeId { get; init; }

Property Value

int?

AskPrice

The ask price.

[JsonPropertyName("P")]
public double? AskPrice { get; init; }

Property Value

double?

AskSize

The total number of shares available for sale at the current ask price.

[JsonPropertyName("S")]
public int? AskSize { get; init; }

Property Value

int?

BidExchangeId

The exchange ID. See Exchanges for Massive's mapping of exchange IDs.

[JsonPropertyName("x")]
public int? BidExchangeId { get; init; }

Property Value

int?

BidPrice

The bid price.

[JsonPropertyName("p")]
public double? BidPrice { get; init; }

Property Value

double?

BidSize

The total number of shares that buyers want to purchase at the current bid price.

[JsonPropertyName("s")]
public int? BidSize { get; init; }

Property Value

int?

Conditions

A list of condition codes.

[JsonPropertyName("c")]
[JsonConverter(typeof(PooledArrayConverter<int>))]
public int[]? Conditions { get; init; }

Property Value

int[]

Indicators

A list of indicator codes.

[JsonPropertyName("i")]
[JsonConverter(typeof(PooledArrayConverter<int>))]
public int[]? Indicators { get; init; }

Property Value

int[]

ParticipantTimestamp

The moment the exchange generated this quote, converted from ParticipantTimestampNanoseconds.

[JsonIgnore]
public Instant ParticipantTimestamp { get; }

Property Value

Instant

ParticipantTimestampNanoseconds

The nanosecond Unix timestamp at which the quote was generated at the exchange.

[JsonPropertyName("y")]
public long ParticipantTimestampNanoseconds { get; init; }

Property Value

long

SequenceNumber

The sequence number represents the sequence in which message events happened. These are increasing and unique per ticker symbol, but will not always be sequential (e.g., 1, 2, 6, 9, 10, 11).

[JsonPropertyName("q")]
public long SequenceNumber { get; init; }

Property Value

long

SipTimestamp

The moment the SIP received this quote, converted from SipTimestampNanoseconds.

[JsonIgnore]
public Instant SipTimestamp { get; }

Property Value

Instant

SipTimestampNanoseconds

The nanosecond Unix timestamp at which the SIP received this quote from the exchange that produced it.

[JsonPropertyName("t")]
public long SipTimestampNanoseconds { get; init; }

Property Value

long

Tape

There are 3 tapes which define which exchange the ticker is listed on. These are integers in our objects which represent the letter of the alphabet. Eg: 1 = A, 2 = B, 3 = C. * Tape A is NYSE listed securities * Tape B is NYSE ARCA / NYSE American * Tape C is NASDAQ

[JsonPropertyName("z")]
public int? Tape { get; init; }

Property Value

int?

Ticker

The exchange symbol that this item is traded under.

[JsonPropertyName("T")]
public required string Ticker { get; init; }

Property Value

string

TrfTimestamp

The moment the trade reporting facility received this quote, converted from TrfTimestampNanoseconds, or null when the quote did not pass through one.

[JsonIgnore]
public Instant? TrfTimestamp { get; }

Property Value

Instant?

TrfTimestampNanoseconds

The nanosecond Unix timestamp at which the trade reporting facility received this quote, when it passed through one.

[JsonPropertyName("f")]
public long? TrfTimestampNanoseconds { get; init; }

Property Value

long?