I am not a programmer but could it be because Order object is called multiple times for the same order? Just look how many order states there can be:
OrderState Values
OrderState.Initialized | Order is initialized in NinjaTrader |
---|---|
OrderState.Submitted | Order is submitted to the broker |
OrderState.Accepted | Order is accepted by the broker or exchange |
OrderState.TriggerPending | Order is pending submission |
OrderState.Working | Order is working in the exchange queue |
OrderState.ChangePending | Order change is pending in NinjaTrader |
OrderState.ChangeSubmitted | Order change is submitted to the broker |
OrderState.CancelPending | Order cancellation is pending in NinjaTrader |
OrderState.CancelSubmitted | Order cancellation is submitted to the broker |
OrderState.Cancelled | Order cancellation is confirmed by the exchange |
OrderState.Rejected | Order is rejected |
OrderState.PartFilled | Order is partially filled |
OrderState.Filled | Order is completely filled |
OrderState.Unknown | An unknown order state. Default if broker does not report current order state. |
So, if you wanted to monitor for when order was submitted you’d
_block.AppendText(“/”+e.OrderState.Submitted.ToString())