|
FastMM C++ API 0.6.0
Public headers, tier 1 and tier 2
|
#include <fastmm/core/oms.hpp>
Public Attributes | |
| Order | order {} |
| snapshot after the transition; for a recently terminal id only the terminal record's fields (id, instrument, venue, side, state, price, qty, cum_qty); empty if unknown | |
| Handle< Order > | handle {} |
| invalid once terminal (slot freed) or unknown | |
| OrderState | prev = OrderState::PendingNew |
| OmsAction | action = OmsAction::None |
| bool | known = false |
| the id mapped to an order (open or recently terminal) | |
| bool | changed = false |
| state or quantities changed | |
| bool | terminal = false |
| the order reached a terminal state in this update | |
| Qty | fill_qty {} |
| for fills | |
| Price | fill_px {} |
| Qty | missed_qty {} |
| Quantity the venue reports as filled that we never saw a fill message for (a private-stream outage covered by a cancel ack, an expiry or a reconciliation snapshot). | |
| ClientOrderId | replaced_cl_ord_id {} |
| A cancel-replace to a new id completed: the order carries on under order.cl_ord_id and this one is gone. | |
| Qty | unresolved_qty {} |
| Quantity that was still working when a reconciliation snapshot failed to mention the order. | |
| Qty | corrected_qty {} |
| Part of a replayed execution (OrderFillMsg::kReplayed) whose quantity a synthetic fill already put in the position: the execution names what it was, so its price and its fee replace the estimate rather than the quantity being counted twice. | |
| Price | synthetic_px {} |
| OrderTimes | times {} |
The order's times (Oms::times), and the pool slot it had: set on every update of an open order, the terminal one included (handle is invalid then, the slot already free). | |
| Handle< Order > | slot {} |
| Order fastmm::OmsUpdate::order {} |
snapshot after the transition; for a recently terminal id only the terminal record's fields (id, instrument, venue, side, state, price, qty, cum_qty); empty if unknown
| OrderState fastmm::OmsUpdate::prev = OrderState::PendingNew |
| OmsAction fastmm::OmsUpdate::action = OmsAction::None |
| bool fastmm::OmsUpdate::known = false |
the id mapped to an order (open or recently terminal)
| bool fastmm::OmsUpdate::changed = false |
state or quantities changed
| bool fastmm::OmsUpdate::terminal = false |
the order reached a terminal state in this update
| Qty fastmm::OmsUpdate::fill_qty {} |
for fills
| Price fastmm::OmsUpdate::fill_px {} |
| Qty fastmm::OmsUpdate::missed_qty {} |
Quantity the venue reports as filled that we never saw a fill message for (a private-stream outage covered by a cancel ack, an expiry or a reconciliation snapshot).
The engine books it as a synthetic fill at the order's own price; see Engine::book_missed_fill.
| ClientOrderId fastmm::OmsUpdate::replaced_cl_ord_id {} |
A cancel-replace to a new id completed: the order carries on under order.cl_ord_id and this one is gone.
It never produces an update of its own (the OMS renames the record in place), so anything that tracks orders by id closes it here.
| Qty fastmm::OmsUpdate::unresolved_qty {} |
Quantity that was still working when a reconciliation snapshot failed to mention the order.
The venue does not say whether it was cancelled or filled, so nothing can be booked; it is reported so the engine can say the position may be wrong instead of assuming it is not.
| Qty fastmm::OmsUpdate::corrected_qty {} |
Part of a replayed execution (OrderFillMsg::kReplayed) whose quantity a synthetic fill already put in the position: the execution names what it was, so its price and its fee replace the estimate rather than the quantity being counted twice.
synthetic_px is the price the estimate used. See Engine::on_fill and PositionTracker::correct_fill.
| Price fastmm::OmsUpdate::synthetic_px {} |
| OrderTimes fastmm::OmsUpdate::times {} |
The order's times (Oms::times), and the pool slot it had: set on every update of an open order, the terminal one included (handle is invalid then, the slot already free).