Forums  > Basics  > Hidden liquidity, IOCs and FAKs question (NASDAQ vs EU markets)  
Page 1 of 1
Display using:  


Total Posts: 8
Joined: Aug 2016
Posted: 2016-11-08 18:48
Dear all,

I would like to ask a question about hidden liquidity and how the aforementioned orders work on NASDAQ (ISLAND) and Vienna Stock Exchange.

I believe I did my homework in researching and discussing support/other traders, but if I missed a material that would explain the following, I would be very grateful. (And find a corner to sit in shamefully for posting such obvious question here)

I am currently using IB with routing to ISLAND (and VSE, respectively), but will be changing broker in the future. The way she will handle the orders will be a factor for choosing one, so I am looking for a full answer, not only IB-specific one. I have spent a good couple of hours with IB support, to no avail, so I hope you could help me.

1. If a hidden order is sent inside the spread at a level that is best (theoretical example, take it as given), does it get filled by an incoming market order? Currently what happens is that I my order is skipped and the incoming market order is traded at a worse (visible or invisible) price. What is the difference between exchanges that support hidden orders natively and those that dont? E.g. Island vs VSE. How exactly are these orders handled - are they sent to the order book (hiddenly) or do they sit on some broker/exchange server waiting for a limit price to cross them (as support tried to tell me)?
2. If the answer to 1 is no, what would explain the following scenario: my market order at a very (very) illiquid Island listed stock is traded at a pricelevel inside the spread (spread 50 ticks, traded 10 ticks in front of the visible best)? Could it be a different "hidden" order type or is there another explanation? The support told me that there might be some "dealers, mms or specialist" trading at a publicly unspecified pricelevel, which seems like BS to me, isnt it? Firstly, it is so illiquid that I would be surprised anybody cares, secondly it is a hidden order all the same, so why my is not my hidden order filled the same way?
3. How exactly does IOC/FAK/FOK orders work? Say I am trading a more liquid asset and there are some HFTs. Could IOC/FAK orders be used to "fish" for incoming liquidity? Example (theoretical): HFT knows the current best level (hidden or not) and decides to spam IOCs 1cent in front of the best at a high rate (say 50 times per second). Is it possible for IOCs/FAKs to be filled against incoming market order? How exactly are these orders handled? I read that IOCs are not technically sent to the exchange - is it true?
4. What other hidden (or otherwise interesting) order types exist that could be used for the task of getting at the best price level in the order book without risk of being frontrunned and wait for incoming market orders?


Total Posts: 448
Joined: Jul 2008
Posted: 2016-11-08 21:44
All orders to be executed need to be sent to the exchange.

IOC = Immediate Or Cancel. Either it gets executed immediately or is cancelled. Used by people who want to take liquidity (e.g. to remove mispriced limit orders). I don't think an IOC can be executed against a market order.

FOK = Fill Or Kill. Either the orders gets filled in full or not at all.

FAK = ?

An exchange would not tolerate for long sending 50 IOCs per sec.


Total Posts: 8
Joined: Aug 2016
Posted: 2016-11-09 11:17
Thank you, katastrofa. You say that IOCs cannot be executed against market orders? OK, that is good info. I got the basic notion of these orders, but there are still some things that are unclear to me.

If an exchange supports hidden orders natively, does that mean that the order is sent to the order book (and is hidden) - therefore is able to be executed against a market order? If not, what is the use of hidden orders - just quote and wait until somebody posts a limit at the same pricelevel (in the opposite side.. ie if I post a hidden bid inside the spread, is it executed only after somebody posts a limit ask at the same level?).

Secondly, do you have any thoughts on point 2 from my original question? What would explain the scenario I see - my market orders being executed inside the spread? What does it mean if not hidden nor IOC orders?

FAK means Fill and Kill, I suppose it is similar to FOK.


Total Posts: 8
Joined: Aug 2016
Posted: 2016-11-09 16:19
Anyone, please?

I suppose this kind of thing must be happening to you guys (trading stocks) all the time. Would really appreciate some light in this and maybe it will help others as well.


Total Posts: 311
Joined: May 2006
Posted: 2016-11-09 16:44
IOCs and market orders can't cross because neither of them sits in the order book.

