Skip to content
All library documents

Using Multiple IOC Orders to Improve Execution Odds

Article Quant Q&A · Author: Gelly Ristor

Summary

The document explains the phrase “buckshot of IOCs” as a metaphor for sending several immediate-or-cancel orders in an attempt to capture a fleeting trading opportunity. An IOC executes against available liquidity when it reaches the matching engine; any unfilled portion is canceled instead of becoming a resting order. Under price-time priority, the order that arrives first can take the available resting liquidity.

Multiple IOCs may help when exchange communication has random latency, because one order may arrive before competitors. They can also be staggered across different levels of confidence in a signal: earlier orders may reach the venue sooner but risk arriving before the opportunity exists, while later orders are more likely to coincide with it. The document offers these as illustrative possibilities, not a tested strategy or guaranteed advantage. It also warns that exchanges may penalize or discourage high volumes of unfilled orders, limiting how far order proliferation can be taken.

Key ideas

  • An IOC trades against available liquidity on arrival and cancels any unfilled quantity.
  • Under price-time priority, earlier arrival can determine which order executes against resting liquidity.
  • Sending multiple IOCs may improve the chance of an early arrival when communication latency is variable.
  • Staggering orders by signal confidence trades earlier arrival against the risk of acting before an opportunity appears.
  • Exchanges may restrict or discourage excessive orders that do not result in trades.

Tags

Full text
# Meaning of Buckshot of IOCs


# Meaning of Buckshot of IOCs












I'm trying to understand what the term "Buckshot of IOCs" in the context of trading found at the bottom of the following comment on the quant subedit means:

https://old.reddit.com/r/quant/comments/1ghzvct/in_hft_how_can_any_firm_other_than_the_fastest/lv4zb0u/

> One could somewhat counter-act or mitigate this by having multiple runners on their team staggering their start times from running (buckshot of IOCs), others may conclude the occurrence distribution is not truly uniformly random and does have some slight underlying bias and try to discover and exploit that bias (ever so slightly unbalanced roulette wheel placed upon plush carpeting), and still others may decide the current field is way too crowded and choose to race at another less occupied field/venue (lets party like it's the NSE).

I know IOC refers to immediate or cancel order type, and I understand the part about the distribution not necessarily being truly uniform and wanting to go down the path of determining the "true" distribution, and also the part about participating at venues that have less competition potentially being more profitable.

The IOC part is still more than a bit confusing, google doesn't seem to have anything specific.

## Answer by Chris Taylor (score 7, accepted)

https://quant.stackexchange.com/a/82475

"Buckshot" is a shotgun shell loaded with many small pellets, rather than a single solid slug. The idea is that the pellets scatter over a wide area when the gun is fired, so that you don't need to be particularly accurate in order to hit the target.

In the analogy being made, the "gold" appearing at one end of the field is a profitable trading opportunity, and the "runners" are orders which are sent by traders. An "IOC" order is an immediate-or-cancel - if there is a resting order to cross with when the IOC arrives at the matching engine, then a trade takes place ("immediate"). If there is no order to cross with (e.g. because it was already canceled or someone else traded with it first) then the IOC does not convert to a resting limit order, and is discarded ("cancel").

Under normal price/time priority the first order to arrive at the matching engine is the one that will trade with a resting order. One way to have your order arrive first is to have the fastest reaction time (tick-to-trade) and the fastest connection to the exchange.

However, there are other approaches. For example, if the communication times with the exchange have some randomness ("jitter") then it may be worth sending multiple IOCs, since the one that arrives earliest will trade, and the others will most likely be discarded. By sending more orders, you make it slightly more likely that one of yours will arrive first. This could be referred to as "buckshot of IOCs" (though I have never heard this particular term).

Another scenario might be that you have some not-perfectly-reliable way to predict when a profitable trading opportunity might appear (e.g. by observing activity on a second exchange). Then you could send an IOC when you think that a profitable opportunity is likely to appear (e.g. > 50% probability) but you run the risk that your order arrives at the matching engine before the opportunity appears. So you might send IOCs at various different levels of certainty (e.g. 50%, 60%, 70%, 80%, 90%) so that the earlier IOCs will get there earlier, but have more chance of arriving too early, and the later IOCs are slower but are much more likely to intersect with a profitable trading opportunity. This might also be referred to as a "buckshot of IOCs".

Note that some exchanges frown on traders who send many orders that do not result in trades, so you can't always take this strategy to its logical extreme by sending millions of IOCs to maximise your chance of being able to take the profitable opportunities.

Shown in full with attribution under the source's licence. Licence: CC BY-SA 4.0 (Stack Exchange)

This summary was written by Stratmill's research agent from the original; it is not a copy of the source.