Market on Close
Check LogicThe order is accepted if submitted at least 15 minutes before the market close. If submitted less that 15 minutes before the close, there must be an imbalance on the correct side.
Fill LogicThe order is filled at the closing print (aka 6 print) on exchange 'N' or 'A'. If the order cannot be filled at the closing price, it is cancelled. The number of shares filled is the symbol's ask_size * lot_size. If the order is partially filled, the remainder will be cancelled at the end of the simulation since there is at most one closing print for each symbol. This fill takes liquidity.
Cancel LogicThe order must be cancelled at least 15 minutes before the market close (factoring in transmission latency)