Skip to main content

Module reconciliation

Module reconciliation 

Source
Expand description

Execution state reconciliation.

Pure functions for bringing the engine’s local order, fill, and position state into line with what the venue reports. Called at startup (mass status) and continuously at runtime (open-order and position checks).

Public entry points:

Invariants maintained across all paths:

  1. Final position quantity matches the venue within instrument precision.
  2. Position average price matches within tolerance (default 0.01%).
  3. All generated fills preserve correct unrealized PnL.
  4. Synthetic trade_id and venue_order_id values are deterministic functions of the logical event, so restart replays dedupe.

See docs/concepts/live.md for the operator-facing description.

Structs§

FillSnapshot
Immutable snapshot of fill data for position simulation.
ReconciliationResult
Result of processing fill reports for reconciliation.
VenuePositionSnapshot
Represents a position snapshot from the venue.

Enums§

FillAdjustmentResult
Result of the fill adjustment process.

Functions§

adjust_fills_for_partial_window
Adjust fills for partial reconciliation window to handle incomplete position lifecycles.
calculate_reconciliation_price
Calculate the price needed for a reconciliation order to achieve target position.
check_position_match
Check if simulated position matches venue position within tolerance.
check_position_reconciliation
Generates the appropriate order events for an external order and order status report.
create_incremental_inferred_fill
Creates an inferred fill for the quantity difference between order and report.
create_inferred_fill
Creates an inferred fill event for reconciliation when fill reports are missing.
create_inferred_fill_for_qty
Creates an inferred fill with a specific quantity.
create_inferred_reconciliation_trade_id
Create a deterministic TradeId for an inferred reconciliation fill.
create_position_reconciliation_venue_order_id
The account_id scopes the ID to the venue account, preventing cross-account collisions where the engine would otherwise fall back to ClientOrderId::from(venue_order_id) and conflate orders from different accounts. The ts_last (venue-provided) ensures that successive reconciliation incidents with the same shape get distinct IDs, while the same logical event replayed after restart still hashes the same (venue re-reports identical ts).
create_reconciliation_accepted
Creates an OrderAccepted event for reconciliation.
create_reconciliation_canceled
Creates an OrderCanceled event for reconciliation.
create_reconciliation_expired
Creates an OrderExpired event for reconciliation.
create_reconciliation_rejected
Creates an OrderRejected event for reconciliation.
create_reconciliation_triggered
Creates an OrderTriggered event for reconciliation.
create_reconciliation_updated
Creates an OrderUpdated event for reconciliation.
create_synthetic_fill_report
Create a synthetic FillReport from a FillSnapshot.
create_synthetic_order_report
Create a synthetic OrderStatusReport from a FillSnapshot.
create_synthetic_trade_id
Create a synthetic TradeId using stable fill fields.
create_synthetic_venue_order_id
Create a synthetic VenueOrderId for a derived fill.
detect_zero_crossings
Detect zero-crossing timestamps in a sequence of fills.
generate_external_order_status_events
generate_reconciliation_order_events
Generates reconciliation events for a live order status report.
is_within_single_unit_tolerance
Checks if two decimal values are within a single unit of tolerance for the given precision.
process_mass_status_for_reconciliation
Process fill reports from a mass status for position reconciliation.
reconcile_fill_report
Creates an OrderFilled event from a FillReport.
reconcile_order_report
Reconciles an order with a venue status report, generating appropriate events.
should_reconciliation_update
Checks if the order should be updated based on quantity, price, or trigger price differences from the venue report.
simulate_position
Simulate position from chronologically ordered fills using netting logic.