In terms of why you are getting filled at mid, it is because there is dark liquidity in the mid.

The fill priority is price-visibility-time. So if your dark order is the best price, it will be filled first. However if it is at the same price as some lit orders, it will be filled after them - regardless of who came in first.

Your question 1 does not make sense. I suppose some exchanges could have a type of IOC that can only be crossed against lit orders, so it is deliberately ignoring dark orders. But that would be a very niche type of order.

I think it is more likely that your dark order was rejected for some reason, so it wasn't actually there when the crossing happened. Did you receive an ack? Are you sure it was the correct order that was ack-ed? Was it ack-ed before the opposing liquidity came? When was the order eventually filled or cancelled - are you sure it was alive when that fill happened?

You have to look at the tape to see what actually happened.

Alternatively, based on what you wrote, I expect something like this happened:
1. You send a dark IOC buy at the mid.
2. There are no resting sells on the mid, so your dark IOC is cancelled. Best displayed bid is still the best bid.
3. Market sell comes in, gets filled on the best displayed bid.


"There is a SIX am?" -- Arthur


Total Posts: 8
Joined: Aug 2016
Posted: 2016-11-13 13:30
Thanks a lot for reply, Ronin. And sorry for the lengthy reply

Regarding the first question, you are right it does not make much sense. I suspect the broker (IB) does not send the hidden order to the exchange, although they swear they do. They tried to convince me that the exchange does not send it to the order book. While that is most likely true for some European exchanges, I think it is BS on Nasdaq (Island).
What also happens, that if my (lit) order does not set the new best, it does not show in the market depth (looking at API), so I guess they keep it on their own (IB) servers for some reason.

Regarding IOCs - I have never sent an IOC, so no, that is not what happened. I sent a normal hidden limit order. I am afraid I do not know what "ack" is. Basically what I did was:

1. Check where the current bests are (by probing with market orders of 1 share).
2. Quote hidden order (1 share) well closer to the mid to be sure the hidden ones did not front run (like 5 ticks in advance to the mid).
3. When incoming market came (100 shares), it went right through and was executed either at the currently visible best or inside the spread of the order book (against a supposedly hidden order). At a worse price than my hidden limits.

Actually I have recorded the issue on a cam while trading, so when I get to office I may try to upload it for you to have a look. The question is if the problem could be that i sent an odd-lot order (I tested with 1-10 shares, never full lot of 100 shares).. Or there is any other issue.

I do not intend to stay with IB for my purposes, so I want to know what to look for in my new broker and which issues to avoid in advance


Total Posts: 448
Joined: Jul 2008
Posted: 2016-11-13 19:29
An "ack" is the acknowledgement message from the exchange, that they processed your order.


Total Posts: 544
Joined: Feb 2005
Posted: 2016-11-13 20:44
FAK and FOK are not the same, for exchanges with that type of native orders. ( text below based on Nasdaq-owned Stockholm Stock Exchange )

FAK: fill as much as possible at limit price or better and kill the rest of the order ( allows partial executions)
FOK: fill the full order at limit price or better or kill the full order ( i.e. no partial execution )

With regards to native orders with hidden volume, the hidden volume gets added to the end of the queue. If you're looking to execute 1000 at 50 showing 100 at a time, after your first 100 gets executed, a new order of 100 at 50 are added respecting time priority ( i.e. of anyone has put a new order at 50 in same direction, your new order of 100 will be queued up behind)

On your straddle, done on the puts, working the calls...


Total Posts: 448
Joined: Jul 2008
Posted: 2016-11-14 11:01
"Check where the current bests are (by probing with market orders of 1 share)"

Two comments:
1. your probing might be sending a signal causing other ppl to pull away their orders
2. I don't know what regulatory regime you fall under, but where I work, both compliance chaps and the regulator take a dim view of "pinging". See e.g. (look for "ping orders")


Total Posts: 8
Joined: Aug 2016
Posted: 2016-11-14 12:48
Thank you for the heads up, katastrofa. I was not at all aware of this. In any case, the aforementioned was done simply to test the routing of my current broker as obviously he did not give me correct information.

