FastMM documentation
FastMM C++ API 0.6.0
Public headers, tier 1 and tier 2
Loading...
Searching...
No Matches
fastmm::OrderFillMsg Struct Reference

#include <fastmm/core/messages.hpp>

Public Attributes

EventHeader hdr
 
ClientOrderId cl_ord_id
 
VenueOrderId venue_order_id
 
ExecId exec_id
 dedupe key
 
std::uint8_t pad0_ [6]
 
Price price
 
Qty qty
 this execution
 
Qty cum_qty
 cumulative after this execution (0 with kReplayed: the venue did not say)
 
Qty leaves_qty
 
Notional fee
 >= 0 paid, < 0 rebate; in units of fee_asset
 
Side side
 
Liquidity liquidity
 
FeeAsset fee_asset
 Quote: fee is a quote amount; Base: base units; Other: not convertible.
 
std::uint8_t flags
 kReplayed, kUnresolved
 
std::uint8_t pad_ [52]
 

Static Public Attributes

static constexpr std::uint8_t kReplayed = 1U << 0
 The execution comes from the venue's trade history (Venue::request_executions), not from the private stream: it may already have been booked, so cum_qty and leaves_qty are not reported and the OMS works out how much of it is new (Oms::on_fill, OmsUpdate::corrected_qty).
 
static constexpr std::uint8_t kUnresolved = 1U << 1
 A replayed execution naming no order whose order the connector could not look up yet and will ask for again (ReplayScheduler): a later copy with the same exec_id names it, or, once the connector gives up, a last copy without this flag says it never will.
 

Member Data Documentation

◆ kReplayed

constexpr std::uint8_t fastmm::OrderFillMsg::kReplayed = 1U << 0
staticconstexpr

The execution comes from the venue's trade history (Venue::request_executions), not from the private stream: it may already have been booked, so cum_qty and leaves_qty are not reported and the OMS works out how much of it is new (Oms::on_fill, OmsUpdate::corrected_qty).

◆ kUnresolved

constexpr std::uint8_t fastmm::OrderFillMsg::kUnresolved = 1U << 1
staticconstexpr

A replayed execution naming no order whose order the connector could not look up yet and will ask for again (ReplayScheduler): a later copy with the same exec_id names it, or, once the connector gives up, a last copy without this flag says it never will.

fastmm-gateway holds it back from every strategy until then; an engine books it as any fill naming no order.

◆ hdr

EventHeader fastmm::OrderFillMsg::hdr

◆ cl_ord_id

ClientOrderId fastmm::OrderFillMsg::cl_ord_id

◆ venue_order_id

VenueOrderId fastmm::OrderFillMsg::venue_order_id

◆ exec_id

ExecId fastmm::OrderFillMsg::exec_id

dedupe key

◆ pad0_

std::uint8_t fastmm::OrderFillMsg::pad0_[6]

◆ price

Price fastmm::OrderFillMsg::price

◆ qty

Qty fastmm::OrderFillMsg::qty

this execution

◆ cum_qty

Qty fastmm::OrderFillMsg::cum_qty

cumulative after this execution (0 with kReplayed: the venue did not say)

◆ leaves_qty

Qty fastmm::OrderFillMsg::leaves_qty

◆ fee

Notional fastmm::OrderFillMsg::fee

>= 0 paid, < 0 rebate; in units of fee_asset

◆ side

Side fastmm::OrderFillMsg::side

◆ liquidity

Liquidity fastmm::OrderFillMsg::liquidity

◆ fee_asset

FeeAsset fastmm::OrderFillMsg::fee_asset

Quote: fee is a quote amount; Base: base units; Other: not convertible.

◆ flags

std::uint8_t fastmm::OrderFillMsg::flags

kReplayed, kUnresolved

◆ pad_

std::uint8_t fastmm::OrderFillMsg::pad_[52]