I'm not sure how useful detecting icebergs is for short term trading, but the first step in figuring this out is identifying icebergs in historical data. I know that on CME, icebergs refresh at the back of the queue, and partial fills of an iceberg stay in the book unchanged. For example, if my iceberg requests 4 contracts, suppose it's broken into two orders of size 2. The first order will wait in the queue until it reaches the front. Suppose it has now reached the front and a market order for 1 comes in. The iceberg will fill one contract leaving one in the book at the top of the queue...no free lunch or line cutting. Similarly, when the full two contracts from the first block of the iceberg are filled, the remaining two contracts will refresh at the back of the queue. Please confirm if this understanding is correct, and feel free to tack on other details. My question is whether anyone here has made any attempt to classify a set of orders as an iceberg or not by looking for orders that continually refresh at the back? I imagine this is a pretty difficult task, since those using icebergs and CME have every incentive to effectively hide them. Aside from that, I'm not sure how much alpha will come from identifying an iceberg. Yes, it will provide a lot of interest at a given price level, but sophisticated traders put a lot of effort into minimizing their market impact. Any information on the matter is appreciated.
It's exchange-dependent, but your understanding is generally correct. Icebergs refresh at back of queue. For more detail, explore the various exchanges' sites.
Thanks. For the purposes of this thread, I'll restrict my question to CME Group futures and options because that's what I collect market depth data on. Here's some docs I found. I'm sure there's something better, but I'm in class so I unfortunately find the definitive resource. Appreciate your reply. http://www.cmegroup.com/globex/files/GlobexRefGd.pdf
"My question is whether anyone here has made any attempt to classify a set of orders as an iceberg or not by looking for orders that continually refresh at the back? I imagine this is a pretty difficult task, since those using icebergs and CME have every incentive to effectively hide them." I use Jigsaw tools and there is a column showing what has been added/taken away from the bid/offer. You can't really hide anything but the total number of contracts you are willing to trade. It is very easy to see. It is very useful information for short term trading. Even watching them pull orders can be useful.
Well Well, the hidden total interest at a price level is really what I'm trying to ascertain. I keep track of the orders at each price level using a FIFO data structure, so the information I have is effectively the basis of what JigSaw displays. That being said, I'm not suggesting whether what JigSaw displays is a sufficient statistic to represent the queue population parameter for your applications or not. Watching orders getting pulled is useful, especially if you're trying to maintain queue position at subsequent price levels, because it might be time to get out of there in a hurry. That being said, I kinda fail to see how the information you've outlined above would indicate the existence of an iceberg order. Seeing people adding onto the back of the queue is a normal occurrence. It doesn't necessarily say anything about whether it's a part of a refreshing strategy or if it's a completely independent event.
I doubt you will be able to ascertain the hidden total interest at a price level until after the fact. It isn't very useful after the fact in my opinion. If you have watched it long enough you know whether or not it is just normal activity or a true iceberg. I trade the 6E and I can tell when the additions are out of the ordinary and likely an iceberg. Another indication is that market orders are hitting it hard and getting nothing out of it. If you have access to market replay data on the 6E 12-16 contract (10/08/2015) between 4 and 5am CST was a great example. Just by watching the DOM I was able to see a guy scooping up every market sell order on the tape with an iceberg. It was a very low risk trade. No heat at all and I ended up with 20 ticks on each of two contracts.
Congratulations, but I'd think 6E isn't an especially good market for berg-hunting, since futures aren't even the primary liquidity / price-discovery center in forex.
The pulling of orders doesn't indicate an iceberg; I just mentioned that as an additional benefit of the Jigsaw tools. Seeing contracts ADDED beyond what is normal for your instrument is a pretty good clue there MAY BE an iceberg.
I am trying to identify icebergs after the fact. I want to create a classifier function of some kind that decides whether a set of orders belong to an iceberg or not. I will decide how to identify in realtime and treat the icebergs once (if) I can somehow explicitly find icebergs to do statistical inference on in my historical data. First step is finding them, so I wanted to see if any traders knew of methods or observations that help identify them. How would you classify an addition as out of the ordinary? Is there a particular size, a particular delta of size relative to other orders? How many orders are icebergs broken into typical for a given total quantity of an iceberg? This is the type of information that I think may add to a meaningful classifier. I appreciate your incite on the market orders not moving it at all--it lets me know that perhaps were looking for total size capable of preventing normal supply and demand equilibriums. EDIT: yes, I'm aware the pulling of orders is the opposite of an iceberg. It's mostly HFTs that are trying to maintain queue position deciding they no longer want to trade at the price level.