Trying to understand slippage: 1.6% with Interactive Brokers.

Discussion in 'Order Execution' started by mickael28, Feb 8, 2019.

  1. JSOP

    JSOP

    Those bids might be taken by other traders who've sent their orders at the same time split second before you or those bids might have been withdrawn by the time your order was filled. So even though you see the bids, they could be gone by the time your order is filled.

    How to minimise it in the future? Use limit orders!!
     
    #21     Feb 8, 2019
    qlai likes this.
  2. Maybe those orders had the condition "all or nothing" and your order would not fill them completely.
     
    #22     Feb 8, 2019
  3. dinn13

    dinn13

    Here is the top of book from each exchange just prior to the 100 share trade at 18.46 on nasdaq that likely triggered your stop loss at 09:31:25.151741019 (SIP time) 09:31:25.151723197 (nsdq book):

    A 09:31:05.897750920 1 18.38 18.93 1 09:31:05.897379840
    B 09:31:15.225533646 2 18.33 18.84 1 09:31:15.225516076
    C 09:31:05.276916331 1 18.35 18.95 1 09:31:05.276548608
    J 09:31:04.036662566 1 18.31 18.99 1 09:31:04.036470000
    K 09:31:05.419354576 1 18.05 18.8 1 09:31:05.419163000
    M 09:31:09.308754708 1 18.41 18.93 1 09:31:09.308520000
    N 09:31:05.587082267 1 18.38 18.93 1 09:31:05.586717184
    P 09:31:07.578034696 3 18.38 18.92 1 09:31:07.577657600
    Q 09:31:25.151743657 1 18.46 18.58 1 09:31:25.151723197
    V 09:31:00.228520727 0 0.0 0.0 0 09:31:00.228295076
    X 09:31:25.151623765 4 18.35 18.79 3 09:31:25.151603678
    Y 09:31:05.897043399 2 18.32 18.99 1 09:31:05.896854000
    Z 09:31:06.240692618 1 18.44 18.87 1 09:31:06.240509000

    Nasdaq Book at same time
    18.1 B 1000 09:30:00.391012195 1
    18.15 B 660 09:30:00.391012195 1
    18.18 B 100 09:30:00.391012195 1
    18.23 B 900 09:31:00.035034340 1
    18.4 B 560 09:30:00.391012195 1
    18.43 B 400 09:31:07.577524230 1
    18.45 B 100 09:30:35.390419542 1
    18.46 B 200 09:30:00.391012195 1

    So someone takes 100 shares at 18.46 triggering your stop loss. Let's say you have some HFT infrastructure with 30 us of latency tick to trade, and that trade triggers your signal to take, the top of book 30 us later at 09:31:25.151753197 (nsdq book)

    A 09:31:05.897750920 1 18.38 18.93 1 09:31:05.897379840
    B 09:31:25.151749108 2 18.33 18.84 1 09:31:25.151731873
    C 09:31:05.276916331 1 18.35 18.95 1 09:31:05.276548608
    J 09:31:04.036662566 1 18.31 18.99 1 09:31:04.036470000
    K 09:31:05.419354576 1 18.05 18.8 1 09:31:05.419163000
    M 09:31:09.308754708 1 18.41 18.93 1 09:31:09.308520000
    N 09:31:05.587082267 1 18.38 18.93 1 09:31:05.586717184
    P 09:31:07.578034696 3 18.38 18.92 1 09:31:07.577657600
    Q 09:31:25.151743657 1 18.46 18.58 1 09:31:25.151723197
    V 09:31:00.228520727 0 0.0 0.0 0 09:31:00.228295076
    X 09:31:25.151623765 4 18.35 18.79 3 09:31:25.151603678
    Y 09:31:05.897043399 2 18.32 18.99 1 09:31:05.896854000
    Z 09:31:06.240692618 1 18.44 18.87 1 09:31:06.240509000

    nasdaq book at same time:
    18.1 B 1000 09:30:00.391012195 1
    18.15 B 660 09:30:00.391012195 1
    18.18 B 100 09:30:00.391012195 1
    18.23 B 900 09:31:00.035034340 1
    18.4 B 560 09:30:00.391012195 1
    18.43 B 400 09:31:07.577524230 1
    18.45 B 100 09:30:35.390419542 1
    18.46 B 100 09:31:25.151723197 1

    so if you sweep 715 shares at that time, then could take the first 3 levels at nasdaq with 600 shares, 100 shares from bats at 18.44, and 15 off chicago at 18.41 for an avg price of 18.4379 for a slip off the triggered price of ~12 bps

    but since you're not paying for the kind of infrastructure you'll have some additional latency, I think I see your first trade for 100 shares on nasdaq at 18.24 at 09:31:25.245422358 (nsdq, 93ms after the trigger), so just prior to your trade it looks like:

    A 09:31:25.174794465 0 0.0 18.93 1 09:31:25.174409472
    B 09:31:25.226858704 2 13.9 18.8 1 09:31:25.226843746
    C 09:31:25.177924333 1 18.24 18.95 1 09:31:25.177546240
    J 09:31:25.243581022 1 17.01 18.99 1 09:31:25.243400000
    K 09:31:25.223810856 1 18.05 18.8 1 09:31:25.223617000
    M 09:31:25.168932049 0 0.0 18.93 1 09:31:25.168719000
    N 09:31:25.175549869 1 13.9 18.93 1 09:31:25.175170816
    P 09:31:25.224430731 1 18.24 18.87 4 09:31:25.224057600
    Q 09:31:25.179478983 1 18.24 18.8 3 09:31:25.179463534
    V 09:31:25.191275181 7 17.95 19.05 3 09:31:25.190976990
    X 09:31:25.235604610 2 13.9 18.55 1 09:31:25.235587429
    Y 09:31:25.243573170 1 17.01 18.99 1 09:31:25.243392000
    Z 09:31:25.243572004 2 18.24 18.64 1 09:31:25.243387000

    nsdq order book:
    18.1 B 1000 09:30:00.391012195 1
    18.15 B 660 09:30:00.391012195 1
    18.18 B 100 09:30:00.391012195 1
    18.24 B 100 09:31:25.176755270 1

    after your first 100 share trade:

    A 09:31:25.174794465 0 0.0 18.93 1 09:31:25.174409472
    B 09:31:25.226858704 2 13.9 18.8 1 09:31:25.226843746
    C 09:31:25.177924333 1 18.24 18.95 1 09:31:25.177546240
    J 09:31:25.243581022 1 17.01 18.99 1 09:31:25.243400000
    K 09:31:25.223810856 1 18.05 18.8 1 09:31:25.223617000
    M 09:31:25.168932049 0 0.0 18.93 1 09:31:25.168719000
    N 09:31:25.175549869 1 13.9 18.93 1 09:31:25.175170816
    P 09:31:25.224430731 1 18.24 18.87 4 09:31:25.224057600
    Q 09:31:25.245439390 1 18.18 18.8 3 09:31:25.245422358
    V 09:31:25.191275181 7 17.95 19.05 3 09:31:25.190976990
    X 09:31:25.235604610 2 13.9 18.55 1 09:31:25.235587429
    Y 09:31:25.243573170 1 17.01 18.99 1 09:31:25.243392000
    Z 09:31:25.243572004 2 18.24 18.64 1 09:31:25.243387000

    what is a bit odd is that they didn't take more at that time since there definitely was an opportunity to, another 400 shares at 18.24, but the next time they took liquidity was at 09:31:26.340371419 (1.18 seconds past the trigger price), where you have the two 300 share execs on nsdq, just prior to those execs:

    A 09:31:26.211142997 0 0.0 0.0 0 09:31:26.210768640
    B 09:31:25.887333693 2 13.9 18.8 1 09:31:25.887318133
    C 09:31:26.336501454 1 13.9 23.15 1 09:31:26.336132352
    J 09:31:26.338115693 1 17.01 18.41 1 09:31:26.337927000
    K 09:31:26.339484952 2 18.15 18.48 3 09:31:26.339304000
    M 09:31:26.336292320 0 0.0 0.0 0 09:31:26.336086000
    N 09:31:25.339247860 1 13.9 18.48 1 09:31:25.338882048
    P 09:31:26.340064126 2 18.15 18.75 2 09:31:26.339691264
    Q 09:31:26.339196576 6 18.15 18.59 5 09:31:26.339181079
    V 09:31:26.182811568 0 0.0 0.0 0 09:31:26.182600485
    X 09:31:25.245825513 2 13.9 18.91 1 09:31:25.245809315
    Y 09:31:26.338107758 1 17.0 18.41 1 09:31:26.337922000
    Z 09:31:26.339473400 2 18.15 18.49 1 09:31:26.339298000

    I think the 93 ms is very reasonable for the first execution and they could have taken more then, the 1.18 seconds later for the remaining executions seems a bit odd, my guess is after the first exec you got put back in line on some queue before they evaluated their sor again, but I guess you get what you pay for...

    as far as the larger trades you mentioned.. most of them occurred at dark pools, also some might have had a min qty specified which wouldn't interact with your order, and there are a lot of dark pools so even if IB pinged a few of them it's likely that liquidity would have been missed, but regardless there was opportunity to be better, not sure what the expectations should be through them or what they might advertise though
     
    #23     Feb 8, 2019
  4. qlai

    qlai

    If you keep posting like that and you will bring the wrath of IB Gods upon yourself :) Nicely done.

     
    #24     Feb 8, 2019
    SPYAlgoTrader likes this.
  5. d08

    d08

    A stop-limit doesn't help at all. The point is to get out
    A stop-limit doesn't help at all. The point is to get out of the position at around a certain price for him. No execution is the worst case scenario. I would probably send at midpoint in his case, better than an obvious sitting limit order anyway.
     
    #25     Feb 9, 2019
    murray t turtle and qlai like this.
  6. JSOP

    JSOP

    You can't have it both ways. You get to decide when to get out and at what price, only one of them. You want to control when you will get out, then you don't get a certain price; the market will determine which price you will get out. If you want to control the price that you get out at, then the market will determine when you get out. Even if you send it at midpoint with a stop order, you still won't be able to control the price that it's ultimately filled at; you will still be vulnerable to slippages, that's just unavoidable. A stop-limit order is essentially still a limit order. It's just a limit order after the stop price is triggered.
     
    #26     Feb 9, 2019
  7. qlai

    qlai

    True, but I have a compromise solution ... Although I don't use it as stops are for sissies :)

    Have a two tiered stop using OCO order. For a long, place one stop limit order at your regular stop price and the other market stop order at your "get me out at any price." If the stock trades through your limit price, the market order will kick in and the limit will be cancelled. Hopefully, most of the time, you will get out at limit. You may have to use all or none.
    I don't know what your strategy is but over the long run, you may be better off exiting with MOC orders and eating occasional big loss. Record this for some time and see for yourself.
     
    #27     Feb 9, 2019
    comagnum, bpr and d08 like this.
  8. Gotcha

    Gotcha

    I'm always intrigued when I see a post from a member who hardly posts, yet has been registered for a very long time, and answers the question with facts and much more depth than anyone else. Makes me think that the best traders are the ones who do the least amount of talking. :) I think ET has some so called whales lurking in the shadows.
     
    #28     Feb 9, 2019
    Onra likes this.
  9. JSOP

    JSOP

    That's still basically a stop market order. If you were able to get out at your stop price with no slippages, you wouldn't need the limit order in the first place and you would've gotten out already with just the stop order. But the reason why you got the slippages was because you couldn't as the price moved too fast past your stop price and you had to get out at whatever the price was available so the OCO won't save you and is redundant because you would've still ended up with a stop market order. You could've done it with just one stop market order.

    You can't have it both ways. You either decide the price that the order is filled or the time it's filled but not both.
     
    #29     Feb 9, 2019
  10. qlai

    qlai

    The idea is that often the stop gets triggered by 100 share trade through (in some venues/brokers simply by lowering the bid!). Once the stops are hit (or no more sellers found), the price goes right back up. If you trade these kind of stocks, you are not trying to eliminate slippage/stoppage but rather reduce it. Dumping 5k because some piker (or HFT) had 100 share stop hit!?

    For people who trade automated, you can implement a smarter stop where you only get stopped if certain amount of shares trade through or get even fancier. No magic bullet though.
    Thanks for encouraging words! Lol. Very true though and I wish more would contribute. But beggars can't be choosers :)
     
    #30     Feb 9, 2019
    d08 likes this.