Dear QuantConnect Community,

We have reviewed how the default fill model for Equity fills the limit orders, and have made some improvements that might affect your algorithms. There are two major changes:

  1. Fill condition:
    Before: the EquityFillModel used quote information (high and low of the bid or ask) to determine whether the prices have hit the limit price.
    After: the EquityFillModel uses trade information (high and low of trades) to determine whether the prices have hit the limit price.
    Reason: bids and asks don't necessarily translate into trades, and they triggered limit prices too soon.
  2. Fill price:
    Before: the fill price was the minimum between the high and the limit price for the buy limit order, and the maximum between the low and the limit price for the sell limit order.
    After: the fill price is the limit price.
    Reason: if there is a gap in our favor, the fill price would be unrealistic and too optimistic.

 

Best regards,
Alex