I am parsing an ITCH feed (Nasdaq) and I received an Add message (A) for firstname.lastname@example.org on the Ask.
Later I receive an Order Executed message (E), indicating 5 lots of the above order had been filled. No problem
I then receive an Order Executed at Price message (C), indicating the remaining 95 lots had been filled, but at price 105.3 (hence the purpose of this message is to convey fills which occurred at different prices to the order's original price).
How can an order be filled at a price different to which it was inserted? There are no modify messages for that order between the fills.
This is causing me a problem because i'm removing the quantity from my orderbook, but I have no orders at price 105.3, only 105.2. I don't understand why they weren't executed at 105.2? Is this some Nasdaq order type which will follow the market?
This is what the spec says for that message: