Table of Contents

Struct DevTrade

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

One trade from the in-development stocks trades feed: the v3 shape with the ticker on every row and an integer size with a separate fraction in place of the decimal string.

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

Remarks

A tick-level type, so a struct (decision D4). Timestamps are stored as nanosecond long values and exposed as Instant only when read (decision D5). The route is experimental (decision D22), so this shape may change with it; the description requires SizeFraction and calls it the fractional size without naming a unit.

Properties

Conditions

A list of condition codes.

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

Property Value

int[]

CorrectionIndicator

The trade correction indicator.

[JsonPropertyName("correction")]
public long? CorrectionIndicator { get; init; }

Property Value

long?

ExchangeId

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

[JsonPropertyName("exchange")]
public int? ExchangeId { get; init; }

Property Value

int?

ParticipantTimestamp

The moment the exchange generated this trade, converted from ParticipantTimestampNanoseconds, or null when the row omits it; unlike the v3 feed, the description does not require it here.

[JsonIgnore]
public Instant? ParticipantTimestamp { get; }

Property Value

Instant?

ParticipantTimestampNanoseconds

The nanosecond accuracy Participant/Exchange Unix Timestamp. This is the timestamp of when the trade was actually generated at the exchange.

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

Property Value

long?

Price

The price of the trade. This is the actual dollar value per whole share of this trade. A trade of 100 shares with a price of $2.00 would be worth a total dollar value of $200.00.

[JsonPropertyName("price")]
public double Price { get; init; }

Property Value

double

SequenceNumber

The sequence number represents the sequence in which trade events happened. These are increasing and unique per ticker symbol, but will not always be sequential (e.g., 1, 2, 6, 9, 10, 11). Values reset after each trading session/day.

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

Property Value

long

SipTimestamp

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

[JsonIgnore]
public Instant SipTimestamp { get; }

Property Value

Instant

SipTimestampNanoseconds

The nanosecond accuracy SIP Unix Timestamp. This is the timestamp of when the SIP received this trade from the exchange which produced it.

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

Property Value

long

Size

The size of a trade (also known as volume).

[JsonPropertyName("size")]
public int Size { get; init; }

Property Value

int

SizeFraction

The fractional size of a trade (also known as volume).

[JsonPropertyName("size_fraction")]
public long SizeFraction { 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("tape")]
public int? Tape { get; init; }

Property Value

int?

Ticker

The ticker symbol.

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

Property Value

string

TradeId

The Trade ID which uniquely identifies a trade. These are unique per combination of ticker, exchange, and TRF. For example: A trade for AAPL executed on NYSE and a trade for AAPL executed on NASDAQ could potentially have the same Trade ID.

[JsonPropertyName("id")]
public string? TradeId { get; init; }

Property Value

string

TrfId

The ID for the Trade Reporting Facility where the trade took place.

[JsonPropertyName("trf_id")]
public int? TrfId { get; init; }

Property Value

int?

TrfTimestamp

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

[JsonIgnore]
public Instant? TrfTimestamp { get; }

Property Value

Instant?

TrfTimestampNanoseconds

The nanosecond accuracy TRF (Trade Reporting Facility) Unix Timestamp. This is the timestamp of when the trade reporting facility received this trade.

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

Property Value

long?