I did not intend to profit from this and will not continue in these practices in the future.


Total Posts: 311
Joined: May 2006
Posted: 2016-11-14 12:57

As @katastrofa says, "ack" is an acknowledgment message - a confirmation that your order was received by the exchange. If IB is just routing your orders to the exchange, then they should be able to produce all the messages concerning your order.

But IB also does internalisation - they will aggregate your order with some other orders, and they may cross it internally. They would have to do something like that with a probing order for 1 share. Based on what you wrote, your order wasn't in the Island orderbook when the cross came - because IB didn't put it there.

Hidden orders are normal orders and they will get filled with opposing liquidity. The only issue with hidden vs displayed is that hidden orders will be filled after all displayed orders at the same price level, like @nip247 says.

Generally speaking, professional traders (i.e. people who do market making or executions) do not normally use hidden orders. They are expensive, and they are easy to detect. If you are executing a large order, you don't put it all in the book as a hidden order - you split it up in chunks, and pass the chunks into the market according to some benchmark - time, price, volume etc.

Barry Johnson's book is the standard reference for that sort of thing:

Otherwise, detecting liquidity is an art more than a science. There are all sorts of different ways to do that.

- you may put some liquidity inside the spread, and watch out for what happens (either somebody takes it, somebody joins you, or neither - each of those means something).
- you may cross the spread to take some liquidity, and watch out for what happens (either somebody replenishes it, somebody crosses after you, or neither - each of those means something).
- you can look to a more liquid, related instrument such as an index future (if the index future has just moved, somebody is about to hedge it with the stock).
- you can look at what is happening in the orderbook (to try to infer if people are competing for a place in the queue to buy, sell or neither).
- you can place your orders in the market, and measure the rate at which they are getting filled (either you are getting filled faster than you expect, slower than you expect, or just as you expect - each of those means something)


"There is a SIX am?" -- Arthur


Total Posts: 448
Joined: Jul 2008
Posted: 2016-11-14 12:57
Coming back to your troubles:
1. what are the allowed prices for your orders? maybe your prices were rounded to less aggressive ones because they did not comply with the tick size ladder requirements of the exchange?
2. what is IB latency? maybe your orders did not reach the exchange on time to be matched against the incoming market order?


Total Posts: 8
Joined: Aug 2016
Posted: 2016-12-09 16:03

I am sorry for bumping a rather old thread, however I want to thank you all and share what I found. I have been longterm offline.

Many thanks to @NIP247, @katastrofa and especially @ronin. Your points about the liquidity detecting etc are very interesting.

1 - I suppose the NASDAQ has a unified tick-size for the stocks. Do they not? This should not be an issue. I could be wrong though.
2 - IB latency, that is interesting. Do you know of a way to test it other than asking the chat support? Currently I am sending the order info and getting market state (into API) from them, so it is not likely to be informative. Anyway, the delay between me sending the order and the incoming market was a matter of minutes, therefore I do not suppose this should be the issue either.

You mention that hidden orders are expensive - are they, really? Do you have any good piece of information, a link please? I checked (with IB only) and they told me that the fee structure is the same as normal orders. Maybe the pricing is different on the exchange level, but IB simply do not differentiate the pricing? Or do you mean something else by "expensive" (e.g. slow)?

As to my original question, I came to a conclusion that the issue was the following: My hidden limit order was sent to Island exchange, but the incoming market that "should" have been filled against it, was sent to a different exchange where the stock is listed as well. I am not 100% sure about it (the video is missing), but after discussing with others it seems to be the most likely scenario.
If not, I really do not know, even after the expert help here in this thread :)

No big drama therefore, a rookie mistkae probably. Maybe it will help somebody though.


Total Posts: 430
Joined: Jul 2006
Posted: 2018-07-09 21:50

I'm trying to find hidden liquidity on equity futures trading on ICE US and CME. I'm looking at the following paper:

with regards to the sequential data where do I get that from? As in:

"....We show a way to estimate both direct and hidden liquidity, using special features of CME Globex market data...."

Does the CME Globex data have this sequential numbers?
Previous Thread :: Next Thread 
Page 1 of 1