Trading Volume Issue

I’ve received a lot of feedback (very polite word for angry emails) about realistic trade fills.

When I started programming Collective2, my philosophy was to be “generous” with trade fills. That is, if you put in a limit order to buy a stock at 99, and if the market touches 99, for even an instant, your trade will be “filled” on Collective2.

But this leads to certain problems. Many stocks (and certainly most options) are thinly traded. For example, the bid for a stock may touch 99, but the trading volume at that price may be only 3 shares. In other words, in real life, a subscriber to a trading system that recommended the “Buy at limit 99” would almost certainly never be able to buy the stock in question for 99.

As Collective2 has grown, and as I’ve fixed most of the problems regarding fill executions, it seems more important than ever for me to address this issue.

Which raises the following question. How much trading volume should be required before Collective2 recognizes a fill as being executable? If you recommend to your subscribers that they buy 1,000 shares of stock XYZ at limit 99, what volume should Collective2 consider necessary for that fill to be hit? If I look for only a volume of 1,000, one of your subscribers might get filled. But certainly many of your subscribers would not get filled in real life.

I’m asking for your feedback, because I know that - whatever formula I choose - I will receive a lot of complaints from system owners that will say something like, "But I would have been filled in real life! Why didn’t Collective2 fill me?"

To avoid those emails, let’s discuss it now. What trading volume should be required for a trade to be executed? I’m tempted to say 2X or 3X your recommended order size. For example, if you tell your subscribers to buy 1,000 shares of something at a certain price, then Collective2 will only fill that order if it sees a volume of at least 3,000 in the real-life markets at that price.

Your suggestions and thoughts are welcome.


The way I see it, collective2 should filled all order base on the bid/ask quote. I see 2 main reasons for this. One, in real life we can usually get filled at a price between the bid & ask price (especially with options or at least I always get filled on my multi-leg spread orders this way), therefore filling a buy order at the ask and sell order at the bid is good enough (subscribers should be able to get filled in real life).

Second, the volume may be small because no one else want that particular order. Not necessarily that the MM won’t fill larger volume for the same price. Besides, if the bid/ask hit a limit order, then the broker is suppose to filled us on the order. I know I would definitely call my broker up if they can’t filled a limit buy order when the ask price matches my limit order. If they still can’t do anything about it, then they won’t be my broker for very long.

This is of course just my take. The decision is still yours to make.

Particularly in the case of options, the bid-ask is sort of phony since the bid-size and ask-size are typically so small compared to overall trade volume. So, yes, you can see a posted price of .20-.30, but if you put in order to buy, say, 90 or 120 lots at .20, you will only be assured of a fill of just 10 lots (or whatever that ask size was).

I’m not saying anything new or interesting here. This really comes down to a philosophical issue about the nature of this Web site.

If you think (as I do) that the purpose of this site is to give trading-system subscribers a completely objective way to evaluate systems, so that they know that, if they follow the trading signals they subscribe to, they will get exactly the same results as are posted here - then we will want Collective2 to somehow evaluate the likelihood of a trade being filled.

In contrast, if you think that the purpose of the site is to give system vendors a way to paper-trade and test their mettle, then you will want to give every trading system vendor the benefit of the doubt and fill him on each and every trade.

Regarding mechanics: I think the only way to evaluate whether a trade is filled is to compare the trade size at a particular price with the daily volume figure. In other words, if we see that during the course of the day, only 10 lots of option XXY are traded at .25, out of a total of 2,000, then a system vendor’s recommendation to buy 100 lots at .25 is really unlikely to get filled in real life.

Or something like that.

I don’t necessarily think it makes sense to use the same fill algorithm for all types of security. I’m mainly interested in S&P500 e-mini futures. For these I think a limit order should be considered filled if the market penetrates the limit price by a minimum of one tick. eg a limit order to buy at 1140.00 would be considered filled only if the market trades down to 1139.75, even if only for a split second. If the market trades at 1140.00 but no lower, for the purposes of this site the order should be considered UNFILLED.

Like you say, the purpose of this site should be to give subscribers a completely objective way to evaluate systems.