OrderUpdated
OrderUpdated records a change to an order's quantity, price, trigger price, or calculated
protection price. The execution pipeline applies it to the order, updates the Cache, and publishes
it on the MessageBus. The change can come from a trading venue, simulated matching engine, local
order emulator, or reconciliation.
Typical transition: PENDING_UPDATE -> previous status (for example ACCEPTED). Handler:
on_order_updated.
Fields
Beyond the common Python order event fields,
OrderUpdated carries:
| Field | Python type | Required/default | Description |
|---|---|---|---|
venue_order_id | VenueOrderId or None | None | The venue-assigned order identifier, if known. |
account_id | AccountId or None | None | The account associated with the order, if known. |
quantity | Quantity | Required | The order's current quantity. |
price | Price or None | None | The order's current price. |
trigger_price | Price or None | None | The order's current trigger price. |
protection_price | Price or None | None | The order's calculated protection price. |
is_quote_quantity | bool | False | If the order quantity is denominated in the quote currency. |
reconciliation | bool | Required | If generated during reconciliation. |
Example
Reading the event in a strategy handler:
def on_order_updated(self, event: OrderUpdated) -> None:
self.log.info(
f"Order {event.client_order_id} updated: qty={event.quantity} price={event.price}",
)Related guides
OrderPendingCancel
OrderPendingCancel represents a CancelOrder command having been sent to the trading venue. The ExecutionEngine applies it to the order, updates the Cache...
OrderModifyRejected
OrderModifyRejected records that a ModifyOrder command was rejected. The ExecutionEngine applies it to the order, updates the Cache, and publishes it on the...