Can someone shed some light on optimal ways to execute medium sized orders ~2000 shares in the market?

Unfortunately the execution algo I have access to is very dumb. It follows the top-of-book price and hence I can see that the algo I am using is getting gamed by some predatory algo. For example, if the spread is 2 cents wide, a tiny order (say 100 shares) comes in to tighten the spread to 1 cent and is immediately canceled. Meanwhile my order moves its price to be top-of-book, but then sits alone after the cancel. My order gets hit and the market price moves against me.

I switched over to using a TWAP / VWAP algo, but I want to get a better grasp of order execution. What rules should one follow to not get adversely selected or gamed like that?

  • $\begingroup$ Cancel the order if its price equals bid price and order size is greater than some percentage of the bid size (100% if your order is alone at the top)? But without access to book (expensive) you won't know where to place the order if the top order is too small. Also, keep in mind that excessive order volume (e.g. 100K orders daily) may incur exchange fees. $\endgroup$ Feb 5, 2021 at 7:37
  • $\begingroup$ I talk a little bit about execution in this post here. It might give some additional ideas that might help (although not a direct answer to your question per se). $\endgroup$ Feb 5, 2021 at 7:52

3 Answers 3


If your original algo's goal was the follow the top-of-book quote, then it should have had some minimums before it would join a new quote. For example, the reference quote must have a minimum size shown and must be live for a minimum amount of time before you'll join.

Also, it helps to "stack the book" by breaking your quote into smaller orders at worse prices. So instead of submitting a bid of 2000 shares at \$25, submit one bid of 1000 shares at \$25 and another bid of 1000 shares at \$24.99.


There is a wide literature on optimal execution, among others:

Practically, you will need knowledge of market microstructure to take the good decision on a market-by-market basis (for instance some markets accept native icebergs, other not; some markets offers dark pools or fully hidden orders, etc). I would recommend the reading of Market Microstructure: Confronting Many Viewpoints (The Wiley Finance Series, 2012), Abergel, Bouchaud, Foucault, Lehalle, Rosenbaum, Eds.

That being said, you need to take car of two effects to design a trading algo:

  • risk control (not going too fast to impact the orderbook dynamics and to avoid adverse selection, not going too slow to be protected against adverse moves of the price), that for use max and min participation ratios or something similar
  • opportunities: look at the orderbook, use statistical learning, look at reference prices (like index moves), etc.

[UPDATE] The 2nd edition of "Market Microstructure in Practice" (Lehalle, Laruelle and contributions from Burgot, Lasnier and Pelin) provides a coverage of a lot of practical aspects of optimal trading.

Two other books are covering the topic:


If you want to be more aggressive without revealing your hand, place your orders as hidden orders inside the bid/ask. Algos on the other side will fish with small size orders to see what is hidden however. The fishing will not reveal the size of your order, but reveal that something is there. Can get some size done this way.

The advice above regarding when to join the bid or ask as well as stacking is good as well. You may want to float at some spread with jitter to the inside price if it looks like there is enough noise to cross into the orderbook periodically. This assumes that the market is trading sideways and you have time to get in.

If you are chasing momentum then you need to cross or be positioned more aggressively. Being clever with how you cross when aggressive is another art.

  • $\begingroup$ Is there a known method to compute the "noise" around spread or the "outer spread" ? $\endgroup$
    – silencer
    Jun 29, 2012 at 23:14

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.