Jotting this down here in case anyone else runs into the same problem.

I was generating limit orders via SubmitOrderRequest and none of them was filling in backtest.  It turns out that the default FillModel (ImmediateFillModel) uses a Timestamp filter to detect stale prices, and I was using DateTime.Now() for the timestamp when constructing the Order.

Since by its nature all of the backtest timestamps will be older than DateTime.Now() (ie. the time you start the backtest), nothing will fill.  To fix, you need to use an older timestamp for the SubmitOrderRequest that matches the Timestamp of the data itself.

Good luck.

Author