Trading and Orders
Order Events
Track Order Events
Each order generates events over its life as its status changes. Your algorithm receives these events through the OnOrderEvent
and OnAssignmentOrderEvent
methods. The OnOrderEvent
event handler receives all order events. The OnAssignmentOrderEvent
receives order events for Option assignments. The event handlers receive an OrderEvent
object, which contains information about the order status.
public override void OnOrderEvent(OrderEvent orderEvent) { var order = Transactions.GetOrderById(orderEvent.OrderId); if (orderEvent.Status == OrderStatus.Filled) { Debug($"{Time}: {order.Type}: {orderEvent}"); } } public override void OnAssignmentOrderEvent(OrderEvent assignmentEvent) { Log(assignmentEvent.ToString()); }
def OnOrderEvent(self, orderEvent: OrderEvent) -> None: order = self.Transactions.GetOrderById(orderEvent.OrderId) if orderEvent.Status == OrderStatus.Filled: self.Debug(f"{self.Time}: {order.Type}: {orderEvent}") def OnAssignmentOrderEvent(self, assignmentEvent: OrderEvent) -> None: self.Log(str(assignmentEvent))
To get a list of all OrderEvent
objects for an order, call the OrderEvents
method of the order ticket.
var orderEvents = orderTicket.OrderEvents();
order_events = order_ticket.OrderEvents()
If you don't have the order ticket, get the order ticket from the TransactionManager.