What causes an IOC order to be sent at an unmarketable price?

There are many possible reasons that an order might be sent at a price that is not available in the market, some arising from the infrastructure and some more business-related.
Leaving aside straight-up errors such as code bugs and strategy design flaws, the most likely business reason for targeting a currently-unfillable price is for predictive reasons: a strategy may have detected a trend or other cross-correlation in market-data and other information sources, and may be targeting where it incorrectly expects or estimates the market will be by the time the order arrives. Other potential reasons for sending unfillable orders, such as the manipulative practices of layering and spoofing, are mostly ruled out by the nature of IOCs - if they are not marketable, then they leave no trace in the market.

Common infrastructure reasons for an IOC being sent at an unmarketable price include:

  • The order was generated from stale or delayed market data
  • The strategy was slow to compute the decision logic triggering the order
  • The OMS was slow to execute the decision to trade and transmit the order