Fills Problem Resolved

This morning some of you reported “bad” fills on limit orders.

For example, one person entered an order to buy @ limit 76.75. Then the market opened at 9:30 this morning with a price of 76.53. The vendor was surprised when the system filled him at 76.75.

This wasn’t a bug. This was a new feature. No, seriously.

This new filling algorithm was an attempt to provide more realistic fills so that users shopping for a trading system can judge what kind of profits and losses he will really experience using the trading signals provided by C2-Certified System Vendors. The new filling algorithm was added on Friday, and kicked in today.

Due to your complaints, I have abandoned it, for now. But let me explain the thinking behind it, and ask for your comments.

To return to the example above, it is indeed true that the market traded at 76.53 at 9:30 am today. That means there was an Offer at 76.53.

But if you were following the trading advice proposed by the system vendor above (that is, if you entered an order to buy at limit 76.75) where would you have been filled? The answer is not obvious. You would have first cleared all Asks below 76.75. So you might have filled 100 shares at 76.53 (maybe that was the size of the offer). Then you would have kept buying and meeting any offer that was already posted, up to and including 76.75.

The software needed to analyze this and provide realistic fill simulations is fairly advanced (you need to look at the market depth at a given moment in time). It also will require quite a bit more processing power. So I will put this on ice for a little while, as I work on other things - like, for example, turning on the new, faster, server (coming soon).

But I promise to return to this issue soon. I think it is very important that Collective2 provide the most accurate fill simulation possible. If that means I need to invest in faster computers, additional quote services, and better software, so be it. I will. Just give me a little time to get other things under control first.

In the meantime, I have reverted back to the old (pre-Friday) fill algorithm. That is, if you enter an order to buy @ limit 76.75, and the market opens at 76.53, the system assumes you would have received that entire fill at that opening price of 76.53. But you wouldn’t, not in real life. Caveat emptor.

More later.