9#include "fastmm/core/config_macros.hpp"
12#include "fastmm/core/fixed_string.hpp"
33static_assert(
sizeof(
Level) == 16 && std::is_trivially_copyable_v<Level>);
36 enum Flags : std::uint8_t {
69static_assert(std::is_trivially_copyable_v<EventHeader>);
77 std::uint32_t len =
static_cast<std::uint32_t
>(
sizeof(M)))
noexcept {
78 static_assert(std::is_trivially_copyable_v<M>);
79 FASTMM_ASSERT(len % 64 == 0 && len >=
sizeof(EventHeader));
80 m.hdr = EventHeader{};
85 m.hdr.instrument = inst;
106 [[nodiscard]]
static constexpr std::uint32_t
size_for(std::uint32_t
bids,
108 const std::uint32_t raw =
110 return (raw + 63U) & ~63U;
115 [[nodiscard]]
const Level*
levels() const noexcept {
116 return reinterpret_cast<const Level*
>(
reinterpret_cast<const std::byte*
>(
this) +
119 [[nodiscard]] std::span<const Level>
bids() const noexcept {
return {
levels(),
bid_count}; }
120 [[nodiscard]] std::span<const Level>
asks() const noexcept {
129static_assert(
sizeof(BookDeltaMsg) == 96 &&
alignof(BookDeltaMsg) == 8);
131[[nodiscard]]
constexpr std::uint8_t
truncation_flags(
bool bids,
bool asks)
noexcept {
147static_assert(
sizeof(
TradeMsg) == 128);
349 static constexpr std::uint8_t
kMark = 1U << 0;
350 static constexpr std::uint8_t
kIndex = 1U << 1;
380 std::uint8_t
pad_[40];
382static_assert(
sizeof(
TimerMsg) == 128);
389 std::uint8_t
pad_[48];
405 std::uint8_t
pad_[16];
407static_assert(
sizeof(
ControlLimitsMsg) == 192 && std::is_trivially_copyable_v<ControlLimitsMsg>);
421 std::uint8_t
pad_[39];
424 std::is_trivially_copyable_v<ControlUnderlyingMsg>);
443 std::uint8_t
pad_[47];
446 std::is_trivially_copyable_v<ControlTransferMsg>);
459 std::uint8_t
pad_[56];
494 std::uint8_t
pad_[15];
508 std::uint8_t
pad_[8];
534 [[nodiscard]]
static constexpr std::uint32_t
size_for(std::uint32_t n)
noexcept {
535 return 128 + (n + 63) / 64 * 64;
537 [[nodiscard]]
const std::byte*
data() const noexcept {
538 return reinterpret_cast<const std::byte*
>(
this) + 128;
541static_assert(
sizeof(StrategyStateMsg) == 128);
552static_assert(
sizeof(
StatePosition) == 24 && std::is_trivially_copyable_v<StatePosition>);
562 std::uint8_t
pad_[55];
580 enum class Origin : std::uint8_t {
596 [[nodiscard]] std::string_view
source_view() const noexcept {
602 void set_source(std::string_view s)
noexcept {
604 for (std::size_t i = 0; i <
kSourceLen; ++i)
source[i] = i < n ? s[i] :
'\0';
607static_assert(
sizeof(ParamUpdateMsg) == 448 && std::is_trivially_copyable_v<ParamUpdateMsg>);
608static_assert(offsetof(ParamUpdateMsg, count) == 64 && offsetof(ParamUpdateMsg, origin) == 68 &&
609 offsetof(ParamUpdateMsg, field) == 80 && offsetof(ParamUpdateMsg, source) == 144 &&
610 offsetof(ParamUpdateMsg, value) == 192);
623 std::uint8_t
pad_[36];
631 std::uint8_t
pad_[15];
643 std::uint8_t
pad_[48];
655 std::uint8_t
pad_[39];
669 std::uint8_t
pad_[31];
679 std::uint8_t
pad_[48];
689 std::uint8_t
pad_[32];
702 std::is_same_v<
decltype(M::hdr), EventHeader> &&
alignof(M) <= 64;
721template <MessageLike M>
723 return *
reinterpret_cast<const M*
>(h);
Definition messages.hpp:701
Every message: trivially copyable with the EventHeader first.
Definition messages.hpp:698
Fixed<Tag>: int64 fixed point with a global 1e-8 scale (ADR-0001).
Definition strategy.hpp:16
constexpr std::uint8_t kMessageVersion
Definition messages.hpp:27
OrderType
Definition enums.hpp:23
OrderState
Definition enums.hpp:79
constexpr std::string_view kFundingIdPrefix
A funding id in the list of venue ids a restarted session's store already holds (store::Recovery::Ven...
Definition messages.hpp:369
ConnState
Definition enums.hpp:404
FixedString< 40 > VenueOrderId
Definition strong_id.hpp:42
EventType
Message discriminator carried in EventHeader::type.
Definition enums.hpp:300
RejectReason
Ordered exactly like RiskEngine::check_new evaluates them (5.7), followed by OMS / transport / venue ...
Definition enums.hpp:123
constexpr std::uint64_t kTripKillPlannedStop
ControlCommand::TripKill's arg for a stop that was asked for (fastmm-live's --duration,...
Definition messages.hpp:393
constexpr void init_header(M &m, EventType type, InstrumentId inst={}, VenueId venue={}, std::uint32_t len=static_cast< std::uint32_t >(sizeof(M))) noexcept
For fixed-size messages len defaults to sizeof(M); BookDeltaMsg passes size_for().
Definition messages.hpp:75
Side
Definition enums.hpp:12
FeeAsset
The asset a fill's commission is charged in.
Definition enums.hpp:432
constexpr std::uint32_t kMaxMsgBytes
Definition messages.hpp:692
constexpr std::uint32_t kMaxBookLevelsPerMsg
Largest fixed-size message; BookDelta is bounded separately by kMaxBookLevelsPerMsg.
Definition messages.hpp:691
BookDeltaMsg BookSnapshotMsg
same layout; hdr.type == BookSnapshot, kSnapshot set
Definition messages.hpp:138
FASTMM_FORCE_INLINE const M & msg_cast(const EventHeader *h) noexcept
Definition messages.hpp:719
constexpr std::uint8_t truncation_flags(bool bids, bool asks) noexcept
The header flags of a delta whose bids and/or asks kept only the levels nearest the touch.
Definition messages.hpp:132
FixedString< 40 > ExecId
Definition strong_id.hpp:44
TimeInForce
Definition enums.hpp:36
Liquidity
Definition enums.hpp:434
ControlCommand
Definition enums.hpp:447
StrongId< struct VenueTag, std::uint8_t > VenueId
Definition strong_id.hpp:39
RiskLimits: the pre-trade limits a session runs with ([risk] in the configuration),...
Strongly typed identifiers.
The account's holding of one asset on one venue (EventType::Balance), as the venue reports it at its ...
Definition messages.hpp:315
Notional locked
72
Definition messages.hpp:322
static constexpr std::uint8_t kSnapshotEnd
Definition messages.hpp:317
static constexpr std::uint8_t kSnapshot
Definition messages.hpp:316
static constexpr std::uint8_t kWithdrawable
Definition messages.hpp:319
Notional equity
88
Definition messages.hpp:324
EventHeader hdr
Definition messages.hpp:320
Notional free
64
Definition messages.hpp:321
Notional total
80
Definition messages.hpp:323
FixedString< 8 > asset
104 -> 113
Definition messages.hpp:326
Notional maintenance
96
Definition messages.hpp:325
static constexpr std::uint8_t kAccount
Definition messages.hpp:318
Notional withdrawable
120, with kWithdrawable
Definition messages.hpp:329
std::uint8_t pad_[6]
-> 120
Definition messages.hpp:328
std::uint8_t flags
113
Definition messages.hpp:327
Bids then asks follow the fixed part as a flexible array of Level (bid_count + ask_count).
Definition messages.hpp:99
EventHeader hdr
Definition messages.hpp:100
static constexpr std::uint32_t size_for(std::uint32_t bids, std::uint32_t asks) noexcept
Definition messages.hpp:107
std::uint64_t first_update_id
Binance U.
Definition messages.hpp:103
std::uint32_t bid_count
Definition messages.hpp:101
std::uint64_t last_update_id
Binance u / Bybit u.
Definition messages.hpp:104
bool is_snapshot() const noexcept
Definition messages.hpp:126
Level * levels() noexcept
Definition messages.hpp:113
std::span< const Level > bids() const noexcept
Definition messages.hpp:120
std::uint32_t ask_count
Definition messages.hpp:102
std::uint64_t prev_update_id
Binance futures pu (0 if n/a)
Definition messages.hpp:105
std::span< const Level > asks() const noexcept
Definition messages.hpp:121
Definition messages.hpp:150
Qty ask_qty
Definition messages.hpp:155
Price ask_px
Definition messages.hpp:154
std::uint8_t pad_[32]
Definition messages.hpp:156
Price bid_px
Definition messages.hpp:152
Qty bid_qty
Definition messages.hpp:153
EventHeader hdr
Definition messages.hpp:151
Definition messages.hpp:452
ConnState state
Definition messages.hpp:454
EventHeader hdr
Definition messages.hpp:453
std::uint8_t channel
0 = market data, 1 = order/user stream
Definition messages.hpp:455
std::uint8_t pad_[56]
Definition messages.hpp:458
std::uint8_t pad0_[2]
Definition messages.hpp:456
std::int32_t reason_code
Definition messages.hpp:457
ControlCommand::SetLimits: a ControlMsg with the new limits after it.
Definition messages.hpp:398
RiskLimits limits
Definition messages.hpp:403
EventHeader hdr
Definition messages.hpp:399
std::uint8_t pad0_[7]
Definition messages.hpp:401
ControlCommand command
Definition messages.hpp:400
std::uint64_t arg
Definition messages.hpp:402
std::uint8_t pad_[16]
Definition messages.hpp:404
Definition messages.hpp:383
std::uint8_t pad_[48]
Definition messages.hpp:388
ControlCommand command
Definition messages.hpp:385
EventHeader hdr
Definition messages.hpp:384
std::uint64_t arg
Definition messages.hpp:387
std::uint8_t pad0_[7]
Definition messages.hpp:386
ControlCommand::Transfer: one step of a pool treasury's transfer (core/treasury.hpp),...
Definition messages.hpp:430
std::uint64_t arg
Definition messages.hpp:438
VenueId to
Definition messages.hpp:436
ControlCommand command
Definition messages.hpp:432
VenueId from
Definition messages.hpp:435
std::uint8_t state
TransferState of the venue's answer; Unknown without one.
Definition messages.hpp:434
std::uint8_t pad0_[3]
Definition messages.hpp:437
FixedString< 8 > asset
80
Definition messages.hpp:439
FixedString< 23 > venue_ref
121: the venue's id of the transfer
Definition messages.hpp:441
std::uint8_t pad_[47]
145 -> 192
Definition messages.hpp:442
std::uint8_t event
TreasuryEventKind: planned (dry run), sent, done, failed, timed out.
Definition messages.hpp:433
FixedString< 31 > client_id
89
Definition messages.hpp:440
EventHeader hdr
Definition messages.hpp:431
ControlCommand::SetUnderlyingLimit: a ControlMsg whose arg is the new max_net (raw Qty,...
Definition messages.hpp:413
ControlCommand command
Definition messages.hpp:415
std::uint8_t pad_[39]
Definition messages.hpp:420
FixedString< 8 > name
Definition messages.hpp:419
EventHeader hdr
Definition messages.hpp:414
std::uint8_t pad0_[6]
Definition messages.hpp:417
std::uint64_t arg
Definition messages.hpp:418
std::uint8_t underlying
Definition messages.hpp:416
Journal only (format v2): the engine clock as an absolute value.
Definition messages.hpp:556
Timestamp engine_ts
Definition messages.hpp:559
std::uint8_t pad_[55]
Definition messages.hpp:561
EventHeader hdr
Definition messages.hpp:558
Kind
Definition messages.hpp:557
Kind kind
Definition messages.hpp:560
A perpetual funding payment the venue booked on the account's position in hdr.instrument (EventType::...
Definition messages.hpp:286
std::uint8_t flags
122 kReplayed
Definition messages.hpp:293
FixedString< 8 > asset
113 -> 122
Definition messages.hpp:292
ExecId funding_id
72 -> 113
Definition messages.hpp:291
static constexpr std::uint8_t kReplayed
From the venue's history (Venue::request_executions), not the private stream.
Definition messages.hpp:288
EventHeader hdr
Definition messages.hpp:289
std::uint8_t pad_[5]
-> 128
Definition messages.hpp:294
Notional amount
64
Definition messages.hpp:290
Definition messages.hpp:497
std::uint8_t pad_[8]
Definition messages.hpp:507
std::int64_t max_ns
Definition messages.hpp:506
std::int64_t p90_ns
Definition messages.hpp:503
EventHeader hdr
Definition messages.hpp:498
std::int64_t p99_ns
Definition messages.hpp:504
std::uint8_t pad0_[7]
Definition messages.hpp:500
std::uint64_t count
Definition messages.hpp:501
std::int64_t p999_ns
Definition messages.hpp:505
std::uint8_t interval
LatencyInterval index.
Definition messages.hpp:499
std::int64_t p50_ns
Definition messages.hpp:502
One price level. Shared by book messages and the L2 book.
Definition messages.hpp:30
constexpr bool operator==(const Level &) const noexcept=default
Price price
Definition messages.hpp:31
Qty qty
Definition messages.hpp:32
Options ticker (EventType::OptionTicker): the venue's mark, implied volatilities and greeks for one o...
Definition messages.hpp:167
double vega
128
Definition messages.hpp:177
double ask_iv
104
Definition messages.hpp:174
std::uint8_t pad_[32]
160
Definition messages.hpp:181
Price index_price
80
Definition messages.hpp:171
double delta
112
Definition messages.hpp:175
EventHeader hdr
Definition messages.hpp:168
double gamma
120
Definition messages.hpp:176
Price underlying_price
72
Definition messages.hpp:170
double theta
136
Definition messages.hpp:178
double bid_iv
96
Definition messages.hpp:173
double mark_iv
88
Definition messages.hpp:172
double rho
144
Definition messages.hpp:179
Price mark_price
64
Definition messages.hpp:169
double interest_rate
152 annualised decimal
Definition messages.hpp:180
Definition messages.hpp:188
std::uint8_t flags
Definition messages.hpp:197
static constexpr std::uint8_t kAmendedInPlace
The venue amended the resting order in place (Binance Spot order.amend.keepPriority,...
Definition messages.hpp:192
VenueOrderId venue_order_id
Definition messages.hpp:196
ClientOrderId cl_ord_id
Definition messages.hpp:195
std::uint8_t pad_[14]
Definition messages.hpp:198
EventHeader hdr
Definition messages.hpp:194
Definition messages.hpp:646
EventHeader hdr
Definition messages.hpp:647
Price price
Definition messages.hpp:649
Qty qty
Definition messages.hpp:650
std::uint8_t pad_[39]
Definition messages.hpp:652
Side side
Definition messages.hpp:651
std::uint64_t order_ref
Definition messages.hpp:648
Definition messages.hpp:213
Qty cum_qty
filled before the cancel took effect
Definition messages.hpp:218
VenueOrderId venue_order_id
Definition messages.hpp:216
std::uint8_t pad0_[7]
Definition messages.hpp:217
EventHeader hdr
Definition messages.hpp:214
ClientOrderId cl_ord_id
Definition messages.hpp:215
Definition messages.hpp:672
std::uint8_t pad_[48]
Definition messages.hpp:676
EventHeader hdr
Definition messages.hpp:673
std::uint64_t order_ref
Definition messages.hpp:674
Qty canceled_qty
zero -> delete the whole order
Definition messages.hpp:675
Definition messages.hpp:222
EventHeader hdr
Definition messages.hpp:223
ClientOrderId cl_ord_id
Definition messages.hpp:224
std::int32_t venue_code
Definition messages.hpp:227
FixedString< 40 > text
Definition messages.hpp:228
std::uint8_t pad0_[3]
Definition messages.hpp:226
RejectReason reason
VenueUnknownOrder => the venue has no such order.
Definition messages.hpp:225
std::uint8_t pad_[7]
Definition messages.hpp:229
Definition messages.hpp:656
Price exec_price
zero -> at the order's price
Definition messages.hpp:663
std::uint64_t match_id
Definition messages.hpp:664
std::uint8_t exec_flags
Definition messages.hpp:665
bool printable() const noexcept
Definition messages.hpp:668
std::uint64_t order_ref
Definition messages.hpp:661
EventHeader hdr
Definition messages.hpp:660
static constexpr std::uint8_t kNonPrintable
exec_flags. Zero (E, and records written before the field existed) is a printable execution.
Definition messages.hpp:658
Qty exec_qty
Definition messages.hpp:662
std::uint8_t pad_[31]
Definition messages.hpp:666
Definition messages.hpp:261
ClientOrderId cl_ord_id
Definition messages.hpp:263
VenueOrderId venue_order_id
Definition messages.hpp:264
Qty cum_qty
Definition messages.hpp:266
EventHeader hdr
Definition messages.hpp:262
std::uint8_t pad0_[7]
Definition messages.hpp:265
Definition messages.hpp:233
ExecId exec_id
dedupe key
Definition messages.hpp:246
std::uint8_t pad_[52]
Definition messages.hpp:257
FeeAsset fee_asset
Quote: fee is a quote amount; Base: base units; Other: not convertible.
Definition messages.hpp:255
static constexpr std::uint8_t kReplayed
The execution comes from the venue's trade history (Venue::request_executions), not from the private ...
Definition messages.hpp:237
Qty leaves_qty
Definition messages.hpp:251
Liquidity liquidity
Definition messages.hpp:254
Qty cum_qty
cumulative after this execution (0 with kReplayed: the venue did not say)
Definition messages.hpp:250
Notional fee
>= 0 paid, < 0 rebate; in units of fee_asset
Definition messages.hpp:252
std::uint8_t flags
kReplayed, kUnresolved
Definition messages.hpp:256
std::uint8_t pad0_[6]
Definition messages.hpp:247
VenueOrderId venue_order_id
Definition messages.hpp:245
EventHeader hdr
Definition messages.hpp:243
Side side
Definition messages.hpp:253
ClientOrderId cl_ord_id
Definition messages.hpp:244
Price price
Definition messages.hpp:248
static constexpr std::uint8_t kUnresolved
A replayed execution naming no order whose order the connector could not look up yet and will ask for...
Definition messages.hpp:242
Qty qty
this execution
Definition messages.hpp:249
Definition messages.hpp:202
EventHeader hdr
Definition messages.hpp:203
FixedString< 40 > text
Definition messages.hpp:208
std::int32_t venue_code
Definition messages.hpp:207
ClientOrderId cl_ord_id
Definition messages.hpp:204
std::uint8_t pad_[7]
Definition messages.hpp:209
std::uint8_t pad0_[3]
Definition messages.hpp:206
RejectReason reason
Definition messages.hpp:205
Definition messages.hpp:680
std::uint64_t old_order_ref
Definition messages.hpp:682
Price price
Definition messages.hpp:684
std::uint8_t pad_[32]
Definition messages.hpp:686
std::uint64_t new_order_ref
Definition messages.hpp:683
EventHeader hdr
Definition messages.hpp:681
Qty qty
Definition messages.hpp:685
Definition messages.hpp:625
EventHeader hdr
Definition messages.hpp:626
VenueOrderId venue_order_id
may be empty if not yet acked
Definition messages.hpp:628
std::uint8_t pad_[15]
Definition messages.hpp:629
ClientOrderId cl_ord_id
Definition messages.hpp:627
Definition messages.hpp:612
std::uint8_t reduce_only
Definition messages.hpp:620
Price price
Definition messages.hpp:615
Qty qty
Definition messages.hpp:616
OrderType type
Definition messages.hpp:618
ClientOrderId cl_ord_id
Definition messages.hpp:614
std::uint8_t pad_[36]
Definition messages.hpp:621
Side side
Definition messages.hpp:617
TimeInForce tif
Definition messages.hpp:619
EventHeader hdr
Definition messages.hpp:613
Definition messages.hpp:633
Qty qty
Definition messages.hpp:640
ClientOrderId cl_ord_id
new id
Definition messages.hpp:635
ClientOrderId orig_cl_ord_id
order being replaced
Definition messages.hpp:636
std::uint8_t pad0_[7]
Definition messages.hpp:638
EventHeader hdr
Definition messages.hpp:634
Price price
Definition messages.hpp:639
VenueOrderId venue_order_id
Definition messages.hpp:637
std::uint8_t pad_[48]
Definition messages.hpp:641
New strategy parameter values (ADR-0013): up to kMaxFields (field index, raw value) pairs,...
Definition messages.hpp:574
Origin
Definition messages.hpp:579
@ Strategy
the strategy's own publisher (a slow tier, a model), or not recorded
@ Control
the control socket (fastmm-ctl param)
std::uint32_t count
pairs used
Definition messages.hpp:585
std::uint8_t pad1_[8]
Definition messages.hpp:591
bool all_instruments() const noexcept
Definition messages.hpp:594
std::int64_t value[kMaxFields]
raw value of each pair
Definition messages.hpp:592
std::uint16_t field[kMaxFields]
schema index of each pair
Definition messages.hpp:589
std::uint8_t pad0_[3]
Definition messages.hpp:587
static constexpr std::size_t kMaxFields
Definition messages.hpp:575
static constexpr InstrumentId kAllInstruments
hdr.instrument of an update for every instrument: the invalid id.
Definition messages.hpp:578
void set_source(std::string_view s) noexcept
Copies s into source, cut to kSourceLen - 1 bytes.
Definition messages.hpp:601
static constexpr std::size_t kSourceLen
source, NUL-terminated
Definition messages.hpp:576
Origin origin
Definition messages.hpp:586
std::string_view source_view() const noexcept
Definition messages.hpp:595
char source[kSourceLen]
who asked for it, e.g. "manual", "scheduled:drain"
Definition messages.hpp:590
std::uint64_t publish_seq
the publisher's sequence number, from 1
Definition messages.hpp:588
EventHeader hdr
Definition messages.hpp:584
The venue's reference prices and funding of one derivative (EventType::PerpState),...
Definition messages.hpp:348
Duration funding_interval
88
Definition messages.hpp:357
std::uint8_t pad_[15]
-> 128
Definition messages.hpp:361
static constexpr std::uint8_t kOpenInterest
Definition messages.hpp:352
Price mark_price
64
Definition messages.hpp:354
Qty open_interest
104
Definition messages.hpp:359
Timestamp next_funding
96
Definition messages.hpp:358
EventHeader hdr
Definition messages.hpp:353
Price index_price
72
Definition messages.hpp:355
static constexpr std::uint8_t kMark
Definition messages.hpp:349
double funding_rate
80
Definition messages.hpp:356
static constexpr std::uint8_t kFunding
Definition messages.hpp:351
static constexpr std::uint8_t kIndex
Definition messages.hpp:350
std::uint8_t fields
112
Definition messages.hpp:360
Definition messages.hpp:270
Notional unrealized
Definition messages.hpp:275
std::uint8_t pad_[24]
Definition messages.hpp:277
EventHeader hdr
Definition messages.hpp:271
Qty qty
signed net position
Definition messages.hpp:272
Price avg_px
Definition messages.hpp:273
Notional realized
Definition messages.hpp:274
Notional fees
Definition messages.hpp:276
Definition position.hpp:20
Control thread injects the venue's view after a reconnect (5.8).
Definition messages.hpp:469
std::uint8_t pad1_[7]
Definition messages.hpp:485
EventHeader hdr
Definition messages.hpp:478
std::uint8_t pad_[15]
Definition messages.hpp:493
Qty cum_qty
Definition messages.hpp:488
Kind kind
Definition messages.hpp:479
Side side
Definition messages.hpp:480
std::uint8_t flags
Kind::Begin: kSentWatermark.
Definition messages.hpp:492
ClientOrderId sent_watermark
Kind::Begin, valid with kSentWatermark.
Definition messages.hpp:491
Kind
Definition messages.hpp:470
OrderState state
Definition messages.hpp:481
Price price
Definition messages.hpp:486
static constexpr std::uint8_t kExecutionsExact
Begin: every execution the venue made since the last one the engine booked was replayed before this s...
Definition messages.hpp:477
static constexpr std::uint8_t kSentWatermark
Definition messages.hpp:471
Qty position_qty
Kind::Position.
Definition messages.hpp:489
ClientOrderId cl_ord_id
Definition messages.hpp:483
VenueOrderId venue_order_id
Definition messages.hpp:484
std::uint8_t pad0_[5]
Definition messages.hpp:482
Price avg_px
Kind::Position.
Definition messages.hpp:490
Qty orig_qty
Definition messages.hpp:487
Definition risk_limits.hpp:17
One instrument's position in a StrategyStateMsg's kPositionsPart: on the account (venue) whose Reconc...
Definition messages.hpp:544
std::uint8_t venue
Definition messages.hpp:546
std::int64_t avg_px_raw
Definition messages.hpp:549
std::int64_t qty_raw
Definition messages.hpp:548
std::uint32_t instrument
Definition messages.hpp:545
std::uint8_t pad_[3]
Definition messages.hpp:547
Journal only: what a replay or a backtest over the journal can start from.
Definition messages.hpp:518
std::uint32_t bytes
after the head
Definition messages.hpp:528
std::uint64_t id
Definition messages.hpp:525
EventHeader hdr
Definition messages.hpp:524
static constexpr std::uint8_t kAccepted
Definition messages.hpp:522
Kind kind
Definition messages.hpp:529
static constexpr std::uint8_t kStatePart
Definition messages.hpp:520
static constexpr std::uint32_t size_for(std::uint32_t n) noexcept
Definition messages.hpp:533
std::uint32_t total
bytes of the part
Definition messages.hpp:526
const std::byte * data() const noexcept
Definition messages.hpp:536
std::uint8_t part
Definition messages.hpp:530
std::uint8_t flags
Definition messages.hpp:531
static constexpr std::uint32_t kChunkBytes
Definition messages.hpp:523
Kind
Definition messages.hpp:519
static constexpr std::uint8_t kPositionsPart
Definition messages.hpp:521
std::uint8_t pad_[37]
Definition messages.hpp:532
std::uint32_t offset
of this record's bytes in the part
Definition messages.hpp:527
constexpr bool valid() const noexcept
Definition strong_id.hpp:31
Definition messages.hpp:372
std::uint64_t user_data
Definition messages.hpp:377
std::uint8_t engine
1: the engine's own timer (max_param_age), not the strategy's
Definition messages.hpp:375
TimerId timer_id
Definition messages.hpp:374
Timestamp fire_ts
Definition messages.hpp:378
std::uint8_t pad0_[3]
Definition messages.hpp:376
EventHeader hdr
Definition messages.hpp:373
std::uint8_t pad_[40]
Definition messages.hpp:379
Definition messages.hpp:140
std::uint8_t pad_[39]
Definition messages.hpp:146
EventHeader hdr
Definition messages.hpp:141
Price price
Definition messages.hpp:142
Side aggressor
Definition messages.hpp:145
std::uint64_t trade_id
Definition messages.hpp:144
Qty qty
Definition messages.hpp:143