// Example #1
private Order entryOrder = null;
protected override void OnBarUpdate()
{
if (entryOrder == null && Close[0] > Open[0])
EnterLong("myEntryOrder");
}
protected override void OnExecutionUpdate(Execution execution, string executionId, double price, int quantity, MarketPosition marketPosition, string orderId, DateTime time)
{
// Assign entryOrder in OnExecutionUpdate() to ensure the assignment occurs when expected.
// This is more reliable than assigning Order objects in OnBarUpdate, as the assignment is not guaranteed to be complete if it is referenced immediately after submitting
if (execution.Order.Name == "myEntryOrder" && execution.Order.OrderState == OrderState.Filled)
entryOrder = execution.order;
if (entryOrder != null && entryOrder == execution.Order)
Print(execution.ToString());
}