50 info.stock_locate = msg.stock_locate;
52 info.paired_shares = msg.paired_shares;
53 info.imbalance_shares = msg.imbalance_shares;
54 info.imbalance_direction = msg.imbalance_direction;
57 info.current_reference_price =
StandardPrice {msg.current_reference_price};
58 info.cross_type = msg.cross_type;
59 info.price_variation_indicator = msg.price_variation_indicator;
69 {
'B',
"Buy imbalance"},
70 {
'S',
"Sell imbalance"},
71 {
'N',
"No imbalance"},
72 {
'O',
"Insufficient orders to calculate"},
75 return directions.
at_or(direction,
"Unknown");
An immutable, compile-time lookup table from a key to a description.
constexpr auto at_or(const KeyType &key, std::string_view fallback) const noexcept -> std::string_view
Returns the description for a key, or a fallback if absent.
Compile-time lookup tables translating ITCH single- and multi-character indicator codes into human-re...
Defines every ITCH 5.0 message struct, the Message variant, and the stream-printing helpers used to f...
auto make_imbalance_info(const NOIIMessage &msg) -> ImbalanceInfo
Builds an ImbalanceInfo from a raw NOII message.
auto imbalance_direction_name(char direction) -> std::string_view
A human-readable description of an imbalance direction code.
auto to_string(const char *source, size_t size) -> std::string
Converts a fixed-width character array to a string, trimming trailing spaces and NUL characters.
Strongly typed, fixed-point price representation for ITCH price fields.
Net Order Imbalance Indicator (I): the imbalance and price-discovery data disseminated during the ope...
A usable, decoded view of a Net Order Imbalance Indicator (I) message.
std::uint16_t stock_locate
StandardPrice current_reference_price
std::uint64_t imbalance_shares
char price_variation_indicator
std::uint64_t paired_shares