Large-scale order placement

Discussion in 'Order Execution' started by QuantWizard, Nov 7, 2014.

  1. Hi all,

    I was wondering whether anyone has any tips on how to ideally split up a large market order (say a few hundred ES contracts) in order to minimize market impact?

    I'm currently considering the current approach:
    1. Check current market depth (D) at top of order book (price P)
    2. Place an order less or equal to that size D
    2. Wait X ms
    3. Go to 1. This means that if market depth is zero at price P on subsequent iterations, total waiting time between sub order placements can be any multiple of X.

    For instance, IB offers a splitting algo where you can set certain parameters such as time interval between sub orders (http://ibkb.interactivebrokers.com/article/1006), however does anyone have experience what is the ideal interval? Keep in mind I only use market orders and entire order should be executed as quickly as possible.
     
  2. 1245

    1245

    Maybe you should change your execution process. Instead of market orders, bid the offer, then have an automated time to "walk" the order up/down until completed. Maybe a full second or two before you pay the next level.
     
  3. It is hard to reconcile “minimize market impact” with “execute as quickly as possible”.


    Look up the following impact-driven algorithms that all focus on minimising overall market impact costs, usually by splitting orders into smaller child orders:

    TWAP (time weighted average price)

    VWAP (volume weighted average price)

    POV (percent of volume)


    To optimize any of these to your own situation, you probably need a transaction cost analysis to understand how your orders are going to be affected by transactions costs:

    • commissions, fees, taxes

    • spread cost

    • delay cost

    • market impact cost

    • timing risk cost

    • opportunity cost

    Here is a whole book on the topic ...
    http://www.amazon.com/Algorithmic-Trading-DMA-introduction-strategies/dp/0956399207/ref=sr_1_1?ie=UTF8&qid=1415362304&sr=8-1&keywords=Algorithmic Trading and DMA: An introduction to direct access trading strategies
     
    Last edited: Nov 7, 2014
    baglunch likes this.
  4. My only big concern is slippage. Let's say I place a limit buy order on the ask - so what you suggest is to wait one second to see if liquidity has been restored and place another limit on that ask price, and if not, decide whether or not to move up to the next level to execute the order?

     
  5. 1245

    1245

    I can't tell you which way you will get more slippage. I believe market orders are very dangerous especially during time of distress. I'd rather have some control. And what I was suggesting was not moving from one offer to the next. If the 1st offer at the time of trade was X.00 I would bid that price. Then cancel replace to x.25, then x.50, then .75, etc. That is what I mean by walking the order up. If it were manual, I would do it about a second apart. If it's automated, you can determine that time line.

    During big moves from news, you will miss a lot. during normal trading, IMO, you will get better average prices.
     
  6. I see your point, however my model behavior assumes I get the current mid price - if using limit orders that somehow would expire it would mean that I no longer would have a clue on what performance to expect - I do 100% automated trading and not discretionary, hence the need to really execute all orders placed.

    Another reflection: If I place market orders to the size of the depth of the best bid/ask, and depleting that liquidity, at least that liquidity should be replaced by informed traders within a certain period of time so that no slippage occurs, or? Just a theoretical consideration...
     
  7. 1245

    1245

    It depends on market conditions. The real questions is what is the cost of missing a trade vs getting an execution that is bad. How often will it be bad? I'd rather bid the offer or if the expected profit from a trade is much higher than the spread, add one tick to the offer and sweep the market up to one tick higher, then cancel.

    I've seen some VERY bad executions over time with market orders, during time of wider spread and less liquidity.
     
  8. I agree, however in my case I'm referring to ES, which in my experience never has had a spread larger than one tick, so I guess that shouldn't be an issue. In back testing though, slippage has proven to have a detrimental effect, hence it feels like opting out from a trade is better than bad execution price...just have to figure out the exact dynamics of the micro market structure to optimize the algorithm I guess...
     
  9. 1245

    1245

    IOC limit orders at your price.

    